![中断 mdadm --grow 操作是否安全?](https://linux22.com/image/610753/%E4%B8%AD%E6%96%AD%20mdadm%20--grow%20%E6%93%8D%E4%BD%9C%E6%98%AF%E5%90%A6%E5%AE%89%E5%85%A8%EF%BC%9F.png)
我最近将 RAID5 中的磁盘从 3x2TB 更改为 3x3TB。我还想将块大小从默认的 512k 更改为 128k。我已将所有新设备添加到阵列,然后运行:
mdadm /dev/md1 --grow --backup-file=/boot/md1_grow_backup_file --chunk=128
由于块大小发生变化并且其指定的文件位于不同的块设备上,因此 --backup-file 选项是必要的。
我必须关闭服务器才能物理移动它,但重塑操作比我预期的要慢得多,所以我想知道我是否可以中断该过程并在重新启动后继续。
手册页中有一些关于中断 --grow/reshape 过程的信息,但在我看来,这是为了应对一些灾难性情况 - 断电、服务器锁定等。
是否可以正常停止 mdadm 阵列重塑?如果可以,如何停止阵列以及如何在启动后恢复重塑?是否需要备份文件?
答案1
首先,您可能是 MD 默认重建速度较慢的受害者。
有一篇涵盖这些选项的好文章:
http://www.cyberciti.biz/tips/linux-raid-increase-resync-rebuild-speed.html
简而言之:
sysctl -w dev.raid.speed_limit_min=1000
sysctl -w dev.raid.speed_limit_max=100000
为了保证有 1 到 100MB 可用于重建,如果服务器处于活动状态,则提高最小值是加快速度的好方法,但会以牺牲一些响应能力为代价。
答案2
您应该在关机之前停止阵列:
mdadm -S /dev/md1
您还可以使用 /sys/block/md1/md 中的变量,最有趣的是 array_state 和 sync_action。以下是文档:https://www.kernel.org/doc/Documentation/md.txt但请记住,您只有一次尝试机会。
如果没有这些数据的备份 - 您不应该关闭机器。
请在此处写下你做了什么以及突袭数据是否幸存下来。