参考:

http://zhumeng8337797.blog.163.com/blog/static/100768914201332303755627/


快照是采用增量的方法,如果不和存储进行耦合,vmware,xenserver等做法是把共性的部分做成只读(文件块划分),变化的部分做成增量文件,也就是说,随着快照的增加,它是一个 链式结果,读写次数也会从一次肚饿些变成多次读写。 性能会衰减,所以VMWare要求快照的长度不能超过6层。

下面说的场景就是vmware的,在windows hyper-v里面也是一样的体系。

在对虚拟机执行快照后,出现虚拟机服务器死机的问题。经分析定位,是由于快照动作产生的快照文件过大,及增量包文件不断增大,承载虚拟机的实体机分配给该虚拟机的磁盘空间满,导致虚拟机挂死。可通过删除快照文件,将增量包与当前虚拟机服务器合并的方式解决。 

 正文: 
监控发现网管服务器第一台无法ping通,服务异常。经检查发现该虚拟机死机。由于服务器挂死,尝试使用命令进行重启,但重启后虚拟机客户端报redo log空间不足。经进一步检查发现,承载虚拟机的实体机分配给该虚拟机的磁盘空间目录/vmfs/volumes/OA_NET002/80.7.3.1中有一个8G的快照文件80.7.3.1-Snapshot1.vmsn和一个24G的增量包文件80.7.3.1-000001-delta.vmdk,导致空间不足。在实体机上使用命令vmware-cmd /vmfs/volumes/OANET002/80.7.3.1/80.7.3.1.vmx stop hard停止虚拟机后,删除快照文件并将增量包与当前虚拟机服务器合并释放空间。重新启动服务器及相关服务,恢复正常。 分析结论: 
在对虚拟机执行快照动作时会同步产生一个快照文件和一个增量包文件,快照文件用来记录执行快照动作时虚拟机的状态,增量包文件用来记录执行快照后虚拟机的增删修改等更新操作,因此随着虚拟机的运行,增量包文件会不断增长,直到承载虚拟机的实体机分配给该虚拟机的空间完全耗尽,导致虚拟机挂死。 建议措施: 
快照功能只适合短期记录服务器状态,不适合作为服务器的长期备份,应慎重使用该功能。 实施方法: 
登录承载该虚拟机的实体机,进入该虚拟机的目录,删除快照文件,通过将该虚拟机克隆的方式将增量包与当前虚拟机服务器合并。删除原虚拟机,启动克隆后的虚拟机服务器即可。 
备注: 
承载虚拟机的实体机的磁盘空间是指该实体机的本地硬盘空间及分配给该实体机的外部存储。 

虚拟机服务器的磁盘空间是指用户建立虚拟机时划分的磁盘空间,用户划分磁盘空间后会在承载虚拟机的实体机的磁盘上建立一个以该虚拟机名称命名的文件夹,用户的所有虚拟机文件包括该虚拟机划分的空间


再看KVM的====相对复杂还要注意镜像文件格式

想要启用快照功能,需要先转换镜像文件格式为qcow2。


[root@WWW.ESOJOURN.ORG vps]# virsh shutdown esojourn.org
先关掉VM
[root@WWW.ESOJOURN.ORG vps]# qemu-img     convert -f raw       -O qcow2      centos1.img     centos1qcow2.img
转换格式


三。常用快照命令
这里有一份libvirt官方的命令文档。完整,但说明不详细:http://wiki.libvirt.org/page/VM_lifecycle

具体示例:

1. 列出快照:

[root@WWW.ESOJOURN.ORG vps]# virsh snapshot-list CentOS1
Name                 Creation Time             State
------------------------------------------------------------
centos1.snap1        2012-10-08 17:25:11 +0800 running
snap2                2012-10-08 17:33:14 +0800 running
snap3                2012-10-08 17:57:21 +0800 running

2. 创建快照
virsh snapshot-create-as             CentOS1             snap2
virsh snapshot-create-as --domain CentOS1 --name snap2 --description "URL: www.esojourn.org"

3. 查看快照配置
virsh snapshot-current CentOS1
4. 恢复快照
virsh snapshot-revert CentOS1 snap2
5. 删除快照
birsh snapshot-delete CentOS1 snap2
6. 获取帮助
virsh help snapshot
当我们需要批量的部署我们的XEN 或者KVM的时候,LVM的snap功能是个不错的选择.
 
#lvcreat -L 2G -s -n  lv-virt2 /dev/vg01/lv-virt1
为/dev/vg01/lv-virt1创建一个大小为2G的快照lv-virt2
修改Domain-U的配置文件,uuid得用uuidgen生成.修改内容很简单.
注意:依据写时复制的原理,当快照逻辑卷不能容纳父卷改变的块时,快照将不可用.避免这种情况的发生,注意用lvdisplay查看及时用lvextend扩展尺寸或者创建块大小与父卷块一致的不死快照.



Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐