kvm虚拟机默认使用raw格式的镜像格式,性能最好,速度最快,它的缺点就是不支持一些新的功能,如支持镜像,zlib磁盘压缩,AES加密等。
要使用镜像功能,磁盘格式必须为qcow2。下面开始kvm虚拟机快照备份的过程。
1. 查看现有磁盘镜像格式与转换
(1) 查看磁盘格式
# qemu-img info CentOS6.5-01.img
raw格式需要转换成qcow2
(2) 关闭虚拟机并转换磁盘
# virsh shutdown CentOS6.5-01
(3) 转换磁盘格式
# qemu-img convert -f raw -O qcow2 CentOS6.5-01.img CentOS6.5-01.qcow2
-f 源镜像的格式
-O 目标镜像的格式
查看转换后的格式,已经转换成了qcow2, 这里是拷贝一份,并将格式转成qcow2
# qemu-img info CentOS6.5-01.qcow2
2. 修改虚拟机配置文件
修改磁盘格式,与新qcow2格式的磁盘。
3. 对虚拟机进行快照管理
(1) 对CentOS6.5-01虚拟机创建快照
# virsh snapshot-create CentOS6.5-01
也可以virsh snapshot-create as CentOS6.5-01 snap1 创建后个快照别名。
(2) 查看虚拟机镜像快照的版本
# virsh snapshot-list CentOS6.5-01
(3) 查看当前虚拟机镜像快照的版本
可以看到为当前最新的快照版本。
[root@node1 kvm]# virsh snapshot-current CentOS6.5-01 <domainsnapshot> <name>1511337772</name> <state>shutoff</state> <creationTime>1511337772</creationTime> <memory snapshot='no'/> <disks> <disk name='vda' snapshot='internal'/> <disk name='hdc' snapshot='no'/> </disks> <domain type='kvm'> <name>CentOS6.5-01</name> <uuid>7d48f7b5-2fbf-91a9-2c3f-e52ba6079c8e</uuid> <memory unit='KiB'>1048576</memory> <currentMemory unit='KiB'>1048576</currentMemory> <vcpu placement='static'>1</vcpu> <os> <type arch='x86_64' machine='rhel6.6.0'>hvm</type> <boot dev='hd'/> </os> <features> <acpi/> <apic/> <pae/> </features> <clock offset='localtime'/> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <devices> <emulator>/usr/libexec/qemu-kvm</emulator> <disk type='file' device='disk'> <driver name='qemu' type='qcow2' cache='none'/> <source file='/data/kvm/CentOS6.5-01.qcow2'/> <target dev='vda' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> </disk> <disk type='block' device='cdrom'> <driver name='qemu' type='raw'/> <target dev='hdc' bus='ide'/> <readonly/> <address type='drive' controller='0' bus='1' target='0' unit='0'/> </disk> <controller type='usb' index='0' model='ich9-ehci1'> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x7'/> </controller> <controller type='usb' index='0' model='ich9-uhci1'> <master startport='0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0' multifunction='on'/> </controller> <controller type='usb' index='0' model='ich9-uhci2'> <master startport='2'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x1'/> </controller> <controller type='usb' index='0' model='ich9-uhci3'> <master startport='4'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x2'/> </controller> <controller type='ide' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/> </controller> <interface type='bridge'> <mac address='52:54:00:56:9a:7f'/> <source bridge='br0'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface> <serial type='pty'> <target port='0'/> </serial> <console type='pty'> <target type='serial' port='0'/> </console> <input type='mouse' bus='ps2'/> <graphics type='vnc' port='5910' autoport='no' listen='0.0.0.0'> <listen type='address' address='0.0.0.0'/> </graphics> <video> <model type='cirrus' vram='9216' heads='1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </video> <memballoon model='virtio'> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> </memballoon> </devices> </domain> </domainsnapshot> [root@node1 kvm]#
(4) 查看当前虚拟机镜像文件
又创建了一个,快照的版本也记录在镜像文件中了。
快照配置文件在/var/lib/libvirt/qemu/snapshot/虚拟机名称/下
4. 恢复虚拟机快照
(1) 恢复虚拟机快照必须关闭虚拟机。
确认虚拟机是关机状态
(2) 确认需要恢复的快照时间,这里恢复到1511337772
(3) 执行恢复,并确认恢复版本
# virsh snapshot-revert CentOS6.5-01 1511337772
# virsh snapshot-current CentOS6.5-01
5. 删除虚拟机快照
(1) 查看虚拟机快照
# qemu-img info CentOS6.5-01.qcow2
这里删除第一个快照1511337772
(2) 删除快照
到此kvm虚拟机快照测试完毕。kvm虚拟化学习笔记进行到这里了,感觉到kvm虚拟化的内容真的很多。水是越来越深了。