如何将逻辑卷 (lv) 移动/复制到另一个卷组 (vg)?

nob*_*ody 20 partitioning lvm hard-drive

基本上,我想几个逻辑卷(lv)移动/复制到一个新的卷组(vg)中。新卷组驻留在一组新的物理卷上。有谁知道如何在不损坏这些逻辑卷内的数据的情况下安全地做到这一点?

Gab*_*iel 13

vgmerge允许您合并两个 VG。您还可以使用pvmove在一个 VG 内移动数据,如果您想返回到多个VG,则使用vgsplit


小智 11

没有理由先copy到.img文件,先做lvcreate,然后直接copy过来:

lvcreate --snapshot --name <the-name-of-the-snapshot> --size <the size> /dev/volume-group/logical-volume
lvcreate --name <logical-volume-name> --size <size> the-new-volume-group-name
dd if=/dev/volume-group/snapshot-name of=/dev/new-volume-group/new-logical-volume
Run Code Online (Sandbox Code Playgroud)

  • 这有点太简短了。它没有说明所提到的大小究竟是多少 - 例如 &lt;the size&gt; 可以非常小,因为它仅适用于快照差异。 (2认同)

nob*_*ody 7

好吧,我能够以自己的方式处理这种情况。以下是我采取的步骤:

1) 拍摄目标逻辑卷的快照。

lvcreate --snapshot --name <the-name-of-the-snapshot> --size <the size> /dev/volume-group/logical-volume

注意:快照的大小可以根据您的需要大或小。重要的是有足够的空间来捕捉快照期间的变化。

2) 使用创建快照内容的映像副本 dd

dd if=/dev/volume-group/snapshot-name of=/tmp/backup.img

3) 在目标(新)卷组中创建一个足够大的新逻辑卷。

lvcreate --name <logical-volume-name> --size <size> the-new-volume-group-name

4) 使用镜像备份将数据写入新的逻辑卷 dd

dd if=/tmp/backup.img of=/dev/new-volume-group/new-logical-volume

5)分别使用lvremove和删除快照和映像备份rm

这就是所有人......希望这对某人有所帮助:)


小智 5

我将提供我自己的:

umount /somedir/

lvdisplay /dev/vgsource/lv0 --units b

lvcreate -L 12345b -n lv0 vgtarget

dd if=/dev/vgsource/lv0 of=/dev/vgtarget/lv0 bs=1024K conv=noerror,sync status=progress

mount /dev/vgtarget/lv0 /somedir/
Run Code Online (Sandbox Code Playgroud)

如果一切正常,请删除源

lvremove vgsource/lv0
Run Code Online (Sandbox Code Playgroud)