【快照功能】

1,配置文件路径:
快照配置文件在/var/lib/libvirt/qemu/snapshot/虚拟机名称/

2,查看快照命令帮助
virsh --help | grep snapshot
※raw磁盘格式的虚拟机不支持快照功能

kvm虚拟机默认使用raw格式的镜像格式,性能最好,速度最快,它的缺点就是不支持一些新的功能,如支持镜像,zlib磁盘压缩,AES加密等。
要使用快照功能,磁盘格式必须为qcow2。
例:创建快照
virsh snapshot-create CentOS-7-x86_64

3,转换格式
①转换格式时虚拟机必须先关机

-f 源镜像的格式
-O 目标镜像的格式

②转换成qcow2格式的。可以看到它是保留了原来的文件。

命令:qemu-img convert -f raw -O qcow2 CentOS-7.1-x86_64.raw CentOS-7.1-x86_64.qcow2
查看磁盘格式信息:qemu-img info CentOS-7.1-x86_64.qcow2

③修改虚拟机配置文件的disk模块,把磁盘改成最新的qcow2文件,同时格式也改成qcow2的。

virsh edit CentOS-7-x86_64
<disk type='file' device='disk'>
  <driver name='qemu' type='raw'/>
  <source file='/opt/CentOS-7.1-x86_64.raw'/>
  <target dev='vda' bus='virtio'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</disk>

④修改type和source

<disk type='file' device='disk'>
  <driver name='qemu' type='qcow2'/>
  <source file='/opt/CentOS-7.1-x86_64.qcow2'/>
  <target dev='vda' bus='virtio'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</disk>

⑤做快照备份
可以先启动kvm,没问题后关闭再执行快照。
virsh snapshot-create CentOS-7-x86_64
可以到快照所在文件夹,查看:
/var/lib/libvirt/qemu/snapshot/CentOS-7-x86_64

⑥查看快照
virsh snapshot-list CentOS-7-x86_64
通过此命令也可以查看快照:qemu-img info CentOS-7.1-x86_64.qcow2

⑦多个快照时,查看当前快照
virsh snapshot-current CentOS-7-x86_64

⑧恢复到某个版本的快照状态
查看快照名称:virsh snapshot-list CentOS-7-x86_64
恢复:virsh snapshot-revert CentOS-7-x86_64 快照名称 //快照名称无需后缀.xml
恢复后,再查看当前快照,已改变:virsh snapshot-current CentOS-7-x86_64

⑨删除某个快照
删除:virsh snapshot-delete CentOS-7-x86_64 快照名称
查看:virsh snapshot-list CentOS-7-x86_64

【几种磁盘格式比较】
1. raw
raw格式是最简单,什么都没有,所以叫raw格式。连头文件都没有,就是一个直接给虚拟机进行读写的文件。raw不支持动态增长空间,必须一开始就指定空间大小。所以相当的耗费磁盘空间。但是对于支持稀疏文件的文件系统(如ext4)而言,这方面并不突出。ext4下默认创建的文件就是稀疏文件,所以不要做什么额外的工作。用
du -sh 文件名
可以查看文件的实际大小。也就是说,不管磁盘空间有多大,运行下面的指令没有任何问题:
qemu-img create -f raw test.img 10000G
raw镜像格式是虚拟机种I/O性能最好的一种格式,实际使用时都会和raw进行参照,性能越接近raw的越好。但是raw没有任何其他功能。对于稀疏文件的出现,像qcow这一类的运行时分配空间的镜像就没有任何优势了。

2. cow
cow格式和raw一样简单,也是创建时分配所有空间,但cow有一个bitmap表记录当前哪些扇区被使用,所以cow可以使用增量镜像,也就是说可以对其做外部快照。但cow也没有其他功能,其特点就是简单。

3. qcow
qcow在cow的基础上增加了动态增加文件大小的功能,并且支持加密,压缩。qcow通过2级索引表来管理整个镜像的空间分配,其中第二级的索引用了内存cache技术,需要查找动作,这方面导致性能的损失。qcow现在基本不用,一方面其优化和功能没有qcow2好,另一方面,读写性能又没有cow和raw好。

4. qcow2
qcow2是集各种技术为一体的超级镜像格式,支持内部快照,加密,压缩等一系列功能,访问性能也在不断提高。但qcow2的问题就是过于臃肿,把什么功能都集于一身。镜像小的原因是镜像文件只保存改变的部分,原来的文件被锁住了。
qcow2格式,类似虚拟机的瘦模式,虽然划分10GB,但是不是立即占完的,用多少占多少

•备注:假如你有几百GB的数据,不建议放在kvm里面,IO慢,kvm迁移也麻烦。

------山的那一边