cómo eliminar un invitado después de crearlo con virt-install

19

Creé un invitado KVM desde la línea de comando con virt-installdonde usé las opciones de línea de comando --disk pool=vg0,size=20y --name virt1.example.com.

¿Cómo puedo eliminar este invitado KVM de la línea de comando? Ya no lo necesito.

Solo para el registro, toda la línea de comando era

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 

y aquí hay información adicional

[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

Actualizar

La ejecución de estos tres comandos parece eliminar el KVM instalado

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

Para más detalles ver la sesión de terminal:

[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
fuente
1
Para otros que miran esta respuesta, si su error está en el paso virsh undefine virt1.example.com (con un error como 'Negarse a indefinir mientras exista una imagen guardada administrada por el dominio'). Entonces es posible que necesite un comando adicional como: virsh managedsave-remove virt1.example.com.
nmtoken

Respuestas:

26

Según el manual de virsh esto es:

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

Y además dice: "No define (destruye) la configuración de un dominio inactivo. Dado que el dominio no se está ejecutando, el nombre de dominio o UUID deben usarse como id de dominio".

mailq
fuente
Gracias @mailq Creo que logré eliminar el KVM. ¿Quizás podría actualizar su respuesta en consecuencia?
Erik Sjölund
Ahora refleja la solución
mailq
55
Para aquellos que tienen curiosidad, esto es lo que hacen esos comandos: virsh destroyrealiza un apagado forzado de la máquina virtual, virsh undefineelimina la configuración de KVM y virsh vol-deleteelimina la imagen real del disco. Si necesita obtener el _domain-id_tipo virsh list --allpara obtener una lista de sus máquinas virtuales.
Rick Chatham
3
Esta receta se ha escrito en virt-delete de virt-utils , que también tiene algunos otros scripts útiles.
imz - Ivan Zakharyaschev
Puedes hacerlo virsh undefine yourdomainname --storage vdaen un solo paso. Tenga cuidado de no usar --remove-all-storage, a menos que sepa lo que está haciendo.
ILMostro_7