Hyper-V を使用すると、仮想マシン内でカスタム バックアップ ソフトウェアを実行しなくても、ホスト オペレーティング システムから仮想マシン (VM) をバックアップできます。 開発者がニーズに応じて使用できる方法がいくつかあります。
VM バックアップまたはデータのみのバックアップを実行できます。
VM バックアップ: この方法では、構成とすべてのデータを含め、仮想マシン全体をバックアップします。 これは、VM 全体を以前の状態に復元する場合に便利です。 各仮想マシンのバックアップ (完全または増分) は、仮想マシンの構成 (
.VMCX
)、仮想マシンのゲスト状態 (.VMGS
)、仮想マシン のランタイム状態 (.VMRS
) ファイルなど、関連するすべての仮想マシンの構成ファイルと仮想マシンの状態ファイルをコピーする必要があります。 これらのファイルをすべてコピーしない場合、仮想マシンの状態は完全にはキャプチャされません。データのみのバックアップ: この方法では、仮想マシンの仮想ハード ディスクに格納されているデータのみをバックアップします。 データのみのバックアップを復元するには、新しい仮想マシンを作成し、その仮想マシンにデータを復元します。
Hyper-V の VSS ライター
Hyper-V は、Hyper-V がサポートされているすべてのバージョンの Windows Server にボリューム シャドウ コピー サービス (VSS) ライターを実装します。 この VSS ライターを使用すると、開発者は既存の VSS インフラストラクチャを利用して仮想マシンをバックアップできます。 ただし、サーバー上のすべての仮想マシンが同時にバックアップされる小規模なバックアップ操作用に設計されています。
Hyper-V の WMI ベースのバックアップ
Windows Server 2016 以降、Hyper-V では、Hyper-V Windows Management Instrumentation (WMI) API を使用したバックアップがサポートされています。 この方法でも、バックアップを目的として仮想マシン内で VSS を利用しますが、ホスト オペレーティング システムでは VSS が使われなくなっています。 その代わり、開発者が効率的な方法で、バックアップされた仮想マシンに関する情報にアクセスできるように、参照ポイントと回復性がある変更追跡 (RCT) の組み合わせが使用されます。 この方法は、ホストで VSS を使用するよりもスケーラブルですが、Windows Server 2016 以降でのみ使用できます。
詳細については、「Hyper-V WMI プロバイダー リファレンス」を参照してください。
WMI ベースのバックアップからバックアップを読み取るための方法
Hyper-V WMI を使用して仮想マシンのバックアップを作成する場合、バックアップから実際のデータを読み取る方法は 3 つあります。 それぞれに固有の長所と短所があります。
WMI エクスポート
開発者は、(前の例で使用した) Hyper-V WMI インターフェイスを介してバックアップ データをエクスポートできます。 Hyper-V 変更を仮想ハード ドライブにコンパイルし、要求された場所にファイルをコピーします。 この方法は使いやすく、すべてのシナリオで機能し、リモートで動作します。 ただし、生成される仮想ハード ドライブからは、多くの場合、ネットワーク経由で転送する大量のデータが作成されます。
Win32 API
開発者は、SetVirtualDiskInformation
に記載されている仮想ハード ディスク Win32 API セットのGetVirtualDiskInformation
、QueryChangesVirtualDisk
、および API を使用できます。
これらの API を使用するには、Hyper-V WMI を使用して、関連付けられている仮想マシン上に参照ポイントを作成する必要があります。 これらの Win32 API によって、バックアップされた仮想マシンのデータに効率的にアクセスできます。 Win32 API にはいくつかの制限事項があります。
- これらにはローカルでのみアクセスできます
- 共有仮想ハード ディスク ファイルからのデータの読み取りはサポートされていません
- これらは、仮想ハード ディスクの内部構造に対して相対的なデータ アドレスを返します
リモート共有仮想ディスク プロトコル
最後に、開発者が共有仮想ハード ディスク ファイルからバックアップ データ情報に効率的にアクセスする必要がある場合は、リモート共有仮想ディスク プロトコルを使用する必要があります。 このプロトコルについては、「リモート共有仮想ディスク プロトコル リファレンス」に記載されています。