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