使用virt-install创建来宾后如何删除来宾


19

我从命令行创建了KVM guest虚拟机,并virt-install在其中使用了命令行选项--disk pool=vg0,size=20--name virt1.example.com

如何从命令行删除此KVM guest虚拟机?我不再需要了

仅作记录,整个命令行是

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

更新资料

运行这三个命令似乎会删除已安装的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上取消定义virt1.example.com步骤(错误类似“存在域管理的保存映像时拒绝取消定义”)。然后,您可能需要其他命令,例如:virshmanagedsave-remove virt1.example.com。
2014年

Answers:


26

根据virsh的手册,这是:

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

它进一步说:“取消定义(破坏)非活动域的配置。由于该域未运行,因此必须将域名或UUID用作域ID。”


谢谢@mailq,我想我设法删除了KVM。也许您可以相应地更新答案?
ErikSjölund2011年

现在它反映了解决方案
mailq

5
对于那些好奇的人,这是这些命令的作用: virsh destroy强制关闭vm,virsh undefine从KVM中删除配置,并virsh vol-delete删除实际的磁盘映像。如果需要获取_domain-id_类型virsh list --all以获取虚拟机列表。
里克·查塔姆

3
该食谱已通过virt-utils中的virt-delete脚本编写,该脚本还有一些其他有用的脚本。
imz –伊万·扎哈拉里舍夫(Ivan Zakharyaschev)'17

您可以virsh undefine yourdomainname --storage vda一步一步完成。注意不要使用--remove-all-storage,除非您知道自己在做什么。
ILMostro_18年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.