我理解 VMWare KB 不赞成长时间运行快照主要有两个原因(在我看来)
拍摄大量快照会填满数据存储。快照只是增量文件。假设您有一个 50 Gig VMDK,几乎已满,然后您拍摄了快照。在快照中,您会翻转每个位。您的增量文件也将约为 50 GB。再次拍摄快照,翻转位,另一个 50 Gig 增量文件。这些很快就会失控。
提交大型快照存在风险。整合快照时,您要将增量更改写入原始 VMDK。这需要时间,并且存在风险,如果发生任何事情,您就会毁掉您的 VMDK。
他们的警告看起来合乎逻辑。
话虽如此,永久使用快照 VMDK 运行我的机器本质上是不是很糟糕?我想让我的树如下:
- 根据
- 快照1
- 快照 2
- 你在这里
- 快照1
安装和配置基础系统后将立即获取快照 1 和 2。这些是我计划经常刷新的机器,因此我将简单地使我的树看起来像下面这样:
- 根据
- 快照1
- 你在这里
- 快照 2
- 快照1
删除 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
答案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