20.9. 仮想マシンの削除

20.9.1. 仮想マシンの定義解除

virsh undefine domain [--managed-save] [storage] [--remove-all-storage] [--wipe-storage] [--snapshots-metadata] [--nvram] コマンドは、ドメインの定義を解除します。ドメインが非アクティブの場合は、設定は完全に削除されます。ドメインがアクティブ (実行中) の場合は、一時的なドメインに変換されます。ゲスト仮想マシンが非アクティブになると、設定は完全に削除されます。
このコマンドは、以下の引数を取ります。
  • --managed-save: この引数は、管理保護状態のゲスト仮想マシンの定義が解除されると、その関連付けられた管理保護状態のイメージも削除されることを保証します。この引数を使用せずに、管理保護状態のゲスト仮想マシンの定義解除を試みると失敗します。
  • --snapshots-metadata: この引数は、停止中のゲスト仮想マシンの定義解除を実行する際に、スナップショット (snapshot-list で表示) も定義削除されることを保証します。スナップショットのメタデータが指定された停止中のゲスト仮想マシンの定義解除を試みると、いずれの場合も失敗することに注意してください。この引数が使用される際に、ゲスト仮想マシンがアクティブな場合には無視されます。
  • --storage: この引数を使用すると、定義解除されるドメインと共に削除されるボリュームターゲット名またはストレージボリュームのソースパスのコンマ区切りの一覧が必要になります。このアクションにより、ストレージボリュームは削除される前に定義解除されます。これは停止中のゲスト仮想マシンでのみ実行できることに注意してください。また、これは libvirt が管理するストレージボリュームでのみ機能することにも注意してください。
  • --remove-all-storage: ゲスト仮想マシンの定義解除のほかにも、関連付けられたすべてのストレージボリュームが削除されます。仮想マシンを削除する場合、同じ関連付けられたストレージを使用する仮想マシンが他にない場合にのみこのオプションを選択します。代替方法として、virsh vol-delete を使用できます。詳細は、「ストレージボリュームの削除」 を参照してください。
  • --wipe-storage: ストレージボリュームの削除に加え、コンテンツが完全消去されます。

例20.17 ゲスト仮想マシンを削除し、そのストレージボリュームを削除する方法

以下の例では、guest1 仮想マシンの定義が解除され、関連する全ストレージボリュームが削除されます。定義が解除されたゲストは 一時的な状態になり、シャットダウン後には削除されます。
virsh undefine guest1 --remove-all-storage

20.9.2. ゲスト仮想マシンの強制終了

注記

コマンドは、他の方法ではゲスト仮想マシンをシャットダウンできない場合にのみ使用してください。
virsh destroy コマンドでは、正常なシャットダウンの終了プロセスを経ずに、指定されたゲスト仮想マシンを直ちに停止させます。virsh destroy コマンドを使用すると、ゲスト仮想マシンのファイルシステムが破損する可能性があります。virsh destroy コマンドは、ゲスト仮想マシンが反応しない場合のみに使用してください。virsh destroy コマンドで --graceful オプションを使用すると、仮想マシンの電源を切る前に、ディスクイメージファイルのキャッシュのフラッシュを試行します。

例20.18 ハードシャットダウンによるゲスト仮想マシンの即時のシャットダウン方法

以下の例では、guest1 仮想マシンが反応しないなどの理由がある場合に、直ちにシャットダウンします。
virsh destroy guest1
このコマンドの実行後には、virsh undefine コマンド操作を続けることができます。例20.17「ゲスト仮想マシンを削除し、そのストレージボリュームを削除する方法」 を参照してください。