web-dev-qa-db-ja.com

VMWareスナップショットで永続的に実行すると、パフォーマンスが低下しますか?

VMWare KBは、主に2つの理由により、スナップショットの長時間実行時に眉をひそめることを理解しています(私の意見では)

  • 大量のスナップショットを取ると、データストアがいっぱいになる可能性があります。スナップショットは、単にデルタファイルです。たとえば、50ギガのVMDKがほぼ満杯で、スナップショットを作成するとします。スナップショットでは、すべてのビットを反転します。差分ファイルも約50 GBになります。もう一度スナップショットを撮って、ビットをフリップして、別の50 Gigデルタファイルを作成します。これらはすぐに制御不能になる可能性があります。

  • 大きなスナップショットをコミットするとリスクが伴います。スナップショットを統合する場合、差分の変更を元のVMDKに書き込みます。これには時間がかかり、何かが発生した場合にVMDKを削除するリスクがあります。

彼らの警告は論理的に理にかなっているようです。

そうは言っても、スナップショットVMDKからマシンを永続的に実行することは本質的に悪いのですか?私の木を次のようにしたい:

  • ベース
    • Snap1
      • スナップ2
      • あなたはここにいる

Snap 1と2は、ベースシステムをインストールしてプロビジョニングした直後に取得されます。これらは頻繁に更新する予定のマシンなので、ツリーを次のようにするだけです。

  • ベース
    • Snap1
      • あなたはここにいる
      • スナップ2

Snap2を削除して、Snap2を再作成します。

これが次の理由でどのように影響するかはわかりません。

  • ベースイメージをインストールし、すぐにデルタを取得したので、データストアがいっぱいになる可能性がなくなったためです。私のベースイメージが10 GB(50 GBのシンプロビジョニングされたディスク上)であると仮定すると、デルタがすべてのビットをフリップした場合でも、最大合計使用量は60 GBです(ロックされている10 GBベースのVMDK + 50 GBのデルタスナップショットVMDKファイル)。これは、これ以上スナップショットを作成しないことを前提としています。

  • 私のユースケースではスナップショットの統合を要求していないため、デルタを統合するときにエラーが発生するリスクはありません。 Snap1に戻ってSnap2を削除すると、Snap2に存在していたすべてのデルタが単に削除されます。

  • ストレージの負荷はまったく同じなので、同じIOPSになるはずです。一部のファイル(主にシステムファイル)が元のVMDKに存在し、他のファイル(ベースの後のすべて)がデルタに存在することを理解していますが、ESXIがどのように処理するかわかりません。すべてのファイルは同じ物理データストアにあるため、パフォーマンスは、スナップショットなしの元のVMDKのすべてを参照するのと同等です。

何かご意見は?データストアがRAIDされたDASを備えたESXI 5.5。

VCenterライセンスを持っていないので、テンプレートとクローン作成は対象外です。

テストの結果

今日の初めにいくつかのテストを実行しました。結果は次のとおりです。パフォーマンスが低下しますが、理由はわかりません。

スナップショットの前: Before Snapshoting

スナップショット後: After Shapshoting

18

はい、実行時間の長いスナップショットにはパフォーマンスへの影響があります。デルタVMDKを元のディスクファイルに統合すると、さらに大きな影響があります。これにより、VMのオペレーティングシステムが応答しなくなったり、その他の望ましくない動作が発生したりする可能性があります。

VMwareには テンプレートおよびクローン機能 がvCenterに組み込まれています。これを有効にするには、$ 600のvSphere Essentialsライセンスが必要です。

VMを好みに応じて作成し、それをテンプレートに複製できます。そのテンプレートを使用して、「ゴールデンマスター」イメージから 新しい仮想マシンを生成 できます。 。

enter image description here

これにより、「クリーンな状態」になるだけでなく、そのマスターイメージから長時間実行または永続的なVMを作成することもできます。スナップショットは必要ありません。

17
ewwhite

ewwhiteの答えは正しいですが、もう少し拡張したり、パフォーマンスのペナルティを増やしたりするために、次のシナリオを検討してください。

VMを作成します。 vmdkからの仮想読み取りには、同じサイズの1つの物理ディスク読み取りが必要です。かなり簡単です。

VMのスナップショットを作成するとします。これで、すべての仮想読み取りについて、2つの物理読み取りが発生します。1つはベースvmdkから、もう1つはデルタvmdkからです。現在の状態を取得するには両方からの情報が必要なためです。これで、物理ディスクの読み取りが2倍になりました。

2つのスナップショットの場合、読み取りは3回行われます。スナップショットが多数ある場合、これがパフォーマンスにかなりの影響を与える可能性があることがわかります。これは必ずしもn倍のパフォーマンス低下(キャッシュ、変更されていないセクションなど)につながるとは限りませんが、良い方法ではありません。

4
tfrederick74656

VMware ESXスナップショットは、短期間の使用を目的としています。

長い使用と重いIOは、VMのフリーズを引き起こす可能性があります。書き込みIOがスナップショット統合よりも大きい/速い場合がある場合、ESXはデータを保護するためにVMをフリーズします。時間のスナップショットが断片化し、ESXが内部統合を行うと、定期的なフリーズが発生する可能性があります。

VMテンプレート作成は、sshを使用して手動で実行できます。 vmdk、vmxなどを含むVMフォルダを新しい1つのフォルダにコピーします。新しくコピーしたVMのvmxファイルで、UIDとMACアドレスを変更します。

VMwareには、Linked Cloneという製品があります。これは、あなたがやろうとしていることと同じです。そして彼らはそれが潜在的なパフォーマンスの問題を抱えていると言います。実際には、しばらくするとVMのリマスタリングが行われます。 https://www.vmware.com/support/ws5/doc/ws_clone_typeofclone.html

0
dario