VMスナップショットがパフォーマンスに影響するのはなぜですか?


27

VMware KBの記事の1つで、スナップショットがVMのパフォーマンスに直接影響することを読みました。

しかし、私のチームは、スナップショットがパフォーマンスにどのように影響するかを尋ね続けています。

私は、スナップショットがパフォーマンスキラーであるという声明の背後にある確固たる理由を伝えたいと思います。

スナップショットが実際にパフォーマンスにどのように影響するかについて、誰でも少し理論を説明できますか?ハードディスクのディスクI / Oレートが遅いという理由だけですか?


2
これがあなたが読んだKB記事かどうかわかりません。参照として追加すると思いました。
アーロンコプリー

回答:


28

スナップショットを作成すると、元のディスクイメージは一貫した状態で「凍結」され、それ以降のすべての書き込みアクセスは新しい差分イメージになります。さらに悪いことに、ここここで説明したように、差分イメージは変更ログの形式を持ち、スナップショットが取られてからファイルに加えられたすべての変更を記録します。つまり、読み取りアクセスでは、1つのファイルだけでなく、すべての差分データ(元のデータと元のデータに加えられたすべての変更)も読み取る必要があります。スナップショットをカスケードすると、その数はさらに増加し​​ます。


2
最良の説明。IOPSを2倍にするだけでなく、ブロックレベルの差を計算する際にCPUオーバーヘッドが発生します。
アーロンコプリー

3
Aaron Copley(kb.vmware.com/selfservice/microsites/…)によってリンクされたこの記事を読んだ後、それよりも悪いようです。スナップショットは差分イメージではなく、変更ログであるため、同じ場所に同じデータを10回書き込むと、スナップショットのサイズは、書き込んだデータのサイズの10倍になります。代わりに、差分イメージは同じ場所で書き換えられたデータを上書きするため、より効率的です。
最大

1
@zespriこの問題は、Hyper-Vなど、この種のスナップショットテクノロジーを使用するすべての仮想化プラットフォームに影響します。
アンスガーウィーチャーズ

1
これは明らかに間違っています。正解については、@ Falcon Momotのコメントを参照してください。リンクされた記事でさえ、「スナップショットを取る前に残されたスペースがスナップショットされたディスクより小さく、deltadiskが拡張するのに十分なスペースを持っていない場合に明らかなディスクが「スペースを使い果たす」ことができると述べています。
ダニエル

2
@AnsgarWiechersこの答えは間違いです。リンクされた記事(kb.vmware.com/s/article/1015180)の状態; 「スナップショットで作成される子ディスクはスパースディスクです。スパースディスクは、書き込みによってコピーされるまで、仮想ディスクにデータが含まれないコピーオンライト(COW)メカニズムを採用しています。」に続く; 「仮想マシンがスナップショットから実行されている場合、仮想ディスクは子ディスクまたはスパースディスクに変更を加えます。このディスクに行われる書き込み操作が増えると、大きくなり、ベースディスクのサイズの上限に加えて、わずかなオーバーヘッド。」
Steve365

5

VMでスナップショットを作成すると、Delta Diskが作成され、オペレーティングシステムは元のVMDKではなくこのファイルに書き込みます。このファイルはVM_Name-Delta.VMDKと呼ばれますが、システムがスナップショットの前にファイルを参照する必要がある場合、VM_Name.VMDKを参照し、この操作のI / Oを増やします。複数のスナップショットを作成する場合、元のVMDKではなく、最後のスナップショットの最後のデルタファイルを参照しているため、I / Oが増加します。

例。

OS --->スナップショット(ファイルA作成)--->(スナップショットファイルB作成)

ファイルAを参照する必要がある場合、3つのVMDKを調べてこれを見つけます。

また、スナップショットの作成時にVMのメモリ状態を含めると、これは再びデルタファイルになり、必要に応じて元のメモリファイルを参照します。

ファイルが作成され、スナップショットプロセスの時点で作成されたすべてのファイルがリストされます。


2

私が知る限り、VMWareはコピーオンライトロジックを使用してスナップショットを実装しています。したがって、作成すると、VMで実行されるすべての操作(たとえば、実行時のほとんどすべて)によって、すべてが本質的に複製されるまで、VMの一部がコピーされます。

これに関するもう1つのパフォーマンスの問題は、作業コピーにまだデータがない場合、元のコピーに読み取りをカスケードする必要があることです(コピーを引き起こすために何も変更されていないため)。

スナップショットをバックアップとして使用したいが、パフォーマンスのわずかな低下を許容できない場合は、代わりにVMのクローンを作成することを検討してください。


-2

高い仮想マシンのスナップショット活動中に見られるコストップ(%CSTP)値

仮想マシン上のスナップショットのサイズと数が増えると、vmkernel内のストレージコマンド操作の数も増えます。仮想マシンのゲストOSによって発行される各ストレージコマンドについて、スナップショットチェーン全体を走査して最も適切なデータブロックを読み取るために、複数のストレージコマンド操作が必要になる場合があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.