スナップショット技術は、仮想化の主な機能の1つです。仮想化の専門家なのか、仮想化の知識を習得中なのかに関係なく、Hyper-Vスナップショットはユーザー側で作成する必要があります。ここでは、Hyper-Vスナップショットについて知っておくべき12のことを説明します。

Hyper-Vスナップショットは、もはやスナップショットではありません

実際のところ、今後はHyper-Vスナップショットを"スナップショット"と呼ぶのは正しくありません。Windows Server 2008、Windows 2008 R2、Windows Server 2012などの古いシステムではこの用語はまだ正しいですが、Windows Server 2012 R2では技術が改良されており、"Hyper-Vチェックポイント"に名前が変更されています。この名前変更が行われたのは、Hyper-VスナップショットとVSS(NTFS)スナップショットの混同を避けるため、および一貫性を保つためです。例えば、Microsoft System Center Virtual Machine Manager(SCVMM)では、以前はスナップショットではなくチェックポイントと呼ばれていました。

名前変更によって多少混乱が生じるかも知れませんが、この名前変更は公式なものなので、これに従うほうが簡単でしょう。Windows Server 2012 R2以降を使用していることを前提とし、今後はこの技術を公式にHyper-Vチェックポイントと呼ぶことにします。

Hyper-Vチェックポイントとは?

物理的には、Hyper-Vチェックポイントは差分の仮想ハード・ディスクであり、特定の名前に拡張子avhd(x)が付いたファイルと、GUID名をファイル名に使用するxml構成ファイルが作成されます。また、チェックポイントの作成にVMを起動すると、仮想マシン(VM)のメモリ内容が含まれたファイル(.bin)と、VMデバイスの状態情報が含まれたファイル(.vsv)も作成されます。チェックポイントが作成されると、差分(.avhd(x))ディスクには、VMの元のディスクに対する一時的な変更が保存され、元のディスクは読み取り専用になります。

論理的には、Hyper-Vチェックポイントを、特定の時点における一貫した状態のVMと考えるとよいでしょう。つまり、この状態をしばらく保持し、現在のVMに何かあった場合、チェックポイント取得時に戻すことができます。バックアップのように思えますが、チェックポイントはバックアップではありません。

チェックポイントはバックアップではない

チェックポイントをバックアップであると考えるのは、かなり無理があります。データ消失を防ぐ手段や、バックアップの代替にはなりません。チェックポイントは、その性質上、本番データストアにVMハード・ディスクと共に保存されます。つまり、このデータストアが依然としてシステムの単一障害点となります。データストアに問題が発生すると、VMが使用できなくなります。それでも納得できない場合は、バックアップとチェックポイントに関する以下の内容をご確認ください。

  • チェックポイントでは、チェックポイントを保持している間、ホスト全体の処理能力が低下する可能性があります
  • VMの仮想ディスクが破損すると、チェックポイントは失われます
  • バックアップの場合、別の場所のバックアップ・ストレージを使用します
  • バックアップでは、重複排除とデータ圧縮を利用することで、使用するストレージ領域が少なくて済みます
  • バックアップの場合、バックアップ完了後はVMのパフォーマンスに影響しません
  • 複数のバックアップをクローンVMとしてリストアし、元のVMに対して並行して実行できます

上記の点を考えると、チェックポイントがデータ保護ソフトウェアに代わる有効な選択肢ではないことが分かるでしょう。それでは、実際にチェックポイントが必要となる理由は何でしょうか。

Hyper-Vチェックポイントを使用する場合

簡単に言うと、チェックポイントは開発環境やテスト環境で使用されますが、本番環境では使用されません。そういうことです。チェックポイントを本番VMで使用することはあらゆる推奨事項に反しており、特にMicrosoft SQL ServerやMicrosoft Exchange Serverなどの時間が重要となるサービスを提供する本番VMの場合に当てはまります。パフォーマンスやストレージ領域の可用性がビジネス・プロセスに重要である場合、チェックポイントは適切な選択肢ではありません。

Hyper-Vチェックポイントは、テストを短時間で実行して結果を数分内に確認したい場合に適しています。安定したVM状態を維持し、テストがスムーズに実行されたかどうかや、テストによって環境に損傷が生じたかどうかを確認したら、VMを元の安定した状態に戻すことができます。

短時間で実行するテストの例として、新しいOSパッチの動作や、バックエンド・チームが企業サイト用に開発したコードなどが挙げられます。

チェックポイント・ツリー

チェックポイントの操作に進む前に、チェックポイントがどのように編成されるかについて説明します。これはチェックポイント・ツリーと呼ばれています。このツリーでは、後続のチェックポイントはすべて、以前のチェックポイントからのみ開始されます。そのため、このチェックポイントのハード・ディスクに保存される実際の差分データは、チェックポイントの実際の状態と前回作成時の状態との差分になります。

通常、このチェックポイント・ツリーに保存されるチェックポイントの上限数は50です。ただし、Windows Server 2012 R2のVirtual Machine Managerを使用すると、この上限数を64に拡張できます。チェックポイントを以前の状態に戻したり、2つの状態間を移動させたりすると、ツリーが逸脱することに注意してください。

Hyper-V checkpoint tree

図1:Hyper-Vチェックポイント・ツリー

チェックポイント・ツリーが大きくなるにつれて、ディスクI/Oのオーバーヘッドが生じて、VMとストレージ・サブシステムのパフォーマンスが低下する可能性が高くなります。また、このツリーが大きくなるにつれて、ストレージ使用量も大きくなります。例えば、ツリー内に複数のチェックポイントが含まれたVMでテストを行った際、数日間でストレージ使用量がほぼ2倍になりました。

Hyper-Vチェックポイントの作成方法

Hyper-Vマネージャーを開いて、VMまたは選択した一連のVMを右クリックし、[チェックポイント]をクリックします。簡単でしょう。管理にPowerShellコマンドレットを使用する方法については、後ほど説明します。

作成したHyper-Vチェックポイントで、適用、エクスポート、名前の変更、削除の各操作を実行できます。これらの操作を1つずつ以下で説明します。

2-HV manager with a checkpoint tree

図2:Hyper-Vマネージャー:チェックポイント・ツリーのあるVM

Hyper-Vチェックポイントの名前の変更方法

デフォルトでは、チェックポイント名は、チェックポイントが属するVMの名前とタイム・スタンプで構成されます。ネーミング・システムを改良するか、一から作成することをお勧めします。私の経験から言うと、タイム・スタンプに加えて、チェックポイントを作成した理由をチェックポイント名に含めると便利です。このようなことは当然であるとか、留意する必要などないと思うかも知れませんが、こうすると後で対処が簡単になります。チェックポイントを削除するのを忘れて、データベースのパフォーマンスが低下したときに、チェックポイントを適用して何が保存されているのを確認する時間がなかったら、どうなるでしょうか。

Hyper-Vチェックポイントの適用方法

これは最も重要な部分です。チェックポイントを作成し、VMでテストを行って、何かがおかしいことが分かりました。この場合に、変更を元に戻して、安定したVM状態にロール・バックできます。ロール・バックするには、チェックポイント・ツリーを右クリックして[適用]を選択します。次に、このVM状態を他のチェックポイントに保存するかどうかを判断して、プロセスの適用を開始する必要があります。Hyper-VによってVMが保存され、必要な状態がチェックポイントからリストアされて、その状態が再開されます。このプロセスは瞬時には完了しないため、システムのパフォーマンスやVMのサイズに応じて、VMがしばらく応答しなくなります。それに応じて計画を立ててください。

3-applying a checkpoint

図3:Hyper-Vチェックポイントの適用

Hyper-Vチェックポイントの削除方法

チェックポイントを削除できますが、チェックポイントに保存されているデータも削除されるということではありません。この削除はむしろマージ操作であると言えるでしょう。チェックポイント・ファイルのロックが解除され、ファイル内のデータが親ディスクに転送されてから、ファイルが削除されます。では、チェックポイントのサブツリーを削除するとは、どのようなことでしょうか。チェックポイントのサブツリーを削除すると、選択したチェックポイントと後続のすべてのチェックポイントを削除することになります。

注:ストレージのチェックポイント・ディスクは削除しないでください。代わりに、Hyper-Vマネージャーを使用してください。ディスクを削除すると、ツリーが破損して使用できなくなります。

4-checkpoint subtree

図4:Hyper-Vチェックポイントのサブツリーの削除

チェックポイント関連のPowerShellコマンドレット

ここは、扱いにくい部分です。先に説明したように、MicrosoftはWindows Server 2012 R2から、Hyper-VスナップショットをHyper-Vチェックポイントに名前変更しました。ただし、管理操作にPowerShellを使用している場合、この名前変更が少し紛らわしいと思うかも知れません。チェックポイント関連のすべてのアクションをリストアップし、それぞれのアクションに、対応するPowerShellコマンドレットを付け加えました。これにより、次の操作を実行できます。

  • チェックポイントを作成する:Checkpoint-VM
  • VMのチェックポイントを一覧表示する:Get-VMSnapshot
  • VMのチェックポイントをエクスポートする:Export-VMSnapshot
  • チェックポイント名を変更する:Rename-VMSnapshot
  • チェックポイントを適用する(以前の状態に戻す):Restore-VMSnapshot
  • チェックポイントを削除する(すべてのデータをマージする):Remove-VMSnapshot

5-PS checkpoint

図5:Hyper-Vチェックポイントの管理に関連するPowerShellコマンドレット

その他

ここでは、上記では説明していない、役立つ情報についていくつか説明します。

  • 仮想ディスクでチェックポイントを使用している場合は、仮想ディスクを拡張しないでください。チェックポイント・ツリー全体が破損します。
  • Windows server 2008(R2)のスナップショット削除操作は、VMをシャットダウンするか、オフにするか、または保存された状態にするまで完了できません。そのため、VMがこれらのいずれかの状態になるまで、スナップショット・データが含まれた.avhdファイルは保存場所に残ります。

Windows Server 2016の新機能と拡張機能

リリース前のシステムについて説明するのは時期尚早かも知れませんが、Hyper-Vチェックポイントを含め、Windows Server 2016で提供される新機能や拡張機能について情報がいくつか提供されています。この情報は、実際のWindows 10リリースとWindows Server 2016 Technical Preview版に基づくものです。

標準チェックポイントと運用チェックポイントの、2種類のチェックポイントが提供されることが決まっています。標準チェックポイントはこの記事で説明しているチェックポイントに該当しますが、運用チェックポイントはその名前が示すように、運用環境向けの高度なチェックポイントです。運用チェックポイントでは、データの一貫性を確保するために、WindowsでVSS(Linuxではファイル・システム凍結)を使用します。そのため、VM状態の復帰が完璧なプロセスになり、分散アーキテクチャのゲストOSアプリケーションによって適切に処理できます。

6-2016 checkpoints

図6:Windows Server 2016 Technical Preview 4のHyper-Vチェックポイント

運用チェックポイントの詳細については、次のサイトを参照してください。https://msdn.microsoft.com/virtualization/hyperv_on_windows/user_guide/checkpoints

Windows Server 2016のリリースが間近になったら、新機能についてこの記事を更新する予定ですので、ご期待ください。

Hyper-Vチェックポイントを実際に使ってみていかがでしたか。共有できる情報がありましたら、下記で共有いただけると助かります。情報をお待ちしています。

GD Star Rating
loading...
Veeam Availability Suite — 無償評価版をダウンロードする

Andrew Zhelezko
Author: Andrew Zhelezko

Posted: 2016年9月14日