快照指的是虚拟磁盘(VMDK)在某一特定时间点的副本。通过快照可以在系统发生问题后恢复到快照的时间点,从而有效保护磁盘上的文件系统和虚拟机的内存数据。尤其对升级应用和服务器及打补丁的时候,快照可以发挥救世主的作用。本文将涉及VMware环境中使用快照需要了解的各种内容,包括其所在位置、工作原理和高级功能。
快照磁盘空间的使用和增长率
如果您对虚拟机创建了多个快照,就拥有了多个可以恢复的时间点状态。在快照创建时,原本可读写的数据调整为只读状态。借助in-file delta校验技术,生成新的文件用于保留所有相对于原磁盘文件发生了改变的数据块部分。
生成的快照文件一定不会超出原始数据磁盘的大小。只要磁盘上的数据块发生了变化,就会在delta文件中进行记录并根据改变进行升级。假设在快照创建后,所有的原数据块都发生过改变,快照文件的大小就增长到和原磁盘一样大。另外会有一些额外的磁盘空间开销用于存放快照的管理信息。开销的***值根据VMFS数据块大小的不同存在差异。
当某个VMFS卷上虚拟磁盘的大小接近于VMDK的***值时,由于这部分开销的存在可能导致虚拟机快照创建过程失败。例如,假设2MB数据块大小的VMFS卷上,虚拟磁盘大小为512GB。快照可能会占用的***空间就是516GB(512GB+4GB),这超出该VMFS卷可支持的***VMDK值(512GB),从而引发快照创建的失败。
所以,如果考虑使用快照,在创建虚拟机的虚拟磁盘时,要把***可能开销一并计算在内,使其略小于***VMDK值(例如:512GB-4GB=508GB)。快照文件最初并不大(16MB),随着对磁盘写入数据的增加而增长。
快照以16MB为单位增长以降低SCSI预留冲突。当收到需要对原始磁盘做更改的需求时,就自动改为在delta文件中进行操作。如果是对delta文件中的数据进行二次更改,不会增加它的大小,只是简单更新相对应的数据块内容。
快照的增长率取决于服务器磁盘写入动作发生的频率。例如SQL和Exchange这种磁盘写入密集型应用的话,快照文件增长迅速。而如果是Web和应用服务器的话,内容基本是静态的写入动作很少,相应的快照增长也很慢。当用户创建多个快照时,新delta文件生成,同时把前一个delta文件状态更改为只读。在有多个快照的系统中,每个delta文件的大小都有可能增长到和原磁盘空间一样大。
快照文件的类型
*--delta.vmdk文件:这是虚拟机快照创建后用于保存差异数据的文件,也被称作redo-log文件。该delta文件是跟VMDK相对应的位图文件,因此它不会超过基本VMDK空间的大小(不考虑快照开销在内)。Delta文件在对虚拟机做快照时生成。同时生成的还有一个delta helper文件,用于保存快照进行删除或回滚操作时磁盘上发生的改变。在快照管理器中对快照做删除或回滚操作后,这些文件被自动删除。
*.vmsd文件:该文件用于存放快照元数据和相关信息。它是文本格式的,包含了快照名、UID、磁盘文件名等内容。初始大小为0 字节,直到虚拟机的***快照创建后,文件内开始写入相关信息并在每个新快照创建时进行更新。
即使快照被取消,该文件也不会完全清零。如果删除了快照,该文件依然会记录它在***时刻的UID,用于下一个快照参考。
*.vmsn文件:这是快照状态文件,保存在该快照创建时间点上虚拟机完整的运行状态。该文件的大小要取决于用户是否选择保留虚拟机的内存数据作为快照的一部分。如果选择了保留内存,文件大小会比分配给虚拟机的***内存数大出几个MB。
该文件类似于.vmss文件。.vmsn文件针对虚拟机上的每个快照创建,而在快照删除后也自动被清除。
下文将介绍创建VMware快照的步骤及其使用方法。
【编辑推荐】