我正在寻找一种方法来等待 AWS 实例中的 LVM 初始化。理想情况下,它允许等待“所有”VG。我有 4 个 VG 和 6 个 LV 要初始化,目前 cloud-init 脚本可以:
aws ec2 attach-volume ....
aws ec2 attach-volume ....
...
aws ec2 wait volume-in-use --volume-ids vol-id vol-id ...
udevadm settle
vgchange -a y
mount ...
mount ...
...
不幸的是,在vgchange
运行时,只有一个 VG 可见,第二个mount
命令失败。
在这种情况下,是否有一种等待 LV 的好方法,而无需手动循环睡眠/等待/dev/mapper/...
每个卷?卷需要动态附加,而不是在实例描述中设置它们。
而且我会在其中添加类似 a
sleep 5
的东西。一段时间后,我使用非常基本的脚本解决了这个问题:
这些
XXscan
命令本身是不够的,因为可以在运行attach-volume
命令后扫描所有现有设备,但这并不意味着所有需要的设备都存在。这意味着一切都XXscan
结束得太早了。