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


18

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

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

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

彼らの警告は理にかなっているようだ。

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

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

スナップ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'd DASであるESXI 5.5。

vCenterライセンスがないので、テンプレートとクローン作成はできません。

テスト結果

今日は早くテストに参加しました。結果は次のとおりです。パフォーマンスが低下しますが、理由はわかりません。

スナップショットの前: スナップショットの前に

スナップショット後: シャプショット後


確かではありません-時間が経つにつれて、スナップショットはますます分岐します。最後に、それらは本質的に異なるコピーになります。スナップショットを作成してディスクを節約しすぎた後、スナップショットを完全に別のボリュームに変換します。どうやって?通常、3番目のVMのddを使用しますが、ほとんどの場合、このような異端的な意見のためにここではほとんど十字架につけられています。:-)しかし:それは動作し効果的です。
ペテルは、モニカを14

@PeterHorvath-それは私が聞きたいものです。スマートでハッキング、効果的な、必要最低限​​のソリューション。気にしない場合は、pastebinなどで何をするのか書いてください。VMDKとスナップショットを一緒にDDしますか?
VM_Storage_Inception 14

もっと頻繁に行う必要がある場合は、スクリプトを使用しました。しかし、そうではありません。ほとんどの場合、snapshptsでさえ遅いので使用していません。
ペテルはモニカを14

回答:


17

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

VMwareには vCenterに組み込まれたテンプレート機能とクローン機能があります。これを有効にするには、600ドルのvSphere Essentialsライセンスが必要です。

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

ここに画像の説明を入力してください

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


興味深いことに、私はそれを調べて、それがどのように機能するかを調べます。残念ながら、vCenterライセンスを持っていないため、説明した方法で使用されているスナップショットのパフォーマンスに影響がない場合、組織に600ドルを支払うことはありません。また、テンプレート化とクローン作成は、OVAを取得して再デプロイすることと同じです。スナップショットを削除する方がはるかに高速に思え、「公式のVMWare承認方法」でなくても、パフォーマンスにどのような影響があるかを論理的に見ることはできません。
VM_Storage_Inception 14

編集内容に対応するために、記事を紹介したり、パフォーマンスへの影響を説明したりできますか?私が説明する方法でそれらを使用すると仮定すると、どのようになるかわかりません。また、スナップショットを元のVMDKに統合することもありません。
VM_Storage_Inception 14

短期間のアクセスに使用することを意図した機能を中心に設計することを主張している理由を理解しようとしていると思います。
ewwhite 14

@VM_Storage_Inception-VMWareの古い製品Lab Managerへの貧乏人のアプローチを望んでいるようです。
TheCleaner 14

5
時には、購入する適切なソリューションは、理にかなっています。サポートされているテンプレート/クローンオプションを提供するvSphere Essentialsライセンス($ 600)を支払うだけでなく、回避策について多くの労力と工数を費やしました。
ewwhite 14

4

ewwhiteの答えは正しいですが、もう少し拡張するか、パフォーマンスを低下させるために、次のシナリオを検討してください。

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

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

2つのスナップショットの場合、3回の読み取りなどを実行しています。スナップショットがたくさんある場合、これがかなり重大なパフォーマンスの低下になる可能性があることがわかります。キャッシング、変更されていないセクションなどのために、必ずしもパフォーマンスがn倍低下するわけではありませんが、良い方法ではありません。


私は、スナップショットが「どのブロックがどのファイルにあるか」テーブルを使用することをほぼ確信しています。したがって、1つのブロックを読み取ると、適切なファイルから1つのブロックのみが読み取られます。もちろん、複数のブロックを読み取ると、複数のファイルにアクセスする可能性があります。これは、SSDから実行していない場合にディスクヘッドを移動することに対するペナルティを意味します。
Guntram BlohmがサポートするMonica 14

1
スナップショットは元のディスクからの変更のみを保存します。ファイルAを保存してからスナップショットを作成し、ファイルAを再度変更すると、そのファイルへの変更のみがスナップショットに書き込まれます。したがって、ファイル全体を取得するには、元のVMDKとスナップショットの両方を読み取る必要があります。そうでない場合、各スナップショットは元のディスクの完全なコピーになりますが、そうではありません。
tfrederick74656 14

それは正しいかもしれませんが、読み取る必要があるブロックの合計量は同じままです(たとえば、スナップショットから10ブロック、ベースディスクから100ブロック)。ESXiは、正しいスナップショット(またはベースディスク)で終わるまで、必要なブロックの既存のスナップショットを最初にチェックします。スナップショットがまったくない場合、システムはおそらくそのスナップショットトラバース部分を完全にスキップするため、軽微なペナルティがあります。さらに、長時間実行されるスナップショットファイルは、おそらく深刻な断片化の影響を受けます。
ダークトリルスビーク14

N個のスナップショットに対してN個の読み取りを行う仮想ディスクスナップショットシステムは、非常に愚かな実装になります。それがVMWareでどのように実装されているのか疑問です。単純な最適化は、エミュレートされたドライブの各ブロックがどのディスクファイルに格納されているインデックスファイルを作成するだけで実行できます。ブロックサイズが4kBの512GBの仮想ディスクがあり、最大16個の仮想ディスクファイルのどれがブロックを含むかを一定の時間で判断するために必要なのは64MBのインデックスだけです。
ライライアン14

1
serverfault.com/questions/430138の回答に基づいて、私は反対しなければなりません。スナップショットは、常に新しいデータのコレクションではなく、バイナリ演算の結果として考えていました。したがって、ベースVMDKにビット01010101があり、スナップショットを作成し、それらのビットを10101010に変更すると、デルタには11111111が含まれます(10101010の新しい値ではなく、元のファイルのすべてのビットが変更されたことを示します)。上記のコメントに同意する限り、VMDKはおそらくrawファイルです。インデックスはどこに保存されますか?VMWareの技術パブでこれについて言及したことはありません。
tfrederick74656 14

0

VMware ESXスナップショットは、短期間使用するためのものです。

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

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

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

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