(57)【要約】【課題】  自律ストレージシステムにおける、ある自律ストレージ装置に故障が発生した場合であっても、他の自律ストレージ装置によって、サービスを低下させることなく動作可能な自律ストレージ装置を提供する。【解決手段】  自律ストレージ装置２は、コンテンツを、予め定めた分割数のコンテンツブロックに分割するコンテンツ分割手段２１ｂと、コンテンツブロックに対する誤り訂正符号からなる誤り訂正符号ブロックを生成する誤り訂正符号ブロック生成手段２１ｃと、ブロックを記憶するコンテンツ記憶手段３０とを備え、コンテンツブロック及び誤り訂正符号ブロックの各ブロックを、自律ストレージ装置２並びに他の自律ストレージ装置に分散して記憶することを特徴とする。【選択図】      図３
2006330779.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツを複数の記憶装置に分散して記憶するコンテンツ記憶装置であって、
前記コンテンツを、予め定めた分割数のコンテンツブロックに分割するコンテンツ分割手段と、
このコンテンツ分割手段で分割されたすべてのコンテンツブロックに基づいて、当該分割されたコンテンツブロックに対する誤り訂正符号からなる誤り訂正符号ブロックを生成する誤り訂正符号ブロック生成手段と、
前記コンテンツ分割手段で分割されたコンテンツブロックと、前記誤り訂正符号ブロック生成手段で生成された誤り訂正符号ブロックとを分散して記憶する前記複数の記憶装置と、
を備えていることを特徴とするコンテンツ記憶装置。
【請求項２】
前記複数の記憶装置に記憶されている前記コンテンツブロックと、前記誤り訂正符号ブロックとに基づいて、前記コンテンツブロックの誤り訂正を行うブロック誤り訂正手段と、
このブロック誤り訂正手段で誤り訂正がなされた前記コンテンツブロックを結合し、前記コンテンツを生成するブロック結合手段と、
を備えていることを特徴とする請求項１に記載のコンテンツ記憶装置。
【請求項３】
ネットワークに複数接続されて、コンテンツを分散して記憶する自律ストレージ装置において、
前記コンテンツを、予め定めた分割数のコンテンツブロックに分割するコンテンツ分割手段と、
このコンテンツ分割手段で分割されたすべてのコンテンツブロックに基づいて、当該分割されたコンテンツブロックに対する誤り訂正符号からなる誤り訂正符号ブロックを生成する誤り訂正符号ブロック生成手段と、
予め定めた規則に基づいて、前記分割されたコンテンツブロック及び前記誤り訂正符号ブロックの各ブロックを、当該自律ストレージ装置に記憶するブロック、又は、他の自律ストレージ装置に記憶するブロックに設定する記憶先設定手段と、
この記憶先設定手段で他の自律ストレージ装置に記憶するブロックとして設定されたブロックを、前記他の自律ストレージ装置に送信するブロック送信手段と、
前記他の自律ストレージ装置から、当該自律ストレージ装置に記憶するブロックとして設定されたブロックを、前記他の自律ストレージ装置から受信するブロック受信手段と、
前記記憶先設定手段で当該自律ストレージ装置に記憶するブロックとして設定されたブロックと、前記ブロック受信手段で受信したブロックとを記憶するコンテンツ記憶手段と、
を備えていることを特徴とする自律ストレージ装置。
【請求項４】
前記規則に基づいて、前記コンテンツに対応する、他の自律ストレージ装置に記憶されているブロックを収集するブロック収集手段と、
このブロック収集手段で収集されたブロックと、前記コンテンツに対応する、前記コンテンツ記憶手段に記憶されているブロックとに基づいて、前記コンテンツブロックの誤り訂正を行うブロック誤り訂正手段と、
このブロック誤り訂正手段で誤り訂正がなされた前記コンテンツブロックを結合し、前記コンテンツを生成するブロック結合手段と、
を備えていることを特徴とする請求項３に記載の自律ストレージ装置。
【請求項５】
前記記憶先設定手段で当該自律ストレージ装置に記憶するブロックとして設定されたブロック及び前記ブロック受信手段で受信したブロックの各ブロックを、予め定めた分割数のサブブロックであるデータサブブロックに分割するブロック分割手段と、
このブロック分割手段で分割されたすべてのデータサブブロックに対する誤り訂正符号からなる誤り訂正符号サブブロックを生成する誤り訂正符号サブブロック生成手段とを備え、
前記コンテンツ記憶手段が、前記分割されたデータサブブロックと前記誤り訂正符号サブブロックとを分散して記憶する複数の記憶装置を備えていることを特徴とする請求項３に記載の自律ストレージ装置。
【請求項６】
前記記憶装置に分散して記憶されている前記データサブブロックと前記誤り訂正符号サブブロックとに基づいて、前記データサブブロックの誤り訂正を行うサブブロック誤り訂正手段と、
このサブブロック誤り訂正手段で誤り訂正がなされたデータサブブロックを結合し、前記ブロックを生成するサブブロック結合手段と、
前記規則に基づいて、前記コンテンツに対応する、他の自律ストレージ装置に記憶されているブロックを収集するブロック収集手段と、
このブロック収集手段で収集されたブロックと、前記サブブロック結合手段で生成されたブロックとに基づいて、前記コンテンツブロックの誤り訂正を行うブロック誤り訂正手段と、
このブロック誤り訂正手段で誤り訂正がなされた前記コンテンツブロックを結合し、前記コンテンツを生成するブロック結合手段と、
を備えていることを特徴とする請求項５に記載の自律ストレージ装置。
【請求項７】
コンテンツを複数の記憶装置に分散して記憶するコンテンツ記憶装置で、前記コンテンツを誤り訂正するために、コンピュータを、
前記コンテンツを、予め定めた分割数のコンテンツブロックに分割するコンテンツ分割手段、
このコンテンツ分割手段で分割されたすべてのコンテンツブロックに基づいて、当該分割されたコンテンツブロックに対する誤り訂正符号からなる誤り訂正符号ブロックを生成する誤り訂正符号ブロック生成手段、
前記コンテンツ分割手段で分割されたコンテンツブロックと、前記誤り訂正符号ブロック生成手段で生成された誤り訂正符号ブロックとを分散して前記複数の記憶装置に書き込む書き込み手段、
前記複数の記憶装置に記憶されている前記コンテンツブロックと、前記誤り訂正符号ブロックとを、前記複数の記憶装置から読み出す読み出し手段、
この読み出し手段で読み出されたコンテンツブロックと、誤り訂正符号ブロックとに基づいて、前記コンテンツブロックの誤り訂正を行うブロック誤り訂正手段、
このブロック誤り訂正手段で誤り訂正がなされた前記コンテンツブロックを結合し、前記コンテンツを生成するブロック結合手段、
として機能させることを特徴とするのコンテンツ分散プログラム。
【請求項８】
ネットワークに複数接続されて、コンテンツを分散して記憶する自律ストレージ装置で、前記コンテンツを誤り訂正するために、コンピュータを、
前記コンテンツを、予め定めた分割数のコンテンツブロックに分割するコンテンツ分割手段、
このコンテンツ分割手段で分割されたすべてのコンテンツブロックに基づいて、当該分割されたコンテンツブロックに対する誤り訂正符号からなる誤り訂正符号ブロックを生成する誤り訂正符号ブロック生成手段、
予め定めた規則に基づいて、前記分割されたコンテンツブロック及び前記誤り訂正符号ブロックの各ブロックを、当該自律ストレージ装置に記憶するブロック、又は、他の自律ストレージ装置に記憶するブロックに設定する記憶先設定手段、
この記憶先設定手段で他の自律ストレージ装置に記憶するブロックとして設定されたブロックを、前記他の自律ストレージ装置に送信するブロック送信手段、
前記他の自律ストレージ装置から、当該自律ストレージ装置に記憶するブロックとして設定されたブロックを、前記他の自律ストレージ装置から受信するブロック受信手段、
前記記憶先設定手段で当該自律ストレージ装置に記憶するブロックとして設定されたブロックと、前記ブロック受信手段で受信したブロックとをコンテンツ記憶手段に書き込む書き込み手段、
前記規則に基づいて、前記コンテンツに対応する、他の自律ストレージ装置に記憶されているブロックを収集するブロック収集手段、
前記コンテンツに対応するブロックを前記コンテンツ記憶手段から読み出す読み出し手段、
前記ブロック収集手段で収集されたブロックと、前記読み出し手段で読み出されたブロックとに基づいて、前記コンテンツブロックの誤り訂正を行うブロック誤り訂正手段、
このブロック誤り訂正手段で誤り訂正がなされた前記コンテンツブロックを結合し、前記コンテンツを生成するブロック結合手段、
として機能させることを特徴とするコンテンツ分散プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンテンツ（データ）を分散して記憶するとともに、コンテンツの誤り訂正を可能にした自律ストレージ装置、コンテンツ記憶装置及びコンテンツ分散プログラムに関する。
【背景技術】
【０００２】
近年、コンピュータで利用するコンテンツのデータ量は増加し続けており、それに伴いコンテンツを記憶するハードディスク等の記憶装置（ストレージ）の容量も増大している。しかし、記憶装置は故障する可能性があるため、記憶装置の故障によるコンテンツの損失は、記憶装置の容量の増大に伴い大きくなっている。そこで、最近では、記憶装置の信頼性、安全性、可用性及び拡張性を向上させる技術として、自律ストレージシステムが提案されている（例えば、特許文献１参照）。
【０００３】
ここで、図１１を参照して、従来の自律ストレージシステムにおけるコンテンツの記憶方法について説明する。図１１は、従来の自律ストレージシステムにおけるコンテンツの記憶方法を模式的に示す図である。
図１１に示すように、自律ストレージシステム１Ｄは、ここでは、ネットワークＮに接続されたｎ台の自律ストレージ装置２Ｄ（２Ｄ1〜２Ｄn）で構成されている。この自律ストレージ装置２Ｄは、クライアントコンピュータ５等からデータの書き込み要求があったときに、各々の自律ストレージ装置２Ｄ（２Ｄ1〜２Ｄn）間でコンテンツの分散を行い、分散化されたコンテンツをコンテンツ記憶手段３０Ｄ（３０Ｄ1〜３０Ｄn）に記憶するものである。
【０００４】
自律ストレージ装置２Ｄは、システム管理手段２０Ｄとコンテンツ記憶手段３０Ｄとで構成されている。
システム管理手段２０Ｄは、ＣＰＵやメモリ等を備えたコンピュータであって、各システム管理手段２０Ｄ（２０Ｄ1〜２０Ｄn）間で、コンテンツの分散や障害回復を行うものである。
コンテンツ記憶手段３０Ｄは、ハードディスク等の一般的な記録媒体であって、ここでは、コンテンツの原データを蓄積するプライマリ領域Ｐと、コンテンツのバックアップデータを蓄積するバックアップ領域Ｂとに論理的に分割されている。
【０００５】
このように自律ストレージシステム１Ｄを構成することで、クライアントコンピュータ５等からコンテンツの書き込み要求があったときに、自律ストレージ装置２Ｄは、各システム管理手段２０Ｄ（２０Ｄ1〜２０Ｄn）間でコンテンツの分散を行い、コンテンツ記憶手段３０Ｄ（３０Ｄ1〜３０Ｄn）のプライマリ領域Ｐに原データ（Ｐ1〜Ｐn）を分散して書き込む。また、このとき、自律ストレージ装置２Ｄは、各システム管理手段２０Ｄ（２０Ｄ1〜２０Ｄn）を介して、原データを蓄積した自律ストレージ装置とは異なる自律ストレージ装置のバックアップ領域Ｂに、コンテンツのバックアップデータ（Ｂ1〜Ｂn）を書き込む。例えば、自律ストレージ装置２Ｄ1のプライマリ領域Ｐに蓄積されている原データＰ1は、自律ストレージ装置２Ｄ1に論理的に隣接している自律ストレージ装置２Ｄ2のバックアップ領域ＢにバックアップデータＢ1として書き込まれる。
これによって、ある自律ストレージ装置２Ｄが故障した場合であっても、コンテンツの消失を防ぐことができる。
【特許文献１】特開２００３−１３２６６６８号公報（段落０００４〜０００６、図９）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
前記した従来の自律ストレージシステムは、ある自律ストレージ装置が故障した場合であっても、バックアップデータを記憶しているため、自律ストレージシステム内で障害回復を行うことができ、システム全体の信頼性、安全性を高めることができる。
しかし、従来の自律ストレージシステムでは、１つのコンテンツに対して、同じデータ量のバックアップを生成する必要があるため、コンテンツを記憶するための記憶容量が２倍必要になり、自律ストレージシステムの導入コストを下げるための阻害要因となっていた。
【０００７】
また、従来の自律ストレージシステムでは、ある自律ストレージ装置が故障した場合、当該自律ストレージ装置に記憶されている原データが消失し、他の自律ストレージ装置にバックアップデータのみしか残らないことから、早急に障害回復処理を行う必要がある。また、この障害回復処理において、故障した自律ストレージ装置のバックアップデータを記憶している自律ストレージ装置において、バックアップデータを原データとして、その役割を変更させるとともに、その原データをさらに他の自律ストレージ装置にバックアップデータとして記憶（転送）させる必要がある。
このような障害回復処理を行う場合、自律ストレージ装置自体の処理とともに、ネットワークを介したデータ転送を伴うため、従来の自律ストレージシステムは、クライアントコンピュータ等に対するサービスを低下させてしまうという問題がある。
さらに、従来の自律ストレージシステムでは、原データを記憶している自律ストレージ装置と、そのバックアップデータを記憶している自律ストレージ装置とが同時に故障した場合、そのデータが回復できなくなるという問題がある。
【０００８】
なお、一般には、複数の記憶装置をまとめて１台の記憶装置として管理する技術として、ＲＡＩＤ（Redundant Array of Inexpensive Disks）が知られている。しかし、このＲＡＩＤは、誤り訂正符号を例えば固定の記憶装置や、記憶装置の固定の物理領域に記憶するため、記憶装置に障害が発生した場合、その記憶装置全体を誤り訂正により回復させる必要があり、障害回復処理に時間がかかってしまうという問題がある。
【０００９】
本発明は、以上のような問題点に鑑みてなされたものであり、コンテンツの記憶容量を抑え、当該コンテンツを記憶している、ある記憶装置に故障が発生した場合であっても、サービスを低下させることなく動作し、複数の記憶装置に故障が発生した場合であっても動作を継続させることが可能で、さらに、障害回復処理の時間を短縮させることが可能な自律ストレージ装置、コンテンツ記憶装置及びコンテンツ分散プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明は、前記目的を達成するために創案されたものであり、まず、請求項１に記載のコンテンツ記憶装置は、コンテンツを複数の記憶装置に分散して記憶するコンテンツ記憶装置であって、コンテンツ分割手段と、誤り訂正符号ブロック生成手段と、複数の記憶装置とを備える構成とした。
【００１１】
かかる構成において、コンテンツ記憶装置は、コンテンツ分割手段によって、コンテンツを、予め定めた分割数のコンテンツブロックに分割する。そして、コンテンツ記憶装置は、誤り訂正符号ブロック生成手段によって、コンテンツ分割手段で分割されたコンテンツブロックにより、その分割されたすべてのコンテンツブロックに対する誤り訂正符号からなる誤り訂正符号ブロックを生成する。この誤り訂正符号ブロックは、各コンテンツブロックの先頭ビット、先頭バイト等から順番に誤り訂正符号を生成し、ビット毎、バイト毎等のコンテンツブロックに対応するデータ毎に配列したデータである。なお、誤り訂正符号は、排他的論理和、リードソロモン符号等の一般的な符号を用いることができる。すなわち、誤り訂正符号ブロックは、その誤り訂正符号によって、１つのブロックである場合、あるいは、２つ以上のブロックとなる場合がある。
そして、コンテンツ記憶装置は、分割されたすべてコンテンツブロックと、１つ以上の誤り訂正符号ブロックとを、複数の記憶装置に分散して記憶する。
【００１２】
これによって、コンテンツブロックは、他のコンテンツブロックと誤り訂正符号ブロックとに基づいて回復が可能になり、コンテンツブロックが記憶装置から読み出せない等の障害があった場合でも、誤り訂正の範囲内で、コンテンツブロックの誤り訂正を行い、コンテンツブロックを回復させることができる。
【００１３】
また、請求項２に記載のコンテンツ記憶装置は、請求項１に記載のコンテンツ記憶装置において、ブロック誤り訂正手段と、ブロック結合手段とを備える構成とした。
【００１４】
かかる構成において、コンテンツ記憶装置は、コンテンツを回復させる場合、ブロック誤り訂正手段によって、複数の記憶装置に記憶されているコンテンツブロックと、誤り訂正符号ブロックとにより、コンテンツブロックの誤り訂正を行う。さらに、コンテンツ記憶装置は、ブロック結合手段によって、コンテンツブロックを結合してコンテンツを生成する（回復させる）。
これによって、コンテンツ記憶装置は、コンテンツブロックが記憶装置から読み出せない等の障害があった場合でも、動作中に、誤り訂正の範囲内で、コンテンツブロックの誤り訂正を行い、消失したコンテンツブロックを回復させることができる。
【００１５】
さらに、請求項３に記載の自律ストレージ装置は、ネットワークに複数接続されて、コンテンツを分散して記憶する自律ストレージ装置において、コンテンツ分割手段と、誤り訂正符号ブロック生成手段と、記憶先設定手段と、ブロック送信手段と、ブロック受信手段と、コンテンツ記憶手段とを備える構成とした。
【００１６】
かかる構成において、自律ストレージ装置は、コンテンツ分割手段によって、コンテンツを、予め定めた分割数のコンテンツブロックに分割する。そして、自律ストレージ装置は、誤り訂正符号ブロック生成手段によって、コンテンツ分割手段で分割されたコンテンツブロックにより、その分割されたすべてのコンテンツブロックに対する誤り訂正符号からなる誤り訂正符号ブロックを生成する。
【００１７】
そして、自律ストレージ装置は、記憶先設定手段によって、予め定めた規則により、コンテンツブロック及び誤り訂正符号ブロックの各ブロックを、当該自律ストレージ装置に記憶するブロック、又は、他の自律ストレージ装置に記憶するブロックに設定する。なお、この規則は予め定めたものであれば特に内容を限定するものではない。例えば、先頭のコンテンツブロックを、当該自律ストレージ装置に記憶し、他のコンテンツブロック及び誤り訂正符号ブロックを、当該自律ストレージ装置に論理的に隣接する順番に他の自律ストレージ装置に記憶することとしてもよい。また、例えば、各自律ストレージ装置に記憶されているコンテンツの総容量を自律ストレージ装置間で交換し、その容量が最も少ない自律ストレージ装置に先頭のコンテンツブロックを記憶し、その自律ストレージ装置に論理的に隣接する順番に他のコンテンツブロック及び誤り訂正符号ブロックを記憶することとしてもよい。
【００１８】
そして、自律ストレージ装置は、ブロック送信手段によって、他の自律ストレージ装置に記憶するブロックとして設定されたブロックを、他の自律ストレージ装置に送信する。一方、他の自律ストレージ装置によって、当該自律ストレージ装置に記憶するブロックとして設定されたブロックは、ブロック受信手段によって、他の自律ストレージ装置から受信される。
そして、自律ストレージ装置は、当該自律ストレージ装置に記憶するブロックとして設定されたブロックと、ブロック受信手段で受信したブロックとをコンテンツ記憶手段に記憶する。
【００１９】
これによって、コンテンツは、ネットワークに接続された複数の自律ストレージ装置に、ブロック（コンテンツブロック及び誤り訂正符号ブロック）として分散して記憶され、自律ストレージ装置に障害等が発生した場合であっても、誤り訂正の範囲内で、コンテンツブロックの誤り訂正を行い、障害が発生した自律ストレージ装置に記憶させてあったコンテンツを回復させることができる。
【００２０】
また、請求項４に記載の自律ストレージ装置は、請求項３に記載の自律ストレージ装置において、ブロック収集手段と、ブロック誤り訂正手段と、ブロック結合手段とを備える構成とした。
【００２１】
かかる構成において、自律ストレージ装置は、コンテンツを回復させる場合、ブロック収集手段によって、コンテンツに対応する、他の自律ストレージ装置に記憶されているブロックを収集する。
そして、自律ストレージ装置は、ブロック誤り訂正手段によって、ブロック収集手段で収集されたブロックと、コンテンツ記憶手段に記憶されているブロックとにより、コンテンツブロックの誤り訂正を行う。さらに、自律ストレージ装置は、ブロック結合手段によって、誤り訂正がなされたコンテンツブロックを結合してコンテンツを生成する（回復させる）。
【００２２】
これによって、自律ストレージ装置は、他の自律ストレージ装置の障害等によって、コンテンツブロックが読み出せない場合でも、動作中に、誤り訂正の範囲内で、コンテンツブロックの誤り訂正を行い、消失したコンテンツブロックを回復させることができる。
【００２３】
さらに、請求項５に記載の自律ストレージ装置は、請求項３に記載の自律ストレージ装置において、ブロック分割手段と、誤り訂正符号サブブロック生成手段とを備え、コンテンツ記憶手段が複数の記憶装置を備える構成とした。
【００２４】
かかる構成において、自律ストレージ装置は、ブロック分割手段によって、当該自律ストレージ装置に記憶するブロックとして設定されたブロックと、ブロック受信手段で受信したブロックとの各ブロックを、予め定めた分割数のサブブロックであるデータサブブロックに分割する。
そして、自律ストレージ装置は、誤り訂正符号サブブロック生成手段によって、ブロック分割手段で分割されたすべてのデータサブブロックに対する誤り訂正符号からなる誤り訂正符号サブブロックを生成する。この誤り訂正符号サブブロックは、各データサブブロックの先頭ビット、先頭バイト等から順番に誤り訂正符号を生成し、ビット毎、バイト毎等のデータサブブロックに対応するデータ毎に配列したデータである。なお、誤り訂正符号は、誤り訂正符号ブロックと同様に、排他的論理和、リードソロモン符号等の一般的な符号を用いることができる。すなわち、誤り訂正符号サブブロックは、その誤り訂正符号によって、１つのサブブロックである場合、あるいは、２つ以上のサブブロックとなる場合がある。
そして、自律ストレージ装置は、分割されたすべてのデータサブブロックと、１つ以上の誤り訂正符号サブブロックとを、複数の記憶装置に分散して記憶する。
【００２５】
これによって、ブロックは、自律ストレージ装置内の複数の記憶装置に、サブブロック（データサブブロック及び誤り訂正符号サブブロック）として分散して記憶され、記憶装置に障害等が発生した場合であっても、誤り訂正の範囲内で、データサブブロックの誤り訂正を行い、障害が発生した記憶装置に記憶させてあったブロックを回復させることができる。
【００２６】
また、請求項６に記載の自律ストレージ装置は、請求項５に記載の自律ストレージ装置において、サブブロック誤り訂正手段と、サブブロック結合手段と、ブロック収集手段と、ブロック誤り訂正手段と、ブロック結合手段とを備える構成とした。
【００２７】
かかる構成において、自律ストレージ装置は、ブロックを回復させる場合、サブブロック誤り訂正手段によって、記憶装置に分散して記憶されているデータサブブロックと、誤り訂正符号サブブロックとに基づいて、データサブブロックの誤り訂正を行う。そして、自律ストレージ装置は、サブブロック結合手段によって、誤り訂正がなされたデータサブブロックを結合してブロックを生成する（回復させる）。
そして、自律ストレージ装置は、コンテンツを回復させる場合、ブロック収集手段によって、コンテンツに対応する、他の自律ストレージ装置に記憶されているブロックを収集する。
【００２８】
そして、自律ストレージ装置は、ブロック誤り訂正手段によって、ブロック収集手段で収集されたブロックと、コンテンツ記憶手段に記憶されているブロックとにより、コンテンツブロックの誤り訂正を行う。さらに、自律ストレージ装置は、ブロック結合手段によって、誤り訂正がなされたコンテンツブロックを結合してコンテンツを生成する（回復させる）。
【００２９】
さらに、請求項７に記載のコンテンツ分散プログラムは、コンテンツを複数の記憶装置に分散して記憶する自律ストレージ装置で、前記コンテンツを誤り訂正するために、コンピュータを、コンテンツ分割手段、誤り訂正符号ブロック生成手段、書き込み手段、読み出し手段、ブロック誤り訂正手段、ブロック結合手段として機能させる構成とした。
【００３０】
かかる構成において、コンテンツ分散プログラムは、コンテンツ分割手段によって、コンテンツを、予め定めた分割数のコンテンツブロックに分割する。そして、コンテンツ分散プログラムは、誤り訂正符号ブロック生成手段によって、コンテンツ分割手段で分割されたコンテンツブロックにより、その分割されたすべてのコンテンツブロックに対する誤り訂正符号からなる誤り訂正符号ブロックを生成する。
そして、コンテンツ分散プログラムは、書き込み手段によって、分割されたすべてのコンテンツブロックと、１つ以上の誤り訂正符号ブロックとを、複数の記憶装置に分散して記憶する。
【００３１】
そして、コンテンツ分散プログラムは、コンテンツを回復させる場合、読み出し手段によって、複数の記憶装置に記憶されているコンテンツブロックと誤り訂正符号ブロックとを読み出す。そして、コンテンツ分散プログラムは、ブロック誤り訂正手段によって、コンテンツブロックと誤り訂正符号ブロックとにより、コンテンツブロックの誤り訂正を行い、ブロック結合手段によって、コンテンツブロックを結合してコンテンツを生成する（回復させる）。
【００３２】
また、請求項８に記載のコンテンツ分散プログラムは、ネットワークに複数接続されて、コンテンツを分散して記憶する自律ストレージ装置で、前記コンテンツを誤り訂正するために、コンピュータを、コンテンツ分割手段、誤り訂正符号ブロック生成手段、記憶先設定手段、ブロック送信手段、ブロック受信手段、書き込み手段、ブロック収集手段、読み出し手段、ブロック誤り訂正手段、ブロック結合手段として機能させる構成とした。
【００３３】
かかる構成において、コンテンツ分散プログラムは、コンテンツ分割手段によって、コンテンツを、予め定めた分割数のコンテンツブロックに分割する。そして、コンテンツ分散プログラムは、誤り訂正符号ブロック生成手段によって、コンテンツ分割手段で分割されたコンテンツブロックにより、その分割されたすべてのコンテンツブロックに対する誤り訂正符号からなる誤り訂正符号ブロックを生成する。
そして、コンテンツ分散プログラムは、記憶先設定手段によって、予め定めた規則により、コンテンツブロック及び誤り訂正符号ブロックの各ブロックを、当該自律ストレージ装置に記憶するブロック、又は、他の自律ストレージ装置に記憶するブロックに設定する。
【００３４】
そして、コンテンツ分散プログラムは、ブロック送信手段によって、他の自律ストレージ装置に記憶するブロックとして設定されたブロックを、他の自律ストレージ装置に送信する。一方、他の自律ストレージ装置によって、当該自律ストレージ装置に記憶するブロックとして設定されたブロックは、ブロック受信手段によって、他の自律ストレージ装置から受信される。
そして、コンテンツ分散プログラムは、書き込み手段によって、当該自律ストレージ装置に記憶するブロックとして設定されたブロックと、ブロック受信手段で受信したブロックとをコンテンツ記憶手段に記憶する。
【００３５】
また、コンテンツ分散プログラムは、コンテンツを回復させる場合、ブロック収集手段によって、コンテンツに対応する、他の自律ストレージ装置に記憶されているブロックを収集する。
そして、コンテンツ分散プログラムは、読み出し手段によって、コンテンツに対応するブロックをコンテンツ記憶手段から読み出す。そして、コンテンツ分散プログラムは、ブロック誤り訂正手段によって、ブロック収集手段で収集されたブロックと、コンテンツ記憶手段から読み出されたブロックとにより、コンテンツブロックの誤り訂正を行う。そして、コンテンツ分散プログラムは、ブロック結合手段によって、誤り訂正がなされたコンテンツブロックを結合してコンテンツを生成する（回復させる）。
【発明の効果】
【００３６】
請求項１又は請求項７に記載の発明によれば、コンテンツを分割したコンテンツブロックと、そのコンテンツブロックから生成した誤り訂正符号ブロックとを、複数の記憶装置に分散して記憶するため、障害が発生した記憶装置に記憶させてあったコンテンツを回復させる場合に、従来のＲＡＩＤのように、障害が発生した記憶装置全体の記憶領域のデータを誤り訂正する必要がなく、コンテンツ単位で回復を行うことが可能になる。これによって、障害回復の時間を短くすることができる。
【００３７】
請求項２又は請求項７に記載の発明によれば、誤り訂正の範囲で、障害が発生した記憶装置に記憶されているブロックを回復させることができるので、動作を停止させることなく、サービスを継続して提供することが可能になる。
【００３８】
請求項３又は請求項８に記載の発明によれば、コンテンツを分割したコンテンツブロックと、そのコンテンツブロックから生成した誤り訂正符号ブロックとを、各自律ストレージ装置に分散して記憶するため、従来のようなすべてのコンテンツのバックアップデータを記憶する必要がなく、自律ストレージ装置の導入コストを低減させることが可能になる。
また、本発明によれば、コンテンツ単位で、誤り訂正符号ブロックを生成しているため、障害が発生した自律ストレージ装置に記憶させてあったコンテンツを回復させる場合に、従来のＲＡＩＤシステムのように、障害が発生した記憶装置全体の記憶領域のデータを誤り訂正する必要がなく、コンテンツ単位で回復を行うことが可能になる。これによって、障害回復の時間を短くすることができる。
【００３９】
請求項４又は請求項８に記載の発明によれば、誤り訂正の範囲で、障害が発生した自律ストレージ装置に記憶されているブロックを回復させることができるので、動作を停止させることなく、サービスを継続して提供することが可能になる。
【００４０】
請求項５に記載の発明によれば、ブロック単位で、誤り訂正符号サブブロックを生成しているため、障害が発生した記憶装置に記憶させてあったコンテンツを回復させる場合に、従来のＲＡＩＤのように、障害が発生した記憶装置全体の記憶領域のデータを誤り訂正する必要がなく、ブロック単位で回復を行うことが可能になる。これによって、障害回復の時間を短くすることができる。
【００４１】
請求項６に記載の発明によれば、誤り訂正の範囲で、障害が発生した記憶装置に記憶されているサブブロックを回復させることができるので、動作を停止させることなく、サービスを継続して提供することが可能になる。
また、本発明によれば、コンテンツを自律ストレージ装置間で分散するとともに、同一自律ストレージ装置内でも分散することによって、自律ストレージ装置間及び同一自律ストレージ装置内でそれぞれ誤り訂正を行うため、いずれか一方の誤り訂正が行えない場合であっても、他方の誤り訂正によって、コンテンツを回復させることができるため、コンテンツの安全性を高めることができる。
【発明を実施するための最良の形態】
【００４２】
以下、本発明の実施の形態について図面を参照して説明する。
［自律ストレージシステムの構成］
まず、図１を参照して、本発明に係る自律ストレージシステムの構成について、その概要を説明する。図１は、本発明に係る自律ストレージシステムの構成を示す概略ブロック図である。
【００４３】
図１に示すように、自律ストレージシステム１は、ネットワークＮに接続された複数（ここでは一例として１１台）の自律ストレージ装置２（２1〜２11）を備えている。この自律ストレージシステム１は、各々の自律ストレージ装置２（２1〜２11）にコンテンツを分散して記憶し、同一のネットワークＮに接続されたクライアントコンピュータ５等からコンテンツに対するアクセスである書き込み、読み出し等の要求に応答するものである。
なお、自律ストレージ装置２は、システム管理手段２０と、コンテンツ記憶手段３０とを備え（詳細な構成については後記する）、システム管理手段２０によって、他の自律ストレージ装置との間で協働することで、コンテンツを分散してコンテンツ記憶手段３０に記憶するものである。
【００４４】
ここで、自律ストレージシステム１は、クライアントコンピュータ５等からコンテンツの書き込み要求がなされた場合、いずれか１台の自律ストレージ装置２（例えば、自律ストレージ装置２1）が、自律ストレージシステム１内のホストコンピュータとして機能し、他の自律ストレージ装置２（例えば、自律ストレージ装置２2〜２11）をホストコンピュータ以外のコンピュータ（非ホストコンピュータ）とし、コンテンツの記憶先を決定する。
なお、ホストコンピュータは、自律ストレージシステム１の予め定めた１台とすることとしてもよいし、クライアントコンピュータ５等から要求のあった自律ストレージ装置２が、ホストコンピュータとなって、他の自律ストレージ装置２と協働して、コンテンツの記憶先を決定することとしてもよい。
【００４５】
（コンテンツの分散記憶方法）
ここで、図１を参照して、自律ストレージシステム１におけるコンテンツの分散記憶方法について、その概要を説明する。
自律ストレージシステム１は、記憶するコンテンツを複数のブロック（コンテンツブロック）に分割するとともに、その分割したブロックに対する誤り訂正符号となるブロック（誤り訂正符号ブロック）を生成し、そのコンテンツブロック及び誤り訂正符号ブロックを、複数の自律ストレージ装置２に分散して記憶する。
【００４６】
例えば、図１の例では、自律ストレージシステム１は、コンテンツＣ１を、３つのコンテンツブロックＣ1-1，Ｃ1-2及びＣ1-3に分割し、そのコンテンツブロックに対する誤り訂正符号となる誤り訂正符号ブロックＣ1-Pを生成することで、各ブロック全体（Ｃ1-1，Ｃ1-2，Ｃ1-3及びＣ1-P）を１つのコンテンツＣ１としている。そして、自律ストレージシステム１は、コンテンツブロックＣ1-1を自律ストレージ装置２1、コンテンツブロックＣ1-2を自律ストレージ装置２2、コンテンツブロックＣ1-3を自律ストレージ装置２3、誤り訂正符号ブロックＣ1-Pを自律ストレージ装置２4にそれぞれ記憶している。
このように、誤り訂正符号ブロックを付加して、コンテンツを分散させることで、いずれかの自律ストレージ装置２に障害が発生した場合であっても、コンテンツを回復させることができる。
【００４７】
さらに、各自律ストレージ装置２は、図２に示すように、記憶するブロック（コンテンツブロック又は誤り訂正符号ブロック）を分割し、複数の記憶装置３００に記憶することとしている。図２は、自律ストレージ装置２のコンテンツ記憶手段３０の構成と、ブロックの記憶状態とを模式的に示した図である。
図２に示すように、自律ストレージ装置２は、コンテンツ記憶手段３０として複数（ここでは一例として５台）の記憶装置３００を備えている。そして、自律ストレージ装置２は、記憶するブロックを複数のサブブロック（データサブブロック）に分割するとともに、その分割したデータサブブロックに対する誤り訂正符号となるサブブロック（誤り訂正符号サブブロック）を生成し、そのデータサブブロック及び誤り訂正符号サブブロックを、複数の記憶装置３００に分散して記憶する。
【００４８】
例えば、図２の例では、自律ストレージ装置２は、ブロック（コンテンツブロック）Ｃ1-1を、４つのデータサブブロックＣ1-1-1，Ｃ1-1-2，Ｃ1-1-3及びＣ1-1-4に分割し、そのデータサブブロックに対する誤り訂正符号となる誤り訂正符号サブブロックＣ1-1-Pを生成することで、各サブブロック全体（Ｃ1-1-1，Ｃ1-1-2，Ｃ1-1-3，Ｃ1-1-4及びＣ1-1-P）を１つのブロックＣ1-1としている。そして、自律ストレージ装置２は、データサブブロックＣ1-1-1を記憶装置３００1、データサブブロックＣ1-1-2を記憶装置３００2、データサブブロックＣ1-1-3を記憶装置３００3、データサブブロックＣ1-1-4を記憶装置３００4、誤り訂正符号サブブロックＣ1-1-Pを記憶装置３００5にそれぞれ記憶している。
このように、誤り訂正符号サブブロックを付加して、ブロック（コンテンツブロック又は誤り訂正符号ブロック）を分散させることで、いずれかの記憶装置３００に障害が発生した場合であっても、ブロックを回復させることができる。
【００４９】
（自律ストレージ装置の構成）
次に、図３を参照して、本発明に係る自律ストレージ装置の構成について詳細に説明する。図３は、本発明に係る自律ストレージ装置の構成を示すブロック図である。
図３に示すように、自律ストレージ装置２は、通信送受信手段１０と、システム管理手段２０と、コンテンツ記憶手段３０とを備えている。
【００５０】
通信送受信手段１０は、ネットワークＮを介して、クライアントコンピュータや他の自律ストレージ装置（図１参照）と、データの送受信を行うものである。例えば、通信送受信手段１０は、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）の通信プロトコルによってデータの送受信を行う通信ボードである。
【００５１】
システム管理手段２０は、自律ストレージ装置２全体の制御を行うものである。例えば、システム管理手段２０は、ＣＰＵ（Central Processing Unit）やメモリ等を備えたコンピュータであって、他の自律ストレージ装置と協働して、コンテンツの分散管理を行うものである。ここでは、システム管理手段２０は、コンテンツ格納手段２１と、コンテンツ配信手段２２と、制御情報受信手段２３と、制御情報送信手段２４と、コンテンツ管理手段２５と、コンテンツ操作制御手段２６と、読み出し手段２７と、書き込み手段２８とを備えている。
【００５２】
コンテンツ格納手段２１は、通信送受信手段１０を介して、コンテンツを取得し、コンテンツ記憶手段３０に記憶するものである。ここでは、コンテンツ格納手段２１は、コンテンツ受信手段２１ａと、コンテンツ分割手段２１ｂと、誤り訂正符号ブロック生成手段２１ｃと、ブロック分割手段２１ｄと、誤り訂正符号サブブロック生成手段２１ｅと、ブロック受信手段２１ｆとを備えている。
【００５３】
コンテンツ受信手段２１ａは、通信送受信手段１０を介して取得したコンテンツを受信するものである。このコンテンツ受信手段２１ａは、コンテンツ操作制御手段２６から通知されるコンテンツの送信元（例えば、クライアントコンピュータ）から、通信送受信手段１０を介してコンテンツを受信する。このコンテンツ受信手段２１ａで受信したコンテンツは、コンテンツ分割手段２１ｂに出力される。
【００５４】
コンテンツ分割手段２１ｂは、コンテンツを予め定めた分割数のブロック（コンテンツブロック）に分割するものである。例えば、図１に示したように、コンテンツＣ１を分割する場合、コンテンツ分割手段２１ｂは、コンテンツＣ１を先頭のバイトデータから順番にバイト単位で３分割することで、コンテンツブロックＣ1-1，Ｃ1-2及びＣ1-3を生成する。このコンテンツ分割手段２１ｂで分割されたコンテンツブロックは、誤り訂正符号ブロック生成手段２１ｃに出力される。
なお、コンテンツ分割手段２１ｂは、コンテンツを分割する分割数を、コンテンツ毎に定めることとしてもよい。
【００５５】
誤り訂正符号ブロック生成手段２１ｃは、コンテンツ分割手段２１ｂで分割されたコンテンツブロックに基づいて、分割されたすべてのコンテンツブロックに対する誤り訂正符号からなる誤り訂正符号ブロックを生成するものである。例えば、誤り訂正符号ブロック生成手段２１ｃは、分割されたすべてのコンテンツブロックをバイト単位で排他的論理和（Ｅｘｃｌｕｓｉｖｅ−ＯＲ）演算を行い、その演算結果であるバイトデータ列を誤り訂正符号ブロックとする。
また、誤り訂正符号ブロック生成手段２１ｃは、コンテンツ分割手段２１ｂにおいて、コンテンツが等分に分割されなかった場合、例えば、図１において、コンテンツブロックＣ1-2及びＣ1-3又はコンテンツブロックＣ1-3のバイト長が、コンテンツブロックＣ1-1よりも１バイト短い場合、そのバイト長の短いコンテンツブロックに、値が“０ｘ００”となる１バイト分のデータ（ダミーデータ）を付加して排他的論理和演算を行う。
なお、ここでは、バイト単位で誤り訂正符号を生成することとしたが、ビット単位で誤り訂正符号を生成することとしてもよい。
【００５６】
また、この誤り訂正符号には、一般的な誤り訂正符号を用いることが可能で、リードソロモン（ＲＳ）符号等を用いることとしてもよい。例えば、リードソロモン（ｎ，ｋ）符号を用いる場合、誤り訂正符号ブロック生成手段２１ｃは、ｋ個のコンテンツブロックに対して、（ｎ−ｋ）個の誤り訂正ブロックを生成する。これによって、（ｎ−ｋ）個のコンテンツブロックの消失に対して、コンテンツブロックの回復が可能になる。
【００５７】
また、誤り訂正符号ブロック生成手段２１ｃは、コンテンツ操作制御手段２６から通知されるブロックの記憶先（当該自律ストレージ装置２1又は他の自律ストレージ装置）により、入力されたコンテンツブロック及び生成した誤り訂正符号ブロックの出力先を替える。ここでは、誤り訂正符号ブロック生成手段２１ｃは、記憶先として当該自律ストレージ装置２1が指示されたブロックをブロック分割手段２１ｄに出力する。また、記憶先として他の自律ストレージ装置が指示されたブロックをコンテンツ配信手段２２のブロック送信手段２２ｆに出力する。
【００５８】
ブロック分割手段２１ｄは、誤り訂正符号ブロック生成手段２１ｃから出力されるブロック（コンテンツブロック又は誤り訂正符号ブロック）、又は、ブロック受信手段２１ｆから出力されるブロックを、予め定めた分割数のサブブロック（データサブブロック）に分割するものである。例えば、図２に示したように、ブロックＣ1-1を分割する場合、ブロック分割手段２１ｄは、ブロックＣ1-1を先頭のバイトデータから順番にバイト単位で４分割することで、データサブブロックＣ1-1-1，Ｃ1-1-2，Ｃ1-1-3及びＣ1-1-4を生成する。このブロック分割手段２１ｄで分割されたデータサブブロックは、誤り訂正符号サブブロック生成手段２１ｅに出力される。
なお、ブロック分割手段２１ｄは、ブロックを分割する分割数を、ブロック毎に定めることとしてもよい。
【００５９】
誤り訂正符号サブブロック生成手段２１ｅは、ブロック分割手段２１ｄで分割されたデータサブブロックに基づいて、分割されたすべてのデータサブブロックに対する誤り訂正符号からなる誤り訂正符号サブブロックを生成するものである。例えば、誤り訂正符号サブブロック生成手段２１ｅは、分割されたすべてのデータサブブロックを、誤り訂正符号ブロック生成手段２１ｃと同様に、バイト単位で排他的論理和演算を行い、その演算結果であるバイトデータ列を誤り訂正符号サブブロックとする。
【００６０】
また、誤り訂正符号サブブロック生成手段２１ｅは、ブロック分割手段２１ｄにおいて、ブロックが等分に分割されなかった場合、データ長が短いデータサブブロックに値が“０ｘ００”となる１バイト分のデータ（ダミーデータ）を付加して排他的論理和演算を行う。なお、ここでは、バイト単位で誤り訂正符号を生成することとしたが、ビット単位で誤り訂正符号を生成することとしてもよい。
また、この誤り訂正符号には、誤り訂正符号ブロック生成手段２１ｃと同様に一般的な誤り訂正符号を用いることが可能で、リードソロモン符号等を用いることとしてもよい。例えば、リードソロモン（ｎ，ｋ）符号を用いる場合、誤り訂正符号サブブロック生成手段２１ｅは、ｋ個のデータサブブロックに対して、（ｎ−ｋ）個の誤り訂正符号サブブロックを生成する。これによって、（ｎ−ｋ）個のデータサブブロックの消失に対して、データサブブロックの回復が可能になる。
【００６１】
そして、誤り訂正符号サブブロック生成手段２１ｅは、入力されたデータサブブロックと、生成した誤り訂正符号サブブロックとを、コンテンツ記憶手段３０に記憶する。
なお、誤り訂正符号サブブロック生成手段２１ｅは、コンテンツ操作制御手段２６から通知されるサブブロック（データサブブロック及び誤り訂正符号サブブロック）の記憶先（記憶装置３００）に基づいて、書き込み手段２８を介して、サブブロックをコンテンツ記憶手段３０の各記憶装置３００に分散して記憶する。
【００６２】
ブロック受信手段２１ｆは、他の自律ストレージ装置２から送信されるブロック（コンテンツブロック又は誤り訂正符号ブロック）を、通信送受信手段１０を介して受信するものである。
なお、ブロック受信手段２１ｆは、コンテンツ操作制御手段２６から通知されるブロックの出力先により、受信したブロックの出力先を、ブロック分割手段２１ｄかブロック誤り訂正手段２２ｃかのいずれか一方に出力する。
【００６３】
すなわち、自律ストレージ装置２1が非ホストコンピュータとして機能する場合に、ブロック受信手段２１ｆがブロックをブロック分割手段２１ｄに出力することを指示されることで、当該ブロックは自律ストレージ装置２1内に記憶されることになる。
また、自律ストレージ装置２1がホストコンピュータとして機能する場合に、ブロック受信手段２１ｆがブロックをブロック誤り訂正手段２２ｃに出力することを指示されることで、当該ブロックはコンテンツを回復させるために使用されることになる。
【００６４】
コンテンツ配信手段２２は、通信送受信手段１０を介して、コンテンツ記憶手段３０に記憶されているコンテンツを、そのコンテンツを要求した要求元（例えば、クライアントコンピュータ）に配信したり、コンテンツ記憶手段３０に記憶されているコンテンツを構成するブロックを、そのブロックを要求した要求元（他の自律ストレージ装置）に配信したりするものである。ここでは、コンテンツ配信手段２２は、サブブロック誤り訂正手段２２ａと、サブブロック結合手段２２ｂと、ブロック誤り訂正手段２２ｃと、ブロック結合手段２２ｄと、コンテンツ送信手段２２ｅと、ブロック送信手段２２ｆとを備えている。
【００６５】
サブブロック誤り訂正手段２２ａは、コンテンツ操作制御手段２６から指定されるサブブロックの記憶元（記憶装置３００）から、同じく指定されたサブブロック（データサブブロック及び誤り訂正符号サブブロック）を、読み出し手段２７を介して読み出し、誤り訂正を行ったデータサブブロックを生成するものである。
例えば、誤り訂正符号サブブロックが、複数のデータサブブロックの排他的論理和演算によって生成されたものであって、あるデータサブブロックにおいて、データが消失した場合、あるいは、記憶装置３００の障害等によってデータサブブロックが読み出せない場合、サブブロック誤り訂正手段２２ａは、正常に読み出せたデータサブブロックと、誤り訂正符号サブブロックとを排他的論理和演算することで、消失したデータサブブロック、あるいは、読み出せなかったデータサブブロックを回復させる。
このサブブロック誤り訂正手段２２ａにおいて、誤り訂正がなされたデータサブブロックは、サブブロック結合手段２２ｂに出力される。
なお、サブブロック誤り訂正手段２２ａは、複数の記憶装置３００の障害によって、データサブブロックの誤り訂正が行えない場合、その旨をサブブロック結合手段２２ｂに出力する。
【００６６】
サブブロック結合手段２２ｂは、サブブロック誤り訂正手段２２ａで誤り訂正がなされたデータサブブロックを結合し、ブロック（コンテンツブロック又は誤り訂正符号ブロック）を生成するものである。
なお、サブブロック結合手段２２ｂは、コンテンツ操作制御手段２６から通知される送信先により、ブロックの出力先を、ブロック誤り訂正手段２２ｃかブロック送信手段２２ｆかのいずれか一方に出力する。
【００６７】
すなわち、自律ストレージ装置２1がホストコンピュータとして機能する場合、サブブロック結合手段２２ｂがブロックをブロック誤り訂正手段２２ｃに出力することを指示されることで、当該ブロックは当該自律ストレージ装置２1でコンテンツを回復させるために使用されることになる。
また、自律ストレージ装置２1が非ホストコンピュータとして機能する場合、サブブロック結合手段２２ｂがブロックをブロック送信手段２２ｆに出力することを指示されることで、当該ブロックはホストコンピュータ（他の自律ストレージ装置２）でコンテンツを回復させるために使用されることになる。
なお、サブブロック結合手段２２ｂは、サブブロック誤り訂正手段２２ａにおいて、誤り訂正が行えなかった場合には、当該ブロックを障害ブロックとしてブロック誤り訂正手段２２ｃ又はブロック送信手段２２ｆに出力する。
【００６８】
ブロック誤り訂正手段２２ｃは、後記するコンテンツ管理手段２５のブロック収集手段２５ｃの指示によって、他の自律ストレージ装置２から収集した、ブロック受信手段２１ｆで受信したブロック（コンテンツブロック又は誤り訂正符号ブロック）と、サブブロック結合手段２２ｂで結合されたコンテンツ記憶手段３０に記憶されているブロック（コンテンツブロック又は誤り訂正符号ブロック）とに基づいて、コンテンツブロックの誤り訂正を行うものである。
【００６９】
例えば、誤り訂正符号ブロックが、複数のコンテンツブロックの排他的論理和演算によって生成されたものであって、あるコンテンツブロックにおいて、当該ブロックが消失した場合（障害ブロックである場合）、あるいは、他の自律ストレージ装置２の障害等によってコンテンツブロックが受信できない場合、ブロック誤り訂正手段２２ｃは、正常なコンテンツブロックと、誤り訂正符号ブロックとを排他的論理和演算することで、消失したコンテンツブロック、あるいは、受信できなかったコンテンツブロックを回復させる。
このブロック誤り訂正手段２２ｃにおいて、誤り訂正がなされたコンテンツブロックは、ブロック結合手段２２ｄに出力される。
なお、ブロック誤り訂正手段２２ｃは、障害ブロックが複数あって、コンテンツブロックの誤り訂正が行えない場合、その旨をコンテンツ管理手段２５に通知し、コンテンツを要求したクライアントコンピュータ等に通知する。
【００７０】
ブロック結合手段２２ｄは、ブロック誤り訂正手段２２ｃで誤り訂正がなされたコンテンツブロックを結合し、コンテンツを生成するものである。このブロック結合手段２２ｄで生成されたコンテンツは、コンテンツ送信手段２２ｅに出力される。
【００７１】
コンテンツ送信手段２２ｅは、ブロック結合手段２２ｄで生成されたコンテンツを、コンテンツ操作制御手段２６から通知されるコンテンツの送信先（例えば、クライアントコンピュータ）に、通信送受信手段１０を介して送信するものである。
【００７２】
ブロック送信手段２２ｆは、誤り訂正符号ブロック生成手段２１ｃで生成されたブロック、又は、サブブロック結合手段２２ｂで生成されたブロックを、コンテンツ操作制御手段２６から通知されるブロックの送信先（他の自律ストレージ装置等）に、通信送受信手段１０を介して送信するものである。
【００７３】
制御情報受信手段２３は、通信送受信手段１０を介して、クライアントコンピュータ、他の自律ストレージ装置（図１参照）等から、コンテンツ以外のデータである制御情報を受信するものである。この制御情報受信手段２３で受信した制御情報は、コンテンツ管理手段２５に出力される。
【００７４】
制御情報送信手段２４は、コンテンツ管理手段２５から出力される制御情報を、通信送受信手段１０を介して、クライアントコンピュータ、他の自律ストレージ装置（図１参照）等に送信するものである。
ここで、制御情報は、コンテンツを格納する（書き込む）旨を示すコンテンツ格納指示、コンテンツを配信する（読み出す）旨を示すコンテンツ配信指示、ブロックを格納する（書き込む）旨を示すブロック格納指示、ブロックを配信する（読み出す）旨を示すブロック配信指示等、あるいはこれらの指示に対する応答等である。
【００７５】
コンテンツ管理手段２５は、制御情報受信手段２３で受信した制御情報に基づいて、コンテンツの管理を行うものである。ここでは、コンテンツ管理手段２５は、役割設定手段２５ａと、記憶先設定手段２５ｂと、ブロック収集手段２５ｃとを備えている。
【００７６】
役割設定手段２５ａは、当該自律ストレージ装置２1をホストコンピュータとして機能させるか、非ホストコンピュータとして機能させるかを設定するものである。
なお、この役割設定手段２５ａは、例えば、クライアントコンピュータから、コンテンツ格納指示を制御情報として受信した場合、その制御情報を受信した自律ストレージ装置を、ホストコンピュータとして設定する。あるいは、他の自律ストレージ装置と協働し、コンテンツ記憶手段３０に記憶されているコンテンツの量が最も少ない自律ストレージ装置をホストコンピュータとして設定することとしてもよい。
【００７７】
また、役割設定手段２５ａは、例えば、クライアントコンピュータから、コンテンツ配信指示を制御情報として受信した場合、その制御情報を受信した自律ストレージ装置を、ホストコンピュータとして設定する。あるいは、他の自律ストレージ装置と協働し、分割されたコンテンツブロックの先頭ブロックが記憶されている自律ストレージ装置をホストコンピュータとして設定することとしてもよい。
【００７８】
記憶先設定手段２５ｂは、当該自律ストレージ装置２1が、ホストコンピュータとして機能する場合に、予め定めた規則に基づいて、ブロック（コンテンツブロック及び誤り訂正符号ブロック）の記憶先を設定するものである。
例えば、コンテンツブロックの先頭となるブロックを、当該自律ストレージ装置２1に記憶し、他のブロックを当該自律ストレージ装置２1に論理的に隣接する（例えば、ＩＰアドレスが昇順となる）自律ストレージ装置に順番に記憶するといった規則を予め定めておくことで、記憶先設定手段２５ｂは、各ブロックの記憶先を設定する。
この記憶先設定手段２５ｂで設定された記憶先は、コンテンツ記憶手段３０のいずれか決められた記憶装置３００になるとともに、コンテンツ操作制御手段２６を介して、コンテンツ格納手段２１に出力される。
なお、各ブロックは、必ずしも論理的に隣接する自律ストレージ装置の順番に記憶される必要はなく、予め規則として定めたものであれば、どの自律ストレージ装置に記憶されてもよい。
【００７９】
ブロック収集手段２５ｃは、当該自律ストレージ装置２1が、ホストコンピュータとして機能する場合に、他の自律ストレージ装置に記憶されているブロックを収集するものである。
このブロック収集手段２５ｃは、コンテンツ配信指示を制御情報として受信した場合に、記憶先設定手段２５ｂで設定された記憶先に基づいて、要求のあったコンテンツを構成するブロックを収集するための、ブロック配信指示を他の自律ストレージ装置に送信する。これによって、他の自律ストレージ装置に分散して記憶されているブロックが、当該自律ストレージ装置２1に配信されることになる。
【００８０】
コンテンツ操作制御手段２６は、コンテンツ管理手段２５から出力される各種指示に基づいて、コンテンツの操作を行うものである。このコンテンツ操作制御手段２６は、コンテンツ格納指示に基づいて、コンテンツ格納手段２１及びコンテンツ配信手段２２に対して、コンテンツの送信元と、コンテンツを分割した際のブロックの記憶先（当該自律ストレージ装置２1又は他の自律ストレージ装置）とを通知することで、コンテンツの格納（記憶）を行う。また、コンテンツ操作制御手段２６は、コンテンツ配信指示に基づいて、コンテンツ格納手段２１及びコンテンツ配信手段２２に対して、コンテンツの送信先と、分割されているブロックの記憶元を通知することで、コンテンツを回復させ、回復したコンテンツをクライアントコンピュータに配信する。
【００８１】
読み出し手段２７は、コンテンツ記憶手段３０に記憶されているブロック（コンテンツブロック及び誤り訂正符号ブロック）を読み出すものである。なお、ここでは、読み出し手段２７は、コンテンツ記憶手段３０の記憶装置３００に分散して記憶されているサブブロック単位で、読み出し要求のあったブロックの読み出しを行い、サブブロック単位でコンテンツ配信手段２２に出力する。
【００８２】
書き込み手段２８は、コンテンツ格納手段２１から出力されるブロックをコンテンツ記憶手段３０に記憶するものである。なお、ここでは、書き込み手段２８は、ブロックをコンテンツ格納手段２１から出力されるサブブロック単位で、記憶装置３００に分散して記憶する。
【００８３】
コンテンツ記憶手段３０は、コンテンツを予め定めた分割数に分割したブロック単位で、記憶するものである。なお、ここでは、コンテンツ記憶手段３０は、複数の記憶装置３００を備え、さらにブロックを予め定めた分割数に分割したサブブロック単位で各記憶装置３００に記憶することとしている。
記憶装置３００は、サブブロックを記憶するもので、ハードディスク等の一般的な記憶装置である。
【００８４】
ここで、図４を参照して、コンテンツ記憶手段３０及び記憶装置３００に記憶するコンテンツの記憶状態について例を示して説明する。図４は、コンテンツ記憶手段及び記憶装置におけるコンテンツの記憶状態を模式的に示した図であって、（ａ）は誤り訂正符号を排他的論理和演算により生成した場合、（ｂ）は誤り訂正符号をリードソロモン符号で生成した場合を示している。
【００８５】
図４（ａ）に示すように、誤り訂正符号を排他的論理和演算により生成した場合、コンテンツＣ１は、複数（ここでは３つ）のブロック（コンテンツブロック）Ｃ1-1，Ｃ1-2，Ｃ1-3に対して、１つの誤り訂正符号ブロックＣ1-Pが生成され、４台の自律ストレージ装置２1，２2，２3，２4に分散されて記憶される。
また、１つのブロックＣ1-1は、複数（ここでは３つ）のサブブロック（データサブブロック）Ｃ1-1-1，Ｃ1-1-2，Ｃ1-1-3に対して、１つの誤り訂正符号サブブロックＣ1-1-Pが生成され、自律ストレージ装置２1のコンテンツ記憶手段３０内の４台の記憶装置３００1，３００2，３００3，３００4に分散されて記憶される。
【００８６】
これによって、ブロック（コンテンツブロック）Ｃ1-1，Ｃ1-2，Ｃ1-3のいずれか１つ、あるいは、自律ストレージ装置２1，２2，２3のいずれか１台に障害が発生し、１つのコンテンツブロックが読み出せない場合であっても、他の読み出し可能なコンテンツブロック及び誤り訂正符号ブロックによって、読み出し不可のコンテンツブロックを回復させることができる。
さらに、サブブロック（データサブブロック）Ｃ1-1-1，Ｃ1-1-2，Ｃ1-1-3において、コンテンツブロックと同様に、１つのデータサブブロックが読み出せない場合であっても、他の読み出し可能なデータサブブロック及び誤り訂正符号サブブロックによって、読み出し不可のデータサブブロックを回復させることができる。
【００８７】
また、図４（ｂ）に示すように、誤り訂正符号をリードソロモン符号（ここでは、リードソロモン（５，３）符号）とした場合、コンテンツＣ１は、複数（ここでは３つ）のブロック（コンテンツブロック）Ｃ1-1，Ｃ1-2，Ｃ1-3に対して、２つの誤り訂正符号ブロックＣ1-P1，Ｃ1-P2が生成され、５台の自律ストレージ装置２1，２2，２3，２4，２5に分散されて記憶される。
また、１つのブロックＣ1-1は、複数（ここでは３つ）のサブブロック（データサブブロック）Ｃ1-1-1，Ｃ1-1-2，Ｃ1-1-3に対して、２つの誤り訂正符号サブブロックＣ1-1-P1，Ｃ1-1-P2が生成され、自律ストレージ装置２1のコンテンツ記憶手段３０内の５台の記憶装置３００1，３００2，３００3，３００4，３００5に分散されて記憶される。
【００８８】
これによって、ブロック（コンテンツブロック、誤り訂正符号ブロック）Ｃ1-1，Ｃ1-2，Ｃ1-3，Ｃ1-P1，Ｃ1-P2のいずれか２つ、あるいは、自律ストレージ装置２1，２2，２3，２4，２5のいずれか２台に障害が発生し、いずれか２つのブロックが読み出せない場合であっても、他の読み出し可能なコンテンツブロック及び誤り訂正符号ブロックによって、読み出し不可のコンテンツブロックを回復させることができる。
さらに、サブブロック（データサブブロック、誤り訂正符号サブブロック）Ｃ1-1-1，Ｃ1-1-2，Ｃ1-1-3，Ｃ1-1-P1，Ｃ1-1-P2のいずれか２つ、あるいは、記憶装置３００1，３００2，３００3，３００4，３００5のいずれか２台に障害が発生し、いずれか２つのサブブロックが読み出せない場合であっても、他の読み出し可能なデータサブブロック及び誤り訂正符号サブブロックによって、読み出し不可のデータサブブロックを回復させることができる。
【００８９】
以上、本発明に係る自律ストレージ装置２の構成について説明したが、本発明はこれに限定されるものではない。
例えば、自律ストレージ装置２は、コンテンツを分割したブロックを、サブブロックに分割せずにそのまま記憶することとしてもよい。すなわち、図５に示したように、図３の自律ストレージ装置２の構成から、ブロック分割手段２１ｄ及び誤り訂正符号サブブロック生成手段２１ｅを省略したコンテンツ格納手段２１Ｂ、サブブロック誤り訂正手段２２ａ及びサブブロック結合手段２２ｂを省略したコンテンツ配信手段２２Ｂとし、コンテンツ記憶手段３０の記憶装置３００を１台とした簡略化した構成の自律ストレージ装置２Ｂとしてもよい。この場合であっても、コンテンツは、ブロック単位で複数の自律ストレージ装置に誤り訂正符号ブロックとともに分散されるため、いずれかの自律ストレージ装置に障害があった場合でも、コンテンツを回復させることができる。
【００９０】
また、例えば、自律ストレージ装置２は、コンテンツを分割したブロックを、他の自律ストレージ装置と協働せずに、単独で自装置内の複数の記憶装置３００に分割して記憶することとしてもよい。すなわち、図６に示したように、図３の自律ストレージ装置２の構成から、ブロック分割手段２１ｄ、誤り訂正符号サブブロック生成手段２１ｅ及びブロック受信手段２１ｆを省略したコンテンツ格納手段２１Ｃ、サブブロック誤り訂正手段２２ａ、サブブロック結合手段２２ｂ及びブロック送信手段２２ｆを省略したコンテンツ配信手段２２Ｃ、単独でコンテンツを記憶するコンテンツ記憶装置２Ｃとしてもよい。この場合、コンテンツを分割したコンテンツブロックと、そのコンテンツブロックから生成される誤り訂正符号ブロックとを、複数の記憶装置３００に分散して記憶させることで、いずれかの記憶装置に障害があった場合でも、コンテンツを回復させることができる。
【００９１】
なお、自律ストレージ装置２、２Ｂや、コンテンツ記憶装置２Ｃにおいて、システム管理手段２０、２０Ｂ及び２０Ｃは、一般的なコンピュータを、前記した各手段として機能させるコンテンツ分散プログラムによって動作させることとしてもよい。
【００９２】
［自律ストレージシステムの動作］
次に、図７及び図８を参照して、自律ストレージシステムの動作について説明する。図７は、自律ストレージシステムにおけるコンテンツの書き込み動作を示すフローチャートである。図８は、自律ストレージシステムにおけるコンテンツの読み出し動作を示すフローチャートである。
【００９３】
（コンテンツ書き込み動作）
最初に、図７を参照（適宜図１及び図３参照）して、自律ストレージシステムにおけるコンテンツの書き込み動作について説明する。
まず、自律ストレージシステム１内の任意の１台である自律ストレージ装置（ここでは、自律ストレージ装置２1とする）が、制御情報受信手段２３によって、クライアントコンピュータ５から、コンテンツを記憶する自律ストレージ装置を問い合わせる「コンテンツ転送先要求」を、通信送受信手段１０を介して受信する（ステップＳ１）。
そして、自律ストレージ装置２1は、コンテンツ管理手段２５の役割設定手段２５ａによって、他の自律ストレージ装置（ここでは、自律ストレージ装置２2〜２11）と協働して、各自律ストレージ装置の役割を設定（決定）する（ステップＳ２，Ｓ２n）。例えば、役割設定手段２５ａは、コンテンツ記憶手段３０に記憶されているコンテンツの量が最も少ない自律ストレージ装置をホストコンピュータとして設定する。ここでは、自律ストレージ装置２1が、ホストコンピュータとして設定されたこととする。
【００９４】
続けて、ホストコンピュータとして設定された自律ストレージ装置２1は、役割設定手段２５ａによって、どの自律ストレージ装置が、ホストコンピュータであるかを制御情報として、クライアントコンピュータ５に通知する（ステップＳ３）。
そして、自律ストレージ装置２1は、コンテンツ格納手段２１のコンテンツ受信手段２１ａによって、クライアントコンピュータ５から、通信送受信手段１０を介してコンテンツを受信する（ステップＳ４）。
そして、自律ストレージ装置２1は、コンテンツ分割手段２１ｂによって、ステップＳ４で受信したコンテンツを、予め定めた分割数のブロック（コンテンツブロック）に分割する（ステップＳ５）。なお、ここでは、コンテンツを３分割することとする。
【００９５】
さらに、自律ストレージ装置２1は、誤り訂正符号ブロック生成手段２１ｃによって、ステップＳ５で分割されたコンテンツブロックに基づいて、その分割されたすべてのコンテンツブロックに対する誤り訂正符号からなる誤り訂正符号ブロックを生成する（ステップＳ６）。
そして、自律ストレージ装置２1は、記憶先設定手段２５ｂによって、予め定めた規則に基づいて、ブロック（コンテンツブロック及び誤り訂正符号ブロック）の記憶先を設定（決定）し、各ブロックをその記憶先に送信する。ここでは、分割した先頭のブロックを自律ストレージ装置２1内に記憶することとし、他のブロックを非ホストコンピュータである他の自律ストレージ装置２2〜２4に送信する（ステップＳ７）。
そして、自律ストレージ装置２1は、ブロック分割手段２１ｄによって、当該自律ストレージ装置２1内に記憶するブロックを、予め定めた分割数のサブブロック（データサブブロック）に分割する（ステップＳ８）。
【００９６】
さらに、自律ストレージ装置２1は、誤り訂正符号サブブロック生成手段２１ｅによって、ステップＳ８で分割されたデータサブブロックに基づいて、その分割されたすべてのデータサブブロックに対する誤り訂正符号からなる誤り訂正符号サブブロックを生成する（ステップＳ９）。
そして、自律ストレージ装置２1は、書き込み手段２８によって、コンテンツ管理手段２５が、コンテンツ操作制御手段２６を介して、コンテンツ格納手段２１に通知したサブブロックの記憶位置に基づいて、ステップＳ８で分割されたデータサブブロックと、ステップＳ９で生成された誤り訂正符号サブブロックとを、複数の記憶装置３００に分散して記憶する（ステップＳ１０）。
【００９７】
一方、非ホストコンピュータとして機能する自律ストレージ装置２2は、ブロック受信手段２１ｆによって、ホストコンピュータである自律ストレージ装置２1から送信されるブロックを受信する（ステップＳ７2）。
そして、自律ストレージ装置２2は、ブロック分割手段２１ｄによって、ステップＳ７2で受信したブロックを、予め定めた分割数のサブブロック（データサブブロック）に分割する（ステップＳ８2）。
【００９８】
さらに、自律ストレージ装置２2は、誤り訂正符号サブブロック生成手段２１ｅによって、ステップＳ８2で分割されたデータサブブロックに基づいて、その分割されたすべてのデータサブブロックに対する誤り訂正符号からなる誤り訂正符号サブブロックを生成する（ステップＳ９2）。
そして、自律ストレージ装置２2は、書き込み手段２８によって、ステップＳ８2で分割されたデータサブブロックと、ステップＳ９2で生成された誤り訂正符号サブブロックとを、コンテンツ記憶手段３０内の複数の記憶装置３００に分散して記憶する（ステップＳ１０2）。
なお、他の非ホストコンピュータとして機能する自律ストレージ装置２3及び２4の動作（ステップＳ７3〜Ｓ１０3及びステップＳ７4〜Ｓ１０4）は、自律ストレージ装置２2の動作（ステップＳ７2〜Ｓ１０2）と同一であるため、説明を省略する。
【００９９】
以上の動作によって、自律ストレージシステム１は、クライアントコンピュータ５から受信したコンテンツを、コンテンツブロックに分割し、誤り訂正符号ブロックとともに複数の自律ストレージ装置に分散する。そして、その分散されたブロックは、さらに自律ストレージ装置内で、データサブブロックに分割され、誤り訂正符号サブブロックとともに複数の記憶装置に分散されて記憶される。
【０１００】
（コンテンツ読み出し動作）
次に、図８を参照（構成については適宜図１及び図３参照）して、自律ストレージシステムにおけるコンテンツの読み出し動作について説明する。
まず、自律ストレージシステム１内の任意の１台である自律ストレージ装置（ここでは、自律ストレージ装置２1とする）が、制御情報受信手段２３によって、クライアントコンピュータ５から、コンテンツを記憶している自律ストレージ装置を問い合わせる「コンテンツ転送元要求」を、通信送受信手段１０を介して受信する（ステップＳ１１）。
そして、自律ストレージ装置２1は、コンテンツ管理手段２５の役割設定手段２５ａによって、他の自律ストレージ装置（ここでは、自律ストレージ装置２2〜２11）と協働して、各自律ストレージ装置の役割を設定（決定）する（ステップＳ１２，Ｓ１２n）。例えば、役割設定手段２５ａは、要求のあったコンテンツを記憶している自律ストレージ装置の中で、先頭のブロックを記憶している自律ストレージ装置をホストコンピュータとして設定する。ここでは、自律ストレージ装置２1が、ホストコンピュータとして設定されたこととする。
【０１０１】
続けて、ホストコンピュータとして設定された自律ストレージ装置２1は、役割設定手段２５ａによって、どの自律ストレージ装置が、ホストコンピュータであるかを制御情報として、クライアントコンピュータ５に通知する（ステップＳ１３）。
そして、自律ストレージ装置２1は、制御情報受信手段２３によって、クライアントコンピュータ５から、通信送受信手段１０を介して、コンテンツの配信要求を示す「コンテンツ配信指示」を制御情報として受信する（ステップＳ１４）。
そして、自律ストレージ装置２1は、コンテンツ管理手段２５のブロック収集手段２５ｃによって、当該コンテンツに対応するブロックが記憶されている他の自律ストレージ装置（ここでは、自律ストレージ装置２2〜２4）に、ブロックの配信要求を示す「ブロック配信指示」を送信する（ステップＳ１５）。
【０１０２】
ここで、自律ストレージ装置２2は、制御情報受信手段２３によって、自律ストレージ装置２1が送信した「ブロック配信指示」を受信する（ステップＳ１５2）。
そして、コンテンツ管理手段２５が、コンテンツ操作制御手段２６を介して、コンテンツ配信手段２２に、ブロックを構成するサブブロックの記憶位置を通知する。
そして、自律ストレージ装置２2は、コンテンツ配信手段２２のサブブロック誤り訂正手段２２ａによって、コンテンツ記憶手段３０内の記憶装置３００からサブブロック（データサブブロック及び誤り訂正符号サブブロック）を、読み出し手段２７を介して読み出し、データサブブロックの誤り訂正を行う（ステップＳ１６2）。
【０１０３】
さらに、自律ストレージ装置２2は、サブブロック結合手段２２ｂによって、ステップＳ１６2で誤り訂正がなされたデータサブブロックを結合し、ブロック（コンテンツブロック又は誤り訂正符号ブロック）を生成する（ステップＳ１７2）。
そして、自律ストレージ装置２2は、ブロック送信手段２２ｆによって、ステップＳ１７2で生成されたブロックを、ホストコンピュータである自律ストレージ装置２1に送信する（ステップＳ１８2）。
なお、他の非ホストコンピュータとして機能する自律ストレージ装置２3及び２4の動作（ステップＳ１５3〜Ｓ１８3及びステップＳ１５4〜Ｓ１８4）は、自律ストレージ装置２2の動作（ステップＳ１５2〜Ｓ１８2）と同一であるため、説明を省略する。
【０１０４】
一方、自律ストレージ装置２1は、コンテンツ配信手段２２のサブブロック誤り訂正手段２２ａによって、自律ストレージ装置２1内の記憶装置３００からサブブロック（データサブブロック及び誤り訂正符号サブブロック）を、読み出し手段２７を介して読み出し、データサブブロックの誤り訂正を行う（ステップＳ１６）。
さらに、自律ストレージ装置２1は、サブブロック結合手段２２ｂによって、ステップＳ１６で誤り訂正がなされたデータサブブロックを結合し、ブロック（コンテンツブロック又は誤り訂正符号ブロック）を生成する（ステップＳ１７）。
【０１０５】
そして、自律ストレージ装置２1は、ブロック受信手段２１ｆによって、他の自律ストレージ装置２2〜２4が送信したブロックを受信する（ステップＳ１８）。
そして、自律ストレージ装置２1は、ブロック誤り訂正手段２２ｃによって、ステップ１７で生成したブロックと、ステップＳ１８で受信したブロックとに基づいて、コンテンツブロックの誤り訂正を行う（ステップＳ１９）。
さらに、自律ストレージ装置２1は、ブロック結合手段２２ｄによって、ステップＳ１９で誤り訂正がなされたコンテンツブロックを結合し、コンテンツを生成する（ステップＳ２０）。
そして、自律ストレージ装置２1は、コンテンツ送信手段２２ｅによって、ステップＳ２０で生成されたコンテンツを、通信送受信手段１０を介してクライアントコンピュータ５に送信する（ステップＳ２１）。
【０１０６】
以上の動作によって、自律ストレージシステム１は、コンテンツ記憶手段３０に記憶されているブロック（すなわち、記憶装置３００に記憶されているサブブロック）のデータが消失した場合や、コンテンツ記憶手段３０（記憶装置３００）自体に故障が発生した場合であっても、誤り訂正によってデータを復旧させコンテンツを回復させることができる。
【０１０７】
また、自律ストレージシステム１は、誤り訂正が可能な範囲内であれば、データが消失した場合や、コンテンツ記憶手段３０（記憶装置３００）自体に故障が発生した場合であっても、動作を停止することなくサービスを提供することができる。
すなわち、本発明は、自律ストレージ装置内のいずれの記憶装置が故障してデータが消失した場合においても誤り訂正が可能であることから、障害が発生した自律ストレージ装置を交換する等の物理的な復旧を早急に行う必要はない。これらの物理的復旧は、例えば、夜間、休日等のサービスの提供を行わない日時に行えばよい。
【０１０８】
［自律ストレージシステムの保守動作］
次に、自律ストレージシステム１の保守動作について説明する。
（自律ストレージ装置切り離し処理及び障害回復処理）
まず、図９を参照（適宜図１及び図３参照）して、障害が発生した自律ストレージ装置を自律ストレージシステム１から切り離す障害回復動作について説明する。なお、本動作は、自律ストレージ装置を保守するために切り離す場合も同様である。図９は、自律ストレージ装置の保守又は障害時に、自律ストレージ装置をシステムから切り離す動作を説明するための説明図であって、（ａ）は切り離し時におけるブロック移動、（ｂ）は切り離し後（回復後）のブロックの記憶状態を模式的に示している。
ここでは、図９（ａ）に示すように、自律ストレージシステム１が１１台の自律ストレージ装置２1〜２11で構成され、コンテンツが３つのデータコンテンツ（例えば、Ｃ2-1，Ｃ2-2及びＣ2-3）と１つの誤り訂正符号ブロック（例えば、Ｃ2-P）に分割されて、論理的に隣接する自律ストレージ装置に連続性を持って記憶されているものとする。また、ここでは、自律ストレージ装置２5に障害が発生したとする。
【０１０９】
ここで、障害が発生した自律ストレージ装置２5に記憶されているブロックＣ2-1に着目すると、このブロックＣ2-1を、他の自律ストレージ装置上に移動（回復）させる場合、コンテンツを構成する他のブロックＣ2-2，Ｃ2-3及びＣ2-Pと論理的に隣接する自律ストレージ装置に移動させる必要がある。
例えば、ブロックＣ2-1を、自律ストレージ装置２6に移動させると、それに伴って、ブロックＣ2-2，Ｃ2-3及びＣ2-Pをさらに隣接する自律ストレージ装置２7〜２9にそれぞれ移動させなければならない。
【０１１０】
一方、ブロックＣ2-1を、自律ストレージ装置２4に移動させると、他のブロック（Ｃ2-2，Ｃ2-3及びＣ2-P）を移動させることなく、ブロックの連続性を保つことができる。
そこで、ここでは、移動させるブロックの数を判定し、その数が最も少なくなるように、ブロックＣ2-1を自律ストレージ装置２4に移動させることとする。
この規則によって、ブロックＣ4-Pを自律ストレージ装置２6に移動させ、ブロックＣ7-3を自律ストレージ装置２6、ブロックＣ7-Pを自律ストレージ装置２7にそれぞれ移動させ、ブロックＣ10-2を自律ストレージ装置２4、ブロックＣ10-1を自律ストレージ装置２3にそれぞれ移動させる。
【０１１１】
これによって、図９（ｂ）に示すように、自律ストレージ装置２5を切り離した状態で、コンテンツを構成するブロックが、論理的に隣接する自律ストレージ装置に連続性を持って記憶されることになる。
【０１１２】
この障害回復処理は、自律ストレージシステム１が、いずれかの自律ストレージ装置２をホストコンピュータとし、例えば、障害が発生した自律ストレージ装置２5に論理的に隣接する自律ストレージ装置２6をホストコンピュータとして行うことができる。
図９（ａ）において、ブロックＣ2-1を移動（回復）させる場合、自律ストレージ装置２6は、移動対象となるブロックを無効（アクセス禁止）とし、ブロック収集手段２５ｃによって、自律ストレージ装置２7及び２8に対してブロックＣ2-2、Ｃ2-3及びＣ2-Pの配信要求を示す「ブロック配信指示」を送信する。
そして、自律ストレージ装置２6は、ブロック受信手段２１ｆによって、ブロックＣ2-3及びＣ2-Pを受信し、ブロック誤り訂正手段２２ｃによって、受信したブロックＣ2-3及びＣ2-Pと自律ストレージ装置２6自身が記憶しているブロックＣ2-2とにより、誤り訂正を行ったブロックＣ2-1を生成する。ここで、自律ストレージ装置２6は、通常の動作時のようにブロックＣ2-1をブロック結合手段２２ｄに出力せずに、ブロック送信手段２２ｆに出力することで、ブロックＣ2-1を移動先の自律ストレージ装置２4に送信する。
【０１１３】
これによって、障害が発生した自律ストレージ装置２5に記憶されていたブロックＣ2-1が、自律ストレージ装置２4上に回復されたことになる。また、自律ストレージ装置２5に記憶されていた他のブロック（Ｃ4-P，Ｃ7-3，Ｃ10-2）も同様に移動し回復させることができる。
【０１１４】
なお、自律ストレージ装置２6に記憶されているブロックＣ7-Pについては、自律ストレージ装置２6が、自律ストレージ装置２7に送信することで、自律ストレージ装置２7にブロックＣ7-Pの複製を記憶する。また、自律ストレージ装置２4に記憶されているＣ10-1については、自律ストレージ装置２6が、自律ストレージ装置２4に対してブロックＣ10-1を自律ストレージ装置２3に配信する旨を示す「ブロック配信指示」を送信することで、自律ストレージ装置２4が、ブロックＣ10-1を自律ストレージ装置２3に送信し、その複製を自律ストレージ装置２3に記憶する。
【０１１５】
そして、ホストコンピュータである自律ストレージ装置２6は、ブロックの回復及び複製が完了した段階で、ブロックを有効（アクセス可能）とする旨を各ブロックを記憶している自律ストレージ装置に通知し、複製元のブロックを削除する旨を複製元のブロックを記憶している自律ストレージ装置に通知する。
以上の動作によって、自律ストレージシステム１は、サービスを停止させることなく、障害回復を行うことが可能になる。
【０１１６】
（自律ストレージ装置追加処理）
次に、図１０を参照（適宜図１及び図３参照）して、自律ストレージシステム１に新規に自律ストレージ装置を追加する自律ストレージ装置追加処理動作について説明する。図１０は、自律ストレージ装置追加処理動作を説明するための説明図であって、（ａ）は自律ストレージ装置追加時におけるブロック移動、（ｂ）は自律ストレージ装置追加後のブロック記憶状態を模式的に示している。なお、図１０（ａ）は、図９（ｂ）の状態から、新規に自律ストレージ装置２2Bを追加する例を示している。
【０１１７】
ここで、ブロックＣ4-1，Ｃ4-2，Ｃ4-3及びＣ4-Pからなるコンテンツに着目すると、自律ストレージ装置２2Bを追加することで、ブロックＣ4-1及びＣ4-2の間でブロックの連続性が断たれることになる。そこで、各ブロックが連続性を持つようにブロックを移動させる必要がある。
例えば、ブロックＣ4-2を自律ストレージ装置２2Bに移動させると、それに伴って、ブロックＣ4-3及びＣ4-Pをさらに隣接する自律ストレージ装置２3及び２4にそれぞれ移動させなければならない。
【０１１８】
一方、ブロックＣ4-1を、自律ストレージ装置２2Bに移動させると、他のブロック（Ｃ4-2，Ｃ4-3及びＣ4-P）を移動させることなく、ブロックの連続性を保つことができる。
そこで、ここでは、移動させるブロックの数を判定し、その数が最も少なくなるように、ブロックＣ4-1を自律ストレージ装置２2Bに移動させることとする。なお、移動させるブロックの数が等しい場合は、例えば、コンテンツの先頭ブロックを移動させないように、後方のブロックを移動させることとする。
この規則によって、ブロックＣ1-3を自律ストレージ装置２2B、ブロックＣ1-Pを自律ストレージ装置２3にそれぞれ移動させ、ブロックＣ9-Pを自律ストレージ装置２2Bに移動させる。
これによって、図１０（ｂ）に示すように、自律ストレージ装置２2Bを追加した状態で、コンテンツを構成するブロックが、論理的に隣接する自律ストレージ装置に連続性を持って記憶されることになる。
【０１１９】
この自律ストレージ装置追加処理は、自律ストレージシステム１が、いずれかの自律ストレージ装置２をホストコンピュータとし、例えば、追加する自律ストレージ装置２2Bをホストコンピュータとして行うことができる。
ここで、自律ストレージ装置２2Bは、論理的に隣接する左右それぞれ２つの自律ストレージ装置２1，２2，２3及び２4から、制御情報受信手段２３を介して、それぞれが記憶しているブロックの情報を取得する。そして、自律ストレージ装置２2Bは、自律ストレージ装置２2B自身に移動（追加）させるブロックの数が最も少なくなるように、コンテンツ管理手段２５によって、ブロックの移動手順を決定する。
図１０（ａ）において、ブロックＣ4-1を移動させる場合、自律ストレージ装置２2Bは、移動対象となるブロックを無効（アクセス禁止）とし、ブロック収集手段２５ｃによって、自律ストレージ装置２2に対してブロックＣ4-1の配信要求を示す「ブロック配信指示」を送信する。
【０１２０】
そして、自律ストレージ装置２2Bは、ブロック受信手段２１ｆによって、ブロックＣ4-1を受信し、ブロック分割手段２１ｄに出力することで、サブブロックに分割されてコンテンツ記憶手段３０にブロックＣ4-1の複製が記憶されることになる。また、自律ストレージ装置２3に記憶されているブロックＣ1-3及びＣ9-Pについても同様に自律ストレージ装置２3から取得し、自律ストレージ装置２2B内にその複製を記憶する。なお、自律ストレージ装置２4に記憶されているブロックＣ1-Pについては、自律ストレージ装置２2Bが、自律ストレージ装置２4に対してブロックＣ1-Pを自律ストレージ装置２3に配信する旨を示す「ブロック配信指示」を送信することとする。これによって、ブロックＣ1-Pの複製が、自律ストレージ装置２3に記憶されることになる。
【０１２１】
そして、ホストコンピュータである自律ストレージ装置２2Bは、すべてのブロックの複製を記憶した後、複製されたブロックを有効（アクセス可能）とする旨を各ブロックを記憶している自律ストレージ装置に通知し、複製元のブロックを削除する旨を複製元のブロックを記憶している自律ストレージ装置に通知する。
これによって、追加された自律ストレージ装置２2Bによって連続性が断たれたコンテンツのブロックが、最小限の移動によってその連続性が回復することになる。
【０１２２】
また、自律ストレージシステム１では、ある自律ストレージ装置の負荷や、コンテンツの容量が増大した場合、各自律ストレージ装置間で、協働し負荷や容量の分散を行うことが望ましい。この場合も、各自律ストレージ装置は、図９及び図１０で説明したように、ブロックの連続性を保つようにブロックの移動（複製、削除）を行うこととする。
【図面の簡単な説明】
【０１２３】
【図１】本発明に係る自律ストレージシステムの構成を示す概略ブロック図である。
【図２】自律ストレージ装置のコンテンツ記憶手段の構成と、ブロックの記憶状態とを模式的に示した図である。
【図３】本発明に係る自律ストレージ装置の構成を示すブロック図である。
【図４】コンテンツ記憶手段及び記憶装置におけるコンテンツの記憶状態を模式的に示した図であって、（ａ）は誤り訂正符号を排他的論理和演算により生成した場合、（ｂ）は誤り訂正符号をリードソロモン符号で生成した場合を示している。
【図５】本発明に係る自律ストレージ装置の他の構成を示すブロック図である。
【図６】本発明に係るコンテンツ記憶装置の構成を示すブロック図である。
【図７】自律ストレージシステムにおけるコンテンツの書き込み動作を示すフローチャートである。
【図８】自律ストレージシステムにおけるコンテンツの読み出し動作を示すフローチャートである。
【図９】自律ストレージ装置の保守又は障害時に、自律ストレージ装置をシステムから切り離す動作を説明するための説明図であって、（ａ）は切り離し時におけるブロック移動、（ｂ）は切り離し後（回復後）のブロックの記憶状態を模式的に示している。
【図１０】自律ストレージ装置追加処理動作を説明するための説明図であって、（ａ）は自律ストレージ装置追加時におけるブロック移動、（ｂ）は自律ストレージ装置追加後のブロック記憶状態を模式的に示している。
【図１１】従来の自律ストレージシステムにおけるコンテンツの記憶方法を模式的に示す図である。
【符号の説明】
【０１２４】
１        自律ストレージシステム
２、２Ｂ  自律ストレージ装置
２Ｃ      コンテンツ記憶装置
１０      通信送受信手段
２０      システム管理手段
２１      コンテンツ格納手段
２１ａ    コンテンツ受信手段
２１ｂ    コンテンツ分割手段
２１ｃ    誤り訂正符号ブロック生成手段
２１ｄ    ブロック分割手段
２１ｅ    誤り訂正符号サブブロック生成手段
２２      コンテンツ配信手段
２２ａ    サブブロック誤り訂正手段
２２ｂ    サブブロック結合手段
２２ｃ    ブロック誤り訂正手段
２２ｄ    ブロック結合手段
２２ｅ    コンテンツ送信手段
２２ｆ    ブロック送信手段
２３      制御情報受信手段
２４      制御情報送信手段
２５      コンテンツ管理手段
２５ａ    役割設定手段
２５ｂ    記憶先設定手段
２５ｃ    ブロック収集手段
２６      コンテンツ操作制御手段
２７      読み出し手段
２８      書き込み手段
３０      コンテンツ記憶手段
３００    記憶装置
【図１】
2006330779.tif 000003
【図２】
2006330779.tif 000004
【図３】
2006330779.tif 000005
【図４】
2006330779.tif 000006
【図５】
2006330779.tif 000007
【図６】
2006330779.tif 000008
【図７】
2006330779.tif 000009
【図８】
2006330779.tif 000010
【図９】
2006330779.tif 000011
【図１０】
2006330779.tif 000012
【図１１】
2006330779.tif 000013