我有一个单卷组 (VG),它由分布在各个磁盘上的多个物理卷 (PV) 组成。现在我想将位于磁盘 A 上的所有 PV 移动到新磁盘 B。但是,由于我没有足够的插槽来添加磁盘 B,因此我必须在操作期间暂时移除第三个磁盘 C(它也包含属于同一 VG 的 PV)。之后,当磁盘 A 不再需要时,将再次为磁盘 C 腾出空间。
现在我的问题是:缺少磁盘 C 是否会影响 PV 从磁盘 A 移动到磁盘 B?
当然,我可以用一堆回环设备在试运行中尝试一下。但即使它在试运行中有效,我也不确定它是否真的有效指定的正常工作(因此不会导致真实数据丢失)。
答案1
如果磁盘 C 上的 LV 仅在磁盘 C 上,则可以vgsplit(8)将磁盘 C 放入新的 VG,然后删除磁盘 C,执行您需要的操作(可能pvmove(8)), 进而vgmerge(8):
vgsplit existingVG newVG PV
# ...do what you need here...
vgmerge existingVG newVG
如果 LV 位于磁盘 C 和其他磁盘上,则在移除磁盘 C 后,您将获得部分 LV,尽管 LVM 允许使用--partial
选项激活部分设备,但它不允许更改此类 VG(您需要运行vgreduce --removemissing VG
但这不是您想要的。)
您可以使用 dd 离线执行此操作:启动实时 CD 并运行dd if=/dev/OLDPV of=/dev/NEWPV bs=1M
。之后您可能需要调整分区大小,这并不简单。但至少您有一个“备份”(当然,除非您将参数切换为 dd)