VMware スナップショットのベストプラクティス

VMware vSphere の仮想マシンは、ソフトウェア向けに俊敏で汎用性が高く、効率的な環境を実現する強力な機能を備えています。vSphere の非常に便利な機能の一つに、スナップショットを作成し、必要に応じてそのスナップショットを使用して仮想マシンを以前の状態に戻す機能があります。しかし、この技術には限界もあります。

この記事では、VMware スナップショットとその活用事例について解説します。 また、VMwareスナップショットのベストプラクティスについて解説し、VMware vSphere ClientおよびPowerCLIを使用してスナップショットを作成する方法についても説明します。

NAKIVO for VMware vSphere バックアップ

NAKIVO for VMware vSphere バックアップ

VMware vSphere 仮想マシン(VM)向けの包括的なデータ保護と即時復旧オプション。オンサイト、オフサイト、およびクラウド上の安全なバックアップ先。ランサムウェア対策機能。

VMwareのスナップショットとは何ですか?

VMwareのスナップショットとは、仮想マシンの特定の時点の状態を表すものであり、この状態は対応するVMファイルに記録されます。スナップショットを使用すると、データやその他の設定とともに、仮想マシンを過去の時点の状態に戻すことができます。VMwareのディスクスナップショットとは、仮想ディスクの変更履歴を、対応するスナップショットファイルに記録したものです。

VMのスナップショットには、以下のものが含まれます:

  • VMディスクの状態、そのマシンのディスク上のデータ。
  • VMのメモリ状態とVMの電源状態、スナップショット作成時点のメモリ使用量であり、これにより仮想マシンの電源状態をキャプチャすることができます。
  • VMの設定、デバイスや仮想ネットワークカードなどが含まれます。例えば、セカンダリ仮想NIC(ネットワークインターフェースコントローラ(NIC))がない状態で仮想マシンのスナップショットを作成したとします。その後、セカンダリNICを追加してそのスナップショットにロールバックすると、スナップショットにはデータや状態だけでなく設定情報も含まれているため、そのNICは削除されてしまいます。

VMのバックアップとスナップショットの比較

バックアップとスナップショットの主な違いは、バックアップがソースVMのファイルから独立したVMのコピーであるのに対し、スナップショットは元のVMに依存しているという点です。そのため、スナップショットはVMのファイル、状態、設定を含む特定の時点でのVMのバージョンであっても、vSphere VMのバックアップとして使用することはできません。スナップショットをバックアップとして使用すると、障害発生後にデータやVMを復元できなくなる可能性があります。

  • スナップショット それらを作成するために使用されたソース仮想マシンファイルに依存しています。 スナップショットは、"ベース"ディスクに対する差分情報の集合であるため、差分ディスクとも呼ばれます。子ディスク(差分ディスク)と、それが依存するベースディスクとの間にこのような相互関係があるため、スナップショットは"チェーン"と呼ばれることもあります。スナップショットが依存するベースディスクが削除された場合、スナップショットには、削除されたデータを再作成するために必要なデータは含まれていません。
  • バックアップ これらは独立したデータのコピーであり、本番データや仮想マシンに含まれる仮想ディスクに依存することなく、仮想マシンのファイル、ディスク、および仮想マシン全体の登録情報を再作成することを可能にします。

VMware スナップショットの活用事例

スナップショットは、特に開発環境において、手早く"繰り返し実行"するタイプの操作によく使用されます。アプリケーションのテスト、アップグレード、更新、パッチ適用など、仮想マシン上で特定のソフトウェア処理を実行する前に、スナップショットを作成することがあります。これにより、仮想マシンを迅速に以前の状態に戻すことができ、ソフトウェアの更新やアップグレードなどを実行する前の状態に戻すことができます。

VMware は、本番環境でのスナップショットの使用や、スナップショットの長期的な利用をサポートしていません。スナップショットは、放置するとパフォーマンスの低下やディスク容量の問題を引き起こす可能性があるため、長期間そのままにしておくことを想定したものではありません。

スナップショットはバックアップそのものではありませんが、一時的なバックアップとして利用することは可能です。例えば、 NAKIVOのソリューション この手法をVMware仮想マシンのバックアップに活用しています。このソリューションは、仮想マシンのスナップショットを取得することで、仮想マシンが稼働中であっても(スナップショット作成時に)一貫性のあるバックアップを作成します。 ホストレベルのVMバックアップ). VMのバックアップが正常に作成されると、スナップショットは削除されます。

VMware スナップショット ファイルの拡張子

VMwareの実装では、仮想マシンのスナップショットは、スナップショットファイルのインフラストラクチャを構成する以下のファイル群で構成されています。

  • .vmdk – 生データが格納されているベース仮想マシンディスク。
  • -00000x.vmdk – デルタディスク。これは、仮想ディスクの現在の状態と、前回のスナップショットが作成された時点での仮想ディスクの状態との差分を含むものです。仮想ディスクの変更内容は、リドゥログとして表現されます。スナップショットに使用される子VMDKディスク内のデータは、Copy-On-Writeメカニズムを用いてSPARSE形式で保存されます。
  • .vmsd – スナップショットのデータベースファイル。スナップショットマネージャーが使用するスナップショット情報が格納されています。このデータベースには、各スナップショットにおけるスナップショットと子ディスク間の関連情報が含まれています。
  • .vmsn – メモリ情報を含め、仮想マシンの現在の状態が記録されたファイル。これにより、 ランニング 復元時の仮想マシンの状態。メモリを含めずに作成されたスナップショットの場合、そのスナップショットへの復元は、 電源オフ.

VMware snapshot storage – viewing snapshot files and other VM files

デフォルトでは、VMwareのスナップショットファイルはVMディレクトリに保存されます。ただし、 VMX VMの設定ファイル。このオプションは、次のような場合に役立ちます。 VMのディスクパフォーマンス だけでは不十分です。

VMスナップショット技術はどのように機能するのでしょうか?

VMware 環境でスナップショットを作成する際にどのようなファイルが生成されるかがわかったところで、vSphere スナップショットの作成の仕組みについて見ていきましょう。

  1. 次のようなクライアントを使用して、スナップショットの作成、削除、または復元をリクエストする場合、 VMware vSphere Client または PowerCLI、リクエストはVMware APIを通じてサーバーに送信されます。
  2. スナップショットの作成、削除、または復元のリクエストは、対象のVMを実行しているサーバーに送信されます。ただし、これは以下の場合にのみ当てはまります。 vCenter Server. スナップショットの要求がESXiホストに直接送信された場合は、この処理はスキップされます。
  3. もし 仮想マシンのメモリのスナップショットを作成する このオプションが有効になっている場合、ESXiホストはVMのメモリ内容をディスクに書き出します。この処理中は、VMは停止状態になります。
  4. ESXiホストは、VMのスナップショットデータベースファイルを変更します(.vmsd) これにより、VMスナップショットマネージャーの変更が反映されるようになります。
  5. ESXiホストは、子ディスクファイルに変更を加えるために、Virtual DISK API関数を呼び出します(-delta.vmdk そして .vmdk)に加え、ディスクチェーンも。

スナップショットの作成

スナップショットが作成されると、スナップショット取得時点での仮想ディスクの状態が維持されると同時に、VMDK ファイルへのすべての書き込みが停止されます。変更内容を記録するために、システムはデータストアに含まれる各 VMDK ディスクに対して追加の VMDK ファイル(デルタディスク)を作成し、そのファイルに変更内容を書き込みます。複数のスナップショットを取得する場合、システムは各スナップショットの各 VMDK ディスクに対して、それらの間の差異を表すデルタディスクを作成します。

スナップショットのチェーンが長くなると、それに対応するデルタディスクファイルによって、VMのストレージパフォーマンスが低下します。VMがデータを読み込む必要がある場合、親仮想ディスクのVMDKファイルと関連するデルタVMDKファイル(VMwareスナップショットファイル)を、順番にまとめて読み込む必要があります。これは、スナップショットファイルに記録されたデータ変更(仮想ディスクへの書き込み)の履歴を再構築し、VMに対して要求されたデータを出力するために必要な処理です。スナップショットファイルは時間の経過とともに容量が増加します。 VM上でディスク操作(データの書き込みや削除)が頻繁に行われると、スナップショットの容量はより急速に増加します。

複数のスナップショットを作成し、任意のスナップショットにロールバックしたり、変更を加えた後に新しいスナップショットを作成したりすることができます。その結果、スナップショットツリーが形成されます。下の画像では、スナップショットを作成した際のスナップショットツリーを確認できます。 スナップショット 3, 元の状態に戻った スナップショット 2, その後、次のように作成しました スナップショット 3a.

A VMware vSphere snapshot tree

スナップショットの削除

スナップショットを削除すると、システムはスナップショットとそれ以前のディスクの状態との間の変更を統合します。削除されたスナップショットに関する情報を含むデルタディスクのすべてのデータが、元の VMDK ディスクに書き込まれます。スナップショットの削除にかかる時間は、前回のスナップショット以降に仮想ディスクに書き込まれたデータ量によって異なります。さまざまな状況におけるスナップショットの削除方法について見ていきましょう。

この例では、対応する図に示されているように、ベースディスク(VMDK)と2つのスナップショットがあります:

  • 最初のVMwareスナップショットファイルのサイズは3.3 GBで、2番目のスナップショットのサイズは2.2 GBです。
  • スナップショットは対応するデルタVMDKファイルを使用しますが、利便性を高めるため、スナップショットの名前は スナップショット_1 そして スナップショット_2 図の中で。
  • その 現在地 この項目では、VMの現在の状態(スナップショットの前後を問わず)について説明しています。

最新のスナップショットの削除

現在のVMの状態に先立つスナップショットチェーンの最後にある2番目のVMwareスナップショットを削除すると、 スナップショット_2 データは親会社と連結処理される スナップショット_2 デルタディスク。最初のスナップショットのサイズは、削除された2番目のスナップショットのサイズ分だけ増加します(この例では3.3 GB + 2.2 GB)。

VMware snapshots explained – deleting the last snapshot

最初のスナップショットの削除

スナップショットチェーンの最初のスナップショットを削除し、現在のVMの状態が最後のスナップショット後の状態である場合、どうなるのでしょうか? スナップショット_1 データがベースディスクにコミットされ、 スナップショット_2 が保持されます。ベースディスクのサイズは、削除する最初の VMware スナップショットファイルのサイズ分だけ増加します(この例では 20 GB + 3.3 GB)。VMware スナップショットファイルには(以下に関連する)変更はありません。 スナップショット_2).

VMware snapshots explained – deleting the first snapshot

すべてのスナップショットを削除する

すべてのスナップショットを削除すると、VMwareのスナップショットファイルが統合され、データがベースディスクにコミットされます(新しいアルゴリズムが使用されます)。 スナップショット_1 データはまずベースディスクにコミットされます。その後、 スナップショット_2 データがベースディスクにコミットされます。スナップショットが複数ある場合は、以降のすべてのスナップショットに対しても同様の処理が行われます。VMwareスナップショットファイルに記録されたデータ変更が書き込まれると、ベースディスクの容量が増加します。

VMware snapshots explained – deleting all snapshots

vSphere 5.0 およびそれ以前のアルゴリズムを使用する場合、VMware スナップショットファイルは、まず親スナップショットディスクにデータを書き込むことで統合されます(スナップショット_2 ~へ スナップショット_1 (この例では)、その後、すべてのスナップショットデータがベースディスクにコミットされます。

現在の状態の後のスナップショットを削除する

前述の3つの例では、VMの状態( 現在地 (図中)は、チェーン内のすべてのスナップショット後の状態を表しています。この例では、VMの状態は、最初のスナップショットの後、2番目のスナップショット(この場合は最後のスナップショット)の前となっています。

最後のスナップショットを削除すると、チェーン内のそれ以前のスナップショットに影響を与えることなく、そのスナップショットが削除されます。変更は スナップショット_1 この例では、ベースディスクです。もし 2 番目のスナップショットの後にさらにスナップショット(3 番目、4 番目、5 番目など)が存在する場合、それらのデータ(後続のスナップショットファイルのデータ)も、2 番目の VMware スナップショットファイルのデータとともに削除されます。

VMware snapshots explained – deleting a snapshot after your current state

VMwareのスナップショットの削除方法

vSphere 6.0 以降、スナップショットの削除時のスナップショット統合には、スナップショットミラードライバが使用されます。このドライバは、VMware Storage でも使用されます。 vMotion. 一時的なヘルパースナップショットディスクの使用は最小限に抑えられ、ヘルパーディスクがなくてもスナップショットの統合を1回の処理で実行できます。VMの変更内容はアクティブなVMDKディスクに書き込まれ、VMwareのスナップショット統合プロセス中は書き込み順序が保護されます。

統合プロセス中は、アクティブディスクとベースディスクの両方に書き込みが行われ、その都度確認応答が送信されます。

VMware snapshots explained – how snapshots are deleted

VMware vSphere Client でスナップショットを作成する方法

以下の手順では、vSphere 6.5 の新しい HTML5 vSphere クライアントを使用しています。このワークフローは vSphere 6.7 でも同様です。 vSphere 7.0, 7.0U1 および 7.0U2。

  1. スナップショットを作成したい仮想マシンを右クリックし、[ Snapshots > Take Snapshot.

How to take snapshot in vCenter

  1. その Take Snapshot ダイアログボックスでは、スナップショットに名前を付けたり、詳細を追加したい場合はスナップショットの説明を入力したりすることができます。
  • のチェックボックス Include the virtual machine’s memory これにより、仮想マシンのメモリが含まれているスナップショットと含まれていないスナップショットのどちらかを選択できるようになります。その違いを見てみましょう:
    • [選択すると] Include the virtual machine’s memory, スナップショットにはVMの内部状態のダンプが含まれます。VMのメモリを含むスナップショットを作成するには、VMが電源投入状態である必要があります。そうでない場合、このオプションは選択できません。電源投入状態のVMのスナップショットを作成することで、VMの稼働中の状態をキャプチャし、いつでもその状態に戻すことができます。
    • このオプションが選択されていない場合、スナップショットにはVMの稼働中の状態は反映されません。スナップショットの状態に戻す必要がある場合、VMは同じデータを含む状態で復元されますが、電源はオフの状態になります。その後、VMの電源は手動でオンにする必要があります。
  • 以下の項目を選択できます。 Quiesce guest file system 仮想マシン上で書き込み操作が実行されている場合に、データの整合性を維持するための、アプリケーション対応スナップショットを作成するオプション。
    • VMware Toolsこの目的のためには、Sync Driver を含む、以下のものをインストールする必要があります。以下のスナップショットには、 クワイエシング・オプション このスナップショットを使用してVMデータをバックアップするのに適しています。
    • VMware Tools ~と VMware Snapshot Provider ゲストOS(Windowsゲスト)内でVSSスナップショットの作成を開始します。 Volume Shadow Copy Service ゲストOS上の(VSS)ライターはリクエストを受け取り、アプリケーション対応スナップショットを作成するための準備を行います。すべての書き込みトランザクションは、VMメモリからVMディスクに書き込まれます。この操作が完了すると、VSSライターはVMware Toolsに対し、VMがスナップショットの取得準備が整ったことを通知します。

注: を選択すると、 仮想マシンのメモリを含める オプション、その Quiesce guest file system 非アクティブ状態になります。VMの電源が入っている場合は、これらのオプションのいずれかを選択できます。

How to take a snapshot in VMware vSphere Client

  1. クリック Create スナップショットを作成すると、vCenter で関連するタスクが開始されるのが確認できます Recent Tasks パネル。

A vSphere snapshot is being created

vSphere スナップショットの管理方法

  1. スナップショットを作成した後、右クリックして以下を選択することで、そのスナップショットを管理できます。 Snapshots > Manage Snapshots.

Managing vSphere snapshots

  1. その Manage Snapshots このダイアログボックスでは、仮想マシン上に存在するスナップショットと、以下のオプションを確認できます:
  • Revert – 既存のスナップショットに復元します。このオプションを使用すると、スナップショットに保存されている仮想マシンの状態を復元できます。
  • Edit – スナップショットの名前と説明を編集します。
  • Delete – 選択したスナップショットを削除します。スナップショット・マネージャーからスナップショットを削除します。スナップショットが現在の状態よりも前の時点のものである場合、そのスナップショットのデータは、親スナップショットディスクまたはVMのベース仮想ディスクに統合されます。
  • Delete All – 現在の仮想マシンのすべてのスナップショットを削除します。

スナップショットの名前、作成日時、ディスク使用量など、その他の関連情報も表示されます。

A vSphere snapshot has been created

スナップショットアラームのルール

スナップショットのサイズが大幅に増加すると、VMのディスクパフォーマンスが低下します。このため、VMware VMのスナップショットサイズを常に監視し、スナップショットがパフォーマンスに悪影響を及ぼす前に、適切な対策を講じたり、スナップショットを削除・統合したりする必要があります。VMware vSphereのスナップショットアラームルールを設定することで、スナップショットのサイズが通知設定で設定された適切な値を超えた際に通知を受け取ることができます。ここでは、vSphere ClientでvSphereスナップショット通知を設定する方法について詳しく見ていきましょう。

スナップショットのサイズが30 GBを超えた際に通知が送信されるよう設定します。

  1. [移動] Hosts and Clusters 次に、VMを選択します。VMを右クリックし、表示されるメニューから、[ ] をクリックします。 Alarms > New Alarm Definition.

Creating snapshot alarms according to VMware snapshot best practices

  1. その New Alarm Definition ウィザードが開きます。
    1. Name and Targets. アラーム名を入力してください。例えば、 vSphere snapshot usage. 説明を入力してください(任意)。以下の Virtual Machine ターゲットの種類。クリック Next ウィザードの各ステップで、[次へ]をクリックして進めてください。

Creating a new vSphere snapshot alarm rule

    1. Alarm Rule 1. ルールを次のように設定します:
      • IF
        • VMware Snapshot Size | is above | 30 GB
      • それから
        • アラームを鳴らし、 Show as Warning
        • メール通知を送信する: ON
        • 件名: デフォルトの件名を使用できます
        • 宛先:: メールアドレスを入力してください

Configuring a vSphere snapshot alarm rule

    1. Reset Rule 1. リセット ルールは、アラーム ルールを設定したのと同様の方法で設定できます。リセット ルールは、vSphere スナップショットについて警告状態または重大な状態が解消された際に、通知メッセージを送信する役割を担います。

Configuring a reset rule to send notifications

    1. Review. ルールの設定を確認してください。すべて問題なければ、[実行]をクリックしてください。 Create.

The alarm notification is sent if the VMware snapshot file size is above 30 GB

PowerCLI で vSphere スナップショットを操作する方法については、次のセクションを参照してください。

PowerCLI を使用したスナップショットの作成方法

vSphere を操作する効果的な方法の一つは、 PowerCLI を使用して. PowerCLI を使用すると、スナップショットの作成、削除、および復元を行うことができます。ここでは、そのための基本的な構文をいくつか見ていきましょう。

PowerCLI を使用したスナップショットの作成

PowerCLI を使用してスナップショットを作成するには、次の構文を使用します。

get-vm testvm | new-snapshot -Memory -quiesce -name "Test snap"

スナップショットの削除

スナップショットを削除するには、スナップショット名を変数に格納します。例えば、 $snap そして、これを使って問題のスナップショットを削除します:

Remove-Snapshot -Snapshot $snap -RemoveChildren

スナップショットへのロールバック

作成済みのスナップショットにロールバックするには、次の構文を使用します。

get-vm “testvm" | set-vm -snapshot "Test snap" -confirm:$false

VMware スナップショットの制限事項

vSphereのスナップショットには、知っておくべきいくつかの制限があります。

  • 時間の経過とともにスナップショットの数が増えていくにつれて、問題が生じる可能性があります。スナップショットの管理が困難になったり、ディスク容量を過剰に消費したりする恐れがあります。また、ハードウェア障害に対しては保護されていません。
  • VMのスナップショットを長期間保持しすぎたり、スナップショットのツリーが大きすぎたり、前回のスナップショット以降にVMやそのゲストOSに多くの変更が加えられたりすると、VMやホストのパフォーマンスに悪影響を及ぼす可能性があります。
  • RawディスクおよびRDMの物理モードディスクは、VMwareのスナップショットに対応していません。ただし、仮想互換モードのRDM(Raw Device Mapping)はスナップショットに対応しています。
  • 独立ディスクは、VMwareのスナップショットに対応していません。スナップショットを作成するには、独立ディスクを使用している仮想マシンをまず電源を切る必要があります。仮想マシンの電源が入っている場合やサスペンド状態の場合は、スナップショットは利用できません。
  • VMwareは、PCI vSphere Direct Path I/Oデバイスに対してスナップショット機能を提供していません。
  • また、ゲスト内でiSCSIイニシエーターを使用しているゲストOSでは、VMwareのスナップショット機能を利用できません。
  • バス共有が設定された仮想マシンでは、VMwareスナップショットはサポートされていません。
  • 2 TB以上のVMDKを持つVMの場合、スナップショットに関連する処理には時間がかかります。
  • スナップショットは、VMとともにファイルが失われた場合、スナップショットファイルは復元できないため、長期的なデータ保護(バックアップ)や復旧手段としては見なすべきではありません。

VMware スナップショットのベストプラクティス

スナップショットを扱う際は、これらの VMware スナップショットのベストプラクティスに従うようにしてください。

  • スナップショットをバックアップとして使用しないでください。スナップショットファイルは親仮想ディスクの変更ログに過ぎないため、データ保護や復旧の方法としては不十分です。
  • スナップショットチェーンは32個を超えてはなりません。パフォーマンスを向上させるため、スナップショットの数は2~3個に制限してください。
  • VMwareのスナップショットファイルは時間の経過とともに容量が増加し、データストア内のスペースを過剰に占有して、ストレージのオーバーヘッドを引き起こす可能性があります。一般的な推奨事項として、72時間以上経過したスナップショットは保存しないことが挙げられます。たとえば、PowerCLIでは3日以上経過したスナップショットを表示することができます。

注記: 72時間以上経過したスナップショットを表示するコマンド:

Get-VM | Get-Snapshot | Where {$_.Created -lt (Get-Date).AddDays(-3)} | Select-Object VM, Name, Created, SizeMB

  • 削除操作は、デルタファイルに保存されているすべての変更が親のVMwareスナップショットファイルまたはベースディスクのVMDKファイルにコミットされてしまう可能性があるため、一括で実行すべきではありません。
  • データの変更が頻繁に行われるI/O負荷の高いデータベースサーバーVMでは、スナップショットの使用には特に注意が必要です。スナップショットによってデータストアの容量がすべて埋まってしまう可能性があるためです。
  • スナップショットを利用するサードパーティ製ソリューションを使用する際は、スナップショットを定期的に削除するようにしてください。
  • スナップショットがまだVMディスク上に保存されている状態で、そのディスク容量を増やす場合は注意が必要です。スナップショットが破損し、予期せぬデータ損失につながる可能性があります。
  • vCenterのアラームとPowerCLIスクリプトを活用して、VMのスナップショットやデータストアの容量使用状況を常に把握しましょう。これにより、VMスナップショットの経過期間を追跡することも可能です。
  • お使いの vSphere のバージョンが v5.0 より古い場合は、Storage vMotion を実行する前にすべてのスナップショットを削除してください。Storage vMotion は、vSphere 5.0 以降でスナップショットが作成された仮想マシンでのみサポートされています。それ以前のバージョンでは、データの損失や仮想マシンの利用不能につながる可能性があります。
  • VMware vSphere の監視 問題を未然に防ぎ、先手を打って解決するための環境。

まとめ

スナップショットは、VMware仮想マシンを既知の状態に復元するための強力な仕組みです。これには、ディスク上のファイルやメモリ内のデータに加え、スナップショット作成時点での仮想マシンの構成も含まれます。特に開発環境では、コードの統合や更新、あるいは複数回の実行が必要なその他の変更をテストする際、スナップショットを活用することで大きなメリットが得られます。 スナップショットにロールバックすることで、正常な状態へ迅速かつ効率的に戻ることができます。

ただし、スナップショットはバックアップではないため、本番環境ではなく開発環境でのみ使用すべきです。また、パフォーマンスの低下やディスク容量の過剰な消費につながる可能性があるため、仮想マシン上に長期間残しておくべきではありません。使用方法 NAKIVO Backup & Replication VMware vSphereのデータ、アプリケーション、および仮想マシンを保護します。無料版をダウンロードして、ご自身の環境で本製品をお試しください。

試してみてください NAKIVO Backup & Replication

試してみてください NAKIVO Backup & Replication

無料トライアルを利用して、本ソリューションのデータ保護機能をすべてお試しください。15日間無料。機能や容量の制限は一切ありません。クレジットカードも不要です。

関連記事