(57)【特許請求の範囲】
【請求項１】
ＲＡＩＤ構成のストレージ装置に作成された論理ボリュームに対して書込要求されたデータごとに、前記論理ボリューム上の管理単位となる記憶領域の境界からの、前記データの書込位置のずれ量を算出し、
前記データごとに算出した前記ずれ量のうち同一の値になる前記ずれ量の個数に基づいて、前記データごとに算出した前記ずれ量のいずれかを選択し、
前記ストレージ装置の物理領域上で、前記論理ボリュームのデータが選択した前記ずれ量分移動するように、前記論理ボリュームのデータを再配置する、
制御部を有することを特徴とするストレージ制御装置。
【請求項２】
前記制御部は、前記論理ボリューム上のストライプの境界からの前記書込位置のずれ量を算出する、ことを特徴とする請求項１に記載のストレージ制御装置。
【請求項３】
前記制御部は、前記論理ボリューム上のセクタの境界からの前記書込位置のずれ量を算出する、ことを特徴とする請求項１または２に記載のストレージ制御装置。
【請求項４】
前記制御部は、前記データごとに算出した前記ずれ量のうち同一の値になる前記ずれ量の個数に基づいて、前記データごとに算出した前記ずれ量のそれぞれに基づき前記論理ボリュームのデータを再配置した場合のアクセス性能の評価値を算出し、
算出した前記評価値が最大になる前記ずれ量を選択する、ことを特徴とする請求項１〜３のいずれか一つに記載のストレージ制御装置。
【請求項５】
前記制御部は、前記ストレージ装置の物理領域上で、前記論理ボリュームのデータを再配置した記憶領域以外で、再配置する前の前記論理ボリュームのデータが残っている記憶領域を、ダミーデータで初期化する、ことを特徴とする請求項１〜４のいずれか一つに記載のストレージ制御装置。
【請求項６】
コンピュータが、
ＲＡＩＤ構成のストレージ装置に作成された論理ボリュームに対して書込要求されたデータごとに、前記論理ボリューム上の管理単位となる記憶領域の境界からの、前記データの書込位置のずれ量を算出し、
前記データごとに算出した前記ずれ量のうち同一の値になる前記ずれ量の個数に基づいて、前記データごとに算出した前記ずれ量のいずれかを選択し、
前記ストレージ装置の物理領域上で、前記論理ボリュームのデータが選択した前記ずれ量分移動するように、前記論理ボリュームのデータを再配置する、
処理を実行することを特徴とする制御方法。
【請求項７】
コンピュータに、
ＲＡＩＤ構成のストレージ装置に作成された論理ボリュームに対して書込要求されたデータごとに、前記論理ボリューム上の管理単位となる記憶領域の境界からの、前記データの書込位置のずれ量を算出し、
前記データごとに算出した前記ずれ量のうち同一の値になる前記ずれ量の個数に基づいて、前記データごとに算出した前記ずれ量のいずれかを選択し、
前記ストレージ装置の物理領域上で、前記論理ボリュームのデータが選択した前記ずれ量分移動するように、前記論理ボリュームのデータを再配置する、
処理を実行させることを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ制御装置、制御方法、および制御プログラムに関する。
【背景技術】
【０００２】
従来、複数の記憶装置によってデータを冗長化して記憶するＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）構成のストレージ装置がある。関連する技術としては、例えば、受信したデータの書き込み開始位置を示す論理アドレスがパリティ計算ブロックのオフセットと一致しない場合は、論理アドレスがオフセットと一致するよう論理アドレスを変換するものがある。また、例えば、３５８４バイトというサイズに対して４０９６バイトのデータが発生させた余剰分にパディングデータを付加する技術がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−２５６００１号公報
【特許文献２】特開平９−３３０１７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した従来技術では、ストレージ装置に作成された論理ボリュームに対して、ライトペナルティやリードモディファイライトが発生するようなデータの書き込みが頻繁に要求されると、ストレージ装置の書込性能が低下してしまう。
【０００５】
１つの側面では、本発明は、書込性能の低下を抑制することができるストレージ制御装置、制御方法、および制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一側面によれば、ＲＡＩＤ構成のストレージ装置に作成された論理ボリュームに対して書込要求されたデータの書込位置に基づいて、前記論理ボリューム上の管理単位となる記憶領域の境界からの前記書込位置のずれ量を算出し、算出した前記ずれ量に基づいて、前記ストレージ装置の物理領域上で前記論理ボリュームのデータを再配置するストレージ制御装置、制御方法、および制御プログラムが提案される。
【発明の効果】
【０００７】
本発明の一態様によれば、書込性能の低下を抑制することができるという効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施の形態にかかるストレージ制御装置１００の一実施例を示す説明図である。
【図２】図２は、ストレージシステム２００の一例を示す説明図である。
【図３】図３は、設定テーブル３００の記憶内容の一例を示す説明図である。
【図４】図４は、管理テーブル４００の記憶内容の一例を示す説明図である。
【図５】図５は、オフセットテーブル５００の記憶内容の一例を示す説明図である。
【図６】図６は、制御装置１００の機能的構成例を示すブロック図である。
【図７】図７は、第１の動作例において制御装置１００がデータの書込要求を受け付ける一例を示す説明図である。
【図８】図８は、第１の動作例において制御装置１００がオフセット２を決定する一例を示す説明図である。
【図９】図９は、第１の動作例において制御装置１００が論理ボリュームのデータを再配置する一例を示す説明図である。
【図１０】図１０は、第２の動作例において制御装置１００がデータの書込要求を受け付ける一例を示す説明図である。
【図１１】図１１は、第２の動作例において制御装置１００がオフセット２を決定する一例を示す説明図である。
【図１２】図１２は、第２の動作例において制御装置１００が論理ボリュームのデータを再配置する一例を示す説明図である。
【図１３】図１３は、作成処理手順の一例を示すフローチャートである。
【図１４】図１４は、監視処理手順の一例を示すフローチャートである。
【図１５】図１５は、評価処理手順の一例を示すフローチャートである。
【図１６】図１６は、再配置処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下に、図面を参照して、本発明にかかるストレージ制御装置、制御方法、および制御プログラムの実施の形態を詳細に説明する。
【００１０】
（実施の形態にかかるストレージ制御装置の一実施例）
図１は、実施の形態にかかるストレージ制御装置１００の一実施例を示す説明図である。図１において、ストレージ制御装置１００は、１または複数のストレージ装置を有し、ストレージ装置を制御するコンピュータである。以下の説明では、ストレージ制御装置１００を「制御装置１００」と表記する場合がある。ストレージ装置は、１または複数の記憶装置によって形成される。記憶装置は、例えば、磁気ディスク、光ディスク、フラッシュメモリ、磁気テープなどである。ストレージ装置には、１または複数の論理ボリュームが作成される。
【００１１】
論理ボリュームは、所定の管理単位の記憶領域で区分けされている。論理ボリュームは、例えば、ストライプ単位で区分けされている。ストライプは、複数の記憶装置のいくつかの組み合わせによってデータ列が記憶される記憶領域である。複数の記憶装置のいずれかには、ストライプに記憶されたデータ列から得られたパリティが記憶される。ストレージ装置は、ストライプに記憶されたデータ列の一部が更新されると、パリティを算出し直すことになる。また、論理ボリュームは、例えば、１または複数の記憶装置のそれぞれのセクタ単位で区分けされている。論理ボリュームには、セクタ単位でデータの書き込みが行われる。論理ボリュームに書き込むデータは、セクタ単位で書込可能なデータでなければ、セクタ単位で書込可能なデータに補正されることになる。
【００１２】
ここで、従来の演算装置が、ストレージ装置に作成された論理ボリューム上のストライプ単位ではない記憶領域にデータを書き込む場合がある。しかしながら、この場合、従来の演算装置は、書き込みに先立って、パリティの算出に要するデータを読み出して、パリティを算出してから、データとパリティとの書き込みを行うことになり、書込性能の低下を招く。ここで、データの書き込みに先立って、パリティの算出に要する他のデータを読み出して、パリティを算出して、データとパリティとの書き込みを行う動作は、ライトペナルティ（ＷＰ：Ｗｒｉｔｅ  Ｐｅｎａｌｔｙ）と呼ばれる。
【００１３】
具体的には、ライトペナルティにおいて、書込要求されたデータの書き込みを行う際に、パリティの算出に要するデータの読み出しを行うことになるため、記憶装置へのアクセス回数が増加して、書込性能が低下してしまうことになる。一方で、ストライプ単位の記憶領域にデータを書き込む場合においては、ライトペナルティを行わなくてよいため、パリティの算出に要する他のデータの読み出しが行われず、アクセス回数が増加することがない。したがって、ライトペナルティが行われると、ライトペナルティが行われない場合に比べて、書込性能が低下してしまう。
【００１４】
また、従来の演算装置が、ストレージ装置に作成された論理ボリューム上のセクタ単位ではない記憶領域にデータを書き込む場合がある。しかしながら、この場合、従来の演算装置は、書き込みに先立って、データの補正に要する他データを読み出して、データをセクタ単位で書込可能なデータに補正してから、補正後のデータの書き込みを行うことになり、書込性能の低下を招く。以下の説明では、データの補正に要する他データを「補正用データ」と表記する場合がある。ここで、書き込みに先立って、データの補正に要する補正用データを読み出して、データをセクタ単位で書込可能なデータに補正して、補正後のデータの書き込みを行う動作は、リードモディファイライト（ＲＭＷ：Ｒｅａｄ  Ｍｏｄｉｆｙ  Ｗｒｉｔｅ）と呼ばれる。
【００１５】
具体的には、リードモディファイライトにおいて、書込要求されたデータのみでは書き込みを行うことができず、補正用データの読み出しを行うことになるため、記憶装置へのアクセス回数が増加して、書込性能が低下してしまうことになる。一方で、セクタ単位の記憶領域にデータを書き込む場合においては、リードモディファイライトを行わなくてよいため、補正用データの読み出しが行われず、アクセス回数が増加することがない。したがって、リードモディファイライトが行われると、リードモディファイライトが行われない場合に比べて、書込性能が低下してしまう。
【００１６】
以上のように、従来の演算装置は、所定の管理単位となる記憶領域からずれた記憶領域に対してデータの書き込みを行う場合には、データの書き込みに先立ってデータの読み出しを行うことになり、書込性能の低下を招いてしまう。そこで、本実施の形態では、書込性能の低下を抑制することができる制御方法について説明する。
【００１７】
図１において、制御装置１００は、論理ボリュームに対して書込要求されたデータの書込位置に基づいて、論理ボリューム上の管理単位となる記憶領域の境界からの書込位置のずれ量を算出する。書込位置は、データの先頭が書き込まれる位置である。また、書込位置は、データの末尾が書き込まれる位置であってもよい。そして、制御装置１００は、ずれ量に基づいて、ストレージ装置の物理領域上で論理ボリュームのデータを再配置する。これにより、制御装置１００は、次回以降に書込要求されたデータの書込位置が、今回書込要求されたデータの書込位置と同様である場合に、書込性能の低下を抑制することができる。
【００１８】
図１の例では、ストレージ装置は、４つのディスク１２１〜１２４によって形成される。ストライプは、例えば、３つのディスク１２１〜１２３に跨ってデータ列が記憶される記憶領域になる。ストライプのパリティは、残余のディスク１２４によって記憶される。ストライプは、具体的には、３つのディスク１２１〜１２３のそれぞれの「１ＭＢ＝０ｘ８００ブロック」の記憶領域を含み、「３ＭＢ＝０ｘ１８００ブロック」の記憶領域になる。１ブロックは、５１２Ｂの記憶領域である。
【００１９】
ストレージ装置には、論理ボリューム＃０〜２が作成される。論理ボリューム＃０の先頭位置は、ストレージ装置の論理領域ＲＬＵ＃０の先頭位置となるＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓｉｎｇ）「０ブロック目」の位置にある。以下の説明では、ストレージ装置の論理領域ＲＬＵ＃０の先頭位置から、論理ボリューム＃０の先頭位置をどのくらいずらすかを特定する際に用いられるブロック数を、オフセットと表記する場合がある。論理ボリューム＃０の当初のオフセットは「０」である。
【００２０】
論理ボリューム＃１の先頭位置は、ストレージ装置の論理領域ＲＬＵ＃０のＬＢＡ「ｘｘｘｘブロック目」の位置にある。論理ボリューム＃１の当初のオフセットは「ｘｘｘｘ」である。論理ボリューム＃２の先頭位置は、ストレージ装置の論理領域ＲＬＵ＃０のＬＢＡ「ｙｙｙｙブロック目（ｙｙｙｙ＞ｘｘｘｘ）」の位置にある。論理ボリューム＃２の当初のオフセットは「ｙｙｙｙ」である。
【００２１】
（１）制御装置１００は、論理ボリューム＃０に対するデータの書込要求を受け付ける。書込要求は、論理ボリューム＃０の先頭位置を基準とするデータの書込位置「０ｘ８００ブロック目」を含む。
【００２２】
（２）制御装置１００は、データの書込位置「０ｘ８００ブロック目」をストライプのサイズ「０ｘ１８００ブロック」で除算する。そして、制御装置１００は、論理ボリューム＃０のストライプの境界からの、データの書込位置のずれ量として、除算したときの剰余「０ｘ８００ブロック」を算出する。
【００２３】
（３）制御装置１００は、算出したずれ量に基づいて、ストレージ装置の物理領域上で論理ボリューム＃０のデータを再配置する。制御装置１００は、具体的には、ストレージ装置の物理領域上で、論理ボリューム＃０のデータの先頭に、ずれ量に応じたサイズのダミーデータを挿入して再配置する。ダミーデータは、例えば、ストライプのサイズ「０ｘ１８００ブロック」から、ずれ量「０ｘ８００ブロック」を減算したときの差分「０ｘ１０００ブロック」のサイズになる。
【００２４】
これにより、制御装置１００は、論理ボリュームの当初のオフセットに、ずれ量に応じたサイズ分のオフセットを加算して、論理ボリュームの先頭位置をずらすことができる。結果として、制御装置１００は、次回以降に書込要求されたデータの書込位置が、今回書込要求されたデータの書込位置同様である場合に、書込性能の低下を抑制することができる。制御装置１００は、具体的には、次回以降に書込要求されたデータの書込位置をストライプのサイズで除算したときの剰余が、今回書込要求されたデータと同じになる場合に、書込性能の低下を抑制することができる。
【００２５】
ここでは、制御装置１００が、論理ボリューム＃０の先頭位置を基準とする書込位置「０ｘ８００ブロック目」を、ストライプのサイズ「０ｘ１８００ブロック」で除算することにより、ずれ量を算出する場合について説明したが、これに限らない。例えば、制御装置１００が、論理ボリューム＃１の先頭位置を基準とする書込位置「０ｘ８００ブロック目」が含まれる書込要求を受け付ける場合がある。この場合、制御装置１００は、書込位置「０ｘ８００ブロック目」に論理ボリューム＃１のオフセット「ｘｘｘｘ」を加算した「０ｘ８００＋ｘｘｘｘブロック目」を、ストライプのサイズ「０ｘ１８００ブロック」で除算することにより、ずれ量を算出する。そして、制御装置１００は、ずれ量に基づいて、論理ボリューム＃１のデータを再配置する。
【００２６】
また、制御装置１００が、論理ボリューム＃０の当初のオフセット「０」に、オフセット「０ｘ１０００」が加算された後に、再び論理ボリューム＃０の先頭位置を基準とする書込位置「０ｘ４００ブロック目」が含まれる書込要求を受け付ける場合がある。この場合、制御装置１００は、書込位置「０ｘ４００ブロック目」に論理ボリューム＃０のオフセット「０ｘ１０００」を加算した「０ｘ１４００ブロック目」を、ストライプのサイズ「０ｘ１８００ブロック」で除算することにより、ずれ量を算出する。
【００２７】
（ストレージシステム２００の一例）
次に、図２を用いて、図１に示した制御装置１００を適用した、ストレージシステム２００の一例について説明する。
【００２８】
図２は、ストレージシステム２００の一例を示す説明図である。図２において、ストレージシステム２００は、ＲＡＩＤ装置２０１と、ホスト装置２０２とを有する。ここで、ＲＡＩＤ装置２０１は、例えば、図１に示した制御装置１００として動作するコンピュータである。
【００２９】
ＲＡＩＤ装置２０１は、２つのＣＭ（Ｃｏｎｔｒｏｌ  Ｍｏｄｕｌｅ）２１０と、２つのストレージ装置２２０とを有する。ＣＭ２１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２１１と、メモリ２１２と、ＣＡ（Ｃｈａｎｎｅｌ  Ａｄａｐｔｅｒ）２１３と、ＲＡ（Ｒｅｍｏｔｅ  Ａｄａｐｔｅｒ）２１４と、ＦＣ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）２１５と、を有する。
【００３０】
ＣＰＵ２１１は、ＣＭ２１０の全体の制御を司る。ＣＰＵ２１１は、例えば、メモリ２１２に記憶されたプログラムを実行してＣＭ２１０を動作させる。メモリ２１２は、ブートプログラムや後述する各種テーブルを記憶する。また、メモリ２１２は、ＣＰＵ２１１のワークエリアとして使用される。メモリ２１２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびフラッシュＲＯＭなどを有している。
【００３１】
フラッシュＲＯＭは、具体的には、ＯＳ（Ｏｐｅｒａｔｉｏｎ  Ｓｙｓｔｅｍ）やファームウェアなどのプログラムを記憶する。ＲＯＭは、具体的には、アプリケーションプログラムを記憶する。ＲＡＭは、具体的には、ＣＰＵ２１１のワークエリアとして使用される。ＲＡＭは、具体的には、図３に後述する設定テーブル３００などの各種テーブルを記憶する。メモリ２１２に記憶されているプログラムは、ＣＰＵ２１１にロードされることで、コーディングされている処理をＣＰＵ２１１に実行させることになる。
【００３２】
ＣＡ２１３は、ホスト装置２０２などの外部装置とのインターフェースを制御する。ＲＡ２１４は、ネットワーク２３０または専用線を介して接続される外部装置とのインターフェースを制御する。ＦＣ２１５は、ストレージ装置２２０とのインターフェースを制御する。ストレージ装置２２０は、論理ボリュームの実現に使用される。ストレージ装置２２０は、例えば、１または複数の記憶装置を有する。ストレージ装置２２０は、ＤＥ（Ｄｉｓｋ  Ｅｎｃｌｏｓｕｒｅ）に搭載されている。
【００３３】
また、ホスト装置２０２は、例えば、ＲＡＩＤ装置２０１に書込要求などを送信するコンピュータである。ホスト装置２０２は、具体的には、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、ノートＰＣ、携帯電話、スマートフォン、タブレット端末、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔｓ）などである。
【００３４】
ここでは、ＲＡＩＤ装置２０１が、２つのＣＭ２１０を有する場合について説明したが、これに限らない。例えば、ＲＡＩＤ装置２０１は、１つ、または、４つ以上のＣＭ２１０を有していてもよい。また、ＣＭ２１０が、ＣＡ２１３、ＲＡ２１４およびＦＣ２１５を１つずつ有する場合について説明したが、これに限らない。例えば、ＣＭ２１０は、ＣＡ２１３、ＲＡ２１４およびＦＣ２１５のいずれかを２つ以上含んでもよい。また、ＲＡＩＤ装置２０１が、図１に示した制御装置１００として動作する場合について説明したが、これに限らない。例えば、ＣＭ２１０のそれぞれ、または、いずれかが、図１に示した制御装置１００として動作してもよい。
【００３５】
（設定テーブル３００の記憶内容）
次に、図３を用いて、設定テーブル３００の記憶内容の一例について説明する。設定テーブル３００は、例えば、図２に示したメモリ２１２の記憶領域によって実現される。
【００３６】
図３は、設定テーブル３００の記憶内容の一例を示す説明図である。図３に示すように、設定テーブル３００は、種類項目に対応付けてオフセット項目を有し、ＯＳやＤＢ（ＤａｔａＢａｓｅ）などのシステムの種類ごとに各項目に情報が設定されることにより、レコード３０１〜３０４などを記憶する。
【００３７】
種類項目には、ホスト装置２０２によって実現される可能性があるＯＳやＤＢなどのシステムの種類が記憶される。オフセット項目には、ホスト装置２０２が、種類項目の種類のＯＳやＤＢなどのシステムを実現するコンピュータになる場合に、論理ボリュームの開始位置を移動させる量を示すオフセットが記憶される。
【００３８】
例えば、種類「ＯＳ  ＡＡＡ」のシステムが、論理ボリュームの先頭からデータの書込先として使用する可能性が高い場合がある。この場合、設定テーブル３００は、種類「ＯＳ  ＡＡＡ」のシステムを実現する際に書込位置を調整しなくてもよいため、種類「ＯＳ  ＡＡＡ」にオフセット「０ｘ００００」を対応付けたレコード３０１を記憶する。
【００３９】
種類「ＯＳ  ＢＢＢ」のシステムが、論理ボリュームの先頭部分を使用せず、先頭から０ｘ１８０ブロック目以降をデータの書込先として使用する可能性が高い場合がある。この場合、設定テーブル３００は、種類「ＯＳ  ＢＢＢ」のシステムを実現する際にライトペナルティを行わずに済むように、種類「ＯＳ  ＢＢＢ」にオフセット「０ｘ０１８０」を対応付けたレコード３０２を記憶する。
【００４０】
種類「ＯＳ  ＣＣＣ」のシステムが、種類「ＯＳ  ＢＢＢ」と同様に、論理ボリュームの先頭部分を使用せず、先頭から０ｘ０１００ブロック目以降をデータの書込先として使用する可能性が高い場合がある。この場合、設定テーブル３００は、種類「ＯＳ  ＣＣＣ」のシステムを実現する際にライトペナルティを行わなくてもよくなるように、種類「ＯＳ  ＣＣＣ」にオフセット「０ｘ０１００」を対応付けたレコード３０３を記憶する。
【００４１】
種類「ＯＳ  ＤＤＤ」のシステムが、種類「ＯＳ  ＢＢＢ」と同様に、論理ボリュームの先頭部分を使用せず、先頭から０ｘ０１２２ブロック目以降をデータの書込先として使用する可能性が高い場合がある。この場合、設定テーブル３００は、種類「ＯＳ  ＤＤＤ」のシステムを実現する際にライトペナルティを行わなくてもよくなるように、種類「ＯＳ  ＤＤＤ」にオフセット「０ｘ０１２２」を対応付けたレコード３０４を記憶する。
【００４２】
（管理テーブル４００の記憶内容）
次に、図４を用いて、管理テーブル４００の記憶内容の一例について説明する。管理テーブル４００は、例えば、図２に示したメモリ２１２の記憶領域によって実現される。
【００４３】
図４は、管理テーブル４００の記憶内容の一例を示す説明図である。図４に示すように、管理テーブル４００は、番号項目に対応付けて、オフセット１項目と、オフセット２項目と、オフセット１＋２項目と、変更後オフセット２項目と、進捗項目とを有する。管理テーブル４００は、論理ボリュームごとに各項目に情報が設定されることにより、レコード４０１〜４０３などを記憶する。
【００４４】
番号項目には、論理ボリュームに付された番号が記憶される。オフセット１項目には、番号項目の番号が付された論理ボリュームの開始位置を、論理領域の先頭位置から移動させる量を示すオフセット１が記憶される。
【００４５】
オフセット２項目には、番号項目の番号が付された論理ボリュームの開始位置を、オフセット１項目のオフセット１に加えて、さらに移動させる量を示すオフセット２が記憶される。オフセット２項目には、例えば、オフセット２として、設定テーブル３００のオフセット項目のオフセットが記憶される。
【００４６】
オフセット１＋２項目には、オフセット１項目のオフセット１と、オフセット２項目のオフセット２との和が記憶される。オフセット１＋２項目の値は、ホスト装置２０２から書込要求されたデータの書込位置となる論理ボリューム上の位置を、論理領域上の位置に変換する際に、データの書込位置に加算される。変更後オフセット２項目には、オフセット２項目のオフセット２を変更する場合の、変更後のオフセット２が記憶される。進捗項目には、オフセット２項目のオフセット２の変更の進捗度合いが記憶される。
【００４７】
（オフセットテーブル５００の記憶内容）
次に、図５を用いて、オフセットテーブル５００の記憶内容の一例について説明する。オフセットテーブル５００は、例えば、図２に示したメモリ２１２の記憶領域によって実現される。
【００４８】
図５は、オフセットテーブル５００の記憶内容の一例を示す説明図である。図５に示すように、オフセットテーブル５００は、番号項目に対応付けて、全要求数項目と、不要数項目とを有する。オフセットテーブル５００は、番号項目に対応付けて、オフセットずれ１項目と、オフセットずれ２項目と、オフセットずれ３項目とを有する。
【００４９】
オフセットテーブル５００は、番号項目に対応付けて、要求数１項目と、要求数２項目と、要求数３項目とを有する。オフセットテーブル５００は、番号項目に対応付けて、評価値１項目と、評価値２項目と、評価値３項目と、調整対象項目とを有する。オフセットテーブル５００は、論理ボリュームごとに各項目に情報が設定されることにより、レコード５０１などを記憶する。
【００５０】
番号項目には、論理ボリュームに付された番号が記憶される。全要求数項目には、番号項目の番号が付された論理ボリュームに対して書込要求されたデータの数が記憶される。不要数項目には、全要求数項目の書込要求されたデータの数のうち、ライトペナルティおよびリードモディファイライトを要さずに、ストレージ装置の物理領域に対する書き込みを行うことができたデータの数が記憶される。
【００５１】
オフセットずれ１項目には、論理ボリューム上の管理単位となる記憶領域の境界からの書込要求されたデータの書込位置のずれ量となるオフセットずれ１が記憶される。ＷＰは、ずれ量のうち、ライトペナルティによる書込性能の低下を抑制する際のオフセットである。ＲＭＷは、ずれ量のうち、リードモディファイライトによる書込性能の低下を抑制する場合に要するオフセットである。
【００５２】
オフセットずれ２項目には、オフセットずれ１とは異なるずれ量であって、論理ボリューム上の管理単位となる記憶領域の境界からの書込要求されたデータの書込位置のずれ量となるオフセットずれ２が記憶される。オフセットずれ３項目には、オフセットずれ１およびオフセットずれ２とは異なるずれ量であって、論理ボリューム上の管理単位となる記憶領域の境界からの書込要求されたデータの書込位置のずれ量となるオフセットずれ３が記憶される。
【００５３】
要求数１項目には、全要求数項目の書込要求されたデータの数のうち、オフセットずれ１項目のずれ量が算出されたデータの数が記憶される。要求数２項目には、全要求数項目の書込要求されたデータの数のうち、オフセットずれ２項目のずれ量が算出されたデータの数が記憶される。要求数３項目には、全要求数項目の書込要求されたデータの数のうち、オフセットずれ３項目のずれ量が算出されたデータの数が記憶される。
【００５４】
評価値１項目には、オフセットずれ１項目のずれ量に基づいて、ストレージ装置の物理領域上で、番号項目の番号が付された論理ボリュームのデータを再配置した場合の、番号項目の番号が付された論理ボリュームのアクセス性能の評価値が記憶される。評価値２項目には、オフセットずれ２項目のずれ量に基づいて、ストレージ装置の物理領域上で、番号項目の番号が付された論理ボリュームのデータを再配置した場合の、番号項目の番号が付された論理ボリュームのアクセス性能の評価値が記憶される。
【００５５】
評価値３項目には、オフセットずれ３項目のずれ量に基づいて、ストレージ装置の物理領域上で、番号項目の番号が付された論理ボリュームのデータを再配置した場合の、番号項目の番号が付された論理ボリュームのアクセス性能の評価値が記憶される。調整対象項目には、評価値が最大になるずれ量が記憶される。
【００５６】
（制御装置１００の機能的構成例）
次に、図６を用いて、制御装置１００の機能的構成例について説明する。
【００５７】
図６は、制御装置１００の機能的構成例を示すブロック図である。制御装置１００は、制御部となる機能として、受付部６０１と、算出部６０２と、選択部６０３と、配置部６０４とを含む。
【００５８】
受付部６０１は、ＲＡＩＤ構成のストレージ装置に作成された論理ボリュームに対するデータの書込要求を受け付ける。受付部６０１は、例えば、ホスト装置２０２から、データのサイズと書込位置とを含む、データの書込要求を受信することにより、データの書込要求を受け付ける。受付部６０１は、具体的には、データのサイズ「６ＭＢ＝０ｘ３０００ブロック」と書込位置「０ｘ８００ブロック目」とを含む、論理ボリューム＃０に対するデータの書込要求を受け付ける。これにより、受付部６０１は、データの書込要求に含まれるデータのサイズと書込位置とを算出部６０２に出力することができる。
【００５９】
受付部６０１が受け付けた書込要求は、例えば、メモリ２１２に記憶される。受付部６０１は、例えば、図２に示したメモリ２１２に記憶されたプログラムをＣＰＵ２１１に実行させることにより、または、ＣＡ２１３と、ＲＡ２１４とにより、その機能を実現する。
【００６０】
算出部６０２は、受付部６０１が書込要求を受け付けたデータのサイズと書込位置とに基づいて、論理ボリューム上の管理単位となる記憶領域の境界からの書込位置のずれ量を算出する。管理単位となる記憶領域は、例えば、ストライプ、またはセクタである。
【００６１】
算出部６０２は、例えば、論理ボリューム上のストライプの境界からの書込位置のずれ量を算出する。算出部６０２は、具体的には、データのサイズが、ストライプのサイズの整数倍と一致する場合に、書込位置のアドレスをストライプのサイズで除算したときの剰余の値をずれ量として算出する。算出部６０２は、一致しないと判定した場合には、ずれ量を算出しなくてもよい。
【００６２】
算出部６０２は、より具体的には、データのサイズ「６ＭＢ＝０ｘ３０００ブロック」をストライプのサイズ「０ｘ１８００ブロック」で除算する。ここで、算出部６０２は、除算したときの剰余が「０」であるため、データのサイズがストライプのサイズの整数倍と一致すると判定する。次に、算出部６０２は、データの書込位置「０ｘ８００ブロック目」をストライプのサイズ「０ｘ１８００ブロック」で除算する。そして、算出部６０２は、ストレージ装置の論理ボリューム上のストライプの境界からの、データの書込位置のずれ量として、除算したときの剰余「０ｘ８００ブロック」を算出する。
【００６３】
また、算出部６０２は、例えば、ストレージ装置の論理ボリューム上のセクタの境界からの書込位置のずれ量を算出する。算出部６０２は、具体的には、データのサイズが、セクタのサイズの整数倍と一致する場合に、書込位置のアドレスをセクタのサイズで除算したときの剰余の値をずれ量として算出する。
【００６４】
算出部６０２は、より具体的には、データのサイズ「４ＫＢ＝０ｘ８ブロック」をセクタのサイズ「０ｘ８ブロック」で除算する。ここで、算出部６０２は、除算したときの剰余が「０」であるため、データのサイズがセクタのサイズの整数倍と一致すると判定する。次に、算出部６０２は、データの書込位置「０ｘ４ブロック目」をセクタのサイズ「０ｘ８ブロック」で除算する。そして、算出部６０２は、ストレージ装置の論理ボリューム上のセクタの境界からの、データの書込位置のずれ量として、除算したときの剰余「０ｘ４ブロック」を算出する。
【００６５】
ここでは、算出部６０２が、書込要求されたデータのサイズが、ストライプやセクタのサイズの整数倍と一致する場合に、ずれ量を算出する場合について説明したが、これに限らない。例えば、算出部６０２は、書込要求されたデータのサイズが、ストライプのサイズより大きい場合に、ストライプのサイズの整数倍と一致しなくても、ずれ量を算出してもよい。
【００６６】
算出部６０２は、例えば、論理ボリュームに対して書込要求されたデータごとに、管理単位となる記憶領域の境界からの、データの書込位置のずれ量を算出してもよい。そして、算出部６０２は、書込要求されたデータごとに算出したずれ量のうち、同一の値になるずれ量の個数を算出する。
【００６７】
算出部６０２は、書込要求されたデータごとに算出したずれ量をオフセットテーブル５００のオフセットずれ１項目などに設定する。また、算出部６０２は、同一の値になるずれ量の個数などを、オフセットテーブル５００の要求数１項目などに設定する。これにより、算出部６０２は、論理ボリュームの開始位置をずらす量を示すオフセットを選択するために用いられる、データの書込位置のずれ量を算出することができる。
【００６８】
算出部６０２が算出したずれ量は、例えば、メモリ２１２に記憶される。算出部６０２が算出したずれ量は、具体的には、メモリ２１２のオフセットテーブル５００に記憶される。算出部６０２は、例えば、図２に示したメモリ２１２に記憶されたプログラムをＣＰＵ２１１に実行させることにより、その機能を実現する。
【００６９】
選択部６０３は、算出部６０２が算出したずれ量のいずれかを選択する。選択部６０３は、例えば、算出部６０２が算出したずれ量の個数に基づいて、算出部６０２が書込要求されたデータごとに算出したずれ量のそれぞれに基づき論理ボリュームのデータを再配置した場合のアクセス性能の評価値を算出する。そして、選択部６０３は、算出した評価値が最大になるずれ量を選択する。
【００７０】
選択部６０３は、具体的には、オフセットテーブル５００を参照して、オフセットずれ１項目のずれ量「８０」、要求数１項目の個数「１０」を取得する。選択部６０３は、取得したずれ量が「８＝４ＫＢ」以上である場合には、ライトペナルティによって書込性能が低下する可能性があるとして、ずれ量「８０」に基づき再配置した場合のアクセス性能の評価値の算出に移行する。ここで、ライトペナルティを行ってデータの書き込みを行う場合の書込性能に比べて、ライトペナルティを行わずにデータの書き込みを行う場合の書込性能は、１．５倍になるとする。
【００７１】
ずれ量「８０」に基づき再配置した場合、要求数１項目の個数「１００」のデータは、ライトペナルティを行わずに書込可能になる。このため、選択部６０３は、要求数１項目の個数「１００」が大きければ、ずれ量「８０」に基づき再配置した場合の評価値が大きくなるようにする。また、ずれ量「８０」に基づき再配置した場合、不要数項目の個数「１０」のデータは、ライトペナルティまたはリードモディファイライトを行うことになる。このため、選択部６０３は、不要数項目の個数「１０」が大きければ、ずれ量「８０」に基づき再配置した場合の評価値が小さくなるようにする。
【００７２】
また、残った個数「３００−１００−１０＝１９０」のデータは、ライトペナルティまたはリードモディファイライトを行うことになるか否かは不明である。これらのことから、選択部６０３は、ずれ量「８０」に基づき再配置した場合の評価値として、｛（１００×１．５）＋（１０／１．５）＋（１９０）｝／３００＝１．１６を算出する。選択部６０３は、算出した評価値を、オフセットテーブル５００の評価値１項目に設定する。
【００７３】
また、選択部６０３は、オフセットテーブル５００を参照して、オフセットずれ２項目のずれ量「４」、要求数２項目の個数「１００」を取得する。選択部６０３は、ずれ量が「８＝４ＫＢ」で割り切れない場合には、リードモディファイライトによって書込性能が低下する可能性があるとして、ずれ量「４」に基づき再配置した場合のアクセス性能の評価値の算出に移行する。ここで、リードモディファイライトを行ってデータの書き込みを行う場合の書込性能に比べて、リードモディファイライトを行わずにデータの書き込みを行う場合の書込性能は、１．２倍になるとする。
【００７４】
ずれ量「４」に基づき再配置した場合、要求数１項目の個数「１００」のデータは、リードモディファイライトを行うことになる。このため、選択部６０３は、要求数１項目の個数「１００」が大きければ、ずれ量「４」に基づき再配置した場合の評価値が小さくなるようにする。また、ずれ量「４」に基づき再配置した場合、要求数２項目の個数「１００」のデータは、リードモディファイライトを行わずに書込可能になる。このため、選択部６０３は、要求数２項目の個数「１００」が大きければ、ずれ量「４」に基づき再配置した場合の評価値が大きくなるようにする。
【００７５】
また、ずれ量「４」に基づき再配置した場合、要求数３項目の個数「５０」のデータは、リードモディファイライトを行わずに書込可能になる。このため、選択部６０３は、要求数３項目の個数「５０」が大きければ、ずれ量「４」に基づき再配置した場合の評価値が大きくなるようにする。また、ずれ量「４」に基づき再配置した場合、不要数項目の個数「１０」のデータは、ライトペナルティまたはリードモディファイライトを行うことになる。このため、選択部６０３は、不要数項目の個数「１０」が大きければ、ずれ量「４」に基づき再配置した場合の評価値が小さくなるようにする。
【００７６】
また、残った個数「３００−１００−１００−５０−１０＝４０」のデータは、ライトペナルティまたはリードモディファイライトを行うことになるか否かは不明である。これらのことから、選択部６０３は、ずれ量「４」に基づき再配置した場合の評価値として、｛（１００／１．２）＋（１００×１．２）＋（５０×１．２）＋（１０／１．２）＋（４０）｝／３００＝１．０４を算出する。選択部６０３は、算出した評価値を、オフセットテーブル５００の評価値２項目に設定する。
【００７７】
また、選択部６０３は、オフセットテーブル５００を参照して、オフセットずれ３項目のずれ量「４４」、要求数３項目の個数「５０」を取得する。選択部６０３は、取得したずれ量が「８＝４ＫＢ」以上であり、かつ、「８＝４ＫＢ」で割り切れない場合には、ライトペナルティおよびリードモディファイライトによって書込性能が低下する可能性があるとする。そして、選択部６０３は、ずれ量「４４」に基づき再配置した場合のアクセス性能の評価値の算出に移行する。ここで、ライトペナルティとリードモディファイライトとを行ってデータの書き込みを行う場合の書込性能に比べて、ライトペナルティとリードモディファイライトとを行わずにデータの書き込みを行う場合の書込性能は、１．５×１．２＝１．８倍になるとする。
【００７８】
ずれ量「４４」に基づき再配置した場合、要求数１項目の個数「１００」のデータは、リードモディファイライトを行うことになる。このため、選択部６０３は、要求数１項目の個数「１００」が大きければ、ずれ量「４４」に基づき再配置した場合の評価値が小さくなるようにする。また、ずれ量「４４」に基づき再配置した場合、要求数２項目の個数「１００」のデータは、リードモディファイライトを行わずに書込可能になる。このため、選択部６０３は、要求数２項目の個数「１００」が大きければ、ずれ量「４４」に基づき再配置した場合の評価値が大きくなるようにする。
【００７９】
また、ずれ量「４４」に基づき再配置した場合、要求数３項目の個数「５０」のデータは、ライトペナルティとリードモディファイライトとを行わずに書込可能になる。このため、選択部６０３は、要求数３項目の個数「５０」が大きければ、ずれ量「４４」に基づき再配置した場合の評価値が大きくなるようにする。また、ずれ量「４４」に基づき再配置した場合、不要数項目の個数「１０」のデータは、ライトペナルティまたはリードモディファイライトを行うことになる。このため、選択部６０３は、不要数項目の個数「１０」が大きければ、ずれ量「４４」に基づき再配置した場合の評価値が小さくなるようにする。
【００８０】
また、残った個数「３００−１００−１００−５０−１０＝４０」のデータは、ライトペナルティまたはリードモディファイライトを行うことになるか否かは不明である。これらのことから、選択部６０３は、ずれ量「４４」に基づき再配置した場合の評価値として、｛（１００／１．２）＋（１００×１．２）＋（５０×１．８）＋（１０／１．８）＋（４０）｝／３００＝１．１３を算出する。選択部６０３は、算出した評価値を、オフセットテーブル５００の評価値３項目に設定する。
【００８１】
さらに、選択部６０３は、評価値１項目、評価値２項目、評価値３項目のそれぞれの評価値を比較する。そして、選択部６０３は、評価値が最大になるずれ量「８０」を、配置部６０４が再配置を行う際に参照するずれ量として選択する。選択部６０３は、選択したずれ量を、オフセットテーブル５００の調整対象項目に設定する。これにより、選択部６０３は、配置部６０４にずれ量を出力することができる。
【００８２】
ここでは、選択部６０３が、評価値が最大になるずれ量を選択する場合について説明したが、これに限らない。例えば、選択部６０３は、同一のずれ量になったデータの個数が最大になるずれ量を選択してもよい。また、選択部６０３は、評価値が閾値以上になるずれ量を選択してもよい。また、選択部６０３は、評価値が閾値以上になるずれ量がない場合には、ずれ量を選択しなくてもよい。そして、選択部６０３は、配置部６０４による再配置が行われないようにしてもよい。
【００８３】
選択結果は、例えば、メモリ２１２に記憶される。選択部６０３は、例えば、図２に示したメモリ２１２に記憶されたプログラムをＣＰＵ２１１に実行させることにより、その機能を実現する。
【００８４】
配置部６０４は、ずれ量に基づいて、ストレージ装置の物理領域上で論理ボリュームのデータを再配置する。配置部６０４は、例えば、選択部６０３が選択したずれ量に基づいて、ストレージ装置の物理領域上で論理ボリュームのデータを再配置する。配置部６０４は、具体的には、ストレージ装置の物理領域上で、論理ボリュームのデータの先頭または末尾に、選択部６０３が選択したずれ量に応じたサイズのダミーデータを挿入して再配置する。
【００８５】
配置部６０４は、より具体的には、ストライプのサイズ「０ｘ１８００ブロック」から、選択部６０３が選択したずれ量「０ｘ８００ブロック」を減算したときの差分「０ｘ１０００ブロック」を、ダミーデータのサイズとして算出する。そして、配置部６０４は、ストレージ装置の物理領域上で、論理ボリュームのデータの先頭に、算出したサイズ「０ｘ１０００ブロック」のダミーデータを挿入して再配置する。これにより、配置部６０４は、次回以降に書込要求されたデータのサイズと書込位置とが、今回書込要求されたデータのサイズと書込位置と同様である場合に、書込性能の低下を抑制することができる。
【００８６】
配置部６０４は、例えば、図２に示したメモリ２１２に記憶されたプログラムをＣＰＵ２１１に実行させることにより、または、ＦＣ２１５により、その機能を実現する。
【００８７】
（第１の動作例）
次に、図７〜図９を用いて、制御装置１００による第１の動作例について説明する。第１の動作例は、制御装置１００が、書込要求されたデータの書き込みを行う際に、ライトペナルティを行うことになる場合の動作例である。
【００８８】
＜データの書込要求を受け付ける一例＞
図７は、第１の動作例において制御装置１００がデータの書込要求を受け付ける一例を示す説明図である。図７において、ストレージ装置２２０には、Ｄ０：０〜Ｄ１１：０やパリティＰ０１２などが記憶されている。符号Ｄｘ：ｙのｘは、データの番号である。符号Ｄｘ：ｙのｙは、データのバージョンである。パリティＰｉｊｋは、データＤｉ、Ｄｊ、Ｄｋのパリティである。
【００８９】
（１１）制御装置１００は、ホスト装置２０２から、論理ボリュームに対して０ｘ２００個の書込要求を受け付ける。受け付けた書込要求は、ストライプ単位ではない記憶領域に書き込むデータＤ１：１〜Ｄ６：１の書込要求などを含む。
【００９０】
（１２）制御装置１００は、受け付けた書込要求が、ストライプ単位ではない記憶領域に書き込むデータの書込要求であるため、ストレージ装置２２０からパリティの算出に要するデータを読み出す。そして、制御装置１００は、ストレージ装置２２０に対して、書込要求されたデータと算出したパリティとの書き込みを行う。
【００９１】
制御装置１００は、具体的には、データＤ１：１〜Ｄ６：１の書込要求を受け付けると、ストライプ７０１に記憶されている、パリティの算出に要するデータＤ０：０を読み出す。次に、制御装置１００は、データＤ０：０、Ｄ１：１、Ｄ２：１のパリティＰ０１２を算出する。そして、制御装置１００は、ストライプ７０１に、データＤ１：１、Ｄ２：１とパリティＰ０１２との書き込みを行う。
【００９２】
また、制御装置１００は、ストライプ７０２について、データＤ３：１〜Ｄ５：１のパリティＰ３４５を算出する。そして、制御装置１００は、ストライプ７０２に、データＤ３：１〜Ｄ５：１とパリティＰ３４５との書き込みを行う。ここでは、制御装置１００は、ライトペナルティを行わず、パリティの算出に要するデータを読み出さなくてもよいため、書込性能の低下が発生しない。
【００９３】
また、制御装置１００は、ストライプ７０３について、パリティの算出に要するデータＤ７：０、Ｄ８：０を読み出す。次に、制御装置１００は、データＤ６：１、Ｄ７：０、Ｄ８：０のパリティＰ６７８を算出する。そして、制御装置１００は、ストライプ７０３に、データＤ６：１とパリティＰ６７８との書き込みを行う。
【００９４】
ここで、図８の説明に移行する。図８を用いて後述するように、制御装置１００は、図７において受け付けた書込要求に基づいて、オフセットテーブルを更新する。そして、制御装置１００は、オフセットテーブル５００を参照して、管理テーブル４００のオフセット２項目のオフセット２を決定する。
【００９５】
＜オフセット２を決定する一例＞
図８は、第１の動作例において制御装置１００がオフセット２を決定する一例を示す説明図である。制御装置１００は、図７において受け付けた書込要求の個数「０ｘ２００」を、オフセットテーブル５００の全要求数に設定する。
【００９６】
制御装置１００は、図７において受け付けた書込要求のうち、ライトペナルティもリードモディファイライトも行わずに書込可能であった書込要求の個数「０」を、オフセットテーブル５００の不要数項目に設定する。
【００９７】
制御装置１００は、図７において受け付けた書込要求のそれぞれについて、管理単位となる記憶領域の境界からの書込位置のずれ量を算出する。制御装置１００は、例えば、ずれ量として、「０ｘ８００」を算出する。そして、制御装置１００は、算出したずれ量「０ｘ８００」を、オフセットテーブル５００のオフセットずれ１項目に設定する。制御装置１００は、算出したずれ量に、オフセットずれ１項目のずれ量とは異なるずれ量があれば、オフセットずれ２項目やオフセットずれ３項目に設定する。
【００９８】
制御装置１００は、算出したずれ量のうち、オフセットずれ１項目のずれ量「０ｘ８００」になった数「０ｘ２００」を、要求数１項目に設定する。制御装置１００は、オフセットずれ２項目やオフセットずれ３項目に設定されたずれ量があれば、要求数１項目と同様に、要求数２項目や要求数３項目を更新する。
【００９９】
制御装置１００は、オフセットずれ１項目のずれ量に基づいて、ストレージ装置２２０の物理領域上で、論理ボリュームのデータを再配置した場合の、論理ボリュームのアクセス性能の評価値「１．５」を算出する。そして、制御装置１００は、算出した評価値「１．５」を、評価値１項目に設定する。制御装置１００は、オフセットずれ２項目やオフセットずれ３項目に設定されたずれ量があれば、評価値１項目と同様に、評価値２項目や評価値３項目を更新する。
【０１００】
制御装置１００は、オフセットずれ１項目、オフセットずれ２項目、オフセットずれ３項目のそれぞれに設定されたずれ量のうち、評価値が最大になるずれ量「０ｘ８００」を特定する。そして、制御装置１００は、特定したずれ量「０ｘ８００」を、調整対象項目に設定する。
【０１０１】
さらに、制御装置１００は、調整対象項目に設定したずれ量「０ｘ８００」を、ストライプのサイズ「０ｘ１８００」から減算した差分「０ｘ１０００」を算出する。そして、制御装置１００は、算出した差分「０ｘ１０００」を、オフセット２に決定する。制御装置１００は、管理テーブル４００のオフセット２項目を、決定したオフセット２に更新する。ここで、制御装置１００が決定したオフセット２は、ホスト装置２０２のシステムと同一種類のシステムを実現する他のホスト装置２０２からの書込要求を受け付ける、他の制御装置１００に流用することができる。
【０１０２】
次に、図９の説明に移行する。図９に後述するように、制御装置１００は、決定したオフセット２に基づいて、ストレージ装置２２０の物理領域上で、論理ボリュームのデータを再配置する。
【０１０３】
＜論理ボリュームのデータを再配置する一例＞
図９は、第１の動作例において制御装置１００が論理ボリュームのデータを再配置する一例を示す説明図である。図９において、（１３）制御装置１００は、物理領域上で、論理ボリュームのデータの先頭に、決定したオフセット２のサイズになるダミーデータを挿入して、再配置する。これにより、制御装置１００は、データＤ１：１〜Ｄ３：１が、１つのストライプ単位の記憶領域に記憶されるように移動させることができる。
【０１０４】
（１４）制御装置１００は、図７と同様に、ホスト装置２０２から、論理ボリュームに対して、データＤ１：２〜Ｄ６：２の書込要求を受け付ける。このとき、（１３）において再配置した後であるため、データＤ１：２〜Ｄ６：２の書込要求は、ストライプ単位の記憶領域に書き込むデータになる。
【０１０５】
（１５）制御装置１００は、受け付けた書込要求が、ストライプ単位の記憶領域に書き込むデータの書込要求であるため、ストレージ装置２２０からパリティの算出に要するデータを読み出さなくてもよい。制御装置１００は、データの読み出しを行わずに、パリティを算出することができる。そして、制御装置１００は、ストレージ装置２２０に対して、書込要求されたデータと算出したパリティとの書き込みを行う。
【０１０６】
制御装置１００は、具体的には、データＤ１：２〜Ｄ６：２の書込要求を受け付けると、データＤ１：２〜Ｄ３：２のパリティＰ１２３を算出する。そして、制御装置１００は、ストライプ７０２に、データＤ１：２〜Ｄ３：２とパリティＰ１２３との書き込みを行う。また、制御装置１００は、データＤ４：２〜Ｄ６：２のパリティＰ４５６を算出する。そして、制御装置１００は、ストライプ７０３に、データＤ４：２〜Ｄ６：２とパリティＰ４５６との書き込みを行う。
【０１０７】
このように、制御装置１００は、論理ボリュームのデータを再配置した結果、図７と同様のデータの書込要求を受け付けた場合に、ライトペナルティを行わなくても、データの書き込みを行うことができるようになる。これにより、制御装置１００は、論理ボリュームに対する書込性能の低下を抑制することができる。
【０１０８】
ここで、制御装置１００は、任意のタイミングで論理ボリュームのデータを再配置してもよい。例えば、制御装置１００は、書込要求が一定時間受け付けられなかった場合に、論理ボリュームのデータを再配置してもよい。また、制御装置１００は、書込要求が統計的に少なくなる時間帯に、論理ボリュームのデータを再配置してもよい。
【０１０９】
また、制御装置１００は、ストレージ装置を交換する際に、交換前のストレージ装置から交換後のストレージ装置へと論理ボリュームのデータを再配置してもよい。このとき、制御装置１００は、交換前のストレージ装置から、交換後のストレージ装置にデータをコピーしておき、交換後のストレージ装置において再配置した後に、使用するストレージ装置を切り替えるようにしてもよい。これにより、制御装置１００は、論理ボリュームのデータを再配置しているときに、ホスト装置２０２への応答に遅延が生じることを抑制することができる。
【０１１０】
（第２の動作例）
次に、図１０〜図１２を用いて、制御装置１００による第２の動作例について説明する。第２の動作例は、制御装置１００が、書込要求されたデータの書き込みを行う際に、リードモディファイライトを行うことになる場合の動作例である。
【０１１１】
＜データの書込要求を受け付ける一例＞
図１０は、第２の動作例において制御装置１００がデータの書込要求を受け付ける一例を示す説明図である。図１０において、ストレージ装置２２０のディスクには、ｄ０：０〜ｄ２３：０などが記憶されている。符号ｄｘ：ｙのｘは、データの番号である。符号ｄｘ：ｙのｙは、データのバージョンである。
【０１１２】
（２１）制御装置１００は、ホスト装置２０２から、論理ボリュームに対して０ｘ２００個の書込要求を受け付ける。受け付けた書込要求は、セクタ単位ではない記憶領域に書き込むデータの書込要求などを含む。
【０１１３】
（２２）制御装置１００は、受け付けた書込要求が、セクタ単位ではない記憶領域に書き込むデータの書込要求であるため、ストレージ装置２２０からセクタ単位の記憶領域に書込可能なデータへの補正に要する補正用データを読み出す。次に、制御装置１００は、書込要求されたデータに、読み出した補正用データを結合することにより、書込要求されたデータを補正する。そして、制御装置１００は、ストレージ装置２２０に対して、補正後のデータの書き込みを行う。
【０１１４】
制御装置１００は、具体的には、データｄ４：１〜ｄ１９：１の書込要求を受け付けると、セクタ１００１について、補正用データとなるｄ０：０〜ｄ７：０を読み出す。次に、制御装置１００は、読み出したデータｄ０：０〜ｄ７：０のうちのデータｄ４：０〜ｄ７：０に、データｄ４：１〜ｄ７：１を上書きしたデータを、補正後のデータｄ０：１〜ｄ７：１として生成する。そして、制御装置１００は、セクタ１００１に、補正後のデータｄ０：１〜ｄ７：１の書き込みを行う。
【０１１５】
また、制御装置１００は、セクタ１００２について、データｄ８：１〜ｄ１５：１の書き込みを行う。ここでは、制御装置１００は、リードモディファイライトを行わず、補正用データを読み出さなくてもよいため、書込性能の低下が発生しない。
【０１１６】
また、制御装置１００は、セクタ１００３について、補正用データとなるｄ１６：０〜ｄ２３：０を読み出す。次に、制御装置１００は、読み出したデータｄ１６：０〜ｄ２３：０のうちのデータｄ１６：０〜ｄ１９：０に、データｄ１６：１〜ｄ１９：１を上書きしたデータを、補正後のデータｄ１６：１〜ｄ１９：１として生成する。そして、制御装置１００は、セクタ１００３に、補正後のデータｄ１６：１〜ｄ２３：１の書き込みを行う。
【０１１７】
ここで、図１１の説明に移行する。図１１を用いて後述するように、制御装置１００は、図１０において受け付けた書込要求に基づいて、オフセットテーブル５００を更新する。そして、制御装置１００は、オフセットテーブル５００を参照して、管理テーブル４００のオフセット２項目のオフセット２を決定する。
【０１１８】
＜オフセット２を決定する一例＞
図１１は、第２の動作例において制御装置１００がオフセット２を決定する一例を示す説明図である。制御装置１００は、図１０において受け付けた書込要求の個数「０ｘ２００」を、オフセットテーブル５００の全要求数に設定する。
【０１１９】
制御装置１００は、図１０において受け付けた書込要求のうち、ライトペナルティもリードモディファイライトも行わずに書込可能であった書込要求の個数「０」を、オフセットテーブル５００の不要数項目に設定する。
【０１２０】
制御装置１００は、図１０において受け付けた書込要求のそれぞれについて、管理単位となる記憶領域の境界からの書込位置のずれ量を算出する。制御装置１００は、例えば、ずれ量として、「０ｘ４」を算出する。そして、制御装置１００は、算出したずれ量「０ｘ４」を、オフセットテーブル５００のオフセットずれ１項目に設定する。制御装置１００は、算出したずれ量に、オフセットずれ１項目のずれ量とは異なるずれ量があれば、オフセットずれ２項目やオフセットずれ３項目に設定する。
【０１２１】
制御装置１００は、算出したずれ量のうち、オフセットずれ１項目のずれ量「０ｘ４」になった数「０ｘ２００」を、要求数１項目に設定する。制御装置１００は、オフセットずれ２項目やオフセットずれ３項目に設定されたずれ量があれば、要求数１項目と同様に、要求数２項目や要求数３項目を更新する。
【０１２２】
制御装置１００は、オフセットずれ１項目のずれ量に基づいて、ストレージ装置２２０の物理領域上で、論理ボリュームのデータを再配置した場合の、論理ボリュームのアクセス性能の評価値「１．２」を算出する。そして、制御装置１００は、算出した評価値「１．２」を、評価値１項目に設定する。制御装置１００は、オフセットずれ２項目やオフセットずれ３項目に設定されたずれ量があれば、評価値１項目と同様に、評価値２項目や評価値３項目を更新する。
【０１２３】
制御装置１００は、オフセットずれ１項目、オフセットずれ２項目、オフセットずれ３項目のそれぞれに設定されたずれ量のうち、評価値が最大になるずれ量「０ｘ４」を特定する。そして、制御装置１００は、特定したずれ量「０ｘ４」を、調整対象項目に設定する。
【０１２４】
さらに、制御装置１００は、調整対象項目に設定したずれ量「０ｘ４」を、セクタのサイズ「０ｘ８」から減算した差分「０ｘ４」を算出する。そして、制御装置１００は、算出した差分「０ｘ４」を、オフセット２に決定する。制御装置１００は、管理テーブル４００のオフセット２項目を、決定したオフセット２に更新する。
【０１２５】
次に、図１２の説明に移行する。図１２に後述するように、制御装置１００は、決定したオフセット２に基づいて、ストレージ装置２２０の物理領域上で、論理ボリュームのデータを再配置する。
【０１２６】
＜論理ボリュームのデータを再配置する一例＞
図１２は、第２の動作例において制御装置１００が論理ボリュームのデータを再配置する一例を示す説明図である。図１２において、（２３）制御装置１００は、物理領域上で、論理ボリュームのデータの先頭に、決定したオフセット２のサイズになるダミーデータを挿入して、再配置する。これにより、制御装置１００は、データｄ４：１〜ｄ１１：１が、１つのセクタ単位の記憶領域に記憶されるように移動させることができる。
【０１２７】
（２４）制御装置１００は、図１０と同様に、ホスト装置２０２から、論理ボリュームに対して、データｄ４：２〜ｄ１９：２の書込要求を受け付ける。このとき、（２３）において再配置した後であるため、データｄ４：２〜ｄ１９：２の書込要求は、セクタ単位の記憶領域に書き込むデータになる。
【０１２８】
（２５）制御装置１００は、受け付けた書込要求が、セクタ単位の記憶領域に書き込むデータの書込要求であるため、ストレージ装置２２０から補正用データを読み出さなくてもよい。制御装置１００は、ストレージ装置２２０に対して、書込要求されたデータの書き込みを行う。
【０１２９】
制御装置１００は、具体的には、データｄ４：２〜ｄ１９：２の書込要求を受け付けると、セクタ１００２に、データｄ４：２〜ｄ１１：２の書き込みを行う。また、制御装置１００は、セクタ１００３に、データｄ１２：２〜ｄ１９：２の書き込みを行う。
【０１３０】
このように、制御装置１００は、論理ボリュームのデータを再配置した結果、図１０と同様のデータの書込要求を受け付けた場合に、リードモディファイライトを行わなくても、データの書き込みを行うことができるようになる。これにより、制御装置１００は、論理ボリュームに対する書込性能の低下を抑制することができる。
【０１３１】
（作成処理手順の一例）
次に、図１３を用いて、作成処理手順の一例について説明する。
【０１３２】
図１３は、作成処理手順の一例を示すフローチャートである。図１３において、制御装置１００は、ホスト装置２０２のシステムの種類を取得する（ステップＳ１３０１）。次に、制御装置１００は、設定テーブル３００の種類項目に、取得した種類が記憶されているか否かを判定する（ステップＳ１３０２）。ここで、記憶されていない場合（ステップＳ１３０２：Ｎｏ）、制御装置１００は、ステップＳ１３０４の処理に移行する。
【０１３３】
一方で、記憶されている場合（ステップＳ１３０２：Ｙｅｓ）、制御装置１００は、取得した種類に対応する設定テーブル３００のオフセット項目のオフセットによって、管理テーブル４００のオフセット２項目とオフセット１＋２項目とを更新する（ステップＳ１３０３）。そして、制御装置１００は、ステップＳ１３０４の処理に移行する。
【０１３４】
ステップＳ１３０４において、制御装置１００は、図１４に後述する監視処理を実行する（ステップＳ１３０４）。そして、制御装置１００は、作成処理を終了する。これにより、制御装置１００は、ストレージ装置２２０に論理ボリュームを作成することができる。
【０１３５】
（監視処理手順の一例）
次に、図１４を用いて、図１３のステップＳ１３０４において実行される監視処理手順の一例について説明する。
【０１３６】
図１４は、監視処理手順の一例を示すフローチャートである。図１４において、制御装置１００は、書込要求を受け付けると、オフセットテーブル５００を更新する（ステップＳ１４０１）。次に、制御装置１００は、受け付けた書込要求の数が、閾値以上であるか否かを判定する（ステップＳ１４０２）。
【０１３７】
ここで、閾値以上ではない場合（ステップＳ１４０２：Ｎｏ）、制御装置１００は、監視処理の開始から、所定の監視時間が経過したか否かを判定する（ステップＳ１４０３）。ここで、経過していない場合（ステップＳ１４０３：Ｎｏ）、制御装置１００は、ステップＳ１４０１の処理に戻る。
【０１３８】
一方で、ステップＳ１４０２において閾値以上である場合（ステップＳ１４０２：Ｙｅｓ）、または、ステップＳ１４０３において所定の監視時間が経過した場合（ステップＳ１４０３：Ｙｅｓ）、制御装置１００は、ステップＳ１４０４の処理に移行する。
【０１３９】
ステップＳ１４０４において、制御装置１００は、図１５に後述する評価処理を実行する（ステップＳ１４０４）。次に、制御装置１００は、評価値が閾値以上であるか否かを判定する（ステップＳ１４０５）。ここで、閾値以上ではない場合（ステップＳ１４０５：Ｎｏ）、制御装置１００は、管理テーブル４００のオフセット２項目とオフセット１＋２項目とを更新せずに、監視処理を終了する。
【０１４０】
一方で、閾値以上である場合（ステップＳ１４０５：Ｙｅｓ）、制御装置１００は、後述する評価処理において選択したずれ量に応じたオフセットによって、管理テーブル４００のオフセット２項目とオフセット１＋２項目とを更新する（ステップＳ１４０６）。
【０１４１】
次に、制御装置１００は、図１６に後述する再配置処理を実行する（ステップＳ１４０７）。そして、制御装置１００は、監視処理を終了する。これにより、制御装置１００は、書込要求されたデータごとに、管理単位となる記憶領域の境界からの書込位置のずれ量を算出することができる。
【０１４２】
（評価処理手順の一例）
次に、図１５を用いて、図１４のステップＳ１４０４において実行される評価処理手順の一例について説明する。
【０１４３】
図１５は、評価処理手順の一例を示すフローチャートである。図１５において、制御装置１００は、オフセットテーブル５００のオフセットずれ１項目のずれ量に基づきストレージ装置２２０の物理領域上で論理ボリュームのデータを再配置した場合における論理ボリュームのアクセス性能の評価値を算出する（ステップＳ１５０１）。
【０１４４】
次に、制御装置１００は、オフセットテーブル５００のオフセットずれ２項目のずれ量に基づきストレージ装置２２０の物理領域上で論理ボリュームのデータを再配置した場合における論理ボリュームのアクセス性能の評価値を算出する（ステップＳ１５０２）。そして、制御装置１００は、オフセットテーブル５００のオフセットずれ３項目のずれ量に基づきストレージ装置２２０の物理領域上で論理ボリュームのデータを再配置した場合における論理ボリュームのアクセス性能の評価値を算出する（ステップＳ１５０３）。
【０１４５】
次に、制御装置１００は、算出した評価値が最大になるずれ量を選択する（ステップＳ１５０４）。そして、制御装置１００は、評価処理を終了する。これにより、制御装置１００は、物理領域上で論理ボリュームのデータを再配置する際に用いられるずれ量を選択することができる。
【０１４６】
（再配置処理手順の一例）
次に、図１６を用いて、図１４のステップＳ１４０７において実行される再配置処理手順の一例について説明する。
【０１４７】
図１６は、再配置処理手順の一例を示すフローチャートである。図１６において、制御装置１００は、論理ボリュームの末尾からの１回当たりの移動量を決定する（ステップＳ１６０１）。次に、制御装置１００は、論理ボリュームのデータのうち、１回分の移動するデータを読み出す（ステップＳ１６０２）。そして、制御装置１００は、読み出したデータを、元の位置から、管理テーブル４００のオフセット２項目のオフセットの分、移動させる（ステップＳ１６０３）。
【０１４８】
次に、制御装置１００は、管理テーブル４００の進捗項目を更新する（ステップＳ１６０４）。そして、制御装置１００は、再配置が完了したか否かを判定する（ステップＳ１６０５）。ここで、完了していない場合（ステップＳ１６０５：Ｎｏ）、制御装置１００は、ステップＳ１６０２の処理に戻る。
【０１４９】
一方で、完了した場合（ステップＳ１６０５：Ｙｅｓ）、制御装置１００は、移動前のデータが残っている記憶領域を、０を並べたダミーデータによって初期化する（ステップＳ１６０６）。次に、制御装置１００は、管理テーブル４００の進捗項目を更新する（ステップＳ１６０７）。そして、制御装置１００は、再配置処理を終了する。これにより、制御装置１００は、論理ボリュームのデータを再配置することができる。
【０１５０】
以上説明したように、制御装置１００によれば、論理ボリュームに対して書込要求されたデータの書込位置に基づいて、論理ボリューム上の管理単位となる記憶領域の境界からの書込位置のずれ量を算出することができる。そして、制御装置１００によれば、算出したずれ量に基づいて、ストレージ装置２２０の物理領域上で論理ボリュームのデータを再配置することができる。これにより、制御装置１００は、ずれ量に応じて、論理ボリュームの先頭位置をずらすことができる。結果として、制御装置１００は、次回以降に書込要求されたデータのサイズと書込位置とが、今回書込要求されたデータのサイズと書込位置と同様である場合に、書込性能の低下を抑制することができる。
【０１５１】
また、制御装置１００によれば、論理ボリューム上のストライプの境界からの書込位置のずれ量を算出することができる。そして、制御装置１００によれば、算出したずれ量に基づいて、ストレージ装置２２０の物理領域上で論理ボリュームのデータを再配置することができる。これにより、制御装置１００は、ずれ量に応じて、ライトペナルティを行わなくてもデータの書き込みを行うことができるように、論理ボリュームの先頭位置をずらすことができる。結果として、制御装置１００は、次回以降に書込要求されたデータのサイズと書込位置とが、今回書込要求されたデータのサイズと書込位置と同様である場合に、ライトペナルティを行わなくても書き込みを行うことができるようになる。このため、制御装置１００は、書込性能の低下を抑制することができる。
【０１５２】
また、制御装置１００によれば、データのサイズが、ストライプのサイズの整数倍と一致する場合に、書込位置のアドレスをストライプのサイズで除算したときの剰余の値をずれ量として算出することができる。これにより、制御装置１００は、論理ボリュームの先頭位置をずらしても、ライトペナルティを行わずには書き込みを行うことができないデータについてはずれ量を算出せず、処理負担を低減することができる。
【０１５３】
また、制御装置１００によれば、論理ボリューム上のセクタの境界からの書込位置のずれ量を算出することができる。そして、制御装置１００によれば、算出したずれ量に基づいて、ストレージ装置２２０の物理領域上で論理ボリュームのデータを再配置することができる。これにより、制御装置１００は、ずれ量に応じて、リードモディファイライトを行わなくてもデータの書き込みを行うことができるように、論理ボリュームの先頭位置をずらすことができる。結果として、制御装置１００は、次回以降に書込要求されたデータのサイズと書込位置とが、今回書込要求されたデータのサイズと書込位置と同様である場合に、リードモディファイライトを行わなくても書き込みを行うことができるようになる。このため、制御装置１００は、書込性能の低下を抑制することができる。
【０１５４】
また、制御装置１００によれば、データのサイズが、セクタのサイズの整数倍と一致する場合に、書込位置のアドレスをセクタのサイズで除算したときの剰余の値をずれ量として算出することができる。これにより、制御装置１００は、論理ボリュームの先頭位置をずらしても、リードモディファイライトを行わずには書き込みを行うことができないデータについてはずれ量を算出せず、処理負担を低減することができる。
【０１５５】
また、制御装置１００によれば、論理ボリュームに対して書込要求されたデータごとに、管理単位となる記憶領域の境界からの、データの書込位置のずれ量を算出することができる。次に、制御装置１００によれば、データごとに算出したずれ量のうち同一の値になるずれ量の個数に基づいて、データごとに算出したずれ量のそれぞれに基づき論理ボリュームのデータを再配置した場合のアクセス性能の評価値を算出することができる。そして、制御装置１００によれば、算出した評価値が最大になるずれ量に基づいて、ストレージ装置２２０の物理領域上で論理ボリュームのデータを再配置することができる。これにより、制御装置１００は、書込性能の低下を統計的に最も抑制することができるように、ずれ量を選択して、論理ボリュームのデータを再配置することができる。
【０１５６】
また、制御装置１００によれば、ストレージ装置２２０の物理領域上で、論理ボリュームのデータの先頭または末尾に、ずれ量に応じたサイズのダミーデータを挿入して再配置することができる。これにより、制御装置１００は、物理領域上に元々あったデータを、ダミーデータで上書きすることができる。結果として、制御装置１００は、誤って元々あったデータを読み出してしまうことを防止することができる。また、制御装置１００は、セキュリティを確保することができる。
【０１５７】
また、従来の演算装置が、書込要求されたデータごとに、データの書込位置を、論理ボリューム上の管理単位となる記憶領域の境界になる位置までずらす場合が考えられる。しかしながら、この場合、従来の演算装置は、論理ボリューム上の管理単位となる記憶領域の境界になる位置に合わない書込位置が指定されたデータについての書込要求が頻繁に発生すると、書込性能が低下してしまうことがある。また、従来の演算装置は、書込要求されたデータごとに書込位置をずらすため、未使用の記憶領域を増加させてしまうことがある。一方で、制御装置１００は、書込要求されたデータごとに、書込位置をずらす処理を行わなくてもよいため、書込性能の低下を抑制することができる。また、制御装置１００は、書込要求されたデータごとに書込位置をずらさないため、未使用の記憶領域の増加を抑制することができる。
【０１５８】
以上では、制御装置１００が、書込要求されたデータの書込位置に基づいてずれ量を算出する場合について説明したが、これに限らない。例えば、制御装置１００は、書込要求の代わりに読出要求を用いてもよい。制御装置１００は、具体的には、論理ボリュームに対して読出要求されたデータのサイズと読出位置とに基づいて、論理ボリューム上の管理単位となる記憶領域の境界からの読出位置のずれ量を算出する。
【０１５９】
なお、本実施の形態で説明した制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本制御プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本制御プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１６０】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１６１】
（付記１）ＲＡＩＤ構成のストレージ装置に作成された論理ボリュームに対して書込要求されたデータの書込位置に基づいて、前記論理ボリューム上の管理単位となる記憶領域の境界からの前記書込位置のずれ量を算出し、
算出した前記ずれ量に基づいて、前記ストレージ装置の物理領域上で前記論理ボリュームのデータを再配置する、
制御部を有することを特徴とするストレージ制御装置。
【０１６２】
（付記２）前記制御部は、前記論理ボリューム上のストライプの境界からの前記書込位置のずれ量を算出する、ことを特徴とする付記１に記載のストレージ制御装置。
【０１６３】
（付記３）前記制御部は、前記データのサイズが、前記ストライプのサイズの整数倍と一致する場合に、前記書込位置のアドレスを前記ストライプのサイズで除算したときの剰余の値を前記ずれ量として算出する、ことを特徴とする付記２に記載のストレージ制御装置。
【０１６４】
（付記４）前記制御部は、前記論理ボリューム上のセクタの境界からの前記書込位置のずれ量を算出する、ことを特徴とする付記１〜３のいずれか一つに記載のストレージ制御装置。
【０１６５】
（付記５）前記制御部は、前記データのサイズが、前記セクタのサイズの整数倍と一致する場合に、前記書込位置のアドレスを前記セクタのサイズで除算したときの剰余の値を前記ずれ量として算出する、ことを特徴とする付記４に記載のストレージ制御装置。
【０１６６】
（付記６）前記制御部は、前記論理ボリュームに対して書込要求されたデータごとに、前記管理単位となる記憶領域の境界からの、前記データの書込位置のずれ量を算出し、
前記データごとに算出した前記ずれ量のうち同一の値になる前記ずれ量の個数に基づいて、前記データごとに算出した前記ずれ量のそれぞれに基づき前記論理ボリュームのデータを再配置した場合のアクセス性能の評価値を算出し、
算出した前記評価値が最大になる前記ずれ量に基づいて、前記ストレージ装置の物理領域上で前記論理ボリュームのデータを再配置する、ことを特徴とする付記１〜５のいずれか一つに記載のストレージ制御装置。
【０１６７】
（付記７）前記制御部は、前記ストレージ装置の物理領域上で、前記論理ボリュームのデータの先頭または末尾に、前記ずれ量に応じたサイズのダミーデータを挿入して再配置する、ことを特徴とする付記１〜６のいずれか一つに記載のストレージ制御装置。
【０１６８】
（付記８）コンピュータが、
ＲＡＩＤ構成のストレージ装置に作成された論理ボリュームに対して書込要求されたデータの書込位置に基づいて、前記論理ボリューム上の管理単位となる記憶領域の境界からの前記書込位置のずれ量を算出し、
算出した前記ずれ量に基づいて、前記ストレージ装置の物理領域上で前記論理ボリュームのデータを再配置する、
処理を実行することを特徴とする制御方法。
【０１６９】
（付記９）コンピュータに、
ＲＡＩＤ構成のストレージ装置に作成された論理ボリュームに対して書込要求されたデータの書込位置に基づいて、前記論理ボリューム上の管理単位となる記憶領域の境界からの前記書込位置のずれ量を算出し、
算出した前記ずれ量に基づいて、前記ストレージ装置の物理領域上で前記論理ボリュームのデータを再配置する、
処理を実行させることを特徴とする制御プログラム。
【符号の説明】
【０１７０】
１００  ストレージ制御装置
６０１  受付部
６０２  算出部
６０３  選択部
６０４  配置部
【図１】
0006540068.tif 000002
【図２】
0006540068.tif 000003
【図３】
0006540068.tif 000004
【図４】
0006540068.tif 000005
【図５】
0006540068.tif 000006
【図６】
0006540068.tif 000007
【図７】
0006540068.tif 000008
【図８】
0006540068.tif 000009
【図９】
0006540068.tif 000010
【図１０】
0006540068.tif 000011
【図１１】
0006540068.tif 000012
【図１２】
0006540068.tif 000013
【図１３】
0006540068.tif 000014
【図１４】
0006540068.tif 000015
【図１５】
0006540068.tif 000016
【図１６】
0006540068.tif 000017