virt-installでゲストを作成した後にゲストを削除する方法


19

virt-installコマンドラインオプション--disk pool=vg0,size=20とを使用したコマンドラインからKVMゲストを作成しました--name virt1.example.com

このKVMゲストをコマンドラインから削除するにはどうすればよいですか?もう必要ありません。

記録のためだけに、コマンドライン全体が

virt-install --debug --hvm --vnc --name virt1.example.com --os-type=linux --os-variant=rhel6 --pxe --network network=default,model=e1000,mac=02:54:00:13:be:e4 --disk pool=vg0,size=20 --ram 1024 --vcpus=1 

ここにいくつかの追加情報があります

[root@server ~]# virsh vol-list vg0
Name                 Path                                    
-----------------------------------------
lv0                  /dev/vg0/lv0                            
lv_swap              /dev/vg0/lv_swap                        
virt1.example.com.img /dev/vg0/virt1.example.com.img  

[root@server ~]# virsh list
 Id Name                 State
----------------------------------
  3 virt1.example.com running

更新

これら3つのコマンドを実行すると、インストールされているKVMが削除されるようです

virsh destroy virt1.example.com
virsh undefine virt1.example.com
virsh vol-delete --pool vg0 virt1.example.com.img

詳細については、ターミナルセッションを参照してください。

[root@server ~]# virsh list --all
 Id Name                 State
----------------------------------
 3 virt1.example.com running

[root@server ~]# virsh undefine virt1.example.com
error: Failed to undefine domain virt1.example.com
error: Requested operation is not valid: cannot delete active domain

[root@server ~]# virsh destroy virt1.example.com
Domain virt1.example.com destroyed

[root@server ~]# virsh list --all
 Id Name                 State
----------------------------------
  - virt1.example.com shut off

[root@server ~]# virsh undefine virt1.example.com
Domain virt1.example.com has been undefined

[root@server ~]# virsh list --all
 Id Name                 State
----------------------------------

[root@server ~]# virsh vol-list --pool vg0
Name                 Path                                    
-----------------------------------------
lv0                  /dev/vg0/lv0                            
lv_swap              /dev/vg0/lv_swap                        
virt1.example.com.img /dev/vg0/virt1.example.com.img  

[root@server ~]# virsh vol-delete --pool vg0 virt1.example.com.img
Vol virt1.example.com.img deleted

[root@server ~]# virsh vol-list --pool vg0
Name                 Path                                    
-----------------------------------------
lv0                  /dev/vg0/lv0                            
lv_swap              /dev/vg0/lv_swap                        

[root@server ~]# cat /etc/issue
CentOS Linux release 6.0 (Final)
Kernel \r on an \m

[root@server ~]# virsh --version
0.8.1

1
この答えを見ている他の人のために、あなたのエラーがvirsh undefine virt1.example.comステップにある場合(「ドメイン管理された保存イメージが存在する間、定義解除を拒否する」などのエラーがあります)。次に、virsh managedsave-remove virt1.example.comのような追加のコマンドが必要になる場合があります。
nmtoken 14

回答:


26

virshのマニュアルによると、これは次のとおりです。

virsh destroy _domain-id_
virsh undefine _domain-id_
virsh vol-delete --pool vg0 _domain-id_.img

さらに、「非アクティブなドメインの構成を定義解除(破棄)します。ドメインはドメイン名またはUUIDを実行していないため、ドメインIDとして使用する必要があります。」


ありがとう@mailq KVMを削除できたと思います。それに応じて答えを更新できますか?
エリックショーランド

今では解決策を反映している
のmailq

5
好奇心who盛な人のために、これがそれらのコマンドが行うことです: virsh destroyvmの強制シャットダウンを行いvirsh undefine、KVMから構成をvirsh vol-delete削除し、実際のディスクイメージを削除します。_domain-id_タイプvirsh list --allを取得してVMのリストを取得する必要がある場合。
リックチャタム

3
このレシピはvirt-utilsからvirt-deleteでスクリプト化されています。これには他にも便利なスクリプトがいくつかあります。
imz-イヴァンザカリヤシェフ

virsh undefine yourdomainname --storage vdaワンステップでできます。--remove-all-storage何をしているかわからない限り、を使用しないように注意してください。
ILMostro_7
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.