lvm 镜像空间不可用

lvm 镜像空间不可用

我正在尝试将 lvm 上的数据迁移到两个新磁盘,并在两个磁盘之间设置镜像。我已成功将所有数据迁移到两个磁盘中的第一个,而第二个磁盘完全可用作镜像。我使用以下方法验证了这一点pvdisplay -m /dev/sd{g,h}1

  --- 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。

答案1

您没有足够的空间用于镜像日志。默认将镜像日志放在磁盘上(在单独的 PV 中)。请参阅https://bugs.launchpad.net/ubuntu/+source/lvm2/+bug/121527了解更多信息。

答案2

我知道这是一个老话题,但我不确定为什么其他答案链接到错误报告。不幸的是,LVM 在解释为什么它说空间不足方面做得很糟糕,但您可以通过在 lvconvert 行末尾添加“--mirrorlog core”来完全避免这种情况。这会将日志保留在内存中,而不是将其写入磁盘。

不过,需要特别声明的是:这只应用于瞬时(即磁盘迁移)事件,因为镜像日志在内存中,重启后镜像会丢失。我使用这个是因为当 SAN 设备超出保修期时,我们必须将它们从一个框架迁移到另一个框架,并且我在同步完成后会断开旧镜像。如果您想要一个永久的镜像解决方案,我建议使用 mdadm,或者为镜像日志设置另一个卷(我相信它必须在自己的 VG 中,但我可能错了)。或者,如果您的基础设施支持,您可以使用硬件 RAID。

相关内容