本攻略详细介绍了在Ubuntu系统中更换RAID1阵列硬盘的完整流程,内容涵盖识别故障硬盘、移除旧盘、插入新盘及使用mdadm命令重建阵列等关键步骤,通过本文,用户可安全高效地完成硬件维护,确保数据同步与系统稳定,实现无缝的数据安全维护体验。在服务器运维和存储管理中,RAID1(磁盘镜像)以其高可靠性和数据冗余特性被广泛应用,它的核心原理是将数据同时写入两块硬盘,确保当其中一块硬盘发生物理故障时,数据不会丢失,系统可以继续运行。
硬盘是消耗品,随着使用时间的增加,故障风险也会随之上升,为了保持系统的长期稳定运行,定期更换损坏或容量不足的硬盘是必不可少的维护工作,本文将详细介绍在 Ubuntu 系统下,如何安全、无损地更换 RAID1 阵列中的硬盘。
准备工作
在开始操作之前,请确保你已准备好以下条件:

- Root 权限:所有操作都需要
sudo权限。 - 新硬盘:已物理插入服务器(假设新硬盘为
/dev/sdb,旧硬盘为/dev/sda,请根据实际情况替换)。 - mdadm 工具:Ubuntu 默认已安装,如未安装请执行
sudo apt install mdadm。 - 数据备份:虽然 RAID1 有冗余,但在更换大硬盘或涉及分区调整时,强烈建议对重要数据进行备份。
第一步:检查 RAID 状态
我们需要确认当前的 RAID 阵列状态,以及哪一块硬盘出现了问题。
打开终端,使用以下命令查看 RAID 详情:
sudo mdadm --detail /dev/md0
(注:如果你的 RAID 设备名称不是 md0,请替换为实际的设备名,如 md1)
在输出信息中,重点关注 Number 列和 State 列,如果某块硬盘的状态显示为 Spare(备用)或 Faulty(故障),则说明该硬盘已退出阵列。
或者,你可以使用更直观的命令查看同步进度:
cat /proc/mdstat
输出示例:
Personalities : [raid1]
md0 : active raid1 sda1[0] sdb1[1]
20971520 blocks super 1.2 [2/2] [UU]
[==================>..] resync = 90.0% (18874368/20971520) finish=0.2min speed=629511K/sec
unused devices: <none>
注意 [UU] 表示两个硬盘都在线且状态良好。
第二步:分区新硬盘
RAID1 阵列中的硬盘必须拥有完全相同的分区方案,这意味着新硬盘的分区大小、类型和数量必须与旧硬盘保持一致。
-
查看旧硬盘的分区情况:
sudo fdisk -l
假设旧硬盘
/dev/sda有一个主分区/dev/sda1。 -
对新硬盘
/dev/sdb进行分区: 使用fdisk工具创建与旧硬盘相同的分区。sudo fdisk /dev/sdb
按照提示进行操作(n -> p -> 1 -> 回车 -> 回车 -> t -> 1 -> fd -> w),请务必确保新分区的编号(如 1)与旧硬盘一致。
第三步:将新硬盘加入 RAID 阵列
这是最关键的一步,在 RAID1 模式下,直接将新分区加入阵列,系统会自动将旧硬盘上的数据镜像同步到新硬盘上。
sudo mdadm --manage /dev/md0 --add /dev/sdb1
执行此命令后,新硬盘会被标记为 spare 状态,并开始自动进行数据恢复。
第四步:监控同步进度
数据同步可能需要较长时间,具体取决于硬盘速度和剩余数据量,请持续监控 /proc/mdstat 来查看进度:
watch -n 2 cat /proc/mdstat
当你看到输出中 [UU] 依然存在,且 resync 进度变为 100% 时,说明同步已经完成。
第五步:移除旧硬盘
只有当新硬盘已经完全同步,且阵列状态稳定后,才能移除旧硬盘,阵列将完全依赖新硬盘和另一块健康的老硬盘维持运行。
-
确认阵列状态:
sudo mdadm --detail /dev/md0
确保状态为
clean或active,且所有设备都在线。 -
移除旧硬盘:
sudo mdadm --manage /dev/md0 --remove /dev/sda1
-
格式化旧硬盘(可选): 如果确定旧硬盘已完全报废且不再需要,可以将其格式化为 ext4 或直接丢弃,但建议保留分区表以防万一。
第六步:更新配置文件
为了让系统重启后能自动识别 RAID 阵列,必须更新 mdadm.conf 配置文件。
-
生成新的配置:
sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
-
更新 initramfs:
sudo update-initramfs -u
完成上述步骤后,再次检查 RAID 状态:
sudo mdadm --detail /dev/md0
此时你应该看到阵列中只有新硬盘和另一块老硬盘,且状态为 [UU]。
通过遵循以上步骤,你可以安全地在 Ubuntu 系统下完成 RAID1 硬盘的更换,这不仅延长了存储系统的使用寿命,更重要的是,它确保了数据在硬件升级过程中的绝对安全。
