jak usunąć gościa po utworzeniu go za pomocą virt-install

19

Utworzyłem gościa KVM z wiersza polecenia, w virt-installktórym użyłem opcji wiersza polecenia --disk pool=vg0,size=20i --name virt1.example.com.

Jak mogę usunąć tego gościa KVM z wiersza poleceń? Nie potrzebuję tego więcej.

Dla przypomnienia cała linia poleceń była

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 

a oto kilka dodatkowych informacji

[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

Aktualizacja

Uruchomienie tych trzech poleceń wydaje się usuwać zainstalowany KVM

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

Aby uzyskać więcej informacji, zobacz sesję terminalową:

[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
źródło
1
Dla innych, którzy patrzą na tę odpowiedź, jeśli Twój błąd występuje na etapie undefine virt1.example.com (z błędem typu „Odmowa niezdefiniowania, gdy istnieje zapisany obraz zarządzany przez domenę”). Następnie może być potrzebne dodatkowe polecenie, takie jak: virsh managedsave-remove virt1.example.com.
nmtoken

Odpowiedzi:

26

Zgodnie z instrukcją virsh jest to:

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

I dalej mówi: „Niezdefiniuj (zniszcz) konfigurację nieaktywnej domeny. Ponieważ w domenie nie działa nazwa domeny lub identyfikator UUID musi być użyty jako identyfikator domeny”.

mailq
źródło
Dzięki @mailq Myślę, że udało mi się usunąć KVM. Może mógłbyś odpowiednio zaktualizować swoją odpowiedź?
Erik Sjölund,
Teraz odzwierciedla to rozwiązanie
mailq
5
Dla tych, którzy są ciekawi, to właśnie robią te polecenia: virsh destroywymusza zamknięcie vm, virsh undefineusuwa konfigurację z KVM i virsh vol-deleteusuwa rzeczywisty obraz dysku. Jeśli potrzebujesz uzyskać _domain-id_typ, virsh list --allaby uzyskać listę swoich maszyn wirtualnych.
Rick Chatham
3
Ten przepis został napisany w skrypcie virt-delete z virt-utils , który zawiera także kilka innych przydatnych skryptów.
imz - Ivan Zachharyaschev
Możesz to zrobić virsh undefine yourdomainname --storage vdaw jednym kroku. Uważaj, aby nie używać --remove-all-storage, chyba że wiesz, co robisz.
ILMostro_7