(57)【特許請求の範囲】
【請求項１】
データをｎ個のブロックデータに分割し、該ｎ個のブロックデータと排他的論理和を取る１または複数のブロックデータを指定するビットマップを配置したヘッダと、該ヘッダ部で指定された１または複数のブロックデータと該ビットマップと排他的論理和を取った排他的論理和データと、を含む符号化データを冗長度に応じた数ｍ（ｍ≧ｎ）個生成する符号化部と、
前記冗長度を変化させる冗長度制御部と、
生成された前記ｍ個の符号化データを、前記複数の記憶デバイスに分配する際に、前記複数の記憶デバイスの信頼度に応じて分配する分配処理部と、
前記複数の記憶デバイスから少なくとも前記ｎ個以上の前記符号化データを回収し、前記ヘッダ部を単位行列化することにより前記ｎ個のブロックデータを復号する復号部と、
を備えたことを特徴とするストレージシステム。
【請求項２】
請求項１記載のストレージシステムに於いて、前記冗長度制御部は、前記元データの重要度に応じて前記符号化部における冗長度を変化させることを特徴とするストレージシステム。
【請求項３】
コンピュータに、
データをｎ個のブロックデータへ分割し、該ｎ個のブロックデータと排他的論理和を取る１または複数のブロックデータを指定するビットマップを配置したヘッダと、該ヘッダ部で指定された１または複数のブロックデータと該ビットマップと排他的論理和を取った排他的論理和データと、を含む符号化データを冗長度に応じた数ｍ（ｍ≧ｎ）個生成する符号化ステップと、
前記冗長度を変化させる冗長度制御ステップと、
生成された前記ｍ個の符号化データを、前記複数の記憶デバイスに分配する際に、前記複数の記憶デバイスの信頼度に応じて分配する分配処理ステップと、
前記複数の記憶デバイスから少なくとも前記ｎ個以上の前記符号化データを回収し、前記ヘッダ部を単位行列化することにより前記ｎ個のブロックデータを復号する復号ステップと、
を実行させることを特徴とするストレージシステムの制御方法。
【請求項４】
コンピュータに、
データをｎ個のブロックデータへ分割し、該ｎ個のブロックデータと排他的論理和を取る１または複数のブロックデータを指定するビットマップを配置したヘッダと、該ヘッダ部で指定された１または複数のブロックデータと該ビットマップと排他的論理和を取った排他的論理和データと、を含む符号化データを冗長度に応じた数ｍ（ｍ≧ｎ）個生成する符号化ステップと、
前記冗長度を変化させる冗長度制御ステップと、
生成された前記ｍ個の符号化データを、前記複数の記憶デバイスに分配する際に、前記複数の記憶デバイスの信頼度に応じて分配する分配処理ステップと、
前記複数の記憶デバイスから少なくとも前記ｎ個以上の前記符号化データを回収し、前記ヘッダ部を単位行列化することにより前記ｎ個のブロックデータを復号する復号ステップと、
を実行させることを特徴とするストレージ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の磁気ディスク装置等の記憶デバイスを組み合わせて構成された大容量なストレージ装置装置を備えたストレージシステム、その制御方法及びプログラムに関し、特に、ストレージ装置に記録するデータを冗長符号化して障害に対する信頼性を高くするストレージシステム、その制御方法及びプログラムに関する。
【背景技術】
【０００２】
従来、磁気ディスク装置の媒体上にあるデータを障害や不意の事故などから守るために、一般的に使用される技術としてＲＡＩＤ(Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ)がある。ＲＡＩＤのレベルは、その用途に応じてＲＡＩＤレベル０からＲＡＩＤレベル６まであるが、データの安全性を高める技術として用いられる代表的なものとして、ＲＡＩＤ１、ＲＡＩＤ５、ＲＡＩＤ６がある。
【０００３】
ＲＡＩＤ１は一般的には２台のディスクで用いて実現される。２台のディスクに同じデータを書き込むことで、ディスクの耐障害性を高める、最も単純な方法であり、ミラーリングと呼ばれる。
【０００４】
図１３はＲＡＩＤ１を適用したストレージシステムであり、コントローラ１００の配下に例えば記憶デバイスとして５台の磁気ディスク装置１０４−１〜１０４−５が配置され、データブロックＡ〜Ｈで構成される元データ１０２に対し磁気ディスク装置１０４−１〜１０４２−５の全てが複製したデータ１０２−１〜１０２−５を持つことになる。
【０００５】
ＲＡＩＤ５は、複数台のディスクに分散してデータを記録する方法であり、書き込みの際にデータを加算して得られるパリティと呼ばれる冗長なコードを生成し同時に書き込む。これにより、どれか１台のディスクが故障しても、それ以外のディスクのデータとパリティ情報から、元の完全なデータを復号できる。
【０００６】
図１４はＲＡＩＤ５を適用したストレージシステムであり、コントローラ１００の配下に例えば記憶デバイスとして５台の磁気ディスク装置１０４−１〜１０４−５が配置され、
元データ１０２のデータブロックＡ〜Ｈについて、データブロックＡ〜Ｄの排他論理和からパリティＰABCDを計算して磁気ディスク装置１０４−１〜１０４−５に格納し、続いてデータブロックＥ〜Ｈの排他論理和からパリティＰEFGHを計算して磁気ディスク装置１０４−１〜１０４−５に格納し、パリティＰABCD、ＰEFGHについては、磁気ディスク装置１０４−５，１０４−４のようにずらして格納する。
【０００７】
ＲＡＩＤ５は、パリティの記録に必要なディスクの容量は、ディスクの台数に関係なくディスク１台分の容量であるため、ＲＡＩＤ１と比べてディスクの利用効率が高い。
【０００８】
ＲＡＩＤ６はＲＡＩＤ５の拡張版であり、ＲＡＩＤ５では１つであったパリティを２つ生成する。これにより、２台の磁気ディスク装置が同時に故障しても元のデータを復号できるようにする手法である。２つ目のパリティの取り方にはいくつか方法があるが、一般的にはリードソロモン符号が用いられる。
【０００９】
図１５はＲＡＩＤ６を適用したストレージシステムであり、コントローラ１００により例えばデータブロックＡ〜Ｃを磁気ディス装置１０４−１〜１０４−３に格納し、データブロックＡ〜Ｃの排他論理和からパリティＰABCを計算して磁気ディスク装置１０４−４に格納し、更に、データブロックＡ〜ＢＣとパリティＰABCをデータからリードソロモン符号を用いて２つ目のパリティＱ１を計算し、磁気ディスク装置１０４−５に格納している。
【００１０】
このようにＲＡＩＤ６は、ＲＡＩＤ５に対してパリティが１つ増えているため、同時に２台のストレージシステムが故障しても、元のデータを回復することが可能である。
【００１１】
しかし、パリティを２つ生成するため、ＲＡＩＤ５よりも１台分ディスクの利用効率が低くまた、２つ目のパリティを求めるためにリードソロモン符号を用いているため、計算量が大きいという問題もある。
【００１２】
また従来のストレージシステムのファイル管理方法として、ファイルサイズに応じて、ＲＡＩＤレベルを変更してファイルを管理する方法がある（特許文献１）。この方法は、１ブロック未満のファイルの場合は、ＲＡＩＤレベル１、２ブロック以上の場合は、ＲＡＩＤレベル５の冗長方式で記憶する。
【００１３】
更に、ストレージシステムデータ列を訂正する方法として、データＤＡＳＤの２個が不良であるとき、それらのデータを未知数の２つのプール方程式を構成する１対のシンドロームの関数として再度作成する方法がある（特許文献２）。この方法は、コード・プリミティブの多項式の累乗のマトリックスを予め記憶しパイプライン処理することにより、データの再生が促進され、配列全体の書込み処理の負荷を平衡させる。
【特許文献１】特許第３５０５０９３号公報
【特許文献２】特開平５−１９７５７９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかしながら、このような従来のＲＡＩＤを適用してデータの冗長性を確保するストレージシステムにあっては次の問題がある。
【００１５】
まずＲＡＩＤ１のミラーリングにあっては、オリジナルのデータが各磁気ディスク装置上に複製されるため、耐障害性は高いがディスクの利用効率が非常に悪いという問題がある。
【００１６】
またＲＡＩＤ５ではＲＡＩＤ１と比べるとディスクの利用効率は高いが、回復可能なのは１台のディスクが故障したときだけで、同時に２台以上が故障した場合には回復は不可能である。更にＲＡＩＤ６ではパリティを２つ生成するため、ＲＡＩＤ５よりも１台分ディスクの利用効率が低くなっている、などの問題がある。
【００１７】
また、磁気ディスクの故障率の目安として用いられる値に平均故障間隔ＭＴＢＦ(Ｍｅａｎ  Ｔｉｍｅ  Ｂｅｔｗｅｅｎ  Ｆａｉｌｕｒｅｓ、単位は時間)がある。平均故障間隔ＭＴＢＦは製品の故障が回復してから、次の故障が発生するまでの平均時間を表わしている。例えば平均故障間隔ＭＴＢＦが４０万時間であるとすると、４０万時間後に１台のディスクが壊れる。ＲＡＩＤなどで１０台の磁気ディスク装置を同時に使用している場合には、４万時間に１台が故障することになる。
【００１８】
ＲＡＩＤでは全ての磁気ディスク装置は等価に扱われるため、できる限り同じ性能の磁気ディスク装置を使用する必要があるが、磁気ディスク装置の平均故障間隔ＭＴＢＦは時間によりどんどん減少し、もし特定の磁気ディスク装置が交換された場合、交換された磁気ディスク装置との差が大きくなってくる。このような状況になった場合にはＲＡＩＤの信頼性は大きく下がってしまうという問題がある。
【００１９】
本発明は、複数の記憶デバイスにデータを分散して格納した際の２個以上のデータが不良になった場合の障害に対し高い復号性をもつストレージシステム、制御方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００２０】
（システム）
本発明はストレージシステムを提供する。本発明は、複数の記憶デバイスで構成されたストレージ装置を備えたストレージシステムに於いて、
元データを分割した後に、冗長度を可変な符号を用いて分割数以上の複数の符号化データを生成する符号化部と、
符号化部における冗長度を変化させる冗長度制御部と、
複数の符号化データを、複数の記憶デバイスに分配して記憶させる分配処理部と、
記憶デバイスから少なくとも元データの分割数分の符号化データを回収して前記元データを復号する復号部と、
を備えたことを特徴とする。
【００２１】
ここで、符号化部は、
元データをｎ個のブロックデータに分割するブロック分割部と、
ｎ個のブロックデータの中の排他論理和をとる１又は複数のブロックを指定するビットマップを配置したヘッダと、ヘッダで指定された１又は複数のブロックデータの排他論理和データから構成される符号化データを、冗長度Ｑに応じた数ｍだけ生成する符号化データ生成部と、
を備え、
復号部は、複数の記憶デバイスから前記ブロック数ｎ以上の符号化データを回収し、ガウスの消去法などによりヘッダを単位行列化することによりｎ個のブロックデータを復号する。
【００２２】
冗長度制御部は、元データの重要度に応じて符号化部における冗長度を変化させる。冗長度制御部は、元データの重要度を手動設定、若しくは元データに含まれるキーワード、更新日時、又は更新頻度に応じて自動設定する。冗長度制御部は、重要度の自動設定として、元データに含まれるキーワードから対応する重要度を設定した後、更新日時及び又は更新頻度に応じて重要度を修正する。
【００２３】
分配処理部は、複数の符号化データの分配数を、複数の記憶デバイスの信頼度及び又は使用可能容量に応じて決定する。分配処理部は、記憶デバイスの信頼度を、手動設定若しくは稼働時間に基づいて自動設定する。分配処理部は、記憶デバイスの重要度を稼働時間に応じて設定した後に、記憶デバイスの使用可能容量に応じて修正する。
【００２４】
記憶デバイスが新規追加または削除された時には、変更後の記憶デバイスに基づいて、符号化部で符号化データを再生成した後に分配処理部で再分配する。
【００２５】
（方法）
本発明はストレージシステムの制御方法を提供する。本発明は、複数の記憶デバイスで構成されたストレージ装置を備えたストレージシステムの制御方法の制御方法に於いて、
元データを分割した後に、冗長度を可変な符号を用いて分割数以上の複数の符号化データを生成する符号化ステップと、
符号化ステップにおける冗長度を変化させる冗長度制御ステップと、
複数の符号化データを、複数の記憶デバイスに分配して記憶させる分配処理ステップと、
記憶デバイスから少なくとも前記元データの分割数分の符号化データを回収して元データを復号する復号ステップと、
を備えたことを特徴とする。
【００２６】
（プログラム）
本発明はストレージ制御プログラムを提供する。本発明のストレージ制御プログラムは、元データを分散して記憶する複数の記憶デバイスとを備えたストレージシステムのコンピュータに、
元データを分割した後に、冗長度を可変な符号を用いて分割数以上の複数の符号化データを生成する符号化ステップと、
符号化ステップにおける冗長度を変化させる冗長度制御ステップと、
複数の符号化データを、前記複数の記憶デバイスに分配して記憶させる分配処理ステップと、
記憶デバイスから少なくとも元データの分割数分の符号化データを回収して元データを復号する復号ステップと、
を実行させることを特徴とする。
【発明の効果】
【００２７】
本発明によれば、従来のＲＡＩＤと比較して同等の信頼度を保ちつつ、磁気ディスク装置等のストレージを構成する複数の記憶デバイスの利用効率を上げることができる。例えば記憶デバイスに分配するデータ量を可変することが可能であるため、高性能の記憶デバイスと低性能の記憶デバイスとを一緒に組合わせてストレージ装置を構成することができ、同じ性能の記憶デバイスを必要とした従来システムに比べ、２個以上のデータが不良になった場合でもデータの復旧可能な冗長度の高い廉価にストレージシステムを構築することができる。
【００２８】
また本発明では、１台以上の記憶デバイスが同時に故障した場合でもデータの復旧が可能なように、冗長度（符号化率）を変更可能な符号化手法によりデータに対して冗長なデータを付け加えた符号化データを生成し、複数の記憶デバイスに分散記憶しており、複数の記憶デバイスで同時に故障が発生したとしても、残りの記憶デバイスから復旧に必要な数の符号化データを集めることができれば、元データの復旧が可能であり、ストレージシステムの信頼性を向上することができる。
【００２９】
また本発明はデータを符号化する際に、重要なデータは冗長率を高くし、あまり重要でないデータは冗長率を低くすることで、冗長率を固定した場合に比べ、必要以上に符号化データの数を増やすことなく、効率よく符号化データを記憶デバイに分散配置して元データを復号することができる。
【００３０】
また本発明は、複数の記憶デバイスに分配する符号化データの数を各記憶デバイスの信頼度に応じて決めており、信頼性が高いほど多くの符号化データを分配し、信頼性が低い場合には分配する符号化データの数を少なくすることで、記憶デバイスの故障による符号化データの消失を最小限に抑え、安定して元データの復号に必要な数の符号化データを集めることができるようにし、高い信頼性を保証しつつ、データの冗長率を抑えることができる。
【００３１】
また複数の記憶デバイスに符号化データを分配する際には、各記憶デバイスの稼働時間や使用可能容量などに応じて分配する符号化データの数を動的に決定することで、故障時の信頼性をさらに上げることができる。
【００３２】
更に、記憶デバイスに分配する符号化データの数（データ量）が可変であるので、高性能な記憶デバイスと低性能なデバイス、或いは使用可能容量の多い記憶デバイスと少ない記憶デバイスを一緒に組合わせて使用することができ、記憶デバイスの利用効率を高め、同じ性能の記憶デバイスを必要とした従来システムに比べ、廉価にストレージシステムを構築することができる。
【発明を実施するための最良の形態】
【００３３】
図１は本発明によるストレージシステムの一実施形態を示した機能構成のブロック図である。図１において、本実施形態のストレージシステムは、コントローラ１０と複数の記憶デバイスとして機能する磁気ディスク装置１４−１〜１４−５で構成される。コントローラ１０に対しては上位装置としてサーバ１１が配置され、コントローラ１０はサーバストレージ１２のデータの磁気ディスク装置１４−１〜１４−５に対する書込みと読出しを制御する。
【００３４】
コントローラ１０はサーバ１１から書込コマンドによりファイル書込要求を受信すると、コマンドに続いて受信したファイルを元データとして、冗長度を可変な符号を用いて符号化データに変換した後に、磁気ディスク装置１４−１〜１４−５に分配して分散記憶させる。
【００３５】
またコントローラ１０はサーバ１１からの読出コマンドによりファイル読出要求を受信すると、磁気ディスク装置１４−１〜１４−５にアクセスし、分散記憶している符号化データを回収して元のファイルを復号する。
【００３６】
コントローラ１０には、符号化部２０、冗長度制御部１６、重要度管理テーブル１８、分配処理部２２、分配管理テーブル２４及び復号部２６が設けられている。
【００３７】
このうちコントローラ１０の基本的な機能は、符号化部２０、分配処理部２２及び復号部２６で構成されている。符号化部２０は、サーバ１１から受信した利用者の元データとなるファイルを予め定めたブロック数ｎのブロックデータに分割した後に、各ブロックデータを冗長度を可変な符号、即ち後の説明で明らかにされるヘッダと排他論理和データ（ＸＯＲデータ）で構成されるランダムパリティストリーム符号（ＲＰＳ符号）に変換し、分割したブロック数以上の複数の符号化データを生成する。
【００３８】
分配処理部２２は、符号化部２０で生成された複数の符号化データを磁気ディスク装置１４−１〜１４−５に分配して記憶させる。復号部２６は、磁気ディスク装置１４−１〜１４−５から少なくとも元データとなるファイルの分割ブロック数分の符号化データを回収して、元のファイルを復号する。
【００３９】
ここで冗長度制御部１６は、符号化部２０における符号化処理の冗長度を変化させる。冗長度は、元データのブロック分割数をｎ、ランダムパリティストリーム符号により生成される符号化データの数をｍとすると
冗長度Ｑ＝ｍ／ｎ
で表わすことができる。この冗長度Ｑは符号化率Ｒの逆数となる。即ち符号化率Ｒは
符号化率Ｒ＝ｎ／ｍ＝１／Ｑ
と表わすことができる。ここで冗長度Ｑは１以上の値であり、一方、符号化率Ｒは１〜０の間の値である。
【００４０】
このため符号化部２０にあっては、冗長度制御部１６により設定された冗長度Ｑに基づき、元データとして分割したファイルのｎ個のブロックデータから冗長度Ｑに従ったｍ個の符号化データを生成することになる。
【００４１】
更に冗長度制御部１６は、元データとなるファイルの重要度に応じて、符号化部２０における冗長度Ｑを変化させる。即ち、ファイルの重要度が高いほど冗長度Ｑを大きくし、ファイルの重要度が低ければ冗長度を小さくする。
【００４２】
ファイルの重要度の決定は、例えばファイルに含まれるキーワードを使用することができる。また重要度はキーワード以外に、ファイルの更新日時や更新頻度を使用することもできる。
【００４３】
また分配処理部２２にあっては、磁気ディスク装置１４−１〜１４−５に対する符号化データの分配数を、磁気ディスク装置１４−１〜１４−５の信頼度に応じて決定することができる。即ち、磁気ディスク装置の信頼度が高ければ符号化データの分配数を多くし、信頼度が低ければ符号化データの分配数を小さくするように分配する。
【００４４】
磁気ディスク装置１４−１〜１４−５の信頼度は、手動設定するか、あるいは稼動時間に基づいて自動設定することができる。例えば磁気ディスク装置の信頼度の自動設定について、まず稼働率から信頼度を決定した後に、稼動時間に応じて、その値を修正するような処理を行う。更に、符号化データの分配数は磁気ディスク装置の信頼度と使用可能容量に応じて決めてもよい。
【００４５】
復号部２６は、冗長度を可変な符号としてランダムパリティストリーム符号を用いた場合、磁気ディスク装置１４−１〜１４−５から少なくとも分割ブロック数ｎ以上の符号化データを回収し、ガウスの消去法によりヘッダを単位行列化することにより、ｎ個のブロックデータを復号することができる。
【００４６】
図２は図１の実施形態が適用されるストレージシステムのハードウェア環境のブロック図である。コントローラ１０には、チャネルアダプタ２８、ＣＰＵ３０、ＲＯＭ３２、ＲＡＭ３４、デバイスアダダプタ３５及びキャッシュメモリ３６が設けられる。
【００４７】
チャネルアダプタ２８には例えば上位装置としてのサーバ１１−１，１１−２が接続され、サーバ１１−１，１１−２にはそれぞれサーバストレージ１２−１，１２−２が設けられている。
【００４８】
ＣＰＵ３０はＲＯＭ３２に格納された本実施形態によるストレージシステム制御プログラムをＲＡＭ３４に展開して実行することで、図１のコントローラ１０に示した機能を実現する。ＲＡＭ３４は更にデータバッファとして使用され、サーバ１１−１，１１−２側から転送された書込み対象となる元データとしてのファイルを保持して符号化し、また磁気ディスク装置１４−１〜１４−５から回収したデータを保持して復号する際のワーク領域として使用される。
【００４９】
デバイスアダプタ３５には記憶デバイスとして機能する磁気ディスク装置１４−１〜１４−５が接続される。磁気ディスク装置１４−１〜１４−５は例えばブレードストレージとして構築されており、筐体のラックに磁気ディスク装置１４−１〜１４−５を着脱自在に実装している。
【００５０】
なお本実施形態では説明を簡単にするため５台の磁気ディスク装置１４−１〜１４−５を例にとっているが、実際のシステムストレージにあっては多数の磁気ディスク装置を実装することで例えばペタバイトサイズの大きな記憶容量を実現する。またブレードストレージ１５は一種のディスクアレイということができる。
【００５１】
キャッシュメモリ３６にはＣＰＵ３０のキャッシュ制御に基づくキャッシュデータが記憶管理される。本実施形態における元データとしてのファイルを符号化した符号化データの分散記憶と、回収した符号化データの復号は、キャッシュ制御から見て下位のデバイスアダプタ３５側の処理として実行されている。
【００５２】
図３は本発明による符号化処理、分配処理、及び復号のための回収処理の説明図であり、更に図４に、図３の回収処理に続く復号処理を示している。本発明にあっては、図１の符号化部２０において冗長度Ｑを可変な符号としてランダムパリティストリーム符号（ＲＰＳ符号）を使用している。
【００５３】
ランダムパリティストリーム符号は、ＲＡＩＤ６で用いられるリードソロモン符号よりも計算量が少なく、また冗長度Ｑを動的に変更することができるため、複数の磁気ディスク装置にデータを分散記憶するストレージシステムを柔軟に構築することが可能である。
【００５４】
本発明で用いるランダムパリティストリーム符号の符号化は、図３に示すように、元データ３８としてのファイルを予め定めたブロック数ｎに分割して、ブロックデータ４０−１〜４０−ｎを生成する。
【００５５】
実際の装置では例えば分割ブロック数ｎ＝１０２８、ブロックサイズ＝１２８０バイトというように固定設定されており、分割ブロック数ｎとブロックサイズで決まるファイル容量を最大容量として、元データ３８としてのユーザファイルを分割する。またユーザファイルが元データの最大サイズより小さい場合には、空き部分にダミーデータを入れて、一定の分割ブロック数ｎのブロックデータを生成する。
【００５６】
元データ３８を分割ブロック数ｎに分割したブロックデータ４０−１〜４０−ｎは、ヘッダ４４とＸＯＲデータ４６で構成され、冗長度Ｑにより決まるｍ個の符号化データ４２−１〜４２−ｍに変換される。
【００５７】
符号化データ４２−１を例にとると、ヘッダ４４はＸＯＲデータ４６を計算するために使用する元データ３８における分割したブロックデータ４０−１〜４０−ｎの位置を示すｎビットのビットマップデータである。例えば符号化データ４２−１のヘッダ４４は「１００００・・・０００」であり、左端の１ビットのみが「１」で残りは全て「０」となっている。
【００５８】
ＸＯＲデータ４６は、ヘッダ４４のビットマップに従って元データ３８から対応する１または複数のブロックデータを選択して排他論理和（ＸＯＲ）を計算し、ＸＯＲデータ４６としてデータＰ１を計算して格納している。
【００５９】
本実施形態にあっては、ｎ個のブロックデータ４０−１〜４０−ｎに対応した符号化データ４２−１〜４２−ｎとしては、それぞれのヘッダ４４は対応するブロックデータの位置を示すビットを「１」とし、他を全て「０」としており、この結果、ヘッダ４４により１つのブロックデータのみがＸＯＲ計算に使用される。
【００６０】
このためＸＯＲデータ４６におけるＰ１，Ｐ２，Ｐ３，Ｐ４，・・・Ｐｎは、ブロックデータＢＤ１，ＢＤ２，ＢＤ３，ＢＤ４，・・・ＢＤｎと同じデータ、即ちブロックデータそのものである。
【００６１】
一方、分割ブロック数ｎを超える残りの符号化データ４２−（ｎ＋１）〜４２−ｍについては、そのヘッダ４４に２以上のブロックを排他論理和計算に指定するためにビット「１」をセットしており、このヘッダ４４におけるビットマップは例えばランダムに発生している。
【００６２】
また、符号化データ４２−（ｎ＋１）〜４２−ｍにおけるヘッダ４４のビットマップとしては、後の説明で明らかにする復号処理の際の単位行列化に変換し易い数値を使用することが望ましく、この数値としては、例えば
１１１１・・・１１１
０１０１・・・１０１
１０１０・・・０１０
００００・・・１１１
１１１１・・・０００
などがある。
【００６３】
符号化処理により生成されたｍ個の符号化データ４２−１〜４２−ｍは、磁気ディスク装置１４−１〜１４−Ｎに均等もしくは信頼度に応じて分散記憶されて記憶される。
【００６４】
磁気ディスク装置１４−１〜１４−Ｎに分散記憶された符号化データに基づく復号は、符号化データの回収４８を行って回収データ５０として符号化データ４２−１〜４２−ｋを求め、このｋ個の符号化データから図４に示すように、元のブロックデータ４０−１〜４０−ｎを復号データ５４として復号することができる。
【００６５】
図４における復号処理は、回収データ５０として得られたｋ個の符号化データ４２−１〜４２−ｋにおけるヘッダ４４に対し、ガウスの消去法による単位行列化５２の処理を行うことで、これに付加しているＸＯＲデータ４６に対応した値Ｐ１〜Ｐｎから元のブロックデータＢＤ１〜ＢＤｎとして、ブロックデータ４０−１〜４０−ｎを復号することができる。
【００６６】
図５は本発明による符号化処理、分配処理、及び復号処理を具体的に示している。図５において、元データ３８は例えば２バイトのブロックデータ４０−１〜４０−４に分割される。ブロックデータ４０−１〜４０−４は１６進で例えば「５２」、「７０」、「７３」、「３０」である。
【００６７】
続いて符号化を行い、冗長度Ｑにより決まるｍ個の符号化データ４２−１，４２−２，４２−３，４２−４，４２−５・・・に変換する。符号化データ４２−１を例にとると、符号化データ４２−１はヘッダ４４とＸＯＲデータ４６で構成され、ヘッダ４４はＸＯＲデータ４６を計算するために使用する元データ３８における分割したブロックデータ４０−１〜４０−ｎの位置を示す４ビットのビットマップデータである。
【００６８】
符号化データ４２−１のヘッダ４４は「１０１０」であり、ヘッダ４４のビットマップに従って元データ３８から対応する１番目と３番目のブロックデータ４０−１，４０−３を選択して排他論理和（ＸＯＲ）を１６進計算で「５２（＋）７３＝２１」と求め、ＸＯＲデータ４６として「２１」を得ている。
【００６９】
このようにして変換された符号化データ４２−１，４２−２，４２−３，４２−４，４２−５・・・は複数の磁気ディスク装置に分散記憶され、その後に、読出し要求を受けると復号に必要な回収データ５０として４個の符号化データ４２−１〜４２−４が読み出される。
【００７０】
復号処理は、回収データ５０として得られた４個の符号化データ４２−１〜４２−４におけるヘッダ４４に対し、ガウスの消去法による単位行列化５２の処理を行って単位行列５５とすることで、単位行列５５に付加しているＸＯＲデータ４６から元のブロックデータ４０−１〜４０−４の値である「５２」、「７０」、「７３」、「３０」を復号することができる。
【００７１】
ここで図４の復号処理の際に、図３に示すように磁気ディスク装置１４−１〜１４−Ｎのうちの例えば磁気ディスク装置１４−３で故障などにより符号化データの消失が発生したとしても、図４のように復号側で単位行列化５２によりヘッダの逆行列が得られれば、元のブロックデータ４０−１〜４０−ｎを復号することができる。
【００７２】
即ち、本発明のランダムパリティストリーム符号を用いたデータの分散記憶と、一部のデータが消失した開始による復号にあっては、冗長度Ｑにより元データ３８のブロックデータ４０−１〜４０−ｎの分割ｎより数パーセント程度、余分となるｍ個の符号化データを生成して、これを分散記憶しておくことで、元のデータを復号するために必要な符号化データの数をｋ個とすると、仮に磁気ディスク装置が２台以上故障したとしても、残りの正常な磁気ディスク装置から合計でｋ個の符号化データを集めることができれば、元データを復号することができる。
【００７３】
このことから本発明にあっては、磁気ディスク装置に分散記憶するデータの重要度に応じて動的な冗長度（符号化率）の決定処理を行うようにしている。
【００７４】
ランダムパリティストリーム符号を用いた元データを復号可能な符号化データの数ｋは、生成する符号化データの数ｍに応じて変わるため、障害発生時におけるデータの安全性も変化する。符号化データの数ｍを多くするほど冗長度Ｑが増え、分散記憶に必要な磁気ディスク装置の総容量が増えることになるが、より確実に元データを復号することが可能になる。つまり符号化データの数ｍによって磁気ディスク装置の障害に対する耐性を調整することができる。
【００７５】
またランダムパリティストリーム符号における符号化の冗長度Ｑは分散記憶するファイルごとに変更することができるため、元データとなるファイルの重要度に応じて冗長度Ｑを変更するように制御する。即ち、重要なファイルについては冗長度Ｑを増やして障害への耐性を上げ、それほど重要でないファイルについては冗長度Ｑを減らして磁気ディスク装置の障害に対する耐性を下げ、必要とする磁気ディスク装置の容量を減らすことができる。
【００７６】
具体的には、元データとしてのファイルごとに予め重要度のレベルとしてＶ１〜Ｖｎを決めておき、予め決定した重要度Ｖｉに応じて、生成する符号化データの数ｍを次式により決定する。
【００７７】
【数１】
0004718340.tif 000002
この（１）式により符号化データの数ｍを求めるための重要度Ｖｉの決め方は、利用者が手動設定で行ってもよいし、自動的に設定してもよい。重要度の自動設定としては、例えばファイルの重要度を決定するためにキーワードをファイルに対応して登録しておき、ファイルを符号化する際に、ファイルの保有するキーワードと予め登録しているキーワードとの比較を行い、該当するキーワードがファイルに含まれている場合には、予め設定した重要度をキーワードに応じて設定する。
【００７８】
この場合、自動的に決定された重要度が、利用者が自動設定した重要度と大きく異なるような場合には、ユーザに自動設定された重要度を表示し、ユーザがいずれかを選択するようにしてもよい。
【００７９】
更にファイルの重要度を決定するパラメータとしては、ファイルの最終更新日やアクセス頻度などを使用することもできる。これらファイルの更新日時やアクセス頻度については、独立に重要度を例えばテーブル情報などにより設定して準備してもよいし、例えばキーワードに基づいて決定した重要度を最終更新日やアクセス頻度などに基づいて修正するようにしてもよい。
【００８０】
元データの重要度に応じて設定される符号化データの数ｍは、冗長度Ｑ（＝ｍ／ｎ）を変えることを意味し、重要度に応じて代わる冗長度Ｑの範囲は、冗長度を大きくしすぎると磁気ディスク装置に分散記憶するデータ量が増加して利用効率が低下することから、実用的な範囲としては、例えば１．１〜１．５程度とする。
【００８１】
図６は符号化データ数ｍの算出に使用されるファイルの重要度を管理する図１の重要度管理テーブル１８の説明図である。図６（Ａ）の重要度管理テーブル１８−１は、キーワード７６と重要度７８で構成されており、重要度を示すキーワードＷ１〜Ｗ５のいずれかをファイルに格納しておく。したがって、ファイルを符号化する際には、ファイルに対応したいずれかのキーワードを抽出し、重要度管理テーブル１８−１の参照により対応する重要度を設定する。
【００８２】
図６（Ｂ）の重要度管理テーブル１８−２はファイルの最終更新日８０と重要度７８で構成されており、最終更新日８０として例えば当日、３日未満、１週間未満、１ヶ月未満、３ヶ月未満などが設定され、これに対応して重要度Ｖ１〜Ｖ５が設定されている。この最終更新日８０は、最終更新日が近いほど重要度７８が高い値を持つことになる。
【００８３】
図６（Ｃ）の重要度管理テーブル１８−３は更新頻度８２と重要度７８から構成されており、更新頻度８２としては所定の更新頻度の範囲が５段階に分けて設定されており、更新頻度が多いほど重要度７８が高い値を設定している。
【００８４】
この図６（Ａ）（Ｂ）（Ｃ）に示した重要度管理テーブル１８−１，１８−２，１８−３については、それぞれ独立に使用して重要度を設定してもよいし、例えば図６（Ａ）の重要度管理テーブル１８−１を使用してファイルのキーワード７６から重要度７８を決定した後、最終更新日が近ければキーワード７６により設定した重要度７８の値を増加するように修正し、最終更新日が古ければ小さくするように修正し、更にファイルの更新頻度により、更新頻度が高ければ重要度を高くするように修正し、更新頻度が低ければ重要度を低くするように修正する方法であってもよい。
【００８５】
次に図１の分配処理部２２における磁気ディスク装置１４−１〜１４−５の信頼度による符号化データの分配処理を説明する。従来のＲＡＩＤやミラーリングでは、ストレージシステムを構成するためには同じ容量を持った磁気ディスク装置が必要になる。更に、データを確実に保存するためには全ての磁気ディスク装置が同等の性能であることが望まれる。
【００８６】
これに対し本実施形態にあっては、元のデータを復号するためにはｋ個以上の符号化データを磁気ディスク装置１４−１〜１４−５から集めることができればよいだけであり、各磁気ディスク装置１４−１〜１４−５がいくつの符号化データを持っているかは関係ない。
【００８７】
そこで本実施形態の符号化データの分配処理にあっては、符号化データを磁気ディスク装置１４−１〜１４−５に分配する際に、信頼度の高い磁気ディスク装置には多くの符号化データを分配して保存し、信頼度の低い磁気ディスク装置には少ない符号化データを分配して保存する。これにより、同じ性能の磁気ディスク装置を用意する必要がなく、より安価な磁気ディスク装置を使用したストレージシステムを構築することができる。
【００８８】
図７は磁気ディスク装置１４−１〜１４−５の信頼度が異なった場合のコントローラ１０による符号化データ６６の分配結果の説明図であり、であり、例えば磁気ディスク装置１４−１〜１４−３の信頼度Ｒ１〜Ｒ３が高く、磁気ディスク装置１４−４，１４−５の信頼度Ｒ４，Ｒ５が低かった場合である。
【００８９】
このような場合には、コントローラ１０で元データ６４から符号化した２１個の符号化データ６６について、信頼度Ｒ１〜Ｒ３が高い磁気ディスク装置１４−１〜１４−３には５つずつの分配符号化データ６８−１〜６８−３をぞれぞれ格納し、信頼度Ｒ４，Ｒ５が低い磁気ディスク装置１４−４，１４−５については３つずつの分配符号化データ６８−４，６８−５を格納する。
【００９０】
このように磁気ディスク装置に格納する符号化データの分配数を決める信頼度としては、磁気ディクス装置の信頼性の指標として一般に使用される稼動率の値を用いる。稼動率Ａｉは、平均故障時間ＭＴＢＦ（Ｍｅａｎ  Ｔｉｍｅ  Ｂｅｔｗｅｅｎ  Ｆａｉｌｕｒｅ）と平均修理時間ＭＴＴＲ（Ｍｅａｎ  Ｔｉｍｅ  Ｔｏ  Ｒｅｐａｒｅ）から次式により求められる。
【００９１】
【数２】
0004718340.tif 000003
ここで平均故障時間ＭＴＢＦは平均して何時間に一度故障するかを表す指標であり、次式で求められる。
【００９２】
【数３】
0004718340.tif 000004
また平均修理時間ＭＴＴＲは故障が発生したときに修理するのにかかる時間を表しており、次式で求めることができる。
【００９３】
【数４】
0004718340.tif 000005
したがって、磁気ディスク装置の信頼度Ｒｉは、前記（２）式の稼動率Ａｉを用いて次式で求められる値とする。
【００９４】
【数５】
0004718340.tif 000006
更に、符号化により生成される符号化データの数がｍ個であり、ｎ台の磁気ディスク装置の信頼度がそれぞれＲｉであるならば、磁気ディスク装置に分配する符号化データの数Ｄｉは次式により決定できる。
【００９５】
【数６】
0004718340.tif 000007
ここで（６）式の生成された符号化データの個数ｍは、前記（１）式により、元データとなるファイルの重要度Ｖｉを用いて表すことができるため、最終的には各磁気ディスク装置に分散される符号化データの数Ｄｉは、ファイルの重要度Ｖｉと磁気ディスク装置の信頼度Ｒｉを用いて次式で表すことができる。
【００９６】
【数７】
0004718340.tif 000008
以上の説明にあっては、磁気ディスク装置の信頼度Ｒｉを決定するために磁気ディスク装置の稼動率Ａｉを用いたが、磁気ディスク装置１４−１〜１４−５の稼動時間Ｔｉや使用可能な容量Ｃｉなどにより、分配する符号化データの数ｍを決めることもできる。
【００９７】
例えば磁気ディスク装置の稼動時間Ｔｉを用いる場合には、前記（５）式で算出された磁気ディスク装置の信頼度Ｒｉを次式で修正する。
【００９８】
【数８】
0004718340.tif 000009
また磁気ディスク装置の使用可能容量Ｃｉを用いる場合には、前記（６）式を次式に置き換えればよい。
【００９９】
【数９】
0004718340.tif 000010
更に本発明にあっては、コントローラ１０に対し接続している磁気ディスク装置の台数Ｎが変更された際には、前記（６）式に従って変更後の磁気ディスク装置に対する符号化データ分配数Ｄｉを再計算し、符号化データを再分配することになる。
【０１００】
図８は図１の分配処理部２２で磁気ディスク装置１４−１〜１４−５に符号化データを分配するために使用する分配管理テーブル２４の説明図である。図８の分配管理テーブル２４は、ローカルストレージ番号７０、稼動率７２、信頼度７４及び分配データ数７６で形成されており、（２）式で算出した稼動率７２から（５）式により信頼度７４を求めており、最終的に（６）式で算出された分配データ数７６を格納している。
【０１０１】
更に、必要があれば、磁気ディスク装置１４−１〜１４−５の稼動時間Ｔｉを用いた信頼度の修正や、磁気ディスク装置の使用可能容量Ｃｉを用いた（９）式による計算で求めた分配データ数をテーブルに格納し、これに基づいて磁気ディスク装置に符号化データを分配するようにしてもよい。
【０１０２】
図９は図１のコントローラ１０によるストレージシステム制御処理のフローチャートである。図９において、ステップＳ１でサーバ１１からのファイル保存要求（ライト要求）の有無をチェックしており、ファイル保存要求を受けると、ステップＳ２でファイルをコントローラ１０内のメモリに保存する。続いてステップＳ３でファイルの符号化処理を実行した後、ステップＳ４で符号化データを磁気ディスク装置１４−１〜１４−５に分配する分配処理を行う。
【０１０３】
続いてステップＳ５で磁気ディスク装置に構成変化、即ち台数の変化があるか否かチェックし、もしあった場合にはステップＳ４に戻り、符号化データの配分数を再計算し、符号化データ分の再分配を行う。
【０１０４】
磁気ディスク装置の構成に変化がなければ、ステップＳ６でサーバ１１からのファイル復号要求の有無をチェックし、ファイル復号要求（リード要求）があった場合には、ステップＳ７で磁気ディスク装置１４−１〜１４−５から分散記憶している符号化データを回収し、ステップＳ８で復号部２６がガウス消去法によりヘッダを単位行列化して元データのファイルを復号し、サーバに応答転送する。このようなステップＳ１〜Ｓ８の処理を、ステップＳ９で停止指示があるまで繰り返す。
【０１０５】
図１０は図９のステップＳ３における符号化処理のフローチャートである。図９において、符号化処理は、ステップＳ１で元データとしてのファイルの重要度の決定処理を行った後、ステップＳ２で、決定した重要度から前記（１）式に従って符号化データ数ｍを決定する。
【０１０６】
続いてステップＳ３で、処理対象となる元データであるファイルをｎブロック、例えばｎ＝１０２８ブロックに分割した後、ステップＳ４で符号化データ数ｍ分のヘッダを生成し、ステップＳ５でヘッダのビット１に対応するブロックを抽出して排他論理和を計算することでＸＯＲデータを生成する。そしてステップＳ６で、ヘッダとＸＯＲデータを組み合わせて符号化データを生成する。
【０１０７】
続いてステップＳ７でｍ個の符号化データを生成したか否かチェックし、生成していなければステップＳ５に戻り、次のヘッダについて同様にして符号化データを生成し、ｍ個を生成すると、符号化処理を終了して図１０のメインルーチンにリターンする。
【０１０８】
図１１は図１０のステップＳ１の符号化処理に用いる重要度の決定処理のフローチャートである。図１１において、重要度決定処理は、ステップＳ１でユーザが予め設定した重要度Ｖｕｓｅｒを取り込み、ステップＳ２で自動設定重要度ＶをＶ＝０に初期化する。
【０１０９】
続いてステップＳ３で処理対象となるファイルにキーワードがあるか否かチェックし、キーワードがあった場合には、ステップＳ４で例えば図６（Ａ）に示したような重要度管理テーブル１８−１を参照し、キーワードに対応した重要度Ｖを取得する。
【０１１０】
続いてステップＳ５でファイル最終更新日が新しいか否かチェックし、新しい場合にはステップＳ６に進んで、ステップＳ４で取得した重要度Ｖを所定量もしくは所定割合増加させる。一方、ファイル更新日が古い場合には、ステップＳ７に進み、重要度Ｖを所定量もしくは所定割合、減らす。
【０１１１】
次にステップＳ８でデータの更新頻度が高いか否かチェックする。更新頻度が高い場合には、ステップＳ９で重要度Ｖを増やすように修正する。更新頻度が低ければ、ステップＳ１０で重要度Ｖを減らすように修正する。
【０１１２】
続いてステップＳ１１で、利用者が設定した重要度ＶｕｓｅｒとステップＳ３〜Ｓ１０の処理により自動決定した重要度Ｖを比較し、ステップＳ１２で両者が大きく異なることを判別した場合には、ステップＳ１３でサーバを経由してユーザ端末の画面上に自動決定した重要度を表示し、利用者の確認を取って、ステップＳ１４で重要度を確定する。両者の差が大きくない場合には、そのままステップＳ１４で重要度を確定する。なお、ステップＳ１１〜Ｓ１３の処理は省略しても良い。
【０１１３】
図１２は図９のステップＳ４の符号化データの分配処理のフローチャートである。図１２において、符号化データの分配処理は、ステップＳ１で磁気ディスク装置の稼動率Ａｉを前記（２）式の演算により取得し、ステップＳ３で磁気ディスク装置の信頼度Ｒｉを前記（５）式から算出する。
【０１１４】
続いてステップＳ３で磁気ディスク装置の稼動時間Ｔｉによる修正の有無をチェックし、修正ありの場合にはステップＳ４に進み、磁気ディスク装置の稼動時間Ｔｉを取得し、ステップＳ５で前記（８）式により信頼度Ｒｉを修正計算する。
【０１１５】
続いてステップＳ６で磁気ディスク装置の使用可能容量による修正の有無をチェックし、修正ありであれば、ステップＳ７で磁気ディスク装置の使用可能容量Ｃｉを取得し、ステップＳ８で前記（９）式により、信頼度Ｒｉと使用可能容量Ｃｉから磁気ディスク装置に送信する符号化データ数Ｄｉを算出する。
【０１１６】
一方、ステップＳ６で磁気ディスク装置の使用可能容量による修正がなかった場合には、ステップＳ９に進み、信頼度Ｒｉから前記（６）式により符号化データの分配数Ｄｉを算出する。なお、ステップＳ８，Ｓ９における符号化データ分配数の算出は、（６）式における符号化データ数ｍの代わりに、（７）式のように元データとなるファイルの重要度Ｖｉによる（１）式から算出するようにしてもよい。
【０１１７】
また本発明は図１のコントローラ１０のコンピュータ（ＣＰＵ）により実行されるストレージシステム制御プログラムを提供するものであり、このプログラムは図９，図１０，図１１及び図１２のフローチャートに示した内容を持つ。
【０１１８】
また本発明はストレージシステム制御プログラムを格納したコンピュータ可読の記録媒体を提供するものであり、この記録媒体としてはＣＤ−ＲＯＭ、フロッピィディスク（Ｒ）、ＤＶＤディスク、光ディスク、ＩＣカードなどの可搬型記憶媒体や、コンピュータシステムの内外に備えられたハードディスクなどの記録装置の他、回線を介してプログラムを保持するデータベース、あるいは他のコンピュータシステム並びにそのデータベース、更に回線上の伝送媒体を含むものである。
【０１１９】
なお、本実施形態にあっては、（１）式のように、ブロック分割数ｎを固定し、元データの重要度Ｖｉに応じて符号化データの数ｍを決めているが、即ち冗長度Ｑ（＝ｍ／ｎ）を変えているが、ブロック分割数ｎを元データの重要度に応じて
ｎ＝Ｇ（Ｖｉ）
として決めてもよい。この関係は、元データの重要度が高いほど、ブロック分割数を増加させる。
【０１２０】
この場合、冗長度Ｑを例えば１．１〜１．５の範囲で固定値として設定しておくことで、ブロック分割数ｎが重要度Ｖｉに応じて決まれば、符号化データ数ｍは固定設定した冗長度Ｑから一義的に決まる。
【０１２１】
また上記の実施形態にあっては、記憶デバイスとして磁気ディスク装置を例にとるものであったが、これ以外に、光ディスク装置、光磁気ディスク装置、半導体メモリ装置等適宜の記憶デバイスであっても良い。
【０１２２】
また本発明は、その目的と利点を損なうことのない適宜の変形を含み、更に上記の実施形態に示した数値による限定は受けない。
【０１２３】
ここで本発明の特徴をまとめて列挙すると次の付記のようになる。
（付記）
（付記１）
複数の記憶デバイスで構成されたストレージ装置を備えたストレージシステムに於いて、
元データを分割した後に、冗長度を可変な符号を用いて分割数以上の複数の符号化データを生成する符号化部と、
前記符号化部における冗長度を変化させる冗長度制御部と、
前記複数の符号化データを、前記複数の記憶デバイスに分配して記憶させる分配処理部と、
前記記憶デバイスから少なくとも前記元データの分割数分の符号化データを回収して前記元データを復号する復号部と、
を備えたことを特徴とするストレージシステム。（１）
【０１２４】
（付記２）
付記１記載のストレージシステムに於いて、
前記符号化部は、
元データをｎ個のブロックデータに分割するブロック分割部と、
前記ｎ個のブロックデータの中の排他論理和をとる１又は複数のブロックを指定するビットマップを配置したヘッダと、前記ヘッダ部で指定された１又は複数のブロックデータの排他論理和データから構成される符号化データを、冗長度Ｑに応じた数ｍだけ生成する符号化データ生成部と、
を備え、
前記復号部は、前記複数の記憶デバイスから前記ブロック数ｎ以上の符号化データを回収し、前記ヘッダ部を単位行列化することにより前記ｎ個のブロックデータを復号することを特徴とするストレージシステム。（２）
【０１２５】
（付記３）
付記１記載のストレージシステムに於いて、前記冗長度制御部は、前記元データの重要度に応じて前記符号化部における冗長度を変化させることを特徴とするバックアップ方法。
【０１２６】
（付記４）
付記３記載のストレージシステムに於いて、前記冗長度制御部は、前記元データの重要度を手動設定、若しくは前記元データに含まれるキーワード、更新日時、又は更新頻度に応じて自動設定することを特徴とするストレージシステム。
【０１２７】
（付記５）
付記４記載のストレージシステムに於いて、前記冗長度制御部は、重要度の自動設定として、元データに含まれるキーワードから対応する重要度を設定した後、更新日時及び又は更新頻度に応じて前記重要度を修正することを特徴とするストレージシステム。
【０１２８】
（付記６）
付記１記載のストレージシステムに於いて、前記分配処理部は、前記複数の符号化データの分配数を、前記複数の記憶デバイスの信頼度及び又は使用可能容量に応じて決定することを特徴とするストレージシステム。
【０１２９】
（付記７）
付記６記載のストレージシステムに於いて、前記分配処理部は、前記記憶デバイスの信頼度を、手動設定若しくは稼働時間に基づいて自動設定することを特徴とするストレージシステム。
【０１３０】
（付記８）
付記６記載のストレージシステムに於いて、前記分配処理部は、前記記憶デバイスの重要度を稼働時間に応じて設定した後に、前記記憶デバイスの使用可能容量に応じて修正することを特徴とするストレージシステム。
【０１３１】
（付記９）
付記１記載のストレージシステムに於いて、前記記憶デバイスが新規追加または削除された時には、変更後の記憶デバイスに基づいて、前記符号化部で符号化データを再生成した後に前記分配処理部で再分配することを特徴とするストレージシステム。
【０１３２】
（付記１０）
複数の記憶デバイスで構成されたストレージ装置を備えたストレージシステムの制御方法に於いて、
元データを分割した後に、冗長度を可変な符号を用いて分割数以上の複数の符号化データを生成する符号化ステップと、
前記符号化ステップにおける冗長度を変化させる冗長度制御ステップと、
前記複数の符号化データを、前記複数の記憶デバイスに分配して記憶させる分配処理ステップと、
前記記憶デバイスから少なくとも前記元データの分割数分の符号化データを回収して前記元データを復号する復号ステップと、
を備えたことを特徴とするストレージシステムの制御方法。（４）
【０１３３】
（付記１１）
付記１０記載のストレージシステムの制御方法に於いて、
前記符号化ステップは、
元データをｎ個のブロックデータに分割するブロック分割ステップと、
前記ｎ個のブロックデータの中の排他論理和をとる１又は複数のブロックを指定するビットマップを配置したヘッダと、前記ヘッダステップで指定された１又は複数のブロックデータの排他論理和データから構成される符号化データを、冗長度Ｑに応じた数ｍだけ生成する符号化データ生成ステップと、
を備え、
前記復号ステップは、前記複数の記憶デバイスから前記ブロック数ｎ以上の符号化データを回収し、前記ヘッダ部を単位行列化することにより前記ｎ個のブロックデータを復号することを特徴とするストレージシステムの制御方法。
【０１３４】
（付記１２）
付記１０記載のストレージシステムの制御方法に於いて、前記冗長度制御ステップは、前記元データの重要度に応じて前記符号化ステップおける冗長度を変化させることを特徴とするバックアップ方法。
【０１３５】
（付記１３）
付記１２記載のストレージシステムの制御方法に於いて、前記冗長度制御ステップは、前記元データの重要度を手動設定、若しくは前記元データに含まれるキーワード、更新日時、又は更新頻度に応じて自動設定することを特徴とするストレージシステムの制御方法。
【０１３６】
（付記１４）
付記１３記載のストレージシステムの制御方法に於いて、前記冗長度制御ステップは、重要度の自動設定として、元データに含まれるキーワードから対応する重要度を設定した後、更新日時及び又は更新頻度に応じて前記重要度を修正することを特徴とするストレージシステムの制御方法。
【０１３７】
（付記１５）
付記１１記載のストレージシステムの制御方法に於いて、前記分配処理ステップは、前記複数の符号化データの分配数を、前記複数の記憶デバイスの信頼度及び又は使用可能容量に応じて決定することを特徴とするストレージシステムの制御方法。
【０１３８】
（付記１６）
付記１５記載のストレージシステムの制御方法に於いて、前記分配処理ステップは、前記記憶デバイスの信頼度を、手動設定若しくは稼働時間に基づいて自動設定することを特徴とするストレージシステムの制御方法。
【０１３９】
（付記１７）
付記１５記載のストレージシステムの制御方法に於いて、前記分配処理ステップは、前記記憶デバイスの重要度を稼働時間に応じて設定した後に、前記記憶デバイスの使用可能容量に応じて修正することを特徴とするストレージシステムの制御方法。
【０１４０】
（付記１８）
付記１０記載のストレージシステムの制御方法に於いて、前記記憶デバイスが新規追加または削除された時には、変更後の記憶デバイスに基づいて、前記符号化ステップで符号化データを再生成した後に前記分配処理ステップで再分配することを特徴とするストレージシステムの制御方法。
【０１４１】
（付記１９）
元データを記憶するメインストレージ装置と、前記ストレージ装置のデータを分散して記憶する複数の記憶デバイスとを備えたストレージシステムのコンピュータに、
元データを分割した後に、冗長度を可変な符号を用いて分割数以上の複数の符号化データを生成する符号化ステップと、
前記符号化ステップにおける冗長度を変化させる冗長度制御ステップと、
前記複数の符号化データを、前記複数の記憶デバイスに分配して記憶させる分配処理ステップと、
前記記憶デバイスから少なくとも前記元データの分割数分の符号化データを回収して前記元データを復号する復号ステップと、
を実行させることを特徴とするストレージ制御プログラム。（５）
【０１４２】
（付記２０）
付記１９記載のストレージ制御プログラムに於いて、
前記符号化ステップは、
元データをｎ個のブロックデータに分割するブロック分割ステップと、
前記ｎ個のブロックデータの中の排他論理和をとる１又は複数のブロックを指定するビットマップを配置したヘッダと、前記ヘッダステップで指定された１又は複数のブロックデータの排他論理和データから構成される符号化データを、冗長度Ｑに応じた数ｍだけ生成する符号化データ生成ステップと、
を備え、
前記復号ステップは、前記複数の記憶デバイスから前記ブロック数ｎ以上の符号化データを回収し、ガウスの消去法により前記ヘッダステップを単位行列化することにより前記ｎ個のブロックデータを復号することを特徴とするストレージ制御プログラム。
【図面の簡単な説明】
【０１４３】
【図１】本発明のストレージシステムの機能構成のブロック図
【図２】図１のストレージシステムが実現されるハードウェア環境のブロック図
【図３】本発明による符号化処理、分配処理及び復号のための回収処理の説明図
【図４】図３の回収処理に続く復号処理の説明図
【図５】本発明による符号化処理と復号処理の具体的な説明図
【図６】図１の重要度管理テーブルの説明図
【図７】信頼度に応じて磁気ディスク装置に符号化データを配分した配分処理の説明図
【図８】図１の分配管理テーブルの説明図
【図９】本発明によるストレージシステム制御処理のフローチャート
【図１０】図９のステップＳ３における符号化処理のフローチャート
【図１１】図１０のステップＳ１における重要度決定処理のフローチャート
【図１２】図９のステップＳ４における分配処理のフローチャート
【図１３】ＲＡＩＤ１を用いた従来の分散ストレージの説明図
【図１４】ＲＡＩＤ５を用いた従来の分散ストレージの説明図
【図１５】ＲＡＩＤ６を用いた従来の分散ストレージの説明図
【符号の説明】
【０１４４】
１０：コントローラ
１１−１，１１−２：サーバ
１２−１，１２−２：サーバストレージ
１４−１〜１４−５：磁気ディスク装置
１６：冗長度制御部
１８，１８−１〜１８−３：重要度管理テーブル
２０：符号化部
２２：分配処理部
２４：分配管理テーブル
２６：復号部
３０：ＣＰＵ
２８：チャネルアダプタ
３２：ＲＯＭ
３４：ＲＡＭ
３５：デバイスアダプタ
３６：キャッシュメモリ
３８，６４：元データ
４０−１〜４０−ｎ：ブロックデータ
４２−１〜４２−ｍ，６６：符号化データ
４４：ヘッダ
４６：ＸＯＲデータ
５０：回収データ
５２：単位行列化
５５：単位行列
【図１】
0004718340.tif 000011
【図２】
0004718340.tif 000012
【図３】
0004718340.tif 000013
【図４】
0004718340.tif 000014
【図５】
0004718340.tif 000015
【図６】
0004718340.tif 000016
【図７】
0004718340.tif 000017
【図８】
0004718340.tif 000018
【図９】
0004718340.tif 000019
【図１０】
0004718340.tif 000020
【図１１】
0004718340.tif 000021
【図１２】
0004718340.tif 000022
【図１３】
0004718340.tif 000023
【図１４】
0004718340.tif 000024
【図１５】
0004718340.tif 000025