(57)【要約】【課題】データを格納する際の処理を円滑に行うこと。【解決手段】外部装置から受け付けたデータ格納要求に応じて第一記憶部にデータが格納される場合に、格納されるデータのハッシュ値およびデータ容量を対応付けたデータ情報を第二記憶部が記憶する。そして、データ格納を要求する外部装置からデータのハッシュ値およびデータ容量である格納要求データ情報を受信し、受信した格納要求データ情報と同一のデータ情報が第二記憶部に格納されているか否かを判定する。そして、同一のデータ情報がないと判定された場合のみ、格納要求データ情報を送信した外部装置に対し、格納要求データ情報に対応するデータを格納するための転送要求を行う。【選択図】        図１
2011028331.tif 000002
【特許請求の範囲】
【請求項１】
外部装置から受け付けたデータ格納要求に応じて第一の記憶部にデータを格納する場合に、当該格納するデータのハッシュ値およびデータ容量を対応付けたデータ情報を第二の記憶部に格納するデータ情報格納手順と、
データの格納を要求する外部装置から当該データのハッシュ値およびデータ容量である格納要求データ情報を受信し、当該格納要求データ情報と同一のデータ情報が前記第二の記憶部に格納されているか否かを判定する判定手順と、
前記判定手順によって同一のデータ情報がないと判定された場合のみ、前記格納要求データ情報を送信した外部装置に対し、当該格納要求データ情報に対応するデータを前記第一の記憶部に格納するための転送要求を行なう転送要求手順と、
をコンピュータに実行させることを特徴とするデータ格納プログラム。
【請求項２】
前記データ情報格納手順は、前記第一の記憶部に格納したデータを所定の容量で分割した分割データそれぞれに対応するハッシュ値である分割ハッシュ値を対応付けた分割データ情報を前記第二の記憶部に格納し、
前記判定手順は、データの格納要求を行なう外部装置からデータ格納要求を行うデータを所定の容量で分割した分割データのハッシュ値である格納要求分割ハッシュ値を順次受信し、当該順次受信した格納要求分割ハッシュ値と同一の分割ハッシュ値が前記第二の記憶部に格納されているか否かを順次判定し、
前記転送要求手順は、前記判定手順によって同一の分割ハッシュ値がないと判定された場合のみ、前記格納要求分割ハッシュ値を順次送信した外部装置に対し、当該格納要求分割ハッシュ値に対応する分割データを含めたデータすべてを前記第一の記憶部に格納するための転送要求を行なうことを特徴とする請求項１に記載のデータ格納プログラム。
【請求項３】
データの格納要求を行なう外部装置が同一データの格納要求を行なった割合と、自装置のＣＰＵ使用率とに基づいて、当該外部装置が前記第一の記憶部に格納することを要求しているデータのハッシュ値算出処理を、当該外部装置で実行するか、自装置で実行するかを決定する決定手順と、
前記決定手順によって、算出元として前記外部装置が決定された場合に、当該外部装置に対して、前記ハッシュ値算出処理を実行させるように指示し、算出元として前記自装置が決定された場合に、前記外部装置に対して、格納要求を行うデータを転送するように指示する指示手順と、
前記指示手順によって、データ転送を指示された外部装置から転送されたデータのハッシュ値を算出する算出手順と、
をさらにアーカイブ装置としてのコンピュータに実行させ、
前記判定手順は、前記算出手順によってハッシュ値が算出された場合、算出されたハッシュ値と前記第二の記憶部に格納された前記分割データ情報とを比較して判定処理を実行することを特徴とする請求項１または２に記載のデータ格納プログラム。
【請求項４】
外部装置から受け付けたデータ格納要求に応じてデータを第一の記憶部に格納する第一格納ステップと、
前記第一格納ステップによりデータを格納する場合に、当該格納するデータのハッシュ値およびデータ容量を対応付けたデータ情報を第二の記憶部に格納する第二格納ステップと、
データの格納を要求する外部装置から当該データのハッシュ値およびデータ容量である格納要求データ情報を受信し、当該格納要求データ情報と同一のデータ情報が前記第二の記憶部に格納されているか否かを判定する判定ステップと、
前記判定ステップによって同一のデータ情報がないと判定された場合のみ、前記格納要求データ情報を送信した外部装置に対し、当該格納要求データ情報に対応するデータを前記第一の記憶部に格納するための転送要求を行なう転送要求ステップと、
を含んだことを特徴とするデータ格納方法。
【請求項５】
外部装置から受け付けたデータ格納要求に応じてデータを記憶する第一の記憶部と、
前記第一の記憶部にデータが格納される場合に、当該格納されるデータのハッシュ値およびデータ容量を対応付けたデータ情報を記憶する第二の記憶部と、
データの格納を要求する外部装置から当該データのハッシュ値およびデータ容量である格納要求データ情報を受信し、当該格納要求データ情報と同一のデータ情報が前記第二の記憶部に格納されているか否かを判定する判定部と、
前記判定部によって同一のデータ情報がないと判定された場合のみ、前記格納要求データ情報を送信した外部装置に対し、当該格納要求データ情報に対応するデータを前記第一の記憶部に格納するための転送要求を行なう転送要求部と、
を有するアーカイブ装置と、
格納を要求するデータのハッシュ値を算出するハッシュ値算出部と、
前記アーカイブ装置に対して、前記ハッシュ値算出部によって算出されたハッシュ値と当該ハッシュ値の算出に用いられたデータのデータ容量とを、前記格納要求データ情報として送信する格納要求データ情報送信部と、
前記格納要求データ情報を送信したアーカイブ装置から前記転送要求を受信した場合のみ、当該転送要求を送信したアーカイブ装置に対し、当該格納要求データ情報に対応するデータを送信するデータ送信部と、
を有する外部装置と、
を有したことを特徴とするデータ格納システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データ格納プログラム、データ格納方法およびデータ格納システムに関する。
【背景技術】
【０００２】
従来より、音楽、映画、電子メール、医用画像、文書データなどのデジタルコンテンツを長期間に渡って一元的に保存するために、アーカイブ装置が用いられている。アーカイブ装置は、ネットワークを介して複数の外部装置と接続され、各外部装置から受信した種々のデジタルコンテンツ（以下、データと記す）を格納し、外部からの参照要求に従って、格納したデータを外部装置に転送する。
【０００３】
具体的には、アーカイブ装置は、複数の記憶装置（Ｄｉｓｋ  ａｒｒａｙやＴａｐｅ  ｌｉｂｒａｒｙなど）と、記憶装置への書き込み処理および記憶装置からの読み込み処理を実行する処理装置とを有する。処理装置は、各外部装置から受信したデータを記憶装置に書き込むが、その際、受信したデータごとにメタデータ（受信日、送信元、格納場所など）を生成して記憶する。そして、処理装置は、利用者の参照要求に応じて、メタデータを参照し、該当するデータを記憶装置から読み出して、外部装置に転送する。
【０００４】
ここで、アーカイブ装置は、既に格納されているデータを重複して保存することが無いように、同一データの格納を防止するシングルインスタンス機能を有している。具体的には、アーカイブ装置は、格納済みのデータごとに当該データから算出されたハッシュ値と当該データのデータ容量とを対応付けたプロパティ情報を記憶しておく。そして、アーカイブ装置は、新たに格納要求を受けたデータに対して、ハッシュ値を算出し、算出したハッシュ値および新たに格納要求を受けたデータのデータ容量を、自身が有するプロパティ情報と比較することにより、同一データが格納済みであるか否かの判定を行う。
【０００５】
例えば、アーカイブ装置は、既に自身が有するプロパティ情報にハッシュ値とデータ容量が記憶されたデータを新たに受信した場合、データの格納は行わず、メタデータのみを生成してプロパティ情報に対応付けて記憶する。
【０００６】
また、近年、データ転送によってネットワークにかかる負荷やデータの複製によってアーカイブ装置にかかる負荷を軽減させるために、データを格納している記録媒体を取り出し、持ち運ぶことができるアーカイブ装置が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平９−３３０２６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところで、上記した従来技術では、データを格納する際の処理を円滑に行うことができないという課題があった。すなわち、上記した従来技術では、データを格納する際に、アーカイブ装置がハッシュ値を算出するため、例えば、複数の外部装置からデータの格納を要求された場合、アーカイブ装置のＣＰＵ負荷が上昇し、データを格納する際の処理を円滑に行うことができない。
【０００９】
また、上記した従来技術では、シングルインスタンス機能によって格納を要求されたデータが既に格納済みであると判断された場合、転送したデータは破棄されるため、無駄なデータ転送により、ネットワークの負荷を上昇させることとなる。
【００１０】
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、データを格納する際の処理を円滑に行うことが可能となるデータ格納プログラム、データ格納方法およびデータ格納システムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するため、このプログラムは、データ情報格納手順が、外部装置から受信した格納要求に応じてデータを第一の記憶部に格納する際に、格納するデータのハッシュ値とデータ容量とを対応付けたデータ情報を第二の記憶部に格納する。そして、判定手順が、データの格納を要求する外部装置からデータのハッシュ値およびデータ容量である格納要求データ情報を受信し、格納要求データ情報と同一のデータ情報が第二の記憶部に格納されているか否かを判定する。そして、転送要求手順が、判定手順によって同一のデータ情報がないと判定された場合のみ、格納要求データ情報を送信した外部装置に対し、格納要求データ情報に対応するデータを第一の記憶部に格納するための転送要求を行う。
【発明の効果】
【００１２】
開示のプログラムは、データを格納する際の処理を円滑に行うことが可能となる。
【図面の簡単な説明】
【００１３】
【図１】図１は、実施例１におけるアーカイブ装置の構成を説明するための図である。
【図２】図２は、実施例２におけるデータ格納システムの構成を説明するための図である。
【図３】図３は、実施例２におけるハッシュ値算出部を説明するための図である。
【図４】図４は、実施例２における格納要求データ情報送信部を説明するための図である。
【図５】図５は、実施例２における第二記憶部を説明するための図である。
【図６】図６は、実施例２における転送要求部を説明するための図である。
【図７】図７は、実施例２における外部装置による処理の手順を説明するための図である。
【図８】図８は、実施例２におけるアーカイブ装置による処理の手順を説明するための図である。
【図９】図９は、実施例３におけるハッシュ値算出部を説明するための図である。
【図１０】図１０は、実施例３における第二記憶部を説明するための図である。
【図１１】図１１は、実施例３における転送要求部を説明するための図である。
【図１２】図１２は、実施例３における外部装置による処理の手順を説明するための図である。
【図１３】図１３は、実施例３におけるアーカイブ装置による処理の手順を説明するための図である。
【図１４】図１４は、実施例４におけるデータ格納システムの構成を説明するための図である。
【図１５】図１５は、外部装置情報記憶部を説明するための図である。
【図１６】図１６は、決定部および指示部を説明するための図である。
【図１７】図１７は、算出部を説明するための図である。
【図１８】図１８は、実施例４における外部装置による処理を説明するための図である。
【図１９】図１９は、実施例４におけるアーカイブ装置による処理の手順を説明するための図である。
【図２０】図２０は、実施例４におけるデータ格納プログラムを実行するコンピュータを説明するための図である。
【発明を実施するための形態】
【００１４】
以下に添付図面を参照して、本願の開示するデータ格納プログラム、データ格納方法およびデータ格納システムの実施例を詳細に説明する。なお、以下では、実施例１において、本願の開示するデータ格納プログラムを実行するアーカイブ装置について説明し、実施例２、実施例３および実施例４において、本願の開示するデータ格納システムについて説明する。
【実施例１】
【００１５】
まず最初に、図１を用いて、実施例１におけるアーカイブ装置の構成を説明する。図１は、実施例１におけるアーカイブ装置の構成を説明するための図である。
【００１６】
図１に示すように、実施例１におけるアーカイブ装置１０は、判定部２１と、転送要求部２２と、第一記憶部３１と、第二記憶部３２とを有し、外部装置７０と接続されている。
【００１７】
外部装置７０は、図示しないネットワークを介して、アーカイブ装置１０と接続され、アーカイブ装置１０に対してデータの格納要求を行う。
【００１８】
第一記憶部３１は、外部装置７０から受け付けたデータ格納要求に応じてアーカイブ装置１０が格納したデータを記憶する。
【００１９】
第二記憶部３２は、外部装置７０から受け付けたデータ格納要求に応じて、アーカイブ装置１０が第一記憶部３１にデータを格納する場合に、格納するデータのハッシュ値およびデータ容量を対応付けたデータ情報を記憶する。
【００２０】
判定部２１は、データ格納を要求する外部装置７０からデータのハッシュ値およびデータ容量である格納要求データ情報を受信し、受信した格納要求データ情報と同一のデータ情報が第二記憶部３２に格納されているか否かを判定する。
【００２１】
転送要求部２２は、判定部２１によって同一のデータ情報がないと判定された場合のみ、格納要求データ情報を送信した外部装置７０に対し、格納要求データ情報に対応するデータを第一記憶部３１に格納するための転送要求を行う。
【００２２】
［実施例１の効果］
上記したように、実施例１によれば、第二記憶部３２は、外部装置７０から受け付けたデータ格納要求に応じて第一記憶部３１にデータが格納される場合に、格納されるデータのハッシュ値およびデータ容量を対応付けたデータ情報を記憶する。そして、判定部２１は、データ格納を要求する外部装置７０からデータのハッシュ値およびデータ容量である格納要求データ情報を受信し、受信した格納要求データ情報と同一のデータ情報が第二記憶部３２に格納されているか否かを判定する。そして、転送要求部２２は、判定部２１によって同一のデータ情報がないと判定された場合のみ、格納要求データ情報を送信した外部装置７０に対し、格納要求データ情報に対応するデータを第一記憶部３１に格納するための転送要求を行う。従って、アーカイブ装置１０は、外部装置７０から受信した格納要求データ情報により、格納要求されたデータが格納済みでないと判定した場合のみ、外部装置７０にデータの転送要求を行なうことができ、データを格納する際の処理を円滑に行なうことが可能となる。
【実施例２】
【００２３】
実施例２では、上述した実施例１におけるアーカイブ装置１０と外部装置７０とを有するデータ格納システムについて説明する。
【００２４】
［実施例２におけるデータ格納システムの構成］
まず最初に、図２〜６を用いて、実施例２におけるデータ格納システムの構成を説明する。図２は、実施例２におけるデータ格納システムの構成を説明するための図であり、図３は、実施例２におけるハッシュ値算出部を説明するための図であり、図４は、実施例２における格納要求データ情報送信部を説明するための図である。また、図５は、実施例２における第二記憶部を説明するための図であり、図６は、実施例２における転送要求部を説明するための図である。
【００２５】
図２に示すように、実施例２におけるデータ格納システムは、データ格納装置としてのアーカイブ装置１０と外部装置７０とを有し、アーカイブ装置１０および外部装置７０はネットワーク６０を介して接続されている。なお、図２には外部装置７０が一つのみ図示されているが、実際には、複数の外部装置７０がネットワーク６０を介してアーカイブ装置１０と接続されている。また、外部装置７０は、例えば、会社内に設置される業務サーバや利用者個人が使用するＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）などの端末などである。
【００２６】
ネットワーク６０は、アーカイブ装置１０と外部装置７０との間で送受信されるデータを中継する通信網であり、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やＦＣ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）などである。
【００２７】
以下では、まず、実施例２における外部装置７０の構成について説明し、続いて、実施例２におけるアーカイブ装置１０の構成について説明する。
【００２８】
実施例２における外部装置７０は、アーカイブ装置１０に対して、種々のデジタルコンテンツ（以下、データと記す）の格納要求を実行し、図２に示すように、処理部８０と、記憶部９０と、入出力制御Ｉ／Ｆ部１００と、通信部１１０とを有する。
【００２９】
入出力制御Ｉ／Ｆ部１００は、通信部１１０と、処理部８０および記憶部９０との間で送受信される種々の情報を中継するインターフェースである。
【００３０】
通信部１１０は、アーカイブ装置１０との間で通信を行なう。なお、通信部１１０によってアーカイブ装置１０との間で送受信される情報に関しては、のちに詳述する。
【００３１】
記憶部９０は、外部装置７０に格納されたデータおよび後述する処理部８０の処理結果を記憶し、データ記憶部９１と格納要求データ情報記憶部９２とを有する。
【００３２】
データ記憶部９１は、外部装置７０に格納されたデータを記憶する。例えば、データ記憶部９１は、音楽、映画、電子メール、医用画像、文書データなどのデジタルコンテンツであるデータを記憶する。
【００３３】
格納要求データ情報記憶部９２は、後述する処理部８０が算出したデータのハッシュ値が、ハッシュ値の算出元であるデータのデータ容量と対応付けられた格納要求データ情報を記憶する。なお、格納要求データ情報については、後に詳述する。
【００３４】
処理部８０は、アーカイブ装置１０に対して外部装置７０がデータの格納要求を行なう際の種々の処理を実行し、ハッシュ値算出部８１と、格納要求データ情報送信部８２と、データ送信部８３とを有する。
【００３５】
ハッシュ値算出部８１は、外部装置７０の操作者がデータの格納要求を、図示しない入力部を介して入力した場合、格納要求に該当するデータ（格納要求データ）をデータ記憶部９１から読み出し、読み出したデータのハッシュ値を算出する。そして、ハッシュ値算出部８１は、算出したハッシュ値と、ハッシュ値の算出元であるデータのデータ容量とを対応付けた情報を格納要求データ情報として、格納要求データ情報記憶部９２に格納する。例えば、ハッシュ値算出部８１は、図３に示すように、データ容量が９ＭＢである格納要求データのハッシュ値「１９９９」を算出し、「ハッシュ値：１９９９、データ容量：９ＭＢ」を格納要求データ情報として、格納要求データ情報記憶部９２に格納する。
【００３６】
格納要求データ情報送信部８２は、格納要求データ情報記憶部９２に格納要求データ情報が格納されると、格納された格納要求データ情報を読み出して、通信部１１０を介して、アーカイブ装置１０に送信する。例えば、格納要求データ情報送信部８２は、図４に示すように自身が搭載されている業務サーバＡである外部装置７０から、格納要求データ情報「ハッシュ値：１９９９、データ容量：９ＭＢ」をアーカイブ装置１０に送信する。
【００３７】
なお、図４に示すコンテンツ管理プロセッサは、アーカイブ装置１０におけるデータ（デジタルコンテンツ）管理を行なう装置であり、後に説明するアーカイブ装置１０の処理部２０および第二記憶部３２および判定結果記憶部３３に対応する（図２参照）。また、図４に示すストレージおよびテープライブラリは、後に説明するアーカイブ装置１０の第一記憶部３１に対応する（図２参照）。
【００３８】
データ送信部８３は、通信部１１０がアーカイブ装置１０から格納要求データの転送要求を受信した場合、データ記憶部９１から格納要求データを読み出して、読み出した格納要求データをアーカイブ装置１０に通信部１１０を介して送信する。例えば、データ送信部８３は、格納要求データ情報「ハッシュ値：１９９９、データ容量：９ＭＢ」に対応するデータの転送要求を受信した場合、データ記憶部９１から該当するデータを読み出してアーカイブ装置１０に送信する。
【００３９】
続いて、実施例２におけるアーカイブ装置１０の構成について説明する。実施例２におけるアーカイブ装置１０は、ネットワーク６０を介して接続された外部装置７０から受信したデータを記憶する装置であり、処理部２０と、記憶部３０と、入出力制御Ｉ／Ｆ部４０と、通信部５０とを有する。
【００４０】
入出力制御Ｉ／Ｆ部４０は、通信部５０と、処理部２０および記憶部３０との間で送受信される種々の情報を中継するインターフェースである。
【００４１】
通信部５０は、外部装置７０との間で通信を行なう。なお、通信部５０によって外部装置７０との間で送受信される情報に関しては、のちに詳述する。
【００４２】
記憶部３０は、後述する処理部２０によってアーカイブ装置１０に格納すると判定されたデータおよび後述する処理部２０の処理結果を記憶し、第一記憶部３１と、第二記憶部３２と、判定結果記憶部３３とを有する。
【００４３】
第一記憶部３１は、外部装置７０から受信したデータを記憶する。具体的には、第一記憶部３１は、外部装置７０がアーカイブ装置１０からの転送要求に応じて送信したデータ（格納要求データ）を記憶する。なお、第一記憶部３１は、図４に示すように、ストレージおよびテープライブラリを有する。例えば、ストレージは、格納要求データを記憶するための主記憶媒体として用いられ、テープライブラリは、ストレージに記憶されたデータのバックアップ用記憶媒体として用いられる。
【００４４】
第二記憶部３２は、第一記憶部３１にデータが格納される際に、格納されるデータの各種情報を記憶する。具体的には、第二記憶部３２は、第一記憶部３１にアーカイブされるデータのハッシュ値およびデータ容量であるデータ情報を記憶する。さらに、第二記憶部３２は、データ情報と対応付けて第一記憶部３１にアーカイブされるデータを一意に特定するためのアーカイブＩＤと、第一記憶部３１における格納場所を一意に特定するための格納先パスとを記憶する。以下、データ情報と、アーカイブＩＤと、格納先パスとが対応付けられた情報を、属性情報と記載する。
【００４５】
例えば、第二記憶部３２は、図５に示すように、属性情報として「アーカイブＩＤ：００１、ハッシュ値：１４５６、データ容量：１００ＭＢ、格納先パス：／ｄａｔａ／１」などを記憶する。また、第二記憶部３２は、図５に示すように、属性情報として「アーカイブＩＤ：００２、ハッシュ値：２７８９、データ容量：２０ＭＢ、格納先パス：／ｄａｔａ／２」などを記憶する。
【００４６】
なお、判定結果記憶部３３は、後述する判定部２１の判定結果を記憶するが、判定結果の内容については、後に説明する。
【００４７】
処理部２０は、外部装置７０から受信したデータの格納要求に応じて各種処理を実行し、判定部２１と、転送要求部２２と、データ情報格納部２３と、データ格納部２４とを有する。
【００４８】
判定部２１は、外部装置７０から受信した格納要求データ情報と第二記憶部３２が記憶する属性情報のデータ情報とを比較し、格納要求データ情報と同一のデータ情報が第二記憶部３２に格納されているか否かを判定する。具体的には、判定部２１は、格納要求データのハッシュ値と同一であり、かつ、格納要求データのデータ容量と同一であるデータ情報が含まれる属性情報が第二記憶部３２に格納されているか否かを判定し、判定結果を判定結果記憶部３３に格納する。
【００４９】
例えば、判定部２１は、外部装置７０から格納要求データ情報「ハッシュ値：１９９９、データ容量：９ＭＢ」を受信した場合、図５に示す属性情報すべてを参照し、「ハッシュ値：１９９９、データ容量：９ＭＢ」があるか否かを判定する。そして、仮に、同一のデータ情報が格納されていなかった場合、判定部２１は、「同一データ：無」とする判定結果を判定結果記憶部３３に格納する。一方、同一のデータ情報が格納されていた場合、判定部２１は、「同一データ：有」とする判定結果を判定結果記憶部３３に格納する。
【００５０】
転送要求部２２は、判定結果記憶部３３に「同一データ：無」とする判定結果が格納された場合のみ、外部装置７０に対して格納要求データの転送要求を行う。例えば、転送要求部２２は、図６に示すように、外部装置７０である業務サーバＡに対して格納要求データを転送するように要求する。
【００５１】
データ情報格納部２３は、判定部２１により同一のデータが格納されていないと判定された後、転送要求部２２の転送要求により外部装置７０から転送された格納要求データの属性情報を生成し、第二記憶部３２に格納する。具体的には、データ情報格納部２３は、格納要求データに対してアーカイブＩＤを付与し、アーカイブＩＤに格納要求データ情報（ハッシュ値およびデータ容量）および格納先パスなどを対応付けた属性情報を生成して、第二記憶部３２に格納する。そして、データ情報格納部２３は、格納要求データの送信元である外部装置７０に対して、アーカイブＩＤを送信する。
【００５２】
また、データ情報格納部２３は、判定部２１によって格納要求データが既に格納済みであると判定された場合、格納要求データと同一の格納済みのデータのアーカイブＩＤを、格納を要求した外部装置７０に送信する。
【００５３】
なお、外部装置７０は、受信したアーカイブＩＤを図示しない記憶部に格納する。そして、外部装置７０は、格納したアーカイブＩＤに対応するデータをデータ記憶部９１から適宜削除する。
【００５４】
データ格納部２４は、判定部２１により同一のデータが格納されていないと判定された後、転送要求部２２の転送要求により外部装置７０から転送された格納要求データを第一記憶部３１に格納する。
【００５５】
［実施例２におけるデータ格納システムによる処理の手順］
次に、図７および図８を用いて、実施例２におけるデータ格納システムによる処理を説明する。図７は、実施例２における外部装置による処理の手順を説明するための図であり、図８は、実施例２におけるアーカイブ装置による処理の手順を説明するための図である。
【００５６】
［実施例２における外部装置による処理の手順］
図７に示すように、まず、実施例２における外部装置７０は、格納コマンド受け付けると（ステップＳ１０１肯定）、ハッシュ値算出部８１は、格納を要求するデータである格納要求データのハッシュ値を算出する（ステップＳ１０２）。具体的には、外部装置７０の操作者がデータの格納要求を、図示しない入力部を介して入力した場合、ハッシュ値算出部８１は、格納要求データをデータ記憶部９１から読み出し、読み出したデータのハッシュ値を算出する。
【００５７】
そして、格納要求データ情報送信部８２は、格納要求データのハッシュ値およびデータ容量である格納要求データ情報をアーカイブ装置１０に送信する（ステップＳ１０３）。
【００５８】
続いて、アーカイブ装置１０から情報を受信すると（ステップＳ１０４肯定）、実施例２における外部装置７０は、受信した情報がデータの転送要求であるか否かの判定をする（ステップＳ１０５）。
【００５９】
ここで、受信した情報がデータの転送要求であった場合（ステップＳ１０５肯定）、データ送信部８３は、格納要求データをアーカイブ装置１０に送信し（ステップＳ１０６）、外部装置７０は、アーカイブ装置１０からアーカイブＩＤを受信したか否かの判定を行う（ステップＳ１０７）。
【００６０】
一方、受信した情報がデータの転送要求ではなかった場合（ステップＳ１０５否定）、外部装置７０は、ステップＳ１０７のアーカイブＩＤを受信したか否かの判定を行う。
【００６１】
そして、アーカイブ装置１０からアーカイブＩＤを受信すると（ステップＳ１０７肯定）、外部装置７０は、受信したアーカイブＩＤを格納し（ステップＳ１０８）、処理を終了する。
【００６２】
［実施例２におけるアーカイブ装置による処理の手順］
図８に示すように、まず、実施例２におけるアーカイブ装置１０は、外部装置７０から格納要求データ情報を受信すると（ステップＳ２０１肯定）、判定部２１は、同一のデータ情報が第二記憶部３２に格納されているか否かの判定を行う（ステップＳ２０２）。具体的には、判定部２１は、格納要求データのハッシュ値と同一であり、かつ、格納要求データのデータ容量と同一であるデータ情報が含まれる属性情報が第二記憶部３２に格納されているか否かの判定を行う。
【００６３】
ここで、同一のデータ情報が格納されていない場合（ステップ２０２否定）、転送要求部２２は、格納要求データ情報を送信した外部装置７０に対して、格納要求データの転送を要求する（ステップＳ２０３）。
【００６４】
そして、外部装置７０から格納要求データを受信すると（ステップＳ２０４肯定）、データ情報格納部２３は、格納要求データの属性情報を生成し、生成した属性情報を第二記憶部３２に格納して、外部装置７０にアーカイブＩＤを送信する（ステップＳ２０５）。
【００６５】
そののち、データ格納部２４は、外部装置７０から受信した格納要求データを第一記憶部３１に格納して（ステップＳ２０６）、処理を終了する。
【００６６】
一方、同一のデータ情報が格納されていると判定された場合（ステップＳ２０２肯定）、データ情報格納部２３は、送信元の外部装置７０に対して、アーカイブＩＤを送信し（ステップＳ２０７）、処理を終了する。具体的には、データ情報格納部２３は、格納要求データと同一の格納済みのデータのアーカイブＩＤを外部装置７０に送信して、処理を終了する。
【００６７】
［実施例２の効果］
上記したように、実施例２によれば、アーカイブ装置１０において、データ情報格納部２３は、外部装置７０からの要求に応じて第一記憶部３１にデータを格納する際、データのハッシュ値およびデータ容量を対応付けたデータ情報を、第二記憶部３２に格納する。判定部２１は、データ格納を要求する外部装置７０からデータのハッシュ値およびデータ容量である格納要求データ情報を受信し、受信した格納要求データ情報と同一のデータ情報が第二記憶部３２に格納されているか否かを判定する。転送要求部２２は、判定部２１によって同一のデータ情報がないと判定された場合のみ、格納要求データ情報を送信した外部装置７０に対し、格納要求データ情報に対応するデータを第一記憶部３１に格納するための転送要求を行う。また、外部装置７０において、ハッシュ値算出部８１は、格納要求データのハッシュ値を算出し、格納要求データ情報送信部８２は、アーカイブ装置１０に対し、格納要求データ情報を送信する。そして、データ送信部８３は、格納要求データ情報を送信したアーカイブ装置１０から転送要求を受信した場合のみ、転送要求を送信したアーカイブ装置１０に対し、格納要求データ情報に対応する格納要求データを送信する。従って、アーカイブ装置１０に格納済みのデータを転送するために生じるネットワーク６０への負荷や、ハッシュ値を算出することによるアーカイブ装置１０のＣＰＵへの負荷が増大することを回避でき、データを格納する際の処理を円滑に行うことが可能となる。
【実施例３】
【００６８】
上述した実施例１および２では、格納要求データをアーカイブ装置１０に新規に格納するか否かを、格納要求データ全体から算出されるハッシュ値により判定する場合について説明した。実施例３では、格納要求データをアーカイブ装置１０に新規に格納するか否かを、格納要求データを分割した分割データから算出したハッシュ値により判定する場合について説明する。
【００６９】
［実施例３におけるデータ格納システムの構成］
まず最初に、図２と図９〜１１とを用いて、実施例３におけるデータ格納システムの構成を説明する。図２は、実施例２におけるデータ格納システムの構成を示す図であり、図９は、実施例３におけるハッシュ値算出部を説明するための図である。また、図１０は、実施例３における第二記憶部を説明するための図であり、図１１は、実施例３における転送要求部を説明するための図である。
【００７０】
実施例３におけるデータ格納システムは、図２に示すように、実施例２におけるデータ格納システムと同様の機能ブロック図からなるが、ハッシュ値算出部８１が行う処理の内容が実施例２と異なる。また、実施例３におけるデータ格納システムは、第二記憶部３２が記憶する内容と、判定部２１および転送要求部２２が行う処理の内容とが、実施例２と異なる。以下、これらを中心に説明する。
【００７１】
まず、実施例３における外部装置７０の処理において、実施例２と異なる点について、以下に説明する。実施例３におけるハッシュ値算出部８１は、アーカイブ装置１０からの指示に基づいて、格納を要求するデータである格納要求データの所定の容量ごとに分割した分割データのハッシュ値を順次算出し、算出したハッシュ値を格納要求データ記憶部９２に順次格納する。
【００７２】
例えば、ハッシュ値算出部８１は、アーカイブ装置１０からの指示に基づいて、図９の（１）に示すように、「９ＭＢ」の格納要求データを「１ＭＢ」ごとに分割した分割データの最初の「１ＭＢ」分のハッシュ値を算出し、格納要求データ情報記憶部９２に格納する。そして、実施例３におけるハッシュ値算出部８１は、アーカイブ装置１０からハッシュ値算出の指示を再度受信した場合、図９の（２）に示すように、最初の「１ＭＢ」に、さらに「１ＭＢ」分の分割データを加えた「２ＭＢ」の分割データのハッシュ値を算出し、格納要求データ情報記憶部９２に格納する。
【００７３】
すなわち、実施例３におけるハッシュ値算出部８１は、アーカイブ装置１０からハッシュ値算出要求を受信するごとに、１ＭＢずつデータ容量を増大した分割データ（１ＭＢ、２ＭＢ、３ＭＢ、・・・、９ＭＢ）のハッシュ値を順次算出する。そして、実施例３におけるハッシュ値算出部８１は、算出したハッシュ値と、算出元となる分割データのデータ容量とを対応付けた情報を格納要求データ情報として、格納要求データ情報記憶部９２に格納する。
【００７４】
格納要求データ情報送信部８２は、格納要求データ情報記憶部９２に分割データの格納要求データ情報が格納されるごとに、格納要求データ情報を格納要求データ情報記憶部９２から読み出して、アーカイブ装置１０に送信する。
【００７５】
次に、実施例３におけるアーカイブ装置１０の処理において、実施例２と異なる点について、以下に説明する。実施例３における第二記憶部３２は、同一の属性情報においてハッシュ値を複数記憶する点が実施例２と異なる。すなわち、実施例３における第二記憶部３２は、第一記憶部３１に格納されたデータ全体から算出されたハッシュ値とともに、第一記憶部３１に格納されたデータが上述した所定の容量で分割された分割データそれぞれから算出されたハッシュ値を記憶する。
【００７６】
具体的には、所定の容量が１ＭＢであり、第一記憶部３１に格納されたデータが５ＭＢである場合、第二記憶部３２は、「全データ（５ＭＢ）」のハッシュ値とともに、「１ＭＢ、２ＭＢ、３ＭＢおよび４ＭＢそれぞれの分割データ」のハッシュ値を記憶する。
【００７７】
例えば、第二記憶部３２は、図１０に示すように、属性情報として、アーカイブＩＤ「００１」、ハッシュ値、格納先パス「／ｄａｔａ／１」、データ容量「１００ＭＢ」などを記憶する。ここで、第二記憶部３２は、図１０に示すように、アーカイブＩＤ「００１」のハッシュ値として、「１ＭＢ：１１１１」、「２ＭＢ：１２２２」、「・：・」、「ｎＭＢ：１１３６」、「・：・」、「全データ：１４５６」を記憶する。また、第二記憶部３２は、図１０に示すように、属性情報として、アーカイブＩＤ「００２」、ハッシュ値、格納先パス「／ｄａｔａ／２」、データ容量「２０ＭＢ」などを記憶する。ここで、第二記憶部３２は、図１０に示すように、アーカイブＩＤ「００２」のハッシュ値として、「１ＭＢ：２２２２」、「２ＭＢ：２３３３」、「・：・」、「ｎＭＢ：２２６９」、「・：・」、「全データ：２７８９」を記憶する。
【００７８】
実施例３における判定部２１は、格納要求データ情報として、分割データのハッシュ値を外部装置７０から順次受信し、受信したハッシュ値と同一のハッシュ値が第二記憶部３２に格納されているか否かを順次判定する。具体的には、判定部２１は、分割データのハッシュ値を受信するごとに、分割データの容量と同一の容量において、受信したハッシュ値と同一のハッシュ値が第二記憶部３２に格納されているか否かを判定し、判定結果を判定結果記憶部３３に格納する。
【００７９】
例えば、判定部２１は、「１ＭＢ」の分割データのハッシュ値を受信した場合、図１０に示す属性情報の「１ＭＢ：ハッシュ値」すべてを参照し、同一のハッシュ値があるか否かを判定する。そして、仮に、同一のハッシュ値が格納されていなかった場合、判定部２１は、「１ＭＢ：ハッシュ値、同一データ：無」とする判定結果を判定結果記憶部３３に格納する。一方、同一のハッシュ値が格納されていた場合、判定部２１は、「１ＭＢ：ハッシュ値、同一データ：有」とする判定結果を判定結果記憶部３３に格納する。
【００８０】
実施例３における転送要求部２２は、判定結果記憶部３３に同一のハッシュ値がないという判定結果が格納された場合のみ、外部装置７０に対して、判定に用いたハッシュ値に対応する分割データを含めた格納要求データすべてを転送するように要求する。例えば、転送要求部２２は、図９に示す「１ＭＢ」の分割データのハッシュ値を用いた判定において、同一のハッシュ値がないと判定された場合、外部装置７０に対して、「９ＭＢ」の格納要求データすべてを転送するように要求する。
【００８１】
また、実施例３における転送要求部２２は、判定結果記憶部３３に同一のハッシュ値があるという判定結果が格納された場合、外部装置７０に対して格納要求データの新たな分割データのハッシュ値の転送を要求する。具体的には、実施例３における転送要求部２２は、同一のハッシュ値があると判定されたハッシュ値に対応する分割データを含めた新たな分割データのハッシュ値を転送するように要求する。
【００８２】
例えば、実施例３における転送要求部２２は、図１１に示すように、「新たな１ＭＢ分割データ」に「判定済み１ＭＢ分割データ」を加えた合計「２ＭＢ分割データ」のハッシュ値を転送するように外部装置７０である業務サーバＡに要求する。
【００８３】
そして、すべての分割データのハッシュ値に対して「同一データ：有」とする判定結果が格納された場合、転送要求部２２は、外部装置７０に対して、格納要求データ全体のハッシュ値である「全データ：ハッシュ値」およびデータ容量を転送するように要求する。
【００８４】
そして、「全データ：ハッシュ値、同一データ：有」とする判定結果が格納された場合、転送要求部２２は、外部装置７０に対して、格納要求データと同一のデータが格納済みであることを通知する。
【００８５】
［実施例３におけるデータ格納システムによる処理の手順］
次に、図１２および図１３を用いて、実施例３におけるデータ格納システムによる処理の手順を説明する。図１２は、実施例３における外部装置による処理の手順を説明するための図であり、図１３は、実施例３におけるアーカイブ装置による処理の手順を説明するための図である。
【００８６】
図１２に示すように、まず、実施例３における外部装置７０は、格納コマンドを受け付けると（ステップＳ３０１肯定）、ハッシュ値算出部８１は、格納要求データを分割した分割データのハッシュ値を算出する（ステップＳ３０２）。
【００８７】
そして、格納要求データ情報送信部８２は、分割データのハッシュ値をアーカイブ装置１０に送信する（ステップＳ３０３）。
【００８８】
続いて、アーカイブ装置１０から情報を受信すると（ステップＳ３０４肯定）、実施例３における外部装置７０は、情報がデータの転送要求であるか否かの判定をする（ステップＳ３０５）。
【００８９】
ここで、データの転送要求であった場合（ステップＳ３０５肯定）、データ送信部８３は、格納要求データ情報送信部８２によって送信されたハッシュ値に対応する分割データを含めた格納要求データをアーカイブ装置１０に送信する（ステップＳ３０６）。そして、外部装置７０は、アーカイブ装置１０からアーカイブＩＤを受信したか否かの判定を行う（ステップＳ３０８）。
【００９０】
一方、受信した情報が、分割データのハッシュ値再送信要求であり、データの転送要求でない場合（ステップＳ３０５否定）、外部装置７０は、格納要求データ全体のデータである全データのハッシュ値を送信したか否かの判定を行う（ステップＳ３０７）。
【００９１】
ここで、全データのハッシュ値を送信していない場合（ステップＳ３０７否定）、ハッシュ値算出部８１は、ステップＳ３０２に戻って、再度ハッシュ値の算出を行う。具体的には、ハッシュ値算出部８１は、直前に算出したハッシュ値に対応する分割データを含めた新たな分割データのハッシュ値を算出する。
【００９２】
一方、全データのハッシュ値を送信している場合（ステップＳ３０７肯定）、外部装置７０は、ステップＳ３０８のアーカイブＩＤを受信したか否かの判定を行う。
【００９３】
そして、アーカイブ装置１０からアーカイブＩＤを受信すると（ステップＳ３０８肯定）、外部装置７０は、受信したアーカイブＩＤを格納し（ステップＳ３０９）、処理を終了する。
【００９４】
［実施例３におけるアーカイブ装置による処理の手順］
図１３に示すように、まず、実施例３におけるアーカイブ装置１０は、外部装置７０からハッシュ値を受信すると（ステップＳ４０１肯定）、判定部２１は、同一のハッシュ値が第二記憶部３２に格納されているか否かの判定を行う（ステップＳ４０２）。具体的には、判定部２１は、分割データのデータ容量において、格納要求データ情報送信部８２から受信したハッシュ値と同一のハッシュ値が、第二記憶部３２に格納されているか否かの判定を行う。
【００９５】
ここで、同一のハッシュ値が格納されていなかった場合（ステップＳ４０２否定）、転送要求部２２は、外部装置７０に対して、ハッシュ値に対応する分割データを含む格納要求データの転送を要求する（ステップＳ４０３）。
【００９６】
そして、外部装置７０から格納要求データを受信すると（ステップＳ４０４肯定）、データ情報格納部２３は、格納要求データの属性情報を生成し、生成した属性情報を第二記憶部３２に格納して、外部装置７０に対してアーカイブＩＤを送信する（ステップＳ４０５）。
【００９７】
そののち、データ格納部２４は、外部装置７０から受信した格納要求データを第一記憶部３１に格納して（ステップＳ４０６）、処理を終了する。
【００９８】
一方、同一のデータ情報が格納されていると判定された場合（ステップＳ４０２肯定）、転送要求部２２は、全データのハッシュ値を比較したか否かの判定を行う（ステップＳ４０７）。具体的には、転送要求部２２は、格納要求データ全体のデータ容量におけるハッシュ値の判定が行われたか否かの判定を行う。
【００９９】
ここで、全データのハッシュ値を判定していない場合（ステップＳ４０７否定）、転送要求部２２は、外部装置７０に対して、ハッシュ値算出を指示する（ステップＳ４０８）。
【０１００】
一方、全データのハッシュ値を判定した場合（ステップＳ４０７肯定）、データ情報格納部２３は、外部装置７０に対してアーカイブＩＤを送信し（ステップＳ４０９）、処理を終了する。具体的には、データ情報格納部２３は、格納要求データと同一の格納済みのデータに対応するアーカイブＩＤを外部装置７０に送信して、処理を終了する。
【０１０１】
［実施例３の効果］
上記したように、実施例３によれば、アーカイブ装置１０において、第二記憶部３２は、第一記憶部３１に格納したデータを所定の容量で分割した分割データそれぞれに対応するハッシュ値を記憶する。そして、判定部２１は、データの格納要求を行う外部装置７０から格納要求データの分割データのハッシュ値を順次受信し、順次受信したハッシュ値と同一のハッシュ値が第二記憶部３２に格納されているか否かを判定する。そして、転送要求部２２は、判定部２１によって同一のハッシュ値がないと判定された場合のみ、ハッシュ値を送信した外部装置７０に対して、ハッシュ値に対応する分割データを含めた格納要求データを第一記憶部３１に格納するための転送要求を行う。また、外部装置７０において、ハッシュ値算出部８１は、分割データそれぞれのハッシュ値を算出し、格納要求データ情報送信部８２は、格納要求データの分割データのハッシュ値を、アーカイブ装置１０に対して順次送信する。そして、データ送信部８３は、分割データのハッシュ値を順次受信したアーカイブ装置１０から転送要求を受信した場合のみ、転送要求を受信したアーカイブ装置１０に対し、ハッシュ値に対応する分割データを含む格納要求データすべてを送信する。従って、実施例３におけるデータ格納システムは、ハッシュ値を算出する外部装置７０におけるＣＰＵ負荷を軽減することにより、同一データが格納済みであるか否かの判定処理を円滑に行うことができ、データを格納する際の処理をより円滑に行うことが可能となる。
【実施例４】
【０１０２】
上述した実施例１〜３では、ハッシュ値を外部装置７０において算出する場合について説明したが、実施例４では、アーカイブ装置１０と外部装置７０とで適宜切り替えてハッシュ値を算出する場合について説明する。
【０１０３】
［実施例４におけるデータ格納システムの構成］
まず最初に、図１４〜１７を用いて、実施例４におけるデータ格納システムの構成を説明する。図１４は、実施例４におけるデータ格納システムの構成を説明するための図であり、図１５は、外部装置情報記憶部を説明するための図である。また、図１６は、決定部および指示部を説明するための図であり、図１７は、算出部を説明するための図である。
【０１０４】
実施例４におけるデータ格納システムは、図１４に示すように、実施例２および実施例３におけるデータ格納システムと比較して、アーカイブ装置１０において、決定部２５、指示部２６および算出部２７を新たに有する点が異なる。また、実施例４におけるデータ格納システムは、図１４に示すように、実施例２および実施例３におけるデータ格納システムと比較して、アーカイブ装置１０において、外部装置情報記憶部３４、決定結果記憶部３５および格納要求データ情報記憶部３６を新たに有する点が異なる。また、実施例４におけるデータ格納システムは、実施例２および実施例３におけるデータ格納システムと比較して、判定部２１が行う処理の内容が実施例２および実施例３と異なる。以下、これらを中心に説明する。
【０１０５】
外部装置情報記憶部３４は、アーカイブ装置１０にデータを格納した外部装置７０ごとに、同一データの格納要求を行った割合（以下、シングルインスタンス化率と記す）を対応付けた外部装置情報を記憶する。具体的には、外部装置情報記憶部３４は、外部装置７０ごとにシングルインスタンス化率を対応付けた外部装置情報を記憶する。例えば、外部装置情報記憶部３４は、図１５に示すように、外部装置情報「外部装置：業務サーバＡ、シングルインスタンス化率（％）：９０」、外部装置情報「外部装置：業務サーバＢ、シングルインスタンス化率（％）：３０」を記憶する。
【０１０６】
決定結果記憶部３５は、後述する決定部２５によって決定された決定結果を記憶する。なお、決定結果については、後述する。
【０１０７】
格納要求データ情報記憶部３６は、後述する算出部２７によって算出された格納要求データ情報を記憶する。なお、算出部２７によって算出される格納要求データ情報については後述する。
【０１０８】
決定部２５は、通信部５０を介して、外部装置７０からデータの格納要求を受信した際に、データのハッシュ値を算出するハッシュ値算出処理を、外部装置７０で実行するか、アーカイブ装置１０で実行するかを決定し、決定結果を決定結果記憶部３５に格納する。具体的には、決定部２５は、外部装置情報記憶部３４が記憶する外部装置情報およびアーカイブ装置１０のＣＰＵ使用率に基づいて、ハッシュ値算出処理を、外部装置７０で実行するか、アーカイブ装置１０で実行するかを決定する。
【０１０９】
例えば、図１６の（Ａ）に示すように、外部装置７０である業務サーバＡからデータの格納要求をアーカイブ装置１０が受信したとする。上記した場合、決定部２５は、図１５に示す外部装置情報に含まれる「外部装置：業務サーバＡ、シングルインスタンス化率（％）：９０」を参照し、予め設定された閾値以上であるか否かを判定する。ここで、仮に、「シングルインスタンス化率」の閾値が「８５％」であった場合、決定部２５は、「業務サーバＡ」がハッシュ値を算出すると決定する。
【０１１０】
また、図１６の（Ａ）に示すように、外部装置７０である業務サーバＢからデータの格納要求をアーカイブ装置１０が受信し、「シングルインスタンス化率」の閾値が「８５％」であったとする。上記した場合、決定部２５は、図１５に示す「外部装置：業務サーバＢ、シングルインスタンス化率（％）：３０」を参照し、「業務サーバＢ」の「シングルインスタンス化率」が閾値以下であることから、次に、ＣＰＵ使用率に基づいたハッシュ決定処理を行う。
【０１１１】
具体的には、決定部２５は、データの格納要求を受信した時点におけるアーカイブ装置１０のＣＰＵ使用率が所定の閾値以上であるか否かにより、ハッシュ値算出処理を、外部装置７０で実行するか、アーカイブ装置１０で実行するかを決定する。
【０１１２】
ここで、アーカイブ装置１０のＣＰＵ使用率が所定の閾値以上であった場合、外部装置７０である「業務サーバＢ」がハッシュ値算出処理を実行すると決定する。一方、アーカイブ装置１０のＣＰＵ使用率が所定の閾値以下であった場合、決定部２５は、アーカイブ装置１０がハッシュ値算出処理を実行すると決定する。
【０１１３】
そして、決定部２５は、上述したように決定した決定結果を決定結果記憶部３５に格納する。具体的には、決定部２５は、ハッシュ値算出処理を実行する装置の情報を、決定結果記憶部３５に格納する。
【０１１４】
図１４に戻って、指示部２６は、決定結果記憶部３５が記憶する決定結果に基づいて、種々のコマンドを外部装置７０に対して指示する。具体的には、決定結果記憶部３５に、外部装置７０がハッシュ値算出処理を実行する決定結果が格納されていた場合、指示部２６は、図１６の（Ｂ）に示すように、ハッシュ値算出処理を実行するように指示する。
【０１１５】
一方、決定結果記憶部３５に、アーカイブ装置１０がハッシュ値算出処理を実行する決定結果が格納されていた場合、指示部２６は、図１６の（Ｂ）に示すように、外部装置７０に対して格納要求に対応する格納要求データを転送するように指示する。
【０１１６】
算出部２７は、指示部２６の格納要求データの転送指示に応じて、外部装置７０のデータ送信部８３から送信された格納要求データを受信し、受信した格納要求データのハッシュ値を算出する。そして、算出部２７は、算出したハッシュ値およびデータ容量を格納要求データ情報記憶部３６に格納する。例えば、算出部２７は、図１７に示すように、業務サーバＡから格納要求データを受信し、受信した格納要求データのハッシュ値を算出して、算出したハッシュ値およびデータ容量を格納要求データ情報記憶部３６に格納する。
【０１１７】
実施例４における判定部２１は、外部装置７０によって算出されたハッシュ値による判定処理に加えて、算出部２７によって算出されたハッシュ値と第二記憶部３２が記憶する属性情報とを比較して判定処理を実行する。具体的には、実施例４における判定部２１は、算出部２７により格納要求データ情報が格納されると、格納要求データのハッシュ値およびデータ容量と同一のデータ情報を含む属性情報が第二記憶部３２に記憶されているか否かを判定する。そして、実施例４における判定部２１は、判定結果を判定結果記憶部３３に格納する。
【０１１８】
［実施例４におけるデータ格納システムによる処理の手順］
次に、図１８および図１９を用いて、実施例４におけるデータ格納システムによる処理を説明する。図１８は、実施例４における外部装置による処理を説明するための図であり、図１９は、実施例４におけるアーカイブ装置による処理の手順を説明するための図である。なお、図１８に示すステップＳ５０５〜Ｓ５１１の処理それぞれは、図７に示すステップＳ１０２〜Ｓ１０８の処理それぞれと同一であることから、説明を省略する。また、図１９に示すステップＳ６１２〜Ｓ６１８の処理それぞれは、図８に示すステップＳ２０１〜Ｓ２０７の処理それぞれと同一であることから、説明を省略する。
【０１１９】
［実施例４における外部装置による処理の手順］
図１８に示すように、実施例４における外部装置７０は、格納コマンドを受け付けると（ステップＳ５０１肯定）、通信部１１０は、データの格納要求をアーカイブ装置１０に対して送信する（ステップＳ５０２）。
【０１２０】
そして、アーカイブ装置１０から指示を受信すると（ステップＳ５０３肯定）、実施例４における外部装置７０は、ハッシュ値の算出指示であるか否かの判定を行う（ステップＳ５０４）。
【０１２１】
ここで、ハッシュ値の算出指示であった場合（ステップＳ５０４肯定）、ハッシュ値算出部８１は、格納要求データのハッシュ値を算出する（ステップＳ５０５）。
【０１２２】
一方、ハッシュ値の算出指示ではなかった場合（ステップＳ５０４否定）、データ送信部８３は、アーカイブ装置１０に対して、格納要求データを送信する（ステップＳ５０９）。
【０１２３】
［実施例４におけるアーカイブ装置による処理の手順］
図１９に示すように、まず、実施例４におけるアーカイブ装置１０は、外部装置７０からデータの格納要求を受信すると（ステップＳ６０１肯定）、決定部２５は、外部装置情報記憶部３４に格納されている外部装置情報を読み出す（ステップＳ６０２）。
【０１２４】
そして、決定部２５は、格納要求を送信した外部装置７０のシングルインスタンス化率が閾値以上であるか否かの判定を行う（ステップＳ６０３）。具体的には、決定部２５は、格納要求を送信した外部装置７０が同一データの格納要求を行った割合が、閾値以上であるか否かの判定を行う。
【０１２５】
ここで、シングルインスタンス化率が閾値以上であった場合（ステップＳ６０３肯定）、決定部２５は、外部装置７０においてハッシュ値算出処理を実行することを決定し、指示部２６は、外部装置７０にハッシュ値算出を指示する（ステップＳ６０４）。
【０１２６】
一方、シングルインスタンス化率が閾値未満であった場合（ステップＳ６０３否定）、決定部２５は、アーカイブ装置１０のＣＰＵ使用率が閾値以下であるか否かの判定を行う（ステップＳ６０５）。
【０１２７】
ここで、アーカイブ装置１０のＣＰＵ使用率が閾値以上であった場合（ステップＳ６０５肯定）、決定部２５は、外部装置７０においてハッシュ値算出処理を実行することを決定し、指示部２６は、外部装置７０にハッシュ値算出を指示する（ステップＳ６０４）。
【０１２８】
一方、アーカイブ装置１０のＣＰＵ使用率が閾値未満であった場合（ステップＳ６０５否定）、決定部２５は、アーカイブ装置１０においてハッシュ値算出処理を実行することを決定する。そして、指示部２６は、外部装置７０に格納要求データの転送を指示する（ステップＳ６０６）。
【０１２９】
そして、格納要求データを受信すると（ステップＳ６０７肯定）、算出部２７は、受信した格納要求データのハッシュ値を算出する（ステップＳ６０８）。
【０１３０】
そののち、判定部２１は、算出部２７が算出したハッシュ値および格納要求データのデータ容量と同一のデータ情報が第二記憶部３２に格納されているか否かの判定を行う（ステップＳ６０９）。
【０１３１】
ここで、同一のデータ情報が格納されている場合（ステップＳ６０９肯定）、データ情報格納部２３は、格納要求データと同一の格納済みのデータに対応するアーカイブＩＤを送信元の外部装置７０に送信して（ステップＳ６１８）、処理を終了する。
【０１３２】
一方、同一のデータ情報が格納されていない場合（ステップＳ６０９否定）、データ情報格納部２３は、格納要求データの属性情報を生成し、生成した属性情報を第二記憶部３２に格納して、外部装置７０にアーカイブＩＤを送信する（ステップＳ６１０）。
【０１３３】
そののち、データ格納部２４は、外部装置７０から受信した格納要求データを第一記憶部３１に格納して（ステップＳ６１１）、処理を終了する。
【０１３４】
なお、上記した処理の手順では、格納要求データをアーカイブ装置１０に新規に格納するか否かを、格納要求データ全体から算出されたハッシュ値により判定する場合について説明した。しかしながら、本実施例はこれに限定されるものではなく、例えば、実施例３で説明したように、格納要求データをアーカイブ装置１０に新規に格納するか否かを、格納要求データを分割した分割データから算出したハッシュ値により判定する場合でもよい。
【０１３５】
［実施例４の効果］
上記したように、実施例４によれば、アーカイブ装置１０において、決定部２５は、格納要求を行う外部装置７０のシングルインスタンス化率に基づき、ハッシュ値算出処理を外部装置７０において実行するか、アーカイブ装置１０において実行するかを決定する。また、決定部２５は、アーカイブ装置１０のＣＰＵ使用率に基づき、ハッシュ値算出処理を外部装置７０において実行するか、アーカイブ装置１０において実行するかを決定する。そして、指示部２６は、決定部２５によって、算出元として外部装置７０が決定された場合、外部装置７０に対して、ハッシュ値算出処理を実行させるように指示する。また、指示部２６は、決定部２５によって、算出元としてアーカイブ装置１０が決定された場合、外部装置７０に対して、格納要求データを転送するように指示する。そして、算出部２７は、指示部２６の指示によって、外部装置７０から転送された格納要求データのハッシュ値を算出する。そして、判定部２１は、算出部２７によって算出されたハッシュ値と第二記憶部３２に格納された属性情報とを比較して判定処理を実行する。また、外部装置７０において、ハッシュ値算出部８１は、指示部２６によってハッシュ値算出処理を実行するように指示された場合、格納要求データのハッシュ値を算出する。そして、データ送信部８３は、指示部２６によって格納要求を行うデータを転送するように指示された場合、格納要求データを、指示を実行したアーカイブ装置１０に対して送信する。従って、実施例４におけるデータ格納システムは、既に第一記憶部３１に格納されているデータと同一であると予想されるデータの転送を回避し、格納要求時のアーカイブ装置１０の稼動状況を考慮して、ハッシュ値算出処理を分散することができる。そのため、データを格納する際の処理をさらに円滑に行うことが可能となる。
【実施例５】
【０１３６】
さて、これまで実施例１、実施例２、実施例３および実施例４について説明したが、上述した実施例１、実施例２、実施例３および実施例４以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、種々の異なる実施例を（１）〜（３）に区分けして説明する。
【０１３７】
（１）シングルインスタンス化率およびＣＰＵ使用率
上記した実施例４では、シングルインスタンス化率が所定の閾値以下であった場合に、アーカイブ装置１０のＣＰＵ使用率に基づく判定を実行する場合について説明したが、本実施例はこれに限定するものではなく、例えば、ＣＰＵ使用率に基づく判定をした後に、シングルインスタンス化率に基づく判定を行う場合であってもよい。
【０１３８】
（２）システム構成等
また、上記の実施例において説明した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に更新することができる。例えば、本実施例は、格納要求データを２ＭＢごとに分割した分割データを用いる場合であってもよい。
【０１３９】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示された構成要素と同一であることを要しない。すなわち、各処理部および各記憶部の分散・統合の具体的形態（例えば、図２の形態）は図示のものとは限られない。例えば、データ情報格納部２３とデータ格納部２４とが統合される場合であってもよい。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１４０】
（３）データ格納プログラム
ところで、上記の実施例４では、ハードウェアロジックによって各種の処理を実現する場合を説明したが、本実施例はこれに限定されるものではなく、予め用意されたプログラムをコンピュータで実行するようにしてもよい。そこで、以下では、図２０を用いて上記の実施例４に示したデータ格納システムと同様の機能を有するデータ格納プログラムを実行するコンピュータの一例を説明する。図２０は、実施例４におけるデータ格納プログラムを実行するコンピュータを説明するための図である。
【０１４１】
まず最初に、データ格納プログラムにおいて、アーカイブ装置１０を制御するデータ格納プログラムを実行するコンピュータを説明する。図２０に示すように、情報処理装置としてのコンピュータ１０００は、キーボード１０２０、モニタ１０３０、ＲＡＭ１０４０、ＨＤＤ１０５０、ＣＰＵ１０６０およびＲＯＭ１０７０を有する。そして、キーボード１０２０、モニタ１０３０、ＲＡＭ１０４０、ＨＤＤ１０５０、ＣＰＵ１０６０およびＲＯＭ１０７０は、バス１０１０などで接続される。さらに、コンピュータ１０００は、図２０に示すように、通信部５０およびネットワーク６０を介して、コンピュータ２０００と接続されている。
【０１４２】
ＲＯＭ１０７０には、上記の実施例４に示したアーカイブ装置１０と同様の機能を発揮するデータ格納プログラム、つまり、図２０に示すように、判定プログラム１０７１、転送要求プログラム１０７２、データ情報格納プログラム１０７３、データ格納プログラム１０７４、決定プログラム１０７５、指示プログラム１０７６、算出プログラム１０７７が予め記憶されている。なお、これらのプログラム１０７１〜１０７７については、図１４に示したアーカイブ装置１０の各構成要素と同様、適宜統合または分散してもよい。
【０１４３】
そして、ＣＰＵ１０６０が、これらのプログラム１０７１〜１０７７をＲＯＭ１０７０から読み出して実行することで、図２０に示すように、各プログラム１０７１〜１０７７は、判定プロセス１０６１、転送要求プロセス１０６２、データ情報格納プロセス１０６３、データ格納プロセス１０６４、決定プロセス１０６５、指示プロセス１０６６、算出プロセス１０６７として機能するようになる。なお、各プロセス１０６１〜１０６７は、図１４に示した、判定部２１、転送要求部２２、データ情報格納部２３、データ格納部２４、決定部２５、指示部２６、算出部２７にそれぞれ対応する。
【０１４４】
また、ＨＤＤ１０５０には、図２０に示すように、第一記憶データ１０５１、第二記憶データ１０５２、判定結果記憶データ１０５３、外部装置情報記憶データ１０５４、決定結果記憶データ１０５５、格納要求データ情報記憶データ１０５６が設けられる。この第一記憶データ１０５１、第二記憶データ１０５２、判定結果記憶データ１０５３、外部装置情報記憶データ１０５４、決定結果記憶データ１０５５、格納要求データ情報記憶データ１０５６は、それぞれ図１４に用いた第一記憶部３１、第二記憶部３２、判定結果記憶部３３、外部装置情報記憶部３４、決定結果記憶部３５、格納要求データ情報記憶部３６に対応する。そして、ＣＰＵ１０６０は、第一記憶データ１０４１、第二記憶データ１０４２、判定結果記憶データ１０４３、外部装置情報記憶データ１０４４、決定結果記憶データ１０４５、格納要求データ情報記憶データ１０４６をそれぞれ第一記憶データ１０５１、第二記憶データ１０５２、判定結果記憶データ１０５３、外部装置情報記憶データ１０５４、決定結果記憶データ１０５５、格納要求データ情報記憶データ１０５６に対して登録し、この第一記憶データ１０４１、第二記憶データ１０４２、判定結果記憶データ１０４３、外部装置情報記憶データ１０４４、決定結果記憶データ１０４５、格納要求データ情報記憶データ１０４６を読み出してＲＡＭ１０４０に格納する。そして、ＣＰＵ１０６０は、ＲＡＭ１０４０に格納された第一記憶データ１０４１、第二記憶データ１０４２、判定結果記憶データ１０４３、外部装置情報記憶データ１０４４、決定結果記憶データ１０４５、格納要求データ情報記憶データ１０４６に基づいてデータ格納処理を実行する。
【０１４５】
次に、データ格納プログラムにおいて、外部装置７０を制御するデータ格納プログラムを実行するコンピュータを説明する。図２０に示すように、情報処理装置としてのコンピュータ２０００は、キーボード２０２０、モニタ２０３０、ＲＡＭ２０４０、ＨＤＤ２０５０、ＣＰＵ２０６０およびＲＯＭ２０７０を有する。そして、キーボード２０２０、モニタ２０３０、ＲＡＭ２０４０、ＨＤＤ２０５０、ＣＰＵ２０６０およびＲＯＭ２０７０は、バス２０１０などで接続される。さらに、コンピュータ２０００は、図２０に示すように、通信部１１０およびネットワーク６０を介して、コンピュータ１０００と接続されている。
【０１４６】
ＲＯＭ２０７０には、上記の実施例４に示した外部装置７０と同様の機能を発揮するデータ格納プログラム、つまり、図２０に示すように、ハッシュ値算出プログラム２０７１、格納要求データ情報送信プログラム２０７２、データ送信プログラム２０７３が予め記憶されている。なお、これらのプログラム２０７１〜２０７３については、図１４に示した外部装置７０の各構成要素と同様、適宜統合または分散してもよい。
【０１４７】
そして、ＣＰＵ２０６０が、これらのプログラム２０７１〜２０７３をＲＯＭ２０７０から読み出して実行することで、図２０に示すように、各プログラム２０７１〜２０７３は、ハッシュ値算出プロセス２０６１、格納要求データ情報送信プロセス２０６２、データ送信プロセス２０６３として機能するようになる。なお、各プロセス２０６１〜２０６３は、図１４に示した、ハッシュ値算出部８１、格納要求データ情報送信部８２、データ送信部８３にそれぞれ対応する。
【０１４８】
また、ＨＤＤ２０５０には、図２０に示すように、データ記憶データ２０５１、格納要求データ情報記憶データ２０５２が設けられる。このデータ記憶データ２０５１、格納要求データ情報記憶データ２０５２は、それぞれ図１４に用いたデータ記憶部９１、格納要求データ情報記憶部９２に対応する。そして、ＣＰＵ２０６０は、データ記憶データ２０４１、格納要求データ情報記憶データ２０４２をそれぞれデータ記憶データ２０５１、格納要求データ情報記憶データ２０５２に対して登録し、このデータ記憶データ２０４１、格納要求データ情報記憶データ２０４２を読み出してＲＡＭ２０４０に格納する。そして、ＣＰＵ２０６０は、ＲＡＭ２０４０に格納されたデータ記憶データ２０４１、格納要求データ情報記憶データ２０４２に基づいてデータ格納処理を実行する。
【０１４９】
なお、上記した各プログラム１０７１〜１０７７および２０７１〜２０７３については、必ずしも最初からＲＯＭ１０７０、２０７０に記憶させておく必要は無く、例えばコンピュータ１０００および２０００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」、または、コンピュータ１０００の内外に備えられるＨＤＤなどの「固定用物理媒体」、さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ１０００および２０００に接続される「他のコンピュータ（またはサーバ）」などに各プログラムを記憶させておき、コンピュータ１０００および２０００がこれらから各プログラムを読み出して実行するようにしてもよい。
【０１５０】
以上の本実施例を含む実施形態に関し、更に以下の付記を開示する。
【０１５１】
（付記１）外部装置から受け付けたデータ格納要求に応じて第一の記憶部にデータを格納する場合に、当該格納するデータのハッシュ値およびデータ容量を対応付けたデータ情報を第二の記憶部に格納するデータ情報格納手順と、
データの格納を要求する外部装置から当該データのハッシュ値およびデータ容量である格納要求データ情報を受信し、当該格納要求データ情報と同一のデータ情報が前記第二の記憶部に格納されているか否かを判定する判定手順と、
前記判定手順によって同一のデータ情報がないと判定された場合のみ、前記格納要求データ情報を送信した外部装置に対し、当該格納要求データ情報に対応するデータを前記第一の記憶部に格納するための転送要求を行なう転送要求手順と、
をコンピュータに実行させることを特徴とするデータ格納プログラム。
【０１５２】
（付記２）前記データ情報格納手順は、前記第一の記憶部に格納したデータを所定の容量で分割した分割データそれぞれに対応するハッシュ値である分割ハッシュ値を対応付けた分割データ情報を前記第二の記憶部に格納し、
前記判定手順は、データの格納要求を行なう外部装置からデータ格納要求を行うデータを所定の容量で分割した分割データのハッシュ値である格納要求分割ハッシュ値を順次受信し、当該順次受信した格納要求分割ハッシュ値と同一の分割ハッシュ値が前記第二の記憶部に格納されているか否かを順次判定し、
前記転送要求手順は、前記判定手順によって同一の分割ハッシュ値がないと判定された場合のみ、前記格納要求分割ハッシュ値を順次送信した外部装置に対し、当該格納要求分割ハッシュ値に対応する分割データを含めたデータすべてを前記第一の記憶部に格納するための転送要求を行なうことを特徴とする付記１に記載のデータ格納プログラム。
【０１５３】
（付記３）データの格納要求を行なう外部装置が同一データの格納要求を行なった割合と、自装置のＣＰＵ使用率とに基づいて、当該外部装置が前記第一の記憶部に格納することを要求しているデータのハッシュ値算出処理を、当該外部装置で実行するか、自装置で実行するかを決定する決定手順と、
前記決定手順によって、算出元として前記外部装置が決定された場合に、当該外部装置に対して、前記ハッシュ値算出処理を実行させるように指示し、算出元として前記自装置が決定された場合に、前記外部装置に対して、格納要求を行うデータを転送するように指示する指示手順と、
前記指示手順によって、データ転送を指示された外部装置から転送されたデータのハッシュ値を算出する算出手順と、
をさらにアーカイブ装置としてのコンピュータに実行させ、
前記判定手順は、前記算出手順によってハッシュ値が算出された場合、算出されたハッシュ値と前記第二の記憶部に格納された前記分割データ情報とを比較して判定処理を実行することを特徴とする付記１または２に記載のデータ格納プログラム。
【０１５４】
（付記４）外部装置から受け付けたデータ格納要求に応じてデータを第一の記憶部に格納する第一格納ステップと、
前記第一格納ステップによりデータを格納する場合に、当該格納するデータのハッシュ値およびデータ容量を対応付けたデータ情報を第二の記憶部に格納する第二格納ステップと、
データの格納を要求する外部装置から当該データのハッシュ値およびデータ容量である格納要求データ情報を受信し、当該格納要求データ情報と同一のデータ情報が前記第二の記憶部に格納されているか否かを判定する判定ステップと、
前記判定ステップによって同一のデータ情報がないと判定された場合のみ、前記格納要求データ情報を送信した外部装置に対し、当該格納要求データ情報に対応するデータを前記第一の記憶部に格納するための転送要求を行なう転送要求ステップと、
を含んだことを特徴とするデータ格納方法。
【０１５５】
（付記５）前記第二格納ステップは、前記第一の記憶部に格納したデータを所定の容量で分割した分割データそれぞれに対応するハッシュ値である分割ハッシュ値を対応付けた分割データ情報を前記第二の記憶部に格納し、
前記判定ステップは、データの格納要求を行なう外部装置からデータ格納要求を行うデータを所定の容量で分割した分割データのハッシュ値である格納要求分割ハッシュ値を順次受信し、当該順次受信した格納要求分割ハッシュ値と同一の分割ハッシュ値が前記第二の記憶部に格納されているか否かを順次判定し、
前記転送要求ステップは、前記判定ステップによって同一の分割ハッシュ値がないと判定された場合のみ、前記格納要求分割ハッシュ値を順次送信した外部装置に対し、当該格納要求分割ハッシュ値に対応する分割データを含めたデータすべてを前記第一の記憶部に格納するための転送要求を行なうことを特徴とする付記４に記載のデータ格納方法。
【０１５６】
（付記６）データの格納要求を行なう外部装置が同一データの格納要求を行なった割合と、自装置のＣＰＵ使用率とに基づいて、当該外部装置が前記第一の記憶部に格納することを要求しているデータのハッシュ値算出処理を、当該外部装置で実行するか、自装置で実行するかを決定する決定ステップと、
前記決定ステップによって、算出元として前記外部装置が決定された場合に、当該外部装置に対して、前記ハッシュ値算出処理を実行させるように指示し、算出元として前記自装置が決定された場合に、前記外部装置に対して、格納要求を行うデータを転送するように指示する指示ステップと、
前記指示ステップによって、データ転送を指示された外部装置から転送されたデータのハッシュ値を算出する算出ステップと、
をさらに含み、
前記判定ステップは、前記算出ステップによってハッシュ値が算出された場合、算出されたハッシュ値と前記第二の記憶部に格納された前記分割データ情報とを比較して判定処理を実行することを特徴とする付記４または５に記載のデータ格納方法。
【０１５７】
（付記７）外部装置から受け付けたデータ格納要求に応じてデータを記憶する第一の記憶部と、
前記第一の記憶部にデータが格納される場合に、当該格納されるデータのハッシュ値およびデータ容量を対応付けたデータ情報を記憶する第二の記憶部と、
データの格納を要求する外部装置から当該データのハッシュ値およびデータ容量である格納要求データ情報を受信し、当該格納要求データ情報と同一のデータ情報が前記第二の記憶部に格納されているか否かを判定する判定部と、
前記判定部によって同一のデータ情報がないと判定された場合のみ、前記格納要求データ情報を送信した外部装置に対し、当該格納要求データ情報に対応するデータを前記第一の記憶部に格納するための転送要求を行なう転送要求部と、
を有するアーカイブ装置と、
格納を要求するデータのハッシュ値を算出するハッシュ値算出部と、
前記アーカイブ装置に対して、前記ハッシュ値算出部によって算出されたハッシュ値と当該ハッシュ値の算出に用いられたデータのデータ容量とを、前記格納要求データ情報として送信する格納要求データ情報送信部と、
前記格納要求データ情報を送信したアーカイブ装置から前記転送要求を受信した場合のみ、当該転送要求を送信したアーカイブ装置に対し、当該格納要求データ情報に対応するデータを送信するデータ送信部と、
を有する外部装置と、
を有したことを特徴とするデータ格納システム。
【０１５８】
（付記８）前記第二の記憶部は、前記第一の記憶部に格納したデータを所定の容量で分割した分割データそれぞれに対応するハッシュ値である分割ハッシュ値を対応付けた分割データ情報を記憶し、
前記判定部は、データの格納要求を行う外部装置からデータ格納要求を行うデータを所定の容量で分割した分割データのハッシュ値である格納要求分割ハッシュ値を順次受信し、当該順次受信した格納要求分割ハッシュ値と同一の分割ハッシュ値が前記第二の記憶部に格納されているか否かを順次判定し、
前記転送要求部は、前記判定部によって同一の分割ハッシュ値がないと判定された場合のみ、前記格納要求分割ハッシュ値を順次送信した外部装置に対し、当該格納要求分割ハッシュ値に対応する分割データを含めたデータすべてを前記第一の記憶部に格納するための転送要求を行い、
前記ハッシュ値算出部は、格納要求を行うデータを前記所定の容量で分割した分割データそれぞれのハッシュ値である分割ハッシュ値を算出し、
前記格納要求データ情報送信部は、前記ハッシュ値算出部によって算出された分割ハッシュ値を前記格納要求分割ハッシュ値として前記アーカイブ装置に対して順次送信し、
前記データ送信部は、前記格納要求分割ハッシュ値を順次受信したアーカイブ装置から前記転送要求を受信した場合のみ、当該転送要求を受信したアーカイブ装置に対し、当該格納要求分割ハッシュ値に対応する分割データを含めたデータすべてを送信することを特徴とする付記７に記載のデータ格納システム。
【０１５９】
（付記９）前記アーカイブ装置は、
データの格納要求を行なう外部装置が同一データの格納要求を行なった割合と、自装置のＣＰＵ使用率とに基づいて、当該外部装置が前記第一の記憶部に格納することを要求しているデータのハッシュ値算出処理を、当該外部装置で実行するか、自装置で実行するかを決定する決定部と、
前記決定部によって、算出元として前記外部装置が決定された場合に、当該外部装置に対して、前記ハッシュ値算出処理を実行させるように指示し、算出元として前記アーカイブ装置が決定された場合に、前記外部装置に対して、格納要求を行うデータを転送するように指示する指示部と、
前記指示部によって、データ転送を指示された外部装置から転送されたデータのハッシュ値を算出する算出部と、
をさらに有し、
前記判定部は、前記処理に加え、前記算出部によってハッシュ値が算出された場合、算出されたハッシュ値と前記第二の記憶部に格納された前記分割データ情報とを比較して判定処理を実行し、
前記ハッシュ値算出部は、前記指示部によって前記ハッシュ値算出処理を実行するように指示された場合、格納を要求するデータのハッシュ値を算出し、
前記データ送信部は、前記指示部によって格納要求を行うデータを転送するように指示された場合、当該データを、前記指示を実行したアーカイブ装置に対して送信することを特徴とする付記７または８に記載のデータ格納システム。
【符号の説明】
【０１６０】
１０  アーカイブ装置
２０  処理部
２１  判定部
２２  転送要求部
２３  データ情報格納部
２４  データ格納部
２５  決定部
２６  指示部
２７  算出部
３０  記憶部
３１  第一記憶部
３２  第二記憶部
３３  判定結果記憶部
３４  外部装置情報記憶部
３５  決定結果記憶部
３６  格納要求データ情報記憶部
４０  入出力制御Ｉ／Ｆ部
５０  通信部
６０  ネットワーク
７０  外部装置
８０  処理部
８１  ハッシュ値算出部
８２  格納要求データ情報送信部
８３  データ送信部
９０  記憶部
９１  データ記憶部
９２  格納要求データ情報記憶部
１００  入出力制御Ｉ／Ｆ部
１１０  通信部
【図１】
2011028331.tif 000003
【図２】
2011028331.tif 000004
【図３】
2011028331.tif 000005
【図４】
2011028331.tif 000006
【図５】
2011028331.tif 000007
【図６】
2011028331.tif 000008
【図７】
2011028331.tif 000009
【図８】
2011028331.tif 000010
【図９】
2011028331.tif 000011
【図１０】
2011028331.tif 000012
【図１１】
2011028331.tif 000013
【図１２】
2011028331.tif 000014
【図１３】
2011028331.tif 000015
【図１４】
2011028331.tif 000016
【図１５】
2011028331.tif 000017
【図１６】
2011028331.tif 000018
【図１７】
2011028331.tif 000019
【図１８】
2011028331.tif 000020
【図１９】
2011028331.tif 000021
【図２０】
2011028331.tif 000022