プロバイダー 実行中のボリュームを管理し、オンデマンドでそれらのシャドウ コピーを作成します。
要求元からの要求に応答して、プロバイダーは COM イベントを生成して、今後のシャドウ コピーのアプリケーションに通知し、不要になるまでそのコピーを作成して保持します。
シャドウ コピーが存在する間、プロバイダーは、シャドウ コピーされたボリュームの独立したコピーが実質的に 2 つある環境を作成します。1 つは実行中のディスクが通常どおりに使用および更新され、もう 1 つはディスク固定でバックアップ用に安定したコピーです。
既定のプロバイダーは Windows の一部として提供されますが、他のベンダーは、独自のストレージ ハードウェアおよびソフトウェア オファリング用に最適化された独自の実装を自由に提供できます。
エンド ユーザーまたはバックアップ/復元アプリケーション開発者の観点から、すべてのプロバイダーは同じインターフェイスを持ちます (プロバイダーの選択を参照)。
すべてのプロバイダーは、次の操作を実行できる必要があります。
- ファイル システムと基になる大容量記憶装置システムの間で I/O 要求をインターセプトします。
- シャドウ コピー時のボリュームの状態をキャプチャして取得し、ディスク上のファイルの "特定の時点" ビューを維持し、その状態に部分的な I/O 操作が反映されません。
- この "特定の時点" ビューを使用して、シャドウ コピーされたデータを含む仮想ボリュームを (VSS 対応アプリケーションに最小限で) 公開します。
この方法に応じて、プロバイダーは次の 3 種類のいずれかになります。
システム プロバイダー
1 つのシャドウ コピー プロバイダーである システム プロバイダーは、Windows オペレーティング システムのインストールの既定の部分として提供されます。 現在、システム プロバイダーはソフトウェア プロバイダーの特定のインスタンスです。 ただし、これは将来変更される可能性があります。
シャドウ コピーに含まれるボリュームの "ポイント イン タイム" ビューを維持するために、システム プロバイダーは書き込み時のコピー手法を使用します。 シャドウ コピーの作成の開始以降に変更されたディスク上のセクターのコピー ("diffs" と呼ばれます) は、シャドウ コピーストレージ領域に格納されます。
そのため、システム プロバイダーはライブ ボリュームを公開できます。ライブ ボリュームは、通常どおりに書き込んで読み取ることができます。また、ライブ ボリュームのデータに "diffs" を適用して、シャドウ コピーの固定データを効果的に公開できます。
システム プロバイダーの場合、シャドウ コピー記憶域は NTFS ボリューム上にある必要があります。 シャドウ コピーするボリュームは NTFS ボリュームである必要はありませんが、システムにマウントされている少なくとも 1 つのボリュームが NTFS ボリュームである必要があります。
ソフトウェア プロバイダー
ソフトウェア シャドウ コピー プロバイダーは、ファイル システムとボリューム マネージャー ソフトウェアの間のソフトウェア レイヤーで I/O 要求をインターセプトして処理します。 これらのプロバイダーは、ユーザー モード DLL コンポーネントおよび少なくとも 1 つのカーネル モード デバイス ドライバー (通常は (必ずしも) ストレージ フィルター ドライバーとして実装されます。 これらのシャドウ コピーを作成する作業は、ソフトウェアで行われます。
ソフトウェア シャドウ コピー プロバイダーは、シャドウ コピーの前にボリュームの状態を正確に再作成するために使用できる一連のファイルにアクセスできるため、ボリュームの "ポイントインタイム" ビューを維持する必要があります。 この例として、システム プロバイダーの書き込み時のコピー手法があります。
ただし、VSS では、ソフトウェア プロバイダーがシャドウ コピーの作成と保守に使用する手法に制限はなく、サード パーティベンダーはソフトウェア プロバイダーを適切に実装できます。
さらに、VSS では、ポイントインタイムの定義、データの同期とフラッシュ、バックアップ アプリケーションの共通インターフェイスの提供、シャドウ コピーの管理など、ソフトウェア シャドウ コピー プロバイダーの多くの機能がサポートされています。
ソフトウェア プロバイダーは、定義上、ハードウェア プロバイダーよりも広い範囲のストレージ プラットフォームに適用でき、ベーシック ディスクまたは論理ボリュームを同様に操作できる必要があります。 この一般化により、ハードウェアにシャドウ コピーを実装することによって使用できる可能性のあるパフォーマンスが犠牲になり、ベンダー固有のボリューム キャプチャやファイル ミラーリング機能は使用されません。
ハードウェア プロバイダー
ハードウェア シャドウ コピー プロバイダーは、ハードウェア ストレージ アダプターまたはコントローラーと連携して、ハードウェア レベルでファイル システムからの I/O 要求をインターセプトします。 シャドウ コピーの作成作業は、オペレーティング システムの外部にあるホスト アダプター、ストレージ アプライアンス、または RAID コントローラーによって実行されます。
これらのプロバイダーは、シャドウ コピー データを公開するハードウェアと通信するユーザー モード DLL コンポーネントとして実装されます。したがって、ハードウェア シャドウ コピー プロバイダーは、他のカーネル モード コンポーネントを呼び出すか作成する必要があります。
ハードウェア プロバイダーは、ディスク全体または論理ユニット (LUN) の VSS シャドウ コピーを公開します。 要求者は引き続きボリュームのシャドウ コピーを処理します。すべてのボリュームからディスクへのマッピングは、VSS によって内部的に処理されます。 ダイナミック ディスク上に存在するボリュームのハードウェア プロバイダーによって作成されたシャドウ コピーには、特定の要件があります。同じシステムにインポートすることはできません。 これらは、トランスポート可能に作成され、2 つ目のシステムにインポートされる必要があります。
ハードウェア シャドウ コピー プロバイダーは、特定の時点を定義し、データの同期を許可し、シャドウ コピーを管理し、バックアップ アプリケーションとの共通インターフェイスを提供する VSS 機能を利用しますが、VSS では、ハードウェア プロバイダーがシャドウ コピーを生成および維持する基になるメカニズムは指定されていません。