我正在尝试将lvm上的数据迁移到两个新磁盘,并在两者之间build立镜像。 我已经成功地将所有的数据迁移到两个磁盘中的第一个,剩下的第二个完全可以用作镜像。 我使用pvdisplay -m /dev/sd{g,h}1validation了这一点
--- Physical volume --- PV Name /dev/sdg1 VG Name vg PV Size 931.51 GiB / not usable 3.19 MiB Allocatable yes PE Size 4.00 MiB Total PE 238466 Free PE 82866 Allocated PE 155600 PV UUID v2nc3j-EFBR-QpuG-xgro-Rm59-fmu6-IB3QcR --- Physical Segments --- Physical extent 0 to 49999: Logical volume /dev/vg/videos Logical extents 0 to 49999 Physical extent 50000 to 99999: Logical volume /dev/vg/home Logical extents 0 to 49999 Physical extent 100000 to 129999: Logical volume /dev/vg/music Logical extents 0 to 29999 Physical extent 130000 to 155599: Logical volume /dev/vg/videos Logical extents 50000 to 75599 Physical extent 155600 to 238465: FREE --- Physical volume --- PV Name /dev/sdh1 VG Name vg PV Size 931.51 GiB / not usable 3.19 MiB Allocatable yes PE Size 4.00 MiB Total PE 238466 Free PE 238466 Allocated PE 0 PV UUID LuTrem-WcsZ-qw7l-2CDS-lLKI-wdq0-QEXhLf --- Physical Segments --- Physical extent 0 to 238465: FREE
然后当我尝试镜像home逻辑卷,例如说,我没有足够的空间。 我用lvconvert -m1 vg/home和输出是:
Insufficient suitable allocatable extents for logical volume : 50000 more required Unable to allocate extents for mirror(s).
这令我感到困惑,因为它看起来好像在第二个磁盘上有足够的空间来镜像。 有什么我在这里做错了吗? 还是有办法明确地告诉LVM把镜子的每条腿放在哪里? 我正在使用lvm2。
您没有足够的空间用于镜像日志。 默认情况是在磁盘上有镜像日志(在一个单独的PV中)。 有关更多信息,请参阅https://bugs.launchpad.net/ubuntu/+source/lvm2/+bug/121527 。
我知道这是一个旧的线程,但我不知道为什么其他答案链接到一个错误报告。 不幸的是,LVM并没有解释为什么它说空间不足,但是可以通过在你的lvconvert行尾添加“–mirrorlog core”来完全避免这种情况。 这将使日志保持在内存中,而不是写入磁盘。
尽pipe大的免责声明:这应该只用于临时(即磁盘迁移)事件,因为在内存中的镜像日志,它将在重新启动后丢失镜像。 我使用这个function是因为我们不得不在保修期内将SAN设备从一个框架迁移到另一个框架,并且在同步完成后,我会中断旧镜像。 如果你想要一个永久的镜像解决scheme,我build议使用mdadm,或者为镜像日志build立另一个卷(我相信它必须在它自己的VG中,但我可能是错的)。 或者你可以使用硬件RAID,如果你的基础设施支持。