VMWare虚拟机快照技术深入理解

转载链接:
https://blog.51cto.com/xjsunjie/2085357?tdsourcetag=s_pcqq_aiomsg

什么是快照

快照可保存虚拟机在特定时刻的状态和数据。

  • 状态包括虚拟机的电源状态(例如,打开电源、关闭电源、挂起)。
  • 数据包括组成虚拟机的所有文件。这包括磁盘、内存和其他设备(例如虚拟网络接口卡)。

虚拟机提供了多个用于创建和管理快照及快照链的操作。通过这些操作,我们可以创建快照、还原到链中的任意快照以及移除快照。

虚拟机文件介绍

  • vmsd文件(快照元素文件)
    记录快照与vmdk文件的管理关系字典文件。
  • vmdk文件(虚拟磁盘文件)
    实际虚拟机中划分出来的硬盘文件。
    可以通过VMware的磁盘虚拟映射,或者第三方软件(如:diskgenius)查看文件所代表硬盘中的数据。
    VMWare虚拟机快照技术深入理解
  • nvram文件(虚拟机非异变RAM文件)
    用于记录虚拟机的BIOS信息
  • vmsn文件(快照状态信息)
    用于记录在执行快照时,虚拟机的运行状态相关信息。
  • vmx文件(虚拟机的配置文件)
    用于记录当前虚拟机的一些配置信息,vmware可通过打开该文件加载、启动虚拟机。
  • vmx~文件(vmx的保护文件)
    实际修改虚拟机配置时,是先修改vmx~,修改完成后该文件在于vmx交换,从而确保vmx被破坏,并且在vmx文件被破坏时,还可以通过该文件还原vmx。
  • vmem文件(虚拟内存文件)
    当内存不足时,临时作为内存使用,用于存储不常用的进程数据,该文件大小与虚拟机分配的内存大小相同。
  • vswp文件(即swap文件)
    分不清vswp与vmem之间的区别。
  • vmware-x.log文件(日志文件)
    虚拟机日志文件。

快照原理

新建快照

快照采用的是“写时复制(Copy On Write)”的技术,实现原理比较简单,快照时复制一份原磁盘的索引,指向的实际数据均为原始磁盘的数据,原始磁盘会变为只读状态,只有当原镜像的的数据发生变化时,才将变化区域的在变化之前的数据复制一份给快照对应位置。所以打快照的时候数据比较小,后面会越来越大,对于已经修改过的区域,再次修改时,会覆盖原有的修改区域,因此,新生成的vmdk大小永远不会超过最初的vmdk大小。
VMWare虚拟机快照技术深入理解

删除快照

当删除虚拟机快照时,当前快照节点的数据会先复制到上一个父节点中,当数据复制完成后,当前快照才会被删除。
对于单个快照的删除,不会有任何影响,当同时删除多个快照时,只有在所有的数据复制完成后,才会删除快照,而在数据复制过程中会导致磁盘空间上涨。

快照的优劣

优势

  • 对原始数据起到了很好地保护作用
    每次进行快照后,原始的镜像文件会处于只读状态,而通过新建的vmdk文件记录后续的修改状态,这样的做法是的用户能够很好地对原始数据进行保护和备份,并且在当前数据出现问题时,也很方便恢复到之前的快照点。

劣势

  • 大量消耗磁盘空间与IO性能
    每次修改,虚拟机会先查看当前快照的vmdk是否存在相应的数据,若数据不存在,便会向原始镜像查找数据,并复制一份,这导致数据在各个快照中重复出现,磁盘利用率的下降。
    同时当快照较多时,从原始镜像中查找修改数据的复杂程度上升,从而IO性能也降低了。
  • VMWare快照无自我保护机制
    VMWare快照无自我保护机制,在空间不足时,并不会删除早期快照,长此以往会导致空间不足,从而出现系统崩溃问题。

快照的适用范围及注意事项

  1. 快照主要适用于系统补丁安装或系统升级等环境更改后的系统备份
  2. 快照不建议过多,否则会对服务器性能产生影响