14.3. CLI を使用した仮想マシンに接続されたデバイスの管理
仮想マシンの機能を変更するには、コマンドラインインターフェイス (CLI) を使用して、仮想マシンに接続されているデバイスを管理します。
14.3.1. 仮想マシンへのデバイスの割り当て
新しい仮想デバイスを割り当てることで、仮想マシンに特定の機能を追加できます。
次の手順では、コマンドラインインターフェイス (CLI) を使用して仮想デバイスを作成し、仮想マシンに接続します。一部のデバイスは、RHEL Web コンソールを使用 して仮想マシンに接続することもできます。
たとえば、仮想マシンに新しい仮想ディスクデバイスを割り当てることで、仮想マシンのストレージ容量を増やすことができます。これは、メモリーのホットプラグとも呼ばれます。
仮想マシンからのメモリーデバイスの削除 (メモリーのホットアンプラグ とも呼ばれる) は、RHEL 9 ではサポートされておらず、Red Hat ではその使用を推奨していません。
前提条件
仮想マシンに接続するデバイスに必要なオプションを取得します。特定のデバイスで利用可能なオプションを確認するには、
virt-xml --device=?
コマンドを使用します。以下に例を示します。# virt-xml --network=? --network options: [...] address.unit boot_order clearxml driver_name [...]
手順
デバイスを仮想マシンに接続するには、デバイスと必要なオプションの定義を含む
virt-xml --add-device
コマンドを使用します。たとえば、次は、
/var/lib/libvirt/images/
ディレクトリーに 20GB の newdisk qcow2 ディスクイメージを作成し、仮想マシンの次回の起動時にそれを仮想マシンとして、実行中の仮想マシン testguest に接続します。# virt-xml testguest --add-device --disk /var/lib/libvirt/images/newdisk.qcow2,format=qcow2,size=20 Domain 'testguest' defined successfully. Changes will take effect after the domain is fully powered off.
以下は、仮想マシンの稼働時に、ホストでバス 002 のデバイス 004 として、仮想マシン testguest2 に接続した USB フラッシュドライブを接続します。
# virt-xml testguest2 --add-device --update --hostdev 002.004 Device hotplug successful. Domain 'testguest2' defined successfully.
USB を定義するバスとデバイスの組み合わせは、
lsusb
コマンドを使用して取得できます。
検証
デバイスが追加されたことを確認するには、次のいずれかを行います。
virsh dumpxml
コマンドを実行し、デバイスの XML 定義が、仮想マシンの XML 設定の<devices>
セクションに追加されました。たとえば、以下の出力は、仮想マシン testguest の設定を表示し、002.004 USB フラッシュディスクドライブが追加されていることを確認します。
# virsh dumpxml testguest [...] <hostdev mode='subsystem' type='usb' managed='yes'> <source> <vendor id='0x4146'/> <product id='0x902e'/> <address bus='2' device='4'/> </source> <alias name='hostdev0'/> <address type='usb' bus='0' port='3'/> </hostdev> [...]
- 仮想マシンを実行し、デバイスが存在し、正しく機能しているかどうかをテストします。
関連情報
-
man virt-xml
コマンド
14.3.2. 仮想マシンに接続されているデバイスの変更
接続している仮想デバイスの設定を編集することで、仮想マシンの機能を変更できます。たとえば、仮想マシンのパフォーマンスを最適化する場合は、ホストの CPU に合わせて仮想 CPU モデルを変更できます。
以下の手順は、コマンドラインインターフェイス (CLI) を使用して仮想デバイスを修正する一般的な手順を示しています。ディスクや NIC など、仮想マシンに接続されている一部のディスクは、RHEL 9 Web コンソール で修正できます。
前提条件
-
仮想マシンに接続するデバイスに必要なオプションを取得します。特定のデバイスで利用可能なオプションを確認するには、
virt-xml --device=?
コマンドを使用します。以下に例を示します。
# virt-xml --network=?
--network options:
[...]
address.unit
boot_order
clearxml
driver_name
[...]
-
オプション:
virsh dumpxml vm-name
を使用して出力をファイルに送信し、仮想マシンの XML 設定をバックアップします。たとえば、以下は、testguest1 仮想マシンの設定のバックアップファイルtestguest1.xml
を作成します。
# virsh dumpxml testguest1 > testguest1.xml # cat testguest1.xml <domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'> <name>testguest1</name> <uuid>ede29304-fe0c-4ca4-abcd-d246481acd18</uuid> [...] </domain>
手順
デバイスの定義および必要なオプションを追加して、
virt-xml --edit
コマンドを使用します。たとえば、次のようにすると、停止する仮想マシン testguest の <cpu> 設定を削除し、host-model に設定します。
# virt-xml testguest --edit --cpu host-model,clearxml=yes Domain 'testguest' defined successfully.
検証
デバイスが変更されたことを確認するには、次のいずれかを行います。
- デバイスが存在し、変更を反映する場合は、仮想マシンを実行してテストします。
virsh dumpxml
コマンドを使用して、デバイスの XML 定義が、仮想マシンの XML 設定で変更されているかどうかを確認します。たとえば、次の出力は、仮想マシン testguest の設定を表示し、CPU モードが host-model として設定されていることを確認します。
# virsh dumpxml testguest [...] <cpu mode='host-model' check='partial'> <model fallback='allow'/> </cpu> [...]
トラブルシューティング
デバイスを変更すると仮想マシンが起動できなくなる場合は、
virsh define
ユーティリティーを使用して、バックアップとして作成しておいた XML 設定ファイルを再読み込みして XML 設定を復元します。# virsh define testguest.xml
仮想マシンの XML 設定を変更する場合は、virsh edit
コマンド (virsh edit testguest
など) も使用できます。ただし、より詳細な変更にはこの方法を使用しないでください。設定を壊し、仮想マシンの起動を妨げる可能性が高くなります。
関連情報
-
man virt-xml
コマンド
14.3.3. 仮想マシンからのデバイスの削除
仮想デバイスを削除することで、仮想マシンの機能を変更できます。たとえば、仮想マシンから仮想ディスクデバイスが不要になった場合は、削除できます。
次の手順は、コマンドラインインターフェイス (CLI) を使用して、仮想マシンから仮想デバイスを削除する方法を示しています。ディスクや NIC などの一部のデバイスは、using the RHEL 9 web console 仮想マシンから削除することもできます。
前提条件
-
オプション:
virsh dumpxml vm-name
を使用して出力をファイルに送信し、仮想マシンの XML 設定をバックアップします。たとえば、以下は、testguest1 仮想マシンの設定のバックアップファイルtestguest1.xml
を作成します。
# virsh dumpxml testguest1 > testguest1.xml # cat testguest1.xml <domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'> <name>testguest1</name> <uuid>ede29304-fe0c-4ca4-abcd-d246481acd18</uuid> [...] </domain>
手順
デバイスの定義を付けて、
virt-xml --remove-device
コマンドを使用します。以下に例を示します。以下は、シャットダウン後に、稼働中の仮想マシン testguest から vdb としてマークされているストレージデバイスを削除します。
# virt-xml testguest --remove-device --disk target=vdb Domain 'testguest' defined successfully. Changes will take effect after the domain is fully powered off.
次は、稼働中の稼働マシン testguest2 からすぐに USB フラッシュドライブデバイスを削除します。
# virt-xml testguest2 --remove-device --update --hostdev type=usb Device hotunplug successful. Domain 'testguest2' defined successfully.
トラブルシューティング
デバイスを取り外すと仮想マシンが起動できなくなる場合は、
virsh define
ユーティリティーを使用して、バックアップとして作成しておいた XML 設定ファイルを再読み込みして XML 設定を復元します。# virsh define testguest.xml
関連情報
-
man virt-xml
コマンド