LVMでボリュームグループのサイズを縮小する方法は?

LVMでボリュームグループのサイズを縮小する方法は?
[root@localhost ~] vgdisplay
  --- Volume group ---
  VG Name               vg_root
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  7
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                3
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               297,59 GiB
  PE Size               4,00 MiB
  Total PE              76182
  Alloc PE / Size       59392 / 232,00 GiB
  Free  PE / Size       16790 / 65,59 GiB
  VG UUID               XXXXXXXXXX

太陽光:

[root@localhost ~] pvdisplay

  --- Physical volume ---
  PV Name               /dev/mapper/udisks-luks-uuid-ASDFASDF
  VG Name               vg_root
  PV Size               297,59 GiB / not usable 2,00 MiB
  Allocatable           yes 
  PE Size               4,00 MiB
  Total PE              76182
  Free PE               16790
  Allocated PE          59392
  PV UUID               YYYYYYYYYYY

そのため、65GBの空き容量があるVGがあります。ただし、そのボリュームグループを約50GB縮小したい場合:

pvresize -tv --setphysicalvolumesize 247G /dev/mapper/udisks-luks-uuid-ASDFASDF
  Test mode: Metadata will NOT be updated and volumes will not be (de)activated.
    Using physical volume(s) on command line
    Test mode: Skipping archiving of volume group.
    /dev/mapper/udisks-luks-uuid-ASDFASDF: Pretending size is 517996544 not 624087040 sectors.
    Resizing volume "/dev/mapper/udisks-luks-uuid-ASDFASDF" to 624087040 sectors.
    Resizing physical volume /dev/mapper/udisks-luks-uuid-ASDFASDF from 0 to 63231 extents.
  /dev/mapper/udisks-luks-uuid-ASDFASDF: cannot resize to 63231 extents as later ones are allocated.
  0 physical volume(s) resized / 1 physical volume(s) not resized
    Test mode: Wiping internal cache
    Wiping internal VG cache

したがって、エラーメッセージは次のようになります。

cannot resize to 63231 extents as later ones are allocated.

尋ねる:vg_rootの不要な部分を削除するためにどのようにデフラグすることができますか?

ps:VGのサイズを調整するにはPVだけを調整すればよいことがわかりました。それとも、VGのサイズを変更するためのより良いコマンドがあります(たとえば、1つのPVに複数のVGを配置する場合はどうすればよいですか?...)。

ベストアンサー1

以下は、LVMまたはLVM2パーティションのサイズを変更するために必要な手順です。

sudo lvresize --verbose --resizefs -L -150G /dev/ubuntu/root

sudo pvresize --setphysicalvolumesize {any size here} /dev/sda5

最後のコマンドでpvresizeエラーが発生する可能性があります。

/dev/sda5: cannot resize to xxxxx extents as later ones are allocated.

LVMの最後に割り当てられていないスペースを並べ替える必要があります。これは root パーティションと swap_1 パーティション以降を意味します。このコマンドを使用すると、現在の空間配列を表示できます。

pvs -v --segments /dev/sda5

pvs次の出力が表示されます

/dev/sda5 ubuntu lvm2 a-- 698.04g 150g 0 xxx+1 root 0 linear /dev/sda:0-xxx
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g xxx+1 iii 0 free
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g yyyy jjj swap 0 linear /dev/sda5:yyyy-end

外部断片化を削除するにはpvmove、次の手順を実行します。

sudo pvmove --alloc anywhere /dev/sda5:yyyy-end

それでは、スワップボリュームの移動が成功したかどうかを見てみましょう。

pvs -v --segments /dev/sda5

新しいボリュームの順序を表示する必要があります。

/dev/sda5 ubuntu lvm2 a-- 698.04g 150g 0 xxx+1 root 0 linear /dev/sda:0-xxx
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g xxx+1 iii swap 0 linear /dev/sda5:xxx+1-yyyy
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g yyyy+1 end 0 free

次に、GParted を使用して LVM のサイズを最大使用領域に調整します。残りは未割り当て領域に保存されます。

おすすめ記事