(57)【特許請求の範囲】
【請求項１】
第一通信網に接続され、各々が記憶部を有する複数の記憶装置並びに
前記第一通信網及び該第一通信網の帯域幅と異なる帯域幅を有し、該第一通信網と接続された第二通信網を介して前記複数の記憶装置と通信するバックアップ装置
を備え、
前記複数の記憶装置に含まれる一の記憶装置が有する前記記憶部に記憶されたデータを修復する修復システムにおいて、
前記バックアップ装置は、
前記記憶部に夫々記憶されたデータ及び該データのメタデータを前記複数の記憶装置から受信する受信部と、
該受信部が受信したデータの識別子を生成する生成部と、
該生成部が生成したデータの識別子を、前記受信部が該データを受信した前記複数の記憶装置に夫々送信する識別子送信部と、
被修復データの指定を受け付ける受付部と、
該受付部が受け付けた被修復データに対応する識別子及び前記受信部が受信したデータに係るメタデータが関連付けてある一覧を前記一の記憶装置に送信する一覧送信部と
を有し、
前記複数の記憶装置は、
前記識別子送信部が送信したデータの識別子を受信する識別子受信部と、
該識別子受信部が受信した識別子を前記記憶部に記憶されたデータと対応付けて該記憶部に記憶する識別子記憶部と
を有し、
前記一の記憶装置は、
前記一覧送信部が送信した一覧を受信する一覧受信部と、
該一覧受信部が受信した一覧に基づいた一又は複数の他の記憶装置への問い合わせに対する応答に応じて、被修復データに対応するデータを自身に送信する要求を該他の記憶装置又は前記バックアップ装置に送信する要求送信部と、
該要求送信部が送信した要求に係るデータを前記他の記憶装置又は前記バックアップ装置から受信する要求受信部と、
前記一覧受信部が受信した一覧及び前記識別子記憶部が記憶した識別子に基づいて、前記要求受信部が受信したデータを用いて被修復データを修復する修復部と
を有する
修復システム。
【請求項２】
前記バックアップ装置は、所定のアルゴリズムに基づいて、前記受信部が受信したデータから一意に定まる固有値を算出する算出部を有し、
前記バックアップ装置の前記一覧送信部が送信する一覧には、前記識別子及び前記算出部が算出した固有値が関連付けてあり、
前記複数の記憶装置は、前記バックアップ装置の前記算出部が用いたアルゴリズムと同一のアルゴリズムに基づいて、前記記憶部が記憶するデータから一意に定まる固有値を算出する固有値算出部を有し、
前記一の記憶装置は、
前記一覧受信部が受信した一覧に基づいて、被修復データに対応するデータを保有しているか否かの問い合わせを、前記他の記憶装置に送信する問い合わせ送信部と、
該問い合わせ送信部が問い合わせたデータの保有に関する応答を前記他の記憶装置から受信する応答受信部と
を有し、
前記他の記憶装置は、
前記問い合わせ送信部が送信した問い合わせを受信する問い合わせ受信部と、
前記識別子受信部が受信した識別子又は前記固有値算出部が算出した固有値に基づいて、夫々前記一覧において関連付けてある識別子又は固有値に対応するデータを前記記憶部が記憶しているか否かを判定する判定部と、
前記判定部が前記問い合わせ受信部により受信された問い合わせに関する前記データを記憶していると判定した場合、前記データの保有に関する応答を前記一の記憶装置に送信する応答送信部と
を有し、
前記一の記憶装置の前記要求送信部は、被修復データに対応するデータを、前記応答受信部が受信した前記応答を送信してきた前記他の記憶装置に要求する
請求項１に記載の修復システム。
【請求項３】
前記バックアップ装置の前記一覧送信部が送信する一覧には、前記識別子、前記固有値及び前記受信部がデータを受信した前記複数の記憶装置に夫々対応する識別情報が関連付けてあり、
前記一の記憶装置の前記要求送信部は、前記応答受信部が前記一覧受信部により受信された一覧において関連付けられた識別情報に対応しない前記他の記憶装置から前記応答を受信した場合、被修復データに対応するデータを自身及び前記バックアップ装置に送信する要求を前記識別情報に対応しない前記他の記憶装置に送信し、
前記他の記憶装置は前記要求送信部により送信された要求に係るデータを前記一の記憶装置及び前記バックアップ装置に送信するデータ送信部を有し、
前記バックアップ装置は、
前記データ送信部が送信したデータを受信するデータ受信部と、
該データ受信部が受信したデータ及び前記受信部が受信したデータが同一か否かを判定する同一判定部と、
該同一判定部が判定した判定結果を前記一の記憶装置に送信する判定結果送信部と
を有し、
前記一の記憶装置は前記判定結果送信部が送信した判定結果を受信する判定結果受信部を有し、
前記一の記憶装置の前記要求受信部は、前記他の記憶装置の前記データ送信部が送信したデータを受信し、
前記一の記憶装置の前記修復部は、前記判定結果受信部により受信された判定結果が同一である場合、前記要求受信部が受信したデータを用いて被修復データを修復する
請求項２に記載の修復システム。
【請求項４】
前記バックアップ装置は前記データ受信部が受信したデータ及び前記受信部が受信したデータをバイナリデータに夫々変換する変換部を有し、
前記バックアップ装置の前記算出部は、前記データ受信部が受信したデータ及び前記受信部が受信したデータから一意に定まる固有値を夫々算出し、
前記バックアップ装置の前記同一判定部は、前記算出部が算出した各固有値が一致した場合又は前記変換部が変換した各バイナリデータが一致した場合、同一と判定する
請求項３に記載の修復システム。
【請求項５】
前記一の記憶装置の前記要求送信部は、前記応答受信部が前記一覧受信部により受信された一覧において関連付けられた識別情報に対応する前記他の記憶装置から前記応答を受信した場合、被修復データに対応するデータを自身に送信する要求を前記識別情報に対応する前記他の記憶装置に送信し、
前記識別情報に対応する前記他の記憶装置の前記データ送信部は、前記要求送信部により送信された要求に係るデータを前記一の記憶装置に送信し、
前記一の記憶装置の前記要求受信部は、前記データ送信部が送信したデータを受信し、
前記一の記憶装置の前記固有値算出部は、前記要求受信部が受信したデータから固有値を算出し、
前記一の記憶装置の前記修復部は、前記一覧受信部が受信した一覧において関連付けられた固有値及び前記固有値算出部が算出した固有値が同一である場合、前記要求受信部が受信したデータを用いて被修復データを修復する
請求項３又は請求項４に記載の修復システム。
【請求項６】
前記一の記憶装置の前記要求送信部は、前記応答受信部が前記応答を受信しない場合、被修復データに対応するデータを自身に送信する要求を前記バックアップ装置に送信し、
前記バックアップ装置は前記要求送信部が送信した要求に係るデータを前記一の記憶装置に送信する通信網データ送信部を有し、
前記一の記憶装置の前記要求受信部は、前記通信網データ送信部が送信したデータを受信し、
前記一の記憶装置の前記修復部は、前記要求受信部が受信したデータを用いて被修復データを修復する
請求項３から請求項５までのいずれか一項に記載の修復システム。
【請求項７】
前記バックアップ装置は第三通信網に接続されており、
前記複数の記憶装置及び前記バックアップ装置は、前記第一通信網と、前記第三通信網と、該第一及び第三通信網を接続する通信網接続装置又は該第一及び第三通信網の帯域幅と異なる帯域幅を有し、第一及び第三通信網と接続された第二通信網とを介して通信する
請求項１から請求項６までのいずれか一項に記載の修復システム。
【請求項８】
第一通信網に接続され、各々が記憶部を有する複数の記憶装置が、該第一通信網及び該第一通信網の帯域幅と異なる帯域幅を有し、該第一通信網と接続された第二通信網を介して、バックアップ装置と通信することにより、前記複数の記憶装置に含まれる一の記憶装置が有する前記記憶部に記憶されたデータを修復する修復方法において、
前記記憶部に夫々記憶されたデータ及び該データのメタデータを前記複数の記憶装置から前記バックアップ装置へ送信し、
送信したデータの識別子を前記バックアップ装置により生成し、
生成したデータの識別子を前記バックアップ装置から前記複数の記憶装置のうち少なくとも前記一の記憶装置へ送信し、
前記複数の記憶装置が前記識別子を受信した場合、該識別子を前記記憶部に記憶されたデータと対応付けて該記憶部に該複数の記憶装置により夫々記憶し、
被修復データの指定を前記バックアップ装置により受け付け、
受け付けた被修復データに対応する識別子及び受信したデータに係るメタデータが関連付けられた一覧を前記バックアップ装置から前記一の記憶装置へ送信し、
前記一覧に基づいた一の記憶装置と、一又は複数の他の記憶装置との間の応答に応じて、被修復データに対応するデータを前記一の記憶装置へ送信する要求を、該一の記憶装置から前記他の記憶装置又は前記バックアップ装置へ送信し、
前記一の記憶装置が前記要求に係るデータを前記他の記憶装置又は前記バックアップ装置から受信した場合、受信した一覧及び記憶した識別子に基づいて、受信したデータを用いて前記記憶部に記憶された被修復データを前記一の記憶装置により修復する
修復方法。
【請求項９】
第一通信網に接続され、記憶部を有するコンピュータに、該第一通信網及び該第一通信網の帯域幅と異なる帯域幅を有し、該第一通信網と接続された第二通信網を介してバックアップ装置と通信することにより、前記記憶部に記憶されたデータを修復する処理を実行させるプログラムにおいて、
前記記憶部に記憶されたデータ及び該データのメタデータを前記バックアップ装置に送信し、
送信したデータの識別子を受信し、
受信した識別子を前記記憶部に記憶されたデータと対応付けて該記憶部に記憶し、
被修復データに対応する識別子及び送信したデータに係るメタデータが関連付けられた一覧を前記バックアップ装置から受信し、
受信した一覧に基づいて、被修復データに対応するデータを保有しているか否かの問い合わせを前記第一通信網と接続された一又は複数の他のコンピュータに送信し、
送信した問い合わせに対する応答を前記他のコンピュータから受信し、
受信した応答に応じて、被修復データに対応するデータを前記コンピュータに送信する要求を前記他のコンピュータ又は前記バックアップ装置に送信し、
送信した要求に係るデータを前記他のコンピュータ又は前記バックアップ装置から受信し、
受信した一覧及び前記記憶部に記憶した識別子に基づいて、受信したデータを用いて前記記憶部に記憶された被修復データを修復する
処理をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを修復する修復システム、修復方法及びプログラムに関する。
【背景技術】
【０００２】
コンピュータの記憶装置に記憶されたデータを、バックアップ装置に記憶したバックアップデータを用いて修復する技術がある（例えば、特許文献１、２参照）。バックアップ装置は、万が一の天災、テロ等を考慮し、コンピュータから離れた遠隔地に設置される場合が多い。コンピュータ及びバックアップ装置は、夫々別のＬＡＮ（Local Area Network）に接続され、コンピュータ及びバックアップ装置が夫々接続されたＬＡＮ同士は、他のネットワークにより接続される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−８６８５４号公報
【特許文献２】特開２００８−１７１２４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、コンピュータ及びバックアップ装置が夫々接続されたＬＡＮを相互に接続する他のネットワークの帯域幅が狭い場合、バックデータの転送に多大な時間を要し、データの修復が遅れるという問題がある。
【０００５】
１つの側面では、本発明は、データを迅速に修復することができる修復システム、修復方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本願による開示の一観点は、第一通信網に接続され、各々が記憶部を有する複数の記憶装置並びに前記第一通信網及び該第一通信網の帯域幅と異なる帯域幅を有し、該第一通信網と接続された第二通信網を介して前記複数の記憶装置と通信するバックアップ装置を備え、前記複数の記憶装置に含まれる一の記憶装置が有する前記記憶部に記憶されたデータを修復する修復システムにおいて、前記バックアップ装置は、前記記憶部に夫々記憶されたデータ及び該データのメタデータを前記複数の記憶装置から受信する受信部と、該受信部が受信したデータの識別子を生成する生成部と、該生成部が生成したデータの識別子を、前記受信部が該データを受信した前記複数の記憶装置に夫々送信する識別子送信部と、被修復データの指定を受け付ける受付部と、該受付部が受け付けた被修復データに対応する識別子及び前記受信部が受信したデータに係るメタデータが関連付けてある一覧を前記一の記憶装置に送信する一覧送信部とを有し、前記複数の記憶装置は、前記識別子送信部が送信したデータの識別子を受信する識別子受信部と、該識別子受信部が受信した識別子を前記記憶部に記憶されたデータと対応付けて該記憶部に記憶する識別子記憶部とを有し、前記一の記憶装置は、前記一覧送信部が送信した一覧を受信する一覧受信部と、該一覧受信部が受信した一覧に基づいた一又は複数の他の記憶装置への問い合わせに対する応答に応じて、被修復データに対応するデータを自身に送信する要求を該他の記憶装置又は前記バックアップ装置に送信する要求送信部と、該要求送信部が送信した要求に係るデータを前記他の記憶装置又は前記バックアップ装置から受信する要求受信部と、前記一覧受信部が受信した一覧及び前記識別子記憶部が記憶した識別子に基づいて、前記要求受信部が受信したデータを用いて被修復データを修復する修復部とを有する。
【発明の効果】
【０００７】
１実施形態によれば、データを迅速に修復することができる。
【図面の簡単な説明】
【０００８】
【図１】修復システムのハードウェア構成例の概要を示すブロック図である。
【図２】コンピュータのハードウェア構成例を示すブロック図である。
【図３】バックアップサーバのハードウェア構成例を示すブロック図である。
【図４】エージェント保有データ一覧テーブルのレコードレイアウトの一例を示す説明図である。
【図５】サーバ保有データ一覧テーブルのレコードレイアウトの一例を示す説明図である。
【図６】データパステーブルのレコードレイアウトの一例を示す説明図である。
【図７】バックアップイメージ構成テーブルのレコードレイアウトの一例を示す説明図である。
【図８】修復イメージ構成テーブルのレコードレイアウトの一例を示す説明図である。
【図９】データ管理処理の手順の一例を示すフローチャートである。
【図１０】バックアップ処理の手順の一例を示すフローチャートである。
【図１１】バックアップ処理の手順の一例を示すフローチャートである。
【図１２】バックアップ処理の手順の一例を示すフローチャートである。
【図１３】重複データマージ処理の手順の一例を示すフローチャートである。
【図１４】重複データマージ処理の手順の一例を示すフローチャートである。
【図１５】データ同期処理の手順の一例を示すフローチャートである。
【図１６】修復処理の手順の一例を示すフローチャートである。
【図１７】修復処理の手順の一例を示すフローチャートである。
【図１８】修復処理の手順の一例を示すフローチャートである。
【図１９】修復処理の手順の一例を示すフローチャートである。
【図２０】第一の処理の手順の一例を示すフローチャートである。
【図２１】第一の処理の手順の一例を示すフローチャートである。
【図２２】第二の処理の手順の一例を示すフローチャートである。
【図２３】第二の処理の手順の一例を示すフローチャートである。
【図２４】第二の処理の手順の一例を示すフローチャートである。
【図２５】第三の処理の手順の一例を示すフローチャートである。
【発明を実施するための形態】
【０００９】
本実施の形態に係る修復システムをその図面に基づいて説明する。
図１は、修復システムのハードウェア構成例の概要を示すブロック図である。修復システムは、コンピュータ（記憶装置）１及びバックアップサーバ（バックアップ装置）２を含む。
【００１０】
コンピュータ１は、バックアップ対象のバックアップクライアントであり、データの修復（リストア）が必要になった場合、リストアターゲットになる情報処理装置である。コンピュータ１は、汎用コンピュータ、ワークステーション、デスクトップ型ＰＣ（パーソナルコンピュータ）及びノート型ＰＣを含む。また、コンピュータ１は、携帯電話機、スマートフォン、ＰＨＳ（Personal Handyphone System）端末機、ＰＤＡ（PersonalDigital Assistant）、タブレットＰＣ及びゲーム装置を含む。コンピュータ１は、後述するエージェントプログラムであるプログラム１Ｐを実行することができる全ての情報処理装置を含む。
【００１１】
以下では、コンピュータ１の例として、デスクトップ型ＰＣを挙げて説明する。コンピュータ１は、複数台である。複数のコンピュータ１は、同一セグメントのローカルエリアネットワーク（第一通信網）１Ｎにより相互に接続されている。ローカルエリアネットワーク１Ｎは、有線又は無線により構築されている。
【００１２】
バックアップサーバ２は、バックアップ処理全体の制御を行う管理サーバとして機能する。また、リストアターゲットのコンピュータ１において、データの修復が必要になった場合、修復処理はバックアップサーバ２から実行される。バックアップサーバ２は、汎用コンピュータ、ワークステーション、ＰＣ等を含む。以下では、バックアップサーバ２の例として、ワークステーションを挙げて説明する。バックアップサーバ２は、例えば１台であり、ローカルエリアネットワーク（第三通信網）２Ｎに接続されている。ローカルエリアネットワーク２Ｎは、有線又は無線により構築されている。
【００１３】
ローカルエリアネットワーク１Ｎとローカルエリアネットワーク２Ｎとは、ネットワーク（第二通信網）３Ｎで接続されている。ネットワーク３Ｎは、例えばＷＡＮ（Wide Area Network）、インターネット、電話通信回線網、衛星通信回線網等である。なお、ローカルエリアネットワーク１Ｎとローカルエリアネットワーク２Ｎとは、ＬＡＮスイッチ（通信網接続装置）で接続されてもよい。
ネットワーク３Ｎは、多くの通信機器によって利用される。そのため、ネットワーク３Ｎの帯域幅（通信路容量）又は通信速度は、ローカルエリアネットワーク１Ｎ、２Ｎの帯域幅（通信路容量）又は通信速度より小さい場合がある。
【００１４】
バックアップ対象のコンピュータ１は、自身の記憶装置に記憶されたデータの破壊、消失、改変等に備え、ネットワーク３Ｎを介して、バックアップデータをバックアップサーバ２に転送する。バックアップサーバ２は、ネットワーク３Ｎを介して、バックアップ対象のコンピュータ１からバックアップデータを受信し、受信したバックアップデータを自身に接続された記憶装置に記憶する。
なお、コンピュータ１及びバックアップサーバ２は、地理的に離れた場所に設置されていてもよいし、地理的に近接した場所に設定されていてもよい。
【００１５】
リストアターゲットのコンピュータ１は、自身の記憶装置に記憶されたデータが破壊、消失等を被った場合、バックアップサーバ２からバックアップデータを取得し、データの修復を実行する。
ところで、ローカルエリアネットワーク１Ｎで接続された他のコンピュータ１が、リストアターゲットのコンピュータ１におけるデータの修復に必要なバックアップデータと同一のデータを保有している場合がある。同一の当該データは、例えばＯＳ（Operating System）のシステムファイル、同報メールの添付ファイル、プログラム１Ｐ等である。かかる場合、リストアターゲットのコンピュータ１は、他のコンピュータ１から同一の当該データを取得し、取得した当該データを用いて破損等を被ったデータを修復する。これにより、修復システムは通信速度の遅いネットワーク３Ｎを使用しないため、迅速な修復処理が可能となる。
【００１６】
各コンピュータ１の記憶装置には、上記のバックアップ処理及び修復処理を実行するプログラム１Ｐがインストールされている。プログラム１Ｐは、コンピュータ１に常駐する常駐プログラムである。
また、バックアップサーバ２の記憶装置には、上記のバックアップ処理及び修復処理を実行するプログラム２Ｐがインストールされている。プログラム２Ｐは、バックアップサーバ２に常駐する常駐プログラムである。
【００１７】
図２は、コンピュータ１のハードウェア構成例を示すブロック図である。
コンピュータ１は、制御部（生成部、識別子記憶部、固有値算出部、判定部、書き換え部、修復部）１１、ＲＯＭ（Read Only Memory）１２、ＲＡＭ（Random Access Memory）１３を含む。
【００１８】
制御部１１は、ＣＰＵ、ＭＰＵ等のプロセッサであり、コンピュータ１の各構成部を制御する。制御部１１は、ハードディスク１４に記憶されたプログラム１ＰをＲＡＭ１３に読み出し、読み出したプログラム１Ｐを実行する。
【００１９】
ＲＯＭ１２は、例えば不揮発性の半導体メモリ又は半導体メモリ以外の読み出し専用記憶媒体である。ＲＯＭ１２は、端末装置１の起動時に制御部１１が実行するＢＩＯＳ（Basic Input/Output System）、ファームウェア等を記憶している。
ＲＡＭ１３は、例えばＳＲＡＭ（Static RAM）又はＤＲＡＭ（Dynamic RAM）であり、制御部１１が実行する処理の過程で必要な作業変数、データ等を一時的に記憶する。なお、ＲＡＭ１３は主記憶装置の一例であり、ＲＡＭ１３の代わりにフラッシュメモリ、メモリカード等が用いられてもよい。
【００２０】
コンピュータ１は、ハードディスク（記憶部）１４、ディスクドライブ１５、表示部１６及び操作部１７を含む。
ハードディスク１４は、バックアップサーバ２に保存されるバックアップデータに対応するオリジナルデータを記憶している。以下、ハードディスク１４に記憶されているオリジナルデータを元データ１Ｄと呼ぶ。
【００２１】
ハードディスク１４は、エージェント保有データ一覧テーブル１Ｔ及び修復イメージ構成テーブル２Ｔを記憶している。エージェント保有データ一覧テーブル１Ｔは、ハードディスク１４に記憶されている元データ１Ｄの一覧情報を格納するテーブルである。コンピュータ１は、ハードディスク１４が記憶する元データ１Ｄのメタデータをエージェント保有データ一覧テーブル１Ｔに登録する。エージェント保有データ一覧テーブル１Ｔにより、コンピュータ１は、ハードディスク１４に保有している元データ１Ｄを管理する。
【００２２】
なお、図２には図示されていないが、ＯＳのシステムファイル、同報メールの添付ファイル等は元データ１Ｄに含まれる。また、プログラム１Ｐ、エージェント保有データ一覧テーブル１Ｔ及び修復イメージ構成テーブル２Ｔも、元データ１Ｄに含まれる。
【００２３】
修復イメージ構成テーブル２Ｔは、リストアターゲットのコンピュータ１が修復処理に使用するバックアップデータの一覧情報を格納するテーブルである。修復イメージ構成テーブル２のレコード（一覧）は、バックアップサーバ２により作成され、バックアップサーバ２からリストアターゲットのコンピュータ１に転送される。
【００２４】
ハードディスク１４は、制御部１１が実行するプログラム１Ｐを記憶している。プログラム１Ｐは、コンピュータ１が他のコンピュータ１及びバックアップサーバ２と通信し、自らが判断能力を持って自律的に振る舞うためのエージェントプログラムである。プログラム１Ｐには、エージェント保有データ一覧テーブル１Ｔを管理する処理、バックアップ処理及び修復処理に関する手順が記述されている。
【００２５】
なお、ハードディスク１４は、コンピュータ１の内部に取り付けられるものであってもよいし、コンピュータ１の外部に置かれるものであってもよい。ハードディスク１４は、補助記憶装置の一例であり、大容量の情報の記憶が可能なフラッシュメモリ又はＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disk）、ＢＤ（Blu-ray Disc、登録商標）等の光ディスク１ａで代替されてもよい。
【００２６】
ディスクドライブ１５は、外部の記憶媒体であるＣＤ、ＤＶＤ、ＢＤ等の光ディスク１ａから情報を読み出し、光ディスク１ａに情報を記憶する。制御部１１は、操作部１７からディスクドライブ１５に対する光ディスク１ａの排出命令を受け付けた場合、ディスクドライブ１５の図示しないトレイを排出する。
【００２７】
表示部１６は、例えば液晶ディスプレイ、有機ＥＬ（Electro-Luminescence）ディスプレイ、ＣＲＴ（Cathode RayTube）ディスプレイ等の画面を有し、制御部１１からの指示に従って、プログラム１Ｐに係る各種情報を表示する。
【００２８】
操作部１７は、ユーザが各種の入力を行うキーボード、マウス、電源スイッチ、ディスクドライブ１５から光ディスク１ａを排出するための操作ボタン等の入力デバイスを含む。操作部１７は、ユーザによる操作に基づいて入力信号を生成する。生成された入力信号は、バス１ｂを介して制御部１１に送信される。
【００２９】
コンピュータ１は、通信部（識別子受信部、一覧受信部、要求送信部、要求受信部、問い合わせ送信部、応答受信部、問い合わせ受信部、応答送信部、データ送信部、判定結果受信部、重複識別子受信部、送信部）１８を含む。コンピュータ１のハードウェア各部は、バス１ｂを介して相互に接続されている。
通信部１８は、有線又は無線通信のモデム、ＬＡＮカード、ＵＳＢ端子等である。通信部１８は、ローカルエリアネットワーク１Ｎを介して他のコンピュータ１と接続されている。通信部１８は、ローカルエリアネットワーク１Ｎ、２Ｎと、ネットワーク３Ｎ又はＬＡＮスイッチ４とを介してバックアップサーバ２と接続されている。
図２は、ローカルエリアネットワーク１ＮがＬＡＮスイッチ４と接続されている様子を例示している。
【００３０】
図３は、バックアップサーバ２のハードウェア構成例を示すブロック図である。
バックアップサーバ２は、制御部（算出部、同一判定部、変換部、抽出部、削除部）２１、ＲＯＭ２２、ＲＡＭ２３、ハードディスク（バックアップデータ記憶部）２４、ディスクドライブ２５及び表示部２６を含む。
【００３１】
制御部２１は、ＣＰＵ等のプロセッサであり、バックアップサーバ２の各構成部を制御する。制御部２１は、ハードディスク２４に記憶されたプログラム２ＰをＲＡＭ２３に読み出し、読み出したプログラム２Ｐを実行する。
【００３２】
ＲＯＭ２２は、例えば不揮発性の半導体メモリ又は半導体メモリ以外の読み出し専用記憶媒体である。ＲＯＭ２２は、バックアップサーバ２の起動時に制御部２１が実行するＢＩＯＳ、ファームウェア等を記憶している。
ＲＡＭ２３は、例えばＳＲＡＭ又はＤＲＡＭであり、制御部２１が実行する処理の過程で必要な作業変数、データ等を一時的に記憶する。また、ＲＡＭ２３は、例えば制御部２１がビューを実行した結果を一時的に記憶してもよい。なお、ＲＡＭ２３は主記憶装置の一例であり、ＲＡＭ２３の代わりにフラッシュメモリ、メモリカード等が用いられてもよい。
【００３３】
ハードディスク２４は、コンピュータ１から送信されたバックアップデータ２Ｄを記憶する。バックアップデータ２Ｄは、元データ１Ｄに対応する実データである。また、ハードディスク２４は、制御部２１が実行するプログラム２Ｐ及び各種テーブルを記憶している。
【００３４】
各種テーブルは、サーバ保有データ一覧テーブル３Ｔ、データパステーブル４Ｔ、バックアップイメージ構成テーブル５Ｔ及び修復イメージ構成テーブル２Ｔを含む。
サーバ保有データ一覧テーブル３Ｔは、バックアップサーバ２がハードディスク２４に保有するバックアップデータ２Ｄの一覧情報を格納するテーブルである。バックアップサーバ２は、異なるバックアップ対象のコンピュータ１から同一のバックアップデータ２Ｄが複数転送されてきた場合、後述する重複データマージ処理により、サーバ保有データ一覧テーブル３Ｔのレコードを１件にマージする。
【００３５】
データパステーブル４Ｔは、ハードディスク２４におけるバックアップデータ２Ｄの位置を記憶するテーブルである。バックアップイメージ構成テーブル５Ｔは、バックアップ処理によりバックアップ対象のコンピュータ１からバックアップサーバ２に転送されてきたバックアップデータ２Ｄのメタデータを格納するテーブルである。異なるバックアップ対象のコンピュータ１から同一のバックアップデータ２Ｄが複数転送されてきた場合でも、バックアップイメージ構成テーブル５Ｔには、異なるバックアップ情報としてレコードが保持される。
【００３６】
修復イメージ構成テーブル２Ｔは、リストアターゲットのコンピュータ１以外の他のコンピュータ１のうち、どのコンピュータ１がバックアップデータ２Ｄに対応する元データ１Ｄを保有しているかを示した修復用の元データ１Ｄの一覧情報である。バックアップサーバ２は、修復イメージ構成テーブル２Ｔのレコードを作成し、作成したレコードをリストアターゲットのコンピュータ１に転送する。リストアターゲットのコンピュータ１は、バックアップサーバ２から修復イメージ構成テーブル２Ｔのレコードを取得し、取得したレコードに基づいて、修復処理を実行する。
【００３７】
なお、ハードディスク２４は、バックアップサーバ２の内部に取り付けられるものであっても、バックアップサーバ２の外部に置かれるものであってもよい。ハードディスク２４は、補助記憶装置の一例であり、大容量の情報の記憶が可能なフラッシュメモリ又はＣＤ、ＤＶＤ、ＢＤ等の光ディスク１ａで代替されてもよい。
バックアップデータ２Ｄを格納する記憶媒体はテープでもよい。かかる場合、バックアップデータ２Ｄを格納する記憶装置はテープドライブ装置になる。更には、バックアップデータ２Ｄを格納する記憶媒体は光ディスク１ａでもよい。かかる場合、バックアップデータ２Ｄを格納する記憶装置はディスクドライブ２５になる。
また、バックアップデータ２Ｄは別のサーバと接続された記憶装置に格納してもよい。かかる場合、ハードディスク２４には管理用の上記各種テーブルが記憶されるが、バックアップデータ２Ｄは別のサーバの内外に置かれた記憶装置に記憶される。
【００３８】
ディスクドライブ２５は、外部の記憶媒体であるＣＤ、ＤＶＤ、ＢＤ等の光ディスク１ａから情報を読み出し、光ディスク１ａに情報を記憶する。制御部２１は、操作部２７からディスクドライブ２５に対する光ディスク１ａの排出命令を受け付けた場合、ディスクドライブ２５の図示しないトレイを排出する。
【００３９】
表示部２６は、例えば液晶ディスプレイ、有機ＥＬディスプレイ、ＣＲＴディスプレイ等の画面を有し、制御部２１からの指示に従って、プログラム２Ｐに係る各種情報を表示する。
【００４０】
コンピュータ１は、操作部（受付部）２７及び通信部（受信部、識別子送信部、一覧送信部、データ受信部、判定結果送信部、通信網データ送信部、重複識別子送信部）２８を含む。バックアップサーバ２のハードウェア各部は、バス２ｂを介して相互に接続されている。
操作部２７は、ユーザが各種の入力を行うキーボード、マウス、電源スイッチ、ディスクドライブ２５から光ディスク１ａを排出するための操作ボタン等の入力デバイスを含む。操作部２７は、ユーザによる操作に基づいて入力信号を生成する。生成された入力信号は、バス２ｂを介して制御部２１に送信される。
【００４１】
通信部２８は、有線又は無線通信のモデム、ＬＡＮカード、ＵＳＢ端子等であり、ローカルエリアネットワーク２Ｎと接続されている。通信部２８は、ローカルエリアネットワーク１Ｎ、２Ｎと、ネットワーク３Ｎ又はＬＡＮスイッチ４とを介して複数のコンピュータ１と接続されている。
図３は、ローカルエリアネットワーク２Ｎがネットワーク３Ｎと接続されている様子を例示している。
【００４２】
次に、各種テーブルを詳細に説明する。
図４は、エージェント保有データ一覧テーブル１Ｔのレコードレイアウトの一例を示す説明図である。エージェント保有データ一覧テーブル１Ｔは、コンピュータ１がハードディスク１４に保有する元データ１Ｄの一覧情報を記憶するテーブルである。
エージェント保有データ一覧テーブルは、データＩＤ、ファイル名、パス、作成日時、サイズ及びハッシュ値の各列を含む。データＩＤは、元データ１Ｄ及び元データ１Ｄに対応するバックアップデータ２Ｄを識別する記号である。データＩＤは、バックアップサーバ２により発番される。データＩＤは、コンピュータ１がバックアップサーバ２からバックアップ時にデータＩＤを取得した場合、データＩＤ列に書き込まれる。元データ１Ｄが作成されてからバックアップ処理が実行されるまでの間、データＩＤ列にはｎｕｌｌが格納される。
【００４３】
ファイル名は、元データ１Ｄの名称である。パスは、コンピュータ１のハードディスク１４における元データ１Ｄのパスである。図３の例では、パスは元データ１Ｄのファイル名を含まない。しかし、パスは、元データ１Ｄのファイル名を含んでもよい。作成日時は、元データ１Ｄが作成された日時である。作成日時のフォーマット形式は、例えばｙｙｙｙ／ｍｍ／ｄｄ  ｈｈ：ｍｍである。サイズは、元データ１Ｄの容量であり、単位は例えばＫＢ（キロバイト）である。ハッシュ値は、元データ１Ｄのバイナリ表現に対してハッシュ関数を適用し、得られる固有値である。
【００４４】
なお、エージェント保有データ一覧テーブル１Ｔには、他の列が含まれてもよい。例えば、エージェント保有データ一覧テーブル１Ｔは、元データ１Ｄを所定の暗号化鍵により暗号化した暗号化データ、元データ１Ｄを所定の圧縮アルゴリズムに基づいて圧縮した圧縮データ等を格納する列を含んでもよい。暗号化データ及び圧縮データは、元データ１Ｄのデータであるため、メタデータである。
【００４５】
図５は、サーバ保有データ一覧テーブル３Ｔのレコードレイアウトの一例を示す説明図である。サーバ保有データ一覧テーブル３Ｔは、バックアップサーバ２が保有するバックアップデータ２Ｄの一覧情報を記憶するテーブルである。
サーバ保有データ一覧テーブル３Ｔは、データＩＤ、サイズ、ハッシュ値、データ保有マシン及びマージ済フラグの各列を含む。データＩＤは、元データ１Ｄ及び元データ１Ｄに対応するバックアップデータ２Ｄを識別する記号である。サイズは、バックアップデータ１Ｄの容量であり、単位は例えばＫＢ（キロバイト）である。ハッシュ値は、バックアップデータ１Ｄのバイナリ表現に対してハッシュ関数を適用し、得られる固有値である。データ保有マシンは、バックアップデータ２Ｄに対応する元データ１Ｄを保有しているコンピュータ１の識別情報である。データ保有マシンは、例えばコンピュータ１が備える通信部１８のＭＡＣ（Media Access Control）アドレスである。
【００４６】
マージ済フラグは、バックアップデータ２Ｄがバックアップサーバ２により重複データマージ処理を施されたか否かを示すフラグである。重複データマージ処理は、複数の異なるコンピュータ１から転送されたバックアップデータ２Ｄがハードディスク２４に重複して記憶されている場合、１つのバックアップデータ２Ｄを残して、他のバックアップデータ２Ｄを削除する処理である。マージ済フラグは、バックアップデータ２Ｄが重複データマージ処理を施されている場合、例えばＹＥＳである。マージ済フラグは、バックアップデータ２Ｄが重複データマージ処理を施されていない場合、例えばＮＯである。バックアップサーバ２は、重複データマージ処理を実行した場合、マージ済みフラグをＮＯからＹＥＳに更新する。また、バックアップサーバ２は、重複データマージ処理を実行した場合、サーバ保有データ一覧テーブル３Ｔのデータ保有マシンをマージする。図５のデータＩＤ＝１２４３０のレコードは、重複データマージ処理が実行された場合のレコードを例示している。
【００４７】
なお、サーバ保有データ一覧テーブル３Ｔには、他の列が含まれてもよい。例えば、サーバ保有データ一覧テーブル３Ｔは、コンピュータ１が元データ１Ｄを暗号化する場合の暗号化鍵と同一の暗号化鍵によりバックアップデータ２Ｄを暗号化した暗号化データを格納する列を含んでもよい。あるいは、例えば、サーバ保有データ一覧テーブル３Ｔは、コンピュータ１Ｄが元データ１Ｄを圧縮する場合の圧縮アルゴリズムと同一の圧縮アルゴリズムによりバックアップデータ２Ｄを圧縮した圧縮データを格納する列を含んでもよい。
【００４８】
図６は、データパステーブル４Ｔのレコードレイアウトの一例を示す説明図である。データパステーブル４Ｔは、バックアップデータ２Ｄの識別情報と、ハードディスク２４に記憶されたバックアップデータ２Ｄのパスとを関連付けて記憶するテーブルである。
データパステーブル４Ｔは、データＩＤ及びパスの各列を含む。データＩＤは、サーバ保有データ一覧テーブル３ＴのデータＩＤと同じである。パスは、バックアップサーバ２のハードディスク２４におけるバックアップデータ２Ｄのパスである。
図６の例では、パスはバックアップデータ２Ｄのファイル名を含む。しかし、パスは、バックアップデータ２Ｄのファイル名を含まなくてもよい。パスがバックアップデータ２Ｄのファイル名を含まない場合、データパステーブル４Ｔにファイル名の列を追加する。
【００４９】
図７は、バックアップイメージ構成テーブル５Ｔのレコードレイアウトの一例を示す説明図である。バックアップイメージ構成テーブル５Ｔは、バックアップ処理毎に作成されるバックアップデータ２Ｄのカタログ情報に類似する。
バックアップイメージ構成テーブル５Ｔは、イメージＩＤ、データＩＤ、ファイル名、パス及び作成日時の各列を含む。イメージＩＤは、１台のコンピュータ１に対して１回のバックアップ処理が実行された場合に発番される識別記号である。バックアップサーバ２は、イメージＩＤによりバックアップデータ２Ｄの世代管理も実行する。ファイル名は、バックアップデータ２Ｄのファイル名である。パスは、コンピュータ１のハードディスク１４における元データ１Ｄのパスである。図７の例では、パスは元データ１Ｄのファイル名を含まない。しかし、パスは、元データ１Ｄのファイル名を含んでもよい。作成日時は、元データ１Ｄが作成された日時である。作成日時のフォーマット形式は、例えばｙｙｙｙ／ｍｍ／ｄｄ  ｈｈ：ｍｍである。
なお、バックアップイメージ構成テーブル５Ｔは、図７に示した列の他にバックアップデータ２Ｄに関する他のメタデータを記憶する列を更に含んでもよい。他のメタデータの列は、例えば更新日時、更新履歴、アクセス日時、アクセス制限、元データ１Ｄの作成者、元データ１Ｄを作成したアプリケーション等である。
【００５０】
図８は、修復イメージ構成テーブル２Ｔのレコードレイアウトの一例を示す説明図である。修復イメージ構成テーブル２Ｔは、リストアターゲットのコンピュータ１が修復処理で使用する修復用の元データ１Ｄを、どの他のコンピュータ１が保有しているかを示すテーブルである。修復イメージ構成テーブル２Ｔのレコードは、サーバ保有データ一覧テーブル３Ｔのレコードとバックアップイメージ構成テーブル５Ｔのレコードとから、バックアップサーバ２により生成される。修復イメージ構成テーブル２Ｔは、データＩＤ列、メタデータの列及び修復用の元データ１Ｄを保有する他のコンピュータ１を特定する情報の列を含む。リストアターゲットのコンピュータ１は、バックアップサーバ２から修復イメージ構成テーブル２Ｔのレコードを取得する。
【００５１】
修復イメージ構成テーブル２Ｔは、データＩＤ、ファイル名、パス、作成日時、サイズ、ハッシュ値及びデータ保有マシンの各列を含む。データＩＤは、サーバ保有データ一覧テーブルのデータＩＤと同じである。ファイル名は、バックアップイメージ構成テーブル５Ｔのファイル名と同じである。パスは、バックアップイメージ構成テーブル５Ｔのパスと同じである。作成日時は、バックアップイメージ構成テーブル５Ｔの作成日時と同じである。サイズは、サーバ保有データ一覧テーブル３Ｔのサイズと同じである。ハッシュ値は、サーバ保有データ一覧テーブル３Ｔのハッシュ値と同じである。
【００５２】
データ保有マシンは、サーバ保有データ一覧テーブル３Ｔのデータ保有マシンと同じである。リストアターゲットのコンピュータ１がバックアップサーバ２から修復イメージ構成テーブル２Ｔのレコードを取得した場合、自身が備える通信部１８のＭＡＣアドレスはデータ保有マシンに含まれない。例えば、図８のデータＩＤ＝２３１のレコードにおいて、データ保有マシンに、２つのＭＡＣアドレスが書き込まれている。このことから、リストアターゲットのコンピュータ１は、これら２つのＭＡＣアドレスに夫々対応するコンピュータ１が修復対象データであるａａａ．ｔｘｔを保有していることを認識する。
【００５３】
例えば、図８のデータＩＤ＝１４のレコードにおいて、データ保有マシンに「なし」が書き込まれている。「なし」は、ローカルエリアネットワーク１に接続されたコンピュータ１のうち、ｂｂｂ．ｄｏｃを保有しているマシンはバックアップサーバ２だけであるとバックアップサーバ２が認識していることを示している。少なくとも、バックアップサーバ２はｂｂｂ．ｄｏｃを保有している。
【００５４】
ただし、リストアターゲットのコンピュータ１以外の他のコンピュータ１がデータ保有マシンに「なし」と書き込まれたレコードに対応する元データ１Ｄを保有している場合がある。その場合とは、例えばバックアップサーバ２が修復イメージ構成テーブル２Ｔのレコードを作成した時点と、他のコンピュータ１がバックアップ処理を実行した時点との間にタイムラグが生じた場合である。バックアップ処理は、バックアップの運用ポリシー次第で、複数のバックアップ対象のコンピュータ１に対して同時に実施される場合もあれば、夫々異なる日時に実施される場合もある。
【００５５】
例えば、全てのコンピュータ１がｂｂｂ．ｄｏｃを保有しているものとする。ある日時に複数のコンピュータ１のうち、ある１台のコンピュータ１だけがバックアップ処理を実施し、他のコンピュータ１はバックアップ処理を実施していない場合、バックアップサーバ２はその１台のコンピュータ１だけがｂｂｂ．ｄｏｃを保有していると認識する。その時点で、バックアップ処理を済ませたこの１台のコンピュータ１がリストアターゲットになった場合、バックアップサーバ２は、ｂｂｂ．ｄｏｃについてデータ保有マシンに「なし」を書き込んだ修復イメージ構成テーブル２Ｔのレコードを作成する。しかし、リストアターゲットのコンピュータ１がデータ保有マシンに「なし」と書き込まれた修復イメージ構成テーブル２Ｔのレコードを取得した時、他のコンピュータ１はｂｂｂ．ｄｏｃを保有している。
【００５６】
なお、修復イメージ構成テーブル２Ｔには、他の列が含まれてもよい。例えば、サーバ保有データ一覧テーブル３Ｔが、バックアップデータ２Ｄに基づく暗号化データ又は圧縮データを格納する列を含む場合、修復イメージ構成テーブル２Ｔは、暗号化データ又は圧縮データを格納する列を含んでもよい。
【００５７】
次に、修復システムの動作について説明する。
まず、コンピュータ１が実行するデータ管理処理について説明する。コンピュータ１が実行するデータ管理処理は、エージェント保有データ一覧テーブル１Ｔのレコード登録処理である。コンピュータ１は、操作部１７からのユーザ操作により、データ管理処理を開始する。あるいは、コンピュータ１は、バックアップサーバ２から所定の命令を受け付けた場合、データ管理処理を実行してもよい。
【００５８】
図９は、データ管理処理の手順の一例を示すフローチャートである。制御部１１は、ハードディスク１４に記憶された未処理の元データ１Ｄの１つを選択する（ステップＳ１０１）。制御部１１は、選択した元データ１Ｄのハッシュ値が算出済みか否かを判定する（ステップＳ１０２）。処理対象の元データ１Ｄに関するレコードをエージェント保有データ一覧テーブル１Ｔに登録する際、ハッシュ値を含むレコードが登録される。そのため、ハッシュ値が算出済みでない場合は、処理対象の元データ１Ｄに関するレコードがエージェント保有データ一覧テーブル１Ｔに登録されていない場合である。制御部１１は、エージェント保有データ一覧テーブル１Ｔを参照し、選択した元データ１Ｄのハッシュ値が算出済みと判定した場合（ステップＳ１０２：ＹＥＳ）、ステップＳ１０５に処理を進める。
【００５９】
制御部１１は、エージェント保有データ一覧テーブル１Ｔを参照し、選択した元データ１Ｄのハッシュ値が算出済みでないと判定した場合（ステップＳ１０２：ＮＯ）、ハッシュ値を算出する（ステップＳ１０３）。なお、コンピュータ１及びバックアップサーバ２がハッシュ値を算出する場合のアルゴリズムは、同じである。制御部１１は、元データ１Ｄのハッシュ値及びファイル名等のメタデータをエージェント保有データ一覧テーブル１Ｔに登録する（ステップＳ１０４）。その際、データＩＤの列にはｎｕｌｌを格納する。
【００６０】
制御部１１は、ハードディスク１４に記憶された元データ１Ｄの全てについてデータ管理処理を実行したか否かを判定する（ステップＳ１０５）。制御部１１は、ハードディスク１４に記憶された元データ１Ｄの全てについてデータ管理処理をしていないと判定した場合（ステップＳ１０５：ＮＯ）、ステップＳ１０１に処理を戻す。制御部１１は、ハードディスク１４に記憶された元データ１Ｄの全てについてデータ管理処理をしたと判定した場合（ステップＳ１０５：ＹＥＳ）、処理を終了する。
【００６１】
なお、制御部１１は、エージェント保有データ一覧テーブル１Ｔにレコードを新規登録する際、ハッシュ値列にｎｕｌｌを格納し、後にハッシュ値をバックアップサーバ２から取得した場合、取得したハッシュ値をハッシュ値列に格納してもよい。
【００６２】
以下、バックアップ処理を説明し、その次に修復処理を説明する。
修復システムが実行するバックアップは、特定のバックアップ方式に限定されない。例えば、修復システムが実行するバックアップは、フルバックアップ、差分バックアップ及び増分バックアップのいずれでもよい。また、バックアップされる元データ１Ｄは、ハードディスク１４全体、パーティション単位、ディレクトリ単位、ファイル単位等のいずれでもよい。バックアップには、３ｒｄミラー、スナップショット、レプリケーション等のいずれの技術が利用されてよい。
【００６３】
以下、バックアップジョブは、ユーザ主導によりバックアップサーバ２から開始されるものとする。ただし、バックアップジョブは、バックアップサーバ２によるスケジュール管理の下、バッチで行われてもよい。また、バックアップジョブは、コンピュータ１から開始されてもよい。
ユーザは、バックアップサーバ２の操作部２７からバックアップ対象のコンピュータ１及び当該コンピュータ１のハードディスク１４に記憶された元データ１Ｄを指定する。バックアップサーバ２は、一意な値であるイメージＩＤを発番し、バックアップ対象のコンピュータ１にバックアップ開始の信号を送信する。バックアップ対象のコンピュータ１は、バックアップサーバ１からバックアップ開始の信号を受信し、元データ１Ｄから複製されたバックアップデータ２Ｄをバックアップサーバ２に送信する。
【００６４】
バックアップサーバ２は、バックアップ対象のコンピュータ１からバックアップデータ２Ｄを受信し、受信したバックアップデータ２Ｄに関連付けるデータＩＤを発番する。バックアップサーバ２は、発番したデータＩＤをバックアップ対象のコンピュータ１に送信する。バックアップ対象のコンピュータ１は、バックアップサーバ２からデータＩＤを受信し、受信したデータＩＤをエージェント保有データ一覧テーブル１ＴのデータＩＤ列に書き込む。
【００６５】
バックアップサーバ２は、受信したバックアップデータ２Ｄをハードディスク２４に記憶し、発番したデータＩＤ及びハードディスク２４におけるバックアップデータ２Ｄのパスをデータパステーブル４Ｔに登録する。バックアップサーバ２は、発番したイメージＩＤ、発番したデータＩＤ及びバックアップデータ２Ｄのメタデータをバックアップイメージ構成テーブル５Ｔに登録する。
【００６６】
バックアップサーバ２は、受信したバックアップデータ２Ｄのハッシュ値を算出する。バックアップサーバ２は、算出したハッシュ値、バックアップデータ２ＤのデータＩＤ及びサイズ、バックアップ対象のコンピュータ１のＭＡＣアドレス等をサーバ保有データ一覧テーブル３Ｔに登録する。その際、バックアップサーバ２は、マージフラグにＮＯを格納する。
【００６７】
図１０、図１１及び図１２は、バックアップ処理の手順の一例を示すフローチャートである。制御部２１は、バックアップ対象のコンピュータ１の識別情報及びバックアップ対象である元データ１Ｄの範囲を受け付ける（ステップＳ２０１）。以下、バックアップ対象のコンピュータ１は、１台であるものとする。バックアップ対象のコンピュータ１が複数台である場合、以下の処理をコンピュータ１の数だけ複数回繰り返せばよい。制御部２１は、イメージＩＤを発番する（ステップＳ２０２）。制御部２１は、バックアップ対象のコンピュータ１にバックアップ開始の信号を送信する（ステップＳ２０３）。
【００６８】
ステップＳ２０３において、制御部２１は、バックアップ対象の元データ１Ｄの範囲又は元データ１Ｄを特定する情報もバックアップ対象のコンピュータ１に送信する。なお、バックアップの範囲がハードディスク１４全体、パーティション全体等である場合、制御部２１はバックアップ対象の元データ１Ｄを特定する情報をバックアップ対象のコンピュータ１に送信しない。ここで、バックアップ対象の元データ１Ｄが複数である場合、ステップＳ２０３におけるバックアップ対象の元データ１Ｄは、バックアップ処理が終了していない元データ１Ｄである。
【００６９】
制御部１１は、バックアップサーバ２からバックアップ開始の信号を受信する（ステップＳ２０４）。制御部１１は、元データ１Ｄを複製し、複製した元データ１Ｄ、すなわちバックアップデータ２Ｄをバックアップサーバ２に送信する（ステップＳ２０５）。ステップＳ２０５において、制御部１１は、元データ１Ｄのメタデータも共にバックアップサーバ２に送信する。
【００７０】
制御部２１は、バックアップ対象のコンピュータ１からバックアップデータ２Ｄ及びメタデータを受信する（ステップＳ２０６）。制御部２１は、受信したバックアップデータ２Ｄに関連付けるデータＩＤを発番する（ステップＳ２０７）。制御部２１は、受信したバックアップデータ２Ｄをハードディスク２４に記憶する（ステップＳ２０８）。制御部２１は、発番したデータＩＤとハードディスク２４に記憶したバックアップデータ２Ｄのパスとを関連付けてデータパステーブル４Ｔに登録する（ステップＳ２０９）。制御部２１は、発番したデータＩＤをバックアップ対象のコンピュータ１に送信する（ステップＳ２１０）。
【００７１】
制御部１１は、バックアップサーバ２からデータＩＤを受信する（ステップＳ２１１）。制御部１１は、受信したデータＩＤを送信したバックアップデータ２Ｄに対応するエージェント保有データ一覧テーブル１ＴのレコードのデータＩＤ列に書き込む（ステップＳ２１２）。なお、ステップＳ２１２より前の段階では、エージェント保有データ一覧テーブル１ＴのデータＩＤ列にはｎｕｌｌ値が書き込まれている。制御部１１は、エージェント保有データ一覧テーブル１Ｔの更新処理が終了した旨の信号をバックアップサーバ２に送信する（ステップＳ２１３）。
【００７２】
制御部２１は、バックアップ対象のコンピュータ１からエージェント保有データ一覧テーブル１Ｔの更新処理が終了した旨の信号を受信する（ステップＳ２１４）。制御部２１は、指定されたバックアップ対象の元データ１Ｄに対応するバックアップデータ２Ｄの全てを受信したか否かを判定する（ステップＳ２１５）。制御部２１は、指定されたバックアップ対象の元データ１Ｄに対応するバックアップデータ２Ｄの全てを受信していないと判定した場合（ステップＳ２１５：ＮＯ）、ステップＳ２０３に処理を戻す。
【００７３】
制御部２１は、バックアップデータ２Ｄの全てを受信したと判定した場合（ステップＳ２１５：ＹＥＳ）、バックアップイメージ構成テーブル５Ｔに受信したバックアップデータ２Ｄの全てについて夫々レコードを登録する（ステップＳ２１６）。すなわち、制御部２１は、発番したイメージＩＤ、データＩＤ、バックアップデータ２Ｄのメタデータをバックアップイメージ構成テーブル５Ｔに登録する。
【００７４】
制御部２１は、受信したバックアップデータ２Ｄの全てについて、夫々対応するハッシュ値を算出する（ステップＳ２１７）。制御部２１は、受信したバックアップデータ１Ｄの全てについて、算出したハッシュ値、データＩＤ、サイズ、データ保有マシン及びマージ済フラグをサーバ保有データ一覧テーブルに登録し（ステップＳ２１８）、処理を終了する。
【００７５】
バックアップサーバ２は、操作部２７からの命令により重複データマージ処理を実行する。重複データマージ処理は、バックアップサーバ２のハードディスク２４に記憶されたバックアップデータ２Ｄをマージする処理である。重複したバックアップデータ２Ｄの１つは残され、他は削除される。これにより、バックアップデータ２Ｄ全体の容量を削減することができる。
なお、重複データマージ処理は、バックアップサーバ２により定期的に又はスケジュール管理の下に実行されるバッチ処理であってもよい。あるいは、重複データマージ処理は、バックアップ処理中、バックアップ処理終了後、制御部２１のプロセッサ使用率が一定の割合より小さくなったとき等に実行されてもよい。
【００７６】
図１３及び図１４は、重複データマージ処理の手順の一例を示すフローチャートである。制御部２１は、サーバ保有データ一覧テーブル３ＴのレコードをＲＡＭ２３に読み出す（ステップＳ３０１）。制御部２１は、読み出したレコードのうち、未処理のレコードを１件選択する（ステップＳ３０２）。制御部２１は、マージ済フラグがＹＥＳか否かを判定する（ステップＳ３０３）。制御部２１は、マージ済フラグがＹＥＳであると判定した場合（ステップＳ３０３：ＹＥＳ）、ステップＳ３１１に処理を進める。
【００７７】
制御部２１は、制御部２１は、マージ済フラグがＹＥＳでないと判定した場合（ステップＳ３０３：ＮＯ）、処理中のレコードに対応するバックアップデータ２Ｄをハードディスク２４から読み出し、ハッシュ値を算出する（ステップＳ３０４）。制御部２１は、サーバ保有データ一覧テーブル３Ｔに基づいて、ステップＳ３０４で算出したハッシュ値と同一のハッシュ値に対応するバックアップデータ２Ｄがあるか否かを判定する（ステップＳ３０５）。制御部２１は、ステップＳ３０４で算出したハッシュ値と同一のハッシュ値に対応するバックアップデータ２Ｄがないと判定した場合（ステップＳ３０５：ＮＯ）、ステップＳ３１０に処理を進める。
【００７８】
制御部２１は、ステップＳ３０４で算出したハッシュ値と同一のハッシュ値に対応するバックアップデータ２Ｄがあると判定した場合（ステップＳ３０５：ＹＥＳ）、ステップＳ３０６に処理を進める。制御部２１は、処理中のレコードに対応するバックアップデータ２Ｄのバイナリ及びハッシュ値が一致したバックアップデータ２Ｄのバイナリを比較する（ステップＳ３０６）。制御部２１は、バイナリ比較の結果、処理中のレコードに対応するバックアップデータ２Ｄのバイナリ及びハッシュ値が一致したバックアップデータ２Ｄのバイナリが一致するか否か判定する（ステップＳ３０７）。制御部２１は、処理中のレコードに対応するバックアップデータ２Ｄのバイナリ及びハッシュ値が一致したバックアップデータ２Ｄのバイナリが一致しないと判定した場合（ステップＳ３０７：ＮＯ）、ステップＳ３１０に処理を進める。
【００７９】
制御部２１は、処理中のレコードに対応するバックアップデータ２Ｄのバイナリ及びハッシュ値が一致したバックアップデータ２Ｄのバイナリが一致すると判定した場合（ステップＳ３０７：ＹＥＳ）、各種テーブルを更新する（ステップＳ３０８）。
【００８０】
ステップＳ３０８における各種テーブルは、具体的にはサーバ保有データ一覧テーブル３Ｔ、データパステーブル４Ｔ及びバックアップイメージ構成テーブル５Ｔである。以下、これらのテーブルの更新処理について説明する。
ステップＳ３０８において、処理中のレコードに対応するバックアップデータ２Ｄのバイナリと一致するバイナリを有する重複バックアップデータ２Ｄの数は単数又は複数である。制御部２１は、処理中のレコードに対応するバックアップデータ２Ｄ及びハッシュ値が一致した重複バックアップデータ２Ｄの中から、１つにマージするマージ先のバックアップデータ２ＤのデータＩＤを決定する。
【００８１】
制御部２１は、サーバ保有データ一覧テーブル３Ｔにおいて、決定したデータＩＤのデータ保有マシンの列に、マージされる重複バックアップデータ２Ｄに対応するデータ保有マシンの値をマージする。制御部２１は、サーバ保有データ一覧テーブル３Ｔにおいて、マージされる重複バックアップデータ２Ｄに対応するデータＩＤのレコードを削除する。
【００８２】
制御部２１は、データパステーブル４Ｔにおいて、マージされる重複バックアップデータ２Ｄに対応するデータＩＤのレコードを削除する。制御部２１は、バックアップイメージ構成テーブル５Ｔにおいて、マージされる重複バックアップデータ２Ｄに対応するデータＩＤのレコードのデータＩＤ列の値を決定したデータＩＤに更新する。
【００８３】
制御部２１は、マージされる重複バックアップデータ２Ｄをハードディスク２４から削除する（ステップＳ３０９）。制御部２１は、サーバ保有データ一覧テーブル３Ｔにおいて、決定したデータＩＤのレコード又は処理中のレコードのマージ済フラグをＮＯからＹＥＳに更新する（ステップＳ３１０）。
【００８４】
制御部２１は、ステップＳ３０１で読み出した全レコードについて重複データマージ処理を実行したか否かを判定する（ステップＳ３１１）。ステップＳ３１１において、ハードディスク２４から削除した重複バックアップデータ２Ｄに対応するレコードは、処理済みとみなされる。制御部２１は、ステップＳ３０１で読み出した全レコードについて重複データマージ処理を実行していないと判定した場合（ステップＳ３１１：ＮＯ）、ステップＳ３０２に処理を戻す。
【００８５】
制御部２１は、ステップＳ３０１で読み出した全レコードについて重複データマージ処理を実行したと判定した場合（ステップＳ３１１：ＹＥＳ）、ステップＳ３１２に処理を進める。制御部２１は、重複バックアップデータ２Ｄを保有するコンピュータ１に、重複バックアップデータ２ＤのデータＩＤ及び決定したデータＩＤを送信し（ステップＳ３１２）、処理を終了する。なお、重複バックアップデータ２Ｄがない場合、ステップＳ３１２はスキップされる。
【００８６】
ステップＳ３１２は、重複バックアップデータ２ＤのデータＩＤが重複データマージ処理により欠番となったことを、重複バックアップデータ２Ｄに対応する元データ１Ｄを保有するコンピュータ１に通知する処理である。これにより、修復システム全体でバックアップデータ２Ｄと元データ１Ｄとの同期を取る。重複バックアップデータ２ＤのデータＩＤが変更されたことを受け付けたコンピュータ１は、データ同期処理を実行する。
【００８７】
図１５は、データ同期処理の手順の一例を示すフローチャートである。データ同期処理は、常駐プログラムであるプログラム１が有する一機能であり、常に待機しているコンピュータ１により、重複データマージ処理のステップＳ３１２をトリガーにして実行される。
制御部１１は、重複バックアップデータ２ＤのデータＩＤ及びマージ先のバックアップデータ２Ｄに対応するところの決定されたデータＩＤを、バックアップサーバ２から受信したか否かを判定する（ステップＳ４０１）。
【００８８】
制御部１１は、重複バックアップデータ２ＤのデータＩＤ及び決定されたデータＩＤを受信していないと判定した場合（ステップＳ４０１：ＮＯ）、ステップＳ４０１に処理を戻す。制御部１１は、重複バックアップデータ２ＤのデータＩＤ及び決定されたデータＩＤを受信したと判定した場合（ステップＳ４０１：ＹＥＳ）、ステップＳ４０２に処理を進める。制御部１１は、エージェント保有データ一覧テーブル１Ｔにおいて、重複バックアップデータ２ＤのデータＩＤに対応するレコードのデータＩＤを決定されたデータＩＤで更新し（ステップＳ４０２）、ステップＳ４０１に処理を戻す。
【００８９】
次に、修復処理について説明する。
コンピュータ１が保有する元データ１Ｄが破壊、消失等を被った場合、ユーザは当該コンピュータ１をリストアターゲットに設定し、修復する元データ１Ｄの世代及び元データ１Ｄの修復範囲を決定する。ユーザは、修復の運用ポリシーに基づいて、バックアップサーバ２の操作部２７からリストアターゲットのコンピュータ１の識別情報、修復する元データ１Ｄの世代及び元データ１Ｄの修復範囲を入力する。
【００９０】
バックアップサーバ２は、リストアターゲットのコンピュータ１の識別情報、修復する元データ１Ｄの世代及び元データ１Ｄの修復範囲を受け付け、修復イメージ構成テーブル２Ｔのレコードを作成する。具体的には、バックアップサーバ２は、バックアップイメージ構成テーブル５Ｔとサーバ保有データ一覧テーブル３Ｔとから、修復イメージ構成テーブル２Ｔのレコードを作成する。バックアップサーバ２は、作成した修復イメージ構成テーブル２Ｔのレコードを、リストアターゲットのコンピュータ１に送信する。バックアップサーバ２は、リストアターゲットのコンピュータ１に修復処理の実行指示を送信する。
【００９１】
リストアターゲットのコンピュータ１は、バックアップサーバ２から修復イメージ構成テーブル２Ｔのレコード及び修復処理の実行指示を受信する。リストアターゲットのコンピュータ１は、修復イメージ構成テーブル２Ｔのレコードに基づいて、データＩＤの単位で元データ１Ｄの修復処理を開始する。
【００９２】
リストアターゲットのコンピュータ１は、ローカルエリアネットワーク１Ｎに接続されている情報処理装置にブロードキャストでデータＩＤ及びハッシュ値の組み合わせが一致する元データ１Ｄを保有しているか否かを問い合わせる。ここで、リストアターゲットのコンピュータ１は、ブロードキャスト宛を意味する、例えばＦＦ−ＦＦ−ＦＦ−ＦＦ−ＦＦ−ＦＦの予約されたＭＡＣアドレスを宛先として、当該問い合わせを実行する。プログラム１Ｐがインストールされたリストアターゲット以外の他のコンピュータ１は、リストアターゲットのコンピュータ１が問い合わせた元データ１Ｄを保有している場合、リストアターゲットのコンピュータ１に保有している旨の応答をする。なお、他のコンピュータ１は、ハッシュ値のみが一致する場合も、リストアターゲットのコンピュータ１に保有している旨の応答をする。
【００９３】
なお、リストアターゲットのコンピュータ１は、上記の問い合わせに際し、ファイル名、作成日時及びサイズ等のメタデータの組み合わせが一致する元データ１Ｄを保有しているか否かを問い合わせてもよい。あるいは、修復イメージ構成テーブル２Ｔに暗号化データ又は圧縮データを格納する列が含まれている場合、リストアターゲットのコンピュータ１は、上記の問い合わせに際し、暗号化データ又は圧縮データから復号したデータが一致する元データ１Ｄを保有しているか否かを問い合わせてもよい。
他のコンピュータ１は、リストアターゲットのコンピュータ１からメタデータの組み合わせを受信した場合、当該メタデータの組み合わせに対応する元データ１Ｄを保有しているとき、リストアターゲットのコンピュータ１に保有している旨の応答をする。あるいは、他のコンピュータ１は、暗号化データ又は圧縮データを受け付けた場合、当該データを復元することにより、復元したデータに対応する元データ１Ｄを保有しているとき、リストアターゲットのコンピュータ１に保有している旨の応答をする。
【００９４】
以降の修復処理は、次の３通りに分かれる。
第一の処理は、リストアターゲットのコンピュータ１が修復イメージ構成テーブル２Ｔのデータ保有マシンに対応する他のコンピュータ１から保有している旨の応答を受信した場合に該当する。第二の処理は、リストアターゲットのコンピュータ１が修復イメージ構成テーブル２Ｔのデータ保有マシンに対応しない他のコンピュータ１から保有している旨の応答を受信した場合に該当する。第二の処理は、例えば図８の修復イメージ構成テーブル２Ｔのデータ保有マシンが「なし」である場合、リストアターゲットのコンピュータ１が他のコンピュータ１から保有している旨の応答を受信する場合に該当する。第三の処理は、リストアターゲットのコンピュータ１がどのコンピュータ１からも保有している旨の応答を所定時間経過しても受信しない場合に該当する。
【００９５】
リストアターゲットのコンピュータ１が実行する上記処理の優先順位は、第一、第二及び第三の順である。修復処理を早急に終了するためには、ネットワーク３Ｎのスループットがボトルネックとなる。そのため、リストアターゲットのコンピュータ１は、ネットワーク３Ｎを介したバックアップサーバ２との通信を極力控えることが望ましい。第一、第二及び第三の処理の順に、修復システムがネットワーク３Ｎを使用する使用率は高くなるため、上記の優先順位が設定される。
【００９６】
第一の処理では、リストアターゲットのコンピュータ１は、応答してきた他のコンピュータ１に修復用の元データ１Ｄの送信を要求する。元データ１Ｄを要求されたコンピュータ１は、修復用の元データ１Ｄを複製し、複製した元データ１Ｄをリストアターゲットのコンピュータ１に送信する。リストアターゲットのコンピュータ１は、修復用の元データ１Ｄを受信する。リストアターゲットのコンピュータ１は、受信した元データ１Ｄが修復用のデータとして妥当か否かを検証する。この検証処理は、受信した元データ１Ｄに基づいて、バックアップサーバ２と同じアルゴリズムでハッシュ値を算出し、算出したハッシュ値が修復イメージ構成テーブル２Ｔのハッシュ値と一致するか否かを判定することである。検証の結果、受信した元データ１Ｄが修復用のデータとして妥当である場合、リストアターゲットのコンピュータ１は、受信した元データ１Ｄを用いて修復処理を実行する。
【００９７】
第二の処理では、リストアターゲットのコンピュータ１は、応答してきた他のコンピュータ１に修復用の元データ１Ｄを自身及びバックアップサーバ２に送信するように要求する。元データ１Ｄを要求されたコンピュータ１は、修復用の元データ１Ｄを複製し、複製した元データ１Ｄをリストアターゲットのコンピュータ１及びバックアップサーバ２に送信する。リストアターゲットのコンピュータ１及びバックアップサーバ２は、修復用の元データ１Ｄを受信する。
【００９８】
バックアップサーバ２は受信した元データ１Ｄが修復用の元データ１Ｄとして妥当か否かを検証する。この検証処理は、受信した元データ１Ｄに基づいて、ハッシュ値を算出し、修復イメージ構成テーブル２Ｔのハッシュ値と比較すること及びバックアップサーバ２が保有するバックアップデータ２Ｄとバイナリ比較をすることである。バックアップサーバ２は、検証結果をリストアターゲットのコンピュータ１に送信する。リストアターゲットのコンピュータ１は、他のコンピュータ１から受信した元データ１Ｄが修復用の元データ１Ｄとして妥当である旨の検証結果をバックアップサーバ２から受信した場合、受信した元データ１Ｄを用いて修復処理を実行する。
【００９９】
第二の処理において、リストアターゲットのコンピュータ１に応答する他のコンピュータ１は、修復イメージ構成テーブル２Ｔのデータ保有マシンに対応しない。そのため、対応しない当該コンピュータ１は、送信した修復用の元データ１Ｄについてバックアップ処理を実行していない可能性がある。バックアップ処理が実行されていない場合、修復イメージ構成テーブル２Ｔのデータ保有マシンに対応しないコンピュータ１が有するエージェント保有データ一覧テーブル１Ｔにおいて、処理対象レコードのデータＩＤ列にはｎｕｌｌが格納されている。そして、当該コンピュータ１は、ハッシュ値の一致のみからリストアターゲットのコンピュータ１に応答した可能性がある。そのため、修復用の元データ１Ｄの信頼性は、バックアップサーバ２において厳密なバイナリ比較により検証される。
【０１００】
第二の処理において、バックアップサーバ２は、修復用の元データ１Ｄを送信してきた他のコンピュータ１に対して、当該元データ１ＤのデータＩＤを送信する。この他のコンピュータ１は、自身のエージェント保有データ一覧テーブル１Ｔにおいて処理対象レコードのデータＩＤ列にｎｕｌｌが格納されている場合、受信したデータＩＤを用いてエージェント保有データ一覧テーブル１Ｔを更新する。
【０１０１】
第三の処理では、リストアターゲットのコンピュータ１は、バックアップサーバ２に対して、修復用のバックアップデータ２Ｄの送信を要求する。バックアップサーバ２は、確実に修復用のバックアップデータ２Ｄを保有している。バックアップサーバ２はリストアターゲットのコンピュータ１に修復用のバックアップデータ２Ｄを送信する。リストアターゲットのコンピュータ１はバックアップサーバ２から修復用のバックアップデータ２Ｄを受信する。リストアターゲットのコンピュータ１は、受信したバックアップデータ２Ｄを用いて修復処理を実行する。
【０１０２】
リストアターゲットのコンピュータ１は、１つの元データ１Ｄの修復処理が終了する度に、修復イメージ構成テーブル２Ｔの対象レコードを削除し、次のレコードに基づいて修復処理を繰り返す。その際、リストアターゲットのコンピュータ１は、最初は第一の処理を試み、第一の処理で元データ１Ｄを修復できない場合、第二の処理を試みる。リストアターゲットのコンピュータ１は、第二の処理で元データ１を修復できない場合、第三の処理を試みる。リストアターゲットのコンピュータ１は、第三の処理を試みた場合、元データ１Ｄの修復処理を確実に実行する。
【０１０３】
リストアターゲットのコンピュータ１は、修復イメージ構成テーブル２Ｔのレコードを全て削除した場合、全ての修復処理が終了した旨をバックアップサーバ２に通知する。リストアターゲットのコンピュータ１から全ての修復処理が終了した旨を受信したバックアップサーバ２は、修復処理を終了する。
【０１０４】
図１６、図１７、図１８及び図１９は、修復処理の手順の一例を示すフローチャートである。図１６、図１７、図１８及び図１９は、修復処理の概要を示しており、第一、第二及び第三の処理の詳細は省略されている。
バックアップサーバ２は、修復処理の命令を受け付ける（ステップＳ５０１）。バックアップサーバ２は、バックアップイメージ構成テーブル５ＴをＲＡＭ１３に読み出す（ステップＳ５０２）。バックアップサーバ２は、サーバ保有データ一覧テーブル３ＴをＲＡＭ１３に読み出す（ステップＳ５０３）。バックアップサーバ２は、読み出したバックアップイメージ構成テーブル５Ｔ及びサーバ保有データ一覧テーブル３Ｔから修復イメージ構成テーブル２Ｔのレコードを作成する（ステップＳ５０４）。バックアップサーバ２は、作成した修復イメージ構成テーブル２Ｔのレコード及び修復処理の開始指示をリストアターゲットのコンピュータ１に送信する（ステップＳ５０５）。
【０１０５】
リストアターゲットのコンピュータ１は、バックアップサーバ２から修復イメージ構成テーブル２Ｔのレコード及び修復処理の開始指示を受信する（ステップＳ５０６）。リストアターゲットのコンピュータ１は、修復イメージ構成テーブル２Ｔの次のレコードをＲＡＭ１３に読み出す（ステップＳ５０７）。ステップＳ５０７は、修復イメージ構成テーブル２Ｔのレコードを１件ずつ処理するループ処理の始まりである。ステップＳ５０７において、リストアターゲットのコンピュータ１は、最初のループ処理時には、修復イメージ構成テーブル２Ｔの先頭レコードをＲＡＭ１３に読み出す。
【０１０６】
リストアターゲットのコンピュータ１は、読み出した修復イメージ構成テーブル２Ｔのレコードに対応する元データ１Ｄを保有しているか否かをブロードキャストで問い合わせ、データＩＤ及びハッシュ値を送信する（ステップＳ５０８）。ステップＳ５０８におけるデータＩＤ及びハッシュ値は、リストアターゲットのコンピュータ１が修復イメージ構成テーブル２Ｔから読み出したデータＩＤ及びハッシュ値である。
【０１０７】
他のコンピュータ１は、リストアターゲットのコンピュータ１から問い合わせ、データＩＤ及びハッシュ値を受信する（ステップＳ５０９）。他のコンピュータ１は、エージェント保有データ一覧テーブル１Ｔを参照し、リストアターゲットのコンピュータ１が問い合わせた元データ１Ｄを保有しているか否かを判定する（ステップＳ５１０）。ステップＳ５１０において、他のコンピュータ１は、データＩＤ及びハッシュ値が一致する元データ１Ｄを保有している場合、問い合わせられた元データ１Ｄを保有していると判定する。
なお、ステップＳ５１０において、他のコンピュータ１は、データＩＤ又はハッシュ値が一致する元データ１Ｄを保有している場合、問い合わせられた元データ１Ｄを保有していると判定してもよい。
【０１０８】
他のコンピュータ１は、リストアターゲットのコンピュータ１が問い合わせた元データ１Ｄを保有していないと判定した場合（ステップＳ５１０：ＮＯ）、ステップＳ５０９に処理を戻す。他のコンピュータ１は、リストアターゲットのコンピュータ１が問い合わせた元データ１Ｄを保有していると判定した場合（ステップＳ５１０：ＹＥＳ）、保有している旨の応答をリストアターゲットのコンピュータ１に送信する（ステップＳ５１１）。
【０１０９】
リストアターゲットのコンピュータ１は、所定時間の間、他のコンピュータ１からの応答を受信する（ステップＳ５１２）。リストアターゲットのコンピュータ１は、受信した応答を送信した他のコンピュータ１の識別情報をＲＡＭ１３に記憶する（ステップＳ５１３）。ステップＳ５１３における他のコンピュータ１の識別情報は、例えば他のコンピュータ１が備える通信部１８のＭＡＣアドレスである。
【０１１０】
リストアターゲットのコンピュータ１は、ＲＡＭ１３に記憶した他のコンピュータ１の識別情報に基づいて、問い合わせに対して応答してきた他のコンピュータ１があるか否かを判定する（ステップＳ５１４）。リストアターゲットのコンピュータ１は、問い合わせに対して応答してきた他のコンピュータ１がないと判定した場合（ステップＳ５１４：ＮＯ）、第三の処理を実行する（ステップＳ５１５）。その後、リストアターゲットのコンピュータ１は、ステップＳ５１９に処理を進める。
【０１１１】
リストアターゲットのコンピュータ１は、問い合わせに対して応答してきた他のコンピュータ１があると判定した場合（ステップＳ５１４：ＹＥＳ）、ステップＳ５１６を実行する。リストアターゲットのコンピュータ１は、当該他のコンピュータ１が処理中のレコードに記載されたデータ保有マシンに含まれるか否かを判定する（ステップＳ５１６）。
【０１１２】
リストアターゲットのコンピュータ１は、問い合わせに対して応答してきた他のコンピュータ１が処理中のレコードに記載されたデータ保有マシンに含まれると判定した場合（ステップＳ５１６：ＹＥＳ）、第一の処理を実行する（ステップＳ５１７）。その後、リストアターゲットのコンピュータ１は、第二の処理（ステップＳ５１８）、第三の処理（ステップＳ５１５）又はステップＳ５１９に処理を進める。リストアターゲットのコンピュータ１は、問い合わせに対して応答してきた他のコンピュータ１が処理中のレコードに記載されたデータ保有マシンに含まれないと判定した場合（ステップＳ５１６：ＮＯ）、第二の処理を実行する（ステップＳ５１８）。その後、リストアターゲットのコンピュータ１は、第三の処理（ステップＳ５１５）又はステップＳ５１９に処理を進める。
【０１１３】
リストアターゲットのコンピュータ１は、処理対象である修復イメージ構成テーブル２Ｔのレコードを削除する（ステップＳ５１９）。リストアターゲットのコンピュータ１は、修復イメージ構成テーブル２Ｔの全レコードを削除したか否かを判定する（ステップＳ５２０）。リストアターゲットのコンピュータ１は、修復イメージ構成テーブル２Ｔの全レコードを削除していないと判定した場合（ステップＳ５２０：ＮＯ）、ステップＳ５０７に処理を戻す。リストアターゲットのコンピュータ１は、修復イメージ構成テーブル２Ｔの全レコードを削除したと判定した場合（ステップＳ５２０：ＹＥＳ）、修復対象である全ての元データ１Ｄの修復処理が終了した旨をバックアップサーバ２に送信する（ステップＳ５２１）。
【０１１４】
バックアップサーバ２は、リストアターゲットのコンピュータ１から修復対象である全ての元データ１Ｄの修復処理が終了した旨を受信し（ステップＳ５２２）、処理を終了する。
【０１１５】
図２０及び図２１は、第一の処理の手順の一例を示すフローチャートである。第一の処理は、リストアターゲットのコンピュータ１が、修復イメージ構成テーブル２Ｔのデータ保有マシンであるコンピュータ１から修復用の元データ１Ｄを取得し、修復処理を実行する処理である。
リストアターゲットのコンピュータ１は、応答してきた他のコンピュータのうち、未処理のコンピュータ１に修復用の元データ１Ｄを要求する旨を送信する（ステップＳ６０１）。ステップＳ６０１は、修復イメージ構成テーブル２Ｔのデータ保有マシンが複数台である場合、データ保有マシンに対応するコンピュータ１に修復用の元データ１Ｄを要求するループ処理の始まりである。
【０１１６】
他のコンピュータ１は、リストアターゲットのコンピュータ１から修復用の元データ１Ｄを要求する旨を受信する（ステップＳ６０２）。他のコンピュータ１は、要求された修復用の元データ１Ｄをリストアターゲットのコンピュータ１に送信する（ステップＳ６０３）。リストアターゲットのコンピュータ１は、他のコンピュータ１から修復用の元データ１Ｄを受信する（ステップＳ６０４）。リストアターゲットのコンピュータ１は、受信した修復用の元データ１Ｄに基づいて、ハッシュ値を算出する（ステップＳ６０５）。リストアターゲットのコンピュータ１は、算出したハッシュ値と、修復イメージ構成テーブル２Ｔにおける処理中のレコードのハッシュ値とが一致するか否かを判定する（ステップＳ６０６）。
【０１１７】
リストアターゲットのコンピュータ１は、算出したハッシュ値と、修復イメージ構成テーブル２Ｔにおける処理中のレコードのハッシュ値とが一致しないと判定した場合（ステップＳ６０６：ＮＯ）、ステップＳ６０７に処理を進める。リストアターゲットのコンピュータ１は、応答してきたコンピュータ１の中に、修復イメージ構成テーブル２Ｔのデータ保有マシンに含まれ、かつ第一の処理が未処理のコンピュータ１があるか否かを判定する（ステップＳ６０７）。リストアターゲットのコンピュータ１は、修復イメージ構成テーブル２Ｔのデータ保有マシンに含まれ、かつ第一の処理が未処理のコンピュータ１があると判定した場合（ステップＳ６０７：ＹＥＳ）、ステップＳ６０１に処理を戻す。
【０１１８】
リストアターゲットのコンピュータ１は、応答してきたコンピュータ１の中に、修復イメージ構成テーブル２Ｔのデータ保有マシンに含まれ、かつ第一の処理が未処理のコンピュータ１はないと判定した場合（ステップＳ６０７：ＮＯ）、ステップＳ６０８に処理を進める。リストアターゲットのコンピュータ１は、ステップＳ５１３でＲＡＭ１３に記憶したコンピュータ１の中に、修復イメージ構成テーブル２Ｔのデータ保有マシンに対応しないコンピュータ１が含まれるか否かを判定する（ステップＳ６０８）。リストアターゲットのコンピュータ１は、修復イメージ構成テーブル２Ｔのデータ保有マシンに対応しないコンピュータ１が含まれると判定した場合（ステップＳ６０８：ＹＥＳ）、第二の処理に移行する（ステップＳ５１８）。
【０１１９】
リストアターゲットのコンピュータ１は、修復イメージ構成テーブル２Ｔのデータ保有マシンに対応しないコンピュータ１が含まれないと判定した場合（ステップＳ６０８：ＮＯ）、第三の処理に移行する（ステップＳ５１５）。ステップＳ６０８において、修復イメージ構成テーブル２Ｔのデータ保有マシンに対応しないコンピュータ１が含まれない場合（ステップＳ６０８：ＮＯ）とは、次の場合である。すなわち、応答してきたコンピュータ１が修復イメージ構成テーブル２Ｔのデータ保有マシンのみであり、受信した修復用の元データ１Ｄに関するハッシュ値が全て修復イメージ構成テーブル２Ｔにおける処理中のレコードのハッシュ値と一致しなかった場合である。
【０１２０】
リストアターゲットのコンピュータ１は、算出したハッシュ値と、修復イメージ構成テーブル２Ｔにおける処理中のレコードのハッシュ値とが一致すると判定した場合（ステップＳ６０６：ＹＥＳ）、取得した修復用の元データ１Ｄを用いて修復処理を実行する（ステップＳ６０９）。その後、リストアターゲットのコンピュータ１は、ステップＳ５１９に処理を進める。
【０１２１】
図２２、図２３及び図２４は、第二の処理の手順の一例を示すフローチャートである。第二の処理は、リストアターゲットのコンピュータ１が、修復イメージ構成テーブル２Ｔのデータ保有マシンに対応しないコンピュータ１から修復用の元データ１Ｄを取得し、修復処理を実行する処理である。
リストアターゲットのコンピュータ１は、応答してきた他のコンピュータ１のうち、未処理のコンピュータ１に自身及びバックアップサーバ２に対して修復用の元データ１Ｄを送信する要求を送信する（ステップＳ７０１）。ステップＳ７０１は、修復イメージ構成テーブル２Ｔのデータ保有マシンに対応しないコンピュータ１が複数台である場合、データ保有マシンに対応しないコンピュータ１に修復用の元データ１Ｄを要求するループ処理の始まりである。
【０１２２】
他のコンピュータ１は、リストアターゲットのコンピュータ１から修復用の元データ１Ｄをリストアターゲットのコンピュータ１及びバックアップサーバ２に対して送信する要求を受信する（ステップＳ７０２）。他のコンピュータ１は、要求された修復用の元データ１Ｄをリストアターゲットのコンピュータ１及びバックアップサーバ２に送信する（ステップＳ７０３）。ステップＳ７０３において、他のコンピュータ１は、送信する元データ１ＤのデータＩＤを認識している場合、当該データＩＤもコンピュータ１及びバックアップサーバ２に送信する。
【０１２３】
リストアターゲットのコンピュータ１は、他のコンピュータ１から修復用の元データ１Ｄを受信する（ステップＳ７０４）。ステップＳ７０４において、データＩＤも送信されてきた場合、当該データＩＤも受信する。
【０１２４】
バックアップサーバ２は、他のコンピュータ１から修復用の元データ１Ｄを受信する（ステップ７０５）。ステップＳ７０５において、バックアップサーバ２は、データＩＤも送信されてきた場合、当該データＩＤも受信する。バックアップサーバ２は、他のコンピュータ１から受信した修復用の元データ１Ｄに基づいて、ハッシュ値を算出する（ステップＳ７０６）。
【０１２５】
バックアップサーバ２は、算出したハッシュ値と、作成した修復イメージ構成テーブル２Ｔのハッシュ値とが一致するか否かを判定する（ステップＳ７０７）。つまり、ステップＳ７０７において、バックアップサーバ２は、算出したハッシュ値と同一のハッシュ値に対応するレコードが修復イメージ構成テーブル２Ｔに登録されているか否かを判定する。また、ステップＳ７０７において、バックアップサーバ２は、データＩＤも受信した場合、作成した修復イメージ構成テーブル２Ｔを参照し、受信したデータＩＤ及び算出したハッシュ値と同じデータＩＤ及びハッシュ値に対応するレコードの有無を判定する。
なお、ステップＳ７０７において、バックアップサーバ２は、修復イメージ構成テーブル２Ｔではなく、サーバ保有データ一覧テーブル３Ｔを参照してもよい。
【０１２６】
バックアップサーバ２は、算出したハッシュ値と、作成した修復イメージ構成テーブル２Ｔのハッシュ値とが一致しないと判定した場合（ステップＳ７０７：ＮＯ）、ステップＳ７０９に処理を進める。なお、バックアップサーバ２は、データＩＤを受信した場合、受信したデータＩＤ及び算出したハッシュ値と同じデータＩＤ及びハッシュ値に対応するレコードがない場合も、ステップＳ７０９に処理を進める。
【０１２７】
バックアップサーバ２は、算出したハッシュ値と、作成した修復イメージ構成テーブル２Ｔのハッシュ値とが一致すると判定した場合（ステップＳ７０７：ＹＥＳ）、ステップＳ７０８に処理を進める。なお、ステップＳ７０７において、バックアップサーバ２は、データＩＤを受信した場合、受信したデータＩＤ及び算出したハッシュ値と同じデータＩＤ及びハッシュ値に対応するレコードがある場合も、ステップＳ７０８に処理を進める。
【０１２８】
バックアップサーバ２は、受信した修復用の元データ１Ｄのバイナリと、ハッシュ値が一致したバックアップデータ２Ｄのバイナリとが一致するか否かを判定する（ステップＳ７０８）。バックアップサーバ２は、受信した修復用の元データ１Ｄのバイナリと、ハッシュ値が一致したバックアップデータ２Ｄのバイナリとが一致しないと判定した場合（ステップＳ７０８：ＮＯ）、ステップＳ７０９に処理を進める。
バックアップサーバ２は、受信した修復用の元データ１Ｄのバイナリと、ハッシュ値が一致したバックアップデータ２Ｄのバイナリとが一致すると判定した場合（ステップＳ７０８：ＹＥＳ）、ステップＳ７１０に処理を進める。
【０１２９】
バックアップサーバ２は、受信した元データ１Ｄは修復用の元データ１Ｄとして妥当でない旨の検証結果を設定する（ステップＳ７０９）。
バックアップサーバ２は、受信した元データは、修復用の元データ１Ｄとして妥当である旨の検証結果を設定する（ステップＳ７１０）。
【０１３０】
バックアップサーバ２は、ステップＳ７０９又はステップＳ７１０で設定した検証結果を、データＩＤと共に、リストアターゲットのコンピュータ１及び元データ１Ｄを送信してきた他のコンピュータ１に送信する（ステップＳ７１１）。ステップＳ７１１において、バックアップサーバ２は、データＩＤを受信しない場合、算出したハッシュ値で修復イメージ構成テーブル２Ｔ又はサーバ保有データ一覧テーブル３ＴからデータＩＤを検索する。ステップＳ７１１において、バックアップサーバ２は、当該検索により、ヒットしたレコードのデータＩＤを、検証結果と共に、リストアターゲットのコンピュータ１及び元データ１Ｄを送信してきた他のコンピュータ１に送信する。
【０１３１】
他のコンピュータ１は、バックアップサーバ２から検証結果及びデータＩＤを受信する（ステップＳ７１２）。他のコンピュータ１は、ステップＳ７０３でリストアターゲットのコンピュータ１及びバックアップサーバ２に送信した元データ１Ｄに対応するエージェント保有データ一覧テーブル１ＴのレコードのデータＩＤ列を受信したデータＩＤで更新する（ステップＳ７１３）。
【０１３２】
リストアターゲットのコンピュータ１は、バックアップサーバ２から検証結果及びデータＩＤを受信する（ステップＳ７１４）。リストアターゲットのコンピュータ１は、受信した検証結果が修復用の元データ１Ｄとして妥当か否かを判定する（ステップＳ７１５）。リストアターゲットのコンピュータ１は、受信した検証結果が修復用の元データ１Ｄとして妥当でないと判定した場合（ステップＳ７１５：ＮＯ）、第二の処理が未処理である他のコンピュータ１があるか否かを判定する（ステップＳ７１６）。
【０１３３】
リストアターゲットのコンピュータ１は、第二の処理が未処理である他のコンピュータ１があると判定した場合（ステップＳ７１６：ＹＥＳ）、ステップＳ７０１に処理を戻す。リストアターゲットのコンピュータ１は、第二の処理が未処理である他のコンピュータ１がないと判定した場合（ステップＳ７１６：ＮＯ）、第三の処理（ステップＳ５１５）に処理を進める。
【０１３４】
リストアターゲットのコンピュータ１は、受信した検証結果が修復用の元データ１Ｄとして妥当であると判定した場合（ステップＳ７１５：ＹＥＳ）、他のコンピュータ１から受信した修復用の元データ１Ｄを用いて修復処理を実行する（ステップＳ７１７）。その後、リストアターゲットのコンピュータ１は、ステップＳ５１９に処理を進める。
【０１３５】
なお、第二の処理（ステップＳ５１８）において、バックアップサーバ２は、修復用の元データ１Ｄの信頼性を検証する際、ハッシュ値及びバイナリが一致した場合、受信した元データ１Ｄは修復用の元データ１Ｄとして妥当であると判定した。しかし、バックアップサーバ２は、ハッシュ値又はバイナリが一致した場合、受信した元データ１Ｄは修復用の元データ１Ｄとして妥当であると判定してもよい。
【０１３６】
図２５は、第三の処理の手順の一例を示すフローチャートである。第三の処理は、リストアターゲットのコンピュータ１が、バックアップサーバ２から修復用のバックアップデータ２Ｄを取得し、修復処理を実行する処理である。
リストアターゲットのコンピュータ１は、バックアップサーバ２に修復用のバックアップデータ２Ｄを要求する旨を送信する（ステップＳ８０１）。バックアップサーバ２は、リストアターゲットのコンピュータ１から修復用のバックアップデータ２Ｄを要求する旨を受信する（ステップＳ８０２）。
【０１３７】
バックアップサーバ２は、リストアターゲットのコンピュータ１に修復用のバックアップデータ２Ｄを送信する（ステップＳ８０３）。リストアターゲットのコンピュータ１は、バックアップサーバ２から修復用のバックアップデータ２Ｄを受信する（ステップＳ８０４）。リストアターゲットのコンピュータ１は、受信したバックアップデータ２Ｄを用いて修復処理を実行する（ステップＳ８０５）。その後、リストアターゲットのコンピュータ１は、ステップＳ５１９に処理を進める。
【０１３８】
なお、バックアップサーバ２は、ローカルネットワーク２Ｎに属していなくてもよい。例えば、バックアップサーバ２はネットワーク３Ｎに直接接続されてもよい。かかる場合、コンピュータ１とバックアップサーバ２とは、ローカルエリアネットワーク１Ｎ及びネットワーク３Ｎを介して、情報の送受信を行う。
【０１３９】
図１６、図１７、図１８及び図１９の修復処理において、リストアターゲットのコンピュータ１は、データＩＤ及びハッシュ値に基づいて、修復用の元データ１の保有を他のコンピュータに問い合わせた。しかし、リストアターゲットのコンピュータ１は、データＩＤ及び修復用の元データ１Ｄのメタデータに基づいて、修復用の元データ１の保有を他のコンピュータに問い合わせてもよい。ここでのメタデータは、エージェント保有データ一覧テーブル１Ｔと修復イメージ構成テーブル２Ｔとで重複するメタデータであり、例えばファイル名、パス、作成日時、サイズ等を組み合わせた情報である。ここでのメタデータは、ハッシュ値を含んでもよいし、含まなくてもよい。また、ここでのメタデータは、更に更新日時、アクセス日時等の他のメタデータを含んでもよい。
他のコンピュータ１は、リストアターゲットのコンピュータ１から上記メタデータを問い合わせと共に受信する。他のコンピュータ１は、上記メタデータに基づく情報と一致する情報に対応する元データ１Ｄが自身のハードディスク１４に記憶されている場合、修復用の元データ１Ｄを保有している旨の応答をリストアターゲットのコンピュータ１に送信してもよい。
【０１４０】
第二の処理（ステップＳ５１８）において、修復イメージ構成テーブル２Ｔのデータ保有マシンに対応しないコンピュータ１が保有する修復用の元データ１Ｄは、バックアップサーバ２により信頼性が検証される。そのため、図２２、図２３及び図２４の例では、修復用の元データ１Ｄは、データ保有マシンに対応しない他のコンピュータ１からバックアップサーバ２に送信された。しかし、修復用の元データ１は、リストアターゲットのコンピュータ１からバックアップサーバ２に送信されてもよい。
かかる場合、リストアターゲットのコンピュータ１は、応答してきた他のコンピュータ１のうち、未処理のコンピュータ１に自身のみに対して修復用の元データ１Ｄを送信する要求を送信する。そして、他のコンピュータ１は、要求された修復用の元データ１Ｄをリストアターゲットのコンピュータ１に送信する。リストアターゲットのコンピュータ１は、バックアップサーバ２に受信した修復用の元データ１Ｄ及びデータＩＤを送信する。バックアップサーバ２は、リストアターゲットのコンピュータ１から修復用の元データ１Ｄ及びデータＩＤを受信する。バックアップサーバ２は、受信したデータＩＤにより受信した修復用の元データ１Ｄを特定する。バックアップサーバ２による以降の手順は、図２２、図２３及び図２４に示した手順と同じである。
【０１４１】
本実施の形態に係る修復システムによれば、破損等を被った元データ１Ｄを迅速に修復することができる。
リストアターゲットのコンピュータ１は、第一の処理（ステップＳ５１７）において、ローカルネットワーク１Ｎに接続された他のコンピュータ１から修復用の元データ１Ｄを取得する。そのため、第一の処理（ステップＳ５１７）において、帯域幅が狭いネットワーク３Ｎは使用されないので、迅速な修復処理が可能となる。
【０１４２】
第一の処理（ステップＳ５１７）の前後において、ネットワーク３Ｎが使用される機会は、バックアップサーバ２及びリストアターゲットのコンピュータ１の間における修復処理の開始及び終了の応答時以外には、修復イメージ構成テーブル２Ｔのレコードセットの転送時のみである。修復イメージ構成テーブル２Ｔのレコードセットの容量は、修復処理に用いられるバックアップデータ２Ｄ全体の容量よりも遥かに小さい。従って、修復システムによるネットワーク３Ｎの転送データ量は従来よりも大幅に削減されている。これにより、ネットワーク３Ｎのスループットが低い場合であっても、早急なデータの修復が可能となる。
【０１４３】
第二の処理（ステップＳ５１８）では、修復イメージ構成テーブル２Ｔのレコードに記録されていないコンピュータ１から取得した元データ１Ｄを用いて修復処理が実行される。そのため、修復用の元データ１Ｄの信頼性は、バイナリ比較による厳密な解析により確認される。バイナリ比較はハードウェアに対する負荷が大きいが、第二の処理（ステップＳ５１８）では処理能力の高いバックアップサーバ２がバイナリ比較を実行することで、修復システム全体の処理能力を担保することができる。
【０１４４】
第三の処理（ステップＳ５１５）において、リストアターゲットのコンピュータ１は、バックアップサーバ２からバックアップデータ２Ｄを取得するために、ネットワーク３Ｎを使用する。しかし、第三の処理（ステップＳ５１５）は、他のコンピュータ１が修復用の元データ１Ｄを保有していない場合、又は第一の処理（ステップＳ５１７）若しくは第二の処理（５１８）を試みても修復用の元データ１Ｄを取得できない場合に限られる。従って、第三の処理（ステップＳ５１５）が実行される頻度は低いので、修復システムはネットワーク３Ｎに対する負荷を従来よりも低減することができる。
【０１４５】
コンピュータ１を動作させるためのプログラム１Ｐは、ディスクドライブ１５を介して光ディスク１ａから読み込まれてもよい。あるいは、プログラム１Ｐは、通信部１８を介して外部の情報処理装置又は記録装置から読み込まれてもよい。さらに、プログラム１Ｐを記録したフラッシュメモリ等の半導体メモリ１ｃが、コンピュータ１内に実装されていてもよい。
同様に、バックアップサーバ２を動作させるためのプログラム２Ｐは、ディスクドライブ２５を介して光ディスク１ａから読み込まれてもよい。あるいは、プログラム２Ｐは、通信部２８を介して外部の情報処理装置又は記録装置から読み込まれてもよい。さらに、プログラム２Ｐを記録したフラッシュメモリ等の半導体メモリ１ｃが、バックアップサーバ２内に実装されていてもよい。
【０１４６】
以上の実施の形態に関し、さらに以下の付記を開示する。
【０１４７】
（付記１）
第一通信網に接続され、各々が記憶部を有する複数の記憶装置並びに
前記第一通信網及び該第一通信網の帯域幅と異なる帯域幅を有し、該第一通信網と接続された第二通信網を介して前記複数の記憶装置と通信するバックアップ装置
を備え、
前記複数の記憶装置に含まれる一の記憶装置が有する前記記憶部に記憶されたデータを修復する修復システムにおいて、
前記バックアップ装置は、
前記記憶部に夫々記憶されたデータ及び該データのメタデータを前記複数の記憶装置から受信する受信部と、
該受信部が受信したデータの識別子を生成する生成部と、
該生成部が生成したデータの識別子を、前記受信部が該データを受信した前記複数の記憶装置に夫々送信する識別子送信部と、
被修復データの指定を受け付ける受付部と、
該受付部が受け付けた被修復データに対応する識別子及び前記受信部が受信したデータに係るメタデータが関連付けてある一覧を前記一の記憶装置に送信する一覧送信部と
を有し、
前記複数の記憶装置は、
前記識別子送信部が送信したデータの識別子を受信する識別子受信部と、
該識別子受信部が受信した識別子を前記記憶部に記憶されたデータと対応付けて該記憶部に記憶する識別子記憶部と
を有し、
前記一の記憶装置は、
前記一覧送信部が送信した一覧を受信する一覧受信部と、
該一覧受信部が受信した一覧に基づいた一又は複数の他の記憶装置への問い合わせに対する応答に応じて、被修復データに対応するデータを自身に送信する要求を該他の記憶装置又は前記バックアップ装置に送信する要求送信部と、
該要求送信部が送信した要求に係るデータを前記他の記憶装置又は前記バックアップ装置から受信する要求受信部と、
前記一覧受信部が受信した一覧及び前記識別子記憶部が記憶した識別子に基づいて、前記要求受信部が受信したデータを用いて被修復データを修復する修復部と
を有する
修復システム。
【０１４８】
（付記２）
前記バックアップ装置は、所定のアルゴリズムに基づいて、前記受信部が受信したデータから一意に定まる固有値を算出する算出部を有し、
前記バックアップ装置の前記一覧送信部が送信する一覧には、前記識別子及び前記算出部が算出した固有値が関連付けてあり、
前記複数の記憶装置は、前記バックアップ装置の前記算出部が用いたアルゴリズムと同一のアルゴリズムに基づいて、前記記憶部が記憶するデータから一意に定まる固有値を算出する固有値算出部を有し、
前記一の記憶装置は、
前記一覧受信部が受信した一覧に基づいて、被修復データに対応するデータを保有しているか否かの問い合わせを、前記他の記憶装置に送信する問い合わせ送信部と、
該問い合わせ送信部が問い合わせたデータの保有に関する応答を前記他の記憶装置から受信する応答受信部と
を有し、
前記他の記憶装置は、
前記問い合わせ送信部が送信した問い合わせを受信する問い合わせ受信部と、
前記識別子受信部が受信した識別子又は前記固有値算出部が算出した固有値に基づいて、夫々前記一覧において関連付けてある識別子又は固有値に対応するデータを前記記憶部が記憶しているか否かを判定する判定部と、
前記判定部が前記問い合わせ受信部により受信された問い合わせに関する前記データを記憶していると判定した場合、前記データの保有に関する応答を前記一の記憶装置に送信する応答送信部と
を有し、
前記一の記憶装置の前記要求送信部は、被修復データに対応するデータを、前記応答受信部が受信した前記応答を送信してきた前記他の記憶装置に要求する
付記１に記載の修復システム。
【０１４９】
（付記３）
前記バックアップ装置の前記一覧送信部が送信する一覧には、前記識別子、前記固有値及び前記受信部がデータを受信した前記複数の記憶装置に夫々対応する識別情報が関連付けてあり、
前記一の記憶装置の前記要求送信部は、前記応答受信部が前記一覧受信部により受信された一覧において関連付けられた識別情報に対応しない前記他の記憶装置から前記応答を受信した場合、被修復データに対応するデータを自身及び前記バックアップ装置に送信する要求を前記識別情報に対応しない前記他の記憶装置に送信し、
前記他の記憶装置は前記要求送信部により送信された要求に係るデータを前記一の記憶装置及び前記バックアップ装置に送信するデータ送信部を有し、
前記バックアップ装置は、
前記データ送信部が送信したデータを受信するデータ受信部と、
該データ受信部が受信したデータ及び前記受信部が受信したデータが同一か否かを判定する同一判定部と、
該同一判定部が判定した判定結果を前記一の記憶装置に送信する判定結果送信部と
を有し、
前記一の記憶装置は前記判定結果送信部が送信した判定結果を受信する判定結果受信部を有し、
前記一の記憶装置の前記要求受信部は、前記他の記憶装置の前記データ送信部が送信したデータを受信し、
前記一の記憶装置の前記修復部は、前記判定結果受信部により受信された判定結果が同一である場合、前記要求受信部が受信したデータを用いて被修復データを修復する
付記２に記載の修復システム。
【０１５０】
（付記４）
前記バックアップ装置は前記データ受信部が受信したデータ及び前記受信部が受信したデータをバイナリデータに夫々変換する変換部を有し、
前記バックアップ装置の前記算出部は、前記データ受信部が受信したデータ及び前記受信部が受信したデータから一意に定まる固有値を夫々算出し、
前記バックアップ装置の前記同一判定部は、前記算出部が算出した各固有値が一致した場合又は前記変換部が変換した各バイナリデータが一致した場合、同一と判定する
付記３に記載の修復システム。
【０１５１】
（付記５）
前記一の記憶装置の前記要求送信部は、前記応答受信部が前記一覧受信部により受信された一覧において関連付けられた識別情報に対応する前記他の記憶装置から前記応答を受信した場合、被修復データに対応するデータを自身に送信する要求を前記識別情報に対応する前記他の記憶装置に送信し、
前記識別情報に対応する前記他の記憶装置の前記データ送信部は、前記要求送信部により送信された要求に係るデータを前記一の記憶装置に送信し、
前記一の記憶装置の前記要求受信部は、前記データ送信部が送信したデータを受信し、
前記一の記憶装置の前記固有値算出部は、前記要求受信部が受信したデータから固有値を算出し、
前記一の記憶装置の前記修復部は、前記一覧受信部が受信した一覧において関連付けられた固有値及び前記固有値算出部が算出した固有値が同一である場合、前記要求受信部が受信したデータを用いて被修復データを修復する
付記３又は付記４に記載の修復システム。
【０１５２】
（付記６）
前記一の記憶装置の前記要求送信部は、前記応答受信部が前記応答を受信しない場合、被修復データに対応するデータを自身に送信する要求を前記バックアップ装置に送信し、
前記バックアップ装置は前記要求送信部が送信した要求に係るデータを前記一の記憶装置に送信する通信網データ送信部を有し、
前記一の記憶装置の前記要求受信部は、前記通信網データ送信部が送信したデータを受信し、
前記一の記憶装置の前記修復部は、前記要求受信部が受信したデータを用いて被修復データを修復する
付記３から付記５までのいずれか一項に記載の修復システム。
【０１５３】
（付記７）
前記バックアップ装置は第三通信網に接続されており、
前記複数の記憶装置及び前記バックアップ装置は、前記第一通信網と、前記第三通信網と、該第一及び第三通信網を接続する通信網接続装置又は該第一及び第三通信網の帯域幅と異なる帯域幅を有し、第一及び第三通信網と接続された第二通信網とを介して通信する
付記１から付記６までのいずれか一項に記載の修復システム。
【０１５４】
（付記８）
前記バックアップ装置の前記算出部及び前記複数の記憶装置の前記固有値算出部が算出する固有値は、ハッシュ値である
付記２から付記７までのいずれか一つに記載の修復システム
【０１５５】
（付記９）
前記複数の記憶装置は前記記憶部に記憶されたデータ及び該データのメタデータを前記バックアップ装置に送信する送信部を有し、
前記バックアップ装置の前記受信部は、前記送信部が夫々送信したデータ及びメタデータを受信する
付記１に記載の修復システム。
【０１５６】
（付記１０）
前記一の記憶装置の前記修復部は、前記一覧受信部が受信した一覧において関連付けられた識別子及び前記識別子記憶部がデータと対応付けて記憶した識別子に基づいて、前記記憶部に記憶された被修復データを特定することにより、前記要求受信部が受信したデータを用いて、特定した被修復データを修復する
付記１に記載の修復システム。
【０１５７】
（付記１１）
前記バックアップ装置の前記変換部は、前記受信部が前記複数の記憶装置から受信したデータをバイナリデータに夫々変換し、
前記バックアップ装置は、
前記受信部が受信したデータを前記生成部が生成した識別子と関連付けて記憶するバックアップデータ記憶部と、
前記生成部が生成した識別子から、前記算出部が算出した固有値及び前記変換部が変換したバイナリデータが夫々一致するデータに対応する識別子を抽出する抽出部と、
該抽出部が抽出した複数の識別子から一の識別子以外の他の識別子に対応するデータを前記バックアップデータ記憶部から削除する削除部と、
該削除部が削除しなかったデータに対応する一の識別子及び該削除部が削除したデータに対応する他の識別子を前記複数の記憶装置に送信する重複識別子送信部と
を有し、
前記複数の記憶装置は、
前記重複識別子送信部が送信した各識別子を受信する重複識別子受信部と、
前記識別子記憶部により記憶されたデータの識別子が前記重複識別子受信部により受信された前記他の識別子を含む場合、該他の識別子に対応するデータの識別子を前記一の識別子で書き換える書き換え部と
を有する
付記４に記載の修復システム。
【０１５８】
（付記１２）
第一通信網に接続され、各々が記憶部を有する複数の記憶装置が、該第一通信網及び該第一通信網の帯域幅と異なる帯域幅を有し、該第一通信網と接続された第二通信網を介して、バックアップ装置と通信することにより、前記複数の記憶装置に含まれる一の記憶装置が有する前記記憶部に記憶されたデータを修復する修復方法において、
前記記憶部に夫々記憶されたデータ及び該データのメタデータを前記複数の記憶装置から前記バックアップ装置へ送信し、
送信したデータの識別子を前記バックアップ装置により生成し、
生成したデータの識別子を前記バックアップ装置から前記複数の記憶装置のうち少なくとも前記一の記憶装置へ送信し、
前記複数の記憶装置が前記識別子を受信した場合、該識別子を前記記憶部に記憶されたデータと対応付けて該記憶部に該複数の記憶装置により夫々記憶し、
被修復データの指定を前記バックアップ装置により受け付け、
受け付けた被修復データに対応する識別子及び受信したデータに係るメタデータが関連付けられた一覧を前記バックアップ装置から前記一の記憶装置へ送信し、
前記一覧に基づいた一の記憶装置と、一又は複数の他の記憶装置との間の応答に応じて、被修復データに対応するデータを前記一の記憶装置へ送信する要求を、該一の記憶装置から前記他の記憶装置又は前記バックアップ装置へ送信し、
前記一の記憶装置が前記要求に係るデータを前記他の記憶装置又は前記バックアップ装置から受信した場合、受信した一覧及び記憶した識別子に基づいて、受信したデータを用いて前記記憶部に記憶された被修復データを前記一の記憶装置により修復する
修復方法。
【０１５９】
（付記１３）
第一通信網に接続され、記憶部を有するコンピュータに、該第一通信網及び該第一通信網の帯域幅と異なる帯域幅を有し、該第一通信網と接続された第二通信網を介してバックアップ装置と通信することにより、前記記憶部に記憶されたデータを修復する処理を実行させるプログラムにおいて、
前記記憶部に記憶されたデータ及び該データのメタデータを前記バックアップ装置に送信し、
送信したデータの識別子を受信し、
受信した識別子を前記記憶部に記憶されたデータと対応付けて該記憶部に記憶し、
被修復データに対応する識別子及び送信したデータに係るメタデータが関連付けられた一覧を前記バックアップ装置から受信し、
受信した一覧に基づいて、被修復データに対応するデータを保有しているか否かの問い合わせを前記第一通信網と接続された一又は複数の他のコンピュータに送信し、
送信した問い合わせに対する応答を前記他のコンピュータから受信し、
受信した応答に応じて、被修復データに対応するデータを前記コンピュータに送信する要求を前記他のコンピュータ又は前記バックアップ装置に送信し、
送信した要求に係るデータを前記他のコンピュータ又は前記バックアップ装置から受信し、
受信した一覧及び前記記憶部に記憶した識別子に基づいて、受信したデータを用いて前記記憶部に記憶された被修復データを修復する
処理をコンピュータに実行させることを特徴とするプログラム。
【符号の説明】
【０１６０】
１    コンピュータ（記憶装置）
１１  制御部（生成部、識別子記憶部、固有値算出部、判定部、書き換え部、修復部）
１４  ハードディスク（記憶部）
１Ｄ  元データ
１Ｐ  プログラム
１８  通信部（識別子受信部、一覧受信部、要求送信部、要求受信部、問い合わせ送信部、応答受信部、問い合わせ受信部、応答送信部、データ送信部、判定結果受信部、重複識別子受信部、送信部）
２    バックアップサーバ（バックアップ装置）
２１  制御部（算出部、同一判定部、変換部、抽出部、削除部）
２４  ハードディスク（バックアップデータ記憶部）
２７  操作部（受付部）
２Ｄ  バックアップデータ
２Ｐ  プログラム
２８  通信部（受信部、識別子送信部、一覧送信部、データ受信部、判定結果送信部、通信網データ送信部、重複識別子送信部）
４    ＬＡＮスイッチ（通信網接続装置）
１Ｎ  ローカルエリアネットワーク（第一通信網）
２Ｎ  ローカルエリアネットワーク（第三通信網）
３Ｎ  ネットワーク（第二通信網）
１Ｔ  エージェント保有データ一覧テーブル
２Ｔ  修復イメージ構成テーブル
３Ｔ  サーバ保有データ一覧テーブル
４Ｔ  データパステーブル
５Ｔ  バックアップイメージ構成テーブル
【図１】
0005786701.tif 000002
【図２】
0005786701.tif 000003
【図３】
0005786701.tif 000004
【図４】
0005786701.tif 000005
【図５】
0005786701.tif 000006
【図６】
0005786701.tif 000007
【図７】
0005786701.tif 000008
【図８】
0005786701.tif 000009
【図９】
0005786701.tif 000010
【図１０】
0005786701.tif 000011
【図１１】
0005786701.tif 000012
【図１２】
0005786701.tif 000013
【図１３】
0005786701.tif 000014
【図１４】
0005786701.tif 000015
【図１５】
0005786701.tif 000016
【図１６】
0005786701.tif 000017
【図１７】
0005786701.tif 000018
【図１８】
0005786701.tif 000019
【図１９】
0005786701.tif 000020
【図２０】
0005786701.tif 000021
【図２１】
0005786701.tif 000022
【図２２】
0005786701.tif 000023
【図２３】
0005786701.tif 000024
【図２４】
0005786701.tif 000025
【図２５】
0005786701.tif 000026