(57)【要約】【課題】応答の遅延、停止が発生した記憶媒体に対するアクセスを回避可能とし、冗長アレイ構成のストレージのアクセス性能の低下を回避可能とする。            【解決手段】複数の記憶媒体と、各記憶媒体に対する書き込みデータ量を計測する書き込み量計測部と、前記各記憶媒体の負荷状態を監視するとともに、前記各記憶媒体に対するアクセスの応答の遅延、又は前記各記憶媒体の停止状態を監視する記憶媒体監視部と、ストライピングの単位であるチャンクについて、書き込みアクセス対象の前記チャンクの割り当て元の記憶媒体の書き込みデータ量と、前記記憶媒体の負荷状態、応答の遅延又は停止状態の少なくとも１つに基づき、別の記憶媒体を選択し、書き込みアクセス対象の前記チャンクを、前記別の記憶媒体のチャンクに変更する構成変更手段と、新たにアクセス対象となったチャンクに対してアクセス要求を発行するアクセス制御手段を備える。【選択図】図１２
2017199043.tif 000002
【特許請求の範囲】
【請求項１】
複数の記憶媒体と、
前記各記憶媒体に対する書き込みデータ量を計測する書き込み量計測部と、
前記各記憶媒体の負荷状態を監視するとともに、前記各記憶媒体に対するアクセスの応答の遅延又は停止状態を監視する記憶媒体監視部と、
データを複数の前記記憶媒体に分割して転送するストライピングの単位となる記憶領域であるチャンクについて、書き込みアクセス対象のチャンクの割り当て元の記憶媒体の書き込みデータ量と、前記記憶媒体の負荷状態、応答の遅延又は停止状態の少なくとも１つに基づき、前記書き込みアクセス対象のチャンクの割り当て元の前記記憶媒体の変更が必要であると判断した場合、別の記憶媒体を選択し、前記書き込みアクセス対象のチャンクを、前記別の記憶媒体のチャンクに変更する構成変更手段と、
新たにアクセス対象となったチャンクに対して書き込みアクセス要求を発行するアクセス制御手段と、
を備えた、ことを特徴とするストレージ装置。
【請求項２】
前記構成変更手段は、書き込みアクセス要求を前記記憶媒体に対して発行する前に、書き込みアクセス対象のチャンクの割り当て元の前記記憶媒体の書き込みデータ量と、他の記憶媒体との書き込みデータ量との差が、予め定められた所定の条件を満たしているか、又は、
前記書き込みアクセス対象のチャンクの割り当て元の前記記憶媒体について、高負荷、応答遅延、応答停止の少なくともいずれか一つに該当していると判定した場合、
前記複数の記憶媒体から、前記書き込みデータ量の条件、高負荷、応答遅延、停止に関していずれにも該当しない、別の記憶媒体を選択し、
前記書き込みアクセス対象のチャンクの割り当て元の前記記憶媒体から、前記書き込みアクセス対象の前記チャンクを解放し、
前記別の記憶媒体の未使用のチャンクをアクセス対象として割り当てることで、書き込みアクセス先のストライプの構成を変更する、ことを特徴とする請求項１記載のストレージ装置。
【請求項３】
前記複数の記憶媒体がＲＡＩＤを構成し、
前記アクセス制御手段が、
ホストからのアクセス要求を各記憶媒体に対するアクセスに変換するアクセス実行部と、
ＲＡＩＤストライプの構成変更によって新たにアクセス対象となったチャンクに対してアクセス要求を発行するアクセス再発行部と、
を備え、
前記構成変更手段は、
前記各記憶媒体に対してアクセス要求を行う記憶媒体アクセス部と、
前記各記憶媒体のチャンクの割り当て、解放を行うチャンク割当部と、
ＲＡＩＤのストライプ構成を管理するＲＡＩＤ管理部と、
書き込みアクセス要求を発行する前に、書き込み先の記憶媒体の書き込みデータ量、又は、前記書き込み先の記憶媒体の状態に応じて、ＲＡＩＤストライプの構成を変更するＲＡＩＤ構成変更部と、
を備えた、ことを特徴とする請求項１又は２記載のストレージ装置。
【請求項４】
前記ＲＡＩＤ管理部は、前記ＲＡＩＤのストライプの前記ホスト側からみたアドレス、ＲＡＩＤのレベル、ＲＡＩＤのストライプのチャンク数、前記チャンクが割り当てられた記憶媒体の識別情報とアドレス情報の対を含む使用チャンク情報を、対応付けて記憶部で管理する、ことを特徴とする請求項３記載のストレージ装置。
【請求項５】
前記アクセス実行部は、前記ホストからのアクセス要求を前記各記憶媒体に対応するアクセスに変換してアクセスの実行を管理して、前記アクセス要求に関する処理の実行完了の応答を前記ホストに対して行う、ことを特徴とする請求項３又は４記載のストレージ装置。
【請求項６】
前記記憶媒体アクセス部は、前記アクセス実行部によって変換又は生成されたアクセス要求を前記記憶媒体に対して発行し、前記記憶媒体からの結果を、前記アクセス実行部に応答として返す、ことを特徴とする請求項３乃至５のいずれか１項に記載のストレージ装置。
【請求項７】
前記チャンク割当部は、前記各記憶媒体の記憶領域をチャンク単位に分割し、各チャンクの使用状況を管理し、ＲＡＩＤストライプの構成変更に伴うチャンクの解放、及び、チャンクの割り当てを行う、ことを特徴とする請求項３乃至６のいずれか１項に記載のストレージ装置。
【請求項８】
前記ＲＡＩＤ管理部は、ＲＡＩＤストライプを構成するチャンクの組み合わせ、及び記憶領域全体のアドレス空間に対するチャンクのマッピングを管理する、ことを特徴とする請求項３乃至７のいずれか１項に記載のストレージ装置。
【請求項９】
前記書き込み量計測部は、各記憶媒体に発行された書き込みアクセス要求の情報を参照して、記憶媒体毎の書き込みデータ量を計測する、ことを特徴とする請求項３乃至８のいずれか１項に記載のストレージ装置。
【請求項１０】
前記記憶媒体監視部は、前記記憶媒体アクセス部を通して、各記憶媒体に対する発行待ち、又は、発行中のアクセス要求から、負荷を算出し、高負荷状態の記憶媒体を検出し、各記憶媒体のアクセスに対する応答状況を監視して応答遅延又は停止状態の記憶媒体を検出する、ことを特徴とする請求項３乃至９のいずれか１項に記載のストレージ装置。
【請求項１１】
前記ＲＡＩＤ構成変更部は、前記記憶媒体アクセス部によって各記憶媒体に書き込みアクセス要求を発行する直前に、書き込み先の記憶媒体の書き込みデータ量と、アクセス負荷、応答遅延、又は、停止の有無を確認し、
書き込み先の記憶媒体について、他の記憶媒体との書き込みデータ量の差が、予め定められた所定の条件を満たしているか、
書き込み先の記憶媒体について、高負荷、応答遅延又は停止の少なくとも１つの条件を満たしている場合には、書き込みアクセス先のＲＡＩＤストライプについて、書き込み先の記憶媒体が、高負荷、応答遅延、応答停止に該当しない、他の記憶媒体となるように、チャンクの構成を変更する、ことを特徴とする請求項３乃至１０のいずれか１項に記載のストレージ装置。
【請求項１２】
前記アクセス再発行部は、書き込み先の記憶媒体において、他の記憶媒体との書き込みデータ量の差が、予め定められた所定の条件を満たすか、書き込み先の記憶媒体について高負荷、応答遅延、応答停止のいずれかの条件を満たしている場合には、前記記憶媒体アクセス部に対して、書き込み先の記憶媒体への書き込みアクセス要求のキャンセルを指示し、前記アクセス実行部に対して、割り当てを変更したチャンクに対するアクセス要求の再発行を指示する請求項３乃至１１のいずれか１項に記載のストレージ装置。
【請求項１３】
前記記憶媒体は、ブロック単位で一括消去される書き変え可能な不揮性半導体記憶デバイスからなる、請求項１乃至１２のいずれか１項に記載のストレージ装置。
【請求項１４】
請求項１乃至１３のいずれか１項に記載のストレージ装置と、
前記ストレージ装置と通信接続され、前記ストレージ装置に対してアクセス要求を行うホストと、
を備えたコンピュータシステム。
【請求項１５】
複数の記憶媒体の各々に対する書き込みデータ量を計測し、
前記各記憶媒体の負荷状態を監視するとともに、前記各記憶媒体に対するアクセスの応答の遅延又は停止状態を監視し、
データを複数の前記記憶媒体に分割して転送するストライピングの単位となる記憶領域であるチャンクについて、書き込みアクセス対象のチャンクの割り当て元の記憶媒体の書き込みデータ量と、前記記憶媒体の負荷状態、応答の遅延又は停止状態の少なくとも１つに基づき、前記書き込みアクセス対象のチャンクの割り当て元の前記記憶媒体の変更が必要であると判断した場合、別の記憶媒体を選択し、書き込みアクセス対象の前記チャンクを、前記別の記憶媒体のチャンクに変更し、
新たにアクセス対象となったチャンクに対して書き込みアクセス要求を発行する、ことを特徴とするストレージのアクセス制御方法。
【請求項１６】
書き込みアクセス要求を前記記憶媒体に対して発行する前に、前記書き込みアクセス対象のチャンクの割り当て元の前記記憶媒体の書き込みデータ量と、他の記憶媒体との書き込みデータ量との差が、予め定められた所定の条件を満たしているか、又は、
前記書き込みアクセス対象のチャンクの割り当て元の前記記憶媒体について、高負荷、応答遅延、応答停止の少なくともいずれか一つに該当していると判定した場合、
前記複数の記憶媒体から、前記書き込みデータ量の条件、高負荷、応答遅延、停止に関していずれにも該当しない別の記憶媒体を選択し、
前記書き込みアクセス対象のチャンクの割り当て元の前記記憶媒体から、前記書き込みアクセス対象の前記チャンクを解放し、
前記別の記憶媒体の未使用のチャンクをアクセス対象として割り当てることで、書き込みアクセス先のストライプの構成を変更する、ことを特徴とする請求項１５記載のストレージのアクセス制御方法。
【請求項１７】
前記複数の記憶媒体がＲＡＩＤを構成し、
書き込みアクセス要求を発行する前に、書き込み先の記憶媒体の書き込みデータ量、又は、前記記憶媒体の高負荷、応答遅延、停止状態に応じて、ＲＡＩＤストライプの構成を変更する、ことを特徴とする請求項１５又は１６記載のストレージのアクセス制御方法。
【請求項１８】
複数の記憶媒体の各々に対する書き込みデータ量を計測する処理と、
前記各記憶媒体の負荷状態を監視するとともに、前記各記憶媒体に対するアクセスの応答の遅延又は停止状態を監視する処理と、
データを複数の前記記憶媒体に分割して転送するストライピングの単位となる記憶領域であるチャンクについて、書き込みアクセス対象のチャンクの割り当て元の記憶媒体の書き込みデータ量と、前記記憶媒体の負荷状態、応答の遅延又は停止状態の少なくとも１つに基づき、前記書き込みアクセス対象のチャンクの割り当て元の前記記憶媒体の変更が必要であると判断した場合、別の記憶媒体を選択し、書き込みアクセス対象の前記チャンクを、前記別の記憶媒体のチャンクに変更する処理と、
新たにアクセス対象となったチャンクに対して書き込みアクセス要求を発行する処理と、
をコンピュータに実行させるプログラム。
【請求項１９】
書き込みアクセス要求を前記記憶媒体に対して発行する前に、前記書き込みアクセス対象のチャンクの割り当て元の前記記憶媒体の書き込みデータ量と、他の記憶媒体との書き込みデータ量との差が、予め定められた所定の条件を満たしているか、又は、
前記書き込みアクセス対象のチャンクの割り当て元の前記記憶媒体について、高負荷、応答遅延、応答停止の少なくともいずれか一つに該当していると判定した場合、
前記複数の記憶媒体から、前記書き込みデータ量の条件、高負荷、応答遅延、停止に関していずれにも該当しない別の記憶媒体を選択し、
前記書き込みアクセス対象のチャンクの割り当て元の前記記憶媒体から、前記書き込みアクセス対象の前記チャンクを解放し、
前記別の記憶媒体の未使用のチャンクをアクセス対象として割り当てることで、書き込みアクセス先のストライプの構成を変更する処理を、前記コンピュータに実行させる請求項１８記載のプログラム。
【請求項２０】
前記複数の記憶媒体がＲＡＩＤを構成しており、
書き込みアクセス要求を発行する前に、書き込み先の記憶媒体の書き込みデータ量、又は、前記記憶媒体の高負荷、応答遅延、停止状態に応じて、ＲＡＩＤストライプの構成を変更する処理を前記コンピュータに実行させる請求項１８又は１９記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置とシステム及び方法とプログラムに関する。
【背景技術】
【０００２】
＜ＲＡＩＤ＞
複数の記憶媒体を用いて仮想的に単一の記憶領域を提供し冗長性を持たせ信頼性を向上する技術として、ＲＡＩＤ（Redundant Array of Inexpensive Disks）が広く用いられている。記憶媒体間の冗長構成の実現に関して、複数のＲＡＩＤレベルが存在する。例えばＲＡＩＤ１０、ＲＡＩＤ５、ＲＡＩＤ６等では、通常、各記憶媒体の記憶領域を、チャンク（chunk）と呼ばれる、予め定められた一定サイズ（チャンクサイズ(chunk size)又はストライプサイズ（stripe size））の領域で区切る。チャンクはストランピング（データを複数の前記記憶媒体に分割して転送する）の単位となる。仮想的なアドレス空間に異なる記憶媒体のチャンクを順番に割り当てるストライピングを行うことで、複数記憶媒体の並列動作による性能向上と、複数記憶媒体の容量を合わせた記憶領域を実現する。４台の記憶媒体で構成されるＲＡＩＤ５では、データは一定サイズのチャンク単位に分割され、例えばチャンク１〜３は記憶媒体１〜３に格納され、チャンク１〜３のパリティは記憶媒体４に格納される。チャンク１〜３（パリティのチャンクを含ませる場合、チャンク１〜４）を「ＲＡＩＤストライプ」と呼ぶ。チャンクとパリティの順序はストライプごとに変更され、例えば、次のストライプでは、チャンク４〜６は記憶媒体２〜４に格納され、チャンク４〜６のパリティは記憶媒体１に格納される。また、ＲＡＩＤ０を除き、記憶媒体間のデータにミラー、パリティ等の冗長性を持たせることで、記憶媒体の障害等によるデータ消失を防止して、信頼性を向上させている。
【０００３】
ＲＡＩＤは、記憶媒体であるＨＤＤ（Hard Disk Drive）の性能、容量、信頼性を伸ばすために用いられているが、近年では、ＲＡＩＤの記憶媒体として、ＮＡＮＤフラッシュメモリを用いたＳＳＤ（Solid State Drive）も用いられつつある。ＳＳＤについてその概略を以下に説明する。
【０００４】
＜ＳＳＤ＞
ＨＤＤと同様のインタフェースを備えたＳＳＤに対して、アクセス元となるホストは、ＨＤＤと同様に、読み出し（Ｒｅａｄ）及び書き込み（Ｗｒｉｔｅ）アクセスが可能である。しかしながら、よく知られているように、ＮＡＮＤフラッシュメモリは、ＨＤＤとは異なる特性を有する。例えばＮＡＮＤフラッシュメモリは、各領域に対する格納データの更新回数増加に従ってビットエラーの発生率が上昇する。そのため、ＮＡＮＤフラッシュメモリが正しくデータを保持可能な条件下における、格納データの更新回数に制限を持つ。
【０００５】
ＳＳＤでは、ＮＡＮＤフラッシュメモリにおける格納データの更新回数（書き換え回数）の増加に伴うエラー発生を防ぐため（ＳＳＤの寿命を延ばす）に、各記憶領域に対する更新回数（データ書換回数）を各記憶領域（記憶デバイス）間で均一化する「ウェアレベリング（wear levelling / wear leveling）」と呼ばれる技術が用いられる。ＳＳＤで用いられるＮＡＮＤフラッシュメモリの各記憶領域における更新回数は、ＳＳＤに対するＷｒｉｔｅの総量で表される。つまり、ＳＳＤに対するＷｒｉｔｅの総量がＳＳＤの寿命を決定する。
【０００６】
また、ＳＳＤは大容量化が進む一方で、その寿命は短くなりつつある。短寿命化は、記憶デバイスであるＮＡＮＤフラッシュメモリの更新回数制限の減少による。ＮＡＮＤフラッシュメモリは、近年、製造プロセスの微細化、及び、メモリセルに格納される情報量の多値化によって、大容量化が実現されているが、更新可能な回数は減少している。例えば、メモリセルに格納されるビットを多値化したＭＬＣ（Multi Level Cell）又はＴＬＣ（Triple Level Cell）等のＮＡＮＤフラッシュメモリは、大容量化、低コスト化を実現しているが、更新可能な回数の制限が特に少ない。したがって、ＳＳＤの寿命に直結するＷｒｉｔｅ可能な総データ量も減少する。つまり、ＳＳＤに対するデータの更新頻度、更新量の削減は、寿命の観点から、特に重要性を増している。
【０００７】
＜ＳＳＤのアクセス特性＞
更に、ＳＳＤでは、ＨＤＤと同様のアクセス手段を提供するために、ＮＡＮＤフラッシュメモリのアクセス特性を隠蔽するための様々な処理が行われる。例えば、ＮＡＮＤフラッシュメモリでは、格納されたデータを更新する場合、一度格納されたデータを消去する消去（Ｅｒａｓｅ）操作が必要である。ＮＡＮＤフラッシュメモリにおいて、読み出し及び書き込みは、該読み出し及び書き込みアクセスの単位であるページ単位に行われ、消去（Ｅｒａｓｅ）は、ページを複数まとめたブロック単位となる。ＮＡＮＤフラッシュメモリにおいて、あるページに格納されたデータを更新する場合、一括消去の対象となるブロックに含まれる有効なページに対するデータの退避、及び、再格納が、ＳＳＤによって行われる。ＮＡＮＤフラッシュメモリにおいて、ブロックの消去に伴うデータ退避、及び、再格納のページ数は、ＳＳＤに対する、書き込み先のアドレス、及び、アクセスサイズによって変化する。具体的には、書き込みアクセスのサイズが小さくなるほど、ＮＡＮＤフラッシュメモリのブロックにおける更新対象外のページが増加して、当該ブロックの消去に伴い退避が必要とされるページ数が増加する。
【０００８】
また、ＳＳＤ内部におけるＮＡＮＤフラッシュメモリの記憶領域に関する使用状況、ＳＳＤに対するアクセスの状況等の条件で、消去（Ｅｒａｓｅ）に伴うページの退避、再格納の処理負荷は、増減する。そのため、ＳＳＤに対するアクセス要求の状況から、ＳＳＤの内部における負荷の状況を正確に把握することは、困難である。ＳＳＤ内部の負荷の把握が困難であることは、ＳＳＤが意図しない状況で高負荷となり、結果として、一時的に応答の遅延、若しくは停止が発生することを意味する。
【０００９】
ＳＳＤにおけるアクセスの応答遅延は、情報処理システムの性能低下に加えて、システム全体の動作におけるタイムアウトの形で障害として影響を与える可能性が存在する。
【００１０】
ＲＡＩＤを構成するＳＳＤにおいて、応答の遅延、若しくは停止が発生した場合、応答遅延又は停止状態のＳＳＤに対する読み出し（Ｒｅａｄ）、又は書き込み（Ｗｒｉｔｅ）が行われると、アクセス要求元に対して応答の遅延、停止が顕在化する。
【００１１】
つまり、ＲＡＩＤを構成する各ＳＳＤの応答遅延、停止は、ＲＡＩＤグループ全体の応答遅延、停止に結び付くことになる。
【００１２】
ＲＡＩＤグループ全体の応答遅延、停止を回避するためには、応答の遅延、停止が発生したＳＳＤに対するアクセスを避けることが必要である。
【００１３】
＜特許文献１＞
記憶媒体にＳＳＤを用いたＲＡＩＤ構成として、例えば特許文献１には、複数のストレージデバイスのうちの、読み込み要求が対象とするデータを含む少なくとも第１のストレージデバイスを識別し、第１のストレージデバイスが相対的に長い応答レイテンシ又は相対的に低いスループットの少なくとも一方を含む可変パフォーマンスを示すであろうことを検出又は予測したことに応答して、前記複数のストレージデバイスのうちの前記第１のストレージデバイス以外の１又はそれ以上のデバイスから、前記データを取得するように構成された再構成読み込み要求を生成するように構成されたコンピュータシステムが開示されている。特許文献１では、応答遅延が発生したＳＳＤのデータを、代わりにＲＡＩＤグループ内の他のＳＳＤに格納されている、冗長関係にあるデータを読み出すことで、応答の遅延を回避している。
【００１４】
＜特許文献２＞
また特許文献２には、ＳＳＤでＲＡＩＤを構成する場合、ＳＳＤにおけるウェアレベリングによる書き込み／消去回数の平滑化が行われるとともに、ＲＡＩＤ機能による負荷分散によって、各ＳＳＤへの書き込み回数が均一化される可能性が高くなり、複数のＳＳＤが同時期に故障する可能性が高くなってしまい、交換保守作業が難しくなるため、データ損失の危険性が生じるという問題に対して、複数の不揮発性の半導体記憶装置に対するデータの書き込み頻度に差をつける必要があると判断した場合、各半導体記憶装置に対するデータの書き込み頻度に差をつけるべく、各半導体記憶装置に対してデータと共に誤り訂正符号データをストライプブロック単位で分散させて記録するデータ破損の復元機能にかかるデータおよび誤り訂正符号データの配置情報を記録したマッピング表で管理されているストライプブロックのデータを入れ替えて配置情報を変更する。これにより、各半導体記憶装置に対するデータの書き込み頻度に差がつき、複数の半導体記憶装置が同時期に故障してしまうことを回避させることができるので、データ損失の危険性を低減させるようにした構成が開示されている。
【００１５】
＜特許文献３＞
なお、ＨＤＤのＲＡＩＤに関して、特許文献３には、ＲＡＩＤ５レベルのディスクアレイのごとく、データの書き込み時にパリティの読み出しを要求するタイプのディスクアレイにおいて、書き込み要求あるいは読み出し要求の実行を高速にするような、ディスクアレイ内の記憶領域の割り当て方法として、論理的に連続する複数ブロックのデータに対して論理ブロックおよびその論理ブロックのパリティを格納するドライブが全て異なるように制御する構成が開示されている。
【００１６】
＜特許文献４＞
特許文献４には、階層レベルを含む階層構成ルールが変更された場合に、コントローラは、ストレージボリュームの階層の階層構成を変更し、プールが、有効であった階層構成ルールを満たさない場合に生じる、物理ストレージデバイスに対する階層レベルの変化に基づいて、コントローラは、プールを複数の仮想ボリュームに割り当てる構成が開示されている。
【００１７】
＜特許文献５＞
なお、ＲＡＩＤ構成ではないが、メモリの負荷に応じて格納先のメモリを変更する関連技術として、例えば特許文献５には、複数のノードの各々は、高負荷状態と判定された第１メモリの一部のデータを、他のノードの第２メモリに移動し、第１メモリと第２メモリとでインタリーブを行うメモリ制御部を備えた構成が開示されている。
【先行技術文献】
【特許文献】
【００１８】
【特許文献１】特表２０１３−５４１７６５号公報
【特許文献２】特開２０１０−１５５１６号公報
【特許文献３】特開平８−１８５２７５号公報
【特許文献４】特開２０１１−６５６２４号公報
【特許文献５】特開２００９−２３７７０９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１９】
以下に関連技術の分析を与える。
【００２０】
上記したように、ＲＡＩＤのＨＤＤをＳＳＤで置き換える場合、ＳＳＤのＨＤＤとは異なる特性を考慮する必要がある。例えばＳＳＤの寿命は、接続元ホストからのＷｒｉｔｅ総量に依存する。このため、Ｗｒｉｔｅ量が限界に近づいたＳＳＤは、データ損失を防ぐために、交換が必要である。ＳＳＤの交換は新たなコストの発生につながる。よって、可能な限り、ＳＳＤの交換の発生頻度を減らすことが望ましい。つまり、ＳＳＤのＷｒｉｔｅデータ量を削減することが望まれる。
【００２１】
また、複数のＳＳＤを使用する環境において、各ＳＳＤのＷｒｉｔｅデータ量を削減するには、ＳＳＤに対するＷｒｉｔｅデータ量を、直接減らすだけでなく、各ＳＳＤに対するＷｒｉｔｅデータ量を均一にすることで、特定のＳＳＤが早く寿命を迎えないようにすることが望まれる。
【００２２】
しかしながら、ＲＡＩＤを構成するＳＳＤでは、各ＳＳＤに対するＷｒｉｔｅデータ量の均一化は困難である。その理由として、一般的なＲＡＩＤでは、提供するアドレス空間に対する、各ＳＳＤの記憶領域のマッピングが固定であることが挙げられる。つまり、ＲＡＩＤの提供するアドレス空間に対する各Ｗｒｉｔｅデータの格納先は、Ｗｒｉｔｅ先のアドレス（Ｗｒｉｔｅアクセス対象のアドレス）によって一意に決定される。このため、ＲＡＩＤを構成するＳＳＤ間において、Ｗｒｉｔｅデータ量の偏りを解消するための、Ｗｒｉｔｅデータ量の調整は困難である。
【００２３】
また、記憶媒体間で冗長性を持つＲＡＩＤ５、ＲＡＩＤ６等のＲＡＩＤレベルを用いる場合には、各記憶媒体のチャンクを組み合わせてパリティを形成するため、データの格納先となる記憶媒体、アドレスを自由に選択することは困難である。
【００２４】
さらに、ＳＳＤは、ＨＤＤとは異なり、外部から負荷を予測することが困難である。このため、外部からのアクセス要求の負荷が低い状況であっても、一時的に応答の遅延、停止が発生し得る。ＲＡＩＤを構成するＳＳＤにおいて、応答の遅延、若しくは停止が発生した場合、応答遅延又は停止状態のＳＳＤに対するＲｅａｄ又はＷｒｉｔｅが行われると、アクセス要求元に対して、応答の遅延、停止が顕在化する。
【００２５】
ＲＡＩＤグループ全体の応答遅延、停止を回避するためには、応答の遅延、停止が発生したＳＳＤに対するアクセスを避けることが必要である。
【００２６】
特許文献１によれば、ＲＡＩＤグループに対するＲｅａｄアクセスは、応答遅延が発生したＳＳＤのデータを、代わりに、ＲＡＩＤグループ内の他のＳＳＤに格納された冗長関係にあるデータを読み出すことで、応答遅延等を回避することは可能であるが、特定のＳＳＤに対するＷｒｉｔｅアクセスを回避することは困難である。これは、一般的なＲＡＩＤでは、
・各ＳＳＤに対する記憶領域のマッピングが固定であること、
・固定されたチャンクの集合でパリティを形成すること、による。
【００２７】
また、特許文献２では、ＲＡＩＤストライプと呼ばれる、複数記憶媒体間でパリティを構成するチャンクの集合において、複数のフラッシュメモリで構成された記憶媒体が同時に寿命を迎えないように、チャンクのマッピングを記憶媒体間で入れ替えることで、各記憶媒体のＷｒｉｔｅデータ量を調整している。しかし、データ格納先の変更は、ＲＡＩＤストライプ内に限定されており、記憶媒体間で、チャンクのマッピングを交換するものである。このため、応答が停止したＳＳＤと他のＳＳＤとの間でデータを入れ替えた場合に、停止したＳＳＤに対するアクセスを避けることは不可能である。
【００２８】
また、特許文献３には、ＲＡＩＤストライプを動的に形成する方法が開示されている。ＲＡＩＤストライプを構成するチャンクを動的に選択する際に、先に選んだチャンクが格納された記憶媒体のいずれとも衝突しないように選択することで、冗長性を持ったＲＡＩＤストライプの動的な形成を実現する。しかしながら、特許文献３には、構成済みのＲＡＩＤストライプに対して、使用する記憶媒体側の状態に基づき、該ＲＡＩＤストライプを再構成する、ことについて何も記載されていない。
【００２９】
上記特許文献等では、ＲＡＩＤグループを構成するＳＳＤにおいて発生する、Ｗｒｉｔｅデータ量に依存する寿命、及び、一時的な応答遅延又は停止の問題を同時に解決することはできない。
【００３０】
本発明は、上記課題に鑑みて創案されたものであって、その目的は、応答の遅延、停止が発生した記憶媒体に対するアクセスを回避可能とし、アクセス性能の低下を抑制可能とする装置、システム、方法、プログラムを提供することにある。
【課題を解決するための手段】
【００３１】
本発明の１つの側面によれば、複数の記憶媒体と、前記各記憶媒体に対する書き込みデータ量を計測する書き込み量計測部と、前記各記憶媒体の負荷状態を監視するとともに、前記各記憶媒体に対するアクセスの応答の遅延又は停止状態を監視する記憶媒体監視部と、データを複数の前記記憶媒体に分割して転送するストライピングの単位となる記憶領域であるチャンクについて、書き込みアクセス対象の前記チャンクの割り当て元の記憶媒体の書き込みデータ量と、前記記憶媒体の負荷状態、応答の遅延又は停止状態の少なくとも１つに基づき、書き込みアクセス対象のチャンクの割り当て元の前記記憶媒体の変更が必要であると判断した場合、別の記憶媒体を選択し、書き込みアクセス対象の前記チャンクを、前記別の記憶媒体のチャンクに変更する構成変更手段と、新たにアクセス対象となったチャンクに対して書き込みアクセス要求を発行するアクセス制御手段と、を備えたストレージ装置が提供される。
【００３２】
本発明によれば、上記ストレージ装置と、ホストを備えたコンピュータシステムが提供される。
【００３３】
本発明の他の側面によれば、複数の記憶媒体の各々に対する書き込みデータ量を計測し、前記各記憶媒体の負荷状態を監視するとともに、前記各記憶媒体に対するアクセスの応答の遅延又は停止状態を監視し、
データを複数の前記記憶媒体に分割して転送するストライピングの単位となる記憶領域であるチャンクについて、書き込みアクセス対象の前記チャンクの割り当て元の記憶媒体の書き込みデータ量と、前記記憶媒体の負荷状態、応答の遅延又は停止状態の少なくとも１つに基づき、書き込みアクセス対象のチャンクの割り当て元の前記記憶媒体の変更が必要であると判断した場合、別の記憶媒体を選択し、書き込みアクセス対象の前記チャンクを、前記別の記憶媒体のチャンクに変更し、
新たにアクセス対象となったチャンクに対して書き込みアクセス要求を発行する、ストレージ制御方法が提供される。
【００３４】
本発明の他の側面によれば、複数の記憶媒体の各々に対する書き込みデータ量を計測する処理と、
前記各記憶媒体の負荷状態を監視するとともに、前記各記憶媒体に対するアクセスの応答の遅延又は停止状態を監視する処理と、
データを複数の前記記憶媒体に分割して転送するストライピングの単位となる記憶領域であるチャンクについて、書き込みアクセス対象の前記チャンクの割り当て元の記憶媒体の書き込みデータ量と、前記記憶媒体の負荷状態、応答の遅延又は停止状態の少なくとも１つに基づき、書き込みアクセス対象のチャンクの割り当て元の前記記憶媒体の変更が必要であると判断した場合、別の記憶媒体を選択し、書き込みアクセス対象の前記チャンクを、前記別の記憶媒体のチャンクに変更する処理と、
新たにアクセス対象となったチャンクに対して書き込みアクセス要求を発行する処理と、をコンピュータに実行させるプログラムが提供される。
【００３５】
本発明によれば、該プログラムを記録したコンピュータ読み出し可能な記録媒体（半導体メモリ、磁／光ディスク等）が提供される。
【発明の効果】
【００３６】
本発明によれば、応答の遅延、停止が発生した記憶媒体に対するアクセスを回避可能とし、冗長アレイ構成のストレージのアクセス性能の低下を回避可能としている。
【図面の簡単な説明】
【００３７】
【図１】本発明の一実施形態のシステム構成の一例を例示する図である。
【図２】発明の一実施形態のストレージの構成を例示する図である。
【図３】本発明の一実施形態におけるアクセス要求テーブルを例示する図である。
【図４】本発明の一実施形態におけるアクセステーブルを例示する図である。
【図５】本発明の一実施形態におけるＲＡＩＤ管理テーブルを例示する図である。
【図６】本発明の一実施形態の動作を説明するフローチャートである。
【図７】本発明の一実施形態の動作を説明するフローチャートである。
【図８】本発明の一実施形態の動作を説明するフローチャートである。
【図９】本発明の一実施形態におけるストレージの記憶媒体の構成を例示する図である。
【図１０】本発明の一実施形態におけるＲＡＩＤ管理テーブルを例示する図である。
【図１１】本発明の一実施形態における各記憶媒体のＷｒｉｔｅデータ量を例示する図である。
【図１２】本発明の基本概念を説明する図である。
【発明を実施するための形態】
【００３８】
本発明の基本概念を説明し、つづいて実施形態について説明する。図１２を参照すると、本発明に係るストレージ装置は、その一つの形態において、複数の記憶媒体（２１）と、前記各記憶媒体（２１）に対する書き込みデータ量を計測するＷｒｉｔｅ量（書き込み量）計測部（２６）と、前記各記憶媒体の負荷状態を監視するとともに、前記各記憶媒体に対するアクセスの応答の遅延又は停止状態を監視する記憶媒体監視部（２７）と、ストライピング（データを複数の記憶媒体に分割して並列転送する）の単位である記憶領域（チャンク）について、書き込みアクセス対象の前記チャンクの割り当て元の記憶媒体の書き込みデータ量と、前記記憶媒体の負荷状態、応答の遅延又は停止状態の少なくとも１つに基づき、書き込みアクセス対象のチャンクの割り当て元の前記記憶媒体がデータ書き込み先として不適であり、変更が必要であると判断した場合、別の記憶媒体（書き込みデータ量の条件、負荷状態、応答の遅延又は停止のいずれにも該当せず、データ書き込み先としてより適切な別の記憶媒体）を選択し、書き込みアクセス対象の前記チャンクを、前記別の記憶媒体のチャンクに変更（したがって書き込みアクセス先のストライプのチャンク構成を変更）する構成変更手段（３０）と、新たにアクセス対象となったチャンクに対して書き込みアクセス要求を発行するアクセス制御手段（３１）と、を備えている。
【００３９】
なお、本発明の一形態において、Ｗｒｉｔｅ量計測部（２６）、記憶媒体監視部（２７）、構成変更手段（３０）、アクセス制御手段（３１）は、例えばストレージ装置（２）を構成するコンピュータ上で実行されるプログラムによりその機能、処理を実現するようにしてもよい。Ｗｒｉｔｅ量計測部（２６）、記憶媒体監視部（２７）、構成変更手段（３０）、アクセス制御手段（３１）は、ＲＡＩＤコントローラあるいはＲＡＩＤサーバに実装してもよい。
【００４０】
本発明の一形態において、構成変更手段（３０）は、後述する図２の記憶媒体アクセス部（２３）、ＲＡＩＤ構成変更部（２８）、チャンク割当部（２４）、ＲＡＩＤ管理部（２５）で構成してもよい。
【００４１】
また、本発明の一形態において、アクセス制御手段（３１）は、図２のアクセス実行部（２２）とアクセス再発行部（２９）で構成してもよい。
【００４２】
本発明によれば、記憶媒体の応答遅延や応答停止等による影響を回避し、複数の記憶媒体に対する書き込みデータ量を調整することで、統合された仮想的な記憶領域を形成する。例えばＲＡＩＤ等による記憶媒体間のデータ冗長化を実現しつつ、各記憶媒体のＷｒｉｔｅデータ量の調整、及び記憶媒体の一時的な応答遅延、又は応答停止の影響を受けずに、複数記憶媒体からなる記憶領域を構成可能としている。
【００４３】
前述したように、ＲＡＩＤを構成する記憶媒体（例えばＳＳＤ）において、応答の遅延、又は停止が発生した場合、応答遅延又は停止状態の記憶媒体に対するＲｅａｄ、又はＷｒｉｔｅが行われると、アクセス要求元に対して応答の遅延、停止が顕在化する。各記憶媒体の応答遅延、停止がＲＡＩＤグループ全体の応答遅延、停止に結び付く。
【００４４】
ＲＡＩＤグループ全体の応答遅延、停止を回避するためには、応答の遅延、停止が発生した記憶媒体に対するアクセスを避けることが必要である。
【００４５】
そこで、本発明によれば、データの格納先となる記憶媒体（例えばＳＳＤ）及びアドレスを、データ格納時点の各記憶媒体（例えばＳＳＤ）に対するＷｒｉｔｅデータ量、及び、記憶媒体の応答遅延、停止状態に応じて、ＲＡＩＤストライプの構成を、動的に変更する手段を提供する。
【００４６】
本発明によれば、複数記憶媒体間のデータ冗長化を実現しつつ、各記憶媒体のＷｒｉｔｅデータ量の調整、及び記憶媒体の一時的な応答遅延、又は応答停止の影響を受けずに記憶領域を構成する。
【００４７】
一実施形態によれば、ホストからのアクセス要求を記憶媒体（図２の２１）に対するアクセスに変換してアクセス処理の実行を管理するアクセス実行部（図２の２２）と、
各記憶媒体に対してアクセス要求を行う記憶媒体アクセス部（図２の２３）と、
各記憶媒体から記憶領域の割り当てを行うチャンク割当部（図２の２４）と、
ＲＡＩＤストライプの構成を管理するＲＡＩＤ管理部（図２の２５）と、
各記憶媒体に対するＷｒｉｔｅデータ量を計測するＷｒｉｔｅ量計測部（図２の２６）と、
各記憶媒体の負荷状態、及び応答遅延又は停止状態を監視する記憶媒体監視部（図２の２７）と、
Ｗｒｉｔｅアクセス要求を発行する前に、Ｗｒｉｔｅ先の記憶媒体のＷｒｉｔｅデータ量、又は記憶媒体の状態に応じてＲＡＩＤストライプの構成を変更するＲＡＩＤ構成変更部（図２の２８）と、
ＲＡＩＤストライプの構成変更によって新たにアクセス対象となったチャンクに対してアクセス要求を発行するアクセス再発行部（図２の２９）を備える。
【００４８】
アクセス実行部（図２の２２）は、ホストからのアクセス要求を各記憶媒体（図２の２１）に対応するＲｅａｄ又はＷｒｉｔｅアクセスに変換する。また、Ｗｒｉｔｅアクセスの場合は、同時に、パリティ等の冗長データを更新するために、記憶媒体に対して必要なアクセスを生成する。更に、変換又は生成されたアクセスの実行状況を管理して、アクセス要求に関する処理の実行完了の応答を、ホストに対して行う。
【００４９】
記憶媒体アクセス部（図２の２３）は、アクセス実行部（図２の２２）によって変換又は生成されたアクセス要求を記憶媒体に対して発行し、結果をアクセス実行部（図２の２２）に応答として返す。
【００５０】
チャンク割当部（図２の２４）は、各記憶媒体の記憶領域を一定のチャンク単位に分割して、各チャンクの使用状況を管理する。また、チャンク割当部（図２の２４）は、ＲＡＩＤストライプの構成変更に伴うチャンクの割り当て要求に対して、指定された記憶媒体の未使用のチャンクを割り当てる。
【００５１】
ＲＡＩＤ管理部（図２の２５）は、各ＲＡＩＤストライプを構成するチャンクの組み合わせ、及び記憶領域全体のアドレス空間に対するチャンクのマッピングを管理する。
【００５２】
Ｗｒｉｔｅ量計測部（図２の２６）は、各記憶媒体に対して実際に発行されたＷｒｉｔｅアクセス要求の情報を参照して、記憶媒体毎のＷｒｉｔｅデータ量を計測する。
【００５３】
記憶媒体監視部（図２の２７）は、記憶媒体アクセス部（図２の２３）を通して、各記憶媒体に対する発行待ち、あるいは、発行中のアクセス要求から、負荷を算出し、高負荷状態（算出された負荷が所定の閾値以上）の記憶媒体を検出する。また、記憶媒体監視部（図２の２７）は、各記憶媒体のアクセスに対する応答状況を監視して応答遅延、あるいは停止状態の記憶媒体を検出する。
【００５４】
ＲＡＩＤ構成変更部（図２の２８）は、記憶媒体アクセス部（図２の２３）によって各記憶媒体にＷｒｉｔｅアクセス要求を発行するにあたり、例えば、発行の直前に、Ｗｒｉｔｅ先（Ｗｒｉｔｅアクセス対象のアドレス）の記憶媒体のＷｒｉｔｅデータ量と、アクセス負荷、応答遅延、あるいは、停止の有無を確認する。Ｗｒｉｔｅ先の記憶媒体について、他の記憶媒体とのＷｒｉｔｅデータ量の差が事前に決定された条件を満たすか、又は、Ｗｒｉｔｅ先の記憶媒体について、高負荷、応答遅延、応答停止のいずれかの条件を満たした場合は、Ｗｒｉｔｅアクセス要求先となるＲＡＩＤストライプについて、Ｗｒｉｔｅ先の記憶媒体が、前記条件を満たさない他の記憶媒体となるように、チャンクの構成を変更する。
【００５５】
アクセス再発行部（図２の２９）は、Ｗｒｉｔｅ先の記憶媒体において、他の記憶媒体とのＷｒｉｔｅデータ量の差が事前に決定された条件を満たすか、又は、Ｗｒｉｔｅ先の記憶媒体について高負荷、応答遅延、応答停止のいずれかの条件を満たしている場合には、
・記憶媒体アクセス部（図２の２３）に対して、Ｗｒｉｔｅ先の記憶媒体へのＷｒｉｔｅアクセス要求のキャンセルを指示し、
・アクセス実行部（図２の２２）に対して、割り当てを変更したチャンクに対するアクセス要求の再発行を指示する。
【００５６】
本発明によれば、ＲＡＩＤによる記憶媒体間のデータ冗長化を実現しつつ、各記憶媒体のＷｒｉｔｅデータ量の調整、及び記憶媒体の一時的な応答遅延、又は応答停止の影響を受けずに、複数の記憶媒体からなる記憶領域の構成を実現することができる。以下、実施形態の詳細について図面を参照して説明する。
【００５７】
＜システム構成例＞
図１は、本発明の一実施形態の構成を例示する図である。図１を参照すると、本発明の一実施形態においてシステム全体の構成はデータにアクセスする１台以上のホスト１、１つ又は複数の記憶媒体から構成されるストレージ２、ホスト１とストレージ２を接続するネットワーク３を含む。ネットワーク３は、ストレージ２に対して複数のホスト１が接続可能な形態であってもよい。あるいは、ホスト１とストレージ２がネットワーク３により直接接続される形態であってもよい。またストレージ２は、ネットワーク３によって接続された複数の装置又はシステム（分散システム等）によって構成してもよい。
【００５８】
＜ストレージの構成例＞
図１のストレージ２の構成の一例について説明する。図２を参照すると、ストレージ２は、記憶媒体２１と、アクセス実行部２２と、記憶媒体アクセス部２３と、チャンク割当部２４と、ＲＡＩＤ管理部２５と、Ｗｒｉｔｅ量計測部２６と、記憶媒体監視部２７と、ＲＡＩＤ構成変更部２８と、アクセス再発行部２９を備える。
【００５９】
記憶媒体２１は、ストレージ２の記憶領域全体のデータを格納し、ＮＡＮＤフラッシュメモリで構成されたＳＳＤの複数の記憶媒体（＃１、＃２、・・・＃ｎ、ｎは２以上の整数）から構成される。複数の記憶媒体の各々は、ＮＡＮＤフラッシュメモリで構成されたＳＳＤからなり（ＳＳＤ＃１〜ＳＳＤ＃ｎ）、ＲＡＩＤを構成する。
【００６０】
アクセス実行部２２は、ホスト１からのアクセス要求を受け取り、ＲＡＩＤ管理部２５からアクセス先アドレスが含まれるＲＡＩＤストライプの構成情報を取得して、対応する記憶媒体２１へのアクセス要求に変換する。また、アクセス実行部２２は、ホスト１からのアクセス要求がＷｒｉｔｅである場合は、ＲＡＩＤストライプ内の冗長データの更新を行うアクセス要求を生成する。アクセス実行部２２は、ホスト１から受け取ったアクセス要求の情報、及び変換、生成された記憶媒体２１に対するアクセス要求の対応関係を、アクセス実行部２２内のアクセス要求テーブル２２１に格納する。更に、アクセス実行部２２は、ホスト１からの各アクセス要求に対応する処理の実行を管理し、記憶媒体２１に対するアクセス要求の発行を記憶媒体アクセス部２３に指示し、記憶媒体２１に対するアクセス結果を受け取ってホスト１に対して結果を応答する。
【００６１】
図３は、アクセス実行部２２に含まれるアクセス要求テーブル２２１の構成を例示する図である。アクセス要求テーブル２２１は、アクセスの種類、アクセス先アドレス（先頭の０Ｘはヘキサデシマル（１６進）表示であることを示す）、アクセスサイズ、対応するアクセスＩＤの各欄を含む。対応するアクセスＩＤは、変換、又は生成された記憶媒体２１に対するアクセスを表すＩＤ（識別子）である。アクセス実行部２２は、ホスト１からの各アクセス要求に対して、アクセス要求に関する情報をアクセス要求テーブル２２１に格納する。また、図３においては、図示していないが、Ｗｒｉｔｅアクセス要求に付随するＷｒｉｔｅデータは別途管理する。なお、アクセス要求テーブル２２１のデータ形式は、図３に示した形式に限定されるものでないことは勿論である。例えば記憶媒体２１に対するアクセスを表す識別子は数字のＩＤに限らず、任意の形式であってよい。また、アクセス要求テーブル２２１は、アクセス実行部２２等からアクセスできれば、アクセス実行部２２の外部に設ける構成としてもよいことは勿論である。
【００６２】
再び図２を参照すると、記憶媒体アクセス部２３は、アクセス実行部２２によって変換、生成された記憶媒体２１に対するアクセス要求を、実際に記憶媒体２１に対して発行する。また、記憶媒体アクセス部２３は、記憶媒体２１に対する各アクセス要求の情報を、記憶媒体アクセステーブル２３１に格納し、発行待ちのアクセス要求を管理する。
【００６３】
図４は、記憶媒体アクセス部２３に含まれる記憶媒体アクセステーブル２３１の構成を例示する図である。記憶媒体アクセステーブル２３１は、アクセスＩＤ、記憶媒体ＩＤ、アクセス種類、アドレス、サイズの各欄を備えている。アクセスＩＤは、アクセス実行部２２によって変換、生成された記憶媒体２１に対するアクセス要求を一意に表すＩＤ等の識別子である。記憶媒体ＩＤは、アクセス要求の発行先となる記憶媒体を表すＩＤ等の識別子である。アクセス種類は、アクセスの種類（Ｒｅａｄ，Ｗｒｉｔｅ）である。アドレス、サイズは、アクセス先アドレスとアクセスサイズである。また、図４においては、図示していないが、Ｗｒｉｔｅアクセス要求に付随するＷｒｉｔｅデータは別途管理する。なお、記憶媒体アクセステーブル２３１のデータ形式は、図４に示した形式に限定されるものでないことは勿論である。例えばアドレス、及びアクセスサイズの表記は、図４に示されるチャンク単位以外に、バイト単位、一般的な記憶媒体のアクセス単位であるセクタ（５１２Ｂ）単位などの任意の形式であって良い。記憶媒体アクセステーブル２３１は、記憶媒体アクセス部２３等からアクセスできれば、記憶媒体アクセス部２３の外部に設ける構成としてもよいことは勿論である。
【００６４】
再び図２を参照すると、チャンク割当部２４は、各記憶媒体２１の記憶領域を一定サイズのチャンクに区切って管理し、各記憶媒体２１において、チャンク毎のＲＡＩＤストライプに対する割り当て有無を管理する。また、チャンク割当部２４は、ＲＡＩＤ構成変更部２８がＲＡＩＤストライプに対して割り当てるチャンクを変更する場合、ＲＡＩＤ構成変更部２８によって指定された記憶媒体２１の記憶領域から、未使用のチャンクを割り当てる。
【００６５】
ＲＡＩＤ管理部２５は、ＲＡＩＤストライプに対する各記憶媒体のチャンクの割り当て情報をＲＡＩＤ管理テーブル２５１として管理する。
【００６６】
図５は、ＲＡＩＤ管理部２５に含まれるＲＡＩＤ管理テーブル２５１の構成を例示する図である。ＲＡＩＤ管理テーブル２５１は、アドレス、ＲＡＩＤレベル、チャンク数、使用チャンク（記憶媒体ＩＤ−アドレス）の各欄を含む。アドレスは、ストレージ２がホスト１に対して提供する、記憶領域の空間における、ＲＡＩＤストライプのマッピング先アドレスである。チャンク数は、ＲＡＩＤストライプを構成するチャンク数である。使用チャンク（記憶媒体ＩＤ−アドレス）は、各ＲＡＩＤストライプを構成するチャンクの記憶媒体のＩＤと記憶媒体内のアドレスの組み合わせである。ＲＡＩＤレベルが一定ではない場合は、ＲＡＩＤストライプ毎に、前記各情報を追加で記録する。なお、ＲＡＩＤ管理テーブル２５１のデータ形式は、図５に示した形式に限定されるものでないことは勿論である。例えば各ＲＡＩＤストライプのサイズが一定であり、且つ、ストレージ２の記憶領域の先頭アドレスから順番にマッピングされたＲＡＩＤストライプの情報が格納されている場合、ＲＡＩＤストライプのマッピング先アドレスの情報（第１欄）を省略することが可能である。また、ＲＡＩＤ管理テーブル２５１は、ＲＡＩＤ管理部２５等からアクセスできれば、ＲＡＩＤ管理部２５の外部に設ける構成としてもよいことは勿論である。
【００６７】
再び図２を参照すると、Ｗｒｉｔｅ量計測部２６は、記憶媒体アクセス部２３から実際に各記憶媒体２１に対して発行されたＷｒｉｔｅアクセスを監視し、各記憶媒体２１に対するＷｒｉｔｅデータ量を集計する。
【００６８】
記憶媒体監視部２７は、記憶媒体アクセス部２３が各記憶媒体２１に対して行ったアクセスに対する各記憶媒体２１からの応答時間を監視し、応答遅延、あるいは応答停止を検出する。
【００６９】
また記憶媒体監視部２７は、応答遅延、応答停止の検出と併せて、アクセス要求の発行待ち状況、発行中のアクセス要求のいずれか、又は両方から各記憶媒体２１のアクセス負荷を算出するようにしてもよい。
【００７０】
ＲＡＩＤ構成変更部２８は、記憶媒体アクセス部２３にて記憶媒体２１に対して発行直前のＷｒｉｔｅアクセス要求に着目し、Ｗｒｉｔｅ先の記憶媒体２１に対して、Ｗｒｉｔｅ量計測部２６、及び記憶媒体監視部２７の情報から、データの格納先として、当該Ｗｒｉｔｅ先の記憶媒体２１が適切であるか否かを確認する。
【００７１】
ＲＡＩＤ構成変更部２８は、確認の結果、Ｗｒｉｔｅ先の記憶媒体２１が、データの格納先として適していないと判断した場合には、ＲＡＩＤストライプにおける、Ｗｒｉｔｅ先のチャンクの割り当て元である記憶媒体２１を変更する。
【００７２】
具体的には、例えば、Ｗｒｉｔｅ先の記憶媒体２１が、応答遅延、応答停止、又は高負荷のいずれかの状態である場合、新たにデータを格納することは困難であると判断して、Ｗｒｉｔｅ先のチャンクを、上記応答遅延、応答停止、又は高負荷のいずれにも該当しない別の記憶媒体２１のものに変更する。
【００７３】
あるいはＲＡＩＤ構成変更部２８は、Ｗｒｉｔｅ先の記憶媒体２１に対するＷｒｉｔｅデータ量について、Ｗｒｉｔｅデータ量が最も少ないか、又は、最も多い他の記憶媒体２１と比較して、差分が事前に定めた上限値、又は、下限値を超えた場合に、Ｗｒｉｔｅ先のチャンクを、別の記憶媒体２１のものに変更する構成としてもよい。
【００７４】
アクセス再発行部２９は、ＲＡＩＤ構成変更部２８において、ＲＡＩＤストライプの構成を変更しなかった場合には、記憶媒体アクセス部２３に対して、発行直前のＷｒｉｔｅアクセス要求に対する実際の発行を許可する。
【００７５】
一方、ＲＡＩＤ構成変更部２８において、ＲＡＩＤストライプの構成が変更された場合には、アクセス再発行部２９は、
・記憶媒体アクセス部２３に対して、発行直前のＷｒｉｔｅアクセス要求のキャンセルを指示し、
・アクセス実行部２２に対して、割り当てを変更したＲＡＩＤストライプ内のチャンクに対するＷｒｉｔｅ要求の再発行を指示する。
【００７６】
＜一実施形態の動作例＞
図６は、本発明の一実施形態においてホスト１からストレージ２がアクセス要求を受け取り、結果を応答する動作を説明する流れ図である。以下、図６、及び図１乃至図５を参照して、実施形態の動作を説明する。
【００７７】
＜ステップＳ１１＞
アクセス実行部２２は、ホスト１からストレージ２に対するアクセス要求を受け取り、アクセス要求テーブル２２１に登録する。
【００７８】
＜ステップＳ１２＞
アクセス実行部２２は、ＲＡＩＤ管理部２５のＲＡＩＤ管理テーブル２５１を参照して、アクセス先となるＲＡＩＤストライプを決定し、ＲＡＩＤストライプを構成するチャンクに対するＲｅａｄ、Ｗｒｉｔｅアクセスに変換する。
【００７９】
チャンクに対するＲｅａｄ、Ｗｒｉｔｅアクセスへの変換手順は、一般に知られるＲＡＩＤと同様であり、本発明には含まれない。アクセス実行部２２は、変換したＲｅａｄ、Ｗｒｉｔｅアクセスの実行を記憶媒体アクセス部２３に要求する。
【００８０】
また、アクセス実行部２２は、ホスト１からのアクセス要求を変換後の、チャンクに対するアクセスのＩＤをアクセス要求テーブル２２１に登録する。
【００８１】
＜ステップＳ１３＞
記憶媒体アクセス部２３は、アクセス実行部２２から受け取った、チャンクに対するアクセス要求を記憶媒体２１に対して発行する。
【００８２】
＜ステップＳ１４＞
記憶媒体アクセス部２３は、記憶媒体２１からのアクセス要求に対する結果（応答）をアクセス実行部２２に応答する。
【００８３】
＜ステップＳ１５＞
アクセス実行部２２は、記憶媒体アクセス部２３からのアクセス要求の結果を受け取ると、アクセス要求テーブル２２１を参照して、ホスト１からのアクセス要求に対応した全てのアクセスが完了しているか確認する。
【００８４】
＜ステップＳ１６＞
ホスト１からのアクセス要求に対応したすべてのアクセスが完了していない場合（ステップＳ１６のＮｏ判定）、アクセス実行部２２は他のアクセス完了まで待機して、ステップＳ１４からの処理を実行する。
【００８５】
＜ステップＳ１７＞
ホスト１からのアクセス要求に対応したすべてのアクセスが完了している場合（ステップＳ１６のＹｅｓ判定）、アクセス実行部２２は、ホスト１にアクセス要求の結果を応答して返し、アクセス要求の情報を、アクセス要求テーブル２２１から削除し、手順を終了する。
【００８６】
以上のステップＳ１１からＳ１７までの処理を行い、ホスト１からストレージ２がアクセス要求を受け取り、結果を応答する動作が完了する。
【００８７】
＜アクセス要求の発行と結果の応答の手順＞
図７及び図８は、図６のステップＳ１３において、記憶媒体アクセス部２３がアクセス実行部２２から各記憶媒体２１に対するアクセス要求を受け取り、各記憶媒体２１に対するアクセス要求を発行する手順を説明する流れ図である。なお、図７及び図８は、図面作成の都合で分図されている。図７及び図８、図１乃至図６を参照して、アクセス要求の発行と結果の応答の手順を説明する。
【００８８】
＜ステップＳ２０１＞
記憶媒体アクセス部２３は、アクセス実行部２２から受け取った各記憶媒体２１に対するアクセス要求を記憶媒体アクセステーブル２３１に登録する。
【００８９】
＜ステップＳ２０２＞
記憶媒体アクセス部２３は、記憶媒体アクセステーブル２３１に登録されたアクセス要求から、各記憶媒体２１に対して発行するアクセス要求を選択する。
【００９０】
＜ステップＳ２０３＞
記憶媒体アクセス部２３は、ステップＳ２０２で選択したアクセス要求がＲｅａｄであるか否かを判定する。
【００９１】
＜ステップＳ２０４＞
ステップＳ２０２で選択したアクセス要求がＲｅａｄである場合（ステップＳ２０３のＹｅｓ判定）、記憶媒体アクセス部２３は、選択したアクセス要求を記憶媒体２１に発行して手順を終了する。
【００９２】
＜ステップＳ２０５＞
ステップＳ２０２で選択したアクセス要求がＷｒｉｔｅである場合（ステップＳ２０３のＮｏ判定）、記憶媒体アクセス部２３は、ＲＡＩＤ構成変更部２８に対してＷｒｉｔｅ先の記憶媒体２１、及びＷｒｉｔｅアドレス、サイズの情報を通知する。
【００９３】
＜ステップＳ２０６＞
ＲＡＩＤ構成変更部２８は、記憶媒体アクセス部２３から通知されたＷｒｉｔｅアクセス要求の発行先記憶媒体２１について、記憶媒体監視部２７に応答遅延、又は応答停止が発生していないか問い合わせる。
【００９４】
また、ＲＡＩＤ構成変更部２８は、記憶媒体アクセス部２３の記憶媒体アクセステーブル２３１を参照して、Ｗｒｉｔｅアクセス要求先である記憶媒体２１が高負荷状態であるか否かを確認する。
【００９５】
＜ステップＳ２０７＞
ステップＳ２０６の判断の結果、Ｗｒｉｔｅ先の記憶媒体２１が応答遅延、応答停止、高負荷のいずれかの状態であると判定された場合（ステップＳ２０７のＹｅｓ判定）、ステップＳ２０８（図８）に進む。ステップＳ２０６の判断の結果、Ｗｒｉｔｅ先の記憶媒体２１が応答遅延、応答停止、高負荷の状態ではない場合（ステップＳ２０７のＮｏ判定）、ステップＳ２０９（図８）に進む。
【００９６】
＜ステップＳ２０８（図８）＞
ＲＡＩＤ構成変更部２８は、記憶媒体アクセス部２３から通知されたＷｒｉｔｅアクセス要求の新たな発行先を現在の発行先以外の記憶媒体２１から選択する。
【００９７】
ＲＡＩＤ構成変更部２８は、記憶媒体監視部２７を参照して、応答遅延、応答停止、高負荷のいずれでもない記憶媒体から、Ｗｒｉｔｅ量計測部２６から取得した各記憶媒体２１のＷｒｉｔｅデータ量を比較して、最もＷｒｉｔｅデータ量の少ない記憶媒体を新たなＷｒｉｔｅ先として選択してステップＳ２１１以降の処理を実行する。
【００９８】
＜ステップＳ２０９（図８）＞
ＲＡＩＤ構成変更部２８は、記憶媒体アクセス部２３から通知されたＷｒｉｔｅアクセス要求の発行先の記憶媒体２１について、Ｗｒｉｔｅ量計測部２６から取得した各記憶媒体２１のＷｒｉｔｅデータ量を比較して、Ｗｒｉｔｅ先として、他に適切な記憶媒体２１が存在するか判断する。
【００９９】
また、ＲＡＩＤ構成変更部２８は、上記判断において、記憶媒体監視部２７、及び記憶媒体アクセス部２３の記憶媒体アクセステーブル２３１を参照して、応答遅延、応答停止、高負荷の状態ではない記憶媒体２１のみを、適切なＷｒｉｔｅ先として、判断する。
【０１００】
前記手順の一例として、例えばＷｒｉｔｅ先の記憶媒体のＷｒｉｔｅデータ量と、各記憶媒体２１のＷｒｉｔｅデータ量の最小値とを比較して、Ｗｒｉｔｅ先の記憶媒体のＷｒｉｔｅデータ量が事前に定めたられた閾値を上回る場合に、Ｗｒｉｔｅデータ量が最小の記憶媒体２１を、Ｗｒｉｔｅ先として適切と判断するようにしてもよい。
【０１０１】
＜ステップＳ２１０（図８）＞
ステップＳ２０９の判断の結果、他に適切なＷｒｉｔｅ先となる記憶媒体２１が存在する場合（ステップＳ２１０のＹｅｓ判定）、ＲＡＩＤ構成変更部２８は、ステップＳ２０９で判断された適切なＷｒｉｔｅ先となる記憶媒体２１を、新たなＷｒｉｔｅ先としてステップＳ２１１以降の処理を継続する。
【０１０２】
＜ステップＳ２１１（図８）＞
ＲＡＩＤ構成変更部２８は、チャンク割当部２４に対して、新たなＷｒｉｔｅ先となる記憶媒体２１について未使用のチャンクの割り当てを要求して、チャンク割当部２４から割り当てられたチャンクのアドレスを受け取る。また、ＲＡＩＤ構成変更部２８は、チャンク割当部２４に対して、チャンクを新たに割り当てることで使用されなくなった、元のＷｒｉｔｅ先のチャンクに対する解放を通知する。
【０１０３】
＜ステップＳ２１２（図８）＞
ＲＡＩＤ構成変更部２８は、ＲＡＩＤ管理部２５に対して、ステップＳ２０２で選択されたＷｒｉｔｅアクセス要求のＷｒｉｔｅ先チャンクを、新たなＷｒｉｔｅ先の記憶媒体２１、及びステップＳ２１３で割り当てられたチャンクのアドレスに変更する。
【０１０４】
＜ステップＳ２１３（図８）＞
ＲＡＩＤ構成変更部２８は、アクセス再発行部２９に対してステップＳ２０２で選択されたＷｒｉｔｅアクセス要求の再発行を指示する。
【０１０５】
アクセス再発行部２９は、記憶媒体アクセス部２３に対して、ステップＳ２０２で選択されたＷｒｉｔｅアクセス要求の中止を指示する。また、アクセス再発行部２９は、アクセス実行部２２に対して、ステップＳ２１３で変更したＲＡＩＤストライプの構成に従ってステップＳ２０２で選択されたＷｒｉｔｅアクセス要求の再発行を指示して手順を終了する。
【０１０６】
＜ステップＳ２１４（図８）＞
ステップＳ２０９の判断の結果、他に適切なＷｒｉｔｅ先となる記憶媒体２１が存在せず、現在のＷｒｉｔｅ先が最適と判断された場合（ステップＳ２１０のＮｏ判定）、ＲＡＩＤ構成変更部２８は、記憶媒体アクセス部２３を通して、ステップＳ２０２で選択されたＷｒｉｔｅアクセス要求の記憶媒体２１に対する発行を行う。また、記憶媒体アクセス部２３は、Ｗｒｉｔｅ量計測部２６に対してＷｒｉｔｅ要求先の記憶媒体２１に対して新たにＷｒｉｔｅデータのサイズ分のＷｒｉｔｅが行われることを通知する。
【０１０７】
＜ステップＳ２１５（図８）＞
記憶媒体２１に対して発行したＷｒｉｔｅアクセスの応答が返らない状態で事前に定められた一定時間を経過した場合（ステップＳ２１５のＮｏ判定）、記憶媒体アクセス部２３は、前記発行中のアクセスに対して、ステップＳ２０８の処理を実行する。
【０１０８】
記憶媒体２１に対して発行したＷｒｉｔｅアクセスについて事前に定められた一定時間内に応答が返ってきた場合（ステップＳ２１５のＹｅｓ判定）、手順を終了する。
【０１０９】
以上のステップＳ２０１からＳ２１５までの処理を行うことで、記憶媒体アクセス部２３がアクセス実行部２２から各記憶媒体２１に対するアクセス要求を受け取り、各記憶媒体２１に対するアクセス要求を発行する動作が完了する。
【０１１０】
＜ＲＡＩＤストライプの構成変更の一具体例＞
図９乃至図１１を参照して、Ｗｒｉｔｅ発行時の記憶媒体間のＷｒｉｔｅデータ量の差に応じた、ＲＡＩＤストライプの構成変更を行う動作例を説明する。図９は、図２の記憶媒体２１（図１のストレージ２に含まれる）を表している。ストレージ２は、同種の６個の記憶媒体２１Ａ〜１１Ｆを備えている。ストレージ２、ホスト１は、チャンクサイズを単位としたアドレス空間を使用する。記憶媒体２１Ａ〜２１Ｆは、この例の初期状態において、いずれも応答遅延、応答停止、高負荷の状態ではないとする。
【０１１１】
また、この例では、Ｗｒｉｔｅ先の記憶媒体と、記憶媒体２１Ａ〜２１ＦのＷｒｉｔｅデータ量の最小値との差が１０チャンク以上である場合に、ＲＡＩＤ構成を変更して記憶媒体間のＷｒｉｔｅデータ量の差を削減するものとする。
【０１１２】
ホスト１からのアクセス要求を受けたストレージ２のアクセス実行部２２（図２）において、異なる記憶媒体に分かれたチャンクに対するアクセスに変換される。チャンクに対するアクセスへの変換は、図１０に示された、ＲＡＩＤ管理テーブル２５１を参照して行う。
【０１１３】
なお、この例では、各ＲＡＩＤストライプのＲＡＩＤレベルは全てＲＡＩＤ５、ストライプを構成するチャンク数は全て５とする。また、使用チャンクのリストの末尾が各ＲＡＩＤストライプのパリティ情報を格納するチャンクとする。
【０１１４】
ホスト１からのアクセス要求が、アドレス０ｘ０００００００３に対するチャンク１個分のＷｒｉｔｅである場合、図１０に例示したＲＡＩＤ管理テーブル２５１の情報から、記憶媒体２１Ｄのアドレス０ｘ００００のチャンクに対するＷｒｉｔｅデータ本体のＷｒｉｔｅアクセスと、記憶媒体２１Ｅのアドレス０ｘ００００のチャンクに対するパリティを更新するためのＷｒｉｔｅアクセスの２つに変換される。
【０１１５】
記憶媒体アクセス部２３によって、記憶媒体２１Ｄと記憶媒体２１Ｅに対するＷｒｉｔｅアクセスが発行される。
【０１１６】
まず、記憶媒体アクセス部２３は、記憶媒体２１Ｄに対するＷｒｉｔｅアクセス発行前に、記憶媒体２１Ｄが応答遅延・応答停止・高負荷状態でないことを確認する。
【０１１７】
記憶媒体２１Ｄは、応答遅延・応答停止・高負荷状態のいずれでもないため、次に各記憶媒体のＷｒｉｔｅデータ量を、図１１に示した、Ｗｒｉｔｅ量計測部２６が取得した各記憶媒体のＷｒｉｔｅデータ量情報２６１（例えばＷｒｉｔｅ量計測部２６の不図示の記憶部に保持される）から取得する。
【０１１８】
図１１の記憶媒体のＷｒｉｔｅデータ量情報２６１は、各記憶媒体に対するＷｒｉｔｅデータ量をチャンク数で表す。
【０１１９】
Ｗｒｉｔｅ先である記憶媒体２１ＤのＷｒｉｔｅデータ量は２０チャンクである。一方で、最小のＷｒｉｔｅデータ量である記憶媒体２１ＦのＷｒｉｔｅデータ量は１０チャンクである。このため、ＲＡＩＤストライプに割り当てられた記憶媒体２１Ｄのアドレス０ｘ００００のチャンクを解放して、新たに記憶媒体２１Ｆの未使用のチャンク（０ｘ００１０とする）を割り当てる。
【０１２０】
また、ＲＡＩＤ管理部２５は、ＲＡＩＤ管理テーブル２５１のＲＡＩＤストライプの構成情報を更新する。記憶媒体２１Ｄのアドレス０ｘ００００のチャンクに対するＷｒｉｔｅを中止して、アクセス再発行部２９は、新たに記憶媒体２１Ｆのアドレス０ｘ００１０のチャンクに対するＷｒｉｔｅアクセスを生成する。
【０１２１】
そして、ＲＡＩＤストライプのパリティに相当するチャンクを更新する、記憶媒体２１Ｅのアドレス０ｘ００００のチャンクに対するＷｒｉｔｅアクセス、及び新たに生成された記憶媒体２１Ｆのアドレス０ｘ００１０のチャンクに対するＷｒｉｔｅアクセスは、各記憶媒体が応答遅延、応答停止、高負荷のいずれの状態でもなく、記憶媒体のＷｒｉｔｅデータ量情報２６１から、Ｗｒｉｔｅ先の各記憶媒体のＷｒｉｔｅデータ量がＷｒｉｔｅデータ量の最小値を、１０以上、上回ることはない。この結果、記憶媒体２１Ｅと記憶媒体２１Ｆに対して、Ｗｒｉｔｅアクセスが発行される。
【０１２２】
上記２つのＷｒｉｔｅアクセスの完了によって、アドレス０ｘ０００００００３に対するチャンク１個分のＷｒｉｔｅアクセス要求に対するすべてのアクセス（データ書き込みパリティ書き込み）が完了する。ストレージ２のアクセス実行部２２は、ホスト１に対してＷｒｉｔｅアクセス要求に対する処理の完了を応答する。
【０１２３】
以上の動作によってＷｒｉｔｅ発行時の記憶媒体間のＷｒｉｔｅデータ量の差に応じた、ＲＡＩＤストライプの構成変更を伴ったＷｒｉｔｅアクセス処理が完了する。
【０１２４】
上記実施形態によれば、書き込み先の記憶媒体のＷｒｉｔｅデータ量、及び、該記憶媒体の応答遅延、停止状態に応じて、より適した記憶媒体に変更し、新たにアクセス対象のチャンクを該記憶媒体に割り当てることで、例えばＳＳＤで構成したＲＡＩＤシステムのアクセス性能の低下を回避可能としている。
【０１２５】
なお、上記の特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施例の各要素、各図面の各要素等を含む）の多様な組み合わせ乃至選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【０１２６】
１  ホスト
２  ストレージ
２１、２１Ａ〜２１Ｆ  記憶媒体
２２  アクセス実行部
２２１  アクセス要求テーブル
２３  記憶媒体アクセス部
２３１  記憶媒体アクセステーブル
２４  チャンク割当部
２５  ＲＡＩＤ管理部
２５１  ＲＡＩＤ管理テーブル
２６  Ｗｒｉｔｅ量計測部
２６１  記憶媒体のＷｒｉｔｅデータ量情報
２７  記憶媒体監視部
２８  ＲＡＩＤ構成変更部
２９  アクセス再発行部
３  ネットワーク
３０  構成変更手段
３１  アクセス制御手段
【図１】
2017199043.tif 000003
【図２】
2017199043.tif 000004
【図３】
2017199043.tif 000005
【図４】
2017199043.tif 000006
【図５】
2017199043.tif 000007
【図６】
2017199043.tif 000008
【図７】
2017199043.tif 000009
【図８】
2017199043.tif 000010
【図９】
2017199043.tif 000011
【図１０】
2017199043.tif 000012
【図１１】
2017199043.tif 000013
【図１２】
2017199043.tif 000014