可直接用 mdadm --add 在线添加热备盘,需确保硬盘为干净裸盘,执行后立即生效并自动接管故障盘,但须更新 /etc/mdadm.conf 并重建 initramfs 以持久化配置。

可以直接用 mdadm --add 将一块未使用的物理硬盘添加为现有 RAID 阵列的热备盘,无需停机、无需重建阵列,整个过程在线完成。
确认目标硬盘状态与可用性
热备盘必须是干净、未被格式化、未挂载、未参与任何 RAID 的裸盘。常用检查步骤:
- 用
lsblk或fdisk -l查看新盘设备名(如/dev/sdd),确认无分区、无文件系统、无挂载点 - 运行
mdadm --examine /dev/sdd,输出应为 “No md superblock detected” —— 表明该盘未被 mdadm 管理过 - 若盘曾用作 RAID 成员,需先清除元数据:
mdadm --zero-superblock /dev/sdd
将硬盘添加为热备盘
执行以下命令(以 RAID 设备 /dev/md0 和新盘 /dev/sdd 为例):
sudo mdadm /dev/md0 --add /dev/sdd
成功后,系统会立即识别该盘为 spare,并在内核日志中记录(可用 dmesg | tail 查看)。此时可通过以下方式验证:
-
cat /proc/mdstat:在阵列信息末尾看到spare devices: /dev/sdd -
mdadm --detail /dev/md0:输出中Array State显示类似UUU_(下划线代表 spare),且Unused Devices区域列出/dev/sdd
观察热备行为与自动接管机制
热备盘平时不参与读写,仅处于待命状态。当阵列中某块活动盘发生故障(如掉线、I/O 错误)时,mdadm 会在检测到故障后自动将其标记为 faulty,并立刻启动 spare 盘进行替换与重建。
- 重建过程全自动,无需人工干预;重建进度可在
/proc/mdstat实时查看 - 若想模拟测试,可手动标记一块盘为故障:
sudo mdadm /dev/md0 --fail /dev/sdb(慎用于生产环境) - 注意:单盘 RAID1/RAID10 可立即启用 spare;RAID5/RAID6 需等待校验重建完成才恢复冗余
持久化配置(关键!避免重启失效)
mdadm --add 是运行时操作,重启后热备关系会丢失。必须更新 /etc/mdadm.conf(或 /etc/mdadm/mdadm.conf,依发行版而定):
- 运行
sudo mdadm --detail --scan >> /etc/mdadm.conf(追加当前阵列+spare信息) - 或手动在配置文件中确保包含类似行:
ARRAY /dev/md0 level=raid5 num-devices=3 spares=1 UUID=xxx...
并确认/dev/sdd已被识别为 spare 成员 - 更新 initramfs(Debian/Ubuntu):
sudo update-initramfs -u;RHEL/CentOS:sudo dracut -f


















