GNU/Linux >> Linux の 問題 >  >> Linux

LinuxでKVM仮想マシンのディスクサイズを拡張する方法

この簡単なガイドでは、仮想サイズとは何かについて説明します。 コマンドラインツールと、LinuxでVirt-resizeツールを使用してKVM仮想マシンのディスクサイズを拡張または拡張するにはどうすればよいですか。

先日、KVM仮想マシンの1つでディスク容量が不足していることに気付きました。ディスク容量が少ないため、新しいアプリケーションをインストールできなかったか、ファイルを保存できませんでした。この問題を修正するには、virt-sizeを使用してKVM仮想マシンのディスクのサイズを単純に増やしました。 指図。以下の手順を個人的にテストして、CentOS 8 KVM仮想マシンのディスクサイズを増やしましたが、期待どおりに機能しました。

Virt-サイズ変更ツール

Virt-resize 仮想マシンディスクのサイズを変更するためのコマンドラインツールです。 virt-resizeを使用すると、仮想マシンのディスクのサイズを増減できます。 virt-resizeコマンドを使用して、仮想ディスク内のパーティションを削除することもできます。 virt-稼働中のマシンのサイズを変更することに注意してください。ディスクイメージのサイズを変更する前に、ゲストシステムの電源をオフにする必要があります。

仮想マシンのディスクサイズを拡張するには、最初にソースイメージよりも大きなディスクイメージを作成します。次に、ソース画像を宛先画像にコピーし、最後にサイズを変更します。

Virt-resizeは、libguestfs-toolsの一部です。 パッケージ。 libguestfs-toolsパッケージをDebian、Ubuntu、およびその派生物にインストールするには、次のコマンドを実行します。

$ sudo apt install libguestfs-tools

libguestfs-toolsパッケージをFedora、RHEL、およびそのクローンにインストールするには、次のコマンドを実行します。

$ sudo dnf install libguestfs-tools

Fedora 34では、guestfs-tools パッケージはvirt-resizeツールを提供します。したがって、Fedora 34を使用している場合は、guestfs-toolsをインストールしてください。 以下のようなパッケージ:

$ sudo dnf install guestfs-tools

次に、virt-resizeを使用して仮想マシンのディスクサイズを拡張する方法を見てみましょう。 指図。

LinuxでKVM仮想マシンのディスクサイズを拡張または拡張する

このガイドでは、centos8.qcow2という名前のCentOS8仮想マシンディスクイメージを使用します。 。このメイジを現在の作業ディレクトリに保存しました。 virsh dumpxmlを使用できます サイズを変更するディスクイメージを見つけるコマンド。

例:

$ virsh dumpxml centos8

上記のコマンドでcentos8をVM名に置き換えます。

サイズを変更するディスクイメージを見つけたら、このディスクイメージ内のパーティションの詳細を調べます。パーティションの詳細とディスクイメージのサイズを印刷するには、次のコマンドを実行します。

$ virt-filesystems --long --parts --blkdevs -h -a centos8.qcow2 

出力例:

 Name       Type       MBR  Size  Parent
 /dev/sda1  partition  83   1.0G  /dev/sda
 /dev/sda2  partition  8e   19G   /dev/sda
 /dev/sda   device     -    20G   -

上記の出力でわかるように、私のディスクイメージには2つのパーティション、つまり/dev/sda1しかありません。 サイズ1GB、/dev/sda2 19GBで。ディスクイメージの合計サイズは20GBです。

さあ、

  • ディスクイメージの合計サイズを20GBから30GBに増やします 、
  • 最初のパーティションのサイズを大きくします/dev/sda1 1.0GBから1.5GB
  • 2番目のパーティションを拡張します/dev/sda2 残りのスペースを埋めます。

Virt-resizeは、ディスクイメージをインプレースでサイズ変更できません。また、Virt-resizeはライブ仮想マシンでは使用しないでください。ディスクイメージのサイズを変更する前に、仮想マシンの電源を切り、元のディスクイメージのバックアップを取ります。

$ mv centos8.qcow2 centos8.qcow2.backup

上記のコマンドは、centos8.qcow2という現在のディスクイメージの名前を変更します centos8.qcow2.backupへ 。

次のコマンドを使用して、同じ名前でサイズ30GBの新しいディスクイメージを作成します。

$ qemu-img create -f qcow2 -o preallocation=metadata centos8.qcow2 30G

出力例:

Formatting 'centos8.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off preallocation=metadata compression_type=zlib size=32212254720 lazy_refcounts=off refcount_bits=16

新しく作成したディスクのサイズが30GBであることを確認してください:

$ virt-filesystems --long --parts --blkdevs -h -a centos8.qcow2 

出力例:

Name      Type    MBR  Size  Parent
 /dev/sda  device  -    30G   -

次に、コマンドを使用してKVM仮想マシンのディスクイメージサイズを拡張/拡張します。

$ virt-resize --resize /dev/sda1=+500M --expand /dev/sda2 centos8.qcow2.backup centos8.qcow2

ここで

  • --resize /dev/sda1=+500M -/dev/sda1のサイズを大きくします 500MBにパーティション分割します。
  • --expand / dev / sda2-/dev/sda2のサイズを変更します 残りのすべてのスペースを埋めるためにパーティションを作成します。私の場合、サイズは19.0Gから28.5Gに変更されます。
  • centos8.qcow2.backup -元の入力ディスクイメージです。
  • centos8.qcow2 -新しく作成された出力ディスクイメージです。

上記のコマンドの出力例は次のとおりです。

[   0.0] Examining centos8.qcow2.backup
 
 Summary of changes:
 /dev/sda1: This partition will be resized from 1.0G to 1.5G.  The 
 filesystem ext4 on /dev/sda1 will be expanded using the ‘resize2fs’ 
 method.
 /dev/sda2: This partition will be resized from 19.0G to 28.5G.  The LVM PV 
 on /dev/sda2 will be expanded using the ‘pvresize’ method.
 
 [   4.2] Setting up initial partition table on centos8.qcow2
 [   5.6] Copying /dev/sda1
  100% ⟦▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒⟧ 00:00
 [   9.7] Copying /dev/sda2
  100% ⟦▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒⟧ 00:00
 [  45.1] Expanding /dev/sda1 using the ‘resize2fs’ method
 [  45.3] Expanding /dev/sda2 using the ‘pvresize’ method
 Resize operation completed with no errors.  Before deleting the old disk, 
 carefully check that the resized disk boots and works correctly.

virt-filesystemsでパーティションとそのサイズを確認します コマンド:

$ virt-filesystems --long -h --all -a centos8.qcow2

出力例:

 Name          Type        VFS   Label  MBR  Size  Parent
 /dev/sda1     filesystem  ext4  -      -    1.4G  -
 /dev/cl/root  filesystem  xfs   -      -    17G   -
 /dev/cl/swap  filesystem  swap  -      -    2.0G  -
 /dev/cl/root  lv          -     -      -    17G   /dev/cl
 /dev/cl/swap  lv          -     -      -    2.0G  /dev/cl
 /dev/cl       vg          -     -      -    29G   /dev/sda2
 /dev/sda2     pv          -     -      -    29G   -
 /dev/sda1     partition   -     -      83   1.5G  /dev/sda
 /dev/sda2     partition   -     -      8e   29G   /dev/sda
 /dev/sda      device      -     -      -    30G   -

上記の出力にあるように、CentOS8KVMディスクイメージのサイズが20GBから30GBにサイズ変更されました。

次に、新しいディスクイメージを使用して仮想マシンを起動します。次のリンクで説明されているように、Qcow2イメージを使用して新しい仮想マシンを作成することもできます。

  • LinuxでQcow2イメージを使用してKVM仮想マシンを作成する

問題なく動作する場合は、すべてのデータが存在するかどうかを徹底的に調べます。すべて問題がなければ、古いバックアップディスクを削除します。

新しいディスクに問題がある場合は、仮想マシンをシャットダウンし、バックアップディスクの名前を元の名前に変更します。上記の手順をもう一度慎重に繰り返します。データとディスクイメージをバックアップすることを忘れないでください。


Linux
  1. Linuxでディスクをパーティション分割する方法

  2. Linuxシステムが物理マシンか仮想マシンかを確認する方法

  3. Virtualbox 上の Linux KVM

  1. RedhatLinuxでKVMベースの仮想マシンを削除する方法

  2. VBoxManageを使用してVMDK(仮想マシンディスク)をVDIに変換する方法は?

  3. 仮想ディスクの拡張後に Linux PV パーティションをオンラインで拡張する方法

  1. Virshコマンドを使用してKVM仮想マシンスナップショットを作成する方法

  2. Linuxシステムが物理システムまたは仮想マシンで実行されているかどうかを確認するにはどうすればよいですか?

  3. Linux KVM 仮想マシンにメモリ、vCPU、ハードディスクを追加する方法