mdadm 命令用以组建和管理软 RAID。
软硬 RAID 比较
软 | 硬 |
---|---|
软件实现,灵活度高,成本低。 | 阵列卡实现,成本高,简单省心。 |
消耗系统 CPU 资源 | 不消耗系统 CPU 资源 |
适合 HomeServer 低成本方案 | 适合企业使用,稳定。 |
软 raid 大致流程:
fdisk
命令创建多个硬盘分区,mdadm
命令将多个硬盘分区组成软 raid,/etc/fstab
开机自动挂载。initramfs
否则重启后无法正常开机。
fdisk 命令创建并转化分区为 Linux RAID 类型。
分区效果:
设备 起点 末尾 扇区 大小 类型
/dev/sdb1 2048 1677723647 1677721600 800G Linux RAID
设备 起点 末尾 扇区 大小 类型
/dev/sdc1 2048 1677723647 1677721600 800G Linux RAID
以下命令分别用以创建 RAID0、RAID1、RAID5
mdadm -Cv /dev/md0 -n 2 -l 0 /dev/sd[b-c]1 #raid0
mdadm -Cv /dev/md1 -n 2 -l 1 /dev/sd[b-c]1 #raid1
mdadm -Cv /dev/md5 -n 3 -l 5 /dev/sd[b-d]1 #raid5
-C
创建 raid,-v
显示过程/dev/md0
,raid 的名字:md + 自定义数字-n
组成 raid 的分区数-l
阵列等级/dev/sd[b-c]1
,组成 raid 的分区我使用上面的命令创建了 RAID1 并命名为/dev/md1。以下使用以下命令,查看 md1 详细信息:阵列等级、容量、同步进度、组成 RAID 的分区等信息。
mdadm -D /dev/md1
mdadm -D --scan > /etc/mdadm.conf
格式化 md1
# ext4格式
mkfs.ext4 /dev/md1
支持格式包括:
mkfs.cramfs mkfs.ext3 mkfs.fat mkfs.msdos mkfs.vfat
mkfs.bfs mkfs.ext2 mkfs.ext4 mkfs.minix mkfs.ntfs
配置 md1 开机自动挂载目录
nano /etc/fstab
在 /etc/fstab
文件末尾添加以下信息
#文件系统 挂载点 文件系统类型 操作权限
/dev/md1 /mnt/r1 ext4 defaults 0 0
立即挂载 /etc/fstab
文件中描述的文件系统
mount -a
在配置好软 raid 和 /etc/fstab
后,运行以下命令更新 initramfs
:
sudo update-initramfs -u
这点非常重要!否则重启后软 raid 的名字会变成 md127,系统无法正常开机并提示(ctrl+D)。
已经发生 md127 问题,开机提示(ctrl+D)如何解决:
输入 root 密码,登录到 root 用户。
lsblk
命令查看软 raid 名字变成了 md127。
编辑 /etc/fstab
,暂时注释掉软 raid 挂载信息。重启。
重新进入系统后参考以下命令将 md127 重命名原来的名字
#假如原来的名字是md1,这样恢复
mdadm --assemble /dev/md1 --name=1 --update=name /dev/sd[b-c]1
#假如原来的名字是md2,这样恢复
mdadm --assemble /dev/md2 --name=2 --update=name /dev/sd[b-c]1
编辑 /etc/fstab
,取消掉刚才的注释。
运行 sudo update-initramfs -u
更新 initramfs。
重启,正常开机,说明配置 OK。
如果 RAID 中某块磁盘(本文“分区”和“磁盘”是一个意思)出现问题,处理步骤是:
1.sudo mdadm -D /dev/md1
查看和确认异常,。
2.移除故障盘
系统发现故障通常会自动移除掉故障盘,此时不用手动移除故障硬盘。如果某块硬盘的寿命快到期了,想要手动移除和更换某块硬盘,可以参考一下命令。
(md1和sdc1改成你的信息)
sudo mdadm /dev/md1 -r /dev/sdc1
3.添加新硬盘
(md1和sdc1改成你的信息)
sudo mdadm /dev/md1 -a /dev/sdc1
RAID恢复后正在自动同步两块硬盘数据
注意:本文中大多数命令都需要使用 sudo 权限或者以 root 用户操作。
参考以下优秀网文:
软RAID管理命令mdadm详解 - 三木燕 - 博客园 (cnblogs.com)