本篇主要涉及RAID原理介绍和CentOS 7 嘚软RAID的实现。
1. RAID类别、基本作用、实现及应用场景
1.1 RAID(Redundant Array of Independent Disks)独立硬盘冗余阵列简称磁盘阵列。是利用虚拟化存储技术将多个硬盘进行组合,提升性能或数据冗余的技术
1.3 RAID的实现方式有两种,一种为机器上的硬件实现的硬件raid一种是软件实现的软raid。
1.3.1硬件磁盘阵列(Hardware RAID)RAID卡上内置处悝器不需要服务器的CPU运算。优点是读写性能最快不占用服务器资源,可用于任何操作系统也能在系统断电后,透过备份电池模块(BBU, Backup Battery Unit)以及非易失性存储器
(NVRAM)将硬盘读写日志档(Journal)包含的剩余读写作业先记录在存储器中等待电力供应撤销后,再由NVRAM取回日志档数据接着洅完成读写作业,将剩余读写作业安全完成以确保读写完整性备份电池模块通常会配合数组卡的Write-Back缓存模式,借由此存储器缓存读写作业鉯得到更高的读写性能;但是没有备份电池模块的硬件磁盘阵列卡切勿使用Write-Back缓存模式以免遭遇断电情形导致读写数据流失。此外因为硬件磁盘阵列卡搭载内置处理器,所以可以与操作系统分离出来对硬盘进行各种作业,还原作业的速度也比软件磁盘阵列快缺点是其售价很高。
1.3.2软件磁盘阵列(Software RAID):主要由CPU处理数组存储作业缺点为耗损较多CPU资源运算RAID,优点则是价格偏低分类有3种:
- 基于主板的磁盤阵列:只需要主板支持即可(通常是芯片组内置的RAID功能,如Intel Matrix RAIDIntel Rapid Storage Technology),不需要任何磁盘阵列卡若主板损坏,可能难以购买同款主板重建RAID
- 硬件辅助磁盘阵列(Hardware-Assisted RAID):需要一张基于Fake RAID的RAID卡,以及厂商所提供的驱动程序但此类RAID卡仍然通过CPU进行运算。这款RAID较易迁移到其他电脑RAID功能靠运行于操作系统的厂商驱动程序和CPU运算提供。
RAID 0 亦称为条带卷(striping)它需要两块硬盘及以上的硬盘,组成一个大容量的硬盘在存储数据時,将数据分段后分散存储在所有硬盘中因为多块磁盘读写可以并行进行,所有读写速度最快但是无数据冗余能力,一个物理磁盘损壞后就会破坏整体数据的完整性,所有数据都会丢失
RAID 亦称为( mirror ),它需要两块及以上偶数的硬盘两两组成一块逻辑硬盘其中一块盘是主盤,一块盘为备盘理论上读取的速度为硬盘数量的倍数,但是写性能会降低因为在写入数据时需要将一份数据复制成两份,分别存于主盘和备盘但是冗余性能会大大提升,理论最大的坏盘数量可以达到整体磁盘数量的一半而不会影响数据完整
RAID 5至少需要3块硬盘,RAID 5,使用嘚是Disk Striping(硬盘分割)技术(wiki说的)RAID 5不是对存储的数据进行备份,而是把数据和相对应的奇偶校验有什么用信息存储到组成RAID
5的各个磁盘上並且奇偶校验有什么用信息和相对应的数据分别存储于不同的磁盘上。当RAID5的一个磁盘数据发生损坏后可以利用剩下的数据和相应的奇偶校验有什么用信息去恢复被损坏的数据。写入数据的速度相对单独写入一块硬盘的速度略慢读取速度,近似于RAID 0RAID 5的磁盘空间容量是Size=(n-1)*min(sd[a-z])
RAID 10 和 RAID 01是兩种不同的冗余方案,不可混为一谈
RAID 10是先分割数据再镜像再将所有硬盘分为两组,视为以RAID 1作为最低组合然后将每组RAID 1视为一个“硬盘”組合为RAID 0运作
RAID 01则是跟RAID 10的程序相反,是先镜像再将数据到分割两组硬盘它将所有的硬盘分为两组,每组各自构成为RAID 0作为最低组合而将两组硬盘组合为RAID 1运作
JBOD( Just a Bunch Of Disks),JBOD是将所有硬盘做成逻辑上的一块硬盘,由于存储方案是等上一颗物理磁盘存满后再写下一块物理磁盘,所以和raid0並不相同由于每次读写只访问一块硬盘,所以性能较raid0更弱且如果硬盘损毁,则该颗硬盘上的所有数据将无法救回若第一颗硬盘损坏,通常无法作救援(因为大部分文件系统将磁盘分割表(partition
table)存在磁盘前端即第一颗),失去磁盘分割表即失去一切数据若遭遇磁盘阵列数据或硬盘出错的状况,危险程度较RAID 0更剧
设置场景12块硬盘,每块硬盘1T容量读速率1G/s,写速率0.5G/s对各RAID策略进行最大化对比
综上RAID 50各方面排名均靠前,所以RAID 50是在容量和安全性上是较为可选的方案, 事实上我现在所能接触到的环境中,RAID 50处于压倒性的地位
3.1 虚拟机添加磁盘
3.1.1 在虚拟的设置,添加了三块2G的硬盘准备做一个RAID5。
3.1.2 开机后lsblk能发现多了三块硬盘
-n:指定做RAID的物理磁盘
3.2.3查看下md0设备的状态,将其格式化后挂载到/mnt目录上就可以使用了
3.3 模拟实现磁盘掉线,设备盘及rebuild
使用管理命令可以将逻辑盘中的物理磁盘标记为坏盘,或者实现添加移除磁盘的操作
-f: 将磁盘标记为坏盘