如何在连续的物理范围上对齐逻辑卷?

如何在连续的物理范围上对齐逻辑卷?

我最初在卷组中创建了 2 个逻辑卷。这两个逻辑卷占据整个卷组,并位于连续的物理范围上。

但是,在我缩小第一个逻辑卷 (LV_root) 后,它变得更小,并且两个逻辑卷之间出现了空的物理范围。以下是“pvdisplay”命令的输出:

$ sudo pvdisplay --maps

  --- Physical volume ---
  PV Name               /dev/sda5
  VG Name               VG_i5_2500
  PV Size               99.65 GiB / not usable 2.00 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              25510
  Free PE               3025
  Allocated PE          22485
  PV UUID               3nRvBS-qq10-8XZZ-n3x9-gfHx-hrxN-AouB3q

  --- Physical Segments ---
  Physical extent 0 to 18431:
    Logical volume  /dev/VG_i5_2500/LV_root
    Logical extents 0 to 18431
  Physical extent 18432 to 21456:
    FREE
  Physical extent 21457 to 25509:
    Logical volume  /dev/VG_i5_2500/LV_swap
    Logical extents 0 to 4052

我想知道是否有办法将 LV_swap 移向 LV_root 以便它们之间没有空的物理范围(即通常如何移动同一个卷组内的逻辑卷以便为连续的空闲物理范围腾出更多空间)?

此外,在卷组中创建新的逻辑卷时,是否需要连续的空闲物理范围?

答案1

标准 LVM 中没有lvmove命令(尽管 HP 在定制版本中可能有一个)。

执行此操作的方法是将卷的内容移到其他地方,然后删除并重新创建,然后复制回来。

由于您的卷是交换卷,因此无需移动内容。您可以swapoff删除该卷,然后创建新的交换卷并swapon

但是,可以说 LVM 的目标就是不必考虑这些。创建卷不需要连续的物理范围,只需将其插入间隙即可。主要的性能损失是如果您有一个文件跨越非连续范围,因此在读取时需要额外的寻道。

答案2

根据pvmove手册页,可以在同一设备上移动范围:

If the source and destination are on the same disk, the anywhere allocation policy would be needed, like this:

pvmove --alloc anywhere /dev/sdb1:1000-1999 /dev/sdb1:0-999

也许重叠区域是被禁止的,但你可以分两步移动你的卷:

pvmove --alloc anywhere /dev/sda5:21457-24481 /dev/sda:18432-21456
pvmove --alloc anywhere /dev/sda5:24482-25509 /dev/sda:21457-22484

相关内容