[root@kvmsvr ~]# virsh list --all | grep rhel-7
- rhel-7 shut off
2)为虚拟机rhel-7的磁盘制作快照
[root@kvmsvr ~]# cd /var/lib/libvirt/images/
[root@kvmsvr images]# qemu-img snapshot -c snap1 rhel-7.qcow2 //制作快照
[root@kvmsvr images]# qemu-img snapshot -l rhel-7.qcow2 //列出快照
Snapshot list:
ID TAG VM SIZE DATE VM CLOCK
1 snap1 0 2017-01-05 15:44:25 00:00:00.000
步骤二:正常使用/更新虚拟机
1)启动虚拟机rhel-7
[root@kvmsvr ~]# virsh start rhel-7
Domain rhel-7 started
2)正常登入虚拟机rhel-7,在桌面建立文件1.txt
过程略。
步骤三:还原快照并检查恢复结果
1)关闭虚拟机rhel-7
[root@kvmsvr ~]# virsh destroy rhel-7
Domain rhel-7 destroyed
2)将虚拟机rhel-7的磁盘还原到快照snap1
[root@kvmsvr images]# qemu-img snapshot -a snap1 rhel-7.qcow2
3)重新开启虚拟机rhel-7
[root@kvmsvr ~]# virsh start rhel-7
Domain rhel-7 started
4)正常登入虚拟机rhel-7,检查桌面的文件1.txt
因为此文件是在建快照之后才建立的,所以还原快照以后就没有了。
6 案例6:快建新虚拟机
6.1 问题
本例要求利用qcow2磁盘特性快建2台新的KVM虚拟机,配置要求如下:
svr7:svr7.tedu.cn,192.168.4.7/24
pc207: pc207.tedu.cn,192.168.4.207/24
为上述虚拟机配好网络,确认yum源可用
从CentOS真机可ssh远程访问这两台虚拟机
6.2 方案
快建新虚拟机的基本思路:
提前准备好一台模板虚拟机(镜像磁盘+xml配置文件)
基于qcow2磁盘复用技术快建新虚拟机的磁盘
通过调整模板机的配置快建新虚拟机的xml配置文件
导入新虚拟机
Copy On Write,写时复制技术原理:
直接映射原始盘的数据内容
当原始盘有修改时,在修改之前将旧数据存入前端盘
对前端盘的修改不会回写到原始盘
6.3 步骤
实现此案例需要按照如下步骤进行。
步骤一:准备模板虚拟机
找一台已经装好RHEL7系统、配置好本地yum源、关闭SELinux的虚拟机,提取模板虚拟机磁盘、xml配置文件备用。
1)准备磁盘目录、模板虚拟机磁盘文件
[root@kvmsvr ~]# qemu-img info /data/images/rhel7_muban.qcow2
image: /data/images/rhel7_muban.qcow2
file format: qcow2
virtual size: 300G (322122547200 bytes) //虚拟机磁盘容量
disk size: 3.2G //在KVM服务器占用容量
2)准备模板虚拟机配置文件
[root@kvmsvr ~]# cat /data/images/rhel7_muban.xml
<domain type='kvm'>
<name>rhel7.2</name>
<uuid>a1992150-5cc7-e19d-20df-cd5cea7d8aa2</uuid>
<memory unit='KiB'>2097152</memory>
.. ..
步骤二:快建虚拟机svr7
1)为虚拟机svr7快速建立前端盘(复用模板机的磁盘数据)
[root@kvmsvr ~]# qemu-img create -f qcow2 -b /data/images/rhel7_muban.qcow2 /data/images/svr7.qcow2
Formatting '/data/images/svr7.qcow2', fmt=qcow2 size=322122547200 backing_file='/data/images/rhel7_muban.qcow2' encryption=off cluster_size=65536
2)为虚拟机svr7准备xml配置
[root@kvmsvr ~]# cp /data/images/rhel7_muban.xml /tmp/svr7.xml //拷贝配置
[root@kvmsvr ~]# vim /tmp/svr7.xml //修改配置
<domain type='kvm'>
<name>svr7</name> //新名称
<uuid>b20a1a1c-a2de-4b2f-bb03-91a3e36257c7</uuid> //新UUID值
.. ..
<channel type='unix'>
<source mode='bind' path='/var/lib/libvirt/qemu/channel/t
arget/domain-rhel-7/org.qemu.guest_agent.0'/> //改套接字路径
.. ..
</channel>
<disk type='file' device='disk'>
<driver type='qcow2'/>
<source file='/var/lib/libvirt/images/svr7.qcow2'/> //新磁盘路径
.. ..
</disk>
.. ..
<interface type='network'>
<mac address='52:54:00:11:00:07'/> //新MAC地址
<source network='default'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03
' function='0x0'/>
</interface>
.. ..
3)定义新虚拟机svr7
[root@room9pc00 ~]# virsh define /tmp/svr7.xml
定义域 svr7(从 /tmp/svr7.xml)
4)为虚拟机svr7配置主机名、IP地址
开启虚拟机svr7,使用root用户登入系统。