在 VMWare 快照中永久运行是否会损害性能?

在 VMWare 快照中永久运行是否会损害性能?

我理解 VMWare KB 不赞成长时间运行快照主要有两个原因(在我看来)

  • 拍摄大量快照会填满数据存储。快照只是增量文件。假设您有一个 50 Gig VMDK,几乎已满,然后您拍摄了快照。在快照中,您会翻转每个位。您的增量文件也将约为 50 GB。再次拍摄快照,翻转位,另一个 50 Gig 增量文件。这些很快就会失控。

  • 提交大型快照存在风险。整合快照时,您要将增量更改写入原始 VMDK。这需要时间,并且存在风险,如果发生任何事情,您就会毁掉您的 VMDK。

他们的警告看起来合乎逻辑。

话虽如此,永久使用快照 VMDK 运行我的机器本质上是不是很糟糕?我想让我的树如下:

  • 根据
    • 快照1
      • 快照 2
      • 你在这里

安装和配置基础系统后将立即获取快照 1 和 2。这些是我计划经常刷新的机器,因此我将简单地使我的树看起来像下面这样:

  • 根据
    • 快照1
      • 你在这里
      • 快照 2

删除 Snap2 并重新创建 Snap2。

由于以下原因,我看不出这会产生什么影响:

  • 由于我只是安装了一个基础映像,然后立即获取了增量,因此我不可能填满数据存储。假设我的基础映像只有 10 GB(在 50 GB 的精简配置磁盘上),即使我的增量翻转了每一个位,我的总使用量最多也只能是 60 GB(10 GB 锁定的基础 VMDK + 快照 VMDK 文件中的 50 GB 增量)。这假设我不会创建任何其他快照。

  • 由于我的用例不需要整合快照,因此整合增量时我不会冒出错的风险。当我返回 Snap1 并删除 Snap2 时,Snap2 中驻留的所有增量都会被删除。

  • 存储负载完全相同,因此我应该获得相同的 IOPS。我知道某些文件(主要是系统文件)将存在于原始 VMDK 上,而其他文件(基础文件之后的所有内容)将驻留在增量中,但我不知道 ESXI 会如何关心。所有文件都位于同一个物理数据存储上,因此性能应该相当于引用原始 VMDK 中没有快照的所有内容。

有什么想法吗?ESXI 5.5 的数据存储为 RAID'd DAS。

我没有 vCenter 许可证,因此无法进行模板和克隆。

测试结果

我今天早早就来做了一些测试。结果如下。性能有所下降,但我不确定原因。

拍摄快照之前: 拍摄快照之前

快照后: 拍摄后

答案1

是的,长时间运行快照会对性能产生影响。将增量 VMDK 整合回原始磁盘文件的影响甚至更大。这可能会导致虚拟机操作系统无响应或出现其他不良行为。

VMware 已模板和克隆功能内置于 vCenter。您需要 600 美元的 vSphere Essentials 许可证才能启用此功能。

您可以根据自己的喜好创建虚拟机,然后将其克隆到模板。然后可以使用该模板来生成新的虚拟机来自“金大师”的图片。

在此处输入图片描述

这样,您不仅可以拥有“干净状态”,还可以从主映像创建长期运行或永久运行的虚拟机。无需快照。

答案2

ewwhite 的答案是正确的,但只是为了进一步扩展或降低性能损失,请考虑以下情况:

您创建一个虚拟机。从 vmdk 进行虚拟读取需要读取一个相同大小的物理磁盘。相当简单。

现在假设您拍摄虚拟机的快照。现在,对于每个虚拟读取,您将产生 2 次物理读取,一次来自基本 vmdk,一次来自增量 vmdk,因为您需要从两者获取信息才能获取当前状态。现在您的物理磁盘读取次数是原来的两倍。

对于两个快照,您需要执行三倍的读取,依此类推。如果您有大量快照,您会发现这会造成相当大的性能损失。这并不一定会使性能下降 n 倍(由于缓存、未更改的部分等),但这不是一个好的做法。

答案3

VMware ESX 快照适合短期使用。

长时间使用和大量 IO 可能会导致虚拟机冻结。如果写入 IO 大于/快于快照整合,ESX 将冻结虚拟机以保护数据。随着时间的推移,快照会变得碎片化,并且 ESX 会进行内部整合,您可能会遇到周期性冻结。

您可以通过 ssh 手动执行 VM 模板。将包含 vmdk、vmx 等的 VM 文件夹复制到新文件夹。在新复制的 VM 的 vmx 文件中更改 UID 和 MAC 地址。

VMware 有一款产品 Linked Clone,与你尝试做的一样。他们说它有潜在的性能问题。实际上,一段时间后你将重新制作虚拟机。 https://www.vmware.com/support/ws5/doc/ws_clone_typeofclone.html

相关内容