1) 查看命令帮助
[root@localhost ~]# virsh -h
2) 查看KVM的配置文件存放目录
[root@localhost ~]# ls -l /etc/libvirt/qemu
总用量 12
drwxr-xr-x. 2 root root 23 9月 28 17:20 autostart
-rw-------. 1 root root 4364 9月 27 12:01 centos7.0.xml
drwx------. 3 root root 42 9月 24 22:54 networks
-rw-------. 1 root root 3847 9月 28 16:35 vm002.xml
3) 查看虚拟机状态
[root@localhost ~]# virsh list --all
Id 名称 状态
2 vm002 running
3 centos7.0 running
4) 虚拟机关机与开机
[root@localhost ~]# virsh shutdown vm002
域 vm002 被关闭
[root@localhost ~]# virsh start vm002域 vm002 已开始
5) 强制虚拟机系统关闭电源
[root@localhost ~]# virsh destroy vm002
[root@localhost ~]# virsh list --all
Id 名称 状态
3 centos7.0 running
-
vm002 关闭
6) 通过配置文件启动虚拟机系统实例
[root@localhost ~]# virsh create /etc/libvirt/qemu/vm002.xml
域 vm002 被创建(从 /etc/libvirt/qemu/vm002.xml)
[root@localhost ~]# virsh list --all
Id 名称 状态3 centos7.0 running
5 vm002 running
7) 挂起虚拟机
[root@localhost ~]# virsh suspend vm002
域 vm002 被挂起
[root@localhost ~]# virsh list --all
Id 名称 状态3 centos7.0 running
5 vm002 暂停
8) 恢复虚拟机
[root@localhost ~]# virsh resume vm002
域 vm002 被重新恢复
[root@localhost ~]# virsh list --all
Id 名称 状态
----------------------------------------------------3 centos7.0 running
5 vm002 running
9) 配置虚拟机实例伴随宿主机自动启动
[root@localhost ~]# virsh autostart vm002
域 vm002标记为自动开始
上述命令将创建/etc/libvirt/qemu/autostart/目录,里面内容为开机自动启动的系
统 [r
oot@localhost ~]# virsh autostart --disable vm002
域 vm002取消标记为自动开始
10) 导出虚拟机配置
[root@localhost ~]# virsh dumpxml vm002 > /etc/libvirt/qemu/vm002-bak.xml
11) 虚拟机的删除与添加
删除虚拟机
[root@localhost ~]# virsh shutdown vm002
域 vm002 被关闭
[root@localhost ~]# virsh undefine vm002
域 vm002 已经被取消定义
查看删除结果,vm002的配置文件被删除,但是磁盘文件不会被删除。
[root@localhost ~]# ls /etc/libvirt/qemu
autostart centos7.0.xml networks vm002-bak.xml
通过virsh list --all 查看不到vm002的信息,说明此虚拟机被删除
[root@localhost ~]# virsh list --all
Id 名称 状态3 centos7.0 running
通过备份的配置文件重新定义虚拟机:
[root@localhost ~]# mv /etc/libvirt/qemu/vm002-bak.xml
/etc/libvirt/qemu/vm002.xml
[root@localhost ~]# virsh define /etc/libvirt/qemu/vm002.xml
定义域 vm002(从 /etc/libvirt/qemu/vm002.xml)
[root@localhost ~]# virsh list --all
Id 名称 状态----------------------------------------------------
3 centos7.0 running -
vm002 关闭
12) 修改虚拟机配置信息
直接修改配置文件
[root@localhost ~]# vim /etc/libvirt/qemu/vm002.xml
通过virsh命令修改
[root@localhost ~]# virsh edit vm002
13) 查看虚拟机信息
[root@localhost ~]# virsh dominfo vm002
Id: 1
名称: vm002
UUID: e144e9ba-a125-4a97-9cf1-1c571f58817a
OS 类型: hvm
状态: running
CPU: 1
CPU 时间: 72.9s
最大内存: 1048576 KiB
使用的内存: 1048576 KiB
持久: 是
自动启动: 禁用
管理的保存: 否
安全性模式: selinux
安全性 DOI: 0
安全性标签: system_u:system_r:svirt_t:s0:c215,c657 (enforcing)
14) 连接虚拟机 (进入虚拟机后按 ctrl + ] 退出虚拟机)
[root@localhost ~]# virsh console vm002
连接到域 vm002
换码符为 ^]
CentOS Linux 7 (Core)
Kernel 3.10.0-514.el7.x86_64 on an x86_64
vm002 login: rootPassword:
Last login: Fri Sep 29 09:00:18 on ttyS0
KVM虚拟机克隆
1) 查看虚拟机状态
[root@kvm001 ~]# virsh list --all
Id 名称 状态17 vmtest01 running
- centos7.0 关闭
-
vm002 关闭
2) 从vm002克隆到vm003
[root@kvm001 ~]# virt-clone -o vm002 -n vm003 -f /kvm-vm/vm003.qcow2
3) 查看虚拟机状态
[root@kvm001 ~]# virsh list --all
Id 名称 状态17 vmtest01 running
- centos7.0 关闭
- vm002 关闭
- vm003 关闭
4) 启动虚拟机
[root@kvm001 ~]# virsh start vm003
域 vm003 已开始
[root@kvm001 ~]# virsh list --all
Id 名称 状态
----------------------------------------------------17 vmtest01 running
18 vm003 running - centos7.0 关闭
-
vm002 关闭
KVM虚拟机快照
快照实际上做的是虚拟机的XML配置文件,默认快照XML文件
在/var/lib/libvirt/qemu/snapshot/虚拟机名/下,快照只支持qcow2磁盘格式的系统。
1) 对虚拟机vm002做快照
[root@kvm001 ~]# virsh snapshot-create vm002
已生成域快照 1507040414
或者在创建快照的同时给快照一个名字
[root@kvm001 ~]# virsh snapshot-create-as vm002 firsh_snap
已生成域快照 firsh_snap
2) 查看快照信息
[root@kvm001 ~]# virsh snapshot-list vm002
名称 生成时间 状态1507040414 2017-10-03 22:20:14 +0800 shutoff
firsh_snap 2017-10-03 22:26:49 +0800 shutoff
3) 查看当前快照信息
[root@kvm001 ~]# virsh snapshot-current vm002
<domainsnapshot>
<name>firsh_snap</name> //快照版本号
<state>shutoff</state>
<parent>
<name>1507040414</name>
</parent>
<creationTime>1507040809</creationTime>
<memory snapshot='no'/>
4) 恢复虚拟机状态到1507040414
[root@kvm001 ~]# virsh snapshot-revert vm002 1507040414
验证是否恢复:
[root@kvm001 ~]# virsh snapshot-current vm002
<domainsnapshot><name>1507040414</name> //快照版本号
<state>shutoff</state>
<creationTime>1507040414</creationTime>
<memory snapshot='no'/>
5) 删除快照
[root@kvm001 ~]# virsh snapshot-list vm002
名称 生成时间 状态1507040414 2017-10-03 22:20:14 +0800 shutoff
firsh_snap 2017-10-03 22:26:49 +0800 shutoff
[root@kvm001 ~]# virsh snapshot-delete vm002 firsh_snap
已删除域快照 firsh_snap
[root@kvm001 ~]# virsh snapshot-list vm002
名称 生成时间 状态1507040414 2017-10-03 22:20:14 +0800 shutoff