如何正确拔出(移除)并随后插入(插入)带有 LVM2 的可移动(热插拔、USB 等)存储设备?
我发现这张纸条
移除(拔掉插头、弹出):
lvchange -an /dev/your_volume_group_name
vgexport -a
插入(插头):
vgimport -a
lvchange -ay /dev/your_volume_group_name
但我不确定使用“all”选项-a
是否太过分了?
另外,我想知道在某些情况下是否需要vgscan
pvscan
在这种情况下使用?我正在考虑自动化解决方案。
答案1
您不必导出 VG,它用于将 VG 从一个系统迁移到另一个系统。
vgchange -an vgname
只需停用要拔出的卷组上的所有逻辑卷 即可。
稍后,重新插入设备后,vgchange -ay vgname
将重新激活您的 vgname VG 中的所有逻辑卷,然后您可以挂载 LV 并使用。
设备识别取决于硬件和内核模块等,但这应该适用于最新的套件。
答案2
我使用类似这样的脚本:
- 卸载卷组中的所有文件系统VG名称
- 如果 vg_name 中的所有文件系统均已卸载,则将 VG 设置为不可用
- 不要忘记将内存缓冲区同步到磁盘......
- sispmctl 用于关闭我的外部磁盘
#!/bin/bash echo "卸载文件系统" 挂载| grep vg_name && { 挂载| grep vg_name | grep vg_name | grep vg_name切 -d' ' -f3 | xargs umount -v } 挂载| grep vg_name || { echo "设置VG不可用" /sbin/vgchange -an /dev/vg_name && { echo“同步磁盘” 同步;同步 && { echo“关闭磁盘电源” /usr/local/bin/sispmctl -D 01:01:4b:54:e5 -f 1 } } }
连接磁盘后,当系统上有适当的模块可用时,内核将自动找到它(主流发行版通常会出现这种情况)
仅当 PV/VG/LV 更改并且 VG 连接到不同系统时才需要导出/导入。在这种情况下,vgexport 将在 vgchange 之后进行。