プロバイダー

プロバイダーは実行中の ボリュームを管理し、オンデマンドでシャドウ コピーを作成します。

要求者からの要求に応答して、プロバイダーは COM イベントを生成して、今後のシャドウ コピーのアプリケーションに通知し、不要になるまでそのコピーを作成して維持します。

シャドウ コピーが存在する間、プロバイダーは、シャドウ コピーされたボリュームの独立したコピーが実質的に 2 つ存在する環境を作成します。1 つは、実行中のディスクが通常どおりに使用および更新され、もう 1 つはディスクが固定され、バックアップ用に安定したコピーです。

既定のプロバイダーは Windows の一部として提供されますが、他のベンダーは、独自のストレージ ハードウェアとソフトウェア オファリング用に最適化された独自の実装を自由に提供できます。

エンド ユーザーまたはバックアップ/復元アプリケーション開発者の観点からは、すべてのプロバイダーが同じインターフェイスを持ちます (「 プロバイダーの選択」を参照)。

すべてのプロバイダーは、次の操作を実行できる必要があります。

  • ファイル・システムと基になる大容量ストレージ・システムとの間の入出力要求をインターセプトします。
  • シャドウ コピー時にボリュームの状態をキャプチャして取得し、ディスク上のファイルの "ポイントインタイム" ビューを維持し、部分的な 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 では、ハードウェア プロバイダーがシャドウ コピーを生成および維持する基になるメカニズムは指定されていません。