(57)【特許請求の範囲】
【請求項１】
複数の記憶手段を備える情報記憶装置であって、
前記記憶手段の構成が更新されたことを検出する検出手段と、
前記複数の記憶手段への情報の書き込み要求があったときに、前記検出手段により前記記憶手段の構成が更新されたことが検出されている場合、書き込むべき情報を、更新された記憶手段の構成に対応してストライピングし、前記複数の記憶手段に記憶し、前記複数の記憶手段に記憶された情報を読み出す要求があったときに、前記検出手段により前記記憶手段の構成が更新されたことが検出されている場合、前記複数の記憶手段から読み出し要求があった情報を読み出すとともに、読み出した情報を、更新された記憶手段の構成に対応してストライピングし、前記複数の記憶手段に記憶する記憶制御手段とを有する情報記憶装置。
【請求項２】
前記複数の記憶手段の変更は、前記複数の記憶手段に新規に記憶手段が追加されることである請求項１記載の情報記憶装置。
【請求項３】
前記複数の記憶手段の変更は、前記複数の記憶手段から記憶手段が削除されることである請求項１又は２記載の情報記憶装置。
【請求項４】
前記記憶制御手段は、分割方法を示す分割情報を管理する分割情報管理手段を有することを特徴とする請求項１乃至３のいずれか一項記載の情報記憶装置。
【請求項５】
前記分割情報は、前記複数の記憶手段に書き込む情報の分割個数と、該情報が記憶される前記記憶手段におけるアドレスと、該情報の情報量とを含むことを特徴とする請求項４記載の情報記憶装置。
【請求項６】
前記分割情報管理手段は、情報の書き込み要求、あるは、情報の読み出し要求に応じた情報を前記複数の記憶手段に記憶するときに前記分割情報を設定することを特徴とする請求項４又は５記載の情報記憶装置。
【請求項７】
前記情報にエラー訂正情報を付与するとともに、該エラー訂正情報に基づいて前記情報を訂正するエラー訂正手段を有することを特徴とする請求項１乃至６のいずれか一項記載の情報記憶装置。
【請求項８】
前記記憶制御手段は、前記記憶手段に記憶する情報の全体の処理単位はそのままで、分割する単位を変更することにより、新規の記憶手段の構成に対応するストライピングを行う請求項１乃至７のいずれか一項記載の情報記憶装置。
【請求項９】
前記記憶制御手段は、複数の記憶手段を１つの記憶手段として処理することを特徴とする請求項１乃至６のいずれか一項記載の情報記憶装置。
【請求項１０】
コンピュータに、
複数の記憶手段を備える情報記憶装置の前記記憶手段の構成が更新されたことを検出する検出手順と、
前記複数の記憶手段への情報の書き込み要求があったときに、前記検出手順により前記記憶手段の構成が更新されたことが検出されている場合、書き込むべき情報を、更新された記憶手段の構成に対応してストライピングし、前記複数の記憶手段に記憶し、前記複数の記憶手段に記憶された情報を読み出す要求があったときに、前記検出手順により前記記憶手段の構成が更新されたことが検出されている場合、前記複数の記憶手段から読み出し要求があった情報を読み出すとともに、読み出した情報を、更新された記憶手段の構成に対応してストライピングし、前記複数の記憶手段に記憶する記憶制御手順とを実行させるプログラムが記憶された記録媒体。
【請求項１１】
前記複数の記憶手段の変更は、前記複数の記憶手段に新規に記憶手段が追加されることである請求項１０記載のプログラムが記憶された記録媒体。
【請求項１２】
前記複数の記憶手段の変更は、前記複数の記憶手段から記憶手段が削除されることである請求項１０又は１１記載のプログラムが記録された記録媒体。
【請求項１３】
前記分割制御手順は、分割方法を示す分割情報を管理する分割情報管理手順を有することを特徴とする請求項１０乃至１２のいずれか一項記載のプログラムが記録された記録媒体。
【請求項１４】
前記分割情報管理手順は、前記複数の記憶手段に書き込む情報の分割個数と、該情報が記憶される前記記憶装置におけるアドレスと、該情報の情報量とを管理することを特徴とする請求項１３記載のプログラムが記録された記録媒体。
【請求項１５】
前記情報を前記記憶手段に記憶するときに前記分割情報を記憶する分割情報記憶手順を有することを特徴とする請求項１３又は１４記載のプログラムが記録された記録媒体。
【請求項１６】
前記情報にエラー訂正情報を付与するとともに、該エラー訂正情報に基づいて前記情報を訂正するエラー訂正手順を有することを特徴とする請求項１０乃至１５のいずれか一項記載のプログラムが記録された記録媒体。
【請求項１７】
前記分割制御手順は、前記既存の情報の全体の処理単位はそのままで、分割する単位を変更することにより新規の記憶手段の構成に対する情報を得ることを特徴とする請求項１０乃至１６のいずれか一項記載のプログラムが記録された記録媒体。
【請求項１８】
複数の記憶手段を１つの記憶手段として処理することを特徴とする請求項１０乃至１７のいずれか一項記載のプログラムが記録された記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は情報記憶装置及びプログラムが記憶された記録媒体に係り、特に、複数の記憶手段に情報を入出力する情報記憶装置及びプログラムが記憶された記録媒体に関する。
【０００２】
【従来の技術】
近年、パーソナルコンピュータなどの普及とともにインターネットの急速な発展で音声や画像データを高速に転送したいとの要求が増えている。しかし、大規模なデータを円滑に流すだけのネットワーク、ストレージ技術、それにリアルタイムに送信するネットワークプロトコルなどの技術はまだ十分でなく、それらの技術の早急な開発が急務となっている。
【０００３】
高速な転送速度を有するストレージから映像などを再生する、例えば、ＶＯＤ（Video On Demand ）やビデオのノンリニア編集などでは、ＲＡＩＤ（Redundant Array of  Inexpensive Disks ）と呼ばれる技術が既に開発されている。なお、ＲＡＩＤ技術は、１９８７年にDavid A. Patterson, Garth Gibson, Randy H. Katz らによって米国のカリフォルニア大学バークレー校で出版された「A Case for Redundant Arrays  of  Inexpensive Disks」という論文で最初に提案されものであり、複数個のハードディスクドライブを用いてアレイを構成し、データを分割して複数個のハードディスクドライブに並列に同時に格納することにより処理速度を高速化するものである。ＲＡＩＤ技術によりデータ転送速度が速く、信頼性の高い外部記憶装置を構成できる。
【０００４】
ここで、ＲＡＩＤ技術について詳細に説明する。
図１にＲＡＩＤのシステム構成図を示す。
ＲＡＩＤシステム１は、ホストコンピュータ２に並列に接続された複数の外部記憶装置３−１〜３−ｎを接続した構成とされている。
ＲＡＩＤでデータを記憶する場合には、同一の内容を複数の外部記憶装置へ書き込む方法や、データを複数のデータブロックへ分割（ストライピング）し、データブロック毎に異なる外部記憶装置へ記憶する方法を用いる。また、データの信頼性を向上するために分割した複数のデータブロックからエラー訂正符号を生成し、外部記憶装置に記憶する。エラー訂正符号により一部のデータブロックが失われても、残ったデータとエラー訂正符号から正しいデータを復元できる。
【０００５】
なお、ＲＡＩＤにはデータブロックの分割方法やエラー訂正符号の管理方法の違いからＲＡＩＤ０〜ＲＡＩＤ５の６種類のＲＡＩＤが定義されている。
まず、ＲＡＩＤ０について説明する。
ＲＡＩＤ０は、データを複数のデータブロックにストライピングし、データブロック毎に異なる外部記憶装置へ記憶する。但し、ＲＡＩＤ０では、エラー訂正符号は作成しないので、フォールトレラント性はない。
【０００６】
ＲＡＩＤ１は、２台の外部記憶装置から構成し、一方の外部記憶装置にデータを記憶し、全く同一の内容をもう一つの外部記憶装置に記憶する。このため、一方の外部記憶装置が故障し、データの入出力が不可能になっても他方の外部記憶装置を用いてデータの入出力が可能となる。
ＲＡＩＤ２は、データをビット単位でストライピングし、エラー訂正符号としてハミング符号を付加し、付加したエラー訂正符号を複数の外部記憶装置に分散して記憶する。
【０００７】
ＲＡＩＤ３は、データをビットもしくはバイト単位でストラピングし、エラー訂正符号としてパリティを用い、パリティは専用に割り当てられた外部記憶装置に記憶される。
ＲＡＩＤ４は、データを複数のバイト単位でストライピングし、エラー訂正符号にパリティを用い、パリティはパリティ専用に割り当てられた外部記憶装置に記憶する。
【０００８】
ＲＡＩＤ５は、データを複数のバイト単位でストライピングし、エラー訂正符号にパリティを用い、パリティは複数の外部記憶装置に分散して記憶する。
上記ＲＡＩＤ０〜ＲＡＩＤ５のうちデータ転送速度や各種処理に必要なオーバーヘッドを考慮し、通常はＲＡＩＤ０，ＲＡＩＤ１，ＲＡＩＤ５の３つが用いられている。
【０００９】
ここで、通常よく用いられるＲＡＩＤ５について詳細に説明する。
図２はＲＡＩＤ５の処理を説明するための図を示す。図２（Ａ）は入力データ列、図２（Ｂ）は外部記憶装置３−１〜３−４に分割されたデータブロックを示す。
ＲＡＩＤ５は、数バイト単位でストライピングされたデータとそのエラー訂正符号を複数の外部記憶装置に分散して記憶する方法である。例えば、図２（Ａ）に示すような入力データ列Ａ１〜Ａ２８が入力されると、データを予め決められた単位毎、例えば、４つのデータ毎に１つのデータブロックを形成し、複数のデータブロックＢＬ１〜ＢＬ７にストライピングし、複数の外部記憶装置に記憶する。このとき、同時に、ストライピングされたデータブロックＢＬ１〜ＢＬ７の排他的論理和を計算してパリティＰ１〜Ｐ３をデータブロックとは異なる外部記憶装置に記憶する。なお、このとき、パリティＰ１〜Ｐ３は、特定の外部記憶装置へ入出力の要求が集中しないように、複数の外部記憶装置３−１〜３−４に均等に分散して記憶する。一方、データ列Ａ１〜Ａ２８を読み出す場合には、外部記憶装置３−１〜３−４に分散して記憶されているデータブロックＢＬ１〜ＢＬ７及びパリティＰ１〜Ｐ３を並列に読み出し、ストライピングする前のデータを復元する。並列に処理することで、外部記憶装置３−１〜３−４とインタフェースを効率よく利用し、データ転送速度を速くできる。
【００１０】
ＲＡＩＤを実装する際には、ハードウェアによる方法か、もしくはソフトウェアを選択できる。ハードウェアを用いる場合は、ＲＡＩＤコントローラなどの専用回路でパリティの計算やデータのストライピング、さらにデータブロックから元のデータを復元する処理を行う。高速な処理が期待できる反面、新たなハードウェアを導入するための複雑な作業が必要になり、価格も高い。ソフトウェアの場合は、新たなハードウェアを導入する必要もなく、導入作業も比較的簡単な上、安価である。しかしながら、ソフトウェアを用いる方法はハードウェアを用いる方法に比べて性能が低下する。
【００１１】
また、ＲＡＩＤは、データ転送速度の高速化や信頼性の向上という利点がある一方で、一旦運用を始めると記憶容量やＲＡＩＤの方法を容易に変更できないという問題点があった。例えば、記憶容量を増やすためには、フォーマッティングやデータの退避（バックアップ）さらにデータ復元（リストア）を行う必要があり、この間サービスの停止もしくはデータ転送速度の低下を招く。
【００１２】
図３は従来のＲＡＩＤの構成を変更する際の処理フローチャートを示す。
ＲＡＩＤシステムの構成を変更する際には、まず、外部記憶装置に記憶されている情報を全て読み出し、他の記憶装置にバックアップする（ステップＳ１−１）。ステップＳ１−１でＲＡＩＤシステムに記憶されたデータを他の記憶装置にバックアップした後、システムを停止する（ステップＳ１−２）。
【００１３】
ステップＳ１−２でシステム停止後、外部記憶装置の追加、削除などシステムの変更が行われる（ステップＳ１−３）。
ステップＳ１−３で外部記憶装置の追加、削除などシステムの変更が行われると、外部記憶装置の台数など変更されたシステムの構成が認識される（ステップＳ１−４）。
【００１４】
ステップＳ１−４で外部記憶装置の台数など変更されたシステムの構成が認識されると、新たに変更されたシステムに最適な方式で、フォーマッティングが行われる（ステップＳ１−５）。
ステップＳ１−５で、フォーマッティングが行われると、次に、他の記憶装置にバックアップされたデータに対して新たに設定されたフォーマッティングの形式に応じてストライピング、パリティ計算を行い、バックアップデータをＲＡＩＤシステムに復帰させる（ステップＳ１−６）。
【００１５】
ステップＳ１−６でバックアップデータがＲＡＩＤシステムに復帰された後、システムを起動する（ステップＳ１−７）。
以上のようにして、従来はＲＡＩＤシステムの変更が行われていた。よって、システムの停止、データのバックアップ、フォマッティングなどを行わなければならず、システムの変更が容易ではない。
【００１６】
そこで、本出願人は、上記問題点を解決し、システムの停止させずにデータ転送速度の低下を招くことなく、記憶容量を増やす方法を提案している。
本出願人が既に提案した方法では、ストライピングしたデータブロックの単位や数及び記憶したアドレス等の情報、すなわち、ストライピング情報をデータブロックと一緒に記憶し、同一のＲＡＩＤ装置でストライピング方法の異なるデータを管理できるようにしている。
【００１７】
具体的には次の手順で行う。予めホストコンピュータと外部記憶装置とを接続する際に、電源を切らずに装置の接続が検出できるインタフェースにより接続しておく。
書き込み要求があった場合には、データをストライピングし、データブロックとストライピング情報を外部記憶装置へ記憶する。ここで、容量を増やすために記憶装置を追加した場合、書き込むデータを新しい構成に応じてストライピング情報と共に記憶する。データを読み出す際には、まずストライピング情報を取り出し、取得した情報に従ってデータブロックを読み出し、データを復元する。
【００１８】
従って、外部記憶装置の構成に応じたストライピング方法を用いることができ、従来必要であったフォーマッティングやバックアップなどの処理を行うことなくＲＡＩＤシステムを構成できる。
フォーマッティングやバックアップなどの処理を行うことなく、システムの変更が可能なシステムについて説明する。
【００１９】
図４は停止することなく変更可能なシステムの変更前の状態を示す図、図５はシステム変更後の状態を示す図である。図４（Ａ）は変更前の入力データ列、図４（Ｂ）は変更前の外部記憶装置３−１〜３−３のデータ記憶状態、図５（Ａ）は変更後の入力データ列、図５（Ｂ）は変更後の外部記憶装置３−１〜３−４のデータ記憶状態を示す。
【００２０】
３つの外部記憶装置３−１〜３−３が接続されたシステムにおいて、図４（Ａ）に示すようにデータ列Ａ１〜Ａ８，Ｂ１〜Ｂ８，Ｃ１〜Ｃ８が入力されると、データＡ１〜Ａ８は、図４（Ｂ）に示すようにデータＡ１〜Ａ４から構成されるデータブロックＢＬ１及びデータＡ５〜Ａ８から構成されるデータブロックＢＬ２にストライピングされて、データＡ１〜Ａ８の誤り訂正を行うためのパリティＰ１、データＡ１〜Ａ８のストライピングの方法を示すストライピング情報Ｓ１とともに外部記憶装置３−１〜３−３に分散されて記憶される。このとき、データブロックＢＬ１はストライピング情報Ｓ１とともに外部記憶装置３−１、データブロックＢＬ２は外部記憶装置３−２、パリティＰ１は外部記憶装置３−３に記憶される。
【００２１】
次に、データＢ１〜Ｂ４から構成されるデータブロックＢＬ３、データＢ５〜Ｂ８から構成されるデータブロックＢＬ４、データＢ１〜Ｂ８の誤り訂正を行うためのパリティＰ２、データＢ１〜Ｂ８のストライピングの方法を示すストライピング情報Ｓ２が共に外部記憶装置３−１〜３−３に分散されて記憶されるこのとき、データブロックＢＬ３はストライピング情報Ｓ２とともに外部記憶装置３−１、データブロックＢＬ４は外部記憶装置３−３、パリティＰ２は外部記憶装置３−２に記憶される。
。
【００２２】
また、データＣ１〜Ｃ４から構成されるデータブロックＢＬ５、データＣ５〜Ｃ８から構成されるデータブロックＢＬ６、データＣ１〜Ｃ８の誤り訂正を行うためのパリティＰ３、データＣ１〜Ｃ８のストライピングの方法を示すストライピング情報Ｓ３が共に外部記憶装置３−１〜３−３に分散されて記憶されるこのとき、データブロックＢＬ５はストライピング情報Ｓ３とともに外部記憶装置３−２、データブロックＢＬ６は外部記憶装置３−３、パリティＰ３は外部記憶装置３−１に記憶される。
【００２３】
ここで、システムに外部記憶装置３−１〜３−３に加えて外部記憶装置３−４が付加されると、これを検出して以降入力されるデータには４つの外部記憶装置３−１〜３−４によりＲＡＩＤシステムが適用される。
図５（Ａ）に示すようにデータＤ１〜Ｄ８，Ｅ１〜Ｅ８，Ｆ１〜Ｆ８が供給されると、データＤ１〜Ｄ８は、図５（Ｂ）に示すようにデータＤ１〜Ｄ４から構成されるデータブロックＢＬ７及びデータＤ５〜Ｄ８から構成されるデータブロックＢＬ８にストライピングされる。また、データＥ１〜Ｅ８は、データＥ１〜Ｅ４から構成されるデータブロックＢＬ９及びデータＥ５〜Ｅ８から構成されるデータブロックＢＬ10にストライピングされる。さらに、データＦ１〜Ｆ８は、データＦ１〜Ｆ４から構成されるデータブロックＢＬ11及びデータＦ５〜Ｆ８から構成されるデータブロックＢＬ12にストライピングされる。
【００２４】
データブロックＢＬ７〜ＢＬ９は、データＤ１〜Ｄ８，Ｅ１〜Ｅ４の誤り訂正を行うためのパリティＰ４、ブロックＢＬ７〜ＢＬ９のストライピングの方法を示すストライピング情報Ｓ４とともに外部記憶装置３−１〜３−４に分散されて記憶される。このとき、データブロックＢＬ７はストライピング情報Ｓ４とともに外部記憶装置３−１、データブロックＢＬ８は外部記憶装置３−２、データブロックＢＬ９は外部記憶装置３−３、パリティＰ４は外部記憶装置３−４にストライピングされ、記憶される。
【００２５】
また、データブロックＢＬ10〜ＢＬ12は、データＥ５〜Ｅ８，Ｆ１〜Ｆ８の誤り訂正を行うためのパリティＰ５、データブロックＢＬ10〜ＢＬ12のストライピングの方法を示すストライピング情報Ｓ５とともに外部記憶装置３−１〜３−４に分散されて記憶される。このとき、データブロックＢＬ10はストライピング情報Ｓ５とともに外部記憶装置３−１、データブロックＢＬ11は外部記憶装置３−２、データブロックＢＬ12は外部記憶装置３−４、パリティＰ５は外部記憶装置３−３にストライピングされ、記憶される。
【００２６】
【発明が解決しようとする課題】
しかるに、図４，図５に示す本出願人が提案した情報記憶装置では、最初のＲＡＩＤで記憶されたデータと、後から外部記憶装置が追加されたＲＡＩＤで記憶されたデータとでデータ量に偏りが生じる。
図６はＲＡＩＤの構成を変更したときの課題を説明するための図を示す。
【００２７】
例えば、データブロックＤＢ11，ＤＢ12、ＤＢ21，ＤＢ22、ＤＢ31，ＤＢ32、ＤＢ41，ＤＢ42、ＤＢ51，ＤＢ52、ＤＢ61，ＤＢ62、ＤＢ71，ＤＢ72、ＤＢ81，ＤＢ82、がパリティＰ１〜Ｐ８とともに３つの外部記憶装置３−１〜３−３にストライピングされ、記憶されている。
ここで、システムが４つの外部記憶装置３−１〜３−４が接続された構成とされた後、データブロックＤＢ91，ＤＢ92，ＤＢ93、ＤＢ01，ＤＢ02，ＤＢ03が４つの外部記憶装置３−１〜３−４に記憶されると、図６に示すようにデータブロックＤＢ91，ＤＢ01は外部記憶装置３−１、データブロックＤＢ92，ＤＢ02は外部記憶装置３−２、データブロックＤＢ93，ＤＢ03は外部記憶装置３−３、データブロックＤＢ91，ＤＢ92，ＤＢ93のパリティＰ９及びデータブロックＤＢ01，ＤＢ02，ＤＢ03のパリティＰ０が外部記憶装置３−４に記憶される。
【００２８】
このように、追加した外部記憶装置には追加した後で書き込まれたデータのみが記憶され、最初からある外部記憶装置には最初から現時点までのデータが記憶される。この結果、外部記憶装置毎のデータ量に偏りが生じるので、データ入出力の要求を外部記憶装置へ均等に分散できない。よって、記憶装置やインタフェースの動作効率が低下する。従って、本来実現可能なデータ転送速度を実現できない可能性がある。
【００２９】
また、ＲＡＩＤにおいては、外部記憶装置を追加して記憶容量を追加して記憶容量を増やすだでなく、逆に、接続される外部記憶装置の台数を減らすことにより、管理上のコスト、例えば、消費電力、価格などを削減することも考えられる。しかしながら、本出願人が提案した情報記憶装置では、構成を変更する前に記憶したデータを変更した後のデータ構成で記憶し直す機能はない。このため、外部記憶装置を取り外すことはできない。
【００３０】
さらに、本出願人が提案した情報記憶装置では１台の外部記憶装置の容量を使い切ってしまうと、他の外部記憶装置の容量が余っていてもその容量をすべて利用できない。
図７はＲＡＩＤの構成を変更したときの他の課題を説明するための図を示す。図７に示す外部記憶装置３−１〜３−５は、外部記憶装置３−３、３−４、３−５の順に追加されたとする。
【００３１】
外部記憶装置３−１と外部記憶装置３−２とが接続された状態でデータブロックＤ11，Ｄ21，Ｄ31，Ｄ41が入力されると、外部記憶装置３−１にデータブロックＤ11，Ｄ21及びデータブロックＤ31，Ｄ41のパリティＰ３，Ｐ４が記憶され、外部記憶装置３−２にデータブロックＤ11，Ｄ21のパリティＰ１，Ｐ２及びデータブロックＤ31，Ｄ41が記憶される。
【００３２】
次に、外部記憶装置３−３が追加された後、データブロックＤ51，Ｄ52，Ｄ61，Ｄ62，Ｄ71，Ｄ72，Ｄ81，Ｄ82が入力されると、データブロックＤ51，Ｄ61，Ｄ71，Ｄ81は外部記憶装置３−１に記憶され、データブロックＤ52，Ｄ62及びデータブロックＤ71，Ｄ72、Ｄ81，Ｄ82のパリティＰ７，Ｐ８は外部記憶装置３−２に記憶され、データブロックＤ51，Ｄ52、Ｄ61，Ｄ62のパリティＰ５，Ｐ６及びデータブロックＤ72，Ｄ82が外部記憶装置３−３に記憶される。
【００３３】
次に、外部記憶装置３−４が追加された後、データブロックＤ91，Ｄ92，Ｄ93，Ｄ01，Ｄ02，Ｄ03が入力されると、データブロックＤ91，Ｄ01は外部記憶装置３−１に記憶され、データブロックＤ92，Ｄ02は外部記憶装置３−２に記憶され、データブロックＤ93，Ｄ03は外部記憶装置３−３に記憶され、データブロックＤ91，Ｄ92，Ｄ93、Ｄ01，Ｄ02，Ｄ03のパリティＰ９，Ｐ０は外部記憶装置３−５に記憶される。
【００３４】
ここで、外部記憶装置３−１，３−２が飽和したとすると、外部記憶装置３−５を追加してデータを書き込もうとしても外部記憶装置３−１，３−２が飽和しているので、それ以上データを書き込むことはできない。よって、図６に破線で示すように使用されない記憶領域が生じてしまう等の問題点があった。
本発明は上記の点に鑑みてなされたもので、外部記憶装置を追加又は削減しても接続された複数の外部記憶装置の間でデータ量に偏りなくデータを記憶できる情報記憶装置及びプログラムが記憶された記録媒体を提供することを目的とする。
【００３５】
【課題を解決するための手段】
本発明は、複数の記憶手段を備える情報記憶装置であって、前記記憶手段の構成が更新されたことを検出する検出手段と、前記複数の記憶手段への情報の書き込み要求があったときに、前記検出手段により前記記憶手段の構成が更新されたことが検出されている場合、書き込むべき情報を、更新された記憶手段の構成に対応してストライピングし、前記複数の記憶手段に記憶し、前記複数の記憶手段に記憶された情報を読み出す要求があったときに、前記検出手段により前記記憶手段の構成が更新されたことが検出されている場合、前記複数の記憶手段から読み出し要求があった情報を読み出すとともに、読み出した情報を、更新された記憶手段の構成に対応してストライピングし、前記複数の記憶手段に記憶する記憶制御手段とを有する。
【００３６】
複数の記憶手段の変更は、前記複数の記憶手段への新規に記憶手段が追加、又は、削除である。
【００３７】
また、情報を記憶手段に記憶するときに分割情報を記憶する。
さらに、情報にエラー訂正情報を付与するとともに、エラー訂正情報に基づいて前記情報を訂正する。
また、既存の情報の全体の処理単位はそのままで、分割する単位を変更することにより新規構成に対する情報を得る。
【００３８】
さらに、複数の記憶部を１つの記憶領域として処理する。
本発明によれば、記憶手段の構成が変更となったとき、既存の情報を新規の構成に応じた分割方法で分割し、複数の記憶手段に記憶することにより、自動的に新規の構成に適応した分割方法で情報を分割し、記憶することができる。
また、本発明によれば、複数の記憶手段に新規に記憶手段が追加されたときに、新たに入力された情報を新規の構成の記憶手段に応じた分割方法で記憶し、既に複数の記憶手段に記憶された情報を、複数の記憶手段から読み出されたときに、新規の構成に応じた分割方法で分割して、記憶することにより、記憶手段を追加したときにシステムを停止することなく、新規の構成に適応した分割方法で情報を分割し、複数の記憶手段に記憶できる。
【００３９】
さらに、本発明によれば、複数の記憶手段から記憶手段が削除されたときに、記憶装置が削除された後の構成に応じた分割方法に従って情報を記憶することにより、記憶手段が削除されたときに削除された後の構成に適応した分割方法に従って情報を分割して記憶できる。
また、本発明によれば、分割方法を示す分割情報を管理することにより、現在のシステムに適応した分割方法で情報を分割し、記憶できる。
【００４０】
また、本発明によれば、情報を記憶手段に記憶するときに分割情報を記憶することにより、情報を記憶したときの分割情報を管理できる。
さらに、本発明によれば、情報にエラー訂正情報を付与するとともに、エラー訂正情報に基づいて前記情報を訂正することにより、記憶手段を削除した後でも、削除した記憶手段の情報を復元することができる。
【００４１】
また、本発明によれば、既存の情報の全体の処理単位はそのままで、分割する単位を変更することにより新規構成に対する情報を得ることにより、既存の情報を最小限の変更に止め、情報を新規構成に適応した構成とすることができる。
さらに、本発明によれば、複数の記憶部を１つの記憶領域として処理することにより、記憶手段の容量が飽和した場合でも、記憶手段に記憶部を付加することにより容量を増加することができる。
【００４２】
【発明の実施の形態】
図８は本発明の第１実施例のブロック構成図を示す。
本実施例の情報記憶装置１００は、インタフェースを介してホストコンピュータ１０１に接続され、ホストコンピュータ１０１から供給された情報を外部記憶装置１０２−１〜１０２−ｎに分割して記憶する、いわゆる、ＲＡＩＤシステムを構成している。
【００４３】
情報の分割、復元は、コントロール部１０３で行われる。コントロール部１０３は、ホストコンピュータ１０１にソフトウェアとして設定されており、分割制御部１０４及びパリティ制御部１０５から構成される。また、分割制御部１０４は、分割情報管理部１０６、分割情報管理用テーブル１０７、分割処理部１０８、逆分割処理部１０９、分割処理用バッファメモリ１１０から構成される。
【００４４】
分割情報管理部１０６は、各外部記憶部１０２−１〜１０２−ｎに分散して記憶するデータブロックのアドレス、単位、数などからなるストライピング情報を格納した分割情報管理用テーブル１０７を管理する。
分割処理部１０８は、分割情報管理部１０６で管理されたストライピング情報に基づいてホストコンピュータ１０１から供給されたデータを各外部記憶部１０２−１〜１０２−ｎに分散、すなわち、ストライピングする。
【００４５】
逆分割処理部１０９は、分割情報管理部１０６で管理されたストライピング情報に基づいて外部記憶部１０２−１〜１０２−ｎから読み出されたデータブロックから元のデータを復元する。
分割処理用バッファメモリ１１０は、分割処理部１０８でストライピングされたデータを外部記憶装置１０２−１〜１０２−ｎ毎に保持するとともに、外部記憶装置１０２−１〜１０２−ｎから読み出されたデータを外部記憶装置１０２−１〜１０２−ｎ毎に保持し、逆分割処理部１０９に供給する。
【００４６】
パリティ制御部１０５は、パリティ分割情報管理部１１１、パリティ分割情報管理用テーブル１１２、パリティ処理部１１３、パリティ復元処理部１１４から構成される。パリティ分割情報管理部１１１は、パリティ分割情報管理用テーブル１１２に格納されたパリティ分割情報を管理する。
パリティ処理部１１３は、パリティ分割情報管理部１１１により管理されたパリティ分割情報に基づいて外部記憶装置１０２−１〜１０２−ｎに記憶するエラー訂正符号を計算する。
【００４７】
パリティ復元処理部１１４は、パリティ分割情報管理部１１１により管理されたパリティ分割情報に基づいて外部記憶装置１０２−１〜１０２−ｎから読み出されたエラー訂正符号に応じてデータのエラーを訂正し、元のデータを復元する。
ここで、分割情報及びパリティ分割情報のデータ構成図を示す。
【００４８】
図９は本発明の第１実施例の分割情報のデータ構成図を示す。図９（Ａ）は分割情報、図９（Ｂ）はパリティ分割情報を示す。
図９の分割情報は分割数、すなわち、接続される外部記憶装置がハードディスクドライブＨＤＤで、接続される数が３個の場合の分割情報について説明する。分割情報は、分割数、ＨＤＤを識別するためのＨＤＤ識別情報、データが記憶されている論理ブロックアドレス（Logical Block Address ；ＬＢＡ）、ＬＢＡの連続する数から構成される。図９（Ａ）では分割数が「３」でＨＤＤ識別情報ＨＤＤ１についてはＬＢＡが「ＬＢＡ１」、連続するＬＢＡの数「２」となる。
【００４９】
また、パリティ分割情報は、パリティを記憶しているドライブの識別情報、パリティを記憶しているＬＢＡ、連続するＬＢＡの数、パリティの計算単位から構成される。図９（Ｂ）では、パリティを記憶しているドライブの識別情報「ＨＤＤ４」、パリティを記憶しているＬＢＡ「ＬＢＡ  Ｐ」、連続するＬＢＡの数「２」、パリティの計算単位「１０２４Ｂｙｔｅ」である。
【００５０】
次に、本実施例のコントローラ部１０３の処理について説明する。
図１０は本発明の第１実施例のコントローラの処理フローチャートを示す。
まず、ホストコンピュータ１０１からデータ読み取り要求が供給されると（ステップＳ２−１）、分割情報管理部１０６が分割情報管理用テーブル１０７が参照して、現在のストライピング情報を取得する（ステップＳ２−２）。
【００５１】
分割情報管理部１０６によりストライピング情報が取得されると、分割処理部１０８により読出データブロックが決定される（ステップＳ２−３）。
ステップＳ２−３で、決定された読出データブロックにアクセスを開始する。外部記憶装置１０２−１〜１０２−ｎから決定された読出データブロックのデータを受信する（ステップＳ２−４）。
【００５２】
ステップＳ２−４で外部記憶装置１０２−１〜１０２−ｎからデータを受信すると、逆分割処理部１０９により受信したデータブロックから元のデータを復元する（ステップＳ２−５、ステップＳ２−６）。
また、このとき、分割情報の分割数と現在接続された外部記憶装置１０２−１〜１０２−ｎの数ｎから１を減算した値（ｎ−１）との一致、不一致を求める（ステップＳ２−７）。すなわち、データの分割数にパリティ分を加算した値が外部記憶装置の台数となるか否かを判定する。
【００５３】
ステップＳ２−７で、分割情報の分割数と（ｎ−１）とが一致する場合には、外部記憶装置の接続台数が設定されたストライピング情報と一致し、外部記憶装置の構成に変更はないと判断できるので、そのまま処理を終了する。
また、Ｓ２−７で分割情報の分割数と（ｎ−１）とが不一致の場合には、外部記憶装置の接続台数と設定されたストライピング情報とが不一致であり、外部記憶装置の構成が変更されたと判断できる。このため、次に、分割情報管理部１０６により接続された外部記憶装置の台数に応じた新しいストライピング情報を作成し、分割情報管理用テーブル１０７に設定する（ステップＳ２−８）。
【００５４】
次に、ステップＳ２−８で設定された新たなストライピング情報に基づいて読み出されたデータブロックを変更された外部記憶装置に対応して再ストライピングする（ステップＳ２−１０）。また、ステップＳ２−１０で再ストライピングされたパリティ処理部１１３により再ストライピングされたデータブロックに対応するパリティを計算し、外部記憶装置に記憶する（ステップＳ２−１０）。
【００５５】
次に、外部記憶装置１０２−１〜１０２−ｎの動作について説明する。
図１１は本発明の第１実施例の外部記憶装置の処理フローチャートを示す。
外部記憶装置１０２−１〜１０２−ｎでは、コントロール部１０３から要求を受信すると（ステップＳ３−１）、まず、受信した要求がデータブロック読出要求か否かを判定する（ステップＳ３−２）。
【００５６】
ステップＳ３−２で、読み出した要求がデータブロック読出要求のときには、コントロール部１０３から供給されたデータブロック読出要求に応じたデータブロックを読み出し（ステップＳ３−３）、コントロール部１０３に送信する（ステップＳ３−４）。
また、ステップＳ３−２で受信した要求がデータブロック読出要求でない場合には、受信した要求がデータブロック書込要求か否かを判定する（ステップＳ３−５）。
【００５７】
ステップＳ３−５で、受信した要求がデータブロック書込要求の場合には、データブロック書込要求時にコントロール部１０３から供給されたデータブロックを書き込む（ステップＳ３−６）。
次に、本実施例の具体的動作について説明する。
図１２は本発明の第１実施例のデータ読出前の外部記憶装置のデータ記憶状態を示す図である。
【００５８】
図１２では、最初、外部記憶装置１０２−１及び１０２−２が接続されており、接続された外部記憶装置１０２−１及び１０２−２にデータブロックＤ11，Ｄ21，Ｄ31，Ｄ41及びそのパリティＰ１，Ｐ２，Ｐ３，Ｐ４が記憶されており、次に、外部記憶装置１０２−３が追加され、３つの外部記憶装置１０２−１〜１０２−３に分散されるようにデータブロックＤ51，Ｄ52，Ｄ61，Ｄ62，Ｄ71，Ｄ72，Ｄ81，Ｄ82及びそのパリティＰ５，Ｐ６，Ｐ７，Ｐ８が書き込まれ、続けて、外部記憶装置１０２−４が追加され、４つの外部記憶装置１０２−１〜１０２−４に分散されるように新たに供給されたデータブロックＤ91，Ｄ92，Ｄ93，Ｄ01，Ｄ02，Ｄ03及びそのパリティＰ９，Ｐ０が書き込まれた状態を示す。
【００５９】
図１３は本発明の第１実施例の再ストライピング前の分割情報のデータ構成図を示す。図１３（Ａ）はデータブロックＤ11の分割情報及びパリティ分割情報、図１３（Ｂ）はデータブロックＤ51の分割情報及びパリティ分割情報を示す。
データブロックＤ11は、２つの外部記憶装置１０２−１，１０２−２に記憶されるため、一方の外部記憶装置をデータに、また、他方の外部記憶装置をパリティにストライピングする必要があるので、分割情報は図１３（Ａ）に示すように分割数は「１」でＨＤＤ識別番号「ＨＤＤ１」、例えば外部記憶装置１０２−１に設定された論理ブロックアドレス「ＬＢＡ−Ｄ11」に記憶されるように設定されている。また、このとき、データブロック数は「１」となる。また、パリティ分割情報は、図１３（Ｂ）に示すようにデータとな異なるＨＤＤ識別番号「ＨＤＤ２」の外部記憶装置、例えば、外部記憶装置１０２−２に設定された論理ブロックアドレス「ＬＢＡ−Ｄ11−Ｐ」にパリティＰ１が記憶されるように設定される。このとき、パリティ分割情報にはパリティのデータブロック数「１」及びデータ量「５１２Ｂｙｔｅ」も記憶される。
【００６０】
また、外部記憶装置１０２−３が追加されると、分割情報は、データ及びパリティを３つの外部記憶装置１０２−１〜１０２−３に分割するように設定される。分割情報は、図１３（Ｂ）に示すように分割数「２」とされ、ＨＤＤ識別番号「ＨＤＤ１」、例えば外部記憶装置１０２−１の論理ブロックアドレス「ＬＢＡ−Ｄ51」にブロックデータＤ51を格納し、ＨＤＤ識別番号「ＨＤＤ２」、例えば外部記憶装置１０２−２の論理ブロックアドレス「ＬＢＡ−Ｄ52」にブロックデータＤ52を格納するように設定されている。また、分割情報には、さらに、データブロック数「１」が設定される。
【００６１】
また、パリティ分割情報は、データとな異なるＨＤＤ識別番号「ＨＤＤ３」の外部記憶装置、例えば、外部記憶装置１０２−３に設定された論理ブロックアドレス「ＬＢＡ−Ｄ51−Ｄ52−Ｐ」にパリティＰ５が記憶されるように設定される。このとき、パリティ分割情報にはパリティのデータブロック数「１」及びデータ量「５１２Ｂｙｔｅ」も記憶される。
【００６２】
図１２に示す状態でデータブロックＤ11，Ｄ21，Ｄ31，Ｄ41，Ｄ51，Ｄ52，Ｄ61，Ｄ62，Ｄ71，Ｄ72，Ｄ81，Ｄ82が読み出されると、再ストライピングが行われる。
図１４は本発明の第１実施例のデータ読出後の外部記憶装置のデータ記憶状態を示す図である。
【００６３】
データブロックＤ11，Ｄ21，Ｄ31，Ｄ41，Ｄ51，Ｄ52，Ｄ61，Ｄ62，Ｄ71，Ｄ72，Ｄ81，Ｄ82が読み出されると、図１４に示すようにデータブロックＤ11，Ｄ31，Ｄ51が４つの外部記憶装置１０２−１〜１０２−４にそれらパリティＰ’１とともに分散して記憶され、データブロックＤ21，Ｄ41，Ｄ61が４つの外部記憶装置１０２−１〜１０２−４にそれらパリティＰ’２とともに分散して記憶され、データブロックＤ62，Ｄ81，Ｄ82が４つの外部記憶装置１０２−１〜１０２−４にそれらパリティＰ’３とともに分散して記憶され、４つの外部記憶装置１０２−１〜１０２−４にそれらパリティＰ’３とともに分散して記憶される。なお、データブロックＤ91，Ｄ92，Ｄ93及びデータブロックＤ01，Ｄ02，Ｄ03は書き込み時に既に４つの外部記憶装置１０２−１〜１０２−４にそれらパリティＰ９，Ｐ０とともに分散して記憶されているので、そのままの記憶状態で保持される。
【００６４】
このときの分割情報及びパリティ分割情報について説明する。
図１５は本発明の第１実施例の再ストライピング時の分割情報のデータ構成図を示す。
外部記憶装置１０２−４が追加され、外部記憶装置が４つになると、データの書き込み及び読み出し時に図１５に示すような分割情報に従って再ストライピングが行われる。４つの外部記憶装置１０２−１〜１０２−４にストライピングを行う際の分割情報は、図１５に示すように４つの外部記憶装置１０２−１〜１０２−４のうち１つの外部記憶装置にはパリティを格納する必要があるので、データブロックの分割数は「３」に設定される。４つの外部記憶装置１０２−１〜１０２−４のうち３つの外部記憶装置１０２−１，１０２−３，１０２−４に対応するＨＤＤ識別番号「ＨＤＤ１」，「ＨＤＤ３」，「ＨＤＤ４」の論理ブロックアドレス「ＬＢＡ−Ｄ11」，「ＬＢＡ−Ｄ31」，「ＬＢＡ−Ｄ51」に３つのブロックデータが記憶される。
【００６５】
また、パリティ分割情報は、データとな異なるＨＤＤ識別番号「ＨＤＤ２」にに対応する外部記憶装置１０２−２に設定された論理ブロックアドレス「ＬＢＡ−Ｄ11−Ｄ31−Ｄ51−Ｐ」にパリティＰ’１が記憶されるように設定される。このとき、パリティ分割情報にはパリティのデータブロック数「１」及びデータ量「５１２Ｂｙｔｅ」も記憶される。
【００６６】
以上により、ホストコンピュータ１０１からデータ読出要求がある度に、読み出されたデータが再ストライピングされ、新規構成の外部記憶装置に対応して書き換えられる。よって、外部記憶装置の構成が変更される度にシステムを停止させる必要がない。また、変更前に記憶されたデータも変更後に読み出されるときに変更後の構成に適した状態にストライピングされて記憶されるので、システム変更後も外部記憶装置の容量に無駄なく記憶できる。
【００６７】
なお、本実施例では、外部記憶装置を追加する場合について説明したが、外部記憶装置を削除した場合にも対応できる。
図１６は本発明の第２実施例のコントロール部の処理フローチャートを示す。なお、構成は図８と同様であるので、その説明は省略する。
ホストコンピュータ１０１からデータ読出要求があると（ステップＳ４−１）、分割情報管理部１０６からストライピング情報が読み出され（ステップＳ４−２）、外部記憶装置１０２−１〜１０２−ｎからの読み出しデータブロックが決定され、接続された外部記憶装置１０２−１〜１０２−ｎにアクセスを行う（ステップＳ４−３）。ステップＳ４−３でコントロール部１０３から外部記憶装置１０２−１〜１０２−ｎにアクセスを行うと、外部記憶装置１０２−１〜１０２−ｎは図１１に示す処理を実行し、要求されたデータブロックをコントロール部１０３に送信する。
【００６８】
コントロール部１０３は、外部記憶装置１０２−１〜１０２−ｎから要求したデータブロックを受信すると、分割情報に現在設定された分割数と現在接続された外部記憶装置１０２−１〜１０２−ｎの台数「ｎ」との大小関係を判定する（ステップＳ４−５）。なお、現在接続されている外部記憶装置１０２−１〜１０２−ｎの台数「ｎ」は、コントロール部１０３により検知、管理される。
【００６９】
ステップＳ４−５で、分割情報の分割数が現在接続されている外部記憶装置１０２−１〜１０２−ｎの台数「ｎ」より小さければ、外部記憶装置が取り外されたと判断できる。この場合、データブロックが記憶された外部記憶装置が取り外されている場合には、パリティ復元処理部１１４によりパリティと読出データブロックとから読出データを復元する。また、パリティが記憶されている外部記憶装置が取り外されている場合には、読出データブロックだけから読出データを復元する（ステップＳ４−６、Ｓ４−７）。
【００７０】
次に、分割情報管理部１０６により現在接続された外部記憶装置１０２−１〜１０２−ｎの台数「ｎ」に応じて分割情報を生成し、分割情報管理用テーブル１０７に設定する（ステップＳ４−８）。
次に、分割処理部１０８によりステップＳ４−８で設定した分割情報に応じて読出データブロックを再ストライピングする（ステップＳ４−９）。
【００７１】
さらに、ステップＳ４−９での再ストライピングの結果からパリティを計算し、ステップＳ４−９で再ストライピングされたデータブロックとともに、外部記憶装置１０２−１〜１０２−ｎに記憶する（ステップＳ４−１０）。
次に本実施例の具体的な動作を図面とともに説明する。
図１７は本発明の第２実施例の外部記憶装置を取り外す前のデータの記憶状態を示す図である。
【００７２】
ここでは、４台の外部記憶装置１０２−１〜１０２−４にデータブロックＤ11，Ｄ21，Ｄ31，Ｄ41，Ｄ51，Ｄ61、Ｄ52，Ｄ62，Ｄ71，Ｄ72，Ｄ81，Ｄ82、Ｄ91，Ｄ01，Ｄ92，Ｄ02，Ｄ93，Ｄ03及びそれらのパリティＰ１〜Ｐ４、Ｐ９、Ｐ０を均等に記憶している。
図１８は本発明の第２実施例の分割情報を外部記憶装置を取り外す前の分割情報及びパリティ分割情報のデータ構成図を示す。
【００７３】
データブロックＤ11，Ｄ21，Ｄ31，Ｄ41，Ｄ51，Ｄ61に対しては図１８に示すように分割数「３」でＨＤＤ識別番号「ＨＤＤ１」，「ＨＤＤ３」，「ＨＤＤ４」の外部記憶装置１０２−１，１０２−３，１０３−４に論理ブロックアドレス「ＬＢＡ−Ｄ11」，「ＬＢＡ−Ｄ31」，「ＬＢＡ−Ｄ51」に「２」データブロック「Ｄ11，Ｄ21」，「Ｄ31，Ｄ41」，「Ｄ51，Ｄ61」ずつ記憶する。
【００７４】
パリティ分割情報は、ＨＤＤ識別番号「ＨＤＤ２」の外部記憶装置１０２−２の論理ブロックアドレス「ＬＢＡ−Ｄ11−Ｄ31−Ｄ51−Ｐ」にパリティＰ１、Ｐ２が「２」データブロック分、１０２４Ｂｙｔｅ記憶されるように設定されている。
図１７に示す状態から外部記憶装置１０２−３が削除されると、外部記憶装置は３台となる。よって、次に３台の外部記憶装置１０２−１，１０２−２，１０２−４に対応したストライピングが行われる。
【００７５】
図１９は本発明の第２実施例の外部記憶装置が取り外された後のデータ構成図、図２０は本発明の第２実施例の外部記憶装置が取り外されたときの分割情報及びパリティ分割情報のデータ構成図を示す。
接続された外部記憶装置が３台になると、１台にパリティを割り当てるので、データブロックの分割数は「２」となる。
【００７６】
また、１台の外部記憶装置に割り当てられるデータブロック数は「３」となる。例えば、データブロックＤ'11 ，Ｄ'12 ，Ｄ'21 ，Ｄ'22 がデータブロックＤ'11 ，Ｄ'21 及びＤ'12 ，Ｄ'21 ，Ｄ'31 とに分割されてＨＤＤ識別番号「ＨＤＤ１」と「ＨＤＤ４」の外部記憶装置１０２−１，１０２−４に記憶される。このとき、データブロックＤ'11 ，Ｄ'12 ，Ｄ'21 ，Ｄ'22 のパリティＰ'1，Ｐ'2は、ＨＤＤ識別番号「ＨＤＤ２」の外部記憶装置１０２−２に割り当てられ、論理ブロックアドレス「ＬＢＡ−Ｄ'11 −Ｄ'12 −Ｐ」から３ブロック、１５３６Ｂｙｔｅに亘って記憶される。
【００７７】
以上のように外部記憶装置を１台取り外しても、パリティにより取り外された外部記憶装置のデータブロックを復元しつつ、接続された外部記憶装置に割り当てることにより、対応することができる。
なお、本実施例では外部記憶装置を１台取り外した後で、新しい構成にしたがってデータを記憶し直す場合について説明したが、予め取り外す外部記憶装置を指定して、現在記憶されているデータを指定された外部記憶装置を除く他の複数の外部記憶装置へ記憶し直し、全てのデータを記憶し直した後に、指定した外部記憶装置を実際に取り外すようにすることもできる。このようにすることにより、１度に複数の外部記憶装置を取り外すことができる。
【００７８】
また、本実施例では、外部記憶装置を単純に取り外す場合について説明したが、外部記憶装置の容量を増加しつつ合数を削減するようにすることもできる。
図２１は本発明の第３実施例の変更前の外部記憶装置のデータ記憶状態を示す図、図２２は本発明の第３実施例の変更時の外部記憶装置のデータ記憶状態を示す図、図２３は本発明の第３実施例の変更後の外部記憶装置のデータ記憶状態を示す図である。
【００７９】
ここでは、システムを３台の外部記憶装置１０２−１〜１０２−３から容量の大きい２台の外部記憶装置１０２−４，１０２−５に変更する場合について説明する。
図２１に示すようにデータブロックＤ11，Ｄ12、Ｄ21，Ｄ22、Ｄ31，Ｄ32及びそれらのパリティＰ１，Ｐ２，Ｐ３を均等に３台の外部記憶装置１０２−１〜１０２−３に分割して記憶した状態で、まず、図２２に示すように３台の外部記憶装置１０２−１〜１０２−３より容量の大きい２台の外部記憶装置１０２−４，１０２−５を接続する。
【００８０】
外部記憶装置１０２−４，１０２−５を接続することにより、データブロック及びパリティが５台の外部記憶装置１０２−１〜１０２−５に分散して記憶される。
次に、３台の外部記憶装置１０２−１〜１０２−３を順次取り外すことにより、図２３に示すようにブロックデータＤ"11 ，Ｄ"21 ，Ｄ"31 とそのパリティＰ"1，Ｐ"2，Ｐ"3を２台の外部記憶装置１０２−４，１０２−５に分散して記憶できる。
【００８１】
以上のように本実施例によれば、外部記憶装置の台数を削減しながら、記憶容量を増加させるなどの自由な変更が可能となる。
なお、上記実施例では、外部記憶装置を追加したときに、データブロックの枠組みを組み替え、さらに、新たに対応するパリティを作成したが、データブロックとパリティはそのままで外部記憶装置を追加したシステムに対応するようにしてもよい。
【００８２】
図２４は本発明の第４実施例のコントロール部の処理フローチャートを示す。なお、その構成は図８と同様であるので、その説明は省略する。
本実施例では、まず、現在Ｍ台の外部記憶装置１０２−１〜１０２−Ｍが接続されていおり、データブロック及びパリティが均等にストライピングされて記憶されているとする。そこに、ｍ台の外部記憶装置１０２−M+1 〜１０２−M+m を接続する（ステップＳ５−１）。
【００８３】
ここで、変数ｉ，ｊ，ｋにｉ＝０，ｊ＝１，ｋ＝１を代入する（ステップＳ５−２）。
次に従来から存在する外部記憶装置１０２−１〜１０２−Ｍに記憶されたデータブロックＤ( i * m +j) k を新規に接続された外部記憶装置１０２−M+1 〜１０２−M+m となるＭ* (j-1)+k 目の外部記憶装置へ移動する（ステップＳ５−３）。  次に、移動したデータブロック及びパリティに対応するストライプ情報を更新する（ステップＳ５−４）。
【００８４】
次に、変数ｋにｋ＋１を代入し、変数ｋを従来から存在する外部記憶装置１０２−１〜１０２−Ｍの台数「Ｍ」と比較する（ステップＳ５−５、Ｓ５−６）。ステップＳ５−６での比較結果、変数ｋが従来から存在する外部記憶装置１０２−１〜１０２−Ｍの台数「Ｍ」より大きくなれば、ステップＳ５−３に戻って、次のデータブロックを移動する。また、変数ｋが従来から存在する外部記憶装置１０２−１〜１０２−Ｍの台数「Ｍ」より小さければ、変数ｋ＝０とし、変数ｊ＝ｊ＋１とする（ステップＳ５−７）。
【００８５】
次に、ステップＳ５−７で設定した変数ｉ，ｋが〔｛( i * m +j) ＜＝ｍ｝、かつ、（ｊ＜＝ｍ）〕を満足するか否かを判定する（ステップＳ５−８）。ステップＳ５−８で、〔｛( i * m +j) ＜＝ｍ｝、かつ、（ｊ＜＝ｍ）〕を満足する場合は、ステップＳ５−３に戻って次にデータブロックを移動させる。
ステップＳ５−８で、〔｛( i * m +j) ＜＝ｎ｝、かつ、（ｊ＜＝ｍ）〕を満足しない場合は、変数ｊ＝１，変数ｉ＝ｉ＋１とする（ステップＳ５−９）。
【００８６】
ステップＳ５−９で変数ｊ＝１，変数ｉ＝ｉ＋１とした後、ステップＳ５−９で設定した変数ｉ，ｊが｛（ｉ* m+j ）＜＝ｎ｝を満足するか否かを判定する（ステップＳ５−１０）。
ステップＳ５−１０で、変数ｉ，ｊが｛（ｉ* m+j ）＜＝ｎ｝を満足する場合にはステップＳ５−３に戻って次のデータブロックの移動を行う。また、ステップＳ５−１０で、変数ｉ，ｊが｛（ｉ* m+j ）＜＝ｎ｝を満足しない場合には処理を終了する。
【００８７】
次に、本実施例の動作を説明する。
図２５は、本発明の第４実施例の動作説明図を示す。図２５（Ａ）は構成変更前の状態、図２５（Ｂ）は構成変更後の状態を示す。
上記図２４に示す処理によれば、データブロックＤij(j≠i)、パリティＤiiとすると、図２５（Ａ）に示すように変更前のデータブロック及びパリティＤ21〜Ｄ2M・・・Ｄ(m+2)M〜Ｄ(m+m)Mを図２５（Ｂ）に示す新規に追加した外部記憶装置に記憶する。
【００８８】
図２６は本発明の第４実施例の変更後の再ストライピング前のデータの記憶状態を示す図である。
図２６に示すように２台の外部記憶装置１０２−１，１０２−２に２台の外部記憶装置１０２−３，１０２−４を追加したとする。
図２６で新たに供給されたデータブロックＤ91，Ｄ92，Ｄ93、Ｄ01，Ｄ02，Ｄ03及びそのパリティＰ９，Ｐ０は、４台の外部記憶装置１０２−１〜１０２−４に均等にストライピングされる。
【００８９】
また、最初に接続された２台の外部記憶装置１０２−１，１０２−２に記憶されたデータブロックＤ31，Ｄ41、Ｄ71，Ｄ81及びそのパリティＰ３，Ｐ４、Ｐ７，Ｐ８は図２６に矢印でしめすように新規に追加された２台の外部記憶装置１０２−３，１０２−４に移動する。
図２７は本発明の第４実施例の変更後の再ストライピング前の分割情報のデータ構成図を示す。
【００９０】
再ストライピング前の分割情報は、例えば、データブロックＤ11が図２７（Ａ）に示すように分割数「１」、ＨＤＤ識別番号「ＨＤＤ１」の外部記憶装置１０２−１の論理ブロックアドレス「ＬＢＡ−Ｄ11」に１ブロック分格納されるように設定される。また、データブロックＤ11のパリティＰ１は、ＨＤＤ識別番号「ＨＤＤ２」の外部記憶装置１０２−２の論理ブロックアドレス「ＬＢＡ−Ｄ31−Ｐ」に１ブロック、５１２Ｂｙｔｅで格納される。
【００９１】
同様に、データブロックＤ31は、図２７（Ｂ）に示すように分割数「１」、ＨＤＤ識別番号「ＨＤＤ２」の外部記憶装置１０２−２の論理ブロックアドレス「ＬＢＡ−Ｄ31」に１ブロック分格納されるように設定される。また、データブロックＤ31のパリティＰ３は、ＨＤＤ識別番号「ＨＤＤ１」の外部記憶装置１０２−１の論理ブロックアドレス「ＬＢＡ−Ｄ31−Ｐ」に１ブロック、５１２Ｂｙｔｅで格納される。
【００９２】
図２８は本発明の第４実施例の再ストライピング後のデータの記憶状態を示す図である。
図２６に示す状態で、図２４に示す手順に従って再ストライピングを行うと、図２８に示すように、データブロックＤ31，Ｄ41，Ｄ71，Ｄ81及びそのパリティＰ３，Ｐ４，Ｐ７，Ｐ８が新規に追加された外部記憶装置１０２−１〜１０２−４に移動して記憶される。
【００９３】
図２９は本発明の第４実施例の再ストライピング時の分割情報のデータ構成図を示す。
再ストライピング時にはデータブロックＤ31，Ｄ41，Ｄ71，Ｄ81及びそのパリティＰ３，Ｐ４，Ｐ７，Ｐ８の分割情報の記憶アドレスが変更されるだけで対応できる。例えば、データブロックＤ31の場合は、ＨＤＤ識別番号が「ＨＤＤ１」から「ＨＤＤ３」に変更になるとともに、論理ブロックアドレスが「ＬＢＡ−Ｄ31」から「ＬＢＡ−Ｄ31−new 」に変更になる。また、そのパリティＰ３は、ＨＤＤ識別番号が「ＨＤＤ２」から「ＨＤＤ４」に変更にあるとともに、論理ブロックアドレスが「ＬＢＡ−Ｄ31−Ｐ」から「ＬＢＡ−Ｄ31(N) −Ｐ」に変更される。
【００９４】
以上本実施例によれば、新規に外部記憶装置が追加されると、従来から存在した外部記憶装置に記憶された情報をそのままの状態で新規に追加された外部記憶装置に記憶できるので、データブロックの組み替え、パリティの計算が不要となる。
なお、本実施例では、データブロックをそのままのサイズで移動したが、データブロックを小さいサイズに分割して移動するようにしてもよい。
【００９５】
図３０は本発明の第５実施例のコントロール部の処理フローチャートを示す。なお、本実施例の構成は、図８と同様であるので、その説明は省略する。
本実施例では、既存のＭ台の外部記憶装置１０２−１〜１０２−Ｍにｍ台の外部記憶装置１０２−M+1 〜１０２−M+m が追加されると（ステップＳ６−１）、変数ｉをｉ＝１に設定する（ステップＳ６−２）。
【００９６】
次に、既存データブロックＤij（ｊ＝１〜Ｍ，ｉ≠ｊ）を集める（ステップ  Ｓ６−３）。なお、このとき、既存データブロックＤijのパリティはＤiiとする。
ステップＳ６−３で集めた既存のデータブロックＤijを（Ｍ＋ｍ−１）個に再ストライピングする（ステップＳ６−４）。このとき、得られるデータブロックはＤ'ik （ｋ＝１〜Ｍ＋ｍ）、パリティＤ'ii は、Ｄiiである。
【００９７】
ステップＳ６−４で得られたデータブロックはＤ'ik をｋ番目の外部記憶装置１０２−ｋに移動する（ステップＳ６−６）。
対応する分割情報を更新する（ステップＳ６−７）。次に、変数ｉ＝ｉ＋１として、変数ｉがデータブロックの個数になるまでステップＳ６−３〜Ｓ６−６を繰り返す（ステップＳ６−８）。
【００９８】
図３１は本発明の第５実施例の動作説明図を示す。図３１（Ａ）は外部記憶装置を追加する前、図３１（Ｂ）は外部記憶装置を追加し、ストライピングした後の状態を示す。
図３１（Ａ）に示すように変更前は、Ｍ台の外部記憶装置１０２−１〜１０２−ＭにデータブロックＤ11〜Ｄ1M、Ｄ21〜Ｄ2M・・・Ｄn1〜ＤnMが振り分けられていたとする。
【００９９】
ここで、図３１（Ｂ）に示すように新規に外部記憶装置１０２−M+1 〜１０２−M+m を追加し、図３０に示すような処理を行うと、図３１（Ｂ）に示すように図３１（Ａ）に示すデータブロックＤ11〜Ｄ1M、Ｄ21〜Ｄ2M・・・Ｄn1〜ＤnMがそれぞれ（Ｍ＋ｍ）のデータブロックＤ'11 〜Ｄ'1(M+m) 、Ｄ'21 〜Ｄ'2(M+m) ・・・Ｄ'n1 〜Ｄ'n(M+m) に分割される。
【０１００】
図３２は本発明の第５実施例の変更後の再ストライピング前のデータの記憶状態を示す図である。
図３２に示すように２台の外部記憶装置１０２−１，１０２−２に２台の外部記憶装置１０２−３，１０２−４を追加したとする。
最初に接続された２台の外部記憶装置１０２−１，１０２−２にはデータブロックＤ11，Ｄ21，Ｄ31，Ｄ41及びそのパリティＰ１，Ｐ２，Ｐ３，Ｐ４が記憶されている。
【０１０１】
図３２で新たに供給されたデータブロックＤ91，Ｄ92，Ｄ93、Ｄ01，Ｄ02，Ｄ03及びそのパリティＰ９，Ｐ０は、４台の外部記憶装置１０２−１〜１０２−４に均等にストライピングされる。
図３３は本発明の第５実施例の変更後の再ストライピング前の分割情報のデータ構成図を示す。
【０１０２】
再ストライピング前の分割情報は、例えば、データブロックＤ11が図３３に示すように分割数「１」、ＨＤＤ識別番号「ＨＤＤ１」の外部記憶装置１０２−１の論理ブロックアドレス「ＬＢＡ−Ｄ11」に「３」ブロック分格納されるように設定される。また、データブロックＤ11のパリティＰ１は、ＨＤＤ識別番号「ＨＤＤ２」の外部記憶装置１０２−２の論理ブロックアドレス「ＬＢＡ−Ｄ31−Ｐ」に「３」ブロック、１５３６Ｂｙｔｅで格納される。
【０１０３】
本実施例では、データブロックＤ11を３分割し、パリティＰ１とともに４台の外部記憶装置１０２−１〜１０２−４に均等にストライピングする。
図３４は本発明の第５実施例のデータブロックの分割状態を示す図である。
図３０に示す処理により従来から存在するデータブロックＤ11，Ｄ21，Ｄ31，Ｄ41は図３４に示すようにそれぞれ３つのデータブロックＤ1a，Ｄ1b，Ｄ1c、Ｄ2a，Ｄ2b，Ｄ2c、Ｄ3a，Ｄ3b，Ｄ3c、Ｄ4a，Ｄ4b，Ｄ4cに分割される。
【０１０４】
図３４に示すように３つに分割されたデータブロックＤ1a，Ｄ1b，Ｄ1c、Ｄ2a，Ｄ2b，Ｄ2c、Ｄ3a，Ｄ3b，Ｄ3c、Ｄ4a，Ｄ4b，Ｄ4cをパリティＰ１，Ｐ２，Ｐ３，Ｐ４とともに４台の外部記憶装置１０２−１〜１０２−４に均等に分割する。
図３５は本発明の第５実施例の再ストライピング後のデータブロックの状態を示す図である。
【０１０５】
再ストライピング後は、図３５に示すように、パリティＰ１，Ｐ２及びデータブロックＤ3a，Ｄ3bが外部記憶装置１０２−１、データブロックＤ1a，Ｄ2a及びパリティＰ３，Ｐ４が外部記憶装置１０２−２、データブロックＤ1b，Ｄ2b，Ｄ3b，Ｄ4bが外部記憶装置１０２−３、データブロックＤ1c，Ｄ2c，Ｄ3c，Ｄ4cが外部記憶装置１０２−４に分配され、記憶される。
【０１０６】
図３６は本発明の第５実施例の再ストライピング時の分割情報のデータ構成図を示す。
再ストライピング時の分割情報では、例えば、データブロックＤ11が図３６に示すように分割数「３」、ＨＤＤ識別番号「ＨＤＤ２」の外部記憶装置１０２−２の論理ブロックアドレス「ＬＢＡ−Ｄ1a」に「１」ブロック分、ＨＤＤ識別番号「ＨＤＤ３」の外部記憶装置１０２−３の論理ブロックアドレス「ＬＢＡ−Ｄ1b」に「１」ブロック分、ＨＤＤ識別番号「ＨＤＤ４」の外部記憶装置１０２−４の論理ブロックアドレス「ＬＢＡ−Ｄ1c」に「１」ブロック分格納されるように設定される。また、データブロックＤ11のパリティＰ１は、そのままＨＤＤ識別番号「ＨＤＤ１」の外部記憶装置１０２−１の論理ブロックアドレス「ＬＢＡ−Ｄ1a−Ｄ1b−Ｄ1c−Ｐ」に「３」ブロック、１５３６Ｂｙｔｅで格納される。
【０１０７】
以上本実施例によれば、外部記憶装置の台数に合わせて、最初の台数の外部記憶装置に記憶されたデータブロックを小さい単位に分割し、再ストライピングするので、パリティを求めるときのデータブロックの単位などを変更する必要がなく、また、パリティを変更する必要もない。
なお、本実施例では、外部記憶装置を追加する場合について説明したが、外部記憶装置を削除する場合につても適用できる。
【０１０８】
図３７は本発明の第６実施例のコントロール部の処理フローチャートを示す。本実施例では、Ｍ台の外部記憶装置から１台の外部記憶装置が削除されると、まず、変数ｉを１に設定する（ステップＳ７−１）。
既存のデータブロックＤij（ｊ＝１〜Ｍ，ｉ≠ｊ）のデータを集める（ステップＳ７−２）。
【０１０９】
次に、ステップＳ７−２で集めたデータブロックＤijを（Ｍ−１）個のデータブロックに再ストライピングする（ステップＳ７−３）。ここで、再ストライピングされたデータをＤ'ik （ｋ＝１〜（Ｍ−１））、パリティＤ'i（ｉmod (M-1) ）をＤiiとする。
次に、ステップＳ７−３で求められたデータブロックＤ'ik をｋ番目の外部記憶装置に移動する（ステップＳ７−４）。このとき対応する分割情報を後述するように更新する（ステップＳ７−５）。
【０１１０】
次に変数ｉを（ｉ＋１）とし、変数ｉがデータブロックの種類の数ｎ以上になるまで、ステップＳ７−２〜Ｓ７−５を繰り返す。
図３８は本発明の第６実施例の動作説明図を示す。図３８（Ａ）は外部記憶装置削除前のデータブロックの状態、図３８（Ｂ）は外部記憶装置削除後のデータブロックの状態を示す。
【０１１１】
図３８（Ａ）に示すようにＭ台の外部記憶装置にデータブロック及びパリティＤ11〜Ｄ1M、Ｄ21〜Ｄ2M・・・Ｄn1〜ＤnMが均等に分散して分配されているとする。ここで、外部記憶装置が１台削除されると、図３７に示す処理が行われ、図３８（Ｂ）に示すようにデータブロック及びパリティＤ11〜Ｄ1M、Ｄ21〜Ｄ2M・・・Ｄn1〜ＤnMが（Ｍ−１）個のデータブロックＤ'11 〜Ｄ'1(M-1) 、Ｄ'21 〜Ｄ'2(M-1) ・・・Ｄ'n1 〜Ｄ'n(M-1) に均等に再分配される。
【０１１２】
図３９は本発明の第６実施例の変更後の再ストライピング前のデータの記憶状態を示す図である。
図３９に示すように４台の外部記憶装置１０２−１〜１０２−４にデータブロックＤ11〜Ｄ13、Ｄ21〜Ｄ23、Ｄ31〜Ｄ33、Ｄ41〜Ｄ43、Ｄ51〜Ｄ53、Ｄ61〜Ｄ63及びそのパリティＰ１〜Ｐ６が記憶されている。
【０１１３】
図４０は本発明の第６実施例の変更前の分割情報のデータ構成図を示す。
外部記憶装置を削除する前の分割情報では、例えば、データブロックＤ11〜Ｄ13が図４０に示すように分割数「３」とされる。データブロックＤ11は、ＨＤＤ識別番号「ＨＤＤ１」の外部記憶装置１０２−１の論理ブロックアドレス「ＬＢＡ−Ｄ11」に「２」ブロック分格納されるように設定される。データブロックＤ12は、ＨＤＤ識別番号「ＨＤＤ３」の外部記憶装置１０２−２の論理ブロックアドレス「ＬＢＡ−Ｄ12」に「２」ブロック分格納されるように設定される。データブロックＤ13は、ＨＤＤ識別番号「ＨＤＤ４」の外部記憶装置１０２−２の論理ブロックアドレス「ＬＢＡ−Ｄ13」に「２」ブロック分格納されるように設定される。また、データブロックＤ11〜Ｄ13のパリティＰ１は、ＨＤＤ識別番号「ＨＤＤ２」の外部記憶装置１０２−２の論理ブロックアドレス「ＬＢＡ−Ｄ11−Ｄ12−Ｄ13−Ｐ」に「２」ブロック、１０２４Ｂｙｔｅで格納される。
【０１１４】
本実施例では、データブロックＤ11〜Ｄ13をまとめた後２分割し、パリティＰ１とともに３台の外部記憶装置１０２−１〜１０２−３に均等にストライピングする。
図４１は本発明の第６実施例のデータブロックの分割状態を示す図である。
図３７に示す処理により従来から存在するデータブロックＤ11〜Ｄ13、Ｄ21〜Ｄ23・・・Ｄ61〜Ｄ63は図４１に示すようにそれぞれ２つのデータブロックＤ1a，Ｄ1b、Ｄ2a，Ｄ2b・・・Ｄ6a，Ｄ6bに分割される。
【０１１５】
図４１に示すように２つに分割されたデータブロックＤ1a，Ｄ1b、Ｄ2a，Ｄ2b・・・Ｄ6a，Ｄ6bをパリティＰ１〜Ｐ６とともに３台の外部記憶装置１０２−１〜１０２−３に均等に分割する。
図４２は本発明の第６実施例の再ストライピング後のデータブロックの状態を示す図である。
【０１１６】
再ストライピング後は、図４２に示すように、パリティＰ１，Ｐ２及びデータブロックＤ3a，Ｄ4a，Ｄ5a，Ｄ6aが外部記憶装置１０２−１、データブロックＤ1a，Ｄ2a，Ｄ5b，Ｄ6b及びパリティＰ３，Ｐ４が外部記憶装置１０２−２、データブロックＤ1b，Ｄ2b，Ｄ3b，Ｄ4b及びパリティＰ５，Ｐ６が外部記憶装置１０２−３に分配され、記憶される。
【０１１７】
図４３は本発明の第６実施例の再ストライピング時の分割情報のデータ構成図を示す。
再ストライピング時の分割情報では、分割数は「２」となる。例えば、データブロックＤ1aは、ＨＤＤ識別番号「ＨＤＤ２」の外部記憶装置１０２−２の論理ブロックアドレス「ＬＢＡ−Ｄ1a」に「３」ブロック分、データブロックＤ1bは、ＨＤＤ識別番号「ＨＤＤ３」の外部記憶装置１０２−３の論理ブロックアドレス「ＬＢＡ−Ｄ1b」に「３」ブロック分格納されるように設定される。また、データブロックＤ1a，１b のパリティＰ１は、そのままＨＤＤ識別番号「ＨＤＤ１」の外部記憶装置１０２−１の論理ブロックアドレス「ＬＢＡ−Ｄ1a−Ｄ1b−Ｄ1c−Ｐ」に「２」ブロック、１０２４Ｂｙｔｅで格納される。
【０１１８】
以上本実施例によれば、外部記憶装置が１台削除されても最初の台数の外部記憶装置に記憶されたデータブロックを大きい単位で分割し、再ストライピングするので、パリティを求めるときのデータブロックの単位などを変更する必要がなく、また、パリティを変更する必要もない。
なお、本実施例では、外部記憶装置をそれぞれ別々の記憶装置として取り扱っているが、複数の外部記憶装置を１つの記憶装置として扱うことにより記憶容量を増加することもできる。
【０１１９】
図４４は本発明の第７実施例の外部記憶装置のブロック構成図を示す。
なお、全体の構成は、図８と同様であるのでその説明は省略する。
本実施例の外部記憶装置１０２は、記憶部１０２ａ及びコントロール部１０２ｂから構成される。記憶部１０２ａは、既存の記憶領域１０２ａ−１及び追加の記憶領域１０２ａ−２から構成される。既存の記憶領域１０２ａ−１と追加の記憶領域１０２ａ−２とで連続してアドレスを設定する。
【０１２０】
図４４では、１６進でのアドレス「０ｘ０００」から「０ｘ７ＦＦＥ」までを既存の記憶領域１０２ａ−１のアドレスに設定し、アドレス「０Ｘ７ＦＦＦ」から「０ｘＦＦＦＦ」までを追加の記憶領域１０２ａ−２のアドレスに設定する。コントロール部１０２ｂは既存の記憶領域１０２ａ−１と追加の記憶領域１０２ａ−２とを１つの記憶領域として扱うことにより記憶領域の追加を可能とする。コントロール部１０２ｂは、データ入出力要求を受信する受信部１０２ｂ−１、読出・書込制御部１０２ｂ−２、変換テーブル１０２ｂ−３、読出・書込処理部１０２ｂ−４、１０２ｂ−５から構成される。
【０１２１】
受信部１０２ｂ−１は、コントロール部１０３からのデータの入出力要求を受信する。受信部１０２ｂ−１で受信された入出力要求は、読出・書込制御部１０２ｂ−２に供給される。
読出・書込制御部１０２ｂ−２は、要求されたアドレスに応じて変換テーブル１０２ｂ−３を参照して、読出・書込処理部１０２ｂ−４、１０２ｂ−５を制御する。
【０１２２】
読出・書込処理部１０２ｂ−４は、変換テーブル１０２ｂ−３の変換結果、データ要求先アドレスが既存の記憶領域１０２ａ−１のときに、変換テーブル１０２ｂ−３で変換されたアドレスからデータを読み出す。
読出・書込処理部１０２ｂ−５は、変換テーブル１０２ｂ−３の変換結果、データ要求先アドレスが追加された記憶領域１０２ａ−２のときに、追加された記憶領域１０２ａ−２の変換テーブル１０２ｂ−３で参照されたアドレスからデータを読み出す。
【０１２３】
図４５は本発明の第７実施例の外部記憶装置のコントロール部の処理フローチャートを示す。
コントロール部１０２ｂはコントロール部１０３からデータ入力要求があると（ステップＳ８−１）、変換テーブル１０２ｂ−３を参照して、既存の記憶領域１０２ａ−１にアクセスするか、追加された記憶領域１０２ａ−２にアクセスするかを決定する（ステップＳ８−２）。
【０１２４】
ステップＳ８−２の決定に従って読出・書込制御部１０２ｂ−２により読出・書込処理部１０２ｂ−４又は１０２ｂ−４が動作され、既存の記憶領域１０２ａ−１にアクセスするか、追加された記憶領域１０２ａ−２にアクセスする（ステップＳ８−３、Ｓ８−４）。
読出・書込制御部１０２ｂ−２は、既存の記憶領域１０２ａ−１又は追加された記憶領域１０２ａ−２へアクセス結果をコントロール部１０３に送信する（ステップＳ８−５）。
【０１２５】
次に、本実施例の動作を図面とともに説明する。
図４６は本発明の第７実施例の変更前の状態を示す図、図４７は本発明の第７実施例の変更後の状態を示す図である。
ＲＡＩＤでは、図４６に示すように例えば、外部記憶装置１０２−１にデータブロックＤ11，Ｄ21，Ｄ91，Ｄ01及びパリティＰ３，Ｐ４が記憶され、外部記憶装置１０２−１に空きがなくなると、他の外部記憶装置１０２−２，１０２−３の容量に空きがあっても外部記憶装置１０２−１にデータブロックを分割できないので、データを記憶できなくなる。
【０１２６】
しかし、本実施例によれば、図４７に示すようにコントロール部１０２ｂに記憶装置を追加し、追加記憶領域１０２ａ−２を設定することにより、既存の記憶領域１０２ａ−１と追加記憶領域１０２ａ−２とを１つの記憶装置として扱え、外部記憶装置１０２−１にも容量に空きができるので、外部記憶装置１０２−２，１０２−３とともに、データを分散して記憶できるようにできる。
【０１２７】
なお、本実施例では１つの外部記憶装置の容量が飽和したときには、飽和した外部記憶装置に記憶装置を追加して既存の記憶領域と追加した記憶領域とを１つの記憶領域として扱うことによりデータを分散して記憶できるようにしたが、容量の空きがある外部記憶装置だけを用いてＲＡＩＤを構成するようにしてもよい。
【０１２８】
【発明の効果】
上述の如く、本発明によれば、本発明によれば、記憶手段の構成が変更となったとき、既存の情報を新規の構成に応じた分割方法で分割し、複数の記憶手段に記憶することにより、自動的に新規の構成に適応した分割方法で情報を分割し、記憶することができる等の特長を有する。
【０１２９】
また、本発明によれば、複数の記憶手段に新規に記憶手段が追加されたときに、新たに入力された情報を新規の構成の記憶手段に応じた分割方法で記憶し、既に複数の記憶手段に記憶された情報を、複数の記憶手段から読み出されたときに、新規の構成に応じた分割方法で分割して、記憶することにより、記憶手段を追加したときにシステムを停止することなく、新規の構成に適応した分割方法で情報を分割し、複数の記憶手段に記憶できる等の特長を有する。
【０１３０】
さらに、本発明によれば、複数の記憶手段から記憶手段が削除されたときに、記憶装置が削除された後の構成に応じた分割方法に従って情報を記憶することにより、記憶手段が削除されたときに削除された後の構成に適応した分割方法に従って情報を分割して記憶できる等の特長を有する。
また、本発明によれば、分割方法を示す分割情報を管理することにより、現在のシステムに適応した分割方法で情報を分割し、記憶できる等の特長を有する。
【０１３１】
また、本発明によれば、情報を記憶手段に記憶するときに分割情報を記憶することにより、情報を記憶したときの分割情報を管理できる等の特長を有する。
さらに、本発明によれば、情報にエラー訂正情報を付与するとともに、エラー訂正情報に基づいて前記情報を訂正することにより、記憶手段を削除した後でも、削除した記憶手段の情報を復元することができる等の特長を有する。
【０１３２】
また、本発明によれば、既存の情報の全体の処理単位はそのままで、分割する単位を変更することにより新規構成に対する情報を得ることにより、既存の情報を最小限の変更に止め、情報を新規構成に適応した構成とすることができる等の特長を有する。
さらに、本発明によれば、複数の記憶部を１つの記憶領域として処理することにより、記憶手段の容量が飽和した場合でも、記憶手段に記憶部を付加することにより容量を増加することができる等の特長を有する。
【図面の簡単な説明】
【図１】ＲＡＩＤシステムの構成図である。
【図２】ＲＡＩＤ５の処理を説明するための図である。
【図３】従来のシステムの構成を変更する場合のフローチャートである。
【図４】停止させることなく変更可能なシステムの変更前の状態を示す図である。
【図５】停止させることなく変更可能なシステムの変更後の状態を示す図である。
【図６】システムの構成を変更したときの課題を説明するための図である。
【図７】システムの構成を変更したときの他の課題を説明するための図である。
【図８】本発明の第１実施例のブロック構成図である。
【図９】本発明の第１実施例の分割情報のデータ構成図である。
【図１０】本発明の第１実施例のコントロール部の処理フローチャートである。
【図１１】本発明の第１実施例の外部記憶装置の処理フローチャートである。
【図１２】本発明の第２実施例のデータ読出前の外部記憶装置のデータ記憶状態を示す図である。
【図１３】本発明の第１実施例の再ストライピング前の分割情報のデータ構成図である。
【図１４】本発明の第１実施例のデータ読出後の外部記憶装置のデータ記憶状態を示す図である。
【図１５】本発明の第１実施例の再ストライピング時の分割情報のデータ構成図である。
【図１６】本発明の第２実施例のコントロール部の処理フローチャートである。
【図１７】本発明の第２実施例の外部記憶装置を取り外す前のデータ記憶状態を示す図である。
【図１８】本発明の第２実施例の外部記憶装置を取り外す前の分割情報のデータ構成図である。
【図１９】本発明の第２実施例の外部記憶装置が取り外された後のデータ記憶状態を示す図である。
【図２０】本発明の第２実施例の外部記憶装置が取り外された後の分割情報のデータ構成図である。
【図２１】本発明の第３実施例のシステム変更前の外部記憶装置のデータ記憶状態を示す図である。
【図２２】本発明の第３実施例のシステム変更時の外部記憶装置のデータ記憶状態を示す図である。
【図２３】本発明の第３実施例のシステム変更後の外部記憶装置のデータ記憶状態を示す図である。
【図２４】本発明の第４実施例のコントロール部の処理フローチャートである。
【図２５】本発明の第４実施例の動作説明図である。
【図２６】本発明の第４実施例の再ストライピング前のデータ記憶状態を示す図である。
【図２７】本発明の第４実施例の再ストライピング前の分割情報のデータ構成図である。
【図２８】本発明の第４実施例の再ストライピング後のデータの記憶状態を示す図である。
【図２９】本発明の第４実施例の再ストライピング後の分割情報のデータ構成図である。
【図３０】本発明の第５実施例のコントロール部の処理フローチャートである。
【図３１】本発明の第５実施例の動作説明図である。
【図３２】本発明の第５実施例の再ストライピング前のデータ記憶状態を示す図である。
【図３３】本発明の第５実施例の再ストライピング前の分割情報のデータ構成図である。
【図３４】本発明の第５実施例のデータブロックの分割状態を示す図である。
【図３５】本発明の第５実施例の再ストライピング後のデータブロックの状態を示す図である。
【図３６】本発明の第５実施例の再ストライピング後の分割情報のデータ構成図である。
【図３７】本発明の第６実施例のコントロール部の処理フローチャートである。
【図３８】本発明の第６実施例の動作説明図である。
【図３９】本発明の第６実施例のシステム変更前のデータブロックの状態を示す図である。
【図４０】本発明の第６実施例のシステム変更前の分割情報のデータ構成図である。
【図４１】本発明の第６実施例のデータブロックの分割情報を示す図である。
【図４２】本発明の第６実施例の再ストライピング後のデータブロックの状態を示す図である。
【図４３】本発明の第６実施例の再ストライピング後の分割情報のデータ構成図である。
【図４４】本発明の第７実施例の外部記憶装置のブロック構成図である。
【図４５】本発明の第７実施例の外部記憶装置のコントロール部の処理フローチャートである。
【図４６】本発明の第７実施例のシステム変更前の状態を示す図である。
【図４７】本発明の第７実施例のシステム変更後の状態を示す図である。
【符号の説明】
１００  情報記憶装置
１０１  ホストコンピュータ
１０２−１〜１０２−ｎ  外部記憶装置
１０３  コントロール部
１０４  分割制御部
１０５  パリティ制御部
１０６  分割情報管理部
１０７  分割情報管理用テーブル
１０８  分割処理部
１０９  逆分割処理部
１１０  分割処理用バッファメモリ
１１１  パリティ分割情報管理部
１１２  パリティ分割情報管理用テーブル
１１３  パリティ処理部
１１４  パリティ復元処理部
【図１】
0004234233.tif 000002
【図２】
0004234233.tif 000003
【図３】
0004234233.tif 000004
【図４】
0004234233.tif 000005
【図５】
0004234233.tif 000006
【図６】
0004234233.tif 000007
【図７】
0004234233.tif 000008
【図８】
0004234233.tif 000009
【図９】
0004234233.tif 000010
【図１０】
0004234233.tif 000011
【図１１】
0004234233.tif 000012
【図１２】
0004234233.tif 000013
【図１３】
0004234233.tif 000014
【図１４】
0004234233.tif 000015
【図１５】
0004234233.tif 000016
【図１６】
0004234233.tif 000017
【図１７】
0004234233.tif 000018
【図１８】
0004234233.tif 000019
【図１９】
0004234233.tif 000020
【図２０】
0004234233.tif 000021
【図２１】
0004234233.tif 000022
【図２２】
0004234233.tif 000023
【図２３】
0004234233.tif 000024
【図２４】
0004234233.tif 000025
【図２５】
0004234233.tif 000026
【図２６】
0004234233.tif 000027
【図２７】
0004234233.tif 000028
【図２８】
0004234233.tif 000029
【図２９】
0004234233.tif 000030
【図３０】
0004234233.tif 000031
【図３１】
0004234233.tif 000032
【図３２】
0004234233.tif 000033
【図３３】
0004234233.tif 000034
【図３４】
0004234233.tif 000035
【図３５】
0004234233.tif 000036
【図３６】
0004234233.tif 000037
【図３７】
0004234233.tif 000038
【図３８】
0004234233.tif 000039
【図３９】
0004234233.tif 000040
【図４０】
0004234233.tif 000041
【図４１】
0004234233.tif 000042
【図４２】
0004234233.tif 000043
【図４３】
0004234233.tif 000044
【図４４】
0004234233.tif 000045
【図４５】
0004234233.tif 000046
【図４６】
0004234233.tif 000047
【図４７】
0004234233.tif 000048