[要求者]
リクエスターとは、VSS API (具体的には IVssBackupComponents インターフェイス) を使用して、1 つ以上のボリュームのシャドウ コピーとシャドウ コピー セットを作成および管理するためにボリューム シャドウ コピー サービスのサービスを要求するアプリケーションです。
リクエスターの最も一般的な例 (およびこのドキュメントで取り上げられた唯一の例) は、シャドウ コピーされたデータをバックアップ操作の安定したソースとして使用する VSS 対応のバックアップ/復元アプリケーションです。
シャドウ コピーの開始に加えて、バックアップ/回復リクエスター アプリケーションはデータ プロデューサー (ライター) と通信して、システム上の情報を収集し、ライターにデータをバックアップ用に準備するよう通知します。
要求者の状態
リクエスターは、バックアップ コンポーネント ドキュメントと呼ばれる XML ベースのメタデータ オブジェクトにその状態情報を保持します。 リクエスター メタデータは必要ですが、リクエスターがファイル システムをバックアップして復元できるようにするためには十分ではありません。 その理由は次のとおりです。
- バックアップ操作中に、バックアップに関連するすべてのコンポーネントのサブセット (バックアップの先祖に対して選択できず、バックアップに明示的に含まれているバックアップ コンポーネントに対して選択可能なバックアップ コンポーネントでは選択できない) のみが、要求者のバックアップ コンポーネント ドキュメントに情報を追加しました。
- バックアップ コンポーネント ドキュメントに追加されたコンポーネントに関する情報は不完全です。ファイルとパスの仕様は含まれません。
- 復元操作中に、 バックアップに暗黙的に含まれる コンポーネントを 復元用に選択 できるため、復元に明示的に含めることができます。 これには、ライターのライター メタデータ ドキュメントの格納されたコピーからの情報を使用して、リクエスターのバックアップ コンポーネント ドキュメントを更新する必要があります。
バックアップ操作または復元操作を完全に指定できるように、VSS API を使用すると、リクエスターは実行中のライターのメタデータ (バックアップ中) にクエリを実行したり、格納されたライター メタデータを (復元中に) 調べたりできます。 さらに、ライターは、バックアップ操作または復元操作の過程で、バックアップ コンポーネント ドキュメントのコンポーネント情報を変更できます。
バックアップと復元にどのコンポーネントが選択されているか、およびコンポーネントの選択に関する規則 (詳細については、「 コンポーネント組織のセットアップ 」および「 選択性と論理パスの操作」を参照) を使用して、リクエスターは、バックアップまたは復元が必要なライターのファイルと、それらのファイルを検索できる場所を決定できます。
バックアップの一部として、復元で使用できるように、リクエスター メタデータとライター メタデータの両方を格納する必要があります。 逆に、復元操作では、ファイルの復元に関する完全な手順を取得するために、古いバックアップ コンポーネントとライター メタデータ ドキュメントを取得する必要があります。
リクエスタープロセス間通信
リクエスターは、リクエスター API のさまざまな呼び出しを通じて COM イベントを生成することで、VSS のバックアップ操作と復元操作を制御します。 これらの呼び出しでは、次の操作を実行できます。
- プロバイダーの要求 (たとえば、 IVssBackupComponents::D oSnapshotSet ) を実行すると、プロバイダーは選択したボリュームのシャドウ コピーを作成します。
- ライターが情報を返すようにトリガーします。たとえば、 IVssBackupComponents::GatherWriterMetadata を使用すると、リクエスターは各ライターのライター メタデータ ドキュメントを取得できます。
- シャドウ コピーおよびバックアップ操作のさまざまなフェーズ ( IVssBackupComponents::P repareForBackup シグナル ライターが I/O フリーズ用に設定する場合など) の準備または処理をライターに要求します。
リクエスターは、ライブまたは格納されたライター メタデータ ドキュメントと、ライターが更新できる IVssComponent インターフェイスを使用して、ライターから情報を受け取ります。
バックアップ中のリクエスターのライフ サイクル
バックアップの要求元のライフ サイクルの概要を次に示します。
- VSS API インターフェイスをインスタンス化して初期化します。
- ライターに連絡し、情報を取得します。
- バックアップするデータを選択します。
- プロバイダーのシャドウ コピーを要求します。
- データをバックアップします。
- インターフェイスとシャドウ コピーを解放します。
復元中のリクエスターのライフ サイクル
復元ライフ サイクルではシャドウ コピーは必要ありませんが、ライターの協力が必要です。
- VSS API インターフェイスをインスタンス化します。
- 保存されているバックアップ コンポーネント ドキュメントを読み込んで、復元操作のリクエスターを初期化します。
- 格納されているライター メタデータとバックアップ コンポーネント ドキュメントを取得します。
- 協力を初期化するには、ライターに問い合わせてください。
- バックアップ コンポーネント ドキュメントに対するライターの更新を確認します。
- データを復元します。