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


27

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

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

我想给他们坚实的理由,说明快照是性能杀手。

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


2
不知道这是否是您阅读的知识库文章。我以为我会将其添加为参考。
亚伦·科普利2012年

Answers:


28

创建快照时,原始磁盘映像将以一致的状态“冻结”,并且从那时起所有写访问都将进入新的差异映像。甚至更糟的是,如此此处所说明,差异映像具有更改日志的形式,该日志记录了自拍摄快照以来对文件所做的所有更改。这意味着,读取访问不仅必须读取一个文件,而且还必须读取所有差异数据(原始数据以及对原始数据所做的所有更改)。级联快照时,数量增加更多。


2
最好的解释。您不仅要使IOPS加倍,而且在计算块级差异时会占用CPU开销。
亚伦·科普利2012年

3
阅读由亚伦·科普利(Aaron Copley)(kb.vmware.com/selfservice/microsites/…)链接的这篇文章后,似乎比这还糟。快照不是差异映像,而是更改日志,因此,如果您在同一位置写入相同数据10次,快照将使其快照大小增加10乘以您写入的数据大小。相反,差分映像应该更有效,因为它应该覆盖在相同位置重写的数据。
2012年

1
@zespri该问题影响使用这种快照技术的所有虚拟化平台,包括Hyper-V。
Ansgar Wiechers,

1
这是完全错误的。有关正确答案,请参见@Falcon Momot的评论。即使是链接文章也只是指出磁盘“空间不足”,当拍摄快照之前剩余的空间小于快照磁盘且增量磁盘没有足够的空间可扩展时,这很清楚。
丹尼尔(Daniel)

2
@AnsgarWiechers这个答案肯定是错误的。链接的文章(kb.vmware.com/s/article/1015180)指出;“用快照创建的子磁盘是稀疏磁盘。稀疏磁盘采用写时复制(COW)机制,在该机制中,虚拟磁盘不包含任何数据,直到通过写入将其复制到那里为止。” 其次是; “如果虚拟机运行的是快照,它将对子磁盘或稀疏磁盘进行更改。对该磁盘进行的写操作越多,则其增长的范围就越大,从而达到基础磁盘大小的上限,再加上一个少量的开销。”
Steve365 '18

5

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

例。

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

如果我需要引用文件A,它将通过3个VMDK进行查找。

另外,如果在快照时包括VM的内存状态,则会再次创建一个增量文件,并在需要时引用原始内存文件。

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


2

据我所知,VMWare正在使用写时复制逻辑来实现其快照。因此,当您创建一个虚拟机时,在您的VM上完成的每项操作(例如,运行时几乎所有操作)都将导致虚拟机的一部分被复制,直到将整个事物本质上克隆为止。

与此相关的另一个性能问题是,如果工作副本尚无数据,则读取将不得不级联到原始副本(因为未进行任何更改以导致副本)。

如果您想将快照作为备份但不能忍受性能的小幅下降,请考虑克隆VM。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.