(57)【特許請求の範囲】
【請求項１】
データ領域の数、パリティ領域の数およびデータの冗長度を示す信頼性指数を取得し、
データおよびパリティの記憶領域への配置パターンであり、複数のデータのうちの全てのデータからではなく一部のデータから前記パリティが計算されることを含む、前記複数のデータを冗長化して記憶するためのローカルパリティレイアウトを、前記複数のデータのうちローカルパリティを計算するデータ領域の数である計算範囲の長さが異なる複数のローカルパリティレイアウトを組み合わせることにより作成するにあたり、
前記複数のローカルパリティレイアウトのそれぞれのデータ領域の数が、取得した前記データ領域の数であり、かつ、
前記複数のローカルパリティレイアウトのそれぞれのパリティ領域の数の総和が、取得した前記パリティ領域の数であり、かつ、
前記複数のローカルパリティレイアウトのそれぞれの信頼性指数の総和が、取得した前記信頼性指数の数であることを満たす前記複数のローカルパリティレイアウトから、前記ローカルパリティレイアウトを作成する、
処理をコンピュータに実行させることを特徴とするパリティレイアウト決定プログラム。
【請求項２】
前記コンピュータに、
前記ローカルパリティレイアウトが複数作成された場合、
前記ローカルパリティレイアウト毎に、当該ローカルパリティレイアウトのデータ領域およびパリティ領域の容量に対して、前記データ領域または前記パリティ領域に記憶される情報を復旧するための平均データ量の比率を示すリカバリ効率を算出し、
前記算出したリカバリ効率が最もよいローカルパリティレイアウトを選択する、
処理を実行させることを特徴とする請求項１に記載のパリティレイアウト決定プログラム。
【請求項３】
データ領域の数、パリティ領域の数およびデータの冗長度を示す信頼性指数を取得し、
データおよびパリティの記憶領域への配置パターンであり、複数のデータのうちの全てのデータからではなく一部のデータから前記パリティが計算されることを含む、前記複数のデータを冗長化して記憶するためのローカルパリティレイアウトを、前記複数のデータのうちローカルパリティを計算するデータ領域の数である計算範囲の長さが異なる複数のローカルパリティレイアウトを組み合わせることにより作成するにあたり、
前記複数のローカルパリティレイアウトのそれぞれのデータ領域の数が、取得した前記データ領域の数であり、かつ、
前記複数のローカルパリティレイアウトのそれぞれのパリティ領域の数の総和が、取得した前記パリティ領域の数であり、かつ、
前記複数のローカルパリティレイアウトのそれぞれの信頼性指数の総和が、取得した前記信頼性指数の数であることを満たす前記複数のローカルパリティレイアウトから、前記ローカルパリティレイアウトを作成する、
処理をコンピュータが実行することを特徴とするパリティレイアウト決定方法。
【請求項４】
データおよびパリティの記憶領域への配置パターンであり、複数のデータのうちの全てのデータからではなく一部のデータから前記パリティが計算されることを含む、前記複数のデータを冗長化して記憶するためのローカルパリティレイアウトであって、
データ領域の数、パリティ領域の数およびデータの冗長度を示す信頼性指数を取得し、
複数のデータのうちローカルパリティを計算するデータ領域の数である計算範囲の長さが異なる複数のローカルパリティレイアウトを組み合わせることにより作成され、
前記複数のローカルパリティレイアウトのそれぞれのデータ領域の数が、取得した前記データ領域の数であり、かつ、
前記複数のローカルパリティレイアウトのそれぞれのパリティ領域の数の総和が、取得した前記パリティ領域の数であり、かつ、
前記複数のローカルパリティレイアウトのそれぞれの信頼性指数の総和が、取得した前記信頼性指数の数であることを満たす前記複数のローカルパリティレイアウトから、作成された前記ローカルパリティレイアウトに基づく記憶領域を有することを特徴とするストレージ装置。
【請求項５】
データ領域の数、パリティ領域の数およびデータの冗長度を示す信頼性指数を取得し、
データおよびパリティの記憶領域への配置パターンであり、複数のデータのうちの全てのデータからではなく一部のデータから前記パリティが計算されることを含む、前記複数のデータを冗長化して記憶するためのローカルパリティレイアウトを、前記複数のデータのうちローカルパリティを計算するデータ領域の数である計算範囲の長さが異なる複数のローカルパリティレイアウトを組み合わせることにより作成するにあたり、
前記複数のローカルパリティレイアウトのそれぞれのデータ領域の数が、取得した前記データ領域の数であり、かつ、
前記複数のローカルパリティレイアウトのそれぞれのパリティ領域の数の総和が、取得した前記パリティ領域の数であり、かつ、
前記複数のローカルパリティレイアウトのそれぞれの信頼性指数の総和が、取得した前記信頼性指数の数であることを満たす前記複数のローカルパリティレイアウトから、前記ローカルパリティレイアウトを作成する、制御装置と、
前記ローカルパリティレイアウトに基づく記憶領域を有する、ストレージ装置と、
を含むことを特徴とするストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パリティレイアウト決定プログラム、パリティレイアウト決定方法、ストレージ装置およびストレージシステムに関する。
【背景技術】
【０００２】
従来、ストレージシステムでは、レプリケーションによってデータの信頼性および可用性を保証することができる。また、ストレージシステムでは、パリティディスクを追加することにより一定の信頼性を確保するＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）技術も使用されている。また、ストレージシステムでは、全てのデータからではなく一部のデータから計算されたローカルパリティを使って、一定の信頼性を確保する技術も使用されている。
【０００３】
関連する先行技術としては、例えば、複数の記憶装置のうち最も小さな容量を容量Ａとするとき、複数の記憶装置のそれぞれにおける容量Ａの領域を利用して一つ以上のパリティグループを構成する技術がある。また、複数ブロックのデータに記憶装置上の記憶領域を割り当てるときに、キャッシュに入れられるデータの大きさを単位として、ディスク記憶装置内の物理的な連続領域に配置するデータブロックの数を決めて、記憶領域を割り当てる技術がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平８−２４９１３２号公報
【特許文献２】特開平８−１８５２７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、リカバリ時のデータ転送量が少ないパリティレイアウトを作成することが困難な場合がある。例えば、ローカルパリティの計算範囲の長さを可変にすると、構成可能なパリティレイアウトの数が増え、許容時間内に、リカバリ時のデータ転送量が少ないパリティレイアウトを作成することができない場合がある。
【０００６】
１つの側面では、本発明は、リカバリ時のデータ転送量が少ないパリティレイアウトを作成することを可能とするパリティレイアウト決定プログラム、パリティレイアウト決定方法、ストレージ装置およびストレージシステムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
１つの態様では、複数のデータを冗長化して記憶するためのローカルパリティレイアウトを、複数のデータのうちローカルパリティを計算する計算範囲の長さが異なる複数のローカルパリティレイアウトを組み合わせることにより作成するパリティレイアウト決定プログラムおよびパリティレイアウト決定方法が提案される。
【０００８】
また、１つの態様では、複数のデータのうちローカルパリティを計算する計算範囲の長さが異なる複数のローカルパリティレイアウトを組み合わせることにより作成される、複数のデータを冗長化して記憶するためのローカルパリティレイアウトに基づく記憶領域を有するストレージ装置およびストレージシステムが提案される。
【発明の効果】
【０００９】
１つの側面では、リカバリ時のデータ転送量が少ないパリティレイアウトを作成することを可能とするという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施の形態にかかるパリティレイアウト決定方法の一実施例を示す説明図である。
【図２】図２は、実施の形態にかかるストレージシステム２００のシステム構成例を示す説明図である。
【図３】図３は、実施の形態にかかるパリティレイアウト決定装置１０１のハードウェア構成例を示すブロック図である。
【図４】図４は、実施の形態にかかるパリティレイアウト４００の一例を示す説明図である。
【図５】図５は、実施の形態にかかるパリティレイアウト決定装置１０１の機能的構成例を示すブロック図である。
【図６】図６は、実施の形態にかかるパリティレイアウト決定装置１０１のパリティレイアウト決定処理動作の一例を示すフローチャートである。
【図７】図７は、実施の形態にかかるパリティレイアウト決定装置１０１の効果を示すプロパティマップの一例を示す説明図である。
【発明を実施するための形態】
【００１１】
以下に、図面を参照して、本発明にかかるパリティレイアウト決定プログラム、パリティレイアウト決定方法、ストレージ装置およびストレージシステムの実施の形態を詳細に説明する。
【００１２】
（実施の形態）
図１は、実施の形態にかかるパリティレイアウト決定方法の一実施例を示す説明図である。図１において、パリティレイアウト決定装置１０１は、パリティレイアウトを決定するコンピュータである。
【００１３】
ここで、パリティレイアウトとは、複数のデータを冗長化して記憶するためのレイアウトである。例えば、パリティレイアウトは、記憶領域にどのようにデータおよびパリティを記憶させるかと、パリティをどのようなデータの範囲から計算するかという、データおよびパリティの記憶領域への配置パターンである。また、計算されるパリティが、全てのデータからではなく一部のデータから計算されることを含む場合、ローカルパリティレイアウトと呼ばれる。
【００１４】
また、パリティレイアウトは、例えば、利用者がデータチャンク数ｋ、パリティチャンク数の合計値ｍ、信頼性指数の合計値ｃを指定することにより作成できる。ここで、ｋ、ｍ、ｃは、１以上の正の整数である。データチャンクとは、データを記憶する記憶領域であり、データチャンク数とは、データを記憶する記憶領域の数である。例えば、記憶領域がディスク、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）である場合、データチャンク数はディスクの数である。パリティチャンクとは、パリティを記憶する記憶領域であり、パリティチャンク数の合計値とは、パリティを記憶する記憶領域の数である。
【００１５】
信頼性指数の合計値ｃとは、データの冗長度を示す数である。例えば、信頼性指数の合計値ｃである場合、ｋ＋ｍ個の記憶領域において発生した障害の数がｃ以下である場合、障害が発生した記憶領域の情報が、復旧可能であることを示す。例えば、データチャンク数が４であり、パリティチャンク数の合計値が１である、ＲＡＩＤ５では、信頼性指数の合計値は１になる。
【００１６】
また、データチャンク数ｋ、パリティチャンク数の合計値ｍ、信頼性指数の合計値ｃから作成されるローカルパリティレイアウトは、ＳＨＥＣ（Ｓｈｉｎｇｌｅｄ  Ｅｒａｓｕｒｅ  Ｃｏｄｅ）（ｋ、ｍ、ｃ）と呼ばれることがある。ここで、ＳＨＥＣ（ｋ、ｍ、ｃ）の作成は、例えば、参考文献に記載されている。
（参考文献：Ｅｒａｓｕｒｅ  Ｃｏｄｅ  ｗｉｔｈ  Ｓｈｉｎｇｌｅｄ  Ｌｏｃａｌ  Ｐａｒｉｔｙ  Ｇｒｏｕｐｓ  ｆｏｒ  Ｅｆｆｉｃｉｅｎｔ  Ｒｅｃｏｖｅｒｙ  ｆｒｏｍ  Ｍｕｌｔｉｐｌｅ  Ｄｉｓｋ  Ｆａｉｌｕｒｅｓ，ｈｔｔｐｓ：／／ｗｗｗ．ｕｓｅｎｉｘ．ｏｒｇ／ｃｏｎｆｅｒｅｎｃｅ／ｈｏｔｄｅｐ１４／ｗｏｒｋｓｈｏｐ−ｐｒｏｇｒａｍ／ｐｒｅｓｅｎｔａｔｉｏｎ／ｍｉｙａｍａｅ）
【００１７】
例えば、ローカルパリティレイアウトＳＨＥＣ（ｋ、ｍ、ｃ）は、ローカルパリティの計算範囲をお互いに部分的に重なり合うようにずらすことにより作成される。これにより、ローカルパリティレイアウトは、ローカルパリティでありながら、一定個数までの記憶領域に障害が発生した場合の復旧に対応する。また、ローカルパリティレイアウトは、障害が発生した場合、一部のデータを読み出して復旧することが可能であるため、パリティをすべてのデータから作成したパリティレイアウトより、データの効率的な復旧が可能である。以下、パリティをすべてのデータから作成したパリティレイアウトを、グローバルパリティレイアウトと呼ぶ場合がある。
【００１８】
しかしながら、ローカルパリティレイアウトにおいて、ローカルパリティの計算範囲を同じ長さに設定すると、グローバルパリティレイアウトより多重障害でのリカバリ効率は優れているが、単一障害時では、容量効率と信頼性が劣る場合がある。また、ローカルパリティレイアウトとグローバルパリティレイアウトとを容量効率と信頼性を同一の値に揃えた時、ローカルパリティレイアウトは、リカバリ効率でグローバルパリティレイアウトより、劣る場合がある。
【００１９】
ここで、容量効率とは、全体の記憶領域の中でデータを記憶する領域の割合である。例えば、容量効率は、データチャンク数ｋとパリティチャンク数の合計値ｍとから、ｋ／（ｋ＋ｍ）で計算することができる。また、信頼性とは、記憶される情報が復旧できない障害が発生する確率を示す。リカバリ効率とは、リカバリ時にデータを記憶する領域またはパリティを記憶する領域に記憶される情報を復旧するための平均データ量の比率を示す。リカバリ効率がよいほど、リカバリ時に転送されるデータの転送量が少なくなる。
【００２０】
このため、ローカルパリティレイアウトにおいて、各パリティの計算範囲の長さを可変することが考えられる。この場合、構成可能なレイアウト数が増え過ぎてしまい、許容時間内に、リカバリ時のデータ転送量が少ないパリティレイアウトを作成することができない場合がある。ここで、許容時間とは、ストレージシステムを構築するために認められた時間である。
【００２１】
そこで、実施の形態では、パリティレイアウト決定方法は、ローカルパリティレイアウトを、複数のデータのうちローカルパリティを計算する計算範囲の長さが異なる複数のローカルパリティレイアウトを組み合わせることにより作成する。これにより、パリティレイアウト決定方法は、許容時間内に、リカバリ時のデータ転送量が少ないローカルパリティレイアウトを作成できる。このため、パリティレイアウト決定方法は、容量効率と信頼性を同一の値に揃えた時、リカバリ効率がよいローカルパリティレイアウトを作成できる。また、組み合わせるローカルパリティレイアウトのいずれか１つが、ローカルパリティレイアウトであればよく、他のものはグローバルパリティレイアウトであってもよい。
【００２２】
以下、パリティレイアウト決定方法のパリティレイアウトの決定について説明する。実施の形態におけるパリティレイアウト決定方法は、例えば、ストレージ装置の制御部で実行することができる。また、パリティレイアウト決定方法は、例えば、ストレージ装置と独立したコンピュータで実行することができる。
【００２３】
（１）パリティレイアウト決定装置１０１は、ローカルパリティレイアウト１２１を作成する。パリティレイアウト決定装置１０１は、例えば、データチャンク数ｋ、パリティチャンク数の合計値ｍ、信頼性指数の合計値ｃを指定することにより、ローカルパリティレイアウト１２１を作成する。
【００２４】
図１のローカルパリティレイアウト１２１は、データチャンク数ｋ、パリティチャンク数の合計値ｍ、信頼性指数の合計値ｃとして、ｋ＝４、ｍ＝３、ｃ＝２が指定された例である。ここで、ローカルパリティレイアウト１２１は、記憶領域がディスク１１１〜１１７から構成され、ディスク１１１〜１１４がデータを記憶する記憶領域であり、ディスク１１５〜１１７がパリティを記憶する記憶領域であることを示す。また、図１のローカルパリティレイアウト１２１は、ディスク１１５のパリティを計算するデータの範囲がディスク１１１〜１１３であり、ディスク１１６のパリティを計算するデータの範囲がディスク１１２〜１１４であることを示す。また、図１のローカルパリティレイアウト１２１は、ディスク１１７のパリティを計算するデータの範囲がディスク１１１、１１３および１１４であることを示す。ここで、ローカルパリティレイアウト１２１は、データチャンク数が４であり、パリティチャンク数の合計値が３であり、信頼性指数の合計値は２であるため、ＳＨＥＣ（４、３、２）と呼ばれる。
【００２５】
ここで、ローカルパリティを計算する計算範囲の長さとは、ローカルパリティを計算する記憶領域の大きさである。例えば、記憶領域がディスクである場合、計算範囲の長さは、ディスクの数となる。図１のローカルパリティレイアウト１２１では、それぞれ３つのディスクからローカルパリティが計算されるため、ローカルパリティを計算する計算範囲の長さは３である。
【００２６】
（２）パリティレイアウト決定装置１０１は、ローカルパリティレイアウト１２１とローカルパリティを計算する計算範囲の長さが異なるローカルパリティレイアウト１２２を作成する。パリティレイアウト決定装置１０１は、例えば、ローカルパリティレイアウト１２１と同様にして、ローカルパリティレイアウト１２２を作成することができる。
【００２７】
図１のローカルパリティレイアウト１２２は、データチャンク数ｋ、パリティチャンク数の合計値ｍ、信頼性指数の合計値ｃとして、ｋ＝４、ｍ＝１、ｃ＝１が指定された例である。ここで、ローカルパリティレイアウト１２２は、記憶領域がディスク１１１〜１１４、１１８から構成され、ディスク１１１〜１１４がデータを記憶する記憶領域であり、ディスク１１８がパリティを記憶する記憶領域であることを示す。また、図１のローカルパリティレイアウト１２２は、ディスク１１８のパリティを計算するデータの範囲がディスク１１１〜１１４であることを示す。図１のローカルパリティレイアウト１２２では、ローカルパリティレイアウト１２１とはローカルパリティを計算する計算範囲が異なり、ローカルパリティを計算する計算範囲の長さは４である。ここで、ローカルパリティレイアウト１２２は、データチャンク数が４であり、パリティチャンク数の合計値が１であり、信頼性指数の合計値は１であるため、ＳＨＥＣ（４、１、１）と呼ばれる。
【００２８】
（３）パリティレイアウト決定装置１０１は、ローカルパリティレイアウト１２１とローカルパリティレイアウト１２２とを組み合わせることにより、ローカルパリティレイアウト１２３を作成する。ローカルパリティレイアウト１２１とローカルパリティレイアウト１２２とでは、ローカルパリティの計算範囲が同じ長さでないため、パリティレイアウト決定装置１０１は、ローカルパリティの計算範囲が同じ長さでないローカルパリティレイアウト１２３を作成することができる。
【００２９】
また、ローカルパリティレイアウトを組み合わせたものは、組み合わせる前の信頼性指数の合計値の加算したものになるという性質を有している。このため、組み合わせることより、信頼性指数の合計値の大きいローカルパリティレイアウト１２３を作成することができる。
【００３０】
図１の例では、ローカルパリティレイアウト１２３は、記憶領域がディスク１１１〜１１８から構成され、ディスク１１１〜１１４がデータを記憶する記憶領域であり、ディスク１１５〜１１８がパリティを記憶する記憶領域であることを示す。また、ディスク１１５〜１１８のディスク毎のパリティを計算するデータの範囲は、ローカルパリティレイアウト１２１およびローカルパリティレイアウト１２２と同じである。
【００３１】
ローカルパリティレイアウト１２３は、ローカルパリティを計算する計算範囲の長さは、ディスク１１５〜１１７では３であり、ディスク１１８では４である。このように、図１の例では、ローカルパリティを計算する計算範囲の長さが、３と４の異なる長さのローカルパリティレイアウト１２３を作成することができる。ここで、ローカルパリティレイアウト１２３では、データチャンク数が４であり、パリティチャンク数の合計値が４である。また、ローカルパリティレイアウト１２３では、信頼性指数の合計値が、ローカルパリティレイアウト１２１およびローカルパリティレイアウト１２２の信頼性指数の合計値３である。また、ローカルパリティレイアウト１２３は、ＳＨＥＣ（４、３、２）とＳＨＥＣ（４、１、１）を組み合わせたものであり、ローカルパリティの計算範囲が異なるものを組み合わせたものであるため、ｍｕｌｔｉｐｌｅＳＨＥＣ（４、３−１、２−１）と呼ばれる。
【００３２】
以上説明したように、パリティレイアウト決定方法は、複数のデータを冗長化して記憶するためのローカルパリティレイアウト１２３を、ローカルパリティを計算する計算範囲の長さが異なる複数のローカルパリティレイアウト１２１、１２２を組み合わせることにより作成する。
【００３３】
このように、パリティレイアウト決定方法は、ローカルパリティの計算範囲の長さを固定にして作成したものを組み合わせることで、ローカルパリティの計算範囲の長さが異なるローカルパリティレイアウト１２３を作成できる。これにより、構成可能なレイアウト数が増え過ぎることがないため、パリティレイアウト決定方法は、許容時間内に、リカバリ時のデータ転送量が少ないパリティレイアウトを作成できる。このため、パリティレイアウト決定方法は、容量効率と信頼性を同一の値に揃えた時、リカバリ効率がよいパリティレイアウトを作成できる。パリティレイアウト決定方法が作成したパリティレイアウトは、リカバリ効率がよいため、リカバリ時のデータ転送量が少なくなり、復旧時間を短縮できる。
【００３４】
（ストレージシステム２００の一例）
次に、図２を用いて、図１に示したパリティレイアウト決定方法を適用したストレージシステム２００の一例について説明する。
【００３５】
図２は、実施の形態にかかるストレージシステム２００のシステム構成例を示す説明図である。図２の例では、ストレージシステム２００は、パリティレイアウト決定装置１０１と、複数の記憶領域を有するストレージ装置２０１と、複数のホストコンピュータ２０２と、を含む。ストレージシステム２００は、例えば、ＦｉｂｒｅＣｈａｎｎｅｌ、ＳＡＳ、ｉＳＣＳＩ等のインターフェースで複数のホストコンピュータ２０２に接続される。また、ストレージシステム２００は、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワークを介して複数のホストコンピュータ２０２に接続されてもよい。
【００３６】
パリティレイアウト決定装置１０１は、パリティレイアウト決定方法を実行するコンピュータである。また、パリティレイアウト決定装置１０１は、ストレージシステム２００全体の制御を行うストレージ制御装置と同じ装置であることもできる。
【００３７】
ストレージ装置２０１は、記憶領域として磁気ディスクドライブ（ＨＤＤ）と、磁気ディスクとを有する。磁気ディスクドライブは、ストレージ制御装置の制御にしたがって磁気ディスクに対するデータのリード／ライトを制御する。磁気ディスクは、磁気ディスクドライブの制御で書き込まれたデータを記憶する。ストレージシステム２００は、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）を備えてもよい。
【００３８】
複数のホストコンピュータ２０２は、ストレージ装置２０１にデータのリード／ライトを要求するコンピュータである。ホストコンピュータ２０２は、例えば、サーバやＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）である。
【００３９】
（パリティレイアウト決定装置１０１のハードウェア構成例）
図３は、実施の形態にかかるパリティレイアウト決定装置１０１のハードウェア構成例を示すブロック図である。パリティレイアウト決定装置１０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、メモリ３０２と、ＩＯＣ（Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｃｏｎｔｒｏｌｌｅｒ）３０３と、Ｉ／Ｆ３０４と、を有する。ＣＰＵ３０１と、メモリ３０２と、ＩＯＣ３０３と、Ｉ／Ｆ３０４とは、バス３００によってそれぞれ接続される。
【００４０】
ここで、ＣＰＵ３０１は、パリティレイアウト決定装置１０１の全体の制御を司る。メモリ３０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびフラッシュＲＯＭなどを有する。具体的には、例えば、フラッシュＲＯＭやＲＯＭが各種プログラムを記憶し、ＲＡＭがＣＰＵ３０１のワークエリアとして使用される。メモリ３０２に記憶されるプログラムは、ＣＰＵ３０１にロードされることで、コーディングされている処理をＣＰＵ３０１に実行させる。
【００４１】
ＩＯＣ３０３は、複数のホストコンピュータ２０２に接続され、複数のホストコンピュータ２０２とデータのリード／ライトの制御を行う。また、ＩＯＣ３０３は、ストレージ装置２０１に接続され、ストレージ装置２０１とデータのリード／ライトの制御を行う。
【００４２】
Ｉ／Ｆ３０４は、通信回線を通じてネットワークに接続され、ネットワークを介して他のコンピュータに接続される。そして、Ｉ／Ｆ３０４は、ネットワークと内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。Ｉ／Ｆ３０４には、例えば、モデムやＬＡＮアダプタなどを採用することができる。また、Ｉ／Ｆ３０４は、複数のホストコンピュータ２０２に接続され、複数のホストコンピュータ２０２とデータのリード／ライトの制御を行うこともできる。
【００４３】
パリティレイアウト決定装置１０１は、上述した構成部のほか、例えば、ＳＳＤ、キーボード、マウス、ディスプレイなどを有することにしてもよい。
【００４４】
（パリティレイアウト４００の一例）
図４は、実施の形態にかかるパリティレイアウト４００の一例を示す説明図である。図４において、パリティレイアウト４００は、例えば、パリティレイアウト決定装置１０１によって作成、更新され、パリティレイアウト決定装置１０１のメモリ３０２に記憶される。
【００４５】
図４は、データチャンク数として、ｋ＝９、パリティチャンク数の合計値として、ｍ＝５、信頼性指数の合計値として、ｃ＝４、およびレイアウトの段数として、ｎ＝２の場合に作成されるパリティレイアウト４００の一例である。ここで、レイアウトの段数とは、組み合わせるパリティレイアウトの数である。図４において、データを記憶するデータ領域は、ディスク４０１〜ディスク４０９であり、パリティを記憶するパリティ領域は、ディスク４１０〜ディスク４１４である。
【００４６】
また、ディスク４０１〜ディスク４１４は、同じ記憶容量を有するディスクであり、以下の説明では、ディスク４０１〜ディスク４１４の記憶容量を１とすることがある。単位は、例えばＴＢ（Ｔｅｒａ  Ｂｙｔｅ）である。
【００４７】
ここで、パリティレイアウト４００は、レイアウトの段数ｎが２で、ｍ＝ｍ1＋ｍ2とｃ＝ｃ1＋ｃ2を満たす（ｍ1、ｃ1）＝（３、２）、（ｍ2、ｃ2）＝（２、２）の組み合わせから作成されるローカルパリティレイアウトの例である。（ｍ1、ｃ1）＝（３、２）からローカルパリティレイアウト４１５が作成され、（ｍ2、ｃ2）＝（２、２）からローカルパリティレイアウト４１６が作成される。ローカルパリティレイアウト４００は、ローカルパリティレイアウト４１５とローカルパリティレイアウト４１６を組み合わせることにより作成される。
【００４８】
ここで、ローカルパリティレイアウト４１５において、パリティの計算範囲の長さは６である。ディスク４１０は、ディスク４０１〜ディスク４０６のパリティを記憶し、ディスク４１１は、ディスク４０４〜ディスク４０９のパリティを記憶し、ディスク４１２は、ディスク４０１〜ディスク４０３およびディスク４０７〜ディスク４０９のパリティを記憶する。
【００４９】
このため、ローカルパリティレイアウト４１５では、信頼性の合計値が２になり、ディスク４０１〜ディスク４０９のうち２つのディスクに障害が発生した場合でも、データを復旧することができる。ローカルパリティレイアウト４１５は、データチャンク数が９であり、パリティチャンク数の合計値が３であり、信頼性指数の合計値が２であるため、ＳＨＥＣ（９、３、２）と呼ばれる。
【００５０】
また、ローカルパリティレイアウト４１６において、パリティの計算範囲の長さは９である。ディスク４１３は、ディスク４０１〜ディスク４０９のパリティを記憶し、ディスク４１４は、ディスク４０１〜ディスク４０９のパリティを記憶する。
【００５１】
このため、ローカルパリティレイアウト４１６では、信頼性の合計値が２になり、ディスク４０１〜ディスク４０９のうち２つのディスクに障害が発生した場合でも、データを復旧することができる。ローカルパリティレイアウト４１６は、データチャンク数が９であり、パリティチャンク数の合計値が２であり、信頼性指数の合計値が２であるため、ＳＨＥＣ（９、２、２）と呼ばれる。
【００５２】
また、ローカルパリティレイアウト４００は、ローカルパリティレイアウト４１５とローカルパリティレイアウト４１６を組み合わせたものであるため、パリティの計算範囲の長さが異なる。また、ローカルパリティレイアウト４００は、ローカルパリティレイアウト４１５とローカルパリティレイアウト４１６を組み合わせたものであるため、信頼性の合計値は４になる。このため、ディスク４０１〜ディスク４０９のうち４つのディスクに障害が発生した場合でも、データを復旧することができる。ローカルパリティレイアウト４００は、データチャンク数が９であり、パリティチャンク数の合計値が５であり、信頼性指数の合計値が４である。また、ＳＨＥＣ（９、３、２）とＳＨＥＣ（９、２、２）を組み合わせたものであるため、ｍｕｌｔｉｐｌｅＳＨＥＣ（９、３−２、２−２）と呼ばれる。
【００５３】
（パリティレイアウト決定装置１０１の機能的構成例）
次に、図２に示したパリティレイアウト決定装置１０１の機能的構成例について説明する。図５は、実施の形態にかかるパリティレイアウト決定装置１０１の機能的構成例を示すブロック図である。図５においてパリティレイアウト決定装置１０１は、取得部５０１と、作成部５０２と、算出部５０３と、選択部５０４と、を含む構成である。取得部５０１と、作成部５０２と、算出部５０３と、選択部５０４と、を含む制御部は、具体的には、例えば、図３に示したメモリ３０２などの記憶装置に記憶されたプログラムをＣＰＵ３０１に実行させることにより、その機能を実現する。各機能部の処理結果は、例えば、図３に示したメモリ３０２などの記憶装置に記憶される。
【００５４】
取得部５０１は、データチャンク数ｋ、パリティチャンク数の合計値ｍ、信頼性指数の合計値ｃおよびレイアウトの段数ｎを取得する機能を有する。例えば、取得部５０１は、パリティレイアウト決定装置１０１のキーボードで利用者が入力することで、データチャンク数ｋ、パリティチャンク数の合計値ｍ、信頼性指数の合計値ｃおよびレイアウトの段数ｎを取得することができる。また、例えば、取得部５０１は、パリティレイアウト決定装置１０１と通信可能な端末装置からデータチャンク数ｋ、パリティチャンク数の合計値ｍ、信頼性指数の合計値ｃおよびレイアウトの段数ｎを取得することもできる。
【００５５】
取得部５０１は、取得したデータチャンク数ｋ、パリティチャンク数の合計値ｍ、信頼性指数の合計値ｃおよびレイアウトの段数ｎを作成部５０２に通知する。ここで、ｋ、ｍ、ｃ、ｎは、１以上の正の整数である。例えば、取得部５０１は、データチャンク数ｋ、パリティチャンク数の合計値ｍ、信頼性指数の合計値ｃおよびレイアウトの段数ｎとして、それぞれｋ＝９、ｍ＝５、ｃ＝４、ｎ＝２を取得し、それぞれの値を作成部５０２に通知する。
【００５６】
作成部５０２は、取得部５０１から通知されたデータチャンク数ｋ、パリティチャンク数の合計値ｍ、信頼性指数の合計値ｃおよびレイアウトの段数ｎからローカルパリティレイアウトを作成する機能を有する。また、作成部５０２は、作成したローカルパリティレイアウトを算出部５０３に通知する。
【００５７】
作成部５０２は、レイアウトの段数ｎに基づき、パリティチャンク数の合計値ｍ、信頼性指数の合計値ｃをそれぞれｎ分割して、（ｍ1、ｃ1）、…、（ｍn、ｃn）の組み合わせをすべて抽出する。この際、作成部５０２は、ｍ＝Σｍi、ｃ＝Σｃiを満たすようにｎ分割する。ここで、Σの和を取る範囲はｉ＝１〜ｎまでであり、ｍ1〜ｍnおよびｃ1〜ｃnは、１以上の正の整数である。
【００５８】
作成部５０２は、抽出した（ｍi、ｃi）（ｉ＝１〜ｎ）の組み合わせから、ｎ個のローカルパリティレイアウトを作成する。作成部５０２は、作成したｎ個のローカルパリティレイアウトを組み合わせたローカルパリティレイアウトを作成し、作成したローカルパリティレイアウトを算出部５０３に通知する。
【００５９】
より詳細には、作成部５０２は、以下のようにしてローカルパリティレイアウトを作成する。作成部５０２は、データチャンク数ｋと、パリティチャンク数の合計値と信頼性指数の合計値の（ｍ1、ｃ1）の組み合わせから１つのローカルパリティレイアウトＳＨＥＣ（ｋ、ｍ1、ｃ1）を作成する。同様にして、データチャンク数ｋと、パリティチャンク数の合計値と信頼性指数の合計値の（ｍ2、ｃ2）から１つのローカルパリティレイアウトＳＨＥＣ（ｋ、ｍ2、ｃ2）を作成する。作成部５０２は、同様の処理を（ｍn、ｃn）まで行い、ｎ個のローカルパリティレイアウトＳＨＥＣ（ｋ、ｍ1、ｃ1）〜ＳＨＥＣ（ｋ、ｍn、ｃn）を作成する。
【００６０】
作成部５０２は、ｎ個のローカルパリティレイアウトＳＨＥＣ（ｋ、ｍ1、ｃ1）〜ＳＨＥＣ（ｋ、ｍn、ｃn）を組み合わせて、１つのローカルパリティレイアウトＳＨＥＣ（ｋ、ｍ1−・・・−ｍn、ｃ1−・・・−ｃn）を作成する。このように、作成部５０２は、１つの（ｍ1、ｃ1）、…、（ｍn、ｃn）の組み合わせから、１つのローカルパリティレイアウトｍｕｌｔｉｐｌｅＳＨＥＣ（ｋ、ｍ1−・・・−ｍn、ｃ1−・・・−ｃn）を作成する。
【００６１】
例えば、作成部５０２は、取得部５０１からｋ＝９、ｍ＝５、ｃ＝４、ｎ＝２が通知された場合、レイアウトの段数ｎ＝２に基づき、パリティチャンク数の合計値ｍ、信頼性指数の合計値ｃをそれぞれ２分割する。具体的には、作成部５０２は、（ｍ1、ｃ1）、（ｍ2、ｃ2）の組み合わせとして、
（１）（１、１）、（４、３）
（２）（１、２）、（４、２）
（３）（１、３）、（４、１）
（４）（２、１）、（３、３）
（５）（２、２）、（３、２）
（６）（２、３）、（３、１）
（７）（３、１）、（２、３）
（８）（３、２）、（２、２）
（９）（３、３）、（２、１）
（１０）（４、１）、（１、３）
（１１）（４、２）、（１、２）
（１２）（４、３）、（１、１）
の１２個を抽出する。
【００６２】
作成部５０２は、例えば、（１）（１、１）、（４、３）の場合、（１、１）の組み合わせから、ローカルパリティレイアウトＳＨＥＣ（９、１、１）を作成し、（４、３）の組み合わせから、ローカルパリティレイアウトＳＨＥＣ（９、４、３）を作成する。作成部５０２は、２つのローカルパリティレイアウトＳＨＥＣ（９、１、１）とローカルパリティレイアウトＳＨＥＣ（９、４、３）を組み合わせて、１つのローカルパリティレイアウトｍｕｌｔｉｐｌｅＳＨＥＣ（９、１−４、１−３）を作成する。
【００６３】
作成部５０２は、同様にして、以下の１２個の組み合わせから、以下のそれぞれ２つのローカルパリティレイアウトを作成して、作成したローカルパリティレイアウトを組み合わせて、１つのローカルパリティレイアウトを作成する。
（１）  ＳＨＥＣ（９、１、１）＋ＳＨＥＣ（９、４、３）
（２）  ＳＨＥＣ（９、１、２）＋ＳＨＥＣ（９、４、２）
（３）  ＳＨＥＣ（９、１、３）＋ＳＨＥＣ（９、４、１）
（４）  ＳＨＥＣ（９、２、１）＋ＳＨＥＣ（９、３、３）
（５）  ＳＨＥＣ（９、２、２）＋ＳＨＥＣ（９、３、２）
（６）  ＳＨＥＣ（９、２、３）＋ＳＨＥＣ（９、３、１）
（７）  ＳＨＥＣ（９、３、１）＋ＳＨＥＣ（９、２、３）
（８）  ＳＨＥＣ（９、３、２）＋ＳＨＥＣ（９、２、２）
（９）  ＳＨＥＣ（９、３、３）＋ＳＨＥＣ（９、２、１）
（１０）ＳＨＥＣ（９、４、１）＋ＳＨＥＣ（９、１、３）
（１１）ＳＨＥＣ（９、４、２）＋ＳＨＥＣ（９、１、２）
（１２）ＳＨＥＣ（９、４、３）＋ＳＨＥＣ（９、１、１）
ここで、「＋」は、ローカルパリティレイアウトを組み合わせることを意味する。
【００６４】
ここで、（８）のＳＨＥＣ（９、３、２）は、図４のローカルパリティレイアウト４１５に対応し、（８）のＳＨＥＣ（９、２、２）は、図４のローカルパリティレイアウト４１６に対応する。ＳＨＥＣ（９、３、２）、ＳＨＥＣ（９、２、２）を組み合わせたｍｕｌｔｉｐｌｅＳＨＥＣ（９、３−２、２−２）は、図４のローカルパリティレイアウト４００に対応する。
【００６５】
算出部５０３は、作成部５０２から通知されたローカルパリティレイアウトのリカバリ効率を算出する機能を有する。例えば、算出部５０３は、障害となったデータチャンクまたはパリティチャンクに記憶される情報を復旧するための平均データ量を算出し、算出した平均データ量をデータチャンクおよびパリティチャンクの容量で除算し、除算した結果の逆数を算出する。算出部５０３は、除算した結果の逆数をリカバリ効率とすることができる。ここで、平均データ量は、データチャンクまたはパリティチャンク毎に記憶される情報を復旧するためのデータ量を算出し、データチャンクおよびパリティチャンクの容量で除算したものを、加えることにより算出できる。算出部５０３は、ローカルパリティレイアウト毎に算出されたリカバリ効率を選択部５０４に通知する。
【００６６】
ここで、算出部５０３は、同じリカバリ効率が算出されるローカルパリティレイアウトのリカバリ効率を算出しないことができる。例えば、ＳＨＥＣ（９、１、３）＋ＳＨＥＣ（９、４、１）とＳＨＥＣ（９、４、１）＋ＳＨＥＣ（９、１、３）のような対称なローカルパリティレイアウトでは、同じリカバリ効率が算出される。このため、算出部５０３は、ＳＨＥＣ（９、１、３）＋ＳＨＥＣ（９、４、１）のリカバリ効率を算出後、ＳＨＥＣ（９、４、１）＋ＳＨＥＣ（９、１、３）のリカバリ効率を算出しないことができる。
【００６７】
例えば、図４のローカルパリティレイアウト４００の場合、リカバリ効率は以下のように算出される。
（１）ディスク４０１に記憶される情報は、例えば、ディスク４０２〜４０６およびディスク４１０の情報から復旧できる。このため、復旧するためのデータ量は６になる。ディスク４０２〜４１２も同様でデータ量は６になる。このように、データ量６で復旧できるディスクは１２である。
（２）ディスク４１３に記憶される情報は、例えば、ディスク４０１〜４０９の情報から復旧できる。このため、復旧するためのデータ量は９になる。ディスク４１４も同様でデータ量は９になる。このように、データ量９で復旧できるディスクは２である。
（３）データチャンクおよびパリティチャンクの容量は１４であるため、平均データ量は、（６／１４）×１２＋（９／１４）×２となる。
（４）データチャンクおよびパリティチャンクの容量は１４であるため、リカバリ効率は、（６×１２／１４＋９×２／１４）／１４の逆数となる。
【００６８】
選択部５０４は、通知されたローカルパリティレイアウト毎に算出されたリカバリ効率から、リカバリ効率が最もよいローカルパリティレイアウトを選択する機能を有する。例えば、リカバリ効率は、復旧に要するデータ量が多いほど大きくなるため、選択部５０４は、リカバリ効率が最小のローカルパリティレイアウトを選択する。
【００６９】
（パリティレイアウト決定処理動作の一例）
図６は、実施の形態にかかるパリティレイアウト決定装置１０１のパリティレイアウト決定処理動作の一例を示すフローチャートである。図６において、パリティレイアウト決定装置１０１は、データチャンク数ｋ、パリティチャンク数の合計値ｍ、信頼性指数の合計値ｃおよびレイアウトの段数ｎを取得する（ステップＳ６０１）。
【００７０】
パリティレイアウト決定装置１０１は、ｍ＝Σｍi、ｃ＝Σｃiを満たす（ｍ1、ｃ1）、…、（ｍn、ｃn）の組み合わせをすべて抽出する（ステップＳ６０２）。ここで、Σの和を取る範囲はｉ＝１〜ｎまでであり、ｍ1〜ｍnおよびｃ1〜ｃnは、１以上の正の整数である。
【００７１】
パリティレイアウト決定装置１０１は、データチャンク数ｋと抽出されたそれぞれの（ｍ1、ｃ1）、…、（ｍn、ｃn）の組み合わせから作成されるすべてのローカルパリティレイアウトのリカバリ効率を算出する（ステップＳ６０３）。
【００７２】
例えば、パリティレイアウト決定装置１０１は、すべての（ｍi、ｃi）（ｉ＝１〜ｎ）の組み合わせから、ｎ個のローカルパリティレイアウトＳＨＥＣ（ｋ、ｍ1、ｃ1）〜ＳＨＥＣ（ｋ、ｍn、ｃn）をすべて作成する。パリティレイアウト決定装置１０１は、ｎ個のローカルパリティレイアウトＳＨＥＣ（ｋ、ｍ1、ｃ1）〜ＳＨＥＣ（ｋ、ｍn、ｃn）を組み合わせることで、ローカルパリティレイアウトｍｕｌｔｉｐｌｅＳＨＥＣ（ｋ、ｍ1−・・・−ｍn、ｃ1−・・・−ｃn）をすべて作成する。パリティレイアウト決定装置１０１は、作成したすべてのローカルパリティレイアウトｍｕｌｔｉｐｌｅＳＨＥＣ（ｋ、ｍ1−・・・−ｍn、ｃ1−・・・−ｃn）のリカバリ効率を算出する。
【００７３】
パリティレイアウト決定装置１０１は、算出されたリカバリ効率が最もよい（ｍ1、ｃ1）、…、（ｍn、ｃn）の組み合わせを選択する（ステップＳ６０４）。
【００７４】
これにより、本フローチャートにおける一連の処理は終了する。本フローチャートを実行することで、パリティレイアウト決定装置１０１は、リカバリ効率が最もよいローカルパリティレイアウトを決定することができる。
【００７５】
（プロパティマップの一例）
図７は、実施の形態にかかるパリティレイアウト決定装置１０１の効果を示すプロパティマップの一例を示す説明図である。ここで、プロパティマップとは、容量効率ｃ＿ｅを横軸で、リカバリ数ｒ＿ｅ１を縦軸で、信頼性を図形で表したもので、原点から遠ざかるところにプロットされたレイアウトほど全体的なバランスから見て性能が優れていることを示す。また、プロパティマップは、データチャンク数ｋ、パリティチャンク数の合計値ｍ、信頼性指数の合計値ｃ、記憶領域を構成するディスクの信頼性等を入力して、容量効率ｃ＿ｅ、リカバリ数ｒ＿ｅ１および信頼性を計算したものである。
【００７６】
ここで、容量効率ｃ＿ｅは、全体の記憶領域の中でデータを記憶する領域の割合である。例えば、容量効率ｃ＿ｅは、データチャンク数ｋとパリティチャンク数の合計値ｍとから、ｋ／（ｋ＋ｍ）で計算することができる。容量効率ｃ＿ｅは、０に近いほどデータを記憶するための容量が少なく、データを記憶する効率がよくないことを示す。
【００７７】
また、リカバリ数ｒ＿ｅ１とは、障害となったデータチャンクまたはパリティチャンクに記憶される情報を復旧するための平均チャンク数である。リカバリ数ｒ＿ｅ１は大きいほど、障害となったデータチャンクまたはパリティチャンクに記憶される情報を復旧するデータ量が多く、リカバリ効率がよくないことを示す。例えば、データチャンクの１つに記憶される情報を復旧するため、６つのデータチャンクまたはパリティチャンクを使用する場合、リカバリ数ｒ＿ｅ１は６になる。
【００７８】
また、信頼性は、ローカルパリティレイアウトに基づく記憶領域を有するストレージ装置に、記憶される情報が復旧できない障害が発生する確率を示す。信頼性の値が低いほど、ストレージ装置の信頼性は高くなる。例えば、１ｅ−４とは、１年間で、記憶される情報が復旧できない障害が発生する確率は１万分の１であることを示す。信頼性は図形で表され、例えば、×で表されるローカルパリティレイアウトに基づく記憶領域を有するストレージ装置の信頼性は、１ｅ−４である。
【００７９】
また、プロパティマップにおいて、信頼性を表す図形に○が付いているものは、グローバルパリティの構成であり、信頼性を表す図形に○が付いていないものは、ローカルパリティの構成である。
【００８０】
図７において、図７（ａ）は、ＳＨＥＣの構成であり、図７（ｂ）は、実施の形態のｍｕｌｔｉｐｌｅＳＨＥＣの構成である。図７（ａ）と図７（ｂ）を比較すると、図形で○が付いていないローカルパリティの構成は、プロットの位置が全体的に上の方向に移動している。このため、実施の形態のｍｕｌｔｉｐｌｅＳＨＥＣは、ＳＨＥＣの構成より、リカバリ数が改善していることがわかる。
【００８１】
以上説明したように、パリティレイアウト決定方法は、複数のデータを冗長化して記憶するためのローカルパリティレイアウト１２３を、ローカルパリティを計算する計算範囲の長さが異なる複数のローカルパリティレイアウト１２１、１２２を組み合わせることにより作成する。
【００８２】
このように、パリティレイアウト決定方法は、ローカルパリティの計算範囲の長さを固定にして作成したものを組み合わせることで、ローカルパリティの計算範囲の長さが異なるローカルパリティレイアウト１２３を作成できる。これにより、構成可能なレイアウト数が増え過ぎることがないため、パリティレイアウト決定方法は、許容時間内に、リカバリ時のデータ転送量が少ないパリティレイアウトを作成できる。このため、パリティレイアウト決定方法は、容量効率と信頼性を同一の値に揃えた時、リカバリ効率がよいパリティレイアウトを作成できる。パリティレイアウト決定方法が作成したパリティレイアウトは、リカバリ効率がよいため、リカバリ時のデータ転送量が少なくなり、復旧時間を短縮できる。
【００８３】
また、パリティレイアウト決定方法は、データ領域の数、パリティ領域の数およびデータの冗長度を示す信頼性指数を取得することができる。パリティレイアウト決定方法は、複数のデータを冗長化して記憶するためのローカルパリティレイアウトを、次の３つの条件をすべて満たす複数のローカルパリティレイアウトから作成することができる。
（１）複数のローカルパリティレイアウトのそれぞれのデータ領域の数が、取得したデータ領域の数である。
（２）複数のローカルパリティレイアウトのそれぞれのパリティ領域の数の総和が、取得したパリティ領域の数である。
（３）複数のローカルパリティレイアウトのそれぞれの信頼性指数の総和が、取得した信頼性指数の数である。
【００８４】
これにより、パリティレイアウト決定方法は、パリティチャンク数の合計値、信頼性指数の合計値を保ちながらパリティレイアウトを作成するため、パリティの計算範囲の長さを可変することに比べて、作成するパリティレイアウトの数は増大しない。このため、パリティレイアウト決定方法は、許容時間内に、リカバリ時のデータ転送量が少ないパリティレイアウトを作成できる。また、パリティレイアウト決定方法は、利用者が指定したデータ領域の数、パリティ領域の数および信頼性指数を満たすローカルパリティレイアウトを作成することができる。
【００８５】
また、パリティレイアウト決定方法は、ローカルパリティレイアウト毎に、データ領域およびパリティ領域の容量に対して、データ領域またはパリティ領域に記憶される情報を復旧するための平均データ量の比率を示すリカバリ効率を算出できる。パリティレイアウト決定方法は、算出したリカバリ効率が最もよいローカルパリティレイアウトを選択することができる。
【００８６】
これにより、パリティレイアウト決定方法は、複数のデータを冗長化して記憶するためのローカルパリティレイアウトが複数作成された場合、リカバリ効率が最もよいパリティレイアウトを選択することができる。パリティレイアウト決定方法では、パリティレイアウトの選択肢が増えているため、ローカルパリティを計算する計算範囲の長さが同じローカルパリティレイアウトを利用者に提供する場合と比べ、ほとんどのケースでリカバリ効率が向上する。また、利用者には、データチャンク数ｋ、パリティチャンク数の合計値ｍ、信頼性指数の合計値ｃ等のパラメータの組み合わせ１つにつき、１つのローカルパリティレイアウトを提供する。このため、利用者に提供するローカルパリティレイアウトの総数は、ローカルパリティを計算する計算範囲の長さが同じローカルパリティレイアウトを提供する場合と等しい。従って、レイアウトの解析が複雑にならない。
【００８７】
また、ストレージ装置２０１は、複数のデータのうちローカルパリティを計算する計算範囲の長さが異なる複数のローカルパリティレイアウトを組み合わせることにより作成されるローカルパリティレイアウトに基づく記憶領域を有することができる。このため、ストレージ装置２０１は、容量効率と信頼性を同一の値に揃えた時、リカバリ効率がよい記憶領域を有することができる。
【００８８】
なお、本実施の形態で説明したパリティレイアウト決定方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。パリティレイアウト決定プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、パリティレイアウト決定プログラムは、インターネット等のネットワークを介して配布してもよい。
【００８９】
上述した実施の形態に関し、さらに以下の付記を開示する。
【００９０】
（付記１）複数のデータを冗長化して記憶するためのローカルパリティレイアウトを、前記複数のデータのうちローカルパリティを計算する計算範囲の長さが異なる複数のローカルパリティレイアウトを組み合わせることにより作成する、
処理をコンピュータに実行させることを特徴とするパリティレイアウト決定プログラム。
【００９１】
（付記２）前記コンピュータに、
データ領域の数、パリティ領域の数およびデータの冗長度を示す信頼性指数を取得する処理を実行させ、
前記作成する処理は、
前記ローカルパリティレイアウトを、
前記複数のローカルパリティレイアウトのそれぞれのデータ領域の数が、取得した前記データ領域の数であり、かつ、
前記複数のローカルパリティレイアウトのそれぞれのパリティ領域の数の総和が、取得した前記パリティ領域の数であり、かつ、
前記複数のローカルパリティレイアウトのそれぞれの信頼性指数の総和が、取得した前記信頼性指数の数であることを満たす前記複数のローカルパリティレイアウトから作成することを特徴とする付記１に記載のパリティレイアウト決定プログラム。
【００９２】
（付記３）前記コンピュータに、
前記ローカルパリティレイアウトが複数作成された場合、
前記ローカルパリティレイアウト毎に、前記データ領域および前記パリティ領域の容量に対して、前記データ領域または前記パリティ領域に記憶される情報を復旧するための平均データ量の比率を示すリカバリ効率を算出し、
前記算出したリカバリ効率が最もよいローカルパリティレイアウトを選択する、
処理を実行させることを特徴とする付記２に記載のパリティレイアウト決定プログラム。
【００９３】
（付記４）複数のデータを冗長化して記憶するためのローカルパリティレイアウトを、前記複数のデータのうちローカルパリティを計算する計算範囲の長さが異なる複数のローカルパリティレイアウトを組み合わせることにより作成する、
処理をコンピュータに実行させるパリティレイアウト決定プログラムを記録したことを特徴とする前記コンピュータに読み取り可能な記録媒体。
【００９４】
（付記５）複数のデータを冗長化して記憶するためのローカルパリティレイアウトを、前記複数のデータのうちローカルパリティを計算する計算範囲の長さが異なる複数のローカルパリティレイアウトを組み合わせることにより作成する、
処理をコンピュータが実行することを特徴とするパリティレイアウト決定方法。
【００９５】
（付記６）複数のデータのうちローカルパリティを計算する計算範囲の長さが異なる複数のローカルパリティレイアウトを組み合わせることにより作成される、前記複数のデータを冗長化して記憶するためのローカルパリティレイアウトに基づく記憶領域を有することを特徴とするストレージ装置。
【００９６】
（付記７）複数のデータを冗長化して記憶するためのローカルパリティレイアウトを、前記複数のデータのうちローカルパリティを計算する計算範囲の長さが異なる複数のローカルパリティレイアウトを組み合わせることにより作成する、制御装置と、
前記ローカルパリティレイアウトに基づく記憶領域を有する、ストレージ装置と、
を含むことを特徴とするストレージシステム。
【符号の説明】
【００９７】
１０１  パリティレイアウト決定装置
２０１  ストレージ装置
２０２  ホストコンピュータ
５０１  取得部
５０２  作成部
５０３  算出部
５０４  選択部
【図１】
0006375886.tif 000002
【図２】
0006375886.tif 000003
【図３】
0006375886.tif 000004
【図４】
0006375886.tif 000005
【図５】
0006375886.tif 000006
【図６】
0006375886.tif 000007
【図７】
0006375886.tif 000008