我有一个家用的 NAS,我需要稍微重新配置一些驱动器的使用。
我有一个由两个 3TB 驱动器组成的 mdadm RAID1。每个驱动器都有一个 ext3 分区,该分区使用整个驱动器。我需要缩小两个驱动器上的 ext3 分区,并在其中一个驱动器上添加第二个 8GB 左右的 ext3 分区,并将大小相同的分区交换到另一个驱动器。我想我已经弄清楚了步骤,但需要一些确认。
- 调整 mdadm RAID 的大小
resize2fs /dev/md0 [size]
,使其大小略大于驱动器上当前使用的空间 - 从 RAID 中移除一个驱动器
mdadm /dev/md0 --fail /dev/sda1
- 使用 parted 调整已删除驱动器的大小
- 使用 parted 将新分区添加到驱动器
- 将驱动器还原到 RAID
mdadm -a /dev/md0 /dev/sda1
- 对另一台设备重复 2-5
- 调整 RAID 大小以使用完整分区
mdadm --grow /dev/md0 -z max
是否有我遗漏或未考虑到的事情?
答案1
是的,你错过了一些非常重要的东西,而我已经吃过不少苦头了。http://www.zdnet.com/blog/storage/why-raid-5-stops-working-in-2009/162指出现在从统计上来说,RAID 阵列上出现坏扇区已是不可避免的。
如果您的 RAID 阵列性能下降,并且其中一个驱动器出现坏扇区,mdraid 将关闭该阵列。这将在您重新添加驱动器的恢复过程中发生,因为需要读取其他驱动器的每个扇区。我花了相当多的时间来恢复,这真的很棘手。\
因此,您事先应该做的是:
echo repair > /sys/block/mdX/md/sync_action
答案2
您的步骤看起来不错,但有两个例外:
之后
resize2fs
,您需要缩小 mdadm 阵列。例如,mdadm --grow --size xxx
按照步骤 #1a 操作。我还建议在启动救援 CD 时执行所有这些操作,例如系统救援光盘,而不是在 /dev/md0 挂载时。通过 fsck 来跟踪调整大小,以确保一切正常。