(57)【要約】      （修正有）【課題】階層間のデータ移動を効率化できる階層化ストレージシステムを提供する。【解決手段】階層化ストレージシステムは、第１のストレージ装置と、第２のストレージ装置と、ストレージコントローラとを含む。前記ストレージコントローラは、前記第１および第２のストレージ装置の記憶領域が複数の物理ブロックから構成される物理エクステント単位に割り当てられる、前記物理ブロックと同サイズの複数の論理ブロックから構成される複数の論理エクステントを含む論理ユニットに対するホスト計算機からのアクセス要求の範囲が、前記論理ユニット内の複数の論理エクステントに跨る場合、当該複数の論理エクステントは相関があると判定し、相関のある論理エクステントの集合を１つのエクステントグループとして、前記第１および第２のストレージ装置間における物理エクステント単位のデータの移動を一括的に行う。【選択図】図２
2018088135.tif 000002
【特許請求の範囲】
【請求項１】
上位階層に位置づけられる第１のストレージ装置と、
下位階層に位置づけられる第２のストレージ装置と、
前記第１および第２のストレージ装置へのアクセスを制御するストレージコントローラと、
を具備し、
前記ストレージコントローラは、前記第１および第２のストレージ装置の記憶領域が複数の物理ブロックから構成される物理エクステント単位に割り当てられる、前記物理ブロックと同サイズの複数の論理ブロックから構成される複数の論理エクステントを含む論理ユニットに対するホスト計算機からのアクセス要求の範囲が、前記論理ユニット内の複数の論理エクステントに跨る場合、当該複数の論理エクステントは相関があると判定し、相関のある論理エクステントの集合を１つのエクステントグループとして、前記第１および第２のストレージ装置間における物理エクステント単位のデータの移動を一括的に行う、
階層化ストレージシステム。
【請求項２】
前記ストレージコントローラは、
前記複数の論理エクステントの各々に対応づけて、対応する論理エクステントと共に同一のアクセス要求によりアクセスされた当該対応する論理エクステントの前方に位置する論理エクステントを示す前方リンクエクステント識別子と、対応する論理エクステントと共に同一のアクセス要求によりアクセスされた当該対応する論理エクステントの後方に位置する論理エクステントを示す後方リンクエクステント識別子とを少なくとも保持するエクステント管理テーブルを管理し、
前記エクステント管理テーブルに保持される前方リンクエクステント識別子を辿って各エクステントグループの先頭の論理エクステントを特定するとともに、当該先頭の論理エクステントを起点に前記エクステント管理テーブルに保持される後方リンクエクステント識別子を辿って各エクステントグループに属する論理エクステントの数を取得して、各エクステントグループの先頭の論理エクステントを示す代表エクステント識別子と各エクステントグループに属する論理エクステントの数とを少なくとも保持するエクステントグループ管理テーブルを管理し、
前記エクステント管理テーブルと前記エクステントグループ管理テーブルとに基づき、各エクステントグループに属する複数の論理エクステントに各々対応づけられた複数の物理エクステントに格納されるデータを前記第１および第２のストレージ装置間において一括的に移動させる、
請求項１に記載の階層化ストレージシステム。
【請求項３】
前記ストレージコントローラは、前記ホスト計算機からのアクセス要求の範囲が、互いに異なるエクステントグループに属する２以上の論理エクステントに跨る場合、当該２以上の論理エクステントが各々属する２以上のエクステントグループを１つのエクステントグループに統合するために前記エクステントグループ管理テーブルを更新する請求項２に記載の階層化ストレージシステム。
【請求項４】
前記エクステント管理テーブルは、さらに、対応する論理エクステントへのアクセス回数を保持し、
前記ストレージコントローラは、前記第１のストレージ装置内の物理エクステントに格納されるデータを前記第２のストレージ装置内の物理エクステントに移動させて前記第１のストレージ装置内に空きの物理エクステントを確保する場合、前記エクステント管理テーブルに保持されるアクセス回数に基づき、前記第１のストレージ装置内の物理エクステントにすべての論理エクステントが対応づけられているエクステントグループそれぞれのアクセス回数を算出し、当該算出したアクセス回数に基づき、前記第１のストレージ装置の物理エクステントから前記第２のストレージ装置内の物理エクステントへデータを移動させるエクステントグループを選択する、
請求項２または３に記載の階層化ストレージシステム。
【請求項５】
前記エクステント管理テーブルは、さらに、対応する論理エクステントが当該対応する論理エクステントの前方に位置する論理エクステントと共に同一のアクセス要求によりアクセスされた回数を示す前方リンク強度と、対応する論理エクステントが当該対応する論理エクステントの後方に位置する論理エクステントと共に同一のアクセス要求によりアクセスされた回数を示す後方リンク強度とを保持し、
前記ストレージコントローラは、エクステントグループに属する論理エクステントの数が閾値を超えた場合、前記エクステント管理テーブルに保持される前方リンク強度および後方リンク強度に基づき、当該エクステントグループを２つのエクステントグループに分離すべく前記エクステント管理テーブルおよび前記エクステントグループ管理テーブルを更新する、
請求項２乃至４のいずれか１項に記載の階層化ストレージシステム。
【請求項６】
前記ストレージコントローラは、
前記複数の論理エクステントの各々に対応づけて、対応する論理エクステントが当該対応する論理エクステントの前方に位置する論理エクステントと共に同一のアクセス要求によりアクセスされた回数を少なくとも含む論理エクステント情報を管理し、
前記回数が０の論理エクステント情報に辿り着くまで前記論理エクステント情報を論理エクステントの並び順に沿って前方に辿って各エクステントグループの先頭の論理エクステントを特定するとともに、当該先頭の論理エクステントを起点に前記回数が０以外の論理エクステント情報が連続する間において前記論理エクステント情報を論理エクステントの並び順に沿って後方に辿って各エクステントグループに属する論理エクステントの数を取得し、
前記特定した各エクステントグループの先頭の論理エクステントと、前記取得した各エクステントグループに属する論理エクステントの数とに基づき、各エクステントグループに属する複数の論理エクステントに各々対応づけられた複数の物理エクステントに格納されるデータを前記第１および第２のストレージ装置間において一括的に移動させる、
請求項１に記載の階層化ストレージシステム。
【請求項７】
前記論理エクステント情報は、さらに、対応する論理エクステントへのアクセス回数を含み、
前記ストレージコントローラは、前記第１のストレージ装置内の物理エクステントに格納されるデータを前記第２のストレージ装置内の物理エクステントに移動させて前記第１のストレージ装置内に空きの物理エクステントを確保する場合、前記論理エクステント情報に含まれるアクセス回数に基づき、前記第１のストレージ装置内の物理エクステントにすべての論理エクステントが対応づけられているエクステントグループそれぞれのアクセス回数を算出し、当該算出したアクセス回数に基づき、前記第１のストレージ装置の物理エクステントから前記第２のストレージ装置内の物理エクステントへデータを移動させるエクステントグループを選択する、
請求項６に記載の階層化ストレージシステム。
【請求項８】
前記ストレージコントローラは、エクステントグループに属する論理エクステントの数が閾値を超えた場合、前記論理エクステント情報に保持される前方リンク強度に基づき、当該エクステントグループを２つのエクステントグループに分離するために前記論理エクステント情報を更新する、
請求項６または７に記載の階層化ストレージシステム。
【請求項９】
上位階層に位置づけられる第１のストレージ装置および下位階層に位置づけられる第２のストレージ装置へのアクセスを制御するストレージコントローラであって、
前記第１および第２のストレージ装置の記憶領域が複数の物理ブロックから構成される物理エクステント単位に割り当てられる、前記物理ブロックと同サイズの複数の論理ブロックから構成される複数の論理エクステントを含む論理ユニットに対するホスト計算機からのアクセス要求の範囲が、前記論理ユニット内の複数の論理エクステントに跨る場合、当該複数の論理エクステントは相関があると判定し、当該複数の論理エクステントを１つのエクステントグループとして、前記第１および第２のストレージ装置間における物理エクステント単位のデータの移動を一括的に行う階層化制御部を具備するストレージコントローラ。
【請求項１０】
上位階層に位置づけられる第１のストレージ装置および下位階層に位置づけられる第２のストレージ装置へのアクセスを制御するストレージコントローラによって実行される階層化制御方法であって、
前記第１および第２のストレージ装置の記憶領域が複数の物理ブロックから構成される物理エクステント単位に割り当てられる、前記物理ブロックと同サイズの複数の論理ブロックから構成される複数の論理エクステントを含む論理ユニットに対するホスト計算機からのアクセス要求の範囲が、前記論理ユニット内の複数の論理エクステントに跨る場合、当該複数の論理エクステントは相関があると判定し、相関のある論理エクステントの集合を１つのエクステントグループとして、前記第１および第２のストレージ装置間における物理エクステント単位のデータの移動を一括的に行うことを具備する階層化制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、階層化ストレージシステム、ストレージコントローラおよび階層化制御方法に関する。
【背景技術】
【０００２】
近年、アクセス速度の異なる第１および第２のストレージ装置を備えたストレージシステムが開発されている。ここで、第１のストレージ装置のアクセス速度および記憶容量は高速で小容量であり、第２のストレージ装置のアクセス速度および記憶容量は、第１のストレージ装置のそれと比較して低速で大容量であるものとする。ストレージシステムは、第１および第２のストレージ装置を、それぞれ上位階層および下位階層として階層的に組み合わせることにより実現される。このような技術はストレージ階層化技術とも呼ばれ、当該ストレージ階層化技術を適用するストレージシステムは階層化ストレージシステムとも呼ばれる。
【０００３】
階層化ストレージシステムでは、データが配置（格納）されるべき階層（ストレージ装置）が、当該データの特性に応じて決定・変更される。具体的には、アクセス頻度の高いデータは上位階層（第１のストレージ装置）に配置され、アクセス頻度の低いデータは下位階層（第２のストレージ装置）に配置される。このような配置（階層化）により、階層化ストレージシステムの高パフォーマンス化と低コスト化とを両立することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第５３６２１４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
階層化ストレージシステムにおける階層化は、一般に自動的に行われる。この自動的な階層化のために、ストレージコントローラは、例えば、階層化ストレージシステムにおけるアクセスの状況を、エクステントと呼ばれるデータ集合を単位に監視する。エクステントは、一般に、データ管理（データアクセス）の基本サイズ（いわゆるブロックサイズ）よりも大きいサイズを有する。エクステントそれぞれへのアクセスの状況は、アクセス回数のようなアクセス統計値により表される。
【０００６】
ストレージコントローラは、例えば定期的に、エクステントそれぞれのアクセス統計値に基づき、当該エクステントそれぞれのアクセス頻度に関する評価を行う。ストレージコントローラは、この定期的な評価結果に基づき、下位階層から上位階層へのデータの移動（再配置）または上位階層から下位階層へのデータの移動をエクステント単位に行う。しかし、定期的なアクセス頻度評価に基づく階層間のデータ移動は、オーバーヘッドが大きく、処理に時間を費やす。
【０００７】
本発明が解決しようとする課題は、階層間のデータ移動を効率化できる階層化ストレージシステム、ストレージコントローラおよび階層化制御方法を提供することである。
【課題を解決するための手段】
【０００８】
実施形態によれば、階層化ストレージシステムは、第１のストレージ装置と、ストレージコントローラとを含む。前記第１のストレージ装置は、上位階層に位置づけられる。前記第２のストレージ装置は、下位階層に位置づけられる。前記ストレージコントローラは、前記第１および第２のストレージ装置へのアクセスを制御する。前記ストレージコントローラは、前記第１および第２のストレージ装置の記憶領域が複数の物理ブロックから構成される物理エクステント単位に割り当てられる、前記物理ブロックと同サイズの複数の論理ブロックから構成される複数の論理エクステントを含む論理ユニットに対するホスト計算機からのアクセス要求の範囲が、前記論理ユニット内の複数の論理エクステントに跨る場合、当該複数の論理エクステントは相関があると判定し、相関のある論理エクステントの集合を１つのエクステントグループとして、前記第１および第２のストレージ装置間における物理エクステント単位のデータの移動を一括的に行う。
【図面の簡単な説明】
【０００９】
【図１】第１実施形態に係る階層化ストレージシステムを含むコンピュータシステムの典型的なハードウェア構成を示すブロック図。
【図２】図１に示されるストレージコントローラの典型的な機能構成を主として示すブロック図。
【図３】同実施形態における、物理エクステントと物理ブロックとの典型的な関係を示す図。
【図４】同実施形態における、論理エクステントと論理ブロックとの典型的な関係を示す図。
【図５】図２に示されるアドレス変換テーブルのデータ構造例を示す図。
【図６】図２に示されるエクステント管理テーブルのデータ構造例を示す図。
【図７】図２に示されるエクステントグループ管理テーブルのデータ構造例を示す図。
【図８】同実施形態における論理エクステントの相関についての判断基準を説明するための図。
【図９】同実施形態におけるアクセス処理の典型的な手順を示すフローチャート。
【図１０】図９に示されるアクセス処理に含まれているテーブル更新処理（エクステント管理テーブルに関するテーブル更新処理）の典型的な手順を示すフローチャート。
【図１１】図９に示されるアクセス処理に含まれているテーブル更新処理（エクステントグループ管理テーブルに関するテーブル更新処理）の典型的な手順を示す第１のフローチャート。
【図１２】図９に示されるアクセス処理に含まれているテーブル更新処理（エクステントグループ管理テーブルに関するテーブル更新処理）の典型的な手順を示す第２のフローチャート。
【図１３】図２に示されるエクステント管理テーブルとエクステントグループ管理テーブルとがどのように更新されていくのかの具体例について第１の場合を例に説明するための第１の図。
【図１４】図２に示されるエクステント管理テーブルとエクステントグループ管理テーブルとがどのように更新されていくのかの具体例について第１の場合を例に説明するための第２の図。
【図１５】図２に示されるエクステント管理テーブルとエクステントグループ管理テーブルとがどのように更新されていくのかの具体例について第１の場合を例に説明するための第３の図。
【図１６】図２に示されるエクステント管理テーブルとエクステントグループ管理テーブルとがどのように更新されていくのかの具体例について第２の場合を例に説明するための第１の図。
【図１７】図２に示されるエクステント管理テーブルとエクステントグループ管理テーブルとがどのように更新されていくのかの具体例について第２の場合を例に説明するための第２の図。
【図１８】図２に示されるエクステント管理テーブルとエクステントグループ管理テーブルとがどのように更新されていくのかの具体例について第２の場合を例に説明するための第３の図。
【図１９】図２に示されるエクステント管理テーブルとエクステントグループ管理テーブルとがどのように更新されていくのかの具体例について第３の場合を例に説明するための第１の図。
【図２０】図２に示されるエクステント管理テーブルとエクステントグループ管理テーブルとがどのように更新されていくのかの具体例について第３の場合を例に説明するための第２の図。
【図２１】図２に示されるエクステント管理テーブルとエクステントグループ管理テーブルとがどのように更新されていくのかの具体例について第３の場合を例に説明するための第３の図。
【図２２】図２に示されるエクステント管理テーブルとエクステントグループ管理テーブルとがどのように更新されていくのかの具体例について第３の場合を例に説明するための第４の図。
【図２３】図２に示されるエクステント管理テーブルとエクステントグループ管理テーブルとがどのように更新されていくのかの具体例について第３の場合を例に説明するための第５の図。
【図２４】図９に示されるアクセス処理に含まれているデータ移動元決定処理の典型的な手順を示すフローチャート。
【図２５】図９に示されるアクセス処理に含まれている空き領域確保処理の典型的な手順を示すフローチャート。
【図２６】同実施形態におけるグループ分離処理の典型的な手順を示すフローチャート。
【図２７】第２実施形態に係る階層化ストレージシステムにおけるストレージコントローラの典型的な機能構成を主として示すブロック図。
【図２８】高速メディアの記憶領域と低速メディアの記憶領域とを仮想化して１以上の論理ユニットを提供する例を示す図。
【図２９】図２７に示される論理エクステント情報のデータ構造例を示す図。
【図３０】図２７に示される論理エクステント情報がどのように更新されていくのかの具体例について第１の場合を例に説明するための図。
【図３１】図２７に示される論理エクステント情報がどのように更新されていくのかの具体例について第２の場合を例に説明するための図。
【図３２】図２７に示される論理エクステント情報がどのように更新されていくのかの具体例について第３の場合を例に説明するための図。
【図３３】同実施形態における代表エクステントの探し方を説明するための図。
【図３４】同実施形態におけるエクステントグループ構成数の調べ方を説明するための図。
【発明を実施するための形態】
【００１０】
以下、実施の形態について図面を参照して説明する。
【００１１】
（第１実施形態）
まず、第１実施形態について説明する。
【００１２】
図１は、本実施形態に係る階層化ストレージシステムを含むコンピュータシステムの典型的なハードウェア構成を示すブロック図である。図１に示されるコンピュータシステムは、階層化ストレージシステム１０およびホストコンピュータ（以下、ホストと称する）２０から構成される。つまり、コンピュータシステムは、単一のホストを備えている。しかし、コンピュータシステムが、複数のホストを備えていても良い。
【００１３】
ホスト２０は、階層化ストレージシステム１０が提供する論理ユニットを自身の外部ストレージ装置として利用する。論理ユニットは、論理ディスクまたは論理ボリュームとも呼ばれ、仮想化された記憶領域（つまり、論理記憶領域）を含む。ホスト２０は、例えば、ホストインタフェースバス３０を介して階層化ストレージシステム１０（より詳細には、階層化ストレージシステム１０のストレージコントローラ１３）と接続されている。本実施形態においてホストインタフェースバス３０は、ファイバチャネル（ＦＣ）である。しかし、ホストインタフェースバス３０が、スモールコンピュータシステムインタフェース（ＳＣＳＩ）、シリアルアタッチドＳＣＳＩ（ＳＡＳ）、インターネットＳＣＳＩ（ｉＳＣＳＩ）、イーサネット（登録商標）あるいはシリアルＡＴアタッチメント（ＳＡＴＡ）のようなＦＣ以外のインタフェースバスであっても構わない。また、ホスト２０が、ストレージエリアネットワーク（ＳＡＮ）、インターネット或いはイントラネットのようなネットワークを介して階層化ストレージシステム１０と接続されていても良い。
【００１４】
ホスト２０は、サーバあるいはクライアントパーソナルコンピュータのような物理計算機である。ホスト２０内では、階層化ストレージシステム１０が提供する論理ユニット内のデータにアクセスするためのアプリケーションプログラムが動作する。このアプリケーションプログラムに従い、ホスト２０は、ホストインタフェースバス３０を介して階層化ストレージシステム１０を利用する。
【００１５】
階層化ストレージシステム１０は、高速ストレージ装置（第１のストレージ装置）１１と、低速ストレージ装置（第２のストレージ装置）１２と、ストレージコントローラ１３とを備えている。高速ストレージ装置１１および低速ストレージ装置１２は、ストレージインタフェースバス１４を介してストレージコントローラ１３と接続されている。本実施形態においてストレージインタフェースバス１４は、ＦＣ（ファイバチャネル）である。しかし、ストレージインタフェースバス１４が、ホストインタフェースバス３０と同様に、ＦＣ以外のインタフェースバスであっても構わない。
【００１６】
高速ストレージ装置１１は、例えば、ハードディスクドライブ（ＨＤＤ）との互換性を有し、かつ、ＨＤＤよりもアクセス速度が高速な（アクセス性能が優れた）単一のソリッドステートドライブ（ＳＳＤ）から構成される。一方、低速ストレージ装置１２は、例えば単一のＨＤＤから構成される。
【００１７】
したがって、本実施形態において低速ストレージ装置１２は、高速ストレージ装置１１よりもアクセス速度が低い（アクセス性能が劣る）。これに対して、低速ストレージ装置１２の記憶容量は、高速ストレージ装置１１のそれよりも大きいものとする。本実施形態では、高速ストレージ装置１１は、上位階層（高速階層、第１の階層）のストレージ装置として、低速ストレージ装置１２は下位階層（低速階層、第２の階層）のストレージ装置として、それぞれ用いられる。なお、階層化ストレージシステム１０が、低速ストレージ装置１２よりも更に低速（低階層）のストレージ装置（第３の階層のストレージ装置）を備えていても良い。
【００１８】
なお、本実施形態とは異なって、高速ストレージ装置１１が、フラッシュメモリを搭載したフラッシュアレイストレージ装置あるいはオールフラッシュアレイと呼ばれるストレージ装置であっても構わない。同様に、低速ストレージ装置１２が、複数のＨＤＤから構成されるアレイ構成のストレージ装置であっても構わない。
【００１９】
また、高速ストレージ装置１１が、ＦＣ用のＨＤＤのような高速ＨＤＤから構成され、低速ストレージ装置１２が、ＳＡＴＡ用のＨＤＤのような低速ＨＤＤから構成されても構わない。また、低速ストレージ装置１２が、ブルーレイディスク（登録商標）ドライブもしくはＤＶＤ（登録商標）ドライブのような光学式ディスクドライブ、あるいはテープ装置であっても構わない。また、テープ装置が低速ストレージ装置１２として用いられる場合、光学式ディスクドライブが高速ストレージ装置１１として用いられても構わない。
【００２０】
ストレージコントローラ１３は、ホスト２０から与えられる、論理アドレスを用いたアクセス（リードアクセスまたはライトアクセス）の要求（入出力要求）を受信して、要求されたアクセス（入出力）を実行する。このアクセスの実行に際し、ストレージコントローラ１３は、周知のアドレス変換機能を用いて、論理アドレスを物理アドレスに変換する。論理アドレスは、論理ユニット内のアドレスを指す。物理アドレスは、高速ストレージ装置１１または低速ストレージ装置１２に含まれていて、かつ、論理アドレスに対応づけられている記憶領域の物理位置を示す。ストレージコントローラ１３は、物理アドレスに基づいて、高速ストレージ装置１１または低速ストレージ装置１２にアクセスする。
【００２１】
ストレージコントローラ１３は、ホストインタフェースコントローラ（以下、ＨＩＦコントローラと称する）１３１と、ストレージインタフェースコントローラ（以下、ＳＩＦコントローラと称する）１３２と、メモリ１３３と、ローカルＨＤＤ１３４と、ＣＰＵ１３５とを備えている。
【００２２】
ＨＩＦコントローラ１３１は、当該ＨＩＦコントローラ１３１とホスト２０との間のデータ転送（データ転送プロトコル）を制御する。ＨＩＦコントローラ１３１は、ホスト２０からのアクセス要求を受信し、当該アクセス要求に対する応答を返信する。アクセス要求は、論理ユニットからデータをリードすること、あるいは当該論理ユニットにデータをライトすること（つまり、論理ユニットへのアクセス）を指定する。ＨＩＦコントローラ１３１は、ホスト２０からアクセス要求を受信すると、当該アクセス要求を、ＣＰＵ１３５に伝達する。アクセス要求を受け取ったＣＰＵ１３５は、当該アクセス要求を処理する。
【００２３】
ＳＩＦコントローラ１３２は、ＣＰＵ１３５が受信したホスト２０からのアクセス要求に対応するアクセスコマンド（より詳細には、高速ストレージ装置１１または低速ストレージ装置１２に対するリードコマンドまたはライトコマンド）を、ＣＰＵ１３５から受信する。ＳＩＦコントローラ１３２は、受信されたアクセスコマンドに応じて、高速ストレージ装置１１または低速ストレージ装置１２へのアクセスを実行する。
【００２４】
メモリ１３３は、ＤＲＡＭのような、書き換えが可能な揮発性メモリである。メモリ１３３の記憶領域の一部は、ローカルＨＤＤ１３４からロードされる制御プログラムの少なくとも一部を格納するのに用いられる。メモリ１３３の記憶領域の他の一部は、ローカルＨＤＤ１３４からロードされるアドレス変換テーブル１３３１、エクステント管理テーブル１３３２およびエクステントグループ管理テーブル１３３３（図２）を格納するのに用いられる。
【００２５】
ローカルＨＤＤ１３４には、制御プログラムが格納されている。ＣＰＵ１３５は、ストレージコントローラ１３が起動されたときにイニシャルプログラムローダ（ＩＰＬ）を実行することにより、ローカルＨＤＤ１３４に格納されている制御プログラムの少なくとも一部をメモリ１３３にロードする。ＩＰＬは、ＲＯＭまたはフラッシュＲＯＭのような不揮発性メモリに格納されている。
【００２６】
ＣＰＵ１３５は、例えば、マイクロプロセッサのようなプロセッサである。ＣＰＵ１３５は、メモリ１３３にロードされた制御プログラムに従い、構成管理部１３５１、入出力（ＩＯ）制御部１３５２、入出力（ＩＯ）管理部１３５３、グループ管理部１３５４、および階層化制御部１３５５（図２）として機能する。つまりＣＰＵ１３５は、メモリ１３３に格納されている制御プログラムを実行することで、階層化ストレージシステム１０全体を制御する。
【００２７】
本実施形態においてストレージコントローラ１３は、図１に示されているようにホスト２０から独立して備えられている。しかし、ストレージコントローラ１３が、ホスト２０に内蔵されていても構わない。この場合、ストレージコントローラ１３（より詳細には、ストレージコントローラ１３の機能）が、ホスト２０の有するオペレーティングシステム（ＯＳ）の機能の一部を用いて実現されていても構わない。
【００２８】
また、ストレージコントローラ１３が、ホスト２０のカードスロットに装着して用いられるカードに備えられていても構わない。また、ストレージコントローラ１３の一部がホスト２０に内蔵され、当該ストレージコントローラ１３の残りがカードに備えられていても構わない。また、ホスト２０と、ストレージコントローラ１３と、高速ストレージ装置１１および低速ストレージ装置１２の一部または全部とが、１つの筐体に収められていても構わない。
【００２９】
図２は、図１に示されるストレージコントローラ１３の典型的な機能構成を主として示すブロック図である。ストレージコントローラ１３は、構成管理部１３５１、ＩＯ制御部１３５２、ＩＯ管理部１３５３、グループ管理部１３５４および階層化制御部１３５５を含む。構成管理部１３５１、ＩＯ制御部１３５２、ＩＯ管理部１３５３、グループ管理部１３５４および階層化制御部１３５５の少なくとも１つがハードウェアによって実現されても構わない。
【００３０】
構成管理部１３５１は、階層化ストレージシステム１０のストレージ構成を管理する。この構成管理は、高速ストレージ装置１１および低速ストレージ装置１２の記憶領域に基づいて、論理ユニットを構築し、当該論理ユニットをホスト２０に提供することを含む。本実施形態では、論理ユニットの記憶領域（論理記憶領域）は、当該論理ユニットの管理のために、論理ブロックと呼ばれる一定サイズの小領域に分割される。つまり、論理ユニットは、複数の論理ブロックから構成される。
【００３１】
一方、高速ストレージ装置１１および低速ストレージ装置１２の記憶領域（物理記憶領域）は、物理エクステントと呼ばれる、論理ブロックより大きなサイズの領域に分割される。各物理エクステントは、物理ブロックと呼ばれる、論理ブロックと同サイズの小領域に更に分割される。つまり、高速ストレージ装置１１および低速ストレージ装置１２の記憶領域は複数の物理エクステントから構成され、各物理エクステントは一定数の連続する物理ブロックから構成される。
【００３２】
本実施形態において論理ユニットの記憶領域は、論理エクステントと呼ばれる、物理エクステントと同サイズの領域にも分割される。つまり論理ユニットの記憶領域は、複数の論理エクステントからも構成される。各論理エクステントは、物理エクステントを構成する物理ブロックの数と同数の連続する論理ブロックから構成される。つまり、各論理エクステントの境界は、論理ブロックの境界に一致する。
【００３３】
物理エクステントおよび論理エクステントのサイズ（つまりエクステントサイズ）は、例えば４キロバイト（ＫＢ）、即ち４，０９６バイト（Ｂ）である。一方、物理ブロックおよび論理ブロックのサイズ（つまりブロックサイズ）は、例えば５１２バイト（Ｂ）である。つまり、前述の一定数は８であり、物理エクステント（論理エクステント）は、８個の物理ブロック（論理ブロック）から構成される。しかし、エクステントサイズおよびブロックサイズは、それぞれ、４ＫＢおよび５１２Ｂに限らず、前述の一定数も８に限らない。
【００３４】
ＩＯ制御部１３５２は、ホスト２０からのデータリードのためのアクセス要求に応じて、高速ストレージ装置１１または低速ストレージ装置１２からデータをリードする、またＩＯ制御部１３５２は、ホスト２０からのデータライトのためのアクセス要求に応じて、高速ストレージ装置１１または低速ストレージ装置１２にデータをライトする。
【００３５】
ＩＯ管理部１３５３は、ホスト２０からのアクセス要求に対応するＩＯ（アクセス）を管理する。ＩＯ管理部１３５３は、主としてこのＩＯ管理のために、論理ユニットの記憶領域を前述の複数の論理エクステントに分割する。つまりＩＯ管理部１３５３は、論理ユニットの記憶領域を、複数の論理エクステントを有する記憶領域として管理する。ＩＯ管理は、高速ストレージ装置１１および低速ストレージ装置１２の記憶領域内の物理ブロックを、論理ユニットの記憶領域内の論理ブロックに割り当てること、および当該割り当ての状態を管理することを含む。この割り当ての状態の管理には、アドレス変換テーブル１３３１が用いられる。なお、論理エクステントへの分割が、構成管理部１３５１によってなされても構わない。ＩＯ管理は更に、各論理エクステントへのアクセスの状況を示すアクセス（ＩＯ）統計値（以下、アクセスカウントと称する）を取得することを含む。論理エクステント毎のアクセスカウントは、エクステント管理テーブル１３３２を用いて管理される。
【００３６】
グループ管理部１３５４は、相関のある論理エクステントの集合をエクステントグループとして管理する。エクステントグループは、エクステントグループ管理テーブル１３３３を用いて管理される。論理エクステント間の相関については後述する。
【００３７】
階層化制御部１３５５は、低速ストレージ装置１２内のアクセスの頻度の高い物理エクステント内のデータを、高速ストレージ装置１１内の物理エクステントに移動（再配置）する。また階層化制御部１３５５は、高速ストレージ装置１１内のアクセスの頻度の低い物理エクステント内のデータを、低速ストレージ装置１２内の物理エクステントに移動する。
【００３８】
図３は、本実施形態における、物理エクステントと物理ブロックとの典型的な関係を示す。図３に示されるように、高速ストレージ装置１１の記憶領域は、ｍ個の物理エクステントＰＥ０，ＰＥ１，…，ＰＥｍ−１に分割される。つまり高速ストレージ装置１１は、ｍ個の物理エクステントＰＥ０〜ＰＥｍ−１を備えている。また、高速ストレージ装置１１の記憶領域は、ｍ×ｎ個の物理ブロックＰＢ０＿０，…，ＰＢ０＿ｎ−１，ＰＢ１＿０，…，ＰＢ１＿ｎ−１，…，ＰＢｍ−１＿０，…，ＰＢｍ−１＿ｎ−１に分割される。つまり高速ストレージ装置１１はｍ×ｎ個の物理ブロックＰＢ０＿０，…，ＰＢ０＿ｎ−１，ＰＢ１＿０，…，ＰＢ１＿ｎ−１，…，ＰＢｍ−１＿０，…，ＰＢｍ−１＿ｎ−１を備えている。
【００３９】
ここで、高速ストレージ装置１１におけるｉ番目（ｉ＝０，１，…，ｍ−１）の物理エクステントを物理エクステントＰＥｉと表記する。物理エクステントＰＥｉは、高速ストレージ装置１１の記憶領域において連続するｎ個の物理ブロックＰＢｉ＿０〜ＰＢｉ＿ｎ−１から構成される。換言すれば、物理ブロックＰＢｉ＿０〜ＰＢｉ＿ｎ−１は、物理エクステントＰＥｉを構成する。ｎは前述の一定数を示し、エクステントサイズが４ＫＢ、ブロックサイズが５１２Ｂである本実施形態では８である。
【００４０】
前述の高速ストレージ装置１１における物理エクステントと物理ブロックとの関係は、低速ストレージ装置１２においても同様である。必要ならば、前述の物理エクステントと物理ブロックとの関係に関する説明において、高速ストレージ装置１１を低速ストレージ装置１２に、記号ｍを他の記号（例えば、ｄ）に、それぞれ置き換えられたい。記号ｄは、低速ストレージ装置１２内の物理エクステントの数を示す。
【００４１】
高速ストレージ装置１１内の物理エクステントＰＥｉは、例えば、物理エクステント番号０ｉによって示される。つまり物理エクステント番号０ｉは、物理エクステントＰＥｉを識別するための識別子である。物理エクステント番号０ｉは、例えば、ストレージ番号０と内部物理エクステント番号ｉとの結合から構成される。ストレージ番号０は、高速ストレージ装置１１を示す識別子（ストレージ識別子）として用いられる。内部物理エクステント番号ｉは、ストレージ番号０によって示されるストレージ装置（つまり、高速ストレージ装置１１）内のｉ番目の物理エクステント（つまり、物理エクステントＰＥｉ）を示す識別子（エクステント識別子）として用いられる。
【００４２】
物理エクステントＰＥｉ内のｊ番目の物理ブロックＰＢｉ＿ｊ（ｊ＝０，１，…，ｎ−１）は、物理エクステント番号０ｉとオフセットＯＦＳＴｊとによって示される。オフセットＯＦＳＴｊは、物理エクステントＰＥｉにおけるｊ番目の物理ブロック（つまり、物理ブロックＰＢｉ＿ｊ）の相対位置を示す。
【００４３】
同様に、低速ストレージ装置１２内のｋ番目の物理エクステントＰＥｋ（ｋ＝０，１，…，ｈ−１）は、物理エクステント番号１ｋによって示される。物理エクステント番号１ｋは、ストレージ番号１と内部物理エクステント番号ｋとの結合から構成される。ストレージ番号１は、低速ストレージ装置１２を示す識別子として用いられる。内部物理エクステント番号ｋは、ストレージ番号１によって示されるストレージ装置（つまり、低速ストレージ装置１２）内のｋ番目の物理エクステント（つまり、物理エクステントＰＥｋ）を示す識別子として用いられる。
【００４４】
物理エクステントＰＥｋ内のｊ番目の物理ブロックＰＢｋ＿ｊは、物理エクステント番号１ｋとオフセットＯＦＳＴｊとによって示される。前述の物理エクステント番号０ｉおよび１ｋは、高速ストレージ装置１１および低速ストレージ装置１２を用いて提供される物理記憶領域全体（物理アドレス空間）においてユニークである。
【００４５】
図４は、本実施形態における、論理エクステントと論理ブロックとの典型的な関係を示す。図４には論理ユニットＬＵが示されている。論理ユニットＬＵの記憶領域（より詳細には、仮想的な記憶領域）は、ｕ×ｎ個の論理ブロックＬＢ０＿０，…，ＬＢ０＿ｎ−１，ＬＢ１＿０，…，ＬＢ１＿ｎ−１，…，ＬＢｕ−１＿０，…，ＬＢｕ−１＿ｎ−１に分割される。つまり論理ユニットＬＵは、ｕ×ｎ個の論理ブロックＬＢ０＿０，…，ＬＢ０＿ｎ−１，ＬＢ１＿０，…，ＬＢ１＿ｎ−１，…，ＬＢｕ−１＿０，…，ＬＢｕ−１＿ｎ−１を備えている。また、論理ユニットＬＵの記憶領域は、ｕ個の論理エクステントＬＥ０，…，ＬＥｕ−１に分割される。つまり論理ユニットＬＵは、ｕ個の論理エクステントＬＥ０〜ＬＥｕ−１を備えている。
【００４６】
ここで、論理ユニットＬＵ内のｓ番目（ｓ＝０，１，…，ｕ−１）の論理エクステントを論理エクステントＬＥｓと表記する。論理エクステントＬＥｓは、論理ユニットＬＵの記憶領域において連続するｎ個の論理ブロックＬＢｓ＿０〜ＬＢｓ＿ｎ−１から構成される。換言するならば、論理ブロックＬＢｓ＿０〜ＬＢｓ＿ｎ−１は、論理エクステントＬＥｓを構成する。論理ブロックＬＢｓ＿０〜ＬＢｓ＿ｎ−１は、それぞれ、論理ユニットＬＵ内のｓ×ｎ番目〜（ｓ＋１）×ｎ−１番目の論理ブロックである。
【００４７】
本実施形態においてストレージコントローラ１３は、論理ユニットＬＵ内の論理ブロックＬＢ０＿０，…，ＬＢ０＿ｎ−１，ＬＢ１＿０，…，ＬＢ１＿ｎ−１，…，ＬＢｕ−１＿０，…，ＬＢｕ−１＿ｎ−１、および論理ユニットＬＵ内の論理エクステントＬＥ０〜ＬＥｕ−１を認識できる。これに対してホスト２０は、論理ブロックＬＢ０＿０，…，ＬＢ０＿ｎ−１，ＬＢ１＿０，…，ＬＢ１＿ｎ−１，…，ＬＢｕ−１＿０，…，ＬＢｕ−１＿ｎ−１のみを認識できる。しかし、構成管理部１３５１が、論理エクステントのサイズを含む論理エクステントに関する定義内容をホスト２０に通知することにより、当該ホスト２０が論理ユニットＬＵ内の論理エクステントＬＥ０〜ＬＥｕ−１を認識できるようにしても構わない。
【００４８】
ホスト２０は、論理ユニットＬＵ内のｔ番目（ｔ＝０，１，…，ｕ×ｎ−１）の論理ブロックを、論理ユニット番号ＬＵＮと論理ブロックアドレスＬＢＡｔ（ＬＢＡ＝ＬＢＡｔ＝ｔ）とによって認識（指定）する。論理ユニット番号ＬＵＮ（例えば０）は論理ユニットＬＵを示す識別子として用いられ、論理ブロックアドレスＬＢＡｔは論理ユニット（より詳細には、論理ユニット番号ＬＵＮによって示される論理ユニットＬＵ）内のｔ番目の論理ブロックを示すアドレスとして用いられる。
【００４９】
論理ユニットＬＵ内のｔ番目の論理ブロック（つまり、論理ブロックアドレスがＬＢＡｔ＝ｔの論理ブロック）は、ｔ／ｎの商をｖ（ｖ＝０，１，…，ｕ−１）、剰余をｗ（ｗ＝０，１，…，ｎ−１）と表記するならば、ＬＢｖ＿ｗ（論理ブロックＬＢｖ＿ｗ）のように表される。ＬＢｖ＿ｗは、論理ユニットＬＵ内のｖ番目の論理エクステントにおけるｗ番目の論理ブロックを示す。明らかなように、ｔはｖ×ｎ＋ｗ＝（ｖ＋１）×ｎ−（ｎ−ｗ）に一致する。本実施形態においてＩＯ管理部１３５３は、論理ブロックアドレスＬＢＡｔ（＝ｔ）をｎで除することにより、当該論理ブロックアドレスＬＢＡｔで指定される論理ブロック（ＬＢｖ＿ｗ）が属する論理エクステントＬＥｖ、および当該論理ブロックの論理エクステントＬＥｖ内の相対位置ｗを特定する。
【００５０】
図５は、図２に示されるアドレス変換テーブル１３３１のデータ構造例を示す。アドレス変換テーブル１３３１は、例えば、構成管理部１３５１が提供するすべての論理ユニット内のすべての論理ブロックに対応付けられたエントリの群を有している。アドレス変換テーブル１３３１の各エントリは、論理ユニット番号（ＬＵＮ）フィールド、論理ブロックアドレス（ＬＢＡ）フィールド、論理エクステント番号（ＬＥＮ）フィールド、物理エクステント番号（ＰＥＮ）フィールドおよびオフセットフィールドを有している。
【００５１】
ＬＵＮフィールドは、対応する論理ブロックを含む論理ユニットを示す論理ユニット番号を保持するのに用いられる。ＬＢＡフィールドは、対応する論理ブロックのアドレス（論理ブロックアドレス）を保持するのに用いられる。
【００５２】
ＬＥＮフィールドは、対応する論理ブロックを含む論理エクステントを識別するための識別子としての論理エクステント番号を保持するのに用いられる。論理エクステント番号は、構成管理部１３５１によって提供されるすべての論理ユニットが属する論理記憶領域全体（論理アドレス空間）においてユニークである。論理エクステント番号は、論理ユニット番号と内部論理エクステント番号との結合から構成される。内部論理エクステント番号は、対応する論理ブロックを含む論理ユニットにおいてユニークであり、当該論理ユニットにおいて当該対応する論理ブロックを含む論理エクステントを識別するための識別子である。
【００５３】
ＰＥＮフィールドは、物理エクステント番号を保持するのに用いられる。この物理エクステント番号は、対応する論理ブロックを含む論理エクステントに割り当てられる物理エクステント（つまり、対応する論理ブロックに割り当てられる物理ブロックを含む物理エクステント）を示す。オフセットフィールドは、オフセット（オフセットデータ）を保持するのに用いられる。このオフセットは、対応する論理ブロックに割り当てられる物理ブロックの、当該物理ブロックを含む物理エクステントにおける相対位置を示す。
【００５４】
図６は、図２に示されるエクステント管理テーブル１３３２のデータ構造例を示す。エクステント管理テーブル１３３２は、例えば、構成管理部１３５１が提供するすべての論理ユニット内のすべての論理エクステントに対応づけられたエントリの群を有している。エクステント管理テーブル１３３２の各エントリは、論理エクステント番号（ＬＥＮ）フィールド、前方リンクエクステント（ＰＬＥ）フィールド、前方リンク強度（ＰＬＩ）フィールド、後方リンクエクステント（ＳＬＥ）フィールド、後方リンク強度（ＳＬＩ）フィールド、アクセスカウント（ＡＣ）フィールドおよび最終アクセス時刻（ＬＡＴ）フィールドを有している。
【００５５】
ＬＥＮフィールドは、対応する論理エクステントを示す論理エクステント番号を保持するのに用いられる。
【００５６】
ＰＬＥフィールドは、前方リンクエクステントの論理エクステント番号を保持するのに用いられる。前方リンクエクステントとは、対応する論理エクステントが、ホスト２０からの１つのアクセス要求によって共にアクセスされた、当該対応する論理エクステントの前方に位置する直近の論理エクステントを指す。ＰＬＩフィールドは、対応する論理エクステントが、ホスト２０からの１つのアクセス要求によって前方リンクエクステント（ＰＬＥフィールドで示される論理エクステント）と共にアクセスされた回数を保持するのに用いられる。
【００５７】
ＳＬＥフィールドは、後方リンクエクステントの論理エクステント番号を保持するのに用いられる。後方リンクエクステントとは、対応する論理エクステントが、ホスト２０からの１つのアクセス要求によって共にアクセスされた、当該対応する論理エクステントの後方に位置する直近の論理エクステントを指す。ＳＬＩフィールドは、対応する論理エクステントが、ホスト２０からの１つのアクセス要求によって後方リンクエクステント（ＳＬＥフィールドで示される論理エクステント）と共にアクセスされた回数を保持するのに用いられる。
【００５８】
ＡＣフィールドは、対応する論理エクステントがアクセスされた回数（アクセス頻度）を示すアクセスカウントを保持するのに用いられる。ＬＡＴフィールドは、対応する論理エクステントが最後にアクセスされた時刻（日時）を示す最終アクセス時刻データを保持するのに用いられる。
【００５９】
図６に示されるエクステント管理テーブル１３３２の例では、すべてのエントリのＰＬＥフィールド、ＰＬＩフィールド、ＳＬＥフィールド、ＳＬＩフィールド、ＡＣフィールドおよびＬＡＴフィールドに、値０が設定されている。ＰＬＥフィールド、ＰＬＩフィールド、ＳＬＥフィールドおよびＳＬＩフィールドにおける値０は初期値であり、ホスト２０からの１つのアクセス要求によって共にアクセスされた前方リンクエクステントおよび後方リンクエクステントが存在しないことを示す。そこで本実施形態では、論理エクステント番号０の使用は禁止されているものとする。なお、ＰＬＥフィールドおよびＳＬＥフィールドの初期値は０に限るものではなく、使用可能な論理エクステント番号以外の特定値であれば良い。
【００６０】
エクステント管理テーブル１３３２のそれぞれのエントリは次のように初期設定される。まず、それぞれのエントリに対応付けられた論理エクステントの論理エクステント番号が、当該それぞれのエントリのＬＥＮフィールドに設定される。それぞれのエントリの他の各フィールドには、例えば０が設定される。図６は、初期化されたエクステント管理テーブル１３３２を示す。
【００６１】
図７は、図２に示されるエクステントグループ管理テーブル１３３３のデータ構造例を示す。エクステントグループ管理テーブル１３３３は、例えば、グループ管理部１３５４によってエクステントグループとして管理される、論理エクステントの集合に対応付けられたエントリの群を有している。また、グループ管理部１３５４は、他のいずれの論理エクステントとも相関のない論理エクステントを単独の論理エクステント（１つの論理エクステントで構成されるエクステントグループ）として管理するために、このエクステントグループ管理テーブル１３３３を用いる。即ち、エクステントグループ管理テーブル１３３３が有するエントリの群の中には、グループ管理部１３５４によって単独の論理エクステントとして管理される論理エクステントに対応付けられたエントリが含まれる。したがって、エクステントグループ管理テーブル１３３３のエントリは、最大、論理エクステントの数だけ存在し得る。エクステントグループ管理テーブル１３３３の各エントリは、エクステントグループ番号（ＥＧＮ）フィールド、代表エクステント番号（ＲＥＮ）フィールドおよびエクステントグループ構成数（ＱＴＹ）フィールドを有している。
【００６２】
ＥＧＮフィールドは、論理エクステントの集合であるエクステントグループを識別するための識別子としてのエクステントグループ番号を保持するのに用いられる。エクステントグループ番号は、例えばエクステントグループの作成時、グループ管理部１３５４によって発番される。
【００６３】
ＲＥＮフィールドは、論理エクステントの集合であるエクステントグループを代表する論理エクステント、より詳細には、その集合の先頭に位置する論理エクステントを示す論理エクステント番号を保持するのに用いられる。
【００６４】
ＱＴＹフィールドは、論理エクステントの集合であるエクステントグループに属する論理エクステントの数、つまり、エクステントグループを構成する論理エクステントの数を保持するのに用いられる。
【００６５】
エクステントグループ管理テーブル１３３３のＥＧＮフィールド、ＲＥＮフィールドおよびＱＴＹフィールドの初期値は、例えば０である。図７に示されるエクステントグループ管理テーブル１３３３は、エクステントグループが作成されていない状態を示す。エクステントグループ管理テーブル１３３３のエントリは、前述したように、最大、論理エクステントの数だけ存在し得るが、必ずしも、予め論理エクステントの数だけ用意しておく必要はない。グループ管理部１３５４が、必要に応じてエントリを追加し、また、不要となったエントリを削除すべく、論理エクステントのエントリ数を適応的に管理するようにしてもよい。
【００６６】
ここで、図８を参照して、本実施形態において、複数の論理エクステントについて、それらは相関があると判断する基準について説明する。本実施形態の階層化ストレージシステム１０、より詳細には、ストレージコントローラ１３のグループ管理部１３５４は、図８（Ａ）に示すように、ホスト２０からの（１つのコマンドによる）アクセス要求の範囲が複数の論理エクステントに跨る場合、当該複数の論理エクステントは相関があると判断する。図８（Ａ）に示す例では、アクセス要求の範囲がエクステントＮとエクステントＮ＋１とに跨っているので、これらは相関があると判断される。図８（Ａ）では、アクセス要求の範囲が２つの論理エクステントに跨る場合を示しているが、言うまでも無く、アクセス要求の範囲が３つ以上の論理エクステントに跨る場合、当該３つ以上の論理エクステントは相関があると判断される。
【００６７】
一方、図８（Ｂ）は、本実施形態とは異なり、時間的に連続してアクセスされた論理エクステントは相関があると判断する一比較例を示している。図８（Ｂ）では、エクステントＮがアクセスされた直後、エクステントＮ＋１がアクセスされたことをもって、これらは相関があると判断されることになる。しかしながら、近時、ＣＰＵ１３５は、複数のタスクを並行して実行するマルチタスク機能をもはや標準的に備えており、時間的に連続するアクセスが同一のタスクによるものとは限らない。図８（Ｂ）は、エクステントＮがタスクＡによってアクセスされ、その直後、エクステントＮ＋１がタスクＢによってアクセスされた例を示している。つまり、このような場合において、エクステントＮとエクステントＮ＋１とは相関があると判断することは誤りである。
【００６８】
本実施形態においては、ホスト２０からの（１つのコマンドによる）アクセス要求の範囲が複数の論理エクステントに跨る場合、当該複数の論理エクステントは相関があると判断するので、このような誤った判断が行われることがない。即ち、相関のある論理エクステントの集合であるエクステントグループを正しく作成することが可能である。
【００６９】
この論理エクステントの相関についての判断基準を踏まえて、次に、本実施形態の動作について、アクセス処理を例に図９を参照して説明する。図９は、アクセス処理の典型的な手順を示すフローチャートである。まず、ホスト２０から階層化ストレージシステム１０のストレージコントローラ１３に、ホストインタフェースバス３０を介してアクセス要求が発行されたものとする。
【００７０】
ストレージコントローラ１３のＨＩＦコントローラ１３１は、ホスト２０によって発行されたアクセス要求をホストインタフェースバス３０から受領する。アクセス要求は、論理ユニット番号ＬＵＮ、論理ブロックアドレスＬＢＡｔおよびデータ転送サイズを含む。データ転送サイズは、転送（アクセス）されるべき論理ブロックの数を示す。データ転送サイズが例えばＮである場合、アクセス要求は、論理ブロックアドレスＬＢＡｔから始まる連続するＮ論理ブロックの範囲へのアクセスを指定する。
【００７１】
ストレージコントローラ１３のＩＯ管理部１３５３は、受領されたアクセス要求によって指定される論理ブロック範囲に対応する論理エクステント範囲を、次のように特定する（ステップＡ１）。まず、ＩＯ管理部１３５３は、アドレス変換テーブル１３３１において、指定論理ブロック範囲内のそれぞれの論理ブロックを示す論理ユニット番号および論理ブロックアドレスの組に対応付けられたエントリを参照する。そしてＩＯ管理部１３５３は、指定論理ブロック範囲内のそれぞれの論理ブロックに対応付けられた論理エクステント番号によって示される論理エクステントを特定する。これによりＩＯ管理部１３５３は、指定論理ブロック範囲に対応する論理エクステント範囲を特定する。特定された論理エクステント範囲は、ホスト２０からのアクセス要求で指定された論理ブロック範囲に対応することから、ホスト２０からのアクセス要求で（間接的に）指定されたと称することもできる。
【００７２】
論理エクステント範囲が特定されると（ステップＡ１）、グループ管理部１３５４が起動される。グループ管理部１３５４は、エクステント管理テーブル１３３２およびエクステントグループ管理テーブル１３３３を、特定された論理エクステント範囲に基づいて更新するためのテーブル更新処理を、ＩＯ管理部１３５３と協同して実行する（ステップＡ２）。
【００７３】
以下、このテーブル更新処理（ステップＡ２）の詳細について、図１０乃至図１２を参照して説明する。図１０は、エクステント管理テーブル１３３２に関するテーブル更新処理（テーブル更新処理［１］）の典型的な手順を示すフローチャートである。また、図１１および図１２は、エクステントグループ管理テーブル１３３３に関するテーブル更新処理（テーブル更新処理［２］）の典型的な手順を示すフローチャートである。テーブル更新処理（ステップＡ２）は、まず、テーブル更新処理［１］が実行され、次いで、テーブル更新処理［２］が実行される。まず、図１０を参照して、テーブル更新処理［１］について説明する。
【００７４】
まずグループ管理部１３５４は、特定された論理エクステント範囲内の先頭の論理エクステントをＬＥ１（論理エクステントＬＥ１）として選択する（ステップＢ１）。またグループ管理部１３５４は、特定された論理エクステント範囲内に、現在の論理エクステントＬＥ１（つまり、ステップＢ１で選択された論理エクステント）の次の論理エクステントが存在するかを判定する（ステップＢ２）。
【００７５】
もし、特定された論理エクステント範囲が複数の論理エクステントを含む場合、次の論理エクステントは存在する（ステップＢ２のＹｅｓ）。特定された論理エクステント範囲が複数の論理エクステントを含む場合とは、アクセス要求の範囲が複数の論理エクステントに跨る場合である。この場合、グループ管理部１３５４は、次の論理エクステントを、ＬＥ２として選択する（ステップＢ３）。ここで、ＬＥ１およびＬＥ２の論理エクステント番号（ＬＥＮ）を、それぞれＬＥＮ＿ＬＥ１およびＬＥＮ＿ＬＥ２と表記する。また、ＬＥ１およびＬＥ２に対応付けられたエクステント管理テーブル１３３２のエントリを、それぞれ、エントリＥＭＴＥ＿ＬＥ１およびＥＭＴＥ＿ＬＥ２と表記する。
【００７６】
次にグループ管理部１３５４は、エントリＥＭＴＥ＿ＬＥ１のＳＬＥフィールドの内容（初期値０）を、ＬＥＮ＿ＬＥ２に変更する。（ステップＢ４）。またグループ管理部１３５４は、エントリＥＭＴＥ＿ＬＥ１のＳＬＩフィールドの内容を更新し、一方、ＩＯ管理部１３５３は、エントリＥＭＴＥ＿ＬＥ１のＡＣフィールドおよびＬＡＴフィールドの内容を更新する（ステップＢ５）。即ち、グループ管理部１３５４は、ＳＬＩフィールドの内容（初期値０）を１インクリメントし、一方、ＩＯ管理部１３５３は、ＡＣフィールドの内容（初期値０）を１インクリメントし、ＬＡＴフィールドの内容（初期値０）を現在時刻を示すように更新する。
【００７７】
次にグループ管理部１３５４は、エントリＥＭＴＥ＿ＬＥ２のＰＬＥフィールドの内容（初期値０）を、ＬＥＮ＿ＬＥ１に変更する（ステップＢ６）。またグループ管理部１３５４は、エントリＥＭＴＥ＿ＬＥ２のＰＬＩフィールドの内容を更新し、一方、ＩＯ管理部１３５３は、エントリＥＭＴＥ＿ＬＥ２のＡＣフィールドおよびＬＡＴフィールドの内容を更新する（ステップＢ７）。即ち、グループ管理部１３５４は、ＰＬＩフィールドの内容（初期値０）を１インクリメントし、一方、ＩＯ管理部１３５３は、ＡＣフィールドの内容（初期値０）を１インクリメントし、ＬＡＴフィールドの内容（初期値０）を現在時刻を示すように更新する。
【００７８】
次にグループ管理部１３５４は、特定された論理エクステント範囲内に次の論理エクステント（つまり、現在のＬＥ２の次の論理エクステント）が存在するかを判定する（ステップＢ８）。もし、次の論理エクステントが存在しないならば（ステップＢ８のＮｏ）、グループ管理部１３５４は、図１０のフローチャートに従うテーブル更新処理（テーブル更新処理［１］）を終了する。
【００７９】
これに対して、次の論理エクステントが存在するならば（ステップＢ８のＹｅｓ）、グループ管理部１３５４は現在のＬＥ２を新たなＬＥ１として選択する（ステップＢ９）。またグループ管理部１３５４は、特定された論理エクステント範囲内の次の論理エクステント（つまり、新たなＬＥ１の次の論理エクステント）を新たなＬＥ２として選択する（ステップＢ１０）。
【００８０】
次にグループ管理部１３５４は、新たなＬＥ１に対応付けられたエントリＥＭＴＥ＿ＬＥ１（つまり、前回のＬＥ２に対応付けられたエントリＥＭＴＥ＿ＬＥ２）のＳＬＥフィールドの内容（初期値０）を、ＬＥＮ＿ＬＥ２に変更する（ステップＢ１１）。またグループ管理部１３５４は、エントリＥＭＴＥ＿ＬＥ１のＳＬＩフィールドの内容を更新する（ステップＢ１２）。即ち、グループ管理部１３５４は、ＳＬＩフィールドの内容（初期値０）を１インクリメントする。そしてグループ管理部１３５４はステップＢ６に戻る。
【００８１】
一方、ステップＢ２において、次の論理エクステントが存在しないと判定されたものとする。つまり、特定された論理エクステント範囲が単一の論理エクステントのみを含むものとする。特定された論理エクステント範囲が単一の論理エクステントのみを含む場合とは、アクセス要求の範囲が１つの論理エクステント内である場合である。この場合（ステップＢ２のＮｏ）、ＩＯ管理部１３５３は、ステップＢ７と同様に、エントリＥＭＴＥ＿ＬＥ１のＡＣフィールドおよびＬＡＴフィールドの内容を更新する（ステップＢ１３）。そしてグループ管理部１３５４は、図１０のフローチャートに従うテーブル更新処理（テーブル更新処理［１］）を終了する。
【００８２】
次に、図１１および図１２を参照して、テーブル更新処理［２］について説明する。
【００８３】
まずグループ管理部１３５４は、特定された論理エクステント範囲内の論理エクステント数は複数か否かを判定する（ステップＣ１）。特定された論理エクステント範囲内の論理エクステント数が複数の場合（ステップＣ１のＹｅｓ）、グループ管理部１３５４は、エクステント管理テーブル１３３２を参照して、特定された論理エクステント範囲内の先頭の論理エクステントに前方リンクエクステントは存在するか否かを判定する（ステップＣ２）。特定された論理エクステント範囲内の先頭の論理エクステントに前方リンクエクステントが存在する場合とは、当該先頭の論理エクステントが、当該先頭の論理エクステントの前方に位置する直近の論理エクステントと共に既存のエクステントグループに属している場合である。この場合（ステップＣ２のＹｅｓ）、グループ管理部１３５４は、当該先頭の論理エクステントが属しているエクステントグループの代表エクステントを探索すべく、エクステント管理テーブル１３３２を参照して、当該先頭の論理エクステントを起点に前方リンクエクステントを辿る（ステップＣ３）。グループ管理部１３５４は、辿り着いた論理エクステントが代表エクステントとしてエクステントグループ管理テーブル１３３３に登録されているエクステントグループのエクステント構成数を、エクステントグループ管理テーブル１３３３を参照して取得する（ステップＣ４）。また、グループ管理部１３５４は、上記テーブル更新処理［１］による更新後のエクステント管理テーブル１３３２に対応する、当該エクステントグループのエクステント構成数を取得すべく、エクステント管理テーブル１３３２を参照して、辿り着いた論理エクステント、つまり代表エクステントを起点に今度は後方リンクエクステントを辿る（ステップＣ５）。そして、グループ管理部１３５４は、ステップＣ４で取得したエクステント構成数と、ステップＣ５で取得したエクステント構成数とを比較する（ステップＣ６）。
【００８４】
ステップＣ４で取得したエクステント構成数と、ステップＣ５で取得したエクステント構成数とが一致する場合とは、特定された論理エクステント範囲が既存のエクステントグループ内にある場合である。この場合（ステップＣ６のＹｅｓ）、グループ管理部１３５４は、図１１および図１２のフローチャートに従うテーブル更新処理（テーブル更新処理［２］）を終了する。一方、ステップＣ４で取得したエクステント構成数と、ステップＣ５で取得したエクステント構成数とが一致しない場合とは、ステップＣ３で辿り着いた論理エクステントを代表エクステントとするエクステントグループを、例えば後続するエクステントグループと統合すべく後方に拡張させる場合である。この場合（ステップＣ６のＮｏ）、グループ管理部１３５４は、まず、ステップＣ３で辿り着いた論理エクステントを代表エクステントとするエクステントグループのエクステント構成数を、ステップＣ５で取得したエクステント構成数に変更すべく、エクステントグループ管理テーブル１３３３を更新する（ステップＣ７）。次に、グループ管理部１３５４は、エクステント管理テーブル１３３２を参照して、特定された論理エクステント範囲内の先頭の論理エクステントを起点に後方リンクエクステントを辿り、特定された論理エクステント範囲内の２番目以降の論理エクステントが代表エクステントとしてエクステントグループ管理テーブル１３３３に登録されているエクステントグループをエクステントグループ管理テーブル１３３３から削除する（ステップＣ８）。そしてグループ管理部１３５４は、図１１および図１２のフローチャートに従うテーブル更新処理（テーブル更新処理［２］）を終了する。
【００８５】
また、ステップＣ２において、特定された論理エクステント範囲内の先頭の論理エクステントに前方リンクエクステントが存在しないと判定される場合とは、当該先頭の論理エクステントが、当該先頭の論理エクステントの前方に位置する直近の論理エクステントと共に既存のエクステントグループに属してはいない場合である。この場合（ステップＣ２のＮｏ）、グループ管理部１３５４は、特定された論理エクステント範囲内の先頭の論理エクステントを代表エクステントとするエクステントグループがエクステントグループ管理テーブル１３３３に登録済みか否かを判定する（ステップＣ９）。登録済みである場合（ステップＣ９のＹｅｓ）、グループ管理部１３５４は、特定された論理エクステント範囲内の先頭の論理エクステントが代表エクステントとしてエクステントグループ管理テーブル１３３３に登録されているエクステントグループのエクステント構成数を、エクステントグループ管理テーブル１３３３を参照して取得する（ステップＣ１０）。また、グループ管理部１３５４は、更新後のエクステント管理テーブル１３３２に対応する、当該エクステントグループのエクステント構成数を取得すべく、エクステント管理テーブル１３３２を参照して、特定された論理エクステント範囲内の先頭の論理エクステントを起点に後方リンクエクステントを辿る（ステップＣ１１）。そして、グループ管理部１３５４は、ステップＣ１０で取得したエクステント構成数と、ステップＣ１１で取得したエクステント構成数とを比較する（ステップＣ１２）。
【００８６】
ステップＣ１０で取得したエクステント構成数と、ステップＣ１１で取得したエクステント構成数とが一致する場合とは、特定された論理エクステント範囲が既存のエクステントグループ内にある場合である。この場合（ステップＣ１２のＹｅｓ）、グループ管理部１３５４は、図１１および図１２のフローチャートに従うテーブル更新処理（テーブル更新処理［２］）を終了する。一方、ステップＣ１０で取得したエクステント構成数と、ステップＣ１１で取得したエクステント構成数とが一致しない場合とは、特定された論理エクステント範囲内の先頭の論理エクステントを代表エクステントとするエクステントグループを、例えば後続するエクステントグループと統合すべく後方に拡張させる場合である。この場合（ステップＣ１２のＮｏ）、グループ管理部１３５４は、まず、特定された論理エクステント範囲内の先頭の論理エクステントを代表エクステントとするエクステントグループのエクステント構成数を、ステップＣ１１で取得したエクステント構成数に変更すべく、エクステントグループ管理テーブル１３３３を更新する（ステップＣ１３）。次に、グループ管理部１３５４は、エクステント管理テーブル１３３２を参照して、特定された論理エクステント範囲内の先頭の論理エクステントを起点に後方リンクエクステントを辿り、２番目以降の論理エクステントが代表エクステントとしてエクステントグループ管理テーブル１３３３に登録されているエクステントグループをエクステントグループ管理テーブル１３３３から削除する（ステップＣ１４）。そしてグループ管理部１３５４は、図１１および図１２のフローチャートに従うテーブル更新処理（テーブル更新処理［２］）を終了する。
【００８７】
一方、ステップＣ９において、特定された論理エクステント範囲内の先頭の論理エクステントを代表エクステントとするエクステントグループがエクステントグループ管理テーブル１３３３に登録されていないと判定した場合（ステップＣ９のＮｏ）、グループ管理部１３５４は、当該エクステントグループのエクステント構成数を取得すべく、エクステント管理テーブル１３３２を参照して、特定された論理エクステント範囲内の先頭の論理エクステントを起点に後方リンクエクステントを辿る（ステップＣ１５）。そして、グループ管理部１３５４は、特定された論理エクステント範囲内の先頭の論理エクステントを代表エクステントとし、かつ、ステップＣ１５で取得したエクステント構成数のエクステントグループを、エクステントグループ管理テーブル１３３３へ登録する（ステップＣ１６）。そしてグループ管理部１３５４は、図１１および図１２のフローチャートに従うテーブル更新処理（テーブル更新処理［２］）を終了する。
【００８８】
また、ステップＣ１にて、特定された論理エクステント範囲内の論理エクステント数が複数ではない、つまり１であると判定した場合（ステップＣ１のＮｏ）、グループ管理部１３５４は、エクステント管理テーブル１３３２を参照して、特定された論理エクステント範囲内の論理エクステントに前方リンクエクステントまたは後方リンクエクステントは存在するか否かを判定する（ステップＣ１７）。特定された論理エクステント範囲内の論理エクステントに前方リンクエクステントまたは後方リンクエクステントが存在する場合とは、当該論理エクステントが既存のエクステントグループに属している場合である。この場合（ステップＣ１７のＹｅｓ）、グループ管理部１３５４は、図１１および図１２のフローチャートに従うテーブル更新処理（テーブル更新処理［２］）を終了する。
【００８９】
一方、特定された論理エクステント範囲内の論理エクステントに前方リンクエクステントも後方リンクエクステントも存在しない場合（ステップＣ１７のＮｏ）、グループ管理部１３５４は、当該論理エクステントを代表エクステントとするエクステントグループがエクステントグループ管理テーブル１３３３に登録済みか否かを判定する（ステップＣ１８）。登録済みである場合（ステップＣ１８のＹｅｓ）、グループ管理部１３５４は、図１１および図１２のフローチャートに従うテーブル更新処理（テーブル更新処理［２］）を終了する。一方、特定された論理エクステント範囲内の論理エクステントを代表エクステントとするエクステントグループはエクステントグループ管理テーブル１３３３に登録されていないと判定した場合（ステップＣ１８のＮｏ）、グループ管理部１３５４は、特定された論理エクステント範囲内の論理エクステントを代表エクステントとし、かつ、エクステント構成数が１のエクステントグループを、エクステントグループ管理テーブル１３３３へ登録する（ステップＣ１９）。そしてグループ管理部１３５４は、図１１および図１２のフローチャートに従うテーブル更新処理（テーブル更新処理［２］）を終了する。
【００９０】
ここで、エクステント管理テーブル１３３２とエクステントグループ管理テーブル１３３３とがどのように更新されていくのかの具体例について、第１の場合を例に、図１３乃至図１５を参照して説明する。第１の場合とは、ホスト２０からのアクセス要求の範囲が１つの論理エクステント内である場合を指す。このとき、エクステント管理テーブル１３３２およびエクステントグループ管理テーブル１３３３は、それぞれ図６および図７に示される初期状態にあるものとする。
【００９１】
ホスト２０からのアクセス要求の範囲が、図１３に示すように、論理エクステント１内である場合、このアクセス要求に基づいて特定される論理エクステント範囲は、論理エクステント１のみとなる。この場合、エクステント管理テーブル１３３２は、図１４に示すように、ＬＥＮフィールドに１が保持されるエントリが、ＩＯ管理部１３５３によって更新される。より詳細には、ＡＣフィールドの内容が１インクリメントされ、ＬＡＴフィールドの内容が現在の時刻を示すように更新される。
【００９２】
また、この第１の場合、グループ管理部１３５４により、論理エクステント１に対してエクステントグループ番号が発番される。当該発番されたエクステントグループ番号が１であるものとすると、エクステントグループ管理テーブル１３３３は、図１５に示すように、グループ管理部１３５４によって更新される。より詳細には、エクステントグループ番号が１のエクステントグループがエクステントグループ管理テーブル１３３３へ登録され（ＥＧＮフィールドに１が保持されるエントリが作成され）、ＥＧＮフィールドに１が保持されるエントリのＰＥＮフィールドの内容が０から（論理エクステント１を示す）１へ、ＱＴＹフィールドの内容が０から（アクセス回数１を示す）１へ変更される。
【００９３】
続いて、エクステント管理テーブル１３３２とエクステントグループ管理テーブル１３３３とがどのように更新されていくのかの具体例について、第２の場合を例に、図１６乃至図１８を参照して説明する。第２の場合とは、ホスト２０からのアクセス要求の範囲が２つの論理エクステントに跨る場合を指す。第１の場合と同様、このとき、エクステント管理テーブル１３３２およびエクステントグループ管理テーブル１３３３は、それぞれ図６および図７に示される初期状態にあるものとする。
【００９４】
ホスト２０からのアクセス要求の範囲が、図１６に示すように、論理エクステント１と論理エクステント２とに跨る場合、このアクセス要求に基づいて特定される論理エクステント範囲は、論理エクステント１と論理エクステント２とになる。この場合、エクステント管理テーブル１３３２は、図１７に示すように、ＬＥＮフィールドに２が保持されるエントリと、ＬＥＮフィールドに３が保持されるエントリとが、グループ管理部１３５４とＩＯ管理部１３５３とによって更新される。より詳細には、ＬＥＮフィールドに２が保持されるエントリにおいては、ＳＬＥフィールドの内容が０から３へ変更され、ＳＬＩフィールドおよびＡＣフィールドの内容がそれぞれ１インクリメントされ、ＬＡＴフィールドの内容が現在の時刻を示すように更新される。また、ＬＥＮフィールドに３が保持されるエントリにおいては、ＰＬＥフィールドの内容が０から２へ変更され、ＰＬＩフィールドおよびＡＣフィールドの内容がそれぞれ０から１へインクリメントされ、ＬＡＴフィールドの内容が現在の時刻を示すように更新される。
【００９５】
また、この第２の場合、グループ管理部１３５４により、論理エクステント２と論理エクステント３との集合に対してエクステントグループ番号が発番される。当該発番されたエクステントグループ番号が１であるものとすると、エクステントグループ管理テーブル１３３３は、図１８に示すように、グループ管理部１３５４によって更新される。より詳細には、エクステントグループ番号が１のエクステントグループがエクステントグループ管理テーブル１３３３へ登録され（ＥＧＮフィールドに１が保持されるエントリが作成され）、ＥＧＮフィールドに１が保持されるエントリのＲＥＮフィールドの内容が０から（論理エクステント２を示す）２へ、ＱＴＹフィールドの内容が０から（エクステント構成数２を示す）２へ変更される。
【００９６】
続いて、エクステント管理テーブル１３３２とエクステントグループ管理テーブル１３３３とがどのように更新されていくのかの具体例について、第３の場合を例に、図１９乃至図２３を参照して説明する。第３の場合とは、ホスト２０からのアクセス要求の範囲が２つの論理エクステントに跨る場合であって、当該２つの論理エクステントがそれぞれ異なるエクステントグループに属している場合を指す。
【００９７】
ホスト２０からのアクセス要求の範囲が、図１９に示すように、論理エクステント３と論理エクステント４とに跨る場合、このアクセス要求に基づいて特定される論理エクステント範囲は、論理エクステント３と論理エクステント４とになる。この場合、エクステント管理テーブル１３３２は、図２０に示すように、ＬＥＮフィールドに３が保持されるエントリと、ＬＥＮフィールドに４が保持されるエントリとが、グループ管理部１３５４とＩＯ管理部１３５３とによって更新される。より詳細には、ＬＥＮフィールドに３が保持されるエントリにおいては、ＳＬＥフィールドの内容が０から４へ変更され、ＳＬＩフィールドおよびＡＣフィールドの内容がそれぞれ１インクリメントされ、ＬＡＴフィールドの内容が現在の時刻を示すように更新される。また、ＬＥＮフィールドに４が保持されるエントリにおいては、ＰＬＥフィールドの内容が０から３へ変更され、ＰＬＩフィールドおよびＡＣフィールドの内容がそれぞれ１インクリメントされ、ＬＡＴフィールドの内容が現在の時刻を示すように更新される。
【００９８】
また、ここでは、図１９に示すように、論理エクステント３は、論理エクステント１〜３で構成されるエクステントグループに属し、論理エクステント４は、論理エクステント４〜６で構成されるエクステントグループに属しているものとする。そのため、論理エクステント３が属するエクステントグループの当該論理エクステント３以外の論理エクステント１，２に対応づけられる各エントリ、および論理エクステント４が属するエクステントグループの当該論理エクステント４以外の論理エクステント５，６に対応づけられる各エントリ、つまりエクステント管理テーブル１３３２のＬＥＮフィールドに１、２、５、６が保持される各エントリのＰＬＥフィールド、ＰＬＩフィールド、ＳＬＥフィールド、ＳＬＩフィールドおよびＡＣフィールドが、例えば図２０に示すような内容となっている。
【００９９】
また、この第３の場合、グループ管理部１３５４により、論理エクステント３が属するエクステントグループと、論理エクステント４が属するエクステントグループとが統合される。換言すれば、グループ管理部１３５４は、論理エクステント３が属するエクステントグループと、論理エクステント４が属するエクステントグループとを統合すべく、エクステントグループ管理テーブル１３３３を更新する。
【０１００】
このエクステントグループ管理テーブル１３３３の更新において、グループ管理部１３５４は、まず、エクステント管理テーブル１３３２を参照して、ホスト２０からのアクセス要求の範囲の先頭の論理エクステント３が属するエクステントグループの代表エクステントを取得する。より詳細には、図２１に示すように、エクステント管理テーブル１３３２のＰＬＥフィールドを論理エクステント３を起点に辿って行く。ＰＬＥフィールドの内容が０の論理エクステントに辿り着いたら、グループ管理部１３５４は、その論理エクステントを代表エクステントと判定する。ここでは、論理エクステント１が取得される。代表エクステントが取得できたならば、グループ管理部１３５４は、更新後のエクステント管理テーブル１３３２に対応する、取得した論理エクステントを代表エクステントとするエクステントグループのエクステント構成数を取得する。より詳細には、図２２に示すように、今度は、エクステント管理テーブル１３３２のＳＬＥフィールドを代表エクステント（論理エクステント１）を起点に辿って行く。ＳＬＥフィールドの内容が０の論理エクステントに辿り着いたら、グループ管理部１３５４は、その論理エクステントをエクステントグループ終端の論理エクステントと判定し、エクステントグループ始端の代表エクステントから当該エクステントグループ終端の論理エクステントまでの論理エクステント数をエクステント構成数として取得する。
【０１０１】
次に、グループ管理部１３５４は、エクステントグループ管理テーブル１３３３に登録されている、論理エクステント１を代表エクステントとするエクステントグループのエクステント構成数を確認する。より詳細には、ＲＥＮフィールドの内容が１のエントリのＱＴＹフィールドの内容を確認する。このエクステント構成数がエクステント管理テーブル１３３２のＳＬＥフィールドを辿って取得したエクステント構成数と異なる場合、当該エクステントグループの拡張を意味する。ここでは、エクステントグループ管理テーブル１３３３上における、論理エクステント１を代表エクステントとするエクステントグループのエクステント構成数は３であり、一方、エクステント管理テーブル１３３２のＳＬＥフィールドを辿って取得したエクステント構成数は６である。そこで、第１に、グループ管理部１３５４は、論理エクステント１を代表エクステントとするエクステントグループのエクステント構成数を６に改めるべくエクステントグループ管理テーブル１３３３を更新する。第２に、グループ管理部１３５４は、論理エクステント１を代表エクステントとするエクステントグループに属する論理エクステントであって、論理エクステント３以降に位置する論理エクステントを代表エクステントとするエクステントグループがエクステントグループ管理テーブル１３３３に登録されていないかを調べ、登録されている場合、そのエクステントグループを削除すべくエクステントグループ管理テーブル１３３３を更新する。その結果、エクステントグループ管理テーブル１３３３は、図２３に示すように更新される。より具体的には、ＲＥＮフィールドの内容が１のエントリのＱＴＹフィールドの内容が３から６へ更新され、また、ＲＥＮフィールドの内容が４のエントリのすべてのフィールドの内容が初期値へ更新される。
【０１０２】
図９のフローチャートに戻る。テーブル更新処理（ステップＡ２）が実行されると、ＩＯ制御部１３５２が起動される。まずＩＯ制御部１３５２は、受領されたアクセス要求で示されるアクセスを実行するために、特定された論理エクステント範囲内の論理エクステントの数を変数ｅとして設定する（ステップＡ３）。変数ｅは、アクセスされるべき（つまり、アクセスが未完了の）論理エクステントの数を示す。
【０１０３】
次にＩＯ制御部１３５２は、次にアクセスされるべき１つの論理エクステント（つまりターゲット論理エクステント）を、変数ｅで示される数の論理エクステントの中から選択する（ステップＡ４）。次にＩＯ制御部１３５２は、ターゲット論理エクステント内のアクセスされるべきすべての論理ブロックに割り当てられた同数の物理ブロックに、次のようにアクセスする（ステップＡ５）。ここで、ターゲット論理エクステント内のアクセスされるべき論理ブロックの数がｃであるものとする。この場合、このｃ個の論理ブロックに割り当てられた物理ブロックの数もｃである。
【０１０４】
まずＩＯ制御部１３５２は、ターゲット論理エクステント内のアクセスされるべき全論理ブロックのうちの先頭の論理ブロックに割り当てられた物理ブロック（つまり先頭の物理ブロック）の物理エクステント番号およびオフセットの組を取得する。この物理エクステント番号およびオフセットの組は、前述の先頭の論理ブロックの論理ブロックアドレスおよび論理エクステント番号に基づいて、ＩＯ制御部１３５２がアドレス変換テーブル１３３１を参照することにより取得される。
【０１０５】
ＩＯ制御部１３５２は、先頭の物理ブロックの物理エクステント番号およびオフセットの組を取得することにより、先頭の物理ブロックから始まる、実際にアクセスされるべきｃ個の物理ブロックと、当該ｃ個の物理ブロックを含むストレージ装置（階層）とを特定する。そしてＩＯ制御部１３５２は、特定されたストレージ装置内の特定されたｃ個の物理ブロックに、ＳＩＦコントローラ１３２を介してアクセスする。なお、アクセス要求がライトアクセス要求であり、かつ、当該アクセス要求で指定される論理ブロック範囲内の論理ブロックに物理ブロックが割り当てられていない場合、ＩＯ管理部１３５３は、例えばステップＡ３の実行時に、論理ブロック範囲内の論理ブロックに高速ストレージ装置１１（上位階層）内の連続する同数の空き物理ブロックを割り当てる。
【０１０６】
ＩＯ制御部１３５２は、特定されたｃ個の物理ブロックにアクセスすると（ステップＡ５）、ＨＩＦコントローラ１３１を介してホスト２０に応答を返す（ステップＡ６）。そしてＩＯ制御部１３５２は、階層化制御部１３５５に制御を渡す。すると階層化制御部１３５５は、低速ストレージ装置１２（下位階層）へのアクセスであったかを判定する（ステップＡ７）。
【０１０７】
もし、下位階層へのアクセスであったならば（ステップＡ７のＹｅｓ）、ターゲット論理エクステントは近い将来アクセスされる可能性が高いことから、階層化制御部１３５５は、当該ターゲット論理エクステントに割り当てられた物理エクステントのデータを、アクセス性能の向上のために上位階層に移動すべきであると判断する。また、ターゲット論理エクステントがエクステントグループに属しているならば、当該エクステントグループ内の他のすべての論理エクステントも近い将来アクセスされる可能性が高いことから、階層化制御部１３５５は、当該他のすべての論理エクステントに割り当てられたそれぞれの物理エクステントのデータも、上位階層に移動すべきであると判断する。そこで、階層化制御部１３５５は、ターゲット論理エクステントに割り当てられた物理エクステントを含む１つ以上の物理エクステントをデータ移動元として決定するためのデータ移動元決定処理を実行する（ステップＡ８）。
【０１０８】
以下、データ移動元決定処理（ステップＡ８）の詳細について、図２４を参照して説明する。図２４はデータ移動元決定処理の典型的な手順を示すフローチャートである。まず階層化制御部１３５５は、ターゲット論理エクステントが属するエクステントグループに対応付けられたエクステントグループ管理テーブル１３３３のエントリ、より詳細には、ターゲット論理エクステントが属するエクステントグループの代表エクステントの番号がＲＥＮフィールドに設定されているエントリのＱＴＹフィールドを参照する（ステップＤ１）。
【０１０９】
次に階層化制御部１３５５は、参照されたＱＴＹフィールドに１以外の数値が設定されているかに応じて、ターゲット論理エクステントが、複数の論理エクステントで構成されるエクステントグループに属しているかを判定する（ステップＤ２）。もし、ターゲット論理エクステントが、複数の論理エクステントで構成されるエクステントグループに属しているならば（ステップＤ２のＹｅｓ）、階層化制御部１３５５はステップＤ３に進む。ステップＤ３において階層化制御部１３５５は、ターゲット論理エクステントが属しているエクステントグループ内の全論理エクステントに割り当てられた物理エクステントの集合を特定する。また、ステップＤ３において階層化制御部１３５５は、特定された物理エクステントの集合に含まれている、下位階層内の全物理エクステントを、データ移動元として決定する。決定されたデータ移動元は、ターゲット論理エクステントが割り当てられた物理エクステントを含む。そして階層化制御部１３５５は、データ移動元決定処理を終了する。
【０１１０】
一方、ターゲット論理エクステントが、複数の論理エクステントで構成されるエクステントグループに属していないならば（ステップＤ２のＮｏ）、階層化制御部１３５５は、当該ターゲット論理エクステントに割り当てられた物理エクステントのみを、データ移動元として決定する（ステップＤ４）。そして階層化制御部１３５５は、データ移動元決定処理を終了する。
【０１１１】
図９に戻って、アクセス処理について更に説明する。階層化制御部１３５５は、図２４のフローチャートに従ってデータ移動元決定処理（ステップＡ８）を実行すると、ステップＡ９に進む。ステップＡ９において階層化制御部１３５５は、データ移動元として決定された物理エクステントの数を変数ｑとして設定する（ステップＡ９）。
【０１１２】
次に階層化制御部１３５５は、上位階層内の空き領域を探索する（ステップＡ１０）。即ち階層化制御部１３５５は、アドレス変換テーブル１３３１に基づいて、上位階層（高速ストレージ装置１１）に含まれていて、かつ論理エクステントに割り当てられてない物理エクステント（つまり、空き物理エクステント）を探索する。なお、空き物理エクステントリストがメモリ１３３（ローカルＨＤＤ１３４）に格納されているならば、階層化制御部１３５５が、上位階層内の空き物理エクステントを、当該リストから探索しても良い。ただし、空き物理エクステントリストには、空き物理エクステントの物理エクステント番号の配列が保持されているものとする。
【０１１３】
階層化制御部１３５５は、上位階層内の空き物理エクステントを探索すると、当該空き物理エクステントの数を変数ｆとして設定する（ステップＡ１１）。ステップＡ１１において階層化制御部１３５５は、変数ｑから変数ｆを差し引いて、その差分ｑ−ｆを変数ｒとして設定する。次に階層化制御部１３５５は、変数ｒ（＝ｑ−ｆ）が正であるかを判定する（ステップＡ１２）。
【０１１４】
もし、変数ｒが正であるならば（ステップＡ１２のＹｅｓ）、即ちｑ＞ｆであるならば、階層化制御部１３５５は、データ移動元として決定されたｑ個の物理エクステントのデータを上位階層に移動するのにｒ個の空きの物理エクステントが不足していると判断する。この場合、階層化制御部１３５５は、少なくともｒ個の新たな空きの物理エクステントを上位階層内に確保するための空き領域確保処理を実行する（ステップＡ１３）。そして階層化制御部１３５５は、ステップＡ１４に進む。
【０１１５】
これに対して変数ｒが正でないならば（ステップＡ１２のＮｏ）、即ちｑ≦ｆであるならば、階層化制御部１３５５は、データ移動元として決定されたｑ個の物理エクステントのデータを上位階層に移動するのに十分な数の空きの物理エクステントが既に存在すると判断する。この場合、階層化制御部１３５５は、ステップＡ１３をスキップしてステップＡ１４に進む。
【０１１６】
以下、空き領域確保処理（ステップＡ１３）の詳細について、図２５を参照して説明する。図２５は空き領域確保処理の典型的な手順を示すフローチャートである。以下の説明では、論理エクステントに上位階層内の物理エクステントが割り当てられている場合、当該論理エクステントを、上位階層に対応する論理エクステントと称する。同様に、エクステントグループ内の複数の論理エクステントに上位階層内の同数の物理エクステントが割り当てられている場合、当該エクステントグループを、上位階層に対応するエクステントグループと称する。
【０１１７】
空き領域確保処理において、まず階層化制御部１３５５は、上位階層に対応するすべてのエクステントグループ（エクステントグループ構成数が１のエクステントグループを含む）に関するリストを生成する（ステップＥ１）。生成されたリストは、エクステントグループに関する要素群の配列を含む。リストに含まれている、エクステントグループに関する各要素は、当該エクステントグループのエクステントグループ番号、アクセスカウントおよび最終アクセス時刻情報の組を有する。
【０１１８】
本実施形態において階層化制御部１３５５は、エクステントグループに属するすべての論理エクステントのアクセスカウントの平均値を、当該エクステントグループのアクセスカウントとして用いる。しかし階層化制御部１３５５が、エクステントグループに属するすべての論理エクステントのアクセスカウントのうち、最大のアクセスカウントを、当該エクステントグループのアクセスカウントとして用いても構わない。また、本実施形態において階層化制御部１３５５は、エクステントグループに属するすべての論理エクステントの最終アクセス時刻のうち、最も新しい最終アクセス時刻を示す最終アクセス時刻情報を、当該エクステントグループの最終アクセス時刻情報として用いる。
【０１１９】
前述のリストの生成において階層化制御部１３５５は、エクステントグループを、エクステントグループ管理テーブル１３３３に基づいて特定する。また階層化制御部１３５５は、特定された論理エクステントが上位階層に対応するかを、当該論理エクステントの論理エクステント番号に基づいてアドレス変換テーブル１３３１を参照することにより判定する。つまり階層化制御部１３５５は、特定されたエクステントグループが上位階層に対応するかを、当該特定されたエクステントグループ内の論理エクステントの論理エクステント番号に基づいてアドレス変換テーブル１３３１を参照することにより判定する。つまり階層化制御部１３５５は、特定されたエクステントグループ内の論理エクステントに割り当てられた物理エクステントの物理エクステント番号に基づいて、当該特定されたエクステントグループ内の論理エクステントが上位階層に対応するかを判定し、この判定結果に基づいて、当該特定されたエクステントグループが上位階層に対応するかを判定する。
【０１２０】
階層化制御部１３５５は、前述のリストを生成すると、当該リスト内の全要素を、それぞれの要素のアクセスカウント（より詳細には、アクセスカウントおよび最終アクセス時刻）に基づいて（例えば、アクセスカウントの昇順に）ソートする（ステップＥ２）。このソートにおいて、アクセスカウントが同一の複数の要素が存在する場合、階層化制御部１３５５は、最終アクセス時刻が古い要素ほど低い順位に位置付ける。ただし、説明の簡略化のために、ある要素の順位が別の要素の順位よりも高い（低い）場合、当該ある要素のアクセスカウントは当該別の要素のアクセスカウントよりも大きい（小さい）ものとする。また、アクセスカウントが最小の要素の順位は最下位として扱われる。
【０１２１】
次に階層化制御部１３５５は、生成されたリスト内の要素の数を変数ｘの初期値として設定する（ステップＥ３）。変数ｘは、生成されたリスト内の要素（より詳細には、ソート後の要素）の位置（つまり順位）を示すポインタとして用いられる。そこで、以下の説明では、変数ｘをポインタｘと称する。ステップＥ３において階層化制御部１３５５は、変数ｙを初期値０に設定する。変数ｙは、空き領域確保処理において上位階層から下位階層にデータが移動された物理エクステントの数、つまり上位階層内に新たに確保された空き物理エクステントの数を示す。
【０１２２】
次に階層化制御部１３５５は、ポインタｘで指定されるリスト内の要素（つまり順位が第ｘ位の要素）が、複数の論理エクステントで構成されるエクステントグループであるかを判定する（ステップＥ４）。もし、第ｘ位の要素が複数の論理エクステントで構成されるエクステントグループであるならば（ステップＥ４のＹｅｓ）、階層化制御部１３５５は、当該第ｘ位のエクステントグループ内の全論理エクステントに割り当てられた同数の物理エクステント内のデータを、上位階層（高速ストレージ装置１１）から下位階層（低速ストレージ装置１２）内の空き領域に移動する（ステップＥ５）。このデータの移動により、階層化制御部１３５５は、第ｘ位のエクステントグループ内の全論理エクステントに割り当てられた上位階層内の同数の物理エクステントを、空き物理エクステント（空き領域）として新たに確保することができる。
【０１２３】
次に階層化制御部１３５５は、変数ｙを、今回のステップＥ４の実行によってデータが移動された物理エクステントの数だけインクリメントする（ステップＥ６）。そして階層化制御部１３５５は、ステップＥ９に進む。
【０１２４】
これに対し、第ｘ位の要素が複数の論理エクステントで構成されるエクステントグループでないならば（ステップＥ４のＮｏ）、つまり第ｘ位の要素が、エクステントグループ構成数が１のエクステントグループであるならば、階層化制御部１３５５は、当該第ｘ位のエクステントグループ（エクステントグループ構成数が１のエクステントグループ）の論理エクステントに割り当てられた物理エクステント内のデータを、上位階層から下位階層内の空き領域に移動する（ステップＥ７）。このデータの移動により、階層化制御部１３５５は、第ｘ位のエクステントグループ（エクステントグループ構成数が１のエクステントグループ）の論理エクステントに割り当てられた上位階層内の物理エクステントを、空き物理エクステントとして確保することができる。次に階層化制御部１３５５は、変数ｙを１だけインクリメントして（ステップＥ８）、ステップＥ９に進む。
【０１２５】
ステップＥ９において階層化制御部１３５５は、ステップＥ５またはＥ７におけるデータの移動が反映されるように、アドレス変換テーブル１３３１を更新する。即ち、ステップＥ５の実行に応じてステップＥ９が実行される場合、階層化制御部１３５５は、第ｘ位のエクステントグループ内の全論理エクステント（内の論理ブロック群）に割り当てられる同数の物理エクステント（内の物理ブロック群）が、ステップＥ５におけるデータ移動元の物理エクステント群（内の物理ブロック群）からステップＥ５におけるデータ移動先の物理エクステント群（内の物理ブロック群）に変更されるように、アドレス変換テーブル１３３１を更新する。これに対してステップＥ７の実行に応じてステップＥ９が実行される場合、階層化制御部１３５５は、第ｘ位のエクステントグループ（エクステントグループ構成数が１のエクステントグループ）の論理エクステントに割り当てられる物理エクステントが、ステップＥ７におけるデータ移動元の物理エクステントからステップＥ７におけるデータ移動先の物理エクステントに変更されるように、アドレス変換テーブル１３３１を更新する。
【０１２６】
階層化制御部１３５５は、アドレス変換テーブル１３３１を更新すると、ステップＥ１０に進む。ステップＥ１０において階層化制御部１３５５は、ステップＥ６またはＥ８で更新された変数ｙが変数ｒ以上であるかを判定する。もし、変数ｙが変数ｒ以上であるならば（ステップＥ１０のＹｅｓ）、階層化制御部１３５５は、空き領域確保処理によって、少なくともｒ個の新たな空きの物理エクステントを上位階層内に確保できたと判断する。そこで階層化制御部１３５５は、空き領域確保処理を終了する。
【０１２７】
一方、変数ｙが変数ｒ以上でないならば（ステップＥ１０のＮｏ）、階層化制御部１３５５は、少なくともｒ個の新たな空きの物理エクステントを上位階層内に未だ確保できていないと判断する。そこで、階層化制御部１３５５は、空き領域確保処理を次のように継続する。
【０１２８】
まず階層化制御部１３５５は、ポインタｘを１だけディクリメントする（ステップＥ１１）。そして、階層化制御部１３５５はステップＥ４に戻って、ディクリメントされたポインタｘで指定されるリスト内の要素が、複数の論理エクステントで構成されるエクステントグループであるかを判定する。明らかなように、今回の判定に用いられた要素の順位は、前回の判定に用いられた要素より１つだけ高い。以降の動作は、前回の判定後の動作と同様である。ステップＥ４〜Ｅ１１は、少なくともｒ個の新たな空きの物理エクステントが上位階層内に確保されるまで繰り返し実行される。
【０１２９】
図９に戻って、アクセス処理について更に説明する。階層化制御部１３５５は、図２５のフローチャートに従って空き領域確保処理（ステップＡ１３）を実行すると、ステップＡ１４に進む。このとき上位階層内には、少なくともｆ＋ｒ（＝ｑ）個の空き物理エクステントが存在する。そこで階層化制御部１３５５は、データ移動元決定処理（ステップＡ８）で決定されたｑ個の物理エクステント内のデータを、上位階層内の空き領域（より詳細には、ｑ個の空き物理エクステント）に移動する（ステップＡ１４）。また階層化制御部１３５５は、空き領域確保処理（ステップＡ１３）をスキップした場合にも（ステップＡ１２のＮｏ）、前述のデータの移動を実行する（ステップＡ１４）。
【０１３０】
次に階層化制御部１３５５は、ステップＡ１４におけるデータの移動が反映されるように、アドレス変換テーブル１３３１およびエクステント管理テーブル１３３２を更新する（ステップＡ１５）。即ち階層化制御部１３５５は、データ移動元のｑ個の物理エクステント（内の物理ブロック群）が割り当てられていたｑ個の論理エクステント（内の論理ブロック群）に、データ移動先のｑ個の物理エクステント（内の物理ブロック群）が割り当てられるように、アドレス変換テーブル１３３１を更新する。
【０１３１】
階層化制御部１３５５はステップＡ１５を実行すると、ＩＯ制御部１３５２に制御を返す。するとＩＯ制御部１３５２は、変数ｅを１ディクリメントする（ステップＡ１６）。そしてＩＯ制御部１３５２は、１ディクリメントされた変数ｅが０以下であるかを判定する（ステップＡ１７）。もし、１ディクリメントされた変数ｅが０以下であるならば（ステップＡ１７のＹｅｓ）、ＩＯ制御部１３５２は特定された論理エクステント範囲内のすべての論理エクステントへのアクセスが完了したと判断する。そこでＩＯ制御部１３５２は、図９のフローチャートに従うアクセス処理を終了する。
【０１３２】
これに対し、１ディクリメントされた変数ｅが０以下でないならば（ステップＡ１７のＮｏ）、ＩＯ制御部１３５２は、特定された論理エクステント範囲内に未だアクセスされていないｅ個の論理エクステントが存在すると判断する。そこで、ＩＯ制御部１３５２はステップＡ４に戻り、未だアクセスされていないｅ個（つまり、変数ｅで示される数）の論理エクステントの中から、先行してアクセスされた論理エクステントに後続する論理エクステントをターゲット論理エクステントとして選択する。そして、最初のステップＡ４でターゲット論理エクステントが選択された場合と同様に、ステップＡ４に続く処理（つまり、ステップＡ５〜Ａ７を含む処理）が実行される。
【０１３３】
最初のステップＡ４で選択されたターゲット論理エクステントに割り当てられた物理エクステントが下位階層に存在する場合（ステップＡ７のＹｅｓ）、最初のステップＡ１４で下位階層から上位階層へのデータ移動が実行される。また、最初のステップＡ４で選択されたターゲット論理エクステントが複数の論理エクステントで構成されるエクステントグループに属している場合、最初のステップＡ１４の実行後、当該エクステントグループ内の全論理エクステントに割り当てられた物理エクステントの集合は上位階層に存在する。したがって、２回目のステップＡ４で選択されたターゲット論理エクステントに割り当てられた物理エクステントは、上位階層に存在する（ステップＡ７のＮｏ）。この場合、ステップＡ８〜Ａ１５をスキップしてステップＡ１６が実行される。
【０１３４】
なお、最初のステップＡ４で選択されたターゲット論理エクステントに割り当てられた物理エクステントが上位階層に存在する場合にも（ステップＡ７のＮｏ）、ステップＡ８〜Ａ１５をスキップしてステップＡ１６が実行される。そして、２回目のステップＡ４で選択されたターゲット論理エクステントに割り当てられた物理エクステントが下位階層に存在するならば（ステップＡ７のＹｅｓ）、ステップＡ８が実行される。
【０１３５】
本実施形態によれば、階層化制御部１３５５は、ホスト２０からのアクセス要求で指定された論理エクステント範囲が属するエクステントグループ内のすべての論理エクステントに割り当てられた物理エクステントの集合に含まれている、下位階層内のすべての物理エクステントのデータを、当該アクセス要求に従うアクセス処理におけるステップＡ１４の実行により、上位階層に移動する。このデータ移動は、従来実行されていた、定期的なアクセス頻度評価に基づく階層間のデータ移動に比べて、オーバーヘッドが小さく、短時間で実行できる。
【０１３６】
指定の論理エクステント範囲が属するエクステントグループ内のそれぞれの論理エクステントは、同時アクセスに関する関連性が高く、仮にアクセスカウントが小さいとしても、近い将来アクセスされる可能性が高い。本実施形態では、このエクステントグループ内のそれぞれの論理エクステント（に割り当てられた物理エクステント）のデータは、前述のデータ移動により、すべて上位階層に存在することが保証される。したがって、データ移動後の近い将来に、前述のエクステントグループ内の任意の論理ブロック範囲へのアクセスが要求された場合、ＩＯ制御部１３５２は、当該任意の論理ブロック範囲に対応する物理ブロック範囲に高速にアクセスすることができる。
【０１３７】
図９のフローチャートでは、変数ｅに関する判定（ステップＡ１７）が、変数ｅのディクリメント（ステップＡ１６）の直後に実行される。しかし、変数ｅに関する判定が、例えば、ターゲット論理エクステントの選択（ステップＡ４）の直前に実行されても良い。もし、変数ｅが０以下でないならば、ＩＯ制御部１３５２はステップＡ４に進めばよい。また、変数ｅが０以下であるならば、ＩＯ制御部１３５２は図９のフローチャートに従うアクセス処理を終了すれば良い。またＩＯ制御部１３５２は、変数ｅのディクリメント（ステップＡ１６）の後に、ステップＡ４の直前に実行される変数ｅに関する判定に戻ればよい。
【０１３８】
このように、本実施形態によれば、階層間のデータ移動を効率化できる。
【０１３９】
次に、エクステントグループの分離について説明する。エクステントグループは、時間の経過に伴い、巨大化する可能性がある。エクステントグループが巨大化すると、当該エクステントグループ内の例えば全論理エクステント（に割り当てられている物理エクステント）のデータを下位階層から上位階層に移動するのに、多大な時間を要する。そこで、巨大化したエクステントグループを、グループ分離処理により、２つのエクステントグループに分ける。
【０１４０】
以下、グループ分離処理について、図２６を参照して説明する。図２６は、グループ分離処理の手順を示すフローチャートである。グループ分離処理は、例えば、図９のフローチャートで示されるアクセス処理において、ステップＡ３の直前（つまり、ステップＡ２の直後）に追加されるものとする。したがって必要ならば、図９のフローチャートにおいて、ステップＡ２とステップＡ３との間に、グループ分離処理を挿入されたい。
【０１４１】
まず、グループ管理部１３５４は、図９のステップＡ２におけるエクステントグループ管理テーブル１３３３の更新の結果に基づいて、エクステントグループの拡張が発生したかを判定する（ステップＦ１）。エクステントグループの拡張とは、当該エクステントグループのエクステントグループ構成数が増加することを指す。
【０１４２】
もし、エクステントグループの拡張が発生していないならば（ステップＦ１のＮｏ）、グループ管理部１３５４はグループ分離は不要であると判断する。この場合、グループ管理部１３５４はグループ分離処理を終了して、図９のステップＡ３に進む。
【０１４３】
これに対し、エクステントグループの拡張が発生しているならば（ステップＦ１のｙｅｓ）、グループ管理部１３５４は、拡張されたエクステントグループを特定する（ステップＦ２）。次にグループ管理部１３５４は、エクステントグループ管理テーブル１３３３に基づいて、特定されたエクステントグループのエクステントグループ構成数Ｎｅを検出する（ステップＦ３）。
【０１４４】
次にグループ管理部１３５４は、検出されたエクステントグループ構成数Ｎｅが閾値Ｎｔｈを超えているかを判定する（ステップＦ４）。閾値Ｎｔｈは、特定されたエクステントグループが巨大化しているかを判定するための基準値である。本実施形態において、閾値Ｎｔｈは、上位階層（高速ストレージ装置１１）に配置可能な最大のエクステントの数の一定割合、例えば１／２に設定される。しかし、閾値Ｎｔｈが他の値であっても構わない。
【０１４５】
もし、ＮｅがＮｔｈを超えていないならば（ステップＦ４のＮｏ）、グループ管理部１３５４は、特定されたエクステントグループを分離することは不要であると判断する。この場合、グループ管理部１３５４はグループ分離処理を終了して、図９のステップＡ３に進む。
【０１４６】
これに対し、ＮｅがＮｔｈを超えているならば（ステップＦ４のＹｅｓ）、グループ管理部１３５４は、エクステント管理テーブル１３３２に基づいて、特定されたエクステントグループ内でリンク強度の最も低い論理エクステント間を検出する（ステップＦ５）。最小のリンク強度の論理エクステント間が複数検出された場合には、例えば、当該エクステントグループの中央に最も近い論理エクステント間を選択する。
【０１４７】
そして、グループ管理部１３５４は、検出した論理エクステント間でエクステントグループを分離すべく、エクステント管理テーブル１３３２およびエクステントグループ管理テーブル１３３３を更新する（ステップＦ７）。より詳細には、グループ管理部１３５４は、検出した論理エクステント間について、先方の論理エクステントの後方リンクエクステントおよび後方リンク強度の内容を初期値に戻し、後方の論理エクステントの前方リンクエクステントおよび前方リンク強度の内容を初期値に戻すべく、エクステント管理テーブル１３３２を更新する。また、グループ管理部１３５４は、登録済みの当該エクステントグループのエクステントグループ構成数を、分離後の前方のエクステントグループのエクステントグループ構成数に改め、分離後の後方のエクステントグループを別途登録すべく、エクステントグループ管理テーブル１３３３を更新する。
【０１４８】
グループ管理部１３５４は、グループ分離（ステップＦ７）を実行すると、グループ分離処理を終了する。そして、図９のフローチャートにおけるステップＡ３が実行される。なお、グループ分離処理が、ステップＡ３の直前以外のタイミング、例えばステップＡ３の直後に実行されても構わない。
【０１４９】
（第２実施形態）
次に、第２実施形態について説明する。
【０１５０】
本実施形態に係る階層化ストレージシステムも、第１実施形態と同様、階層化ストレージシステム１０とホスト２０とから構成されるコンピュータシステムに含まれるものとする。以下、第１実施形態と同一の要素については、同一の符号を使用し、その説明を省略する。
【０１５１】
第１実施形態では、エクステント管理テーブル１３３２とエクステントグループ管理テーブル１３３３とを用いて、ホスト２０からの１つのコマンドによりアクセスされたことにより相関があると判断された論理エクステントの集合であるエクステントグループを管理した。これに対して、本実施形態では、エクステント管理テーブル１３３２とエクステントグループ管理テーブル１３３３とを用いずに、エクステントグループ単位で階層間のデータ移動を行うことを実現する。
【０１５２】
図２７は、本実施形態におけるストレージコントローラ１３−２の典型的な機能構成を主として示すブロック図である。第１実施形態との違いは、エクステント管理テーブル１３３２およびエクステントグループ管理テーブル１３３３に代わり、論理エクステント情報１３３４が用いられる点にある。
【０１５３】
第１実施形態において説明したように、構成管理部１３５１は、例えば図２８に示すように、高速メディア（高速ストレージ装置１１）の記憶領域と低速メディア（低速ストレージ装置１２）の記憶領域とを仮想化して１以上の論理ユニットを提供する。論理エクステント情報１３３４は、構成管理部１３５１によって論理ユニットが作成された際、その論理ユニット用に作成される。論理エクステント情報１３３４は、例えば図２９に示すように、論理エクステント番号（ｉ）フィールド、論理エクステントアドレス（ｌ＿ａｄｄｒｅｓｓ）フィールド、アクセスカウント（ａｃｃｅｓｓ＿ｃｎｔ）フィールド、最終アクセス時刻（ｌａｓｔ＿ｔｉｍｅ）フィールド、リンク強度（ｌｉｎｋ＿ｉｎｔｅｎｓｉｔｙ）フィールドおよび物理エクステントアドレス（ｐ＿ａｄｄｒｅｓｓ）フィールドを有するデータ構造体が、その論理ユニットに含まれる論理エクステント数分設けられる配列（Ｌｅｘｔ［ｉ］）である。この配列には、例えば論理エクステント番号（ｉ）フィールドをキーとした検索を行うためのインデックスが設けられる。その他、例えばアクセスカウント（ａｃｃｅｓｓ＿ｃｎｔ）フィールドの内容に基づいて配列を並べ替えて参照するための副インデックスが設けられてもよい。以下、説明を分かり易くするために、例えば論理エクステント１に対応づけられるデータ構造体（Ｌｅｘｔ［１］）を、論理エクステント１に対応づけられる論理エクステント情報１３３４と称することがある。
【０１５４】
また、論理エクステント情報１３３４は、論理エクステントアドレス（ｌ＿ａｄｄｒｅｓｓ）フィールドと物理エクステントアドレス（ｐ＿ａｄｄｒｅｓｓ）フィールドとを含むので、アドレス変換テーブル１３３１の役割を担うことができる。つまり、エクステント管理テーブル１３３２およびエクステントグループ管理テーブル１３３３に加え、さらに、アドレス変換テーブル１３３１を用いないようにしてもよい。逆に、アドレス変換テーブル１３３１を用いるならば、論理エクステント情報１３３４の論理エクステントアドレス（ｌ＿ａｄｄｒｅｓｓ）フィールドと物理エクステントアドレス（ｐ＿ａｄｄｒｅｓｓ）フィールドとを省いてもよい。
【０１５５】
ここで、論理エクステント情報１３３４がどのように更新されていくのかの具体例について、第１の場合を例に、図３０を参照して説明する。第１の場合とは、ホスト２０からのアクセス要求の範囲が１つの論理エクステント内である場合を指す。
【０１５６】
ホスト２０からのアクセス要求の範囲が１つの論理エクステント内である場合、ＩＯ管理部１３５３−２は、その論理エクステントに対応づけられる論理エクステント情報１３３４のアクセスカウント（ａｃｃｅｓｓ＿ｃｎｔ）フィールドの内容を１インクリメントし、最終アクセス時刻（ｌａｓｔ＿ｔｉｍｅ）フィールドの内容を現在の時刻を示すように更新する。
【０１５７】
続いて、論理エクステント情報１３３４がどのように更新されていくのかの具体例について、第２の場合を例に、図３１を参照して説明する。第２の場合とは、ホスト２０からのアクセス要求の範囲が２つの論理エクステントに跨る場合を指す。
【０１５８】
ホスト２０からのアクセス要求の範囲が、図３１に示すように、論理エクステント１と論理エクステント２とに跨る場合、ＩＯ管理部１３５３−２は、論理エクステント１に対応づけられる論理エクステント情報１３３４（論理エクステント番号（ｉ）フィールドの内容が１のデータ構造体）については、アクセスカウント（ａｃｃｅｓｓ＿ｃｎｔ）フィールドの内容を１インクリメントし、最終アクセス時刻（ｌａｓｔ＿ｔｉｍｅ）フィールドの内容を現在の時刻を示すように更新する。また、ＩＯ管理部１３５３−２は、論理エクステント２に対応づけられる論理エクステント情報１３３４（論理エクステント番号（ｉ）フィールドの内容が２のデータ構造体）については、アクセスカウント（ａｃｃｅｓｓ＿ｃｎｔ）フィールドの内容を１インクリメントし、最終アクセス時刻（ｌａｓｔ＿ｔｉｍｅ）フィールドの内容を現在の時刻を示すように更新することに加えて、リンク強度（ｌｉｎｋ＿ｉｎｔｅｎｓｉｔｙ）フィールドの内容を１インクリメントする。つまり、本実施形態においては、ホスト２０からのアクセス要求の範囲が２つの論理エクステントに跨る場合、後方の論理エクステント対応づけられる論理エクステント情報１３３４のリンク強度（ｌｉｎｋ＿ｉｎｔｅｎｓｉｔｙ）フィールドの内容のみが１インクリメントされる。換言すれば、論理エクステント情報１３３４のリンク強度（ｌｉｎｋ＿ｉｎｔｅｎｓｉｔｙ）フィールドの内容は、前方の論理エクステントとの間のリンク強度を示す。
【０１５９】
続いて、論理エクステント情報１３３４がどのように更新されていくのかの具体例について、第３の場合を例に、図３２を参照して説明する。第３の場合とは、ホスト２０からのアクセス要求の範囲が２つの論理エクステントに跨る場合であって、前方の論理エクステントはさらに１つ前方の論理エクステントとの間で相関があり、また、後方の論理エクステントはさらに１つ後方の論理エクステントとの間で相関がある場合を指す。
【０１６０】
ここでは、ホスト２０からのアクセス要求の範囲が、図３２に示すように、論理エクステント２と論理エクステント３とに跨り、論理エクステント２は前方の論理エクステント１と相関があり、論理エクステント３は後方の論理エクステント４と相関があるものとする。この場合も、ＩＯ管理部１３５３−２は、前述した第２の場合と同様に、論理エクステント情報１３３４を更新する。より詳細には、ＩＯ管理部１３５３−２は、論理エクステント２に対応づけられる論理エクステント情報１３３４（論理エクステント番号（ｉ）フィールドの内容が２のデータ構造体）については、アクセスカウント（ａｃｃｅｓｓ＿ｃｎｔ）フィールドの内容を１インクリメントし、最終アクセス時刻（ｌａｓｔ＿ｔｉｍｅ）フィールドの内容を現在の時刻を示すように更新する。また、ＩＯ管理部１３５３−２は、論理エクステント３に対応づけられる論理エクステント情報１３３４（論理エクステント番号（ｉ）フィールドの内容が２のデータ構造体）については、アクセスカウント（ａｃｃｅｓｓ＿ｃｎｔ）フィールドの内容を１インクリメントし、最終アクセス時刻（ｌａｓｔ＿ｔｉｍｅ）フィールドの内容を現在の時刻を示すように更新することに加えて、リンク強度（ｌｉｎｋ＿ｉｎｔｅｎｓｉｔｙ）フィールドの内容を１インクリメントする。
【０１６１】
次に、図３３および図３４を参照して、階層化制御部１３５５−２が、以上のように更新される論理エクステント情報１３３４に基づいて、相関のある論理エクステントの集合をエクステントグループとして取り扱う方法について説明する。
【０１６２】
図３３は、相関のある論理エクステントの集合、つまりエクステントグループの代表エクステントの探し方を説明するための図である。ここでは、図３３に示すように、論理エクステント１〜４の４つの論理エクステントがエクステントグループとして取り扱うべき状況にあるものとする。
【０１６３】
このような状況下においては、論理エクステント２〜４のリンク強度が０以外となっている。階層化制御部１３５５−２は、例えば、論理エクステント１〜４の中のいずれがアクセス要求の範囲となった場合であっても、その論理エクステントを起点にリンク強度が０の論理エクステントへ辿り着くまで論理エクステントを前方へ（番号の小さい方へ）辿ることで、代表エクステントを探し当てることができる。つまり、論理エクステント１が代表エクステントであることを認識することができる。
【０１６４】
図３４は、相関のある論理エクステントの集合、つまりエクステントグループのエクステントグループ構成数の調べ方を説明するための図である。
【０１６５】
代表エクステントを探し当てると、階層化制御部１３５５−２は、今度は、代表エクステントを起点にリンク強度が０の論理エクステントへ辿り着くまで論理エクステントを後方へ（番号の大きい方へ）辿ることで、エクステントグループ構成数を調べることができる。より詳細には、リンク強度が０の論理エクステントへ辿り着いたら、その１つ前の論理エクステントまでを当該エクステントグループに属する論理エクステントであると判断して、エクステントグループ構成数を取得する。つまり、リンク強度が０以外の論理エクステントが連続する間において論理エクステントを後方へ辿ることで、エクステントグループ構成数を調べることができる。
【０１６６】
このように、論理エクステント情報１３３４に基づいて、アクセス要求の範囲となった論理エクステントが属するエクステントグループの代表エクステントを探し当てることができ、かつ、エクステントグループ構成数を取得することができるので、階層化制御部１３５５−２は、エクステント管理テーブル１３３２とエクステントグループ管理テーブル１３３３とを用いずに、エクステントグループ単位で階層間のデータ移動を行うことが可能である。
【０１６７】
以上説明した、少なくとも１つの実施形態によれば、階層間のデータ移動を効率化できる。
【０１６８】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１６９】
１０…階層化ストレージシステム、１１…高速ストレージ装置（第１のストレージ装置）、１２…低速ストレージ装置（第２のストレージ装置）、１３…ストレージコントローラ、２０…ホスト（ホスト計算機）、１３３…メモリ、１３４…ローカルＨＤＤ、１３５…ＣＰＵ、１３３１…アドレス変換テーブル、１３３２…エクステント管理テーブル、１３３３…エクステントグループ管理テーブル、１３３４…論理エクステント情報、１３５１…構成管理部、１３５２…入出力（ＩＯ）制御部、１３５３…ＩＯ管理部、１３５４…グループ管理部、１３５５…階層化制御部。
【図１】
2018088135.tif 000003
【図２】
2018088135.tif 000004
【図３】
2018088135.tif 000005
【図４】
2018088135.tif 000006
【図５】
2018088135.tif 000007
【図６】
2018088135.tif 000008
【図７】
2018088135.tif 000009
【図８】
2018088135.tif 000010
【図９】
2018088135.tif 000011
【図１０】
2018088135.tif 000012
【図１１】
2018088135.tif 000013
【図１２】
2018088135.tif 000014
【図１３】
2018088135.tif 000015
【図１４】
2018088135.tif 000016
【図１５】
2018088135.tif 000017
【図１６】
2018088135.tif 000018
【図１７】
2018088135.tif 000019
【図１８】
2018088135.tif 000020
【図１９】
2018088135.tif 000021
【図２０】
2018088135.tif 000022
【図２１】
2018088135.tif 000023
【図２２】
2018088135.tif 000024
【図２３】
2018088135.tif 000025
【図２４】
2018088135.tif 000026
【図２５】
2018088135.tif 000027
【図２６】
2018088135.tif 000028
【図２７】
2018088135.tif 000029
【図２８】
2018088135.tif 000030
【図２９】
2018088135.tif 000031
【図３０】
2018088135.tif 000032
【図３１】
2018088135.tif 000033
【図３２】
2018088135.tif 000034
【図３３】
2018088135.tif 000035
【図３４】
2018088135.tif 000036
【手続補正書】
【提出日】平成29年10月19日(2017.10.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
上位階層に位置づけられる第１のストレージ装置と、
下位階層に位置づけられる第２のストレージ装置と、
前記第１および第２のストレージ装置へのアクセスを制御するストレージコントローラと、
を具備し、
前記ストレージコントローラは、
前記第１および第２のストレージ装置の記憶領域が複数の物理ブロックから構成される物理エクステント単位に割り当てられる、前記物理ブロックと同サイズの複数の論理ブロックから構成される複数の論理エクステントの各々に対応づけて、対応する論理エクステントと共に同一のアクセス要求によりアクセスされた当該対応する論理エクステントの前方に位置する論理エクステントを示す前方リンクエクステント識別子と、対応する論理エクステントと共に同一のアクセス要求によりアクセスされた当該対応する論理エクステントの後方に位置する論理エクステントを示す後方リンクエクステント識別子とを少なくとも保持するエクステント管理テーブルを管理し、
前記複数の論理エクステントを含む論理ユニットに対するホスト計算機からのアクセス要求の範囲が、前記論理ユニット内の複数の論理エクステントに跨る場合、当該複数の論理エクステントは相関があると判定し、相関のある論理エクステントの集合を１つのエクステントグループとして、前記エクステント管理テーブルに保持される前方リンクエクステント識別子を辿って各エクステントグループの先頭の論理エクステントを特定するとともに、当該先頭の論理エクステントを起点に前記エクステント管理テーブルに保持される後方リンクエクステント識別子を辿って各エクステントグループに属する論理エクステントの数を取得して、各エクステントグループの先頭の論理エクステントを示す代表エクステント識別子と各エクステントグループに属する論理エクステントの数とを少なくとも保持するエクステントグループ管理テーブルを管理し、
前記エクステント管理テーブルと前記エクステントグループ管理テーブルとに基づき、各エクステントグループに属する複数の論理エクステントに各々対応づけられた複数の物理エクステントに格納されるデータを前記第１および第２のストレージ装置間において一括的に移動させる、
階層化ストレージシステム。
【請求項２】
前記ストレージコントローラは、前記ホスト計算機からのアクセス要求の範囲が、互いに異なるエクステントグループに属する２以上の論理エクステントに跨る場合、当該２以上の論理エクステントが各々属する２以上のエクステントグループを１つのエクステントグループに統合するために前記エクステントグループ管理テーブルを更新する請求項１に記載の階層化ストレージシステム。
【請求項３】
前記エクステント管理テーブルは、さらに、対応する論理エクステントへのアクセス回数を保持し、
前記ストレージコントローラは、前記第１のストレージ装置内の物理エクステントに格納されるデータを前記第２のストレージ装置内の物理エクステントに移動させて前記第１のストレージ装置内に空きの物理エクステントを確保する場合、前記エクステント管理テーブルに保持されるアクセス回数に基づき、前記第１のストレージ装置内の物理エクステントにすべての論理エクステントが対応づけられているエクステントグループそれぞれのアクセス回数を算出し、当該算出したアクセス回数に基づき、前記第１のストレージ装置の物理エクステントから前記第２のストレージ装置内の物理エクステントへデータを移動させるエクステントグループを選択する、
請求項１または２に記載の階層化ストレージシステム。
【請求項４】
前記エクステント管理テーブルは、さらに、対応する論理エクステントが当該対応する論理エクステントの前方に位置する論理エクステントと共に同一のアクセス要求によりアクセスされた回数が示す前方リンク強度と、対応する論理エクステントが当該対応する論理エクステントの後方に位置する論理エクステントと共に同一のアクセス要求によりアクセスされた回数が示す後方リンク強度とを保持し、
前記ストレージコントローラは、エクステントグループに属する論理エクステントの数が閾値を超えた場合、前記エクステント管理テーブルに保持される前方リンク強度および後方リンク強度に基づき、当該エクステントグループを２つのエクステントグループに分離すべく前記エクステント管理テーブルおよび前記エクステントグループ管理テーブルを更新する、
請求項１乃至３のいずれか１項に記載の階層化ストレージシステム。
【請求項５】
上位階層に位置づけられる第１のストレージ装置と、
下位階層に位置づけられる第２のストレージ装置と、
前記第１および第２のストレージ装置へのアクセスを制御するストレージコントローラと、
を具備し、
前記ストレージコントローラは、
前記第１および第２のストレージ装置の記憶領域が複数の物理ブロックから構成される物理エクステント単位に割り当てられる、前記物理ブロックと同サイズの複数の論理ブロックから構成される複数の論理エクステントの各々に対応づけて、対応する論理エクステントが当該対応する論理エクステントの前方に位置する論理エクステントと共に同一のアクセス要求によりアクセスされた回数が示すリンク強度を少なくとも含む論理エクステント情報を管理し、
前記複数の論理エクステントを含む論理ユニットに対するホスト計算機からのアクセス要求の範囲が、前記論理ユニット内の複数の論理エクステントに跨る場合、当該複数の論理エクステントは相関があると判定し、相関のある論理エクステントの集合を１つのエクステントグループとして、前記回数が０の論理エクステント情報に辿り着くまで前記論理エクステント情報を論理エクステントの並び順に沿って前方に辿って各エクステントグループの先頭の論理エクステントを特定するとともに、当該先頭の論理エクステントを起点に前記回数が０以外の論理エクステント情報が連続する間において前記論理エクステント情報を論理エクステントの並び順に沿って後方に辿って各エクステントグループに属する論理エクステントの数を取得し、
前記特定した各エクステントグループの先頭の論理エクステントと、前記取得した各エクステントグループに属する論理エクステントの数とに基づき、各エクステントグループに属する複数の論理エクステントに各々対応づけられた複数の物理エクステントに格納されるデータを前記第１および第２のストレージ装置間において一括的に移動させる、
階層化ストレージシステム。
【請求項６】
前記論理エクステント情報は、さらに、対応する論理エクステントへのアクセス回数を含み、
前記ストレージコントローラは、前記第１のストレージ装置内の物理エクステントに格納されるデータを前記第２のストレージ装置内の物理エクステントに移動させて前記第１のストレージ装置内に空きの物理エクステントを確保する場合、前記論理エクステント情報に含まれるアクセス回数に基づき、前記第１のストレージ装置内の物理エクステントにすべての論理エクステントが対応づけられているエクステントグループそれぞれのアクセス回数を算出し、当該算出したアクセス回数に基づき、前記第１のストレージ装置の物理エクステントから前記第２のストレージ装置内の物理エクステントへデータを移動させるエクステントグループを選択する、
請求項５に記載の階層化ストレージシステム。
【請求項７】
前記ストレージコントローラは、エクステントグループに属する論理エクステントの数が閾値を超えた場合、前記論理エクステント情報に保持されるリンク強度に基づき、当該エクステントグループを２つのエクステントグループに分離するために前記論理エクステント情報を更新する、
請求項５または６に記載の階層化ストレージシステム。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
本発明の実施形態は、階層化ストレージシステムに関する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
本発明が解決しようとする課題は、階層間のデータ移動を効率化できる階層化ストレージシステムを提供することである。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
実施形態によれば、階層化ストレージシステムは、第１のストレージ装置と、ストレージコントローラとを含む。前記第１のストレージ装置は、上位階層に位置づけられる。前記第２のストレージ装置は、下位階層に位置づけられる。前記ストレージコントローラは、前記第１および第２のストレージ装置へのアクセスを制御する。前記ストレージコントローラは、前記第１および第２のストレージ装置の記憶領域が複数の物理ブロックから構成される物理エクステント単位に割り当てられる、前記物理ブロックと同サイズの複数の論理ブロックから構成される複数の論理エクステントの各々に対応づけて、対応する論理エクステントと共に同一のアクセス要求によりアクセスされた当該対応する論理エクステントの前方に位置する論理エクステントを示す前方リンクエクステント識別子と、対応する論理エクステントと共に同一のアクセス要求によりアクセスされた当該対応する論理エクステントの後方に位置する論理エクステントを示す後方リンクエクステント識別子とを少なくとも保持するエクステント管理テーブルを管理し、前記複数の論理エクステントを含む論理ユニットに対するホスト計算機からのアクセス要求の範囲が、前記論理ユニット内の複数の論理エクステントに跨る場合、当該複数の論理エクステントは相関があると判定し、相関のある論理エクステントの集合を１つのエクステントグループとして、前記エクステント管理テーブルに保持される前方リンクエクステント識別子を辿って各エクステントグループの先頭の論理エクステントを特定するとともに、当該先頭の論理エクステントを起点に前記エクステント管理テーブルに保持される後方リンクエクステント識別子を辿って各エクステントグループに属する論理エクステントの数を取得して、各エクステントグループの先頭の論理エクステントを示す代表エクステント識別子と各エクステントグループに属する論理エクステントの数とを少なくとも保持するエクステントグループ管理テーブルを管理し、前記エクステント管理テーブルと前記エクステントグループ管理テーブルとに基づき、各エクステントグループに属する複数の論理エクステントに各々対応づけられた複数の物理エクステントに格納されるデータを前記第１および第２のストレージ装置間において一括的に移動させる。