如何使用virsh命令删除KVM VM guest虚拟机
时间:2020-01-09 10:40:25 来源:igfitidea点击:
如何在Linux操作系统上使用virsh命令行删除VM guest虚拟机?
如何在Ubuntu或CentOS Linux服务器上删除名为vps42的虚拟机?
默认情况下,删除VM Guest会删除其XML配置,该配置存储在/etc /目录中。
您也可以删除来宾存储文件以完全删除来宾。
在本快速教程中,您将学习如何在Debian/Ubuntu/RHEL/CentOS Linux服务器上使用virsh删除VM guest虚拟机。
要使用Virsh删除KVM guest虚拟机,请执行以下操作:
- 首先,使用" virsh list"命令列出所有正在运行的KVM guest虚拟机。
- 接下来,您需要使用" virsh shutdown VM"命令关闭来宾虚拟机。
- 最后,使用
virsh undefine VM
命令删除VM Guest。
让我们详细了解步骤。
步骤1:列出所有VM guest虚拟机
执行以下命令:
# virsh list # virsh list --all
输出示例:
Virsh列出了一个KVM虚拟机
要查看有关名为openbsd的域(VM)的信息,请执行:
# virsh dumpxml VM_NAME # virsh dumpxml --domain VM_NAME # virsh dumpxml --domain openbsd
记下访客存储文件:
# virsh dumpxml --domain openbsd | grep 'source file' `<source file='/nfswheel/kvm/openbsd.qcow2'/>`
步骤2:关闭来宾
执行以下命令以关闭名为openbsd的虚拟机:
# virsh shutdown VM_NAME # virsh shutdown --domain VM_NAME # virsh shutdown --domain openbsd
您可以使用virsh destroy命令强制来宾虚拟机停止:
# virsh destroy VM_NAME # virsh destroy --domain VM_NAME # virsh destroy --domain openbsd
步骤3:删除虚拟机
使用virsh删除VM Guest
# virsh undefine VM_NAME # virsh undefine --domain VM_NAME # virsh undefine --domain openbsd
输出示例:
Domain openbsd has been undefined
没有选项可以自动删除名为/nfswheel/kvm/openbsd.qcow2的追加存储文件。
要删除它,请执行:
# rm -rf /nfswheel/kvm/openbsd.qcow2
关于错误的说明:无法删除带有快照的非活动域
您无法删除带有快照的虚拟机。
例如:
# virsh undefine --domain openbsd
输出示例:
error: Failed to undefine domain openbsd error: Requested operation is not valid: cannot delete inactive domain with 2 snapshots
要列出快照,请执行:
# virsh snapshot-list --domain VM_NAME # virsh snapshot-list --domain openbsd
输出示例:
Name Creation Time State ----------------------------------------------------------- 3sep2015 2015-09-02 13:38:18 -0500 shutoff 3sep2015u1 2015-09-02 15:04:50 -0500 shutoff
删除快照的语法如下:
# virsh snapshot-delete --domain VM_NAME --snapshotname SNAPSHOT_NAME
要删除两个快照,请执行:
# virsh snapshot-delete --domain openbsd --snapshotname 3sep2015 `Domain snapshot 3sep2015 deleted` # virsh snapshot-delete --domain openbsd --snapshotname 3sep2015u1 `Domain snapshot 3sep2015u1 deleted`
验证一下:
# virsh snapshot-list --domain openbsd
现在删除虚拟机:
# virsh undefine --domain openbsd `Domain openbsd has been undefined` # rm -f /nfswheel/kvm/openbsd.qcow2
在取消定义域/VM的同时删除关联的VM存储卷和快照
最新版本的virsh命令支持使用以下语法删除关联的存储卷:
# virsh undefine --domain {VM_NAME_HERE} --storage {source_path}
使用以下命令找出存储ID和源路径:
# virsh domblklist --domain {VM_NAME_HERE} ## List VM snapshots ## # virsh snapshot-list --domain {VM_NAME_HERE}
甚至还有一个消除所有关联的存储VM云存储卷的选项,必须谨慎使用:
# virsh undefine --domain {VM_NAME_HERE} --remove-all-storage
要转换与卷(VM存储)关联的快照,请使用以下语法以及该选项:
# virsh undefine --domain {VM_NAME_HERE} --delete-snapshots --remove-all-storage
为了安全起见,我们还可以擦除已删除卷上的数据,因此以后没有人可以恢复数据:
# virsh undefine --domain {VM_NAME_HERE} --storage {source_path} --wipe-storage
在具有所有存储的Linux上删除和删除虚拟机
简而言之,使用以下简单语法删除名为mysql-server的虚拟机:
# virsh undefine --domain mysql-server --remove-all-storage
# virsh undefine --domain mysql-server --remove-all-storage --delete-snapshots