使用virsh之前先安装kvm环境,请参考我这边文章​​​ 安装kvm​

1.查看所有的虚拟机

virsh list  //正在运行的所有虚拟机

#yyds干货盘点#kvm使用之virsh命令详解_xml

virsh list --all

#yyds干货盘点#kvm使用之virsh命令详解_安装包_02


2.启动虚拟机

virsh start vm7
virsh reboot vm7 //重启

#yyds干货盘点#kvm使用之virsh命令详解_程序调度_03

3.关闭虚拟机

virsh shutdown vm7 // 关闭指令,是虚拟机进入shutoff状态,系统提示虚拟机正在被关闭,却未必能成功

#yyds干货盘点#kvm使用之virsh命令详解_程序调度_04

当虚拟机关闭不掉的时候(可能里面还有顽固进程一直跑)

virsh destroy vm7 // 强制关闭该虚拟机,但并非真的销毁该虚拟机,只是关闭而已。

4.挂起与恢复

virsh suspend vm7

 虚拟机处于paused暂停状态,一般情况下是被admin运行了virsh suspend才会处于这种状态,但是仍然消耗资源,只不过不被超级管理程序调度而已。

#yyds干货盘点#kvm使用之virsh命令详解_xml_05

virsh resume vm7

#yyds干货盘点#kvm使用之virsh命令详解_xml_06

5.保存虚拟机

virsh save vm7 a // 将该虚拟机的运行状态存储到文件a中

#yyds干货盘点#kvm使用之virsh命令详解_xml_07

virsh restore a

根据文件a恢复被存储状态的虚拟机的状态,即便虚拟机被删除也可以恢复(如果虚拟机已经被undefine移除,那么恢复的虚拟机也只是一个临时的状态,关闭后自动消失)

#yyds干货盘点#kvm使用之virsh命令详解_xml_08

6.删除虚拟机

删除之前请先关闭虚拟机(virsh destroy vm7)

vm7.xml在/etc/libvirt/qemu/vm7.xml(默认路径)

#yyds干货盘点#kvm使用之virsh命令详解_xml_09

virsh undefine vm7

移除虚拟机,虚拟机处于关闭状态后还可以启动,但是被该指令删除后不能启动。在虚拟机处于Running状态时,调用该指令,该指令暂时不生效,但是当虚拟机被关闭后,该指令生效移除该虚拟机,也可以在该指令生效之前调用define+vm7.xml取消该指令

rm -rf vm7.qcow2 //删除硬盘文件

7.编辑虚拟机

virsh edit vm7

修改的配置文件,效果等于vi xml,最后后define该xml文件(建议关机修改,修改完virsh define防止不生效)

#yyds干货盘点#kvm使用之virsh命令详解_安装包_10

8.virt工具

virt需要安装包

yum install libguestfs-tools -y

#yyds干货盘点#kvm使用之virsh命令详解_xml_11

克隆虚拟机 -o 源 -n 新机器名字 -f 文件路径

virt-clone -o vm1 -n vm2 -f /home/vm/vm2.qcow2
virt-edit 等同virsh edit

其他功能请自行查找使用