所有系统运行正常

支持比特币、门罗币、USDT、以太坊或 Solana 付款 · 仅需邮箱注册

存储与 RAID

使用 mdadm 管理软 RAID:检查、更换与重建

读懂 /proc/mdstat,找出故障硬盘,并在我们换盘后重建镜像。

阅读约 7 分钟审核于 2026年9月25日

两块互为镜像的 NVMe 硬盘,以及一块正插入服务器托架的替换硬盘

检查阵列

$ cat /proc/mdstat
$ mdadm --detail /dev/md2

健康的 RAID 1 显示为 [2/2] [UU]。[2/1] [U_] 表示有一个成员盘缺失或已故障。

识别故障硬盘

$ mdadm --detail /dev/md2 | grep -E 'faulty|removed'
$ nvme list                         # NVMe: model and serial number
$ smartctl -i /dev/sdb              # SATA/SAS drives

提交工单时请附上故障硬盘的序列号(以及健康硬盘的序列号,以免我们拔错硬盘)。故障硬盘会在 2 小时内更换。

换盘后重建

将健康硬盘的分区表复制到新硬盘,为其重新生成标识符,然后把新硬盘的各个分区重新加入对应的阵列。本例中 nvme0n1 是健康硬盘,nvme1n1 是新硬盘:

$ sgdisk -R /dev/nvme1n1 /dev/nvme0n1   # copy table TO the new disk
$ sgdisk -G /dev/nvme1n1                # randomise its GUIDs
$ mdadm /dev/md0 --add /dev/nvme1n1p2
$ mdadm /dev/md2 --add /dev/nvme1n1p3
$ watch -n 5 cat /proc/mdstat

注意顺序:sgdisk -R 是从第二个设备复制到第一个设备。如果写反,健康硬盘的分区表就会被抹掉。

最后,在新硬盘上重新安装引导加载程序(BIOS 系统执行 grub-install /dev/nvme1n1,UEFI 系统则复制 EFI 系统分区),这样服务器从任意一块硬盘都能启动。

设置告警通知

在 /etc/mdadm/mdadm.conf 中设置 MAILADDR root(或改为应接收告警的邮箱),并确保 mdmonitor 服务正在运行:阵列一旦降级,mdadm 会立即发出告警。

存储与 RAID

更多存储与 RAID 指南

全部 3 篇指南