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

1.查看所有的虚拟机


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

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


          
          
virsh list --all
  • 1.

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

2.启动虚拟机


          
          
virsh start vm7
virsh reboot vm7 //重启
  • 1.
  • 2.

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

3.关闭虚拟机


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

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

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


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

4.挂起与恢复


          
          
virsh suspend vm7
  • 1.

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

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


          
          
virsh resume vm7
  • 1.

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

5.保存虚拟机


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

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


          
          
virsh restore a
  • 1.

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

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

6.删除虚拟机

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

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

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


          
          
virsh undefine vm7
  • 1.

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


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

7.编辑虚拟机


          
          
virsh edit vm7
  • 1.

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

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

8.virt工具

virt需要安装包


          
          
yum install libguestfs-tools -y
  • 1.

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

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


          
          
virt-clone -o vm1 -n vm2 -f /home/vm/vm2.qcow2
  • 1.

          
          
virt-edit 等同virsh edit
  • 1.

其他功能请自行查找使用