如何在调用以下命令后暂停执行 shell 脚本,直到 raid 阵列组装完毕?据我了解,这是一个异步过程,需要轮询 raid 阵列的状态。
mdadm --create -l10 -n4 /dev/md0 /dev/xvdh*
答案1
由于您正在创建新的 RAID 10,因此您可以立即开始使用该阵列。初始重新同步将在后台继续。如果构建 RAID 5 阵列,则只需等待它完成(对于 RAID 6 来说,这也是一个好主意)。
看初始阵列创建有关更多详细信息,请参阅 Linux RAID Wiki。
答案2
编辑于 2012 年 10 月 27 日星期六 17:03:42 CDT:
虽然您确实可以在 RAID 10 阵列完成重新同步之前使用它,但我认为无论如何我都会回答有关如何在重新同步过程中暂停的问题。
这是您暂停脚本以进行重新同步过程的方式(IMO/AFAIK/等等):
# Add this where you want to pause...
while [ -n "$(mdadm --detail /dev/md0 | grep -ioE 'State :.*resyncing')" ]; do
sleep 1
done
要使用上面的例子,整个脚本将是:
mdadm --create -l10 -n4 /dev/md0 /dev/xvdh*
while [ -n "$(mdadm --detail /dev/md0 | grep -ioE 'State :.*resyncing')" ]; do
sleep 1
done
mke2fs -t ext4 -F /dev/md0
请注意,上述脚本尚未测试,可能包含错误。