为什么 VM 快照会影响性能?

Sam*_*abu 28 performance virtual-machines snapshot vmware-esxi

我在其中一篇 VMware KB 文章中读到快照将直接影响 VM 性能。

但是我的团队一直在问我快照如何影响性能。

我想在快照是性能杀手的声明背后给他们充分的理由。

谁能解释一些关于快照实际上如何影响性能的理论?仅仅是因为硬盘的磁盘I/O速率会很慢吗?

Ans*_*ers 30

创建快照时,原始磁盘映像“冻结”为一致状态,此后的所有写访问都将转到新的差异映像。更糟糕的是,正如这里这里所解释的,差异映像具有更改日志的形式,它记录了自拍摄快照以来对文件所做的每一次更改。这意味着,读取访问不仅要读取一个文件,还要读取所有差异数据(原始数据加上对原始数据所做的每一次更改)。当您级联快照时,这个数字会增加得更多。

  • 阅读 Aaron Copley 链接的这篇文章 (http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1025279) 后,似乎比这更糟。快照不是差分映像,而是更改日志,因此如果您在同一个地方写入相同的数据 10 次,快照的大小将增加 10 乘以您写入的数据大小。相反,差分图像应该更有效,因为它应该覆盖在同一位置重写的数据。 (3认同)
  • 最好的解释。您不仅将 IOPS 加倍,而且在计算块级差异时还有 CPU 开销。 (2认同)
  • @AnsgarWiechers 这个答案绝对是错误的。链接的文章 (https://kb.vmware.com/s/article/1015180) 指出;“使用快照创建的子磁盘是一个稀疏磁盘。稀疏磁盘采用写时复制 (COW) 机制,其中虚拟磁盘不包含任何数据,直到通过写入复制到那里。” 其次是; “如果虚拟机正在运行快照,则它正在对子磁盘或稀疏磁盘进行更改。对该磁盘进行的写入操作越多,它就越大,达到基础磁盘大小的上限加上一个少量的开销。” (2认同)

Zap*_*pto 6

当您在 VM 上创建快照时,这会创建一个增量磁盘,并且操作系统会写入此文件而不是原始 VMDK。这个文件叫做VM_Name-Delta.VMDK,但是如果系统需要在快照之前引用一个文件,它会引用VM_Name.VMDK,增加这个操作的I/O。如果您拍摄多个快照,您指的是最后一个快照的最后一个增量文件,而不是原始 VMDK,从而增加了 I/O。

例子。

操作系统 ---> 快照(创建文件 A)--->(创建快照文件 B)

如果我需要参考文件 A,它将通过 3 个 VMDK 来找到它。

此外,如果您在创建快照时包含 VM 的内存状态,这将再次创建一个增量文件,并在需要时引用原始内存文件。

创建一个文件,它列出了在快照过程中创建的所有文件