RAID 磁盘阵列
一、RAID 介绍
RAID 中文简称为独立冗余磁盘阵列,其是将独立的物理硬盘按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而得到比单个硬盘更高的存储性能和提供数据备份技术。
组成磁盘阵列的不同方式称为RAID级别(RAID Levels)
常用的RAID级别有:RAID0、RAID1、DRAD5、RAID6、RAID10(RAID1+0)
1. RAID 0
条带化存储
RAID 0 所需要的硬盘个数为 N(N >= 1)
它是连续以字节为单位分割数据,并行读取/存储多个硬盘,达到高数据传输
没有数据冗余备份,所以当其中一个硬盘失效时会影响所有数据
不可以将其用作数据安全性高的场合
2. RAID 1
镜像存储
RAID 1 所需要的硬盘个数是偶数个
每两个硬盘间相互备份,当数据繁忙时可直接读取镜像硬盘中的数据
所以RAID 1 的读取速度高,但写入数据速度较低
当源硬盘失效时镜像硬盘可直接代替源硬盘工作
3. RAID 5
RAID 5 所需硬盘数为 N(N >= 3)
硬盘利用率为 (N-1) /N
将一份数据分成 N-1 份,同时还有一份校验数据,把N份数据循环均衡存储进N块硬盘
同时读写,但因为有校验机制的存在,所以读取数据速度高,写入数据速度相对较低
可靠性高,一块硬盘失效,不影响数据
4. RAID 6
RAID 6 所需要的硬盘数为 N(N >= 4)
硬盘利用率为(N - 2)/N
在RAID 5 的基础上增加了独立的奇偶校验信息块
两个独立的奇偶系统使用的是不同的算法,即使两块硬盘同时失效也不会影响数据的使用
相对于 RAID 5 写入数据性能较差
可靠性高,两块硬盘失效,不影响数据
5. RAID 10
先做镜像再做条带(RAID 1 + RAID 0)
RAID 10 所需硬盘个数为 N(N为偶数且 N>=4)
利用率为 N/2
N/2块硬盘同时写入,N块盘同时读取
性能高,可靠性高
还有 RAID 01 ,它与RAID 10 相同,但它是先做条带再做镜像
二、RAID的级别总结
RAID 级别 | 硬盘数量 | 硬盘利用率 | 读性能 | 写性能 | 高可用性 | 特点 |
---|---|---|---|---|---|---|
RAID 0 | N | N 100% | 高 | 高 | 无 | 追求最大容量和读写速度,坏一块硬盘,数据全部异常 |
RAID 1 | N(偶数) | N/2 50% | 低 | 低 | 中等 | 追求安全,只坏一块硬盘,不影响使用,数据也不影响 |
RAID 5 | N >= 3 | (N-1)/N | 高 | 低 | 高 | 成本控制前提下,追求最大容量、速度及高可用性,只坏一块硬盘,不影响数据 |
RAID 6 | N >= 4 | (N-2)/N | 高 | 低 | 很高 | 比RAID5安全性高,但写入速度低,可以坏两个硬盘不受影响 |
RAID 10 | N >=4(偶数) | N/2 50% | 高 | 中等 | 很高 | 综合RAID0和RAID1的优点,既有速度又有高可用,每个基组可以坏一个硬盘,数据不受影响 |
三、命令
命令:
mdadm
选项:
选项 | 作用 |
---|---|
-C | 创建RAID |
-v | 显示创建过程信息 |
-l数字 | 创建的是RAID的级别,级别数是什么这个数字就是什么 |
-n数字 硬盘名1 硬盘名2 …… | 设置组成磁盘阵列的硬盘,有多少个硬盘,数字就是多少 |
-x数字 硬盘名2 硬盘名2 …… | 设置热备份硬盘,硬盘的个数有多少个硬盘,数字就是多少 |
-D | 查看RAID的信息 |
设备名 -f 硬盘名 | 强制损坏磁盘阵列中的硬盘分区 |
-S | 停止RAID |
-As | 激活RAID |
-R | 强制启动RAID |
-G 设备名 -n数字 -a 硬盘名 | 向磁盘阵列中添加硬盘,数字=硬盘添加进磁盘阵列后的硬盘总数 |
--misc --zero-superblock | 解除硬盘与RAID的关联 |
四、实操 RAID 5
主机硬盘情况如下:
1. 磁盘阵列 RAID 5
(1)创建RAID 5
组成磁盘阵列的硬盘为 sdb1、sdc1、sdd1,热备份盘为 sde1
[root@localhost ~]# mdadm -Cv /dev/md5 -l5 -n3 /dev/sd[b-d]1 -x1 /dev/sde1
[root@localhost ~]# mdadm -D /dev/md5
(2)格式化 RAID 5
将 RAID 5 格式化为 xfs 文件系统类型
[root@localhost ~]# mkfs.xfs /dev/md5
(3)挂载 RAID 5
将 RAID 5 挂载至 /data/md5 目录下
[root@localhost ~]# mkdir -p /data/md5
[root@localhost ~]# mount /dev/md5 /data/md5
2. 验证 RAID5 的高可用性
(1)模拟sdb1损坏
当sdb1分区损坏时,验证RAID5 中的数据是否收到影响
[root@localhost ~]# mdadm /dev/md5 -f /dev/sdb1
[root@localhost ~]# mdadm -D /dev/md5
[root@localhost ~]# cd /data/md5/
[root@localhost md5]# touch 1 2 3
[root@localhost md5]# ls
(2)模拟sdb1、sdc1损坏
当RAID5 中的sdb1 和 sdc1分区损坏时,验证RAID5 中的数据是否收到影响
[root@localhost md5]# mdadm -D /dev/md5
[root@localhost md5]# mdadm /dev/md5 -f /dev/sdc1
[root@localhost md5]# mdadm -D /dev/md5
[root@localhost md5]# cd /data/md5
[root@localhost md5]# touch 4 5 6
[root@localhost md5]# ls
(3)模拟sdb1、sdc1、sdd1都损坏
当RAID5 中的sdb1、sdc1、sdd1分区损坏时,验证RAID5 中的数据是否收到影响
[root@localhost md5]# mdadm -D /dev/md5
[root@localhost md5]# mdadm /dev/md5 -f /dev/sdd1
[root@localhost md5]# mdadm -D /dev/md5
[root@localhost md5]# ls
[root@localhost md5]# touch 7 8 9
3. 删除 RAID5
顺序:
解挂载RAID5 ------> 停止运行RAID5 ------> 解除硬盘分区与RAID5的联系
[root@localhost ~]# umount /dev/md5
[root@localhost ~]# df -h
[root@localhost ~]# mdadm -S /dev/md5
[root@localhost ~]# mdadm --misc --zero-superblock /dev/sd[b-d]1
[root@localhost ~]# lsblk
五、实操 RAID 10
主机硬盘情况如下:
1. 磁盘阵列 RAID 10
(1)创建RAID 10
组成磁盘阵列的硬盘为 sdb1、sdc1、sdd1、sde1,热备份盘为 sdf1
[root@localhost ~]# mdadm -Cv /dev/md10 -l10 -n4 /dev/sd[b-e]1 -x1 /dev/sdf1
[root@localhost ~]# mdadm -D /dev/md10
(2)格式化 RAID 10
将RAID 10 格式化为 xfs文件系统类型
[root@localhost ~]# mkfs.xfs /dev/md10
(3)挂载 RAID 10
将 RAID 10 挂载至 /data/md10 目录下
2. 检验 RAID 10 的高可用性
将 RAID 10 中的sdb1、sdc1、sdd1全部破坏,检验是否对RAID 10 中的数据有影响
[root@localhost md10]# touch 1
[root@localhost md10]# ls
[root@localhost md10]# cd
[root@localhost ~]# mdadm /dev/md10 -f /dev/sd[b-d]1
[root@localhost ~]# mdadm -D /dev/md10
3. 删除 RAID 10
删除方法与删除RAID 5一致
六、实操 用LVM创建RAID 5
主机硬盘情况如下:
1. 创建逻辑卷
将sdb1、sdc1、sdd1、sde1都创建成为逻辑卷
[root@localhost ~]# pvcreate /dev/sdb1
[root@localhost ~]# pvcreate /dev/sdc1
[root@localhost ~]# pvcreate /dev/sdd1
[root@localhost ~]# pvcreate /dev/sde1
[root@localhost ~]# vgcreate bvg /dev/sdb1
[root@localhost ~]# vgcreate cvg /dev/sdc1
[root@localhost ~]# vgcreate dvg /dev/sdd1
[root@localhost ~]# vgcreate evg /dev/sde1
[root@localhost ~]# lvcreate -L 9G -n blv bvg
[root@localhost ~]# lvcreate -L 9G -n clv cvg
[root@localhost ~]# lvcreate -L 9G -n dlv dvg
[root@localhost ~]# lvcreate -L 9G -n elv evg
2. 用逻辑卷创建RAID 5
组成磁盘阵列的硬盘为 blv、clv、dlv,热备份盘为 elv
[root@localhost ~]# mdadm -Cv /dev/md5 -l5 -n3 /dev/bvg/blv /dev/cvg/clv /dev/dvg/dlv -x1 /dev/evg/elv
[root@localhost ~]# mdadm -D /dev/md5
3. 格式化 RAID 5
将 RAID 5 格式化为 xfs 文件系统类型
[root@locahost ~]# mkfs.xfs /dev/md5
4. 挂载 RAID 5
将 RAID 5 挂载至 /data/lvmd5 目录下
[root@localhost ~]# mkdir -p /data/lvmd5
[root@localhost ~]# mount /dev/md5 /data/lvmd5/
[root@localhost ~]# df -h
5. 验证 RAID5 的高可用性
与之前一致