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 コマンドは、ゲスト仮想マシンが応答しない場合にのみ使用してください。
--graceful
オプションを指定した virsh destroy コマンドは、仮想マシンの電源を切る前にディスクイメージファイルのキャッシュをフラッシュしようとします。
例20.18 ハードシャットダウンしてゲスト仮想マシンをすぐにシャットダウンする方法
以下の例では、guest1 仮想マシンが (おそらく応答しないため) すぐにシャットダウンします。
# virsh destroy guest1
これには、virsh undefine コマンドを使用します。例20.17「ゲスト仮想マシンを削除し、そのストレージボリュームを削除する方法」 を参照