Xen仮想ディスクのサイズ変更

Xen仮想ディスクのサイズ変更

XENホストで仮想マシンを実行していますが、ディスク容量が不足しています。/dev/xvda2ext4ファイルシステムでフォーマットされたボリュームをマウントしました。

これは私の仮想マシンxenの設定です。

# /etc/xen/vm04.experimental.cfg

kernel      = '/boot/vmlinuz-4.9.0-11-amd64'
extra       = 'elevator=noop'
ramdisk     = '/boot/initrd.img-4.9.0-11-amd64'
root        = '/dev/xvda2 ro'
disk        = [
                  'phy:/dev/vg0/vm04.experimental-disk,xvda2,w',
                  'phy:/dev/vg0/vm04.experimental-swap,xvda1,w',
              ]
...

# lvdisplay /dev/vg0/vm04.experimental-disk
  --- Logical volume ---
  LV Path                /dev/vg0/vm04.experimental-disk
  LV Name                vm04.experimental-disk
  VG Name                vg0
  LV Status              available
  # open                 1
  LV Size                60,00 GiB
  Current LE             15360
  Segments               5
  Allocation             inherit
...

私のボリュームグループにはまだ44 GBのスペースがありますvg0

# vgdisplay
  --- Volume group ---
  VG Name               vg0
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  36766
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                27
  Open LV               22
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               1,07 TiB
  PE Size               4,00 MiB
  Total PE              281534
  Alloc PE / Size       270080 / 1,03 TiB
  Free  PE / Size       11454 / 44,74 GiB

vm04に残りのスペースをどのように割り当てることができますか?

答え1

正しい形式lvextendは次のとおりです。

lvextend -L +40G /dev/vg0/vm04.experimental-disk

仮想マシン自体のパーティションを拡張する方法については、次の手順を使用してください。このマニュアル

まず、パーティションのサイズを変更する必要があります。 LVMを使用している場合、これは簡単で進行方法を知っているはずです。クラシックパーティションを使用すると、状況が少し複雑になり、再起動が必要になる可能性があります(他のシステムやLive CDを起動する必要はありません)。

私がする方法は次のとおりです。まず、fdiskを使用してパーティションを削除し(ディスク上のデータが保存されるという概念です)、同じ場所に大きなサイズに慎重に再作成します。

今回も、新しいパーティションが古いパーティションと同じブロックから始まることが重要です。 IDも一致する必要があります(Linuxシステムでは83)。マイナーなミスが原因ですべてのデータが失われる可能性があります。

安全のためにaを押して起動フラグを復元することもできます(Wikipediaによると、一部のコンピュータではまだ起動フラグが必要です)。

スワップパーティションが邪魔になった場合の対処方法については、説明のセクションを参照してください。

これで、人々がLive CDの使用を推奨する理由が明らかになりました。 ;-) fdiskが指示したように続行する前に、パーティションテーブルを再ロードする必要があります。最も安全な方法は再起動ですが、partprobeまたはkpartx(詳細情報)を使用することもできます。

パーティションのサイズが変更され、パーティションテーブルが再ロードされたら、ファイルシステムでresize2fsを実行するだけです。これは、ルートパーティションとしてマウントされている場合でも実行できます。

$ sudo resize2fs /dev/sda1

答え2

  1. 音量オフ:

    xen shutdown vm04.experimental
    
  2. このボリュームのすべてのスナップショットを削除します。

    lvchange -an /dev/vg0/snap-tmp-vm04.experimental-disk    
    lvremove /dev/vg0/snap-tmp-vm04.experimental-disk
    
  3. 次のコマンドを使用してボリュームのサイズを変更します(40 GB 拡張など)。

    lvextend -L +40G /dev/vg0/vm04.experimental-disk
    

    VMには100GBという大きなサイズが割り当てられていますが、内部的にはまだ60GBのディスクしかありません。

  4. ファイルシステムのサイズ変更

    resize2fs /dev/vg0/vm04.experimental-disk
    

    バラよりlvextendの後に2fsのサイズを変更する必要があるのはなぜですか?
    (結局、事前にe2fsck -f /dev/vg0/vm04.experimental-disk電話してください)

  5. 仮想マシンを再起動します。

    xen create /etc/xen/vm04.experimental.cfg
    

関連情報