Articles

vSphereスナップショットの使用方法と使用時期

スナップショットと呼ばれるものを作成することにより、任意の特定の時点での仮想マシンの状態を保存できます。

VMware スナップショット機能は、障害から迅速に回復したい場合や単に目的の状態に戻す場合に特に便利な機能です。 失敗したアップデートやパッチの後に VM を機能的な状態に復元することは、一般的な使用例の 1 つです。 同様に、スナップショットを使用して、トレーニング ラボのメンテナンス レジメンの一環として、ユーザーが VM を使用し終わった後に VM をベースライン状態に戻すことができます。

スナップショット機能は、スタンドアロンの ESXi ホストと vCenter Server で使用できます。 スナップショットからの復帰、スナップショットの削除などの異なるタスクは、同じクリックと選択パターンに従います。 ここで共通するのは Snapshot Manager で、これを使用すると次のことが可能になります:

  • Take snapshots.
  • Revert to the latest snapshot or any other snapshot.
  • Delete a snapshot.
  • Delete all snapshot.
  • Editing a snapshot (Name and Description).Snapshot を削除できます。
  • Manage snapshots.
  • Consolidate disks.

vSphere クライアントからは、常に VM 名を右クリックして、VM のコンテキストまたはアクション メニューから Snapshot(s) を選択して、希望の操作を行うことが可能です。 または、VM 名をハイライトして [Snapshots] タブをクリックし、[All Actions] ドロップダウン メニューからタスクを選択するか、それぞれのタスク アイコンをクリックします (オプション B)。 最高のパフォーマンスを得るためには、VMごとに2-3のスナップショットを維持することが推奨されます。 この制限を超えた場合、図2に示すエラーが返されます。

Figure 2 – Error indicating that the maximum number of snapshots per vm limit has exceeded

注意すべきもう一つの制限は保存期間に関するものです。 スナップショットを構成するファイルは増え続け、比較的小さなサイズのデータストアで容量を使い果たしてしまうという事実の他に、システムのパフォーマンスに影響を与える可能性があるため、72時間以上スナップショットを使用しないことを推奨します。

スナップショットの取得方法

VMのスナップショットを取得すると、次の情報が保持されます。 スナップショットを取得した後に追加または変更されたディスクを含む、仮想マシンディレクトリ。 仮想マシンはパワーオン、パワーオフ、またはサスペンドすることができます。

  • ディスクの状態。 仮想マシンのすべての仮想ディスクの状態。
  • (オプション) メモリ状態。 仮想マシンのメモリの内容。
  • 2つのオプションの設定は、スナップショットから元に戻すときにVMが復元される状態を決定します。 これらのオプションは、VMのパワーオフ中にスナップショットを取得した場合、いずれも使用できませんし、必須でもないことに注意してください。 2 つのオプションは次のとおりです:

    Snapshot the virtual machine’s memory.仮想マシンのメモリをスナップショットします。 デフォルトで有効になっているこのオプションは、スナップショットの一部として、VM のメモリ内容をディスクにフラッシュします。 これにより、VM は、スナップショットが取得されたときに実行されていた正確な状態に戻ることができます。 このオプションが選択されておらず、静止も選択されていない場合、スナップショットはクラッシュコンシステントなファイルを作成するため、スナップショットから復元した後、VMを手動でパワーアップする必要があります。 メモリスナップショットは、完了までにかなりの時間がかかります。 さらに、VM は状態の整合性を確保するために「凍結」されます。

    Quiesce guest file system: このオプションは、VMware Tools がインストールされ、適切に動作している必要があります。 VMを静止させることは、バックアップに適した状態を確保するために好ましい方法です。 これは、OSのイン・メモリ・キャッシュからディスクへのダーティ・バッファのフラッシュや、その他の高レベル・アプリケーション固有のタスクなどのオペレーションを含みます。 Quiescingとは、コンピュータ上で実行中のプロセス、特にバックアップ中にディスクに保存された情報を変更する可能性のあるプロセスの状態を一時停止または変更し、一貫性があり使用可能なバックアップを保証することです。 Quiescingはメモリスナップショットには必要なく、主にバックアップに使用されます。

    Figure 3は、異なる環境に存在するVMのスナップショットが、特定のvSphereまたはHostクライアントを使用して取得される方法を示す一連のスクリーンショットをキャプチャしたものです。

  • 例 2 – ESXi ホスト クライアント経由で ESXi 6.5 スタンドアロン ホストでホストされている VM のスナップショットを取得する。
  • 例 3 – C# vSphere クライアント経由で ESXi 6.0 スタンドアロン ホストでホストされている VM のスナップショットを取得する。
  • Figure 3 – スナップショットを取得する方法に関するさまざまな例

    最後となる4番目の例では、vCSA 6.5 で管理される VM をスナップショットするために PowerCLI がどのように使用されるかが説明されています。 私は、VMをスナップショットするために使用することができる2つの可能な方法を含んでいます。 最初の例では、私はGet-VMを使用してVMを取得し、次にNew-Snapshotコマンドレットにパイプします。 2つ目の例では、New-Snapshotコマンドレットを単独で使用し、-VMパラメータでスナップショットするVMを指定しています。 どちらの例でも、-Nameパラメーターは、取得されるスナップショットに名前を割り当てます。

    PowerShell

    1
    get->

    PowerShell

    1
    New-…Snapshot -VM “Windows 7” -Name “Pre Windows Update”

    Figure 4 – PowerCLI でスナップショットを作成する 2 つの方法

    How to exclude disks from snapshot

    VM のディスクがスナップショットに影響しないようにしたいケースがあるかもしれません。 これを実現するには、VMの設定から、VMのハードディスクのDisk ModeをIndependent – PersistentまたはIndependent – Nonpersistentに変更します。 この2つのオプションは、VMwareの説明に従って若干異なっています:

    Independent – Persistent。 Persistent: Persistent モードのディスクは、物理コンピュータ上の従来のディスクのように動作します。 永続モードのディスクに書き込まれたすべてのデータは、ディスクに永続的に書き込まれます。

    Independent – Nonpersistent: 非持続モードでのディスクへの変更は、仮想マシンをパワーオフまたはリセットしたときに破棄されます。 非持続モードを使用すると、毎回同じ状態の仮想ディスクで仮想マシンを再起動することができます。 ディスクへの変更は、パワーオフまたはリセット時に削除されるREDOログファイルに書き込まれ、そこから読み取られます。

    Figure 5 – スナップショットの影響を受けないようにVMDKのディスクモードを変更

    スナップショットに復帰する方法

    スナップショットに復帰するには、Rear to Latest Snapshot オプションを選択するか、Return to the Snapshotオプションを選択します。 VMに複数のスナップショットがある場合、図6に示すように、Snapshot Managerに表示されたスナップショット階層から、戻したいスナップショットをハイライトして、Revert Toアイコンをクリックするだけです。 メモリ・オプションが選択されている場合、VMは以前の状態に戻る間、電源が入ったままになります。 スナップショット取得時にメモリオプションが選択されていない場合、スナップショット取得時のVMの電源状態に関係なく、スナップショットから復帰した後にVMを手動でパワーアップする必要があります。

    スナップショットから復帰すると、図に示すように、スナップショットを取得しないとVMの現在の状態が失われることを警告されます。 7.

    Figure 7 – Loss of current state warning when reverting to a snapshot

    If the memory option was selected when the snapshot were taken, then you are presented to suspend the VM while it is reverted. このオプションを選択した場合、VMをパワーアップして手動で「一時停止解除」する必要があります。

    Figure 8 – Suspending the VM while reverting back from snapshot

    最初に取得したスナップショットはベース親スナップショットと呼ばれます。 これは、仮想マシンの現在の状態の最も最近に保存されたバージョンです。 親スナップショットは常に、Snapshot Managerの[You are here]アイコンのすぐ上に表示されるスナップショットになります。 スナップショットを元に戻すか復元すると、そのスナップショットはYou are hereの現在の状態の親になります。

    Figure 9 – 親と子のスナップショットとYou are hereで表される現在の状態の間の関係を示すスナップショット階層

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

    単一のスナップショットを削除したり、既存のすべてのスナップショットを一度にすべて削除することが可能です。 スナップショットの削除はI/O負荷の高い処理であり、パフォーマンスに影響を与える可能性があります。 スナップショットを削除しても、VMの現在の状態は変更されません。 しかし、これまでに蓄積されたすべての変更がデルタ・ディスクからコピーされ、Consolidationと呼ばれるプロセスでベース・ディスクに書き込まれます。 この後、統合プロセスは、削除されたばかりのスナップショットに関連するすべての冗長ファイルを削除するように注意します。

    統合プロセスが失敗した場合、スナップショットメニューから[統合]オプションを選択して、このプロセスを手動で開始することができます。 冗長なデルタ ディスク (次のセクションを参照) がパフォーマンスに悪影響を与える可能性があるため、統合を正常に実行することが重要です。

    Figure 10 – ディスク統合の手動実行

    詳細については、vSphere 5でスナップショットを統合する方法 (英語) を参照してください。

    Snapshots from a file perspective

    スナップショットは、スナップショットが取得された VM のフォルダに移動した後、Datastore Browser で表示できるいくつかのファイルから構成されています。 ゲスト OS が書き込むことができる .vmdk ファイル。 デルタディスクは、仮想ディスクの現在の状態と、前回のスナップショットを取得した時点で存在した状態の差を表します。 スナップショットを取得すると、仮想ディスクの状態が保持され、ゲストオペレーティングシステムからの書き込みができなくなり、デルタディスクまたは子ディスクが作成されます。 デルタディスクには、仮想ディスクの情報を含む小さなディスクリプタファイルと、生データを含む対応するファイルの2つのファイルがあります。 デルタディスクを構成するファイルは、子ディスクまたはREDOログと呼ばれます。

    Flatファイル。 ベースディスクを構成する2つのファイルのうちの1つである-flat.vmdkファイル。 フラットディスクには、ベースディスクの生データが含まれています。 このファイルはデータストアブラウザに個別のファイルとして表示されませんが、ESXi にコンソールされているときにディレクトリの内容を一覧表示すると個別に表示されます。

    Figure 11 – 一部のファイルは ESXi

    Database file.のコンソール時にのみ表示されるファイルです。 VMのスナップショット情報を含む.vmsdファイルで、Snapshot Managerの主要な情報源となります。 このファイルは任意のテキスト・エディタで表示でき、スナップショット間の関係や各スナップショットの子ディスクを定義する行エントリが含まれています。 .vmsn ファイルは、VM のアクティブな状態を含み、仮想マシンをオンにした状態に戻すことができるよう、VM のメモリ状態をキャプチャします。 スナップショット メモリ オプションの選択が解除されている場合、オフにした VM の状態にのみ戻すことができます。

    The Anatomy of a VMware Virtual Machine というタイトルの投稿で、さらに詳細を参照することができます。

    図 12 – データストア ブラウザに表示されるスナップショット ファイルをデータベース ファイルにあるエントリにマッピングする

    前述のように、スナップショットは、接続された仮想ディスクまたは仮想 RDM それぞれについて一連のデルタ ディスクを作成することによって特定の時点のディスクおよび/または VM 状態を保持します。 オプションとして、メモリと電源の状態は、メモリ ファイルを作成することによって保存されます。

    各スナップショットは、追加のデルタ ファイルを作成します。 スナップショットを取るとき、スナップショットメカニズムはゲスト OS がベース .vmdk ファイルに書き込むのを防ぎ、代わりにすべての書き込みをデルタ ディスク ファイルに向けます。 デルタディスクは、仮想ディスクの現在の状態と、前回のスナップショットを取得した時点で存在した状態との差を表します。 複数のスナップショットが存在する場合、デルタディスクは各スナップショット間の差分を表すことができます。 ゲストオペレーティングシステムが仮想ディスクのすべてのブロックに書き込むと、デルタディスクのファイルは急速に拡大し、仮想ディスク全体と同じサイズになる可能性があります。

    詳細は次のリンクを参照してください。

    • Understanding VM snapshots in ESXi / ESX
    • Determining if there are leftover delta files or snapshot that VMware vSphere or Infrastructure Client cannot detect

    スナップショット制限

    注意すべき制限は数多く存在します。 スナップショットが vMotion とどのように相互作用するかに関連するものなど、いくつかは、vSphere の古いバージョンをまだ使用している場合に適切に対処する必要があります。

    • Raw ディスク、RDM 物理モード ディスク、またはゲストで iSCSI イニシエータを使用するゲスト OS を持つ VM のスナップショットは、サポートされていません。
    • 独立ディスクを持つVMは、スナップショットを取る前にパワーオフする必要があります。
    • 独立ディスクを持つパワーオンまたはサスペンドVMのスナップショットはサポートされていません。
    • スナップショットはPCI vSphere Direct Path I/O デバイスでサポートされていません。
    • スナップショットはバックアップ ソリューションが使用できるディスクのポイント イン タイム イメージを提供しますが、これらは堅牢なバックアップおよびリカバリ方法であることを意図したものではありません。 仮想マシンを含むファイルが失われた場合、そのスナップショット ファイルも失われます。 また、大量のスナップショットは管理が難しく、大量のディスク領域を消費し、ハードウェア障害の場合に保護されません。
    • スナップショットは、仮想マシンのパフォーマンスに悪影響を及ぼすことがあります。 パフォーマンスの低下は、スナップショットまたはスナップショット ツリーがある期間、ツリーの深さ、および仮想マシンとそのゲスト OS がスナップショットを取得した時点からどれだけ変更されたかによって決まります。 また、仮想マシンのパワーオンにかかる時間に遅延が見られることもあります。 本番用の仮想マシンをスナップショットから永続的に実行しないでください。
    • 仮想マシンに 2TB 以上の仮想ハード ディスクがある場合、スナップショット操作が終了するまでかなり時間がかかることがあります。

    vSphere 6.0 以前の環境の場合は、スナップショットによる仮想マシンの移行 KB 記事を必ず読んでおいてください。 私がかつて頻繁に遭遇した共通の問題は、ホストをメンテナンス モードにして、VM が自動的に移行するのを待ちますが、1 つまたは複数の VM がスナップショットを持っているためにプロセスが停止してしまうというものでした。

    • VMware ESXi/ESX でスナップショットを作成またはコミットする際のトラブルシューティング
    • 仮想マシン スナップショットを削除できない
    • 仮想マシンからディスクを削除すると、新しいスナップショットを作成できない
    • Snapshot removal task stopped at 99% in ESXi/ESX