VMware快照是什么?
VMware快照Snapshot是一种强大的功能,允许用户在虚拟机(VM)上创建一个特定时间点的状态和数据副本。这包括电源状态(如开机、关机、挂起)以及所有组成VM的文件,例如磁盘、内存、虚拟网卡等。这是开发和测试环境中的一个重要工具,可以用作补丁测试或应用程序更改前的回滚点。
VM备份和VM快照有什么区别?
VM备份和快照之间的主要区别在于,备份是独立于源VM文件的VM副本,而快照则依赖于原始VM。
这就是为什么即使快照是VM的某个时间点的版本,包括VM的文件、状态和配置,它也不能用作vSphere VM备份。如果将快照用作备份,你可能会发现在发生故障后无法恢复数据和VM。
- 快照依赖于用来创建它们的源虚拟机文件。快照可以被称为差异化磁盘,因为它们实际上是与“基础”磁盘相关的一组增量信息。由于这种子/增量磁盘与它们所依赖的基础磁盘之间的相互关系,它们有时被称为快照“链”。如果删除了快照所依赖的基础磁盘,则快照不包含重建已删除数据所需的数据。
- 备份是独立的数据副本,它们允许重新创建虚拟机文件、磁盘和整个虚拟机注册信息,而不依赖于生产数据或包含在虚拟机中的虚拟磁盘。
VM快照的组成
快照由一系列文件构成,包括虚拟磁盘文件(.vmdk)、增量磁盘文件(-delta.vmdk 或 -sesparse.vmdk)、快照信息数据库(.vmsd)和包含VM配置及活动状态的文件(.vmsn)。这些文件一般存储在VM的工作目录中,这个位置是可以配置的。
- 增量磁盘:VM_name-delta.vmdk,当你对虚拟机做快照时,虚拟磁盘的当前状态会被保留,同时生成一个增量的替代文件。后续的VM的操作系统所有写入操作会全部写到去这个delta文件,而不会写进原本虚拟机的虚拟硬盘vmdk文件上。
- 内存状态文件:VM_name-Snapshot#.vmsn,其中#是序列中的下一个数字,从1开始。这个文件保存了快照被取时的内存状态。如果捕获了内存,该文件的大小就是虚拟机最大内存的大小。如果没有捕获内存,该文件会小得多。
- 磁盘描述符文件:VM_name-00000#.vmdk。这个文件是一个包含快照信息的小文本文件。
- 快照增量文件:VM_name-00000#-delta.vmdk。该文件包含快照取得时虚拟磁盘数据的变化。
- VM_name.vmsd是快照列表文件,它在创建虚拟机时被创建。它维护虚拟机的快照信息,以便在vSphere Web Client中创建快照列表。这些信息包括快照.vmsn文件的名称和虚拟磁盘文件的名称。
管理快照时的注意事项:
- 快照不是VM磁盘的备份,不应作为备份使用。
- 快照文件会随时间增大,可能导致存储空间不足。
- 快照链最多支持32个快照,为了维持性能,建议使用2到3个。
- 单个快照不建议使用超过72小时,以避免影响性能。
- 使用第三方备份软件时,确保备份成功后删除快照。
重点注意事项:删除快照/整合快照
整合或删除快照时,虚拟机有机会卡死。
原因是:快照删除时,ESXi主机会合并这个VM的虚拟磁盘文件vmdk和增量磁盘delta,这个过程的时间取决于自上次快照以来虚拟磁盘的数据变化量。
快照的创建时间越长,快照文件的文件越大,这个快照删除/快照整合的时间就越长。
所以整合或删除快照时,要确保没有其他VM任务运行,以保持数据完整。在快照整合过程中,VM可能会短暂无响应(stun),尤其是如果VM生成大量I/O或存储响应延迟时。
最后的建议:
虽然快照不是备份,但它们提供了一种恢复到已知状态的机制。然而,不应在生产环境中长期使用快照,也不应在VM上长时间保留,以防止性能下降和磁盘空间过度使用。
在任何规模的存储变更或增加磁盘空间之前,确保快照已被正确处理和删除,以避免数据损坏和丢失。