mdadm配置软件RAID5实现过程详解
冷数据备份
最近搞了3块16T 3.5寸机械盘,企业级HDD,还俩品牌。主机上其实还插着3块U.2 NVME SSD,那HDD就拿来做冷数据备份吧。既然是冷数据要长期保存,那给这三个大块头做个数据冗余。
手头没有硬件RAID卡,其实主要是主板拥挤没地方插了。只能软件RAID方案,3块HDD弄个RAID 5可行。
RAID创建
系统是debian12,安装mdadm,配置RAID5。这些都简单,几条命令的事情,有很多教程。
就是这么简单,可以监控一下状态
RAID同步
到这里就要歇一歇了,RAID虽然已经创建了,但是系统要做数据同步。1300分钟?21.6个小时,要疯。
RAID同步过程,它会将所有选定的驱动器中的数据同步并创建冗余信息,以确保数据的一致性和冗余备份。这个过程会对每个驱动器的所有扇区进行读取和写入,即使驱动器中没有实际数据。
同步时间的长短取决于多个因素,包括驱动器的容量大小、速度、RAID 级别和控制器性能等。RAID 5 和 RAID 6 类型的同步通常比 RAID 1 和 RAID 0 要慢,因为它们需要更多的计算来创建校验信息。
如果你看到是速度实在太慢,我这里是200M左右,可以尝试用这个命令
这里面还有个问题,就是同步过程中,万一机器意外掉电,或者需要关机,会发生什么情况?如果真发生了,开机后运行lsblk,大概率会看到md127。这时候的操作是这样的。先运行下面几个,清除md127,然后重头再来,哈。
经历过曲折,才明白要RAID同步中,如果要关机,需要保存RAID配置。创建完RAID后,就需要生成mdadm.conf,并检查设备名是否正确。这一步要在mdadm create之后就要执行。
RAID挂载
漫长的同步终于到达了100%,希望你没经历21个小时的等待。下面的事情就是大家熟悉的了,创建文件系统,挂载目录
以及修改fstab,添加md0 挂载信息,实现开机自动挂载。完成!
RAID停止及启动
这里不多讲了。禁用RAID阵列之前,先要卸载对应的挂载点
RAID删除
不想要RAID了,铲掉它,OK
然后看下状态,就没有了
体验总结及问题
最后性能测试,忘记了。有机会再做一下,不过实在不想再来一次21小时同步。大家有空可以试试.
最近搞了3块16T 3.5寸机械盘,企业级HDD,还俩品牌。主机上其实还插着3块U.2 NVME SSD,那HDD就拿来做冷数据备份吧。既然是冷数据要长期保存,那给这三个大块头做个数据冗余。
手头没有硬件RAID卡,其实主要是主板拥挤没地方插了。只能软件RAID方案,3块HDD弄个RAID 5可行。
RAID创建
系统是debian12,安装mdadm,配置RAID5。这些都简单,几条命令的事情,有很多教程。
mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sda /dev/sdb /dev/sdc
就是这么简单,可以监控一下状态
watch cat /proc/mdstat
RAID同步
到这里就要歇一歇了,RAID虽然已经创建了,但是系统要做数据同步。1300分钟?21.6个小时,要疯。
RAID同步过程,它会将所有选定的驱动器中的数据同步并创建冗余信息,以确保数据的一致性和冗余备份。这个过程会对每个驱动器的所有扇区进行读取和写入,即使驱动器中没有实际数据。
同步时间的长短取决于多个因素,包括驱动器的容量大小、速度、RAID 级别和控制器性能等。RAID 5 和 RAID 6 类型的同步通常比 RAID 1 和 RAID 0 要慢,因为它们需要更多的计算来创建校验信息。
如果你看到是速度实在太慢,我这里是200M左右,可以尝试用这个命令
echo 200000 > /proc/sys/dev/raid/speed_limit_min
这里面还有个问题,就是同步过程中,万一机器意外掉电,或者需要关机,会发生什么情况?如果真发生了,开机后运行lsblk,大概率会看到md127。这时候的操作是这样的。先运行下面几个,清除md127,然后重头再来,哈。
mdadm -S /dev/md127 mdadm --misc --zero-superblock /dev/sda mdadm --misc --zero-superblock /dev/sdb mdadm --misc --zero-superblock /dev/sdc
经历过曲折,才明白要RAID同步中,如果要关机,需要保存RAID配置。创建完RAID后,就需要生成mdadm.conf,并检查设备名是否正确。这一步要在mdadm create之后就要执行。
mdadm -Ds > /etc/mdadm/mdadm.conf ##检查ARRAY之后的设备名,修改为/dev/md0
RAID挂载
漫长的同步终于到达了100%,希望你没经历21个小时的等待。下面的事情就是大家熟悉的了,创建文件系统,挂载目录
mkfs.ext4 /dev/md0 mkdir /myraid mount /dev/md0 /myraid
以及修改fstab,添加md0 挂载信息,实现开机自动挂载。完成!
vim /etc/fstab
RAID停止及启动
这里不多讲了。禁用RAID阵列之前,先要卸载对应的挂载点
umount /dev/md0 /myraid ##RAID停止 mdadm -S /dev/md0 ##RAID开启 mdadm -A /dev/md0
RAID删除
不想要RAID了,铲掉它,OK
mdadm -S /dev/md0 mdadm --misc --zero-superblock /dev/sda mdadm --misc --zero-superblock /dev/sdb mdadm --misc --zero-superblock /dev/sdc
然后看下状态,就没有了
cat/proc/mdstat
体验总结及问题
- 企业级HDD噪音明显大,设计初衷应该是放机房里的,个人使用稍嫌打扰。
- RAID5同步完成后,查看磁盘和RAID设备情况,一直忙碌并且IO还比较多。个人强迫症,感觉没有实际业务在使用它们,硬盘却不间断咯吱咯吱,很不喜欢这种状态。后来我干脆也铲掉了RAID。弄了个寂寞:-(
最后性能测试,忘记了。有机会再做一下,不过实在不想再来一次21小时同步。大家有空可以试试.
##写性能 dd if=/dev/zero of=/myraid/test.log bs=1M count=8096 ##读性能 dd if=/myraid/test.log of=/dev/null