服务器硬盘批量坏盘,运维快速替换数据迁移流程
服务器多块硬盘同时告警时,业务可能随时中断。
本文面向零基础运维,梳理从确认坏盘到替换重建、数据迁移与验证的完整流程,让你能按命令逐步操作,尽快恢复数据可用性。
先确认哪些盘真的坏了
不要急着拔盘。
先用命令收集硬盘健康状态和阵列信息。
- 查看物理盘清单与容量:
lsblk -d -o NAME,SIZE,TYPE,MODEL - 检查 SMART 健康:
smartctl -H /dev/sdX,若显示FAILED或大量重映射扇区,基本可判定坏盘。 - 查看 RAID 状态:
cat /proc/mdstat或mdadm --detail /dev/md0,关注faulty、removed或degraded字样。 - 查看 LVM 卷组:
vgs、lvs,确认坏盘所属的 PV、VG、LV 关系。
判断条件:若 mdstat 显示多个 _ 且状态为 degraded,说明阵列已降级;
若同时有盘掉线,优先处理仍可读的阵列,避免二次故障。
替换前先做安全下线
确认坏盘后,不要直接热插拔。
先让阵列停止使用该盘。
- 将故障盘标记为失效:
mdadm /dev/md0 --fail /dev/sdX1 - 从阵列移除:
mdadm /dev/md0 --remove /dev/sdX1 - 确认移除成功:
cat /proc/mdstat应显示该盘已不在活动列表。 - 若盘上有 LVM,先停用卷组:
vgchange -an vg_name,再执行pvremove /dev/sdX1清理残留。
注意:如果系统盘或数据盘正在被挂载使用,先 umount 或迁移业务到其他节点,避免文件系统损坏。
物理替换与阵列重建
准备好同容量或更大容量的新盘,插入槽位。
- 确认新盘被识别:
lsblk出现新的/dev/sdY。 - 复制分区表:
sfdisk -d /dev/sdX > /tmp/part.table && sfdisk /dev/sdY < /tmp/part.table - 将新盘加入阵列:
mdadm /dev/md0 --add /dev/sdY1 - 观察重建进度:
watch cat /proc/mdstat,等待resync完成,状态变为active。
重建期间避免重启或高负载操作,否则可能再次降级。
数据迁移到新盘或新服务器
如果坏盘数量多、阵列无法重建,需要把数据迁移到备用盘或新服务器。
- 使用
rsync -avP /data/ /mnt/newdisk/同步数据,-P显示进度并支持断点续传。 - 若使用 LVM,可先
pvmove /dev/sdX1 /dev/sdY1在线迁移数据块,再移除旧盘。 - 迁移完成后,用
diff -r /data /mnt/newdisk或md5sum抽样校验关键文件。
验证方式:挂载新盘后,检查业务是否能正常读写,并查看 dmesg -T | grep -i error 确认无新报错。
常见问题与避坑
问:替换盘容量必须一样吗?
RAID 中替换盘容量不能小于原盘,否则无法加入;LVM 中可先扩容 PV 再调整 LV。
问:重建时业务还能用吗?
可以,但性能会下降。建议在低峰期操作,并监控 iostat -x 2 的 %util 是否持续过高。
问:拔盘后系统不识别怎么办?
检查背板供电和线缆,或执行 echo 1 > /sys/class/scsi_device/*/device/rescan 重新扫描。
避坑:不要同时拔多块盘;
不要跳过标记失效直接热插拔;
不要在没有备份的情况下重建。
整个流程的核心是先确认故障范围,再安全下线,最后替换重建并验证。
每一步都有命令可查、有结果可看,按顺序执行能最大限度降低数据丢失风险。