实验环境vmware12 系统CentOS6.7 64位
配置RAID5
RAID5至少需要三块硬盘,读写数据的时候会将数据分布的读写到所有硬盘上
虚拟机设置中,除系统盘外,增加4块硬盘来做实验,其中3块硬盘为活动盘,另一块做热备盘
进入系统fdisk -l命令查看,/dev/sdb、/dev/sdc、/dev/sdd、/dev/sde
当前mdadm版本
如果没有mdadm命令,需要手动安装
安装mdadm软件
yum -y install mdadm
直接对4块硬盘做软raid,其中1块硬盘为热备盘
mdadm -C /dev/md5 -a yes -l 5 -n 3 -x 1 /dev/sd[b,c,d,e]
说明:
-C:创建模式
-a {yes|no}:自动创建对应的设备,yes表示会自动在/dev下创建RAID设备
-l #:指明要创建的RAID的级别(-l 0 表示创建RAID0)
-n #:使用#个块设备来创建此RAID(-n 3 表示用3块硬盘来创建这个RAID)
-x #:当前阵列中热备盘只有#块(-x 1 表示热备盘只有1块)
此时再通过fdisk -l命令即可看到/dev/md5
查看raid5状态
cat /proc/mdstat
mdadm -D /dev/md5
实验环境的硬盘比较小,所以几乎是瞬间创建完成,下图可以看出spare /dev/sde为热备盘
添加raid5到raid配置文件中/etc/mdadm.conf(默认此文件不存在)
echo DEVICE /dev/sd[b,c,d,e] >> /etc/mdadm.conf
mdadm -Ds >> /etc/mdadm.conf
此时就可以格式化磁盘了
mkfs.ext4 /dev/md5
创建挂载点并挂载磁盘
mkdir /raid5
mount /dev/md5 /raid5/
raid5的可用大小为38G,即(3-1)x20G
添加至开机自动挂载
echo "/dev/md5 /raid5 ext4 defaults 0 0" >> /etc/fstab
对/raid5进行写入测试,随便创建个文件
touch /raid5/blog.whsir.com
最后需要reboot命令重启,测试开机是否自动挂载,raid5是否正常
模拟磁盘故障
我在这里模拟/dev/sdc磁盘故障
mdadm /dev/md5 -f /dev/sdc
查看重建状态,因为之前创建raid5的时候设置了一个热备盘,所以当有故障的磁盘时,热备盘会自动顶替故障磁盘工作,阵列也会重建,通过cat /proc/mdstat可以看到当前阵列状态
当某个磁盘出现故障时,相应的设备方括号标记(F),如上图,sdc1
其中[3/2]的第一位数表示阵列所包含的设备数,第二位数表示活动的设备数,因为当前有一个设备故障,所以第二位数为2,此时阵列以降级模式运行,虽然阵列仍然可用,但是不具有数据冗余
[U_U]表示正常使用的设备是/dev/sdb,/dev/sdd,假如这里是/dev/sdd出现故障,则变成[UU_]
重建完成后查看阵列状态,此时raid恢复正常
接下来移除故障的磁盘
mdadm /dev/md5 -r /dev/sdc
因为刚才模拟损坏了一块盘,所以当前阵列没有热备盘了,所以我们需要在添加一块新的热备盘,这里为了方便,直接将刚才模拟损坏的硬盘再次添加到raid5中
mdadm /dev/md5 -a /dev/sdc
此时/dev/sdc变成了热备盘,故障测试结束。
软RAID增加硬盘
软raid使用了一段时间后,发现磁盘空间不足了,此时就需要向当前软RAID中增加新的磁盘,提高RAID的空间
关闭当前系统,增加磁盘,因为我是vm实验环境,关闭虚拟机后直接添加硬盘即可
通过lsblk命令,可以看到刚才添加的磁盘是sdf
向当前raid5中增加一块硬盘
mdadm /dev/md5 -a /dev/sdf
查看RAID状态
刚才向RAID中增加的磁盘,会被当作热备盘,还需要把热备盘加入到RAID的活动盘中
mdadm -G /dev/md5 -n4
上图可以看到,刚新加的/dev/sdf已经变成了活动盘,但是Array Size : 41910272 (39.97 GiB 42.92 GB)并没有变大,那是因为构建没有完成。
等cat /proc/mdstat构建完成,RAID的容量就会变成(4-1)x20G,下图是已经构建完成后的RAID状态,可以看到Array Size : 62865408 (59.95 GiB 64.37 GB)增加了
但是通过df -Th查看文件系统容量发现大小并没有改变,所以还需要对文件系统扩容,根据磁盘大小,扩容时间也不相同,所以扩容时耐心等待resize2fs /dev/md5
上图可以看到扩容成功,数据正常,新增磁盘成功
修改RAID的配置文件vi /etc/mdadm.conf如下图所示
最后reboot重启系统,确认RAID是否正常