マイクロソフトのHyper-V仮想化プラットフォームを使用する場合、仮想マシンのバックアップは非常に重要です。VMデータを安全に保つためには、Hyper-V VMバックアップの異なる方法と、どれが最も適しているかを把握する必要があります。Hyper-V VMバックアップには、ゲストレベルとホストレベルの2つの異なるアプローチがあります。
ゲストレベルの方法は、物理マシンのバックアップに似ており、各々にインストールされたエージェントの支援を受けてVMレベルで動作します。ホストレベルのバックアップはより多くの利点を提供し、ハイパーバイザーレベルで動作し、VM全体(構成を含む)をバックアップするため、復旧が容易になります。このブログ投稿では、これらの両方が詳細に探求され、ホストレベルのバックアップのためのNAKIVO Backup & Replicationの機能も紹介されています。
ゲストレベルのHyper-Vバックアップ
ゲストレベルのVMバックアップは、物理ホストのバックアップに類似しています。特別なエージェントベースのソフトウェアが、バックアッププロセスを実行するためにゲストオペレーティングシステム(OS)にインストールされます。Windows用のほとんどすべてのバックアップ製品は、MicrosoftのVolume Shadow Copy Service(VSS – ボリュームスナップショットサービスとも呼ばれる)を使用しています。VSSは、スナップショットを使用してデータの「アプリケーション認識バックアップ」を作成するための技術です。このプロセスには、VSSライターと呼ばれるVSSの特別なコンポーネントが使用されます。Linuxでは、同様の目的でLVM(Logical Volume Manager)スナップショットを使用できます。
エージェントの役割
エージェントは、物理コンピュータまたは仮想マシンにインストールされるバックアップソフトウェアの一部であり、ファイルシステムやアプリケーションとのやり取りを行います。エージェントは、システム全体または個々のファイルやプログラムのコピーを作成するために使用することができます。エージェントは通常、ゲストOS内のシステムプロセスとして実行され、バックアップを管理できるサーバーとのネットワーク接続を確立します。エージェントを使用するバックアップソリューションは、しばしば「レガシーバックアップソリューション」と呼ばれます。
仮想環境におけるゲストレベルのバックアップのユースケース
ゲストレベルのバックアップは、次の理由で使用することができます:
- ゲストOSがハイパーバイザによって公式にサポートされていない場合、ホストレベルの方法を使用してアプリケーション整合性のあるバックアップを作成することはできません。
- もしVMがゲストOSレベルで共有ストレージに接続されているか、直接接続された物理ディスク(パススルーディスクを含む)がホストレベルのバックアップソフトウェアでサポートされていない場合、完全に一貫性のあるバックアップを実行することはできません。たとえば、VMがiSCSIプロトコル(ゲスト内のiSCSIイニシエータを使用して)を介してSAN(ストレージエリアネットワーク)LUN(論理ユニット番号)に接続されており、データベースサーバーやファイルサーバーなどのソフトウェアがそのボリュームを使用している場合、Hyper-VのVSSライターは、VMが使用するすべてのディスク(VHD仮想ディスク内のボリュームおよび直接接続された物理ディスクのボリューム)の完全に一貫性のあるバックアップを実行できません。適切なバックアップを作成するためには、スナップショットを取るときにアプリケーションと両方のディスクタイプを静止させる必要があるためです。パススルーディスクは、ホストレベルでバックアップを実行するためにVHD仮想ディスクに変換できます。VMはNAS(ネットワークアタッチドストレージ)デバイスやSANなどの共有ストレージに配置されている場合もあります。これらのソリューションはクラスタリングを使用したホストレベルのバックアップを実行するために使用されます。
- 一部の小規模な仮想化環境を持つ組織は、コストを節約するためにゲストレベルのVMバックアップを使用していますが、このアプローチは推奨されません。過去には、VMが少数しかない環境ではエージェントベースの従来のソリューションの方が経済的であるため、この方法が妥当であったかもしれませんが、現在は小規模なHyper-V環境向けに同等またはそれ以上に手頃な価格のホストレベルのVMバックアップソリューションがあります。
ゲストレベルのバックアップのデメリット
- 各仮想マシンにエージェントをインストールする必要があり、不便で時間がかかります。
- 回復プロセスはより困難です。まず、空のVMを作成し、その後VMの設定(仮想CPU、メモリ、ディスク、ネットワークなど)を構成する必要があります。その後にVMを復元することができ、再起動するために復元メディアが必要です。
- 計算リソースの消費は大幅に高くなります、特に1つのHyper-Vホストに複数の仮想マシンが同時にバックアップされている場合です。
- エージェントベースのバックアップソフトウェアは、エージェントを構成するためにrootまたは管理者の資格情報を使用する必要があり、これはセキュリティ上の問題となる可能性があります。
- VMレベルのスナップショットはありません。
ホストレベルのHyper-Vバックアップ
ホストレベルのバックアップ方法が、Hyper-V VMバックアップに好まれます。ホストレベルのバックアップ方法は、ゲスト仮想マシンのレベルではなく、ハイパーバイザーのレベルで動作し、実行されているオペレーティングシステムに関係なくVMをバックアップできます。仮想マシンは完全にバックアップでき、仮想ディスクファイル(Hyper-VでのVHD形式で示される)やVMの設定(CPU、メモリ、ネットワークなど)が含まれる構成ファイルもバックアップできます。ホストレベルのバックアップ方法には2種類あります – 保存状態方法と子VMスナップショット方法。
保存状態方法
保存された状態メソッドは、アプリケーションを認識しないオフラインメソッドです。このメソッドを使用すると、Hyper-Vのボリュームシャドウコピー サービスがVSSライターをバックアッププロセスの実行に割り当てます。仮想マシン(VM)が稼働中の場合、VMは「保存された状態」になります。つまり、スナップショットが撮影される間、VMは一時的にオフラインになります。Hyper-VのVSSライターは、VMを休止状態にします。これにより、開いているファイルを保存し、実行中のアプリケーションの状態を仮想ハードディスクに記録できます。
保存された状態メソッドの動作は?
詳細に分解すると、このプロセスは次のステージで構成されます:
- PrepareForSnapshotイベント。この時点で、バックアップソフトウェアはバックアップのためのVMの準備を開始し、休止状態を使用してVMの状態を保存します。
- スナップショットの取得。このステップでは、Hyper-VのVSSライターであるVMMS.exe(仮想マシン管理サービス)プロセスが使用されます。スナップショット(Hyper-V環境ではVMチェックポイントとも呼ばれる)が撮影され、バックアップソフトウェアがスナップショットに基づいてバックアップを作成します。スナップショットの作成により、コピー中にデータの変更を回避しながらVMのデータをバックアップできます。これが完了すると、PostSnapshotイベントがトリガーされます。
- PostSnapshotイベント。VMは以前の状態に戻されます(つまり、休止状態から復帰します)。
子VMスナップショットメソッド
Child VMスナップショットメソッドは、アプリケーション認識型のメソッドであり、実行中のVMのバックアップに使用されます。このメソッドは、高可用性のプロダクション環境でも使用できます。バックアップ操作中はVMがオンラインのままであり、作成されるバックアップはトランザクション的に整合性が取れています。Saved Stateメソッドは、子VMの外部でHyper-V VSSを使用しますが、Child VMスナップショットメソッドは子VM内のVSSメカニズム(”子VM”という用語は”ゲストVM”と同義)を使用してバックアップを作成します。
Child VMスナップショットメソッドの動作原理
イベントシーケンスはSaved Stateメソッドと一部類似しています。
- PrepareForSnapshotイベント。子VM内のHyper-V VSSリクエストサービスは、PrepareForSnapshotイベントをトリガーしてバックアップ作成を開始します。
- スナップショット作成イベント。VSSリクエストサービスからのリクエストを受け取ると、スナップショットが作成されます。その後、制御はHyper-V VSSリクエストサービスからHyper-V VSSライターに戻ります。
- PostSnapshotイベント。VSSライターはPostSnapshotイベントをトリガーして、バックアップソフトウェアにVMスナップショットの作成が完了したことを通知します。バックアップソフトウェアは、VMバックアッププロセスの一部としてスナップショットをコピーすることができます。
Hyper-V Integration Servicesの役割
Hyper-V インテグレーション サービスは、子 VM スナップショット メソッドを使用してバックアップを作成するために使用されます。これらはハイパーバイザーと子 VM 間の特別な相互作用を提供します。これらのサービスは、個々に有効または無効にできるドライバーとサービスのコレクションで構成されており、必要に応じて設定できます。上述の VSS リクエスト サービスは、インテグレーション サービスのスイートの一部であり、ホストレベルのバックアップを実行するために仮想マシンにインストールする必要があります。
Windows Server 2008 R2 および Windows 7 以降、インテグレーション サービスはオペレーティング システムに含まれています。VM に手動でインテグレーション サービスをインストールまたは更新する場合は、Hyper-V マネージャーを使用して、vmguest.iso 仮想ディスク イメージを VM の仮想ドライブにマウントします。Hyper-V ホストでインテグレーション サービスを手動で更新するには、Microsoft のサイトからダウンロードし、PowerShell を介してインストールします。Windows 10 および Windows Server 2016 では、Windows Update サービスを介してホストおよびゲストでインテグレーション サービスを更新できます。
子 VM スナップショット メソッドを使用するための要件
子 VM スナップショット メソッドを使用してバックアップを実行するためには、次の条件を満たす必要があります:
- 子 VM には、Hyper-V インテグレーション サービス (Hyper-V VSS リクエストを含む) がインストールされている必要があります。
- VM 内のすべてのボリュームは、動的なものではなく基本ディスクとして構成されている必要があります。子 VM 内のディスクのファイル システムはスナップショットをサポートしている必要があります(たとえば、NTFS ファイル システムがこの基準を満たします)。
- VM スナップショット ファイルは、VHD ファイルと同じボリュームに配置されている必要があります。
- 子VMは実行している必要があります。
上記の条件のいずれかが満たされていない場合、子VMスナップショットメソッドは使用できません。この場合、デフォルトのメソッドとしてセーブドステートメソッドが使用されます。
ホストレベルのバックアップメソッドの利点
上記のように、ホストレベルのバックアップメソッドはHyper-V VMのバックアップにおいてゲストレベルのメソッドよりも優れた利点を提供します。これらの利点は以下のようにまとめることができます:
- A hypervisor-level backup is easier to manage. No agents are needed. The backup product can manage the entire Hyper-V host and all the VMs residing on this host. You can select the particular VMs that need to be backed up.
- 仮想ディスク、スナップショット、VMの設定など、VMのすべての内容がバックアッププロセス中にキャプチャされます。VMの復旧にはハイパーバイザーとストレージの場所を選択するだけでよく、新しいVMを作成して手動で構成する必要はありません。
- Child VMスナップショットメソッドを使用してHyper-V VMのオンラインアプリケーション対応バックアップを実行する機能は、プロダクション環境において非常に重要です。仮想マシンの操作は中断されず、バックアップはトランザクション的に整合性が取れます。
- リソースの経済性(プロセッサ、メモリ、ディスクスペース)。
NAKIVO Backup & Replicationを使用してHyper-Vバックアップを改善する
NAKIVO Backup & Replicationは、ホストレベルのメソッドを使用してHyper-V VMのバックアップを行い、バックアップジョブの設定プロセスを簡素化します。NAKIVO Backup & Replicationは、Hyper-V Server 2012 R2およびHyper-V Server 2016に対してネイティブなバックアップを提供し、稼働中の仮想マシンのブロックレベルのイメージベースのバックアップをダウンタイムなしで実行できます。
製品は、いくつかの異なるストレージ節約技術も利用しています。Hyper-V バックアップは、直前のバックアップ以降に変更されたデータのブロックを追跡するResilient Change Tracking (RCT) により、増分で行われます。Hyper-V バックアップデータは、フルシンセティックモードを使用してリポジトリに格納されます。Hyper-V バックアッププロセス中にスワップファイルは除外され、データはさらにサイズを削減するためにグローバルに重複排除されます。
Hyper-V バックアップを改善する NAKIVO Backup & Replication の機能
- アプリケーション対応バックアップモードを使用すると、Microsoft Exchange、SQL Server、Active Directory、およびその他のアプリケーションやデータベースを実行している VM の一貫したバックアップを作成できます。
- Azure や AWS クラウドに Hyper-V バックアップをリモートで保存することで、災害からの追加の保護レベルが提供されます。
- 組み込みのバックアップ検証により、バックアップが一貫していることを確認し、リポジトリに保存されているバックアップデータがソース VM のデータと同一であることを確認できます。スクリーンショット検証機能では、テストリカバーされた子 VM のロードされたオペレーティングシステムのスクリーンショットがバックアップ後すぐに電子メールで送信されます。
- クラスターに対応した機能により、Hyper-V フェールオーバークラスター内の VM をバックアップできます。VM はクラスター内の異なるホスト間で場所を変更できます。製品は VM の場所を自動的に追跡し、常にバックアップできます。
結論
プロダクション環境では通常、Child VM Snapshotメソッドが好まれます。これは、仮想マシンの操作を中断することなくトランザクション的に一貫したオンラインバックアップを作成できる能力があるためです。VMがオフラインの場合は、Saved Stateメソッドを使用できます。ホストレベルのバックアップ方法のいずれも使用できない場合は、互換性の理由やその他の制限のためにゲストレベルのバックアップを実行できます。
Source:
https://www.nakivo.com/blog/host-level-vs-guest-level-hyper-v-backup/