Linux KVM シリーズの以前の記事では、Linux KVM をインストールしてゲスト VM を作成する方法について説明しました。
ただし、ゲスト VM を作成したら、VM で定期的なメンテナンス アクティビティを実行する方法を知っておく必要があります。
このチュートリアルでは、次の Linux KVM VM アクティビティを実行する方法について説明します:
<オール>
1.仮想マシンにメモリを追加
VM にメモリを追加するには、次の手順を実行する必要があります:
- VM をシャットダウンします
- VM ファイルを編集して、この VM に割り当てられる最大メモリの値を増やしてください
- VM を再起動します
- virsh setmem を使用して、この VM に割り当てられた最大メモリまでメモリを設定します。
この例では、myRHELVM1 の VM のメモリを 2GB から 4GB に増やしてみましょう。
最初に、以下に示すように virsh shutdown を使用して VM をシャットダウンします。
# virsh shutdown myRHELVM1 Domain myRHELVM1 is being shutdown
次に、virsh edit を使用して VM を編集します。
# virsh edit myRHELVM1
以下の行を探して、メモリの値を次のように変更します。私の例では、以前は 2097152 でした:
<memory unit='KiB'>4194304</memory>
上記の値は KB 単位であることに注意してください。変更後、保存して終了します:
# virsh edit myRHELVM1 Domain myRHELVM1 XML configuration edited.
更新された構成ファイルで VM を再起動します。これで、最大メモリが 2G から 4G に増加したことがわかります。
VM メモリを 4G の最大制限まで動的に変更できるようになりました。
virsh create を使用してドメイン XML ファイルを作成します
# virsh create /etc/libvirt/qemu/myRHELVM1.xml Domain myRHELVM1 created from /etc/libvirt/qemu/myRHELVM1.xml
このドメインで使用可能なメモリを表示します。以下に示すように、使用可能な最大メモリは 4GB ですが、このドメインには 2GB (使用済みメモリ) しかありません。
# virsh dominfo myRHELVM1 | grep memory Max memory: 4194304 KiB Used memory: 2097152 KiB
以下に示すように、virsh setmem を使用して、このドメインのメモリを 4GB に設定します。
# virsh setmem myRHELVM1 4194304
以下は、このドメインに 4GB (使用済みメモリ) を割り当てたことを示しています。
# virsh dominfo myRHELVM1 | grep memory Max memory: 4194304 KiB Used memory: 4194304 KiB
2. VCPU を VM に追加
VM に割り当てられる仮想 CPU を増やすには、virsh 編集を実行し、以下で説明するように vcpu パラメーターを変更します。
この例では、myRHELVM1 の VM のメモリを 2GB から 4GB に増やしてみましょう。
最初に、以下に示すように virsh shutdown を使用して VM をシャットダウンします。
# virsh shutdown myRHELVM1 Domain myRHELVM1 is being shutdown
次に、virsh edit を使用して VM を編集します。
# virsh edit myRHELVM1
以下の行を探して、vcpu の値を次のように変更します。私の例では、以前は 2 でした。
<vcpu placement='static'>4</vcpu>
virsh create を使用してドメイン XML ファイルを作成します
# virsh create /etc/libvirt/qemu/myRHELVM1.xml Domain myRHELVM1 created from /etc/libvirt/qemu/myRHELVM1.xml
以下に示すように、このドメインに割り当てられた仮想 CPU を表示します。これは、vCPU を 2 から 4 に増やしたことを示しています。
# virsh dominfo myRHELVM1 | grep -i cpu CPU(s): 4 CPU time: 21.0s
3.ディスクを VM に追加
この例では、この VM に 2 つの仮想ディスク (vda1 と vda2) しかありません。
# fdisk -l | grep vd Disk /dev/vda: 10.7 GB, 10737418240 bytes /dev/vda1 * 3 1018 512000 83 Linux /dev/vda2 1018 20806 9972736 8e Linux LVM
新しいストレージ デバイスを作成して Linux KVM ゲスト VM に接続するには、次の 2 つの手順が必要です。
- まず、仮想ディスク イメージを作成します
- 仮想ディスク イメージを VM に接続する
もう 1 つ仮想ディスクを作成し、それを VM に接続します。このためには、最初に以下に示すように qemu-img create コマンドを使用してディスク イメージ ファイルを作成する必要があります。
次の例では、7GB のサイズの仮想ディスク イメージを作成しています。通常、ディスク イメージは /var/lib/libvirt/images/ ディレクトリの下にあります。
# cd /var/lib/libvirt/images/ # qemu-img create -f raw myRHELVM1-disk2.img 7G Formatting 'myRHELVM1-disk2.img', fmt=raw size=7516192768
新しく作成したディスク イメージを接続するには、以下に示すように virsh attach-disk コマンドを使用します。
# virsh attach-disk myRHELVM1 --source /var/lib/libvirt/images/myRHELVM1-disk2.img --target vdb --persistent Disk attached successfully
上記の virsh attach-disk コマンドには、次のパラメーターがあります:
- myRHELVM1 VM の名前
- –source ソース ディスク イメージのフル パス。これは、上記の qemu-image コマンドを使用して作成したものです。例:myRHELVM1-disk2.img
- –target これはデバイスのマウント ポイントです。この例では、特定のディスク イメージを /dev/vdb としてアタッチします。 /dev を指定する必要はないことに注意してください。 vdb を指定するだけで十分です。
- –persistent は、VM に接続されたディスクが永続的であることを示します。
以下に示すように、新しい /dev/vdb が VM で利用できるようになりました。
# fdisk -l | grep vd Disk /dev/vda: 10.7 GB, 10737418240 bytes /dev/vda1 * 3 1018 512000 83 Linux /dev/vda2 1018 20806 9972736 8e Linux LVM Disk /dev/vdb: 7516 MB, 7516192768 bytes
これで、/dev/vdb デバイスをパーティション分割し、複数のパーティション /dev/vdb1、/dev/vdb2 などを作成して、VM にマウントできます。前に説明したように、fdisk を使用してパーティションを作成します。
同様に、ゲスト VM からディスクを切り離すには、次のコマンドを使用できます。ただし、正しい vd* を指定するように注意してください。そうしないと、間違ったデバイスを削除してしまう可能性があります。
# virsh detach-disk myRHELVM1 vdb Disk detached successfully
4.仮想マシン構成を保存
VM に多くの変更を加える場合は、構成を保存することをお勧めします。
以下に示すように、virsh dumpxml ファイルを使用してバックアップを作成し、VM の構成情報を保存します。
# virsh dumpxml myRHELVM1 > myrhelvm1.xml # ls myrhelvm1.xml myrhelvm1.xml
XML 形式の構成ファイルを取得したら、以下に示すように virsh create コマンドを使用して、いつでもこの XML ファイルからゲスト VM を再作成できます。
virsh create myrhelvm1.xml
5. KVM 仮想マシンの削除
テスト目的で複数の VM を作成し、それらを削除したい場合は、次の 3 つの手順を実行する必要があります。
- VM をシャットダウンします
- VM を破棄 (および未定義)
- ディスク イメージ ファイルを削除する
この例では、myRHELVM2 VM を削除します。まず、この VM をシャットダウンします:
# virsh shutdown myRHELVM2 Domain myRHELVM2 is being shutdown
次に、以下に示すように、この VM を破棄します。
# virsh destroy myRHELVM2 Domain myRHELVM2 destroyed
破棄するだけでなく、以下に示すように VM の定義を解除する必要もあります:
# virsh undefine myRHELVM2 Domain myRHELVM2 has been undefined
最後に、この VM 用に作成したディスク イメージ ファイルを /var/lib/libvirt/images ディレクトリから削除します。
これで、/var/lib/libvirt/images の下にあるディスク イメージ ファイルを削除できます
rm /var/lib/libvirt/images/myRHELVM2-disk1.img rm /var/lib/libvirt/images/myRHELVM2-disk2.img