como excluir um convidado após criá-lo com virt-install

19

Eu criei um convidado KVM a partir da linha de comando com o local virt-installonde usei as opções da linha de comando --disk pool=vg0,size=20e --name virt1.example.com.

Como posso excluir este convidado KVM da linha de comando? Eu não preciso mais disso.

Apenas para o registro, toda a linha de comando foi

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 

e aqui estão algumas informações extras

[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

Atualizar

A execução desses três comandos parece remover o KVM instalado

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

Para mais detalhes, consulte a sessão do 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
fonte
1
Para outras pessoas que procuram esta resposta, se o seu erro estiver na etapa virsh undefine virt1.example.com (com um erro como 'Recusando a indefinir enquanto a imagem de salvamento gerenciada por domínio existir'). Você pode precisar de um comando adicional como: virsh managedsave-remove virt1.example.com.
NmToken

Respostas:

26

De acordo com o manual do virsh, este é:

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

Além disso, diz: "Indefinir (destruir) a configuração de um domínio inativo. Como o domínio não está sendo executado, o nome do domínio ou o UUID devem ser usados ​​como o ID do domínio".

mailq
fonte
Obrigado @mailq Acho que consegui excluir o KVM. Talvez você possa atualizar sua resposta de acordo?
Erik Sjölund
Agora ele reflete a solução
mailq
5
Para quem está curioso, é o que esses comandos fazem: virsh destroyfaz um desligamento forçado da vm, virsh undefineremove a configuração do KVM e virsh vol-deleteremove a imagem de disco real. Se você precisar obter o _domain-id_tipo virsh list --allpara obter uma lista de suas VMs.
Rick Chatham
3
Esta receita foi escrita em virt-delete no virt-utils , que também possui alguns outros scripts úteis.
IMZ - Ivan Zakharyaschev
Você pode fazer virsh undefine yourdomainname --storage vdaem uma etapa. Cuidado para não usar --remove-all-storage, a menos que você saiba o que está fazendo.
ILMostro_7