说明:本实验没有用到多个磁盘,而是利用单个磁盘划分出的多个分区来仿真的,如果在实际项目中,请依情况而定。
1. 分区
我这里划分6个分区,用4个分区组成RAID 5,用1个分区作为spare disk,还有1个分区是做失效恢复时需要的。
[root@echoyang2 ~]# fdisk /dev/vdd
分第一个区,分别按下:n,p,1,Enter,+1024M
分第二个区,分别按下:n,p,2,Enter,+1024M
分第三个区,分别按下:n,p,3,Enter,+1024M
分扩展分区,分别按下:n,e,4,Enter,+3072M
分第四个区,分别按下:n,Enter,+1024M (编号为5)
分第五个区,分别按下:n,Enter,+1024M (编号为6)
分第六个区,分别按下:n,Enter,Enter (编号为7)
保存刚才的动作,按下:w
检查是否有这6个分区文件:
[root@echoyang2 ~]# ls -l /dev/vdd{1,2,3,5,6}
2. 开始制作RAID 5设备
注:如果没有mdadm命令,请先安装:
yum install mdadm -y
[root@echoyang2 ~]# mdadm --create --auto=yes /dev/md0 --level=5 --raid-devices=4 --spare-devices=1 /dev/vdd{1,2,3,5,6}
查看RAID 5的详情:
[root@echoyang2 ~]# mdadm --detail /dev/md0
或者使用这种方式来看:
[root@echoyang2 ~]# cat /proc/mdstat
等待一段时间后,会发现所有磁盘已经就位:
3. 格式化并挂载使用我们的RAID 5
[root@echoyang2 ~]# mke2fs -t ext4 /dev/md0
[root@echoyang2 ~]# mkdir /mnt/raid
[root@echoyang2 ~]# mount /dev/md0 /mnt/raid
在/mnt/raid目录中任意创建文件或文件夹,我们开始做测试:
[root@echoyang2 raid]# pwd
/mnt/raid
[root@echoyang2 raid]# mkdir test; touch test/test.txt; echo "Just a raid test" > test/test.txt
4. 模拟故障并恢复
[root@echoyang2 ~]# mdadm --manage /dev/md0 --fail /dev/vdd5
检查详情:
[root@echoyang2 ~]# mdadm --detail /dev/md0
分区5被标记为faulty,分区6在重建。
查看恢复的进度:
等待一段时间之后,查看是否重建完毕。
将错误的分区移出去,并加入新的分区:
[root@echoyang2 ~]# mdadm --manage /dev/md0 --add /dev/vdd7 --remove /dev/vdd5
执行上面的步骤后,再次检查/dev/md0的详情。
这一切都是在线操作的,所以比较方便。
5. 开机自动启动raid,并自动挂载
[root@echoyang2 ~]# mdadm --detail /dev/md0 | grep -i UUID
复制出现的UUID。
[root@echoyang2 ~]# vim /etc/mdadm.conf
ARRAY /dev/md0 UUID=[这是刚才复制的UUID]
[root@echoyang2 ~]# vim /etc/fstab
/dev/md0 /mnt/raid ext4 defaults 1 2
[root@echoyang2 ~]# umount /mnt/raid; mount -a
[root@echoyang2 ~]# df /mnt/raid
6. 关闭RAID
[root@echoyang2 ~]# umount /mnt/raid
[root@echoyang2 ~]# vim /etc/fstab 去掉注释行
[root@echoyang2 ~]# mdadm --stop /dev/md0
[root@echoyang2 ~]# vim /etc/mdadm.conf 去掉注释行