(57)【要約】【課題】  Ｐ２Ｐネットワーク上のノードが保全対象のデータを冗長化して分割し、それらを複数のノードに分散して配置することでデータの保全性を高めるデータ保全装置において、各ノードでのデータ復元、分割数チェック・再分配を行うにあたって、管理情報を必要とせずにそれらを行える仕組みを提供する。【解決手段】  本発明のデータ保全装置は、複数のデータ処理装置をＰ２Ｐネットワーク上のノードとして配置し、保全対象データ分散して保全するデータ保全装置であり、前記データ処理装置は、保全対象データを冗長化して分割するデータ分割手段とデータを配置するノードを決定する分割データ配置先決定手段と、配置先の各ノードを検索する分割データ配置先検索手段と、ノードに該分割データを分配する分割データ配置手段と分配された分割データを保持する分割データ保持手段と、検索されたノードから分割データを取得する分割データ取得手段とから構成される。【選択図】  図１
2007073003.tif 000002
【特許請求の範囲】
【請求項１】
データ処理装置をP2Pネットワーク上のノードとして複数配置し、保全対象データを各ノードが分散して保全するデータ保全装置であり、
前記データ処理装置が、
保全対象データを受け取り、該データを冗長化して分割するデータ分割手段と、
前記データ分割手段によって得られた各分割データを配置する先となる各ノードを決定する分割データ配置先決定手段と、
前記分割データ配置先決定手段で決定した配置先の各ノードを検索する分割データ配置先検索手段と、
前記分割データ配置先検索手段で検索されたノードに該分割データを分配する分割データ配置手段と、
分配された分割データを保持する分割データ保持手段と、
前記分割データ配置先検索手段で検索されたノードから分割データを取得する分割データ取得手段と、
を備えることを特徴とするデータ保全装置。
【請求項２】
前記データ処理装置の前記分割データ配置先決定手段は、保全対象データを一意に表す保全対象データ識別子を引き数に与えることで、ある出力値を算出し得る各ノードで共通の複数の関数を有し、該出力値のハッシュ値をそれぞれ計算することで、該ハッシュ値に対応するノードを分割データ配置先として決定することを特徴とし、
前記データ処理装置の前記データ保持手段は、分配された分割データと、元となる保全対象データの保全対象データ識別子とを関連付けて保持することを特徴とする請求項１に記載のデータ保全装置。
【請求項３】
前記データ処理装置の前記分割データ配置先検索手段は、分割データの配置先のノードを検索し、該ノードが機能している場合は該ノードを検索結果とし、機能していない場合は代替の分割データ配置先のノードを検索結果とすることを特徴とし、
前記データ処理装置の前記分割データ保持手段は、分配された分割データが、本来別のノードが保持すべきデータであった場合に、本来の保持すべきノードを特定可能な状態で該データを保持することを特徴とする請求項１乃至２に記載のデータ保全装置。
【請求項４】
前記データ処理装置の前記データ分割手段で扱われる、保全対象データを一意に表す保全対象データ識別子が、暗号化されたもの、または不可逆な関数によって決定されたものであることを特徴とする請求項１乃至３に記載のデータ保全装置。
【請求項５】
前記請求項１乃至４のいずれか1に記載の各手段を、コンピュータに実行させるためのプログラムとして記憶したことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項６】
コンピュータに前記請求項１乃至４のいずれか1に記載の各手段を実行させる情報処理プログラム。
【請求項７】
データ処理方法をP2Pネットワーク上のノードとして複数配置し、保全対象データを各ノードが分散して保全するデータ保全方法であり、
前記データ処理方法が、
保全対象データを受け取り、該データを冗長化して分割するデータ分割工程と、
前記データ分割工程によって得られた各分割データを配置する先となる各ノードを決定する分割データ配置先決定工程と、
前記分割データ配置先決定工程で決定した配置先の各ノードを検索する分割データ配置先検索工程と、
前記分割データ配置先検索工程で検索されたノードに該分割データを分配する分割データ配置工程と、
分配された分割データを保持する分割データ保持工程と、
前記分割データ配置先検索工程で検索されたノードから分割データを取得する分割データ取得工程と、
を備えることを特徴とするデータ保全方法。
【請求項８】
前記データ処理方法の前記分割データ配置先決定工程は、保全対象データを一意に表す保全対象データ識別子を引き数に与えることで、ある出力値を算出し得る各ノードで共通の複数の関数を有し、該出力値のハッシュ値をそれぞれ計算することで、該ハッシュ値に対応するノードを分割データ配置先として決定することを特徴とし、
前記データ処理方法の前記データ保持工程は、分配された分割データと、元となる保全対象データの保全対象データ識別子とを関連付けて保持することを特徴とする請求項７に記載のデータ保全方法。
【請求項９】
前記データ処理方法の前記分割データ配置先検索工程は、分割データの配置先のノードを検索し、該ノードが機能している場合は該ノードを検索結果とし、機能していない場合は代替の分割データ配置先のノードを検索結果とすることを特徴とし、
前記データ処理方法の前記分割データ保持工程は、分配された分割データが、本来別のノードが保持すべきデータであった場合に、本来の保持すべきノードを特定可能な状態で該データを保持することを特徴とする請求項７乃至８に記載のデータ保全方法。
【請求項１０】
前記データ処理方法の前記データ分割工程で扱われる、保全対象データを一意に表す保全対象データ識別子が、暗号化されたもの、または不可逆な関数によって決定されたものであることを特徴とする請求項７乃至９に記載のデータ保全方法。
【請求項１１】
前記請求項７乃至１０のいずれか1に記載の各工程を、コンピュータに実行させるためのプログラムとして記憶したことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項１２】
コンピュータに前記請求項７乃至１０のいずれか1に記載の各工程を実行させる情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ保全装置に関するものであり、さらに詳しくは、P2Pネットワーク上のノードが、保全対象のデータを冗長化して分割し、それらを複数のノードに分散して配置することでデータの保全性を高めるデータ保全装置に関する。
【背景技術】
【０００２】
近年、電子化されたデータを扱う機会が増加していることに伴い、データの保存先が、従来の紙など媒体から、磁気ディスクや光ディスクといったストレージ機器に移行して来ているが、これらの機器は、紙などの経年の変化に対して比較的安定した媒体と異なり、一般にデータそのものよりも寿命が短いため、それらのストレージ機器に保存されている電子データの保守、保全に対する要望が強まってきている。
【０００３】
この課題を解消するためには、単純には、データのコピーをオリジナルデータの保存してあるストレージとは別のストレージに保存しておく方法がある。これにより、オリジナルデータが取得できない状況に陥っても、コピーが無くならない限りは復元できる。しかし、コピーを保存しておくためには、その分の格納スペースが必要となり、爆発的に増加している電子データやそのコピーを保存するためには、大容量のストレージ機器が必要となるが、ストレージの大容量化が急速に進んでいるとはいえ、単一の機器で十分な容量を確保することは実質的にはかなり困難といえる。
【０００４】
このようなストレージの記憶領域が不足する課題に対しては、多数のストレージ機器をネットワークに接続し、全体で一つのストレージとして扱えるようにする技術が考えられている。この方法では、ネットワーク上にストレージを追加していくことで記憶領域を随意拡張できる。しかし、一般にこのような方法では機器のネットワーク上での位置情報などを管理するサーバ装置が必要となるため、ストレージ機器の数がある程度増加すると、該サーバ装置における処理効率が低下し、その部分がボトルネックとなってしまい、全体のパフォーマンスが悪化するという問題があった。
【０００５】
これに対し、ネットワークストレージを特定するための管理情報を持たない方法を提案されている（例えば特許文献１参照）。しかし、ネットワークストレージを複数接続して一つのストレージとして見せるとしても、結局は、膨大な数のクライアント装置からのアクセスが限られた数のネットワークストレージへ集中してしまうため、上記と同様の問題が残る。
【０００６】
このため、大量のデータをネットワーク上のストレージ機器で分担して保持するような構成では、サーバ装置を持たない、クライアントとクライアント、すなわちストレージ機器どうしが直接データをやり取りする形態（以下、P2P：Peer-to-Peer）を取ることで、アクセスを分散させることが望ましいと言え、最近では、このようなP2Pネットワーク上のストレージ機器にデータを分散させて保持する方法が考えられている。
【特許文献１】特開２００３−２１６４７４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、上記のようにP2Pネットワーク上の複数のストレージ機器にデータを分散させる従来の装置においても、機器の管理こそ不要であるが、データの配置情報、すなわちオリジナルデータのコピーがどのストレージ機器に配置されているのかといったような管理情報は必要であった。このような管理情報に依存したモデルは、その管理情報をさらに保守・保全する必要性が生じるなど、データ保全を目的とした方法としては望ましくない。また、P2P上の各ノードが自律的にデータ保全処理を行う仕組みも考えられるが、その場合は、自分以外のノードに分散しているデータの分散数が十分存在しているかの確認や、分散数が十分でなかった場合にデータを集めてから再度配布しなおすような処理が各ノードで行われることになるため、管理情報へのアクセス、あるいは管理情報を持つマシンへのアクセスが集中しがちになるため、全体の処理のボトルネックになる恐れもある。
【０００８】
本発明は、上記の問題に鑑みてなされたものであり、データの配置情報等の管理情報を必要とすることなく、P2Pネットワーク上の各ノードが、分散したデータを取得したり、分配したりできるようにしたデータ保全装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記の問題点を解決するために本発明のデータ保全装置は以下のような構成を備える。即ち、データ処理装置をP2Pネットワーク上のノードとして複数配置し、保全対象データを各ノードが分散して保全するデータ保全装置において、前記データ処理装置が、保全対象データを受け取り、該データを冗長化して分割するデータ分割手段と、前記データ分割手段によって得られた各分割データを配置する先となる各ノードを決定する分割データ配置先決定手段と、前記分割データ配置先決定手段で決定した配置先の各ノードを検索する分割データ配置先検索手段と、前記分割データ配置先検索手段で検索されたノードに該分割データを分配する分割データ配置手段と、分配された分割データを保持する分割データ保持手段と、前記分割データ配置先検索手段で検索されたノードから分割データを取得する分割データ取得手段と、を備えるようにしたことで、データを冗長化して分割し、それらをP2Pネットワーク上の複数のノードに、管理情報を持たないように分散して配置し、かつ各ノードで該分散データが必要となった場合に、データの管理情報を必要とせずに取得できるようにした。
【発明の効果】
【００１０】
以上説明したように、本発明によれば、データ保全装置において分割されたデータを保持するノードが、分割データの配置情報等の管理情報を持たずに、他のノードが保持する分割データを取得・分配できるようにしたことで、特に、分散数のチェックやデータの再配布といった処理が頻繁に行われるデータ保全装置において、従来データ取得に際してボトルネックとなっていた該管理情報、あるいは管理情報を保持する装置へのアクセスを抑制できる為、効率的な処理が行えるようになるという効果が得られる。また、管理データや管理装置を必要としないため、各データ処理装置が自律的にこれらの処理を行うことができるようになるという効果も生じる。
【発明を実施するための最良の形態】
【００１１】
＜実施形態１＞
以下、図面を参照して本発明の実施例を詳細に説明する。
【００１２】
図１は、本発明の一実施例に係るデータ保全装置の基本構成を示すブロック図である。
【００１３】
同図において、101、102、103は、保全対象となるデータ（以下、保全対象データ）を分割して、それらをネットワーク上で分散して保持するデータ処理装置である。各データ処理装置は後述するネットワーク104を通じて相互に接続可能である。本実施例では、データ処理装置間の接続は、仲介となるサーバ装置を必要とせずに直接データをやり取りする、一般的にはピュアP2Pと呼ばれる接続形態を取るものとする。また、本実施例においては、該接続形態で接続されている装置を高速に検索する手法として一般的に知られている分散ハッシュ検索を採用することとし、各データ処理装置は、分散ハッシュ検索で使用するハッシュ関数が表現し得る値の上限までの、必ず一意に決まるID（以下、ノードID）を保持するものとする。すなわち、同時に同じノードIDを持つデータ処理装置が存在したり、該上限値を超えるノードIDを持つデータ処理装置が存在したりしない。なお、ハッシュ関数については特定するものではなく、一般的に知られるハッシュ関数、例えばSHA-1やRIPEMD-160といったものを使用して良い。また、分散ハッシュ検索のアルゴリズムも、Chord（Ion Stoica、 Robert Morris、 David Karger、 M. Frans Kaashoek、 and Hari Balakrishnan、 Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications、 ACM SIGCOMM 2001、 San Deigo、 CA、 August 2001、 pp. 149-160）など、既知の手法を使用して構わない。
【００１４】
104はインターネットやイントラネットといったネットワークであり、ここでは、前述のピュアP2Pによる接続形態を提供可能なネットワークとする。
【００１５】
図２は、本発明の一実施例に係るデータ保全装置におけるデータ処理装置の基本構成を示すブロック図である。
【００１６】
同図において201は、保全対象データを冗長化して複数個に分割するデータ分割部である。データの分割手法としては、単純には保全対象データのコピーを複数個生成することが考えられるが、これに限るものではなく、例えば、N個に分割したデータのうちのいくつかを使って保全対象データを復元することができる既知の手法（秘密分散法など）を使ってデータを分割しても良い。
【００１７】
202はデータ分割部201で分割した保全対象データ（以下、分割データ）を配置するデータ処理装置を決定する分割データ配置先決定部である。本実施例では保全対象データを識別する識別子（以下、保全対象データ識別子）から、分割データ配置先のデータ処理装置を特定する。この保全対象データ識別子は各データ処理装置上で保持することになる分割データを区別するために使用するため、必ず一意であるものとする。なお、本実施例ではすでに一意である保全対象データ識別子が保全対象データに付与されていることを想定するが、そうでない場合であっても、例えばノードIDが一意であり、かつノードIDがデータ処理装置に固定的である場合には、「ノードID＋保全対象データのファイル名＋同ノードに存在する同名ファイルを区別する識別番号」のようにしてデータ処理装置で内部的に一意の識別子を生成しても構わない。
【００１８】
203は分割データ配置先決定部202で決定したデータ処理装置との接続を確立するために、該データ処理装置を検索する分割データ配置先検索部である。本実施例のように分散ハッシュ検索による各データ処理装置の検索を行う場合、当該ノードIDを持つデータ処理装置は必ずしも動作している保証は無く、いずれか別のノードIDを持つ動作中のデータ処理装置が代替することになっているため、該分割データ配置先検索部では、分割データ配置先決定部202で決定したデータ処理装置が動作していないような場合には、代替となって動作しているデータ処理装置を検索結果として返すものとする。
【００１９】
204は分割データ配置先検索部が検索したデータ処理装置に、分割データを保持させる処理を行う分割データ配置部である。本実施例では、分割データと同時に分割された保全対象データの保全対象データ識別子も保持させる。
【００２０】
205は配置元であるデータ処理装置の分割データ配置部204から分割データを保持するよう要求されたときに、該分割データを受け取って保持する分割データ保持部である。本実施例では、分割データとともに保全対象データ識別子を保持するため、これらを関連付けて保持する。具体的には、該保全対象データ識別子を該分割データのファイル名として付与するようにする。ただし、関連付けておく方法はこれに限るものではなく、保全対象データ識別子の名前でディレクトリを生成してその中に分割データを配置したり、分割データ内部に分離できる形で保全対象データ識別子を埋め込んだりといったように、各データ処理装置で各分割データの分割元となった保全対象データの識別子が特定できる形で保持すれば良い。
【００２１】
206は各データ処理装置が保持する分割データである。
【００２２】
207は分割データ配置先検索部203が検索したデータ処理装置から、分割データを取得する処理を行う分割データ取得部である。
【００２３】
図３は本発明の一実施例に係るデータ保全装置におけるデータ処理装置の回路構成を示すブロック図である。
【００２４】
301は、図1、図2に記載の各部における処理を行うプログラムを格納するROMである。302は、ROM301に格納されたプログラム実行時のワーク用RAMである。303はROM301に格納したプログラムを実行するCPUである。304は、分割データ206等を追加・削除可能なHDDなどのディスクである。305は本装置の各部を接続してデータをやり取りするバスである。
【００２５】
306は、ネットワーク104を経由して他のデータ処理装置とデータをやり取りするネットワークインタフェースである。
【００２６】
次に図４、図5、図6、図7の各フローチャートを用いて、本発明の一実施例に係るデータ保全装置の動作を説明する。
【００２７】
図４に示すフローチャートでは、本実施例における、保全対象データをN個に分割した際の分割データの配置先を決定する処理の手順を示す。本手順の具体的な挙動の例については、図8を用いて適宜補足していく。
【００２８】
まずステップS401では、分割データ配置先決定部202が保全対象データ毎に一意に決まっている保全対象データ識別子を取得する。図８に示す例においては、保全対象データ識別子としてxを取得している。
【００２９】
ステップS402では、分割データ配置先決定部202が、ステップS401で取得した保全対象データ識別子を、データ処理装置で共通に保持しているN個の関数を使用して、N個のそれぞれ異なる値にマッピングする。図８に示す例においては、N個の関数とはf_1…f_Nであり、これらに保全対象データ識別子xを与えて、N個の異なる値y_1…y_Nにマッピングする。
【００３０】
ステップS403では、ステップS402で求めたN個の値を、データ処理装置で共通のハッシュ関数を使用して、N個のハッシュ値を求める。図８に示す例においては、ハッシュ関数はHであり、これにステップS402で求めたN個の値y_1…y_Nを与えて、N個のハッシュ値h_1…h_Nを取得する。
【００３１】
ステップS404では、ステップS403で求めたN個のハッシュ値をノードIDとして持つデータ処理装置をデータ配置先として採用する。すなわち、図８に示す例においては、h_1…h_NをノードIDとして持つデータ処理装置を、配置先とする。
【００３２】
なお、データ識別子から生成するy_Nで表現可能な値の数が、ハッシュ空間のサイズを上回る場合、本実施例による方法では、ステップS403で求めるハッシュ値が重複してしまうことがある。その場合はノードIDがN個決まらず、配置先が不足してしまうので、例えば、あるハッシュ値Aがｍ個重複した場合には、配置先ノードとしてA以外にA+1、…、A+(m-1)のノードIDを持つノードを加える等すればよい。方法はこれに限らず、何度処理をしても同一の分散先が確定可能であれば良い。このときA+1…A+(m-1)までのノードIDが、ステップS403で求めたハッシュ値として既出であったら、そのIDは飛ばすなどの処理が必要なのは言うまでも無い。
【００３３】
図５に示すフローチャートでは、本実施例における、分割データを配置する処理の手順を示す。
【００３４】
まずステップS501では、分割データ配置先検索部203が、ステップS403で決定したノードIDから、データ配置先のデータ処理装置を検索する。本実施例においては、データ処理装置の検索方法は、分散ハッシュ検索を利用する。
【００３５】
ステップS502では、分割データ配置先検索部203が、ステップS501で検索したデータ処理装置がデータを受信できる状態かどうかを判定し、受信できるならば該データ処理装置を検索結果として返し、ステップS504へ移行する。そうでない場合は、ステップS503へ移行する。
【００３６】
ステップS503では、検索したデータ処理装置へはデータ送信できないので、該データ処理装置の代替となるデータ処理装置を検索し、結果として返す。本実施例で採用している分散ハッシュの仕組みには、代替のデータ処理装置を検索する方法も含まれているため、この方法も分散ハッシュを利用する。
【００３７】
ステップS504では、分割データ配置部204が、分割データ配置先検索部203で検索した結果のデータ処理装置に接続する。
【００３８】
ステップS505では、分割データ配置部204が、分割データと分割元となった保全対象データの保全対象データ識別子を、ステップS504で接続したデータ処理装置に送信する。
【００３９】
ステップS506では、ステップS504でデータを送信されたデータ処理装置の分割データ保持部205が、送信された分割データを保全対象データ識別子の名前で保存する。その様子を図9に示す。この図では、ノードIDがh_Nであるデータ処理装置に、保全対象データ識別子がxのデータを分割して得られた分割データを、xという名前で保存してある様子を示している。
【００４０】
図６に示すフローチャートでは、本実施例における、あるデータ処理装置が、自分が保持している分割データの残りの分割データが配置された配置先のノードIDを取得する手順を示す。
【００４１】
まずステップS601では、分割データ保持部205から保持している分割データに関連付けられている保全対象データ識別子を取得する。
【００４２】
ステップS602では、分割データ配置先決定部202が、ステップS601で取得した保全対象データ識別子を、データ処理装置で共通のN個の関数を使用して、N個のそれぞれ異なる値にマッピングする。このステップはステップS402と全く同等の処理である。
【００４３】
ステップS603では、ステップS602で求めたN個の値を、データ処理装置で共通のハッシュ関数を使用して、N個のハッシュ値を求める。このステップはステップS403と全く同等の処理である。
【００４４】
ステップS604では、ステップS603で求めたN個のハッシュ値のうち、自データ処理装置のノードID、もしくは自データ処理装置が分割データを代替して保持している場合は、本来保持すべきデータ処理装置のノードIDと異なる値を抽出し、その値を自分が保持している分割データの残りの分割データ配置先ノードIDとして採用する。
【００４５】
なお、この図6に示すフローチャートでは、あるデータ処理装置が分割データを保持しており、その分割データの元となった保全対象データを分割して得られた他の分割データが配置されたノードIDを取得する場合、すなわち、分割データに関連付けられた保全対象データ識別子をデータ処理装置が内部的に保持している場合について述べたが、データ処理装置が明示的に保全対象データ識別子を与えられて、該識別子で特定される保全対象データを復元するために分割データの配置先を探す場合についても、上記フローチャートに示した処理と同様の処理で可能であることは言うまでも無い。
【００４６】
図７に示すフローチャートでは、本実施例における、分割データを取得する処理の手順を示す。
【００４７】
まずステップS701では、分割データ配置先検索部203が、ステップS603で決定したノードIDから、データ配置先のデータ処理装置を検索する。このステップはステップS501と全く同等の処理である。
【００４８】
ステップS702では、分割データ配置先検索部203が、ステップS701で検索したデータ処理装置がデータを送信できる状態かどうかを判定し、送信できるならば該データ処理装置を検索結果として返し、ステップS704へ移行する。そうでない場合は、ステップS703へ移行する。
【００４９】
ステップS703では、代替で分割データを保持しているデータ処理装置を検索する。本実施例では、代替で分割データを保持しているデータ処理装置の検索についてもステップS503と同様に、分散ハッシュの仕組みを用いて行う。分散ハッシュでは、データはいずれかの検索可能な代替ノードに存在している。
【００５０】
ステップS704では、分割データ取得部207が、分割データ配置先検索部203で検索した結果のデータ処理装置に接続する。
【００５１】
ステップS705では、分割データ取得部207が、ステップS704で接続したデータ処理装置に対して、保全対象データ識別子を使って、該識別子に関連付けられた分割データを要求する。
【００５２】
ステップS706では、ステップS704でデータを要求されたデータ処理装置の分割データ保持部205が、ステップS705で送られてきた保全対象データ識別子の名前で保存してある分割データを返す。つまり、図9を例にすれば、図中のデータ処理装置は、保全対象データ識別子xの名前で保存している分割データを、要求してきたデータ処理装置に返す。
【００５３】
＜他の実施例＞
保全対象データ識別子は任意のデータ処理装置で保持される可能性があり、保全対象データの保全性を高めるために、一意であるという条件のもとで、該識別子を暗号化、あるいは不可逆な関数によって決定したものであっても良い。
【００５４】
＜他の実施例＞
上記実施例においては、分割データと分割元の保全対象データの識別子（図8におけるx）を関連付けて保持しているが、この限りではなく、保全対象データ識別子が取得できる値と関連づけてあれば良い。例えば、図8における変換関数f_Nが、必ず一意の値を生成し、かつ、y_N = f_N(x)に対してx=F_N(y_N)となるような、f_Nの逆の関数F_Nが存在し、かつ、該関数が特定可能であれば、y_Nからxを求めることはできるため、このような場合は、分割データとy_Nを関連付けて保持しておいても良い。
【００５５】
＜他の実施例＞ 
上記実施例においては、各部を同一の計算機上で構成する場合について説明したが、これに限定されるものではなく、ネットワーク上に分散した計算機や処理装置などに分かれて各部を構成してもよい。
【００５６】
＜他の実施例＞
上記実施例においては、プログラムをROMに保持する場合について説明したが、これに限定されるものではなく、任意の記憶媒体を用いて実現してもよい。また、同様の動作をする回路で実現してもよい。
【００５７】
＜他の実施例＞ 
なお、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【００５８】
＜他の実施例＞ 
プログラムコードを供給するための記録媒体としては、たとえば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、CD-ROM、CD-R、DVD-ROM、DVD-RAM、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
【００５９】
＜他の実施例＞ 
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳなどが実際の処理の一部または全部を行ない、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００６０】
＜他の実施例＞ 
更に、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ない、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００６１】
【図１】本発明に係るデータ保全装置の実施例の基本構成を示すブロック図である。
【図２】本発明に係るデータ処理装置の実施例の基本構成を示すブロック図である。
【図３】本発明に係るデータ処理装置の実施例の回路構成を示すブロック図である。
【図４】本発明に係るデータ保全装置の実施例における、保全対象データをN個に分割する際の分割データの配置先を決定する処理の手順を示すフローチャートである。
【図５】本発明に係るデータ保全装置の実施例における、分割データを配置する処理の手順を示すフローチャートである。
【図６】本発明に係るデータ保全装置の実施例における、自データ処理装置以外の分割データの配置先を取得する手順を示すフローチャートである。
【図７】本発明に係るデータ保全装置の実施例における、分割データを取得する処理の手順を示すフローチャートである。
【図８】本発明に係るデータ保全装置の実施例における、N個のデータ配置先のノードIDを決定する仕組みの例を示す説明図である。
【図９】本発明に係るデータ保全装置の実施例における、データ処理装置にデータを配置する仕組みの例を示す説明図である。
【符号の説明】
【００６２】
101、102、103  データ処理装置
104  ネットワーク
201  データ分割部
202  分割データ配置先決定部
203  分割データ配置先検索部
204  分割データ配置部
205  分割データ管理部
206  データ保持部
207  分割データ取得部
301  ROM
302  RAM
303  CPU
304  ディスク
305  バス
306  ネットワークインタフェース
【図１】
2007073003.tif 000003
【図２】
2007073003.tif 000004
【図３】
2007073003.tif 000005
【図４】
2007073003.tif 000006
【図５】
2007073003.tif 000007
【図６】
2007073003.tif 000008
【図７】
2007073003.tif 000009
【図８】
2007073003.tif 000010
【図９】
2007073003.tif 000011