一、什么是磁盘阵列?
相互独立磁盘构成得具有冗余能力的阵列
冗余:原意指重复,在计算机中称为备份
磁盘阵列是由很多块独立的磁盘,组合成一个容量巨大的磁盘组,这些磁盘可以共同使用,来提升整个磁盘系统效能。可以利用这个技术,将数据切割成很多区段,分别存放到各个硬盘上。
常见的磁盘阵列:
首先,常规的磁盘存储属于非RAID结构,也就是各个磁盘互不干扰,如果你有两块磁盘,他们就是两个磁盘,之间没有任何联系,称为JBOD结构(Just a Bunch Of Disks)
二、RAID级别
组成磁盘阵列的不同方式称为RAID级别(RAID Levels)
常用的RAID级别:RAID0、RAID1、RAID5、RAID6、RAID1+0等
1、RAID0(条带化存储)
-
RAID 0 连续以位或字节为单位分割数据,并行读/写于多个磁盘上,因此具有很高的数据传输率,但它没有数据冗余
-
RAID 0 只是单纯地提高性能,并没有为数据的可靠性提供保证,而且其中的一个磁盘失效将影响到所以数据
-
RAID 0不能应用于数据安全性要求高的场合
2、RAID 1 (镜像存储)
-
通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据
-
当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID 1可以提高读取性能
-
RAID 1是磁盘阵列中单位成本最高的,但提供了很高的数据安全性和可用性。当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不是需要重组失效的数据
3、RAID 5
-
N(N>=3)快盘组成阵列,一份数据产生N-1个条带,同时还有一份校验数据,共N份数据在N块盘上循环均衡存储
-
N快盘同时读写,读性能很高,但由于有校验机制的问题,写性能相对不高
-
(N-1)/N磁盘利用率
-
可靠性高,允许坏1快盘,不影响所以数据
4、RAID 6
-
N(N>=4)快盘组成阵列,(N-2)/N磁盘利用率
-
与RAID 5相比,RAID 6增加了第二个独立的奇偶校验信息块
-
两个独立的奇偶系统使用不同的算法,即使两块磁盘同时失效也不会影响数据的使用
-
相对于RAID 5有更大的“写损失”,因此写性能较差
5、RAID1+0 (先做镜像,再做条带)
-
N(偶数,N>=4)块盘两两镜像后,再组合成一个RAID0
-
N/2磁盘利用率
-
N/2块盘同时写入,N块盘同时读取
-
性能高,可靠性高
6、RAID0+1(先做条带,再做镜像)
-
读写性能与RAID10相同
-
安全性低于RAID 10
RAID级别 | 硬盘数量 | 硬盘利用率 | 是否有校验 | 保护能力 | 写性能 |
RAID0 | N | N | 无 | 无 | 单个硬盘的N倍 |
RAID1 | N(偶数) | N/2 | 无 | 允许一个设备故障 | 需写两对存储设备,互为主备 |
RAID5 | N>=3 | (N-1)N | 有 | 允许一个设备故障 | 需写计算校验 |
RAID6 | N>=4 | N/2 | 无 | 允许两个基组各坏一个 | N/2块盘同时写入 |
实例
RAID5
第一步:首先虚拟机创建4个硬盘每个分配20G
第二步:使用fdisk /dev/sdb[sdc/sdd/sde]分别创建一个磁盘分区sdb1、sdc1、sdd1、sde1每个设置大小2G即可,其他几个如下图一一创建就行
第三步:mdadm -C -v /dev/md5 -l5 -n3 /dev/sd[bcd]1 -x1 /dev/sde1 创建RAID 5磁盘阵列
- -C:表示新建。
- -v:显示创建过程中的详细信息。
- /dev/md5 :创建RAID 5的名称。
- -a yes: ---auto,表示如果有什么设备文件没有存在的话就自动创建,可省略。
- -l:指定RAID的级别,l5表示创建RAID5。
- -n:指定使用几块硬盘创建RAID,n3表示使用3块硬盘创建RAID。
- /dev/sd [bcd]1:指定使用这3块盘分区去创建RAID。
- -x:指定使用几块硬盘做RAID的热备硬盘,x1表示保留1块空闲的硬盘作备用。
- /dev/sde1:指定用于备用的磁盘
[root@zyf ~]# mdadm -C -v /dev/md5 -l5 -n3 /dev/sd[bcd]1 -x1 /dev/sde1
创建完成后可以使用ls /dev/ 查看是否有md5
第四步:使用cat /proc/mdstat可以查看磁盘状态
或使用 mdadm -D /dev/md5 命令查看RAID5
[root@zyf ~]# mdadm -D /dev/md5
第五步:格式化 mkfs.xfs /dev/md5
第六步:创建或选择一个目录用来挂载
这边创建一个目录 命名为zyf
使用mount /dev/md5 /zyf进行挂载 执行后使用df -Th查看
第七步:因为前面我们设置了一个备用盘,现在使其中一个盘发生故障验证下备用盘是否可以正常运行
可以使用 watch -n mdadm -D /dev/md5来监控RAID5
故障前:
执行删除sdb1命令 mdadm /dev/md5 -f /dev/sdb1
RAID 10
磁盘分区如上面RAID5一样
第一步: mdadm -Cv /dev/md0 -l1 -n2 /dev/sd[bc]1 使用命令创建一个RAID1,命名为md0,将sdb1,sdc1划分到md0中
cat /proc/mdstat 查看
第二步: mdadm -Cv /dev/md1 -l1 -n2 /dev/sd[de]1 创建一个RAID1,命名为md1,将sdd1,sde1划分到md1中
cat /proc/mdstat 查看
第三步: mdadm -Cv /dev/md10 -l0 -n2 /dev/md0 /dev/md1 创建一个RAID0,命名为md10,将md1,md0划分到md10中
cat /proc/mdstat 查看
第四步:mkfs -t xfs /dev/md10 格式化md10
第五步:进行挂载
最终结果: