web-dev-qa-db-ja.com

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

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

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

スナップショットがパフォーマンスキラーであるという声明の背後にある確かな理由を説明したいと思います。

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

27
Samselvaprabu

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

28
Ansgar Wiechers

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

例。

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

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

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

ファイルが作成されます。これにより、スナップショットプロセス時に作成されたすべてのファイルが一覧表示されます。

5
Zapto

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

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

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

2
Falcon Momot