(57)【要約】【課題】  ネットワーク上の記憶資源を有効活用できるとともに、データを記憶した記憶資源が利用できない状況であっても、データの復元可能性を高めることが可能な分散記憶システムを提供する。【解決手段】  記憶手段を有する複数の端末装置により構成され、ある端末装置でデータの保存指示が行われると、登録されている各端末装置の空き提供容量を取得した後、各端末装置の空き提供容量の比率、空き総容量を算出するとともに、保存対象のデータＤを分割・複製した際のデータ量と対比し、各分割データＤ１〜Ｄ５を保存すべき端末装置を決定し、各端末装置に各分割データＤ１〜Ｄ５を送信する。各端末装置では、受信した分割データを保存する。【選択図】  図１
2009157437.tif 000002
【特許請求の範囲】
【請求項１】
記憶手段を保有する複数の端末装置がネットワークを介して接続されており、複数の前記記憶手段を仮想的な１つの記憶手段として利用するシステムであって、
前記各端末装置は、
データを保存させる指示がされた場合に、登録されている各端末装置の空き提供容量を取得する容量情報取得手段と、
前記指示されたデータを複数個に分割した際の各分割データのデータ量、前記容量情報取得手段により取得された空き提供容量に基づいて、前記空き提供容量の合計である空き総容量および各端末装置間における空き提供容量の比率を算出し、各分割データを複製した状態を設定し、算出した空き総容量および空き提供容量の比率に従って、前記分割データを保存すべき端末装置を決定する保存先決定手段と、
前記分割データを保存先として決定された端末装置に送信するデータ送信手段と、
を有することを特徴とする分散記憶システム。
【請求項２】
データを保存する際、自身の記憶手段と、ネットワークを介して接続された他の端末装置の記憶手段に分散させて保存する端末装置であって、
データを保存させる指示がされた場合に、登録されている各端末装置の空き提供容量を取得する容量情報取得手段と、
前記指示されたデータを複数個に分割した際の各分割データのデータ量、前記容量情報取得手段により取得された空き提供容量に基づいて、前記空き提供容量の合計である空き総容量および各端末装置間における空き提供容量の比率を算出し、各分割データを複製した状態を設定し、算出した空き総容量および空き提供容量の比率に従って、前記分割データを保存すべき端末装置を決定する保存先決定手段と、
前記分割データを保存先として決定された端末装置に送信するデータ送信手段と、
を有することを特徴とする端末装置。
【請求項３】
コンピュータを、請求項２に記載の端末装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク接続された複数の記憶装置を１つの仮想的な記憶装置として利用するための技術に関する。
【背景技術】
【０００２】
従来、コンピュータで処理され、保存する必要のあるデータは、そのコンピュータの外部記憶装置に保存されていた。近年では、ネットワーク化が進み、あるコンピュータで処理されたデータを、ネットワーク上の複数の記憶装置に分散して記憶することが行われている（特許文献１〜３参照）。
【特許文献１】特開２００３−３３０７８７号公報
【特許文献２】特開２００７−８７０８３号公報
【特許文献３】特開２００５−４３４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記特許文献１に記載の発明では、分散しているファイルを復元する際、復元データを持つワークステーションが起動していないと、ファイルの復元ができない。また、上記特許文献２に記載の発明では、ファイルを保存している記憶デバイスが故障した場合は、ファイル共有を行うことができない。また、上記特許文献３に記載の発明では、一時的にストレージ装置が不足した場合のみに、他のストレージ装置の記憶資源を活用することから、記憶資源の有効活用には至っていない。
【０００４】
そこで、本発明は、ネットワーク上の記憶資源を有効活用できるとともに、データを記憶した記憶資源が利用できない状況であっても、データの復元可能性を高めることが可能な分散記憶システムを提供することを課題とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するため、本発明では、記憶手段を保有する複数の端末装置がネットワークを介して接続されており、複数の前記記憶手段を仮想的な１つの記憶手段として利用するシステムであって、前記各端末装置は、データを保存させる指示がされた場合に、登録されている各端末装置の空き提供容量を取得する容量情報取得手段と、前記指示されたデータを複数個に分割した際の各分割データのデータ量、前記容量情報取得手段により取得された空き提供容量に基づいて、前記空き提供容量の合計である空き総容量および各端末装置間における空き提供容量の比率を算出し、各分割データを複製した状態を設定し、算出した空き総容量および空き提供容量の比率に従って、前記分割データを保存すべき端末装置を決定する保存先決定手段と、前記分割データを保存先として決定された端末装置に送信するデータ送信手段を有する分散記憶システムを提供する。
【発明の効果】
【０００６】
本発明によれば、ネットワーク上の各記憶資源で提供可能な記憶容量を記憶しておき、データの保存指示があった場合に、各空き提供容量の比率に応じて、分割・複製した分割データを、各記憶資源に保存させるようにしたので、ネットワーク上の記憶資源を有効活用できるとともに、データを保存した記憶資源が利用できない状況であっても、データの復元可能性を高めることが可能となる。
【発明を実施するための最良の形態】
【０００７】
以下、本発明の好適な実施形態について、図面を参照して詳細に説明する。
図１は、本発明に係る分散記憶システムを実現するコンピュータネットワークを示す図である。図１においては、端末装置１０〜端末装置４０がネットワークを介して互いにデータの送受信が可能なように接続されている。端末装置１０〜端末装置４０は、それぞれ記憶手段としてハードディスク等の外部記憶装置を備えたコンピュータであり、いわゆるＰ２Ｐ（ｐｅｅｒ・ｔｏ・ｐｅｅｒ）で起動する専用のプログラムが組み込まれている。この専用のプログラムが組み込まれ、専用のプログラムを利用して、分散記憶システムへの参加手続きを行うことにより、各端末装置は、分散記憶システムの一部として機能するようになる。この専用のプログラムは、記憶媒体を介したり、インターネット上の所定のサイトからダウンロードする等様々な手法で入手することができる。例えば、端末装置１０が、この専用プログラムを入手する際は、既に専用プログラムが組み込まれている端末装置２０〜４０から入手することもできる。この専用プログラムは、組み込まれて、分散記憶システムとして利用されると、参加している各端末のアドレスが登録される。そして、専用プログラムをダウンロードする際には、参加している各端末のアドレスも同時にダウンロードされることになる。
【０００８】
まず、端末装置１０が、分散記憶システムに参加する処理について説明する。図２は、分散記憶システムに参加する際の処理を示すフローチャートである。ここでは、端末装置２０〜端末装置４０は既に分散記憶システムに参加しているものして説明する。端末装置１０で上記専用のプログラムを起動させると、分散記憶システム参加用の画面が表示される。この画面に対して、自身が保有している記憶手段の中で提供可能な記憶容量である提供容量を入力し、実行指示を行うと、入力された提供容量が端末装置１０の空き提供容量として、端末装置１０に登録される（Ｓ１０１）。空き提供容量は、初期状態ではそのまま提供容量であるが、データが保存されることにより、その分減少することになる。
【０００９】
次に、端末装置１０は、共有情報の設定を行う（Ｓ１０２）。具体的には、まず、専用のプログラムに従って、分散記憶システム参加端末である端末装置２０、端末装置３０、端末装置４０に対して空き提供容量の要求を行う。分散記憶システムに参加している端末装置のアドレスは、専用プログラムの入手と同時に取得されているので、このアドレスを利用して、端末装置２０、端末装置３０、端末装置４０に要求を行うことになる。端末装置２０、端末装置３０、端末装置４０は、それぞれ端末装置１０から受信した要求に対して、自身の空き提供容量の情報を返信する。端末装置１０では、各端末装置から受信した空き提供容量を、端末装置を特定する端末ＩＤと対応付けて記憶する。さらに、自身も含め、参加している全ての端末装置の空き提供容量を合計して空き総容量を算出し、記憶する。分散記憶システムに参加している各端末装置の空き提供容量および空き総容量が共有情報となる。
【００１０】
上記のようにして、端末装置１０が分散記憶システムに参加することにより、図１に示した端末装置１０〜端末装置４０は、全て分散記憶システムに参加したことになる。このとき、全ての端末装置には、図３（ａ）に示すような共有情報が記録されている。すなわち、各端末装置は、分散記憶システムに参加している全端末装置の空き提供容量、これらの合計である空き総容量の情報を有している。
【００１１】
次に、分散記憶システムに参加している端末装置１０が、データを保存する処理を説明する。図４は、端末装置１０が、データを保存する際の処理を示すフローチャートである。分散記憶システムに参加した端末装置１０が、分散記憶システムを利用してデータを記憶する場合、まず、対象となるデータの保存指示を行う（Ｓ２０１）。端末装置１０は、保存指示を認識すると、指定されたデータを一旦自身の記憶手段に保存する。そして、記憶手段内の共有情報を参照し、各端末装置の空き提供容量および空き総容量を取得する（Ｓ２０２）。続いて、対象データの保存先を決定する（Ｓ２０３）。
【００１２】
対象データの保存先の決定は、以下のようにして行われる。まず、対象データを所定数に分割したときの分割データのサイズ、および対象データを複製して所定数に増加させた場合のデータの総量を算出する。例えば、対象データを５個に分割するとともに、対象データを複製して２つにした場合を考えてみる。図５（ａ）に示すように、対象データＤは、分割データＤ１〜Ｄ５に分割され、複製により、分割データＤ１〜Ｄ５が各２個ずつ得られることになる。この場合、データ総量は、対象データの２倍である。
【００１３】
次に、データ総量と空き総容量の比較を行う。データ総量が空き総容量より大きい場合には、端末装置１０は、空き総容量が不足している旨のメッセージを表示する。
【００１４】
データ総量が空き総容量以下の場合には、空き総容量における各端末装置の空き提供容量の比率を算出する。そして、この比率に応じて、分割データＤ１〜Ｄ５の割り当てを決定する。すなわち、空き提供容量が多い端末装置に多くの分割データを割り当てる。例えば、端末装置１０、端末装置２０、端末装置３０、端末装置４０の空き提供容量の比率が２：１：４：３であった場合、１０個の分割データは、端末装置１０、端末装置２０、端末装置３０、端末装置４０にそれぞれ２個、１個、４個、３個割り当てられることになる。
【００１５】
具体的なデータの割り当ては、種々の手法により決定することができるが、本実施形態では、ランダムに決定する。ランダムに決定することにより、同一の分割データが１つの端末装置に割り当てられる場合もあるが、平均的には、異なる端末装置に割り当てられる場合の方が多くなる。
【００１６】
保存先が決定したら、実際にデータの分割および複製を行う。この際、各分割データには、分割データを特定する分割データＩＤを発行して付与するとともに、分割前のデータのデータＩＤを付加する。分割および複製後、端末装置１０は、各分割データを、各端末装置に送信するとともに、自身への割り当て分を、自身が管理する記憶手段に保存する（Ｓ２０４）。
【００１７】
端末装置２０、端末装置３０、端末装置４０は、端末装置１０から分割データを受信すると、受信した分割データを記憶手段内に記憶する。この際、受信した分割データの所定部分の情報を確認することにより、その分割データの分割データＩＤおよび、その分割データの分割前のデータのデータＩＤを取得し、保存データ情報として記録する。図３（ｂ）は、保存データ情報を示す図である。
【００１８】
分割データを保存することにより、各端末装置の空き提供容量が減少するので、各端末装置は、分割データ保存後の空き提供容量を、分散記憶システムに参加している全ての端末装置に送信する。例えば、端末装置２０の場合、端末装置１０、端末装置３０、端末装置４０に送信することになる。端末装置１０も自身が管理する記憶装置内に分割データを保存した後、分割データ記憶後の空き提供容量を、端末装置２０、端末装置３０、端末装置４０に送信する。
【００１９】
他の端末装置から空き提供容量を受信すると、各端末装置は、その空き提供容量の値で、共有情報内の空き提供容量の値を更新する。空き提供容量が更新されると、端末装置は、空き総容量を再計算して更新する。このようにして、共有情報が更新される（Ｓ２０５）。以上のようにして、対象データは、各端末装置に分散されて保存される。図５（ｂ）は、各端末装置への分割データの保存の様子を示す図である。
【００２０】
次に、保存したデータの取得処理について説明する。図６は、保存したデータの取得処理の概要を示すフローチャートである。端末装置１０においてデータの取得指示を行うと（Ｓ３０１）、端末装置１０は、データ取得指示を認識し、指定されたデータの分割データを各端末装置に要求するとともに、自身の記憶手段に保存されている分割データを読み出す（Ｓ３０２）。分割データの要求は、具体的には、データを特定するデータＩＤを利用して行われる。端末装置１０からの要求を受信した各端末装置２０、端末装置３０、端末装置４０は、受信したデータＩＤで自身の記憶手段内の保存データ情報を参照する。そして、該当する分割データを抽出し、端末装置１０に送信する。端末装置１０は、各端末装置から分割データを受信する（Ｓ３０３）。
【００２１】
端末装置１０は、受信した分割データと自身の記憶手段から読み出した分割データのうち重複するものを除外した後、各分割データを統合する（Ｓ３０４）。このようにして、端末装置１０は、各端末装置に分散して保存されたデータを取得することができる。
【００２２】
図５（ｂ）に示したような状態で分散データが保存されているとき、端末装置４０が故障していたとすると、端末装置１０が端末装置４０に分割データを要求しても、端末装置４０から分割データは送信されて来ない。しかし、本発明では、分割データを複製しており、端末装置４０に保存されている分割データＤ２、Ｄ３、Ｄ４、Ｄ５は端末装置１０〜端末装置３０にも保存されている。このため、端末装置２０、端末装置３０から分割データが送信されてくれば、分割データは全て集まり、データＤが復元できる。
【００２３】
上記のようにして取得されたデータを修正し、更新して保存する場合、利用者がデータ保存指示を行うと、上記データ保存時と同様、図４のフローチャートに従った処理を実行し、更新データの保存処理を行う。
【００２４】
以上のように、分散記憶システムを構成する各端末装置では、各端末装置の空き提供容量の合計である空き総容量の範囲内でデータを保存できる。これは、各端末装置から見ると空き総容量の記憶装置を自身が保有しているような状態であり、空き総容量に相当する仮想ストレージを保有していると考えることができる。
【図面の簡単な説明】
【００２５】
【図１】本発明に係る分散記憶システムを実現するコンピュータネットワークを示す図である。
【図２】分散記憶システムに参加する際の処理を示すフローチャートである。
【図３】各端末装置の記憶手段に記憶された情報を示す図である。
【図４】端末装置１０が、データを保存する際の処理を示すフローチャートである。
【図５】保存対象のデータの分割、複製、保存の様子を示す図である。
【図６】保存したデータの取得処理の概要を示すフローチャートである。
【符号の説明】
【００２６】
１０〜４０・・・端末装置
【図１】
2009157437.tif 000003
【図２】
2009157437.tif 000004
【図３】
2009157437.tif 000005
【図４】
2009157437.tif 000006
【図５】
2009157437.tif 000007
【図６】
2009157437.tif 000008