介绍
VMware快照可保存虚拟机在特定时刻的状态和数据,包括虚拟机的电源状态(例如,打开电源、关闭电源、挂起),以及组成虚拟机的所有文件(磁盘、内存和其他设备如虚拟网络接口)。虚拟机提供了多个用于创建和管理快照及快照链的操作。通过这些操作,用户可以创建快照、还原到链中的任意快照以及移除快照。可以创建多种快照树。
本文将介绍进行VMware快照操作的最佳实践。
更多信息
快照如何工作:
VMware API允许VMware和第三方产品利用虚拟机及其快照执行操作。以下是可以使用我们的API对虚拟机和快照执行的常见操作列表:
· CreateSnapshot:创建新的虚拟机快照。作为一个副作用,该操作将更新当前快照。
· RemoveSnapshot:移除快照并删除任何关联的存储。
· RemoveAllSnapshots:移除所有与虚拟机关联的快照。如果虚拟机没有任何快照,则此操作将成功返回。
· RevertToSnapshot:将虚拟机的执行状态更改为此快照的状态。这等同于使用 vSphere/VI Client GUI 时快照管理器下的“转至”选项。
· Consolidate:合并重做日志的层次结构。该操作仅在 vSphere 5.0 及更高版本中可用。
以下是在VMware环境中处理如何创建、移除或恢复快照请求的高级别概述:
1. 创建、移除或恢复虚拟机快照的请求将使用VMware API从客户端发送到服务器。
2. 该请求将转发到当前托管存在问题的虚拟机的VMware ESX主机。
注意:只有在原始请求发送到其他服务器(例如管理ESX主机的vCenter)时才会发生此情况。
3. 如果快照包括内存选项,则ESX主机会将虚拟机内存写入磁盘。
注意:在整个写入内存期间虚拟机将处于停止状态。无法预先计算停止时间的长度,该时间长度取决于存在问题的磁盘的性能和写入的内存量。ESXi/ESXi 4.x和更高版本在写入内存时的停止时间较短。
4. 如果快照包括静默选项,则ESX主机将请求客户机操作系统通过VMware Tools静默磁盘。
注意:视客户机操作系统而定,静默操作可以通过同步驱动程序、vmsync模块或Microsoft卷影复制服务(VSS)完成。
5. ESX主机对虚拟机快照数据库(.vmsd文件)进行相应的更改,这些更改反映在虚拟机的快照管理器中。
注意:移除快照时,快照管理器中的快照实体将在对子磁盘进行更改之前移除。从子磁盘继续运行虚拟机时,快照管理器不包含任何快照条目。
6. ESX主机会调用与虚拟磁盘API函数类似的函数,对子磁盘(-delta.vmdk 和 .vmdk文件)和磁盘链进行更改。
注意:移除快照期间,如果子磁盘很大,则操作可能需要较长时间。这可能导致VirtualCenter或VMware Infrastructure Client中出现超时错误消息。
子磁盘
使用快照创建的子磁盘是稀疏磁盘。稀疏磁盘采用写入时复制 (COW) 机制,其中虚拟磁盘不包含任何数据,直到通过写入操作将数据复制到磁盘。此优化可节省存储空间。粒度是稀疏磁盘使用写入时复制机制的度量单位。每个粒度均是一个包含虚拟磁盘数据的扇区块。默认大小为128个扇区或64 KB。
注意:稀疏磁盘通常创建为VMFSSPARSE类型。自vSphere 5.5开始,对于大小为2TB或更大的任意vmdk,稀疏磁盘的类型均为SESPARSE。
重要的是要注意以下有关子磁盘空间利用率的要点:
· 如果虚拟机正在运行快照,则其正在对子磁盘或稀疏磁盘进行更改。对该磁盘执行的写入操作越多,该磁盘就会变得越大,直至达到上限(基础磁盘大小与少量开销之和)。
· 在子磁盘的空间要求中,除了其所依赖的父磁盘的空间要求之外还有附加要求。如果虚拟机具有一个带子磁盘的10 GB磁盘,则使用的空间为10 GB+子磁盘的大小+.vmsn文件大小+开销。
· 子磁盘会增长得很大,乃至填满整个数据存储,但这是因为包含数据存储的LUN不够大,无法容纳基础磁盘、已创建的快照数量、相关开销和已创建的.vmsn文件。
· 子磁盘的增长速度直接取决于对磁盘执行的I/O量。
· 子磁盘的大小对删除与子磁盘关联的快照所用的时间有直接影响。
磁盘链
通常,首次创建快照时,将通过父磁盘创建第一个子磁盘。连续快照将从链上的最后一个子磁盘生成新的子磁盘。如果快照链中有多个分支,则关系可能会发生更改。
下图是快照链的示例。每个正方形表示上面部分所述的一个数据块或粒度:
警告:手动操作单个子磁盘或任意快照配置文件可能会影响磁盘链。由于可能会导致数据丢失,VMware不建议手动修改磁盘链。
最佳实践:
· 快照不是备份。由于快照文件仅仅是原始虚拟磁盘的变更日志,请不要依赖它完成直接备份过程。虚拟机基于最新快照(而不是原始 vmdk 磁盘文件)运行。
· 快照不是原始VMDK磁盘文件的完整副本。快照文件中的变更日志与原始磁盘文件相结合,共同构成虚拟机的当前状态。如果删除基础磁盘,快照文件将毫无用处。
· 快照文件可以增大到与原始基础磁盘文件相同的大小,因此,虚拟机配置的存储容量的增加值等于虚拟机的原始容量乘以虚拟机上的快照数量。
· 一个链中支持的最大数量为32个。但是,VMware建议您在一个链中只使用2至3个快照。
· 使用的单个快照不要超过24-72小时。
o 这可以防止快照变得过大,以致删除快照/提交快照到原始虚拟机磁盘时引起问题。请创建快照,对虚拟机进行更改,然后在您确认虚拟机处于正常工作状态后立即删除/提交快照。
o 对于电子邮件和数据库服务器等高事务量虚拟机上使用的快照要格外用心。这些快照会很快增大,充满数据存储空间。当您确认您所测试的过程处于正常的工作状态后,请立即提交这些虚拟机上的快照。
· 如果使用与快照相关的第三方产品(如虚拟机备份软件),请定期监测为备份而配置的系统,以确保没有快照在很长一段时间内一直处于活动状态。
o 快照只应在备份过程期间存在。
o 通过第三方软件(通过API调用)创建的快照可能不会显示在vCenter快照管理器中。请定期通过命令行检查快照。
· 链中存在过多快照或快照容量太大可能会降低虚拟机和主机的性能。
· 配置自动vCenter Server警报,当从快照中运行虚拟机时将触发警报。
· 确认执行Storage vMotion之前不存在任何快照(通过命令行)。如果存在快照,则在执行Storage vMotion之前删除它们。
· 确认在增加任何虚拟机的虚拟磁盘或虚拟RDM容量之前不存在任何快照(通过命令行)。如果存在快照,则在增加磁盘容量之前删除它们。增加包含快照的磁盘的容量可能会导致快照损坏和潜在的数据丢失。
参考
VMware KB: Best practices for virtual machine snapshots in the VMware environment
VMware KB: Understanding virtual machine snapshots in VMware ESXi and ESX
应用于
VMware