仮想マシンのディスクサイズの正しい増加

完全なふりをすることなく、これはまだシステム管理者にとって役立つと思います。



仮想マシンのディスクサイズの増加は、次の入力で発生しました。qcow2仮想ファイル形式、仮想マシンはlvmとext4を使用し、ルートパーティションは拡張パーティションにあります。 通常、アクションは負荷が最小で、ダウンタイムが神経に大きな負荷をかけない夜間に発生します。 高負荷のプロジェクトで作業しているときでも、アドレナリンは、何かをする前に10回考えるのに十分なほど目立っています。 したがって、プロセスを開始する前に、深夜に「サーバーがダウンしました」などのメッセージで同僚を怖がらせないように、SMS通知システムをオフにすることをお勧めします。



1.仮想マシンをオフにします

virt-managerの赤い電源ボタンをクリックして、GUIでこれを行いました。 virt-managerがない場合、これは仮想マシンのコマンドラインでshutdownコマンドを発行することで実行できます。

2.ハイパーバイザーで、ファイルサイズを増やします (私の場合、200ギガバイト)。

qemu-img resize /path/to/vm-disk.qcow2 +200G
      
      





3. virt-managerを使用して、管理マシンを介してディスクを別の(サービス)仮想マシンにしがみつきます。別の方法は、lvmサポートのあるCDからブートすることです。

したがって、LiveCDから起動すると、vdbはvdaに変わります

4. virt-managerを介してサービスマシンを起動します (これにはlvmも必要です)。

5.次に、サービス(またはLVM liveCD)マシンで:

 parted /dev/vdb
      
      





ディスクサイズを取得します。

 (parted) print Model: Virtio Block Device (virtblk) Disk /dev/vdb: 1288GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 1049kB 256MB 255MB primary ext2 boot 2 257MB 1000GB 1000GB extended 5 257MB 1000GB 1000GB logical lvm
      
      





拡張パーティションを増やします。これを行わないと、エラー:重複するパーティションを作成できません。 Ubuntuは別れた-gparted

 (parted) resizepart 2 End? [1000GB]? 1288Gb
      
      





論理ルートパーティションを増やす

 (parted) resizepart 5 End? [1000GB]? 1288Gb (parted) q
      
      





ここで、lvmの物理ディスクのサイズを増やす必要があります

 pvresize /dev/vdb5
      
      





lvmの論理ドライブのサイズを増やします

 root@vm-service:/etc# lvextend /dev/vm-db-0-vg/root -l +100%FREE lvextend /dev/vm-db-0-vg/root -l +100%FREE File descriptor 7 (pipe:[7918]) leaked on lvextend invocation. Parent PID 1378: bash (     ) Extending logical volume root to 1.12 TiB Logical volume root successfully resized root@vm-service:/etc# resize2fs /dev/vm-db-0-vg/root
      
      





resize2fsの出力は次のようになります。

 The filesystem on /dev/vm-db-0-vg/root is now 231278592 blocks long.
      
      





次に、ファイルシステムを確認して修正します。

 fsck -f /dev/mapper/vm--db--0--vg-root
      
      





ディスクの準備ができています

6.サービスマシンをオフにし、 virt-managerでドライブを切断します

GUIを使用して仮想マシンを管理することなく、コマンドラインからvirshを使用してこれを行うことができます。使用方法については、コマンドラインから仮想マシンを管理するを参照してください。

7.サーバーを起動します

lvm2 / ext4でチェックされる最小のダウンタイムでの増加は、ほとんどその場で次のように実行できます。

1.ハイパーバイザーで200ギガバイトのファイルサイズの増加が実行されます。

 qemu-img resize /path/to/vm-disk.qcow2 +200G
      
      





2.仮想マシンの再起動

3.仮想マシン内

 parted /dev/vda
      
      





物理ディスクとすべての論理パーティションのサイズを見てみましょう

 (parted) print Model: Virtio Block Device (virtblk) Disk /dev/vda: 1288GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 1049kB 256MB 255MB primary ext2 boot 2 257MB 1000GB 1000GB extended 5 257MB 1000GB 1000GB logical lvm
      
      





拡張パーティションを増やす

 (parted) resizepart 2 End? [1000GB]? 1288Gb
      
      





論理ルートパーティションを増やす

 (parted) resizepart 5 End? [1000GB]? 1288Gb (parted) q
      
      





ここで、lvmの物理ディスクのサイズを増やす必要があります

 pvresize /dev/vda5
      
      





lvmの論理ドライブのサイズを増やします

 root@vm-db-0:/etc# lvextend /dev/vm-db-0-vg/root -l +100%FREE lvextend /dev/vm-db-0-vg/root -l +100%FREE File descriptor 7 (pipe:[7918]) leaked on lvextend invocation. Parent PID 1378: bash Extending logical volume root to 1.12 TiB Logical volume root successfully resized root@vm-db-0:/etc# resize2fs /dev/vm-db-0-vg/root
      
      





この場合、ファイルシステムを確認および修正することはできません。fsck-f / dev / mapper / vm-db-0-vg-rootはファイルシステムを強制終了します

何が起こったのか確認してください:

 df -h
      
      





トピックの続き



All Articles