So löschen Sie einen Gast, nachdem Sie ihn mit virt-install erstellt haben

19

Ich habe einen KVM-Gast über die Befehlszeile erstellt, virt-installwobei ich die Befehlszeilenoptionen --disk pool=vg0,size=20und verwendet habe --name virt1.example.com.

Wie kann ich diesen KVM-Gast von der Befehlszeile löschen? Ich brauche es nicht mehr.

Nur für die Aufzeichnung war die gesamte Befehlszeile

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 

Und hier sind einige zusätzliche Informationen

[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

Aktualisieren

Das Ausführen dieser drei Befehle scheint das installierte KVM zu entfernen

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

Weitere Informationen finden Sie in der Terminalsitzung:

[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
Erik Sjölund
quelle
1
Wenn sich Ihr Fehler im virsh-Schritt befindet, undefinieren Sie virt1.example.com. Dann benötigen Sie möglicherweise einen zusätzlichen Befehl wie: virsh managedsave-remove virt1.example.com.
nmtoken

Antworten:

26

Nach dem Handbuch von Virsh ist dies:

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

Außerdem heißt es: "Definieren Sie die Konfiguration für eine inaktive Domäne nicht (zerstören Sie sie). Da die Domäne nicht ausgeführt wird, muss der Domänenname oder die UUID als Domänen-ID verwendet werden."

mailq
quelle
Danke @mailq Ich glaube, ich habe es geschafft, die KVM zu löschen. Vielleicht könnten Sie Ihre Antwort entsprechend aktualisieren?
Erik Sjölund
Jetzt gibt es die Lösung wieder
mailq
5
Für diejenigen, die neugierig sind, ist dies das, was diese Befehle tun: virsh destroyFührt ein erzwungenes Herunterfahren der VM durch, virsh undefineentfernt die Konfiguration von KVM und virsh vol-deleteentfernt das eigentliche Festplatten-Image. Wenn Sie den _domain-id_Typ benötigen, um virsh list --alleine Liste Ihrer VMs zu erhalten.
Rick Chatham
3
Dieses Rezept wurde in virt-delete aus virt-utils geschrieben , das auch einige andere nützliche Skripte enthält.
imz - Ivan Zakharyaschev
Sie können virsh undefine yourdomainname --storage vdain einem Schritt tun . Achten Sie darauf, nicht zu verwenden --remove-all-storage, es sei denn, Sie wissen, was Sie tun.
ILMostro_7