虚拟机拍快照原理和最佳实践

您所在的位置:网站首页 虚拟机的原理和使用过程 虚拟机拍快照原理和最佳实践

虚拟机拍快照原理和最佳实践

2024-07-17 17:40| 来源: 网络整理| 查看: 265

背景

在对vm进行快照删除(合并)时,无法在虚拟机中执行其他任务,例如电源相关操作或vMotion迁移。必须无间断地删除快照以确保数据完整性。根据要落实的快照增量的量,执行过程时间量会有所不同。

快照会在特定时间点保留虚拟机的状态和数据。其中:

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

虚拟机提供了用于创建和管理快照和快照链的操作,可以创建大量的快照树,并可还原到链中的任何快照以及删除快照。如果Delete Snapshot或Delete All Snapshots操作的合并部分失败,vSphere会通过UI发送相应通知。可通过快照菜单使用选项``合并’'来合并快照。

*.vmsd:.vmsd文件是虚拟机快照信息和快照管理器信息的主要来源的数据库。该文件包含行条目,这些行条目定义了快照以及每个快照的子磁盘之间的关系。

*.vmsn:.vmsn文件包括当前配置以及虚拟机的活动状态(可选)。捕获虚拟机的内存状态可让您恢复为打开的虚拟机状态。使用非内存快照,您只能恢复为关闭的虚拟机状态。创建内存快照比使用非内存快照需要更长的时间。

【子磁盘空间利用率】:

1)如果虚拟机正在快照上运行,则它正在更改子磁盘。对该磁盘进行的写操作越多,它的增长就越大,达到基本磁盘大小的上限加上少量开销。 2)已知子磁盘会变得足够大以填充整个数据存储,这是因为包含数据存储的LUN不够大,无法容纳基本磁盘、创建的快照数量以及创建的开销文件和.vmsn文件。

【快照磁盘链The Disk Chain】 通常,首次创建快照时,将从父磁盘创建第一个子磁盘。连续快照从链上的最后一个子磁盘生成新的子磁盘。如果快照链中有多个分支,则关系可以更改。手动操作单个子磁盘或任何快照配置文件可能会损害磁盘链。VMware建议不要手动修改磁盘链,因为它可能会导致数据丢失。

下图是快照链的示例。每个正方形代表一个数据块或一个单元:

在这里插入图片描述

快照过程

对一台vm创建快照时,它由以下文件组成:

-.vmdk and --delta.vmdk

如果虚拟磁盘的大小大于2TB,则增量文件为**–sesparse.vmdk格式。每个虚拟磁盘的.vmdk和-delta.vmdk文件的集合在快照时已连接到虚拟机。这些文件可以称为子磁盘或增量链接**。这些子磁盘以后可以视为将来的子磁盘的父磁盘。从原始父磁盘开始,每个子节点构成一个增量,从虚拟磁盘的当前状态向后指向原始增量。快照描述符和增量vmdk文件存储在与虚拟磁盘相同的位置(可以位于与工作目录不同的目录中)。

注:使用VMFS6,无论大小如何,所有快照都是稀疏的。

对于一台具有一个虚拟磁盘(disk.vmdk)和快照的虚拟机。

磁盘形式类似如下: disk.vmdk with extent disk-flat.vmdk disk-000001.vmdk with extent disk-000001-delta.vmdk

当对vm进行删除或合并快照( consolidate the snapshot),创建了另一个快照增量,即Consolidate Helper: disk.vmdk with extent disk-flat.vmdk disk-000001.vmdk with extent disk-000001-delta.vmdk disk-000002.vmdk with extent disk-000002-delta.vmdk. //新的快照增量文件

该虚拟机不再写入上述两个文件;在快照删除过程中,所有当前的所有写入都将提交给: disk-000002-delta.vmdk extent file via disk-000002.vmdk.

而在VMware ESXi / ESX主机的DiskLib API将整合:disk-flat.vmdk with disk-000001-delta.vmdk。同时,虚拟机继续写入disk-000002-delta.vmdk。 完成快照整合后,ESXi主机整合 disk-000002-delta.vmdk with disk-flat.vmdk。

在合并期间,虚拟机将被处于“僵固”状态。一般,此过程几乎立即完成。而临时快照中收集有大量增量的VM会被眩晕一整段时间。这可能会对用户应用程序或服务产生不利影响。官方表明后续版本的VMware ESXi会使用多个较小的合并执行此最终合并,以最大程度地减少或防止用户操作系统中断情况。

当所有增量信息都记录到disk-000002-delta.vmdk并已提交到disk-flat.vmdk后,disk-000002-delta.vmdk及其描述符文件disk-000002.vmdk将从数据存储中删除,虚拟机从其基础磁盘或快照选定点继续。

从ESXi 5.0开始,将记录快照的眩晕时间。每个虚拟机的日志文件(vmware.log)包含类似于以下内容的消息:

YYYY-MM-DD TIME.544z| vcpu-0 | Checkpoint_Unstun: vm stopped for 403475568 us 其中,虚拟机被"僵固/呆懵"了403475568微秒(1秒= 1百万微秒)或403.475568秒。

虚拟机无法响应的原因可能是因快照整合过程+眩晕过程造成的。

vm的眩晕/冻结恰好是为了适应要从Delta磁盘写回到基本磁盘的更改。有时,如果虚拟机正在生成大量I / O或基础存储遇到“延迟”,则眩晕时间会增加很多。在ESXi中,眩晕的工作方式可以预先确定眩晕进行的时间,如果检测到眩晕的时间超过15秒,则它仅等待另一个迭代Iteration,并继续进行10次迭代。在第10次迭代中,它将在所需的时间段内对虚拟机进行眩晕,如果此过程已更改或过程检测到超过15秒,则都标示为该过程已更改;在第9次迭代后,它将停止尝试并且无法删除快照。

尽管如此,vm的停止响应/长时间冻结也可能是\是潜在的存储延迟,或者只是当时有太多的I / O不能回写。

静默状态: 静默表示暂停或更改计算机上正在运行的进程的状态,特别是那些可能在备份期间修改磁盘上存储的信息的进程,以确保备份的一致性和可用性。静默和内存快照是互斥的。 如果同时选择了内存快照和静默,则vSphere Web Client和HTML5客户端已经强制执行此策略,而vSphere Client 6.0仅忽略静默。

如果静默(Quiesce)标志为1或true,并且在拍摄快照时打开了虚拟机的电源,则使用VMware Tools来静默虚拟机中的文件系统。使文件系统停止运行是使物理或虚拟计算机的磁盘数据进入适合备份的状态的过程。此过程可能包括诸如将脏缓冲区从操作系统的内存高速缓存刷新到磁盘或其他更高级别的特定于应用程序的任务之类的操作。

官方建议

1)不要将快照用作备份。因快照文件只是原始虚拟磁盘的更改日志,它会创建一个占位符磁盘,virtual_machine-00000x-delta.vmdk,由该临时磁盘来存储自创建快照以来的数据更改。

2)快照链中最多支持32个快照。但是,为了获得更好的性能,请仅使用2到3个快照。

3)请勿使用单个快照超过72小时。因快照文件保留较长时间后,其大小会继续增长。这可能会导致快照存储位置空间不足并影响系统性能。

4)使用第三方备份软件时,请确保在备份成功后删除快照。第三方软件(通过API)拍摄的快照可能不会显示在快照管理器中。可定期通过命令行检查快照。

5)执行存储快照时注意:vSphere 5.0及更高版本通过虚拟机上的快照支持Storage vMotion。增加vm磁盘大小会破坏快照并导致数据丢失。

6)对vm拍快照时,选定内存快照选项时,创建快照的时间将明显拉长,但是可以将其恢复到创建快照时的运行虚拟机状态。默认情况下选中此选项。 如果未选择此选项,并且未选择静默,则快照将创建崩溃一致的文件,可用于重新引导虚拟机。另,快照过程中任何停顿都将导致快照失败。

拍摄内存快照时,虚拟机的整个状态将被“僵固/震呆”。



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3