(57)【要約】  複数の記憶デバイスから提供される複数の記憶領域を記憶領域の属性に従って分類された複数の記憶領域グループを管理する。論理ボリューム内の複数のアドレスに含まれる少なくとも１つのアドレスへのライト要求に応じて前記複数の記憶領域に含まれる少なくとも１つの記憶領域が割り当てられる前記論理ボリュームの複数を提供する。前記論理ボリューム内の前記少なくとも１つのアドレスのアクセス状況に応じて、前記ライト要求によって前記少なくとも１つのアドレスにライトされているデータを、前記複数の記憶領域グループの１つに含まれる前記少なくとも１つの記憶領域から前記複数の記憶領域グループに含まれる他の記憶領域グループ内の少なくともひとつの記憶領域へ移行する。
2011077489.tif 000002
【特許請求の範囲】
【請求項１】
複数の記憶デバイスから提供される複数の記憶領域を記憶領域の属性に従って分類された複数の記憶領域グループを管理し、
論理ボリューム内の複数のアドレスに含まれる少なくとも１つのアドレスへのライト要求に応じて前記複数の記憶領域に含まれる少なくとも１つの記憶領域が割り当てられる前記論理ボリュームの複数を提供し、
前記論理ボリューム内の前記少なくとも１つのアドレスのアクセス状況に応じて、前記ライト要求によって前記少なくとも１つのアドレスにライトされているデータを、前記複数の記憶領域グループの１つに含まれる前記少なくとも１つの記憶領域から前記複数の記憶領域グループに含まれる他の記憶領域グループ内の少なくともひとつの記憶領域へ移行する、ことを特徴とするストレージシステムの制御方法。
【請求項２】
請求項１に記載の方法であって、
前記複数の記憶領域グループに含まれる第一の記憶領域グループと第二の記憶領域グループとは、それぞれのグループに相応しい前記アクセス状況の程度をループ毎に属性として有しており、前記第一と前記第二の記憶領域グループとの前記アクセス状況の程度はグループ毎に異なっているものの一部重複しており、
前記移行処理においては、前記複数の記憶領域グループの１つに含まれる前記少なくとも１つの記憶領域が、前記第一又は前記第二の記憶領域グループに含まれており且つ前記少なくとも１つのアドレスの前記アクセス状況が前記アクセス状況の程度のうち前記一部重複している範囲内である場合、前記データの移行は実施されない、ことを特徴とするストレージシステムの制御方法。
【請求項３】
一以上のホストに接続されるストレージシステムであって、
複数種類の物理記憶デバイス群と、
記憶制御装置と
を備え、
前記記憶制御装置が、
記憶資源と、
前記複数種類の物理記憶デバイス群、前記記憶資源及び前記ホストに接続されるコントローラと
を有し、
物理記憶デバイス群は、一以上の物理記憶デバイスで構成されており、
前記複数種類の物理記憶デバイス群が、複数種類の実ページ群の基になっており、
実ページ群の種類は、その実ページ群の基になっている物理記憶デバイス群の属性に基づいており、
実ページ群が、複数の実ページを有し、
前記コントローラが、一以上の仮想ボリュームを前記一以上のホストに提供し、
前記仮想ボリュームは、複数の仮想ページで構成される仮想的な論理ボリュームであり、
前記仮想ページは、仮想的な記憶領域であり、
前記実ページは、実体的な記憶領域であり、
前記記憶資源が、
どの仮想ページにどの実ページが割り当てられているかを表す情報である割当て情報と、
仮想ページ毎のＩ／Ｏ（Input/Output）頻度を表す情報であるモニタ情報と、
実ページ群の種類毎に設定されたＩ／Ｏ頻度レンジを表す情報を含んだ情報である実ページ群管理情報と
を記憶し、
前記コントローラが、前記ホストからライトコマンドを受信し、前記ライトコマンドからライト先の仮想ページを特定し、特定した仮想ページにフリーの実ページを割り当てるよう前記割当て情報を更新し、割り当てた実ページにライト対象のデータを格納し、
前記コントローラが、仮想ページ又はその仮想ページに割り当てられる実ページに対するＩ／Ｏに応じて、前記モニタ情報における、その仮想ページのＩ／Ｏ頻度を更新し、
前記実ページは、実体的な記憶領域であり、実ページに格納されるデータはその実ページの基になっている物理記憶デバイスに記憶され、
前記コントローラが、以下の（Ａ）乃至（Ｃ）の処理を含んだ処理である移行処理を行い、
（Ａ）前記モニタ情報から特定されたＩ／Ｏ頻度が所定の条件に適合していない仮想ボリューム又は仮想ページを特定する、
（Ｂ）特定された仮想ボリューム又は仮想ページに割り当てられている、第１種の実ページ群内の第１の実ページ、に格納されているデータを、第２種の実ページ群内の第２の実ページに移行する、
（Ｃ）前記第１の実ページの割当て先の仮想ページである第１の仮想ページに前記第１の実ページに代えて前記第２の実ページを割り当てるよう前記割当て情報を更新する、
前記所定の条件とは、前記第１種の実ページ群のＩ／Ｏ頻度レンジに収まることであり、
前記第２種の実ページ群は、前記（Ａ）で特定された仮想ボリューム又は仮想ページのＩ／Ｏ頻度にＩ／Ｏ頻度レンジが収まっている実ページ群であり、
前記コントローラは、Ｉ／Ｏ頻度レンジの決定処理を行い、その決定処理において、前記モニタ情報を基に、各種の実ページ群のＩ／Ｏ頻度レンジを決定する、
ストレージシステム。
【請求項４】
請求項３記載のストレージシステムであって、
前記コントローラが、前記決定処理において、以下の（ａ）及び（ｂ）の処理を行う、
（ａ）前記モニタ情報を用いて、Ｉ／Ｏ頻度と仮想ページ数との関係を表す情報である関係情報を作成する、
（ｂ）前記関係情報を基に、各種実ページ群のＩ／Ｏ頻度レンジを決定する、
ストレージシステム。
【請求項５】
請求項３記載のストレージシステムであって、
前記コントローラが、前記（ｂ）の処理において、以下の（ｂ１）乃至（ｂ３）の処理を行い、
（ｂ１）前記関係情報を用いて、前記複数種類の実ページ群から実ページが割り当てられている一以上の仮想ボリューム内の全ての仮想ページのＩ／Ｏ頻度の合計であるＩ／Ｏ頻度合計を算出する、
（ｂ２）各種実ページ群の性能値の比と、前記Ｉ／Ｏ頻度合計とを基に、実ページ群の境界のＩ／Ｏ頻度である境界値を実ページ群の境界毎に算出する、
（ｂ３）各種実ページ群のＩ／Ｏ頻度と実ページ群の境界毎の境界値とを基に、各種実ページ群のＩ／Ｏ頻度レンジを決定する、
実ページ群の前記性能値は、その実ページ群の基になっている物理記憶デバイス群の属性に基づいて決定された、性能に関する値であり、
前記実ページ群の境界とは、実ページ群とその上位及び／又は下位の実ページ群との境であり、
各種実ページ群のＩ／Ｏ頻度レンジの最大値及び／又は最小値は、その実ページ群とその上位及び／又は下位の実ページ群との境の境界値に基づいて決定された値である、
ストレージシステム。
【請求項６】
請求項５記載のストレージシステムであって、
実ページ群の前記性能値は、その実ページ群における、前記移行処理での移行先となり得る実ページの数と、その実ページ群内の一つの実ページあたりの性能値との掛け算により算出された値であり、
実ページ群内の一つの実ページあたりの性能値は、その実ページ群の基になっている物理記憶デバイス群の属性に基づいて決定された、性能に関する値である、
ストレージシステム。
【請求項７】
請求項３記載のストレージシステムであって、
前記Ｉ／Ｏ頻度レンジの最大値は、そのＩ／Ｏ頻度レンジに対応した大きい方の境界値より大きい、及び／又は、そのＩ／Ｏ頻度レンジの最小値は、そのＩ／Ｏ頻度レンジに対応した小さい方の境界値より小さい、
ストレージシステム。
【請求項８】
請求項３記載のストレージシステムであって、
前記コントローラが、前記決定処理において、以下の処理を行い、
（ａ）前記モニタ情報を用いて、前記複数種類の実ページ群から実ページが割り当てられている一以上の仮想ボリューム内の全ての仮想ページのＩ／Ｏ頻度の合計であるＩ／Ｏ頻度合計を算出する、
（ｂ）各種実ページ群の性能値の比と、前記Ｉ／Ｏ頻度合計とを基に、実ページ群の境界のＩ／Ｏ頻度である境界値を実ページ群の境界毎に算出し、
（ｃ）各種実ページ群のＩ／Ｏ頻度と実ページ群の境界毎の境界値とを基に、各種実ページ群のＩ／Ｏ頻度レンジを決定し、
実ページ群の前記性能値は、その実ページ群の基になっている物理記憶デバイス群の属性に基づいて決定された、性能に関する値であり、
前記実ページ群の境界とは、実ページ群とその上位及び／又は下位の実ページ群との境であり、
各種実ページ群のＩ／Ｏ頻度レンジの最大値及び／又は最小値は、その実ページ群とその上位及び／又は下位の実ページ群との境の境界値に基づいて決定された値である、
ストレージシステム。
【請求項９】
請求項３記載のストレージシステムであって、
前記コントローラが、前記決定処理において、以下の（ｄ）及び（ｅ）の処理を行い、
（ｄ）実ページ群のＩ／Ｏ頻度レンジに収まるＩ／Ｏ頻度となっている全ての仮想ページに割り当てられている実ページ内のデータ要素がその実ページ群に移行されたと仮定して、その実ページ群の使用割合がその実ページ群の割合閾値を超えるか否かを判断する、
（ｅ）前記（ｄ）での判断の結果が否定的の場合に、決定されたＩ／Ｏ頻度レンジを前記実ページ群管理情報に含める、
実ページ群の前記使用割合とは、その実ページ群を構成する実ページの数に対する、仮想ページに割り当てられている実ページの数の割合であり、
前記実ページ群の割合閾値とは、前記使用割合の閾値である、
ストレージシステム。
【請求項１０】
請求項９記載のストレージシステムであって、
前記コントローラが、前記決定処理において、更に、以下の（ｆ）の処理を行う、
（ｆ）前記（ｄ）での判断の結果が肯定的の場合に、実ページ群の使用割合がその実ページ群の割合閾値を超えないような大きさにＩ／Ｏ頻度レンジを修正する、
ストレージシステム。
【請求項１１】
請求項１０記載のストレージシステムであって、
前記コントローラが、前記決定処理において、更に、以下の（ｇ）の処理を行う、
（ｇ）修正後のＩ／Ｏ頻度レンジを前記実ページ群管理情報に含める、
ストレージシステム。
【請求項１２】
請求項３記載のストレージシステムであって、
前記モニタ情報から特定された、仮想ボリューム又は仮想ページのＩ／Ｏ頻度とは、その仮想ボリューム又は仮想ページの、前記モニタ情報に含まれているＩ／Ｏ頻度である、
ストレージシステム。
【請求項１３】
請求項３記載のストレージシステムであって、
前記モニタ情報から特定された、仮想ボリューム又は仮想ページのＩ／Ｏ頻度とは、前記モニタ情報における、その仮想ボリュームとは別の仮想ボリュームのＩ／Ｏ頻度、又はその仮想ページとは別の仮想ページのＩ／Ｏ頻度、との相対的な値である、
ストレージシステム。
【請求項１４】
請求項３記載のストレージシステムであって、
前記コントローラは、前記（Ａ）でのＩ／Ｏ頻度を絶対値とするか相対値とするかの指定を受け、
絶対値とすることの指定を受けた場合、前記モニタ情報から特定された、仮想ボリューム又は仮想ページのＩ／Ｏ頻度とは、その仮想ボリューム又は仮想ページの、前記モニタ情報に含まれているＩ／Ｏ頻度であり、
相対値とすることの指定を受けた場合、前記モニタ情報から特定された、仮想ボリューム又は仮想ページのＩ／Ｏ頻度とは、前記モニタ情報における、その仮想ボリュームとは別の仮想ボリュームのＩ／Ｏ頻度、又はその仮想ページとは別の仮想ページのＩ／Ｏ頻度、との相対的な値である、
ストレージシステム。
【請求項１５】
請求項３記載のストレージシステムであって、
前記（Ａ）でのＩ／Ｏ頻度は、或る時間におけるＩ／Ｏ数の平均である、
ストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Thin Provisioning（Dynamic Provisioningとも呼ばれる）が適用される記憶制御に関する。
【背景技術】
【０００２】
データ移行技術が知られている。データ移行は、一般に、ボリューム単位で行われる。例えば、特許文献１によれば、第１の論理ボリュームに格納されている全てのデータが、第１の論理ボリュームから第２の論理ボリュームに移行される。【０００３】
また、ストレージ階層化技術も知られている。例えば、特許文献２によれば、複数のストレージシステムが有する複数の論理ボリュームが、それぞれ、複数のティアのうちのいずれかのティアに分類され、或るティアに属する論理ボリュームが、別のティアに移行される。複数のティアには、例えば、高信頼性のティア、低コストのティアなどが含まれる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−３０２０７７号公報
【特許文献２】特開２００８−０４７１５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、Thin Provisioningと呼ばれる（Dynamic Provisioningとも呼ばれる）技術が知られている。Thin Provisioningによれば、複数の仮想的な記憶領域（仮想ページ）で構成された仮想的な論理ボリューム（仮想ボリューム）と、複数の実体的な記憶領域（実ページ）とが用意される。仮想ページに対するライトが行われた場合に、その仮想ページに実ページが割り当てられ、割り当てられた実ページに、ライト対象のデータが書き込まれる。【０００６】
上述したデータ移行技術及びストレージ階層化技術がThin Provisioningに適用されたとする。また、第１のティアに第１の仮想ボリュームが属し第２のティアに第２の仮想ボリュームが属しているとする。この場合、第１のティアに属する第１の仮想ボリュームから第２のティアに属する第２の仮想ボリュームに全てのデータを移行することができる。【０００７】
この技術によれば、第１の仮想ボリューム内の全てのデータが、第１のティアから第２のティアに移行されるが、全てのデータが必ずしも第２のティアに存在することが好ましいとは限らない。【０００８】
そこで、本発明の目的は、Thin Provisioningに従う仮想ボリューム内のデータの配置を適切にすることにある。
【課題を解決するための手段】
【０００９】
複数の記憶デバイスから提供される複数の記憶領域を記憶領域の属性に従って分類された複数の記憶領域グループを管理する。論理ボリューム内の複数のアドレスに含まれる少なくとも１つのアドレスへのライト要求に応じて前記複数の記憶領域に含まれる少なくとも１つの記憶領域が割り当てられる前記論理ボリュームの複数を提供する。前記論理ボリューム内の前記少なくとも１つのアドレスのアクセス状況に応じて、前記ライト要求によって前記少なくとも１つのアドレスにライトされているデータを、前記複数の記憶領域グループの１つに含まれる前記少なくとも１つの記憶領域から前記複数の記憶領域グループに含まれる他の記憶領域グループ内の少なくともひとつの記憶領域へ移行する。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施例１の概要を示す。
【図２】ストレージシステム１０３の構成を示す。
【図３】ストレージシステム１０３における各種記憶領域の関係を示す。
【図４】ＣＭＰＫ１１９が記憶する情報及びコンピュータプログラムを示す。
【図５】ティア定義テーブル４０１の構成を示す。
【図６】ティア管理テーブル４０２の構成を示す。
【図７】プール管理テーブル４０３の構成を示す。
【図８】ＶＶＯＬ管理テーブル４０４の構成を示す。
【図９】ＰＶＯＬ管理テーブル４０５の構成を示す。
【図１０】アロケーションテーブル４０７の構成を示す。
【図１１】実ページ管理テーブル４０８の構成を示す。
【図１２】モニタテーブル４０９の構成を示す。
【図１３】度数分布テーブル４１０の構成を示す。
【図１４】移行ページテーブル４１１の構成を示す。
【図１５】移行定義テーブル４１２の構成を示す。
【図１６】プール作成処理のフローチャートを示す。
【図１７】プール定義ＧＵＩ１７００を示す。
【図１８】ＶＶＯＬ作成処理のフローを示す。
【図１９】ＶＶＯＬ作成ＧＵＩ１９００を示す。
【図２０】本発明の実施例５に係るＶＶＯＬ管理テーブル４４０４を示す。
【図２１】データ要素の集約処理の概要を示す。
【図２２】情報表示処理のフローを示す。
【図２３】度数分布ＧＵＩ２３００を示す。
【図２４】ライト処理（キャッシュメモリへのライト）のフローを示す。
【図２５】デステージ処理のフローを示す。
【図２６】リード処理のフローを示す。
【図２７】Ｉ／Ｏ頻度のモニタと再配置との関係の概要を示す。
【図２８】再配置処理のフローを示す。
【図２９】ティアレンジ決定処理の概要を示す。
【図３０】ティアレンジ決定処理のフローを示す。
【図３１】図３０のＳ４４０２のティア境界値算出処理のフローを示す。
【図３２】本発明の実施例５に係るプール管理テーブル４４０３を示す。
【図３３】本発明の実施例５に係る比較方法／比較対象の設定処理のフローを示す。
【図３４】図２８のＳ２８０８での移行ページテーブル作成処理のフローを示す。
【図３５】ページ単位の移行処理の概要を示す。
【図３６】ページ単位の移行処理のフローを示す。
【図３７】ティア閾値の変更処理のフローを示す。
【図３８】閾値オーバー対処処理のフローを示す。
【発明を実施するための形態】
【００１１】
以下、本発明の後述する複数の実施例に基づく観点を述べる。
【００１２】
＜観点１＞
複数の記憶デバイスから提供される複数の記憶領域を記憶領域の属性に従って分類された複数の記憶領域グループを管理し、
論理ボリューム内の複数のアドレスに含まれる少なくとも１つのアドレスへのライト要求に応じて前記複数の記憶領域に含まれる少なくとも１つの記憶領域が割り当てられる前記論理ボリュームの複数を提供し、
前記論理ボリューム内の前記少なくとも１つのアドレスのアクセス状況に応じて、前記ライト要求によって前記少なくとも１つのアドレスにライトされているデータを、前記複数の記憶領域グループの１つに含まれる前記少なくとも１つの記憶領域から前記複数の記憶領域グループに含まれる他の記憶領域グループ内の少なくともひとつの記憶領域へ移行する、ことを特徴とするストレージシステムの制御方法。
【００１３】
＜観点２＞
観点１に従う方法であって、
前記複数の記憶領域グループに含まれる第一の記憶領域グループと第二の記憶領域グループとは、それぞれのグループに相応しい前記アクセス状況の程度をループ毎に属性として有しており、前記第一と前記第二の記憶領域グループとの前記アクセス状況の程度はグループ毎に異なっているものの一部重複しており、
前記移行処理においては、前記複数の記憶領域グループの１つに含まれる前記少なくとも１つの記憶領域が、前記第一又は前記第二の記憶領域グループに含まれており且つ前記少なくとも１つのアドレスの前記アクセス状況が前記アクセス状況の程度のうち前記一部重複している範囲内である場合、前記データの移行は実施されない、ことを特徴とするストレージシステムの制御方法。
【００１４】
＜観点３＞
一以上のホストに接続されるストレージシステムが、複数種類の物理記憶デバイス群と、記憶制御装置とを備える。前記記憶制御装置が、記憶資源と、前記複数種類の物理記憶デバイス群、前記記憶資源及び前記ホストに接続されるコントローラとを有する。物理記憶デバイス群は、一以上の物理記憶デバイスで構成されている。前記複数種類の物理記憶デバイス群が、複数種類の実ページ群の基になっている。実ページ群の種類は、その実ページ群の基になっている物理記憶デバイス群の属性に基づいている。実ページ群が、複数の実ページを有する。前記コントローラが、一以上の仮想ボリュームを前記一以上のホストに提供する。前記仮想ボリュームは、複数の仮想ページで構成される仮想的な論理ボリュームである。前記仮想ページは、仮想的な記憶領域である。前記実ページは、実体的な記憶領域である。前記記憶資源が、どの仮想ページにどの実ページが割り当てられているかを表す情報である割当て情報と、仮想ページ毎のＩ／Ｏ（Input/Output）頻度を表す情報であるモニタ情報と、実ページ群の種類毎に設定されたＩ／Ｏ頻度レンジを表す情報を含んだ情報である実ページ群管理情報とを記憶する（テーブル形式又はキュー形式など、情報の形式は何でもよい）。前記コントローラが、前記ホストからライトコマンドを受信し、前記ライトコマンドからライト先の仮想ページを特定し、特定した仮想ページにフリーの実ページを割り当てるよう前記割当て情報を更新し、割り当てた実ページにライト対象のデータを格納する。前記コントローラが、仮想ページ又はその仮想ページに割り当てられる実ページに対するＩ／Ｏに応じて、前記モニタ情報における、その仮想ページのＩ／Ｏ頻度を更新する。前記実ページは、実体的な記憶領域であり、実ページに格納されるデータはその実ページの基になっている物理記憶デバイスに記憶される。前記コントローラが、以下の（Ａ）乃至（Ｃ）の処理を含んだ処理である移行処理：
（Ａ）前記モニタ情報から特定されたＩ／Ｏ頻度が所定の条件に適合していない仮想ボリューム又は仮想ページを特定する；
（Ｂ）特定された仮想ボリューム又は仮想ページに割り当てられている、第１種の実ページ群内の第１の実ページ、に格納されているデータを、第２種の実ページ群内の第２の実ページに移行する；
（Ｃ）前記第１の実ページの割当て先の仮想ページである第１の仮想ページに前記第１の実ページに代えて前記第２の実ページを割り当てるよう前記割当て情報を更新する、
を行う。前記所定の条件とは、前記第１種の実ページ群のＩ／Ｏ頻度レンジに収まることである。前記第２種の実ページ群は、前記（Ａ）で特定された仮想ボリューム又は仮想ページのＩ／Ｏ頻度にＩ／Ｏ頻度レンジが収まっている実ページ群である。前記コントローラは、Ｉ／Ｏ頻度レンジの決定処理を行い、その決定処理において、前記モニタ情報を基に、各種の実ページ群のＩ／Ｏ頻度レンジを決定する。コントローラは、例えば、少なくとも一つのプロセッサを有してよい。記憶資源は、例えば、メモリであって良い。ホストは、計算機であっても良いし、別のストレージシステム又は別の記憶制御装置であっても良い。
【００１５】
これにより、仮想ボリューム内のデータを、仮想ページのＩ／Ｏ頻度に応じて、ページ単位で再配置することができる。その際、データを、そのデータを格納する実ページが割り当てられている仮想ページのＩ／Ｏ頻度が収まるＩ／Ｏ頻度レンジに対応した種類の実ページ群にすることができる。
【００１６】
＜観点４＞
観点３に従うストレージシステムにおいて、前記コントローラが、前記決定処理において、以下の（ａ）及び（ｂ）の処理を行う、
（ａ）前記モニタ情報を用いて、Ｉ／Ｏ頻度と仮想ページ数との関係を表す情報である関係情報を作成する、
（ｂ）前記関係情報を基に、各種実ページ群のＩ／Ｏ頻度レンジを決定する。
【００１７】
＜観点５＞
観点４に従うストレージシステムにおいて、前記コントローラが、前記（ｂ）の処理において、以下の（ｂ１）乃至（ｂ３）の処理：
（ｂ１）前記関係情報を用いて、前記複数種類の実ページ群から実ページが割り当てられている一以上の仮想ボリューム内の全ての仮想ページのＩ／Ｏ頻度の合計であるＩ／Ｏ頻度合計を算出する；
（ｂ２）各種実ページ群の性能値の比と、前記Ｉ／Ｏ頻度合計とを基に、実ページ群の境界のＩ／Ｏ頻度である境界値を実ページ群の境界毎に算出する；
（ｂ３）各種実ページ群のＩ／Ｏ頻度と実ページ群の境界毎の境界値とを基に、各種実ページ群のＩ／Ｏ頻度レンジを決定する、
を行う。実ページ群の前記性能値は、その実ページ群の基になっている物理記憶デバイス群の属性に基づいて決定された、性能に関する値である。前記実ページ群の境界とは、実ページ群とその上位及び／又は下位の実ページ群との境である。各種実ページ群のＩ／Ｏ頻度レンジの最大値及び／又は最小値は、その実ページ群とその上位及び／又は下位の実ページ群との境の境界値に基づいて決定された値である。
【００１８】
＜観点６＞
観点３乃至５のうちのいずれかの観点に従うストレージシステムにおいて、前記Ｉ／Ｏ頻度レンジの最大値は、そのＩ／Ｏ頻度レンジに対応した大きい方の境界値より大きい、及び／又は、そのＩ／Ｏ頻度レンジの最小値は、そのＩ／Ｏ頻度レンジに対応した小さい方の境界値より小さい。
【００１９】
＜観点７＞
観点３又は４に従うストレージシステムにおいて、実ページ群の前記性能値は、その実ページ群における、前記移行処理での移行先となり得る実ページの数と、その実ページ群内の一つの実ページあたりの性能値との掛け算により算出された値である。実ページ群内の一つの実ページあたりの性能値は、その実ページ群の基になっている物理記憶デバイス群の属性に基づいて決定された、性能に関する値である。
【００２０】
＜観点８＞
観点３乃至７のうちのいずれかの観点に従うストレージシステムにおいて、前記コントローラが、前記決定処理において、以下の処理：
（ａ）前記モニタ情報を用いて、前記複数種類の実ページ群から実ページが割り当てられている一以上の仮想ボリューム内の全ての仮想ページのＩ／Ｏ頻度の合計であるＩ／Ｏ頻度合計を算出する；
（ｂ）各種実ページ群の性能値の比と、前記Ｉ／Ｏ頻度合計とを基に、実ページ群の境界のＩ／Ｏ頻度である境界値を実ページ群の境界毎に算出し；
（ｃ）各種実ページ群のＩ／Ｏ頻度と実ページ群の境界毎の境界値とを基に、各種実ページ群のＩ／Ｏ頻度レンジを決定し、
を行う。実ページ群の前記性能値は、その実ページ群の基になっている物理記憶デバイス群の属性に基づいて決定された、性能に関する値である。前記実ページ群の境界とは、実ページ群とその上位及び／又は下位の実ページ群との境である。各種実ページ群のＩ／Ｏ頻度レンジの最大値及び／又は最小値は、その実ページ群とその上位及び／又は下位の実ページ群との境の境界値に基づいて決定された値である。
【００２１】
＜観点９＞
観点３乃至８のうちのいずれかの観点に従うストレージシステムにおいて、前記コントローラが、前記決定処理において、以下の（ｄ）及び（ｅ）の処理：
（ｄ）実ページ群のＩ／Ｏ頻度レンジに収まるＩ／Ｏ頻度となっている全ての仮想ページに割り当てられている実ページ内のデータ要素がその実ページ群に移行されたと仮定して、その実ページ群の使用割合がその実ページ群の割合閾値を超えるか否かを判断する；
（ｅ）前記（ｄ）での判断の結果が否定的の場合に、決定されたＩ／Ｏ頻度レンジを前記実ページ群管理情報に含める、
を行う。実ページ群の前記使用割合とは、その実ページ群を構成する実ページの数に対する、仮想ページに割り当てられている実ページの数の割合である。前記実ページ群の割合閾値とは、前記使用割合の閾値である。
【００２２】
これにより、Ｉ／Ｏ頻度レンジの適否を判断することができる。
【００２３】
＜観点１０＞
観点９に従うストレージシステムにおいて、前記コントローラが、前記決定処理において、更に、以下の（ｆ）の処理：
（ｆ）前記（ｄ）での判断の結果が肯定的の場合に、実ページ群の使用割合がその実ページ群の割合閾値を超えないような大きさにＩ／Ｏ頻度レンジを修正する、
を行う。
【００２４】
＜観点１１＞
観点１０に従うストレージシステムにおいて、前記コントローラが、前記決定処理において、更に、以下の（ｇ）の処理：
（ｇ）修正後のＩ／Ｏ頻度レンジを前記実ページ群管理情報に含める、
を行う。
【００２５】
＜観点１２＞
観点３乃至１１のうちのいずれかの観点に従うストレージシステムにおいて、前記モニタ情報から特定された、仮想ボリューム又は仮想ページのＩ／Ｏ頻度とは、その仮想ボリューム又は仮想ページの、前記モニタ情報に含まれているＩ／Ｏ頻度である。
【００２６】
＜観点１３＞
観点３乃至１２のうちのいずれかの観点に従うストレージシステムにおいて、前記モニタ情報から特定された、仮想ボリューム又は仮想ページのＩ／Ｏ頻度とは、前記モニタ情報における、その仮想ボリュームとは別の仮想ボリュームのＩ／Ｏ頻度、又はその仮想ページとは別の仮想ページのＩ／Ｏ頻度、との相対的な値である。
【００２７】
＜観点１４＞
観点３乃至１２のうちのいずれかの観点に従うストレージシステムにおいて、前記コントローラは、前記（Ａ）でのＩ／Ｏ頻度を絶対値とするか相対値とするかの指定を受ける。絶対値とすることの指定を受けた場合、前記モニタ情報から特定された、仮想ボリューム又は仮想ページのＩ／Ｏ頻度とは、その仮想ボリューム又は仮想ページの、前記モニタ情報に含まれているＩ／Ｏ頻度である。相対値とすることの指定を受けた場合、前記モニタ情報から特定された、仮想ボリューム又は仮想ページのＩ／Ｏ頻度とは、前記モニタ情報における、その仮想ボリュームとは別の仮想ボリュームのＩ／Ｏ頻度、又はその仮想ページとは別の仮想ページのＩ／Ｏ頻度、との相対的な値である。
【００２８】
＜観点１５＞
観点３乃至１４のうちのいずれかの観点に従うストレージシステムにおいて、前記（Ａ）でのＩ／Ｏ頻度は、或る時間におけるＩ／Ｏ数の平均である。
【００２９】
＜観点１６＞
観点３乃至１４のうちのいずれかの観点に従うストレージシステムにおいて、前記（Ａ）でのＩ／Ｏ頻度は、或る時間帯の複数の時間にそれぞれ対応した複数のＩ／Ｏ数のうちの最大のＩ／Ｏ数である。
【００３０】
＜観点１７＞
観点３乃至１４のうちのいずれかの観点に従うストレージシステムにおいて、前記コントローラは、前記（Ａ）でのＩ／Ｏ頻度を平均Ｉ／Ｏ数とするか最大Ｉ／Ｏ数とするかの指定を受ける。平均Ｉ／Ｏ数とすることの指定を受けた場合、前記（Ａ）でのＩ／Ｏ頻度は、或る時間におけるＩ／Ｏ数の平均である。最大Ｉ／Ｏ数とすることの指定を受けた場合、前記（Ａ）でのＩ／Ｏ頻度は、或る時間帯の複数の時間にそれぞれ対応した複数のＩ／Ｏ数のうちの最大のＩ／Ｏ数である。
【００３１】
＜観点１８＞
観点３乃至１７のうちのいずれかの観点に従うストレージシステムにおいて、前記コントローラは、Ｉ／Ｏコマンドを前記ホストから受信し、そのＩ／ＯコマンドからＩ／Ｏ先の仮想ページを特定する。前記コントローラは、前記Ｉ／Ｏ先の仮想ページに割り当てられる実ページに対してＩ／Ｏを行う場合、前記モニタ情報における、前記Ｉ／Ｏ先の仮想ページに対応したＩ／Ｏ頻度を更新し、一方、前記Ｉ／Ｏ先の仮想ページに割り当てられる実ページに対してＩ／Ｏを行わない場合、前記モニタ情報における、前記Ｉ／Ｏ先の仮想ページに対応したＩ／Ｏ頻度を更新しない。
【００３２】
これにより、実ページに対してＩ／Ｏが行われた場合にだけ、その実ページが割り当てられている仮想ページのＩ／Ｏ頻度を更新することができる。
【００３３】
＜観点１９＞
観点１８に従うストレージシステムにおいて、前記記憶資源は、前記モニタ情報として、状態がアクティブのモニタ情報と、状態がスタンバイのモニタ情報とを記憶する。前記コントローラは、前記アクティブのモニタ情報におけるＩ／Ｏ頻度を更新する。前記コントローラは、前記ページ単位移行処理において、前記アクティブのモニタ情報を基に、前記第１の仮想ページを特定し、且つ、前記スタンバイのモニタ情報の状態をスタンバイからアクティブに変更し、その後、仮想ページが特定されるＩ／Ｏコマンドに従って実ページに対してＩ／Ｏを行う場合、状態がアクティブに変更されたモニタ情報における、その特定された仮想ページのＩ／Ｏ頻度を更新する。
【００３４】
これにより、前記移行処理が行われるときでも、Ｉ／Ｏ頻度の監視（更新）を継続することができる。
【００３５】
＜観点２０＞
観点４に従うストレージシステムにおいて、前記コントローラは、前記作成した関係情報が表示されるよう前記関係情報を出力する。前記コントローラは、移行開始の指示を受けたときに、前記移行処理を開始する。
【００３６】
＜観点２１＞
観点３乃至２０のうちのいずれかの観点に従うストレージシステムにおいて、前記コントローラは、前記第１の実データ群の使用割合が所定の割合閾値を超えた場合に、前記移行処理を開始する。
【００３７】
このため、前記第１の実データ群の使用割合が所定の割合閾値を超えた場合には、前記移行処理により、第１の実データ群にフリーの実ページが増えることが期待できる。
【００３８】
＜観点２２＞
観点３乃至２１のうちのいずれかの観点に従うストレージシステムにおいて、前記第１種の実データ群が、最上位の実データ群である。前記コントローラは、前記ライトコマンドから特定されたライト先の仮想ページには、必ず、前記第１種の実データ群から実ページを割り当てる。
【００３９】
＜観点２３＞
観点３乃至２２のうちのいずれかの観点に従うストレージシステムにおいて、前記コントローラは、前記仮想ボリュームに割り当てられている全ての実ページのうちの所定割合以上の実ページが或る種の実ページ群に存在する場合、前記仮想ボリュームに割り当てられている全ての実ページのうち、前記或る種の実ページ群以外の種類の実ページ群内の実ページ内のデータを、前記或る種の実ページ群内の実ページに移行する。
【００４０】
これにより、仮想ボリュームのデータの配置状況に応じて、その仮想ボリュームにとって適切と考えられる種類の実ページ群に、その仮想ボリューム内のデータを集約することができる。
【００４１】
＜観点２４＞
観点２３に従うストレージシステムにおいて、前記或る種の実ページ群内の実ページに移行した後に前記仮想ページに割り当てられる実ページは、常に、前記或る種の実ページ群内の実ページである。
【００４２】
これにより、移行処理によってデータが集約された後は、前記第２の仮想ボリュームには、前記或る種の実ページ群から実ページが割り当てられる。
【００４３】
＜観点２５＞
観点３乃至２４のうちのいずれかの観点に従うストレージシステムにおいて、前記コントローラは、前記第１の仮想ページが特定されるライトコマンドを前記ページ単位移行処理が開始された後に前記ホストから受信し、且つ、前記第１の実ページから前記第２の実ページへのデータの移行が開始されていない場合、その移行をキャンセルし、前記ライトコマンドに従うデータを前記第２種の実ページ群内の実ページに書き込み、且つ、前記第１の仮想ページに前記第１の実ページに代えてその書込み先の実ページを割り当てるよう前記割当て情報を更新する。
【００４４】
移行前に移行先の実ページ群にデータが書き込まれるので、そのデータのライト先の仮想ページについては、移行を行わなくて済む。
【００４５】
＜観点２６＞
観点３乃至２５のうちのいずれかの観点に従うストレージシステムにおいて、前記コントローラは、前記第１の仮想ページが特定されるライトコマンドを前記ページ単位移行処理が開始された後に前記ホストから受信し、且つ、前記第１の実ページから前記第２の実ページへのデータの移行が開始されていない場合、前記ライトコマンドに従うデータを前記第１の実ページに書き込み、その後、前記（Ａ）及び（Ｂ）を行う。
【００４６】
＜観点２７＞
観点３乃至２６のうちのいずれかの観点に従うストレージシステムにおいて、前記コントローラは、前記第１の仮想ページが特定されるライトコマンドを前記ページ単位移行処理が開始された後に前記ホストから受信し、且つ、前記第１の実ページから前記第２の実ページへデータを移行中の場合、その移行をキャンセルし、前記ライトコマンドに従うデータを前記第２種の実ページ群内の実ページに書き込み、且つ、前記第１の仮想ページに前記第１の実ページに代えてその書込み先の実ページを割り当てるよう前記割当て情報を更新する。
【００４７】
＜観点２８＞
観点３乃至２６のうちのいずれかの観点に従うストレージシステムにおいて、前記コントローラは、前記第１の仮想ページが特定されるライトコマンドを前記ページ単位移行処理が開始された後に前記ホストから受信し、且つ、前記第１の実ページから前記第２の実ページへデータを移行中の場合、前記ライトコマンドに従うデータを前記第１の実ページに書き込み、その後、前記第１の実ページから前記第２種の実ページ群内の実ページへのデータの移行を再開する。
【００４８】
＜観点２９＞
観点３乃至２６のうちのいずれかの観点に従うストレージシステムにおいて、前記コントローラは、前記第１の仮想ページが特定されるライトコマンドを前記ページ単位移行処理が開始された後に前記ホストから受信し、且つ、前記第１の実ページから前記第２の実ページへデータを移行中の場合、その移行が済んだ後に、前記割当て情報に従って、前記ライトコマンドに従うデータを前記第２の実ページに書き込む。
【００４９】
＜観点３０＞
観点３乃至２６のうちのいずれかの観点に従うストレージシステムにおいて、前記コントローラは、前記第１の仮想ページが特定されるライトコマンドを前記ページ単位移行処理が開始された後に前記ホストから受信し、且つ、前記第１の実ページから前記第２の実ページへデータを移行中の場合、前記第１の実ページと前記第２の実ページの両方に、前記ライトコマンドに従うデータを書き込む。
【００５０】
＜観点３１＞
観点３乃至３０のうちのいずれかの観点に従うストレージシステムにおいて、前記コントローラは、前記第１の仮想ページが特定されるライトコマンドを前記ページ単位移行処理が開始された後に前記ホストから受信し、且つ、前記（Ａ）及び（Ｂ）が済んでいる場合、前記割当て情報に従って、前記第２の実ページに、前記ライトコマンドに従うデータを書き込む。
【００５１】
＜観点３２＞
観点３乃至３１のうちのいずれかの観点に従うストレージシステムにおいて、前記第１の仮想ページは、Ｉ／Ｏが行われた最新の時刻である最終Ｉ／Ｏ時刻が所定の条件を満たす仮想ページである。
【００５２】
＜観点３３＞
観点３２に従うストレージシステムにおいて、前記所定の条件とは、最終Ｉ／Ｏ時刻が現在時刻から所定時間以上に過去であることである。前記第２種の実ページ群は、前記第１種の実ページ群よりも下位の実ページ群である。
【００５３】
＜観点３４＞
観点３乃至３３のうちのいずれかの観点に従うストレージシステムにおいて、前記第１の仮想ページは、シーケンシャルアクセスに従うＩ／Ｏが発生した仮想ページである。前記第２種の実ページ群は、前記第１種の実ページ群よりも下位の実ページ群である。
【００５４】
＜観点３５＞
観点３乃至３４のうちのいずれかの観点に従うストレージシステムにおいて、前記コントローラは、前記モニタ情報の更新を所定の時間帯においてのみ行う。前記コントローラは、所定の時間帯を過ぎる都度に、前記モニタ情報を保存する。前記第１の仮想ページは、指定された時間帯に対応したモニタ情報から特定されたＩ／Ｏ頻度が所定の条件に適合していない仮想ページである。
【００５５】
＜観点３６＞
ホストに接続されるストレージシステムの記憶制御装置が、記憶資源と、前記記憶資源及び前記ホストに接続されるコントローラとを備える。前記コントローラが、一以上の仮想ボリュームを前記一以上のホストに提供する。前記仮想ボリュームは、複数の仮想ページで構成される仮想的な論理ボリュームである。前記仮想ページは、仮想的な記憶領域である。前記実ページは、実体的な記憶領域である。前記記憶資源が、どの仮想ページにどの実ページが割り当てられているかを表す情報である割当て情報と、仮想ページ毎のＩ／Ｏ（Input/Output）頻度を表す情報であるモニタ情報と、実ページ群の種類毎に設定されたＩ／Ｏ頻度レンジを表す情報を含んだ情報である実ページ群管理情報とを記憶する。前記コントローラが、前記ホストからライトコマンドを受信し、前記ライトコマンドからライト先の仮想ページを特定し、特定した仮想ページに複数種類の実ページ群のいずれかからフリーの実ページを割り当てるよう前記割当て情報を更新し、割り当てた実ページにライト対象のデータを格納する。前記コントローラが、仮想ページ又はその仮想ページに割り当てられる実ページに対するＩ／Ｏに応じて、前記モニタ情報における、その仮想ページのＩ／Ｏ頻度を更新する。前記実ページは、実体的な記憶領域である。実ページ群が、複数の実ページを有する。前記コントローラが、以下の（Ａ）乃至（Ｃ）の処理を含んだ処理である移行処理：
（Ａ）前記モニタ情報から特定されたＩ／Ｏ頻度が所定の条件に適合していない仮想ボリューム又は仮想ページを特定する；
（Ｂ）特定された仮想ボリューム又は仮想ページに割り当てられている、第１種の実ページ群内の第１の実ページ、に格納されているデータを、第２種の実ページ群内の第２の実ページに移行する；
（Ｃ）前記第１の実ページの割当て先の仮想ページである第１の仮想ページに前記第１の実ページに代えて前記第２の実ページを割り当てるよう前記割当て情報を更新する、
を行う。前記所定の条件とは、前記第１種の実ページ群のＩ／Ｏ頻度レンジに収まることである。前記第２種の実ページ群は、前記（Ａ）で特定された仮想ボリューム又は仮想ページのＩ／Ｏ頻度にＩ／Ｏ頻度レンジが収まっている実ページ群である。前記コントローラは、Ｉ／Ｏ頻度レンジの決定処理を行い、その決定処理において、前記モニタ情報を基に、各種の実ページ群のＩ／Ｏ頻度レンジを決定する。
【００５６】
前述した観点１及び２は、ストレージシステムの制御方法を例に採った観点であり、観点３乃至３５は、ストレージシステムを例に採った観点であり、観点３６は、記憶制御装置を例に採った観点であるが、それらのうちのいずれの観点も、ストレージシステム、記憶制御装置、記憶制御方法、ストレージシステム又は記憶制御装置の制御方法、ストレージシステム又は記憶制御装置、コンピュータプログラム（例えば、（例えば、記憶制御のためのコンピュータプログラム、或いは、ストレージシステム又は記憶制御装置で実行されるコンピュータプログラム）のうちの少なくとも一つの観点になることができる。
【００５７】
以下、図面を参照して、本発明の幾つかの実施例に係るストレージシステムを説明する。なお、以下の説明において、対象が、参照符号に代えて名称とＩＤの組み合わせで表されることがある。例えば、論理ボリュームが参照符号５００で表される場合には、「論理ボリューム５００」と表記され、ＩＤが００の論理ボリュームが表される場合には、「論理ボリューム＃００」と表記される。また、以下、一つの実ページに格納されるデータを、「データ要素」と呼ぶ。また、仮想ページに割り当てられた実ページに格納されているデータ要素を、「仮想ページ内のデータ要素」又はそれに類似した表現で表すことがある。
【実施例１】
【００５８】
図１は、本発明の実施例１の概要を示す。【００５９】
ストレージシステム１０３にホスト装置（以下、ホスト）１０１が接続されている。ホスト１０１は、一つであっても複数であってもよい。ストレージシステム１０３は、仮想ボリューム（以下、ＶＶＯＬ（Virtual VOLume））２０３をホスト１０１に提供し、複数種類のティア３０３を有する。【００６０】
ＶＶＯＬ２０３は、Thin Provisioningに従う仮想的な論理ボリューム、すなわち、物理的な記憶デバイス（以下、ＰＤＥＶ）を基としない論理ボリュームである。ＶＶＯＬ２０３は、複数の仮想ページ２０７で構成されている。仮想ページ２０７は、仮想的な記憶領域である。ＶＶＯＬ２０３として、一つのＶＶＯＬ＃００があるとする。以下、ＶＶＯＬ＃ａ内の仮想ページ＃ｂを、「仮想ページ＃（ａ−ｂ）」と表記することにする。Thin ProvisioningのＶＶＯＬ２０３は、仮想的な容量を有するものとしてホスト１０１へ提供されるものであり、ホスト１０１から仮想ページのあるアドレスへのライト要求に応じて実ページが割り当てられるものである。したがって、仮想的な容量を満たすように実ページが割り当てられてしまった状態を除いては、あるＶＶＯＬ２０３へ割り当てられた全ての実ページのトータル容量は、仮想的な容量よりも小さいものとなる。１つのＶＶＯＬ２０３は、１つ以上のホスト１０１へ提供されるものであり、複数のホスト１０１へ提供される場合には、これらの複数のホスト１０１によって共有されることになる。【００６１】
ティア３０３は、複数の実ページ２０９で構成されている。実ページ２０９は、実体的な記憶領域である。ティア３０３として、例えば、二つのティア＃０１及び＃０２があるとする。以下、ティア＃ｃ内の実ページ＃ｄを、「実ページ＃（ｃ−ｄ）」と表記することにする。なお、ティア３０３は、例えば、一以上の実ボリューム（以下、ＲＶＯＬ（Real VOLume））で構成されてよい。ＲＶＯＬは、実体的な論理ボリューム、すなわち、ＰＤＥＶを基とする論理ボリュームである。１つのプール内の複数のティア３０３の各々は、データ移行前の状態には、１つ又は複数のＶＶＯＬ２０３に利用されるものとして設定される。【００６２】
ホスト１０１は、一般的には計算機であるが、計算機に代えて、別のストレージシステムであってもよい。ホスト１０１は、例えば、Ｉ／Ｏ（Input/Output）コマンドをストレージシステム１０３に送信する。Ｉ／Ｏコマンドは、例えば、ライトコマンド又はリードコマンドであり、Ｉ／Ｏ先情報を有する。Ｉ／Ｏ先情報は、Ｉ／Ｏ先を表す情報であり、例えば、ＶＶＯＬ２０３のＩＤ（例えばＬＵＮ（Logical Unit Number））とＩ／Ｏ先のアドレス（例えばＬＢＡ（Logical
Block Address））とを含む。Ｉ／Ｏ先情報から、Ｉ／Ｏ先のＶＶＯＬ２０３及び仮想ページ２０７が特定される。【００６３】
ストレージシステム１０３が、ホスト１０１からライトコマンドを受信し、そのライトコマンドが有するＩ／Ｏ先情報を基に、ライト先として、仮想ページ＃（００−Ｃ）を特定したとする。ストレージシステム１０３は、特定された仮想ページ＃（００−Ｃ）にいずれの実ページ２０９が割り当てられていなければ、その仮想ページ２０７に、いずれかのフリー（未割当て状態）の実ページ＃（０１−Ｄ）を割り当て、割り当てた実ページ（０１−Ｄ）に、ライトコマンドに従うライト対象のデータ要素を書き込む。【００６４】
本実施例では、データ移行が、ページ単位で行われる。具体的には、例えば、図１に示すように、ストレージシステム１０３が、以下の処理：
＊仮想ページ＃（００−Ｃ）に割り当てられている実ページ＃（０１−Ｄ）内のデータ要素を、フリー（未割当て状態）の実ページ＃（０２−Ｅ）に移行する；
＊仮想ページ＃（００−Ｃ）の割当元を、実ページ＃（０１−Ｄ）から実ページ＃（０２−Ｅ）に変更する；
＊実ページ＃（０１−Ｄ）の状態をフリー（未割当て状態）に更新する、
を行う。【００６５】
データ移行を移行するか否かや、移行先のティアをどこにするかが、後述のティアレンジに基づいて決定される。ティアレンジは、自動で決定される。【００６６】
以下、実施例１を詳細に説明する。【００６７】
図２は、ストレージシステム１０３の構成を示す。【００６８】
ストレージシステム１０３は、複数のＰＤＥＶ１０５と、複数のＰＤＥＶ１０５に接続された記憶制御装置と、電源ユニット１００とを有する。【００６９】
複数のＰＤＥＶ１０５には、複数種類のＰＤＥＶ、例えば、ＳＳＤ（Solid State Drive）及びＨＤＤ（Hard Disk Drive）が含まれる。ＨＤＤとしては、ＨＤＤ−ＦＣ（Fibre Channel）、ＨＤＤ−ＳＡＴＡ（Serial ATA）、及びＨＤＤ−ＳＡＳ（Serial Attached SCSI）などがある。【００７０】
記憶制御装置は、コントローラと、コントローラに接続された複数のＣＭＰＫ（キャッシュメモリパッケージ）１１９を有する。コントローラは、複数のＣＨＡ（チャネルアダプタ）１１１と、複数のＤＫＡ（ディスクアダプタ）１１３と、複数のＭＰＰＫ（マイクロプロセッサパッケージ）１２１と、ＳＷ（スイッチ）１１７とを有する。ＣＨＡ１１１、ＤＫＡ１１３、ＭＰＰＫ１２１、ＳＷ１１７及び電源ユニット１００は、冗長化の観点から、それぞれ複数存在するが、それらのうちの少なくとも一つの数は、図示の２に限らず、２より多くても少なくても良い。ＣＭＰＫ１１９の数は、２より多くても良い。【００７１】
電源ユニット１００は、商用電源からの電力に基づく電力を各パッケージ１１９、１１１、１１３、１２１及び１１７に供給する。【００７２】
ＣＨＡ１１１は、ホスト１０１に接続されるインタフェース装置である。ＣＨＡ１１１は、ホスト１０１から、Ｉ／Ｏコマンド（ライトコマンド又はリードコマンド）を受信し、受信したＩ／Ｏコマンドを、複数のＭＰＰＫ１２１のうちのいずれかに転送する。【００７３】
ＣＨＡ１１１は、プロトコルチップ１１２と、ＬＲ（Local Router）１１４とを有する。プロトコルチップ１１２は、ホスト１０１との通信のためのプロトコル変換を行う。ＬＲ１１４は、受信したＩ／Ｏコマンドを、そのＩ／Ｏコマンドが有するＩ／Ｏ先情報から特定されるＩ／Ｏ先に対応したＭＰＰＫ１２１に、転送する。【００７４】
ＤＫＡ１１３は、ＨＤＤ１０５に接続されるインタフェース装置である。ＤＫＡ１１３は、ＨＤＤ１０５からデータを読み出してＣＭＰＫ１１９のＤＲＡＭ（Dynamic Random Access Memory）に転送したり、ＣＭＰＫ１１９からのデータをＨＤＤ１０５に書込んだりする。【００７５】
ＭＰＰＫ１２１は、一又は複数のＭＰ（マイクロプロセッサ）を有する装置である。ＭＰは、ＣＨＡ１１１からのＩ／Ｏコマンドを処理する。【００７６】
ＳＷ１１７に、複数のパッケージ、すなわち、ＣＨＡ１１１、ＤＫＡ１１３、ＣＭＰＫ１１９及びＭＰＰＫ１２１が接続されている。ＳＷ１１７は、ＰＫ（パッケージ）間の接続を制御する。【００７７】
ＣＭＰＫ１１９は、揮発性メモリ及び／又は不揮発性メモリを有する。ＣＭＰＫ１１９には、例えば、仮想ページ２０７（実ページ２０９）に対するＩ／Ｏの対象のデータ要素が一時的に格納される記憶領域（以下、キャッシュメモリ或いはそれを略してＣＭ）がある。また、ＣＭＰＫ１１９には、種々の情報及びコンピュータプログラムが記憶される記憶領域がある。情報及びコンピュータプログラムについては、後に説明する。【００７８】
ストレージシステム１０３に、管理装置１０７が接続されている。管理装置１０７は、例えば、表示装置及び入力装置を有する計算機である。管理者は、管理装置１０７からストレージシステム１０３に対して種々の設定を行うことができる。【００７９】
図３は、ストレージシステム１０３における各種記憶領域の関係を示す。【００８０】
図３に示すように、下位から上位にかけて、一以上のＲＧ３０１、一以上のプール２０１、一以上のＶＶＯＬ２０３が管理される。【００８１】
ＲＧ３０１は、ＲＡＩＤグループの略である。一つのＲＧ３０１は、同一種類のＰＤＥＶで構成されている。ＰＤＥＶ種類は、例えば、性能及び単位コストのうちの少なくとも一方で定義される。性能とは、例えば、データのＩ／Ｏの速度、又は、レスポンスタイム（ホストからコマンドを受けてから応答を返すまでの時間長）である。単位コストは、単位サイズのデータを保存するのに要する価格（例えばいわゆるビットコスト）である。例えば、ＲＧ＃００は、複数のＳＳＤで構成されており、ＲＧ＃０１は、複数のＨＤＤ−ＳＡＳで構成されており、ＲＧ＃０２は、複数のＨＤＤ−ＳＡＴＡで構成されている。なお、一つのＲＧを構成する複数のＰＤＥＶの容量は、例えば同じである。【００８２】
プール２０１は、実ページ２０７の集合である。具体的には、例えば、プール２０１は、一以上のＲＶＯＬ２０５で構成されており、各ＲＶＯＬ２０５が、一以上の実ページ２０７で構成されている。以下、プール２０１を構成するＲＶＯＬを、プールＶＯＬを略して「ＰＶＯＬ」と表す。【００８３】
一つのプール２０１を構成する実ページ２０７が階層化されている。すなわち、一つのプール２０１に、複数のティア３０３が存在する。ティア３０３は、例えば、ＲＶＯＬの種類毎に存在する。例えば、図３によれば、ＲＶＯＬの種類として３種類あるため、ティア３０３の数も３つである。このため、一つのティア３０３には、そのティアに対応した種類のＲＶＯＬ２０５が属することになる。具体的には、例えば、ティア＃００は、ＳＳＤという種類であり、ＳＳＤで構成されたＲＧ３０１に基づくＲＶＯＬが属することになり、ティア＃０１は、ＨＤＤ−ＳＡＳという種類であり、ＨＤＤ−ＳＡＳで構成されたＲＧ３０１に基づくＲＶＯＬが属することになり、ティア＃０３は、ＨＤＤ−ＳＡＴＡという種類であり、ＨＤＤ−ＳＡＴＡで構成されたＲＧ３０１に基づくＲＶＯＬが属することになる。なお、ティア３０３は、必ずしも、厳密にＲＶＯＬ種類毎に設けられる必要も無く、同一のティア３０３に、類似の種類のＲＧに基づく複数のＲＶＯＬ２０５が属しても良い。【００８４】
ＶＶＯＬ２０３には、一以上のプール２０１から、割当元となるプール２０１が関連付けられる。また、ＶＶＯＬ２０３には、選択されたプール２０１から、割当元として使用可能なティア（以下、割当ティア）３０３が関連付けられる。また、ＶＶＯＬ２０３には、一以上の割当ティア３０３のうちの一つがデフォルトのティア３０３として関連付けられる。図３によれば、ＶＶＯＬ＃０１の割当ティアは、ティア＃００及び＃０２である。【００８５】
また、上述の説明によれば、複数のＲＶＯＬは、それらが同一のティアに属していれば、一つのＲＧが基になっている可能性があるが、それらが異なるティアにそれぞれ属していれば、それぞれ別々のＲＧが基になっていることになる。同一のティア３０３に関連する１つ又は複数のＶＶＯＬ２０３の複数の仮想ページに対して複数の実ページを順次割り当てる場合には、このティア３０３に関連するＲＧをまたいで実ページが順次選択されるようすることが望ましい。具体的には、このティア３０３に含まれる複数のＲＶＯＬ２０５から複数の実ページが選択される場合に、ＲＧとの関係を考慮して、順次異なるＲＧから実ページが順次選択される。これにより、アクセス性能を向上させることが可能になる。【００８６】
図４は、ＣＭＰＫ１１９が記憶する情報及びコンピュータプログラムを示す。なお、本実施例では、情報の一例としてテーブルが採用されるが、情報は、テーブル以外の形式（例えばキュー形式）であっても良い。【００８７】
ＣＭＰＫ１１９は、情報として、ティア定義テーブル４０１、ティア管理テーブル４０２、プール管理テーブル４０３、ＶＶＯＬ管理テーブル４０４、ＰＶＯＬ管理テーブル４０５、アロケーションテーブル４０７、実ページ管理テーブル４０８、モニタテーブル４０９、度数分布テーブル４１０、移行ページテーブル４１１及び移行定義テーブル４１２を記憶する。また、ＣＭＰＫ１１９は、コンピュータプログラムとして、ＵＩ（User Interface）を制御するプログラムであるＵＩ制御プログラム４１３、Ｉ／Ｏを制御するプログラムであるＩ／Ｏ制御プログラム４１４、及び、再配置を行うプログラムである再配置プログラム４１５を記憶する。なお、これらのテーブル及びコンピュータプログラムのうちの少なくとも一つがＣＭＰＫ１１９以外の記憶資源に記憶されていても良い。例えば、少なくとも一つのコンピュータプログラム、及び／又は、移行ページテーブル４１１は、ＭＰＰＫ１２１内のメモリに記憶されても良い。【００８８】
以下、各テーブルを説明する。なお、以下の説明では、対象は、ＩＤを用いて特定されるが、ＩＤに代えて又は加えて、名称及び番号のうちの少なくとも一つを用いて特定されても良い。【００８９】
図５は、ティア定義テーブル４０１の構成を示す。【００９０】
ティア定義テーブル４０１は、ティアの定義を表すテーブルである。具体的には、例えば、テーブル４０１は、ＲＶＯＬ種類とティアＩＤとの関係を表す。テーブル４０１によれば、ＲＶＯＬ種類「ＳＳＤ」に対応したティアとして、「００」というＩＤが付与されたティアが用意されることになる。【００９１】
図６は、ティア管理テーブル４０２の構成を示す。【００９２】
ティア管理テーブル４０２は、ティアに関する情報を管理するためのテーブルである。具体的には、例えば、テーブル４０２は、ティア毎に、プールＩＤ、ティアＩＤ、ティアレンジ、ＰＶＯＬ  ＩＤ、ティア閾値、使用割合、実ページＩＤを有する。一つのティア（以下、図６の説明において「対象ティア」と言う）を例に採っていうと、これらの情報要素は、具体的には、下記の通りである。
＊「プールＩＤ」は、対象ティアを有するプールのＩＤである。
＊「ティアＩＤ」は、対象ティアのＩＤである。ティアＩＤから、対象ティアに属するＰＶＯＬの基になっているＰＤＥＶの種類が一義的に特定される。
＊「ティアレンジ」は、対象ティアに存在すべき実ページの負荷（例えばＩ／Ｏ頻度）の範囲である。
＊「ＰＶＯＬ  ＩＤ」は、対象ティアに属するＰＶＯＬのＩＤである。
＊「ティア閾値」は、対象ティアの使用割合の閾値である。
＊「使用割合」は、対象ティアの使用割合、すなわち、対象ティアを構成する実ページの数に対する、割当て済みの実ページの数の割合である。
＊「実ページＩＤ」は、対象ティアに属する全ての実ページのＩＤである。【００９３】
図６のテーブル４０２の例によれば、ティア閾値は、ティア毎に設定されているが、それに代えて、一つのプールについて一つのティア閾値が設定され、その一つのティアが、その一つのプールが有する全てのティアについて共通であっても良い。【００９４】
図７は、プール管理テーブル４０３の構成を示す。【００９５】
プール管理テーブル４０３は、プールに関する情報を管理するためのテーブルである。具体的には、例えば、テーブル４０３は、プール毎に、プールＩＤ、階層化、再配置、自動実行、再配置実行周期、再配置実行時刻、モニタ時間帯及びプールステータスを有する。一つのプール（以下、図７の説明において「対象プール」と言う）を例に採っていうと、これらの情報要素は、具体的には、下記の通りである。
＊「プールＩＤ」は、対象プールのＩＤである。
＊「階層化」は、対象プール内の実ページを階層化するか否かである。“ＯＮ”は、階層化すること（つまり、対象プールに複数のティアが設けられること）を意味し、“ＯＦＦ”は、階層化しないこと（つまり、対象プールにティアが設けられないこと）を意味する。
＊「再配置」は、対象プール内のデータ要素を再配置するか否かである。“ＯＮ”は、再配置を行うことを意味し、“ＯＦＦ”は、再配置を行わないことを意味する。“ＯＮ”の場合、対象プールが割り当てられているＶＶＯＬ又はその仮想ページのＩ／Ｏ頻度がモニタされ、“ＯＦＦ”の場合、対象プールが割り当てられているＶＶＯＬ又はその仮想ページのＩ／Ｏ頻度がモニタされない。Ｉ／Ｏ頻度のモニタに関して大事なことは、Ｉ／Ｏ先のＶＶＯＬ或いは仮想ページに割り当てられた実ページに実際にＩ／Ｏが行われなければ、Ｉ／Ｏ頻度は更新されず、その割り当てられた実ページに対してＩ／Ｏが行われたときに、Ｉ／Ｏ頻度が更新されることである。この点は、後述のライト処理及びリード処理の際にも説明する。
＊「自動実行」は、対象プール内のデータ要素の再配置を自動で開始するか手動で開始するかである。“ＯＮ”は、再配置が自動で開始されることを意味し、“ＯＦＦ”は、再配置が手動で開始されることを意味する。
＊「再配置実行周期」は、対象プール内のデータ要素の再配置を行う周期である。例えば、“１日”は、１日（２４時間）毎に再配置が開始されることを意味する。
＊「再配置実行時刻」は、対象プール内のデータ要素の再配置を開始する時刻である。
＊「モニタ時間帯」は、対象プールが割り当てられているＶＶＯＬに割り当てられた実ページのＩ／Ｏ頻度をモニタする時間帯である。
＊「プールステータス」は、対象プールのステータスである。「プールステータス」の値として、例えば、“モニタリング中”、“再配置中”、“非モニタリング中”がある。“モニタリング中”は、対象プールが割り当てられているＶＶＯＬ又はそのＶＶＯＬ内の仮想ページのＩ／Ｏ頻度がモニタリングされている最中であり、且つ、データ要素の再配置中ではないことを意味する。“再配置中”は、データ要素の再配置（対象プール内での再配置であっても良いし、対象プールから別のプールへのデータ要素の再配置であっても良い）が行われている最中であることを意味する。“非モニタリング中”は、Ｉ／Ｏ頻度のモニタリング中でもないしデータ要素の再配置中でもないことを意味する。【００９６】
図８は、ＶＶＯＬ管理テーブル４０４の構成を示す。【００９７】
ＶＶＯＬ管理テーブル４０４は、ＶＶＯＬに関する情報を管理するためのテーブルである。具体的には、例えば、テーブル４０４は、ＶＶＯＬ毎に、ＶＶＯＬ  ＩＤ、ＰＶＯＬ  ＩＤ、割当ティアＩＤ、デフォルトティアＩＤ、容量、再配置、自動実行、再配置実行周期、再配置実行時刻及びモニタ時間帯を有する。これらの情報要素のうち、再配置、自動実行、再配置実行周期、再配置実行時刻及びモニタ時間帯は、プール管理テーブル４０３における情報要素と同じであるが、このテーブル４０４における情報要素（例えば「再配置」）の値がプール管理テーブル４０３における同じ情報要素（例えば「再配置」）の値と違っていれば、このテーブル４０４における値が優先されて良い。つまり、プール管理テーブル４０３では、一つのプールについて情報要素の値が設定され、その結果、そのプールが割り当てられている全てのＶＶＯＬについての設定にその値を反映させることができるが、ＶＶＯＬ毎に、設定をすることができる。ＶＶＯＬについて特に値が設定されていなければ、そのＶＶＯＬに割り当てられているプールについて設定されている値が、そのＶＶＯＬについての値とされる。一つのＶＶＯＬ（以下、図８の説明において「対象ＶＶＯＬ」と言う）を例に採っていうと、このテーブル４０４における上記の情報要素は、具体的には、下記の通りである。
＊「ＶＶＯＬ  ＩＤ」は、対象ＶＶＯＬのＩＤである。
＊「ＰＶＯＬ  ＩＤ」は、対象ＶＶＯＬに割り当てられているプール（以下、割当プール）のＩＤである。
＊「割当ティアＩＤ」は、割当プールが有する複数のティアのうちの対象ＶＶＯＬに割り当てられるティアのＩＤである。対象ＶＶＯＬ内の仮想ページには、割当ティアから実ページが割り当てられる。
＊「デフォルトティアＩＤ」は、デフォルトティアのＩＤである。デフォルトティアとは、ホスト１０１からのライト先の仮想ページに初めに割り当てられる実ページの提供元となるティアである。
＊「容量」は、対象ＶＶＯＬの容量である。
＊「再配置」は、対象ＶＶＯＬ内のデータ要素を再配置するか否かである。“ＯＮ”は、再配置を行うことを意味し、“ＯＦＦ”は、再配置を行わないことを意味する。“ＯＮ”の場合、対象ＶＶＯＬ又はその仮想ページのＩ／Ｏ頻度がモニタされ、“ＯＦＦ”の場合、対象ＶＶＯＬ又はその仮想ページのＩ／Ｏ頻度がモニタされない。
＊「自動実行」は、対象ＶＶＯＬ内のデータ要素の再配置を自動で開始するか手動で開始するかである。“ＯＮ”は、再配置が自動で開始されることを意味し、“ＯＦＦ”は、再配置が手動で開始されることを意味する。
＊「再配置実行周期」は、対象ＶＶＯＬ内のデータ要素の再配置を行う周期である。
＊「再配置実行時刻」は、対象ＶＶＯＬ内のデータ要素の再配置を開始する時刻である。
＊「モニタ時間帯」は、対象ＶＶＯＬ又は仮想ページのＩ／Ｏ頻度をモニタする時間帯である。【００９８】
図９は、ＰＶＯＬ管理テーブル４０５の構成を示す。【００９９】
ＰＶＯＬ管理テーブル４０５は、ＰＶＯＬに関する情報を管理するためのテーブルである。具体的には、例えば、テーブル４０５は、ＰＶＯＬ毎に、ＲＧ  ＩＤ、ＰＤＥＶ  ＩＤ、種類、ＰＶＯＬ  ＩＤ、及び容量を有する。一つのＰＶＯＬ（以下、図９の説明において「対象ＰＶＯＬ」と言う）を例に採っていうと、これらの情報要素は、具体的には、下記の通りである。
＊「ＲＧ  ＩＤ」は、対象ＰＶＯＬの基になっているＲＧのＩＤである。
＊「ＰＤＥＶ  ＩＤ」は、対象ＰＶＯＬの基になっているＲＧを構成する全てのＰＤＥＶのＩＤである。
＊「種類」は、対象ＰＶＯＬの種類である。これは、対象ＰＶＯＬの基になっているＰＤＥＶの種類と同じである。例えば、ＲＶＯＬ種類が“ＳＳＤ”であれば、対象ＰＶＯＬの種類も“ＳＳＤ”となる。
＊「ＰＶＯＬ  ＩＤ」は、対象ＰＶＯＬのＩＤである。
＊「容量」は、対象ＰＶＯＬの容量である。【０１００】
図１０は、アロケーションテーブル４０７の構成を示す。【０１０１】
アロケーションテーブル４０７は、どの仮想ページにどの実ページが割り当てられているかを表すテーブルである。具体的には、例えば、テーブル４０７は、仮想ページ毎に、ＶＶＯＬ  ＩＤ、仮想ページＩＤ、プールＩＤ、実ページＩＤ及びティアＩＤを有する。一つの仮想ページ（以下、図１０の説明において「対象仮想ページ」と言う）を例に採っていうと、これらの情報要素は、具体的には、下記の通りである。
＊「ＶＶＯＬ  ＩＤ」は、対象仮想ページを有するＶＶＯＬのＩＤである。
＊「仮想ページＩＤ」は、対象仮想ページのＩＤである。
＊「プールＩＤ」は、対象仮想ページを有するＶＶＯＬに割り当てられているプールのＩＤでる。
＊「実ページＩＤ」は、対象仮想ページに割り当てられている実ページのＩＤである。
＊「ティアＩＤ」は、対象仮想ページに割り当てられている実ページを有するティアのＩＤである。【０１０２】
図１１は、実ページ管理テーブル４０８の構成を示す。【０１０３】
実ページ管理テーブル４０８は、各実ページの状態を管理するためのテーブルである。具体的には、例えば、テーブル４０８は、実ページ毎に、プール  ＩＤ、実ページＩＤ及びステータスを有する。一つの実ページ（以下、図１１の説明において「対象実ページ」と言う）を例に採っていうと、これらの情報要素は、具体的には、下記の通りである。
＊「プールＩＤ」は、対象実ページを有するプールのＩＤである。
＊「実ページＩＤ」は、対象実ページのＩＤである。
＊「ステータス」は、対象実ページのステータスである。ステータスの値として、例えば、“使用中”と“フリー”がある。“使用中”は、対象実ページがいずれかの仮想ページに割当て済みであることを意味する。“フリー”は、対象実ページがいずれの仮想ページにも割り当てられておらずそれ故いずれの仮想ページにも割当て可能な状態になっていることを意味する。【０１０４】
図１２は、モニタテーブル４０９の構成を示す。【０１０５】
モニタテーブル４０９は、ＶＶＯＬ毎に存在する。テーブル４０９は、仮想ページのＩ／Ｏ頻度を表すテーブルである。一つのＶＶＯＬ（以下、図１２の説明において「対象ＶＶＯＬ」と言う）を例に採って、テーブル４０９を説明する。【０１０６】
テーブル４０９は、具体的には、例えば、仮想ページ毎に、ＶＶＯＬ  ＩＤ、仮想ページＩＤ、合計Ｉ／Ｏ数、平均Ｉ／Ｏ数、最大Ｉ／Ｏ数及び最終Ｉ／Ｏ時刻を有する。一つの仮想ページ（以下、図１２の説明において「対象仮想ページ」と言う）を例に採っていうと、これらの情報要素は、具体的には、下記の通りである。
＊「ＶＶＯＬ  ＩＤ」は、対象仮想ページを有するＶＶＯＬ（つまり対象ＶＶＯＬ）のＩＤである。
＊「仮想ページＩＤ」は、対象仮想ページのＩＤである。
＊「合計Ｉ／Ｏ数」は、モニタ時間帯に対象仮想ページに行われたＩ／Ｏの数である。
＊「平均Ｉ／Ｏ数」は、「合計Ｉ／Ｏ数」の値を所定時間で割ることにより算出された値である。
＊「最大Ｉ／Ｏ数」は、モニタ時間帯を構成する複数の時間帯における複数のＩ／Ｏ数（対象仮想ページについてのＩ／Ｏ数）のうちの最も大きいＩ／Ｏ数である。
＊「最終Ｉ／Ｏ時刻」は、対象仮想ページにＩ／Ｏが行われた最新の時刻である。【０１０７】
テーブル４０９も、例えば二つ（二つより多くても良い）存在する。二つのテーブル４０９が、交互に使用される。具体的には、例えば、再配置が実行される場合、その実行時点の直近のモニタ時間帯についてのテーブル４０９を用いて、後述する移行ページテーブル４１１が作成され、且つ、他方のテーブル４０９を用いて、Ｉ／Ｏ頻度のモニタが行われる。以下の説明では、使用されている方のテーブル４０９を、アクティブのテーブル４０９と言い、使用されていない方のテーブル４０９を、スタンバイのテーブル４０９と言うことがある。【０１０８】
図１３は、度数分布テーブル４１０の構成を示す。【０１０９】
度数分布テーブル４１０は、Ｉ／Ｏ数と仮想ページ数との相関を表すテーブルである。このテーブル４１０は、モニタテーブル４０９を基に作成される。Ｉ／Ｏ数としては、前述したテーブル４０９における合計Ｉ／Ｏ数、平均Ｉ／Ｏ数及び最大Ｉ／Ｏ数のうちの少なくとも一つが採用されて良い。図１３は、平均Ｉ／Ｏ数が採用された例である。すなわち、図１３に示すテーブル４１０は、平均Ｉ／Ｏ数別に仮想ページの数を表す。図１３によれば、平均Ｉ／Ｏ数が“０”の仮想ページの数は“５６１”であることがわかる。このテーブル４１０（又はこのテーブル４１０を基に作成されるグラフ）は、管理装置１０７に表示される。管理者は、テーブル４０１（又はそれに基づくグラフ）を基に、手動で、データ要素の再配置の開始をストレージシステム１０３に指示することができる。【０１１０】
度数分布テーブル４１０は、モニタテーブル４０９が更新されることに伴って更新されても良いし、度数分布の表示を管理者から命じられたときに、テーブル４０９を基に作成されても良い。【０１１１】
図１４は、移行ページテーブル４１１の構成を示す。【０１１２】
移行ページテーブル４１１は、ページ単位のデータ移行の際に、モニタテーブル４０９を基に作成されるテーブルである。テーブル４１１は、移行元と移行先との関係を表す。具体的には、例えば、テーブル４１１は、移行対象の仮想ページ毎に、仮想ページＩＤ、移行元ティアＩＤ、移行先ティアＩＤ及び移行ステータスを有する。一つの仮想ページ（以下、図１４の説明において「対象仮想ページ」と言う）を例に採っていうと、これらの情報要素は、具体的には、下記の通りである。
＊「仮想ページＩＤ」は、対象仮想ページのＩＤである。
＊「移行元ティアＩＤ」は、対象仮想ページに割り当てられている実ページ（移行元の実ページ）を有するティアのＩＤである。
＊「移行先ティアＩＤ」は、データ要素の移行先となるティアのＩＤである。移行先の実ページは、そのティアにおけるいずれかフリーの実ページである。
＊「移行ステータス」は、対象仮想ページについての移行のステータスである。「移行ステータス」の値として、例えば、“移行済”、“移行中”及び“未移行”がある。“移行済”は、移行元の実ページから移行先のティアにおけるいずれかの実ページにデータ要素を移行済みであることを意味する。“移行中”は、移行元の実ページから移行先のティアにおけるいずれかの実ページにデータ要素を移行中であることを意味する。“未移行”は、移行元の実ページから移行先のティアにおけるいずれかの実ページにデータ要素を移行することが未だ開始されていないことを意味する。【０１１３】
なお、移行ページテーブル４１１は、仮想ページＩＤに代えて又は加えて、移行元に関する他種の情報要素を有してもよい。例えば、仮想ページに割り当てられている実ページのＩＤがテーブル４１１に含まれてもよい。【０１１４】
また、移行ページテーブル４１１は、移行先ティアＩＤに代えて又は加えて、移行先に関する他種の情報要素を有してもよい。例えば、移行先ティアにおけるフリーの実ページがテーブル４０２（図６）及び４０８（図１１）を基に特定され、その特定された実ページのＩＤがテーブル４１１に含まれてもよい。その際、特定された実ページのステータスが、“フリー”から“使用中”（或いは他のステータス（例えば“リザーブ”）に更新されてもよい。【０１１５】
図１５は、移行定義テーブル４１２の構成を示す。【０１１６】
移行定義テーブル４１２は、各ＶＶＯＬについて、移行に関する定義を表す。具体的には、例えば、テーブル４１２は、ＶＶＯＬ毎に、ＶＶＯＬ  ＩＤ、ティア維持、割当ティアＩＤ及び格納閾値を有する。一つのＶＶＯＬ（以下、図１５の説明において「対象ＶＶＯＬ」と言う）を例に採っていうと、これらの情報要素は、具体的には、下記の通りである。
＊「ＶＶＯＬ  ＩＤ」は、対象ＶＶＯＬのＩＤである。
＊「割当ティアＩＤ」は、対象ＶＶＯＬの割当ティアのＩＤである。
＊「格納閾値」は、割当ティアの格納割合の閾値である。この閾値は、割当ティア毎に設定される。「格納割合」とは、一つの割当ティア（以下、この段落の説明において「対象割当ティア」）について言えば、次のとおりである。すなわち、格納割合は、対象ＶＶＯＬ内の全てのデータ要素のうちのどの程度の割合のデータ要素が対象割当ティアに格納されているかである。【０１１７】
図１５のテーブル４１２の例によれば、格納閾値は、ティア毎に設定されているが、それに代えて、一つのプールについて一つの格納閾値が設定され、その一つのティアが、その一つのプールが有する全てのティアについて共通であっても良い。【０１１８】
以下、本実施例で行われる処理を説明する。なお、以下の説明において、コンピュータプログラムが行う処理は、実際には、コンピュータプログラムを実行するＭＰ（マイクロプロセッサ）が行う。ＭＰは、ＭＰＰＫ１２１（図２参照）にある。【０１１９】
＜プールの作成＞。【０１２０】
図１６は、プール作成処理のフローを示す。なお、この＜プールの作成＞の説明において、そのプール作成処理で新たに作成されるプールを「対象プール」と言う。【０１２１】
（Ｓ１６０１）
ＵＩ制御プログラム４１３が、プールの作成指示を、管理者から管理装置１０７を通じて受ける。そして、プログラム４１３は、例えば下記の準備処理を行う。
＊プログラム４１３は、対象プールの新規のレコードを、テーブル４０２（図６）、４０３（図７）、４０８（図１１）に追加する。
＊プログラム４１３は、ＰＶＯＬの指定を管理者から管理装置１０７を通じて受ける。具体的には、例えば、プログラム４１３は、ＲＶＯＬに関する情報（例えば、ＩＤ、種類など）を表示し、ＰＶＯＬとするＲＶＯＬの指定を受ける。【０１２２】
指定されたＲＶＯＬ毎に、Ｓ１６０２〜Ｓ１６０５が行われる。一つのＲＶＯＬ（以下、図１６の説明において「対象ＲＶＯＬ」と言う）を例に採り、Ｓ１６０２〜Ｓ１６０５を説明する。【０１２３】
（Ｓ１６０２）
プログラム４１３は、指定されたＲＶＯＬの種類を特定する。具体的には、例えば、ＣＭＰＫ１１９が、ＲＶＯＬ毎にＩＤ、容量、種類（例えば、ＳＳＤ、ＨＤＤ−ＳＡＳ）などを有するＲＶＯＬ管理テーブルを記憶していて、プログラム４１３は、そのＲＶＯＬ管理テーブルから、指定されたＲＶＯＬの種類を特定する。【０１２４】
（Ｓ１６０３）
プログラム４１３は、特定されたＲＶＯＬ種類に対応したティアが対象プールに既に存在しているか否かを、ティア管理テーブル４０３から判断する。この判断の結果が否定的の場合、Ｓ１６０４が行われ、この判断の結果が肯定的の場合、Ｓ１６０５が行われる。【０１２５】
（Ｓ１６０４）
プログラム４１３は、特定されたＲＶＯＬ種類に対応したティアのＩＤをティア定義テーブル４０１から特定する。そして、プログラム４１３は、対象プールについて、特定されたティアＩＤを、テーブル４０２（図６）に追加する。【０１２６】
（Ｓ１６０５）
プログラム４１３は、特定されたＲＶＯＬ種類に対応したティア（以下、この段落において「対象ティア」と言う）に、対象ＲＶＯＬを追加する。具体的には、例えば、プログラム４１３は、テーブル４０２（図６）に、対象ティアのティアＩＤに対応するＰＶＯＬ  ＩＤとして、対象ＲＶＯＬのＩＤを登録する。【０１２７】
（Ｓ１６０６）
プログラム４１３は、全ての指定されたＲＶＯＬについてＳ１６０２以降が行われたか否かを判断する。指定されたＲＶＯＬに、Ｓ１６０２以降の処理が行われていないＲＶＯＬがあれば、そのＲＶＯＬについて、Ｓ１６０２以降が行われる。【０１２８】
（Ｓ１６０７）
プログラム４１３は、プール定義ＧＵＩ（Graphical User Interface）を表示する。そして、プログラム４１３は、そのＧＵＩを通じて種々の設定を受け付ける。【０１２９】
図１７は、プール定義ＧＵＩ１７００を示す。【０１３０】
ＧＵＩ１７００には、対象プールのＩＤが表示される。なお、プログラム４１３は、所定のツール（例えばプルダウンメニュー）が管理者に操作されたことに応答して、対象プール以外のプール（すなわち既存のプール）のＩＤを表示することもできる。【０１３１】
また、ＧＵＩ１７００は、表示されているＩＤが表すプールについて、テーブル４０３（図７）に設定すべき情報要素「階層化」、「再配置」、「自動実行」、「実行周期」、「実行時刻」、「モニタ時間帯」、「ティア閾値」の値を入力するために管理者が使用する入力ツールを有する。本実施例で言う入力ツールとしては、ラジオボタン、チェックボックス、テキスト入力欄などを任意のツールを採用することができる。なお、ＧＵＩ１７００は、「ティア閾値」について、一つの閾値を、対象プールが有する全てのティアに共通とさせることも、或いは、対象プールが有するティア毎に閾値を設定することもできるようになっている。【０１３２】
なお、前述したように、ＧＵＩ１７００には、既存のプールのＩＤも表示可能であるため、ＧＵＩ１７００を用いて、管理者所望の既存のプールについての設定を変更することもできる。その際、プログラム４１３は、例えば、管理者所望のティア閾値が、そのティア閾値が設定されるティアの使用割合よりも高ければ、不適切なティア閾値として、警告を管理装置１０５に表示し、そのティア閾値をテーブル４０２（図６）に登録しないようにしても良い。【０１３３】
再び図１６を参照する。【０１３４】
（Ｓ１６０８）
プログラム４１３は、テーブルを更新する。具体的には、例えば、プログラム４１３は、下記の処理を行う。
＊プログラム４１３は、図１７のＧＵＩ１７００に入力された、情報要素「階層化」、「再配置」、「自動実行」、「実行周期」、「実行時刻」、「モニタ時間帯」、「ティア閾値」の値を、テーブル４０３（図７）に登録する。
＊プログラム４１３は、対象プールを複数の実ページに区切り、それら複数の実ページのＩＤを、テーブル４０２（図６）、及び、４０８（図１１）に追加する。【０１３５】
実ページの容量は、全てのプールにおいて共通であってよい。そのため、対象プールを構成する実ページの数は、対象プールの容量（対象プールを構成するＰＶＯＬの総容量）に依存してよい。【０１３６】
なお、ＰＶＯＬ毎に、実ページの容量が異なっていても良い。具体的には、例えば、ＲＡＩＤ５（４Ｄ＋１Ｐ）のＲＧに基づくＰＶＯＬを構成する実ページの容量と、ＲＡＩＤ６（４Ｄ＋２Ｐ）のＲＧに基づくＰＶＯＬを構成する実ページの容量は、異なっていても良い。なぜなら、一つの実ページに格納されるパリティの数が違っているためである。【０１３７】
＜ＶＶＯＬの作成＞。【０１３８】
図１８は、ＶＶＯＬ作成処理のフローを示す。なお、この＜ＶＶＯＬの作成＞の説明において、そのＶＶＯＬ作成処理で新たに作成されるＶＶＯＬを「対象ＶＶＯＬ」と言う。【０１３９】
（Ｓ１８０１）
ＵＩ制御プログラム４１３は、ＶＶＯＬ作成ＧＵＩを表示する。そして、プログラム４１３は、そのＧＵＩを通じて種々の設定を受け付ける。【０１４０】
図１９は、ＶＶＯＬ作成ＧＵＩ１９００を示す。【０１４１】
ＧＵＩ１９００には、対象ＶＶＯＬのＩＤが表示される。なお、プログラム４１３は、所定のツール（例えばプルダウンメニュー）が管理者に操作されたことに応答して、対象ＶＶＯＬ以外のＶＶＯＬ（既存のＶＶＯＬ）のＩＤを表示することもできる。【０１４２】
ＧＵＩ１９００は、表示されているＩＤが表すＶＶＯＬについて、テーブル４０４（図８）に設定すべき情報要素「プールＩＤ」、「容量」、「再配置」、「自動実行」、「実行周期」、「実行時刻」、「モニタ時間帯」の値を入力するために管理者が使用する入力ツールを有する。【０１４３】
また、ＧＵＩ１９００は、入力されたプールＩＤに対応するティアＩＤをテーブル４０２（図６）から特定し、特定された全てのティアＩＤを表示する。ＧＵＩ１９００は、表示されているＩＤが表すＶＶＯＬについて、「割当ティア」、「格納閾値」及び「デフォルトティア」の値を入力するために管理者が使用する入力ツールを有する。管理者は、それらの入力ツールを用いて、入力されたプールＩＤが表すプール（ＶＶＯＬに割り当てたプール）が有する複数のティアのうちのどれを割当ティアにするか、割当ティアのうちのどれを「デフォルトティア」にするか、及び、各割当ティアの格納閾値を、入力することができる。【０１４４】
再び図１８を参照する。【０１４５】
（１８０２）
プログラム４１３は、テーブルを更新する。具体的には、例えば、プログラム４１３は、下記の処理を行う。
＊プログラム４１３は、図１９のＧＵＩ１９００に入力された、情報要素「プールＩＤ」、「容量」、「再配置」、「自動実行」、「実行周期」、「実行時刻」、「モニタ時間帯」、「割当ティアＩＤ」及び「デフォルトティアＩＤ」の値を、テーブル４０４（図８）に登録する。
＊プログラム４１３は、対象ＶＶＯＬの容量に基づいて、対象ＶＶＯＬを構成する仮想ページの数を算出する。プログラム４１３は、対象ＶＶＯＬのＩＤと、算出された仮想ページ数分の仮想ページＩＤとを、テーブル４０７（図１０）に登録する。
＊プログラム４１３は、対象ＶＶＯＬについて、「再配置」が“ＯＮ”であれば、テーブル４０９（図１２）を作成する。モニタ時間帯に、Ｉ／Ｏ頻度のモニタが行われるからである。なお、テーブル４０９には、上記算出された仮想ページ数分の仮想ページＩＤが登録される。
＊プログラム４１３は、対象ＶＶＯＬについて、「割当ティアＩＤ」及び「格納閾値」を、テーブル４１２（図１５）に登録する。【０１４６】
＜情報の表示＞。【０１４７】
図２２は、情報表示処理のフローを示す。【０１４８】
ＵＩ制御プログラム４１３は、管理装置１０７から表示命令を受け（Ｓ２２０１）、表示命令で指定されている情報を管理装置１０７に表示する（Ｓ２２０２）。【０１４９】
表示可能な情報の種類として、例えば、テーブル４０１〜４１２のうちの少なくとも一つ（或いはそれを加工することにより得られる情報（例えば、グラフ、サマリーなど））がある。【０１５０】
図２３は、度数分布ＧＵＩ２３００を示す。【０１５１】
度数分布ＧＵＩ２３００は、図２２のＳ２２０２で表示される。具体的には、例えば、図２２のＳ２２０１で、管理装置１０７が、管理者からの要求に従って、管理者所望のＶＶＯＬ  ＩＤを指定した度数分布表示命令を送信する。図２２のＳ２２０２で、プログラム４１３が、その命令に応答して、その命令で指定されているＶＶＯＬ  ＩＤに対応した度数分布をテーブル４１０（図１３）から抽出し、抽出した度数分布を、図２３に示すように管理装置１０７に表示する。なお、度数分布は、表形式で表示されているが、それに代えて又は加えて、グラフ形式など他の形式で表示されても良い。【０１５２】
管理者は、ＧＵＩ２３００に表示されている度数分布を見て、所望のＶＶＯＬ内のデータ要素を移行するか否かを判断する。例えば、管理者は、平均Ｉ／Ｏ数が高い仮想ページ数がたくさん存在すると思った場合には、所望のＶＶＯＬ内のデータ要素の移行をストレージシステム１０３に指示して良い（例えば、ＧＵＩ２３００にある「移行実行」ボタンを押して良い）。【０１５３】
このように、度数分布は、データ移行（ＶＶＯＬ内のデータ要素の移行）を行うか否かを管理者が判断するための判断材料として用いられる。別の言い方をすれば、データ移行が自動で実行されるのであれば、度数分布は計算されなくて良い。【０１５４】
＜ライト処理（キャッシュメモリへのライト）＞。【０１５５】
図２４は、ライト処理（キャッシュメモリへのライト）のフローを示す。【０１５６】
（Ｓ２４０１）
Ｉ／Ｏ制御プログラム４１４が、ライトコマンドをホスト１０１から受信する。【０１５７】
（Ｓ２４０２）
プログラム４１４が、受信したライトコマンドが有するＩ／Ｏ先情報から、ライト先のＶＶＯＬ及び仮想ページを特定する。ここでは、複数の仮想ページが特定されることが多い。なぜなら、ライト対象のデータのサイズは、通常、一つの仮想ページの容量よりも大きいからである。特定された仮想ページ毎に、Ｓ２４０３以降が行われる。以下、一つの仮想ページを例に採り（図２４の説明において、「対象仮想ページ」と言う）、Ｓ２４０３以降を説明する。また、図２４の説明において、対象仮想ページに対するライト対象のデータ要素を「対象データ要素」と言う。【０１５８】
（Ｓ２４０３）
プログラム４１４は、対象仮想ページのＩＤが、移行ページテーブル４１１に存在するか否かを判断する。この判断の結果が否定的の場合、Ｓ２４０４〜Ｓ２４０６が行われ、この判断の結果が肯定的の場合、Ｓ２４０７〜Ｓ２４０８が行われる。【０１５９】
（Ｓ２４０４）
プログラム４１４は、アロケーションテーブル４０７（図１０）を基に、対象仮想ページに、実ページが割り当てられているか否かを判断する。この判断の結果が否定的であれば、Ｓ２４０５が行われる。【０１６０】
（Ｓ２４０５）
プログラム４１４が、以下の処理を行う。
＊プログラム４１４は、ライト先のＶＶＯＬに対応したプール及びそのプール内のデフォルトティアを、ＶＶＯＬ管理テーブル４０４（図８）を基に特定する。
＊プログラム４１４は、ティア管理テーブル４０２（図６）及び実ページ管理テーブル４０８（図１１）を基に、特定されたデフォルトティア内のフリーの実ページを特定する。
＊プログラム４１４は、対象仮想ページに、特定した実ページを割り当てる。すなわち、プログラム４１４は、アロケーションテーブル４０７（図１０）における、対象仮想ページのＩＤに対応した欄に、割り当てた実ページのＩＤと、その実ページを有するティアのＩＤと、そのティアを有するプールのＩＤとを登録する。
＊プログラム４１４は、デフォルトティアからフリーの実ページを特定できない場合には、ライト先のＶＶＯＬに対応した割当ティアからフリーの実ページを特定し、特定した実ページを対象仮想ページに割り当ててよい。
＊プログラム４１４は、テーブル４０２（図６）における、割り当てた実ページを有するティア（このＳ２４０３の説明において「割当元ティア」と言う）の「使用割合」の値を、更新する。
＊プログラム４１４は、割当元ティアの「使用割合」の更新後の値が割当元ティアの「ティア閾値」の値を超えているか否かの判断（以下、「判断Ｚ」と言う）を行う。割当元ティアの「ティア閾値」の値は、テーブル４０２（図６）に登録されている値、又は、テーブル４１２（図１５）に登録されている値であるが、テーブル４１２に登録されている値が優先的に採用されて良い。
＊プログラム４１４は、判断Ｚの結果が肯定的であれば、下記（ａ）及び（ｂ）のうちの少なくとも一つの処理を行って良い。
（ａ）プログラム４１４は、エラーを、管理装置１０７（及び／又は、ライトコマンドの送信元のホスト１０１）に通知して良い。管理者は、割当元ティアについてエラーを知った場合、割当元ティアにＲＶＯＬを追加することができる。
（ｂ）プログラム４１４は、再配置プログラム４１５を呼び出す。再配置プログラム４１５が、図３８に示す処理を行う。図３８に示す処理は、後に説明する。【０１６１】
（Ｓ２４０６）
プログラム４１４は、対象仮想ページに格納されるデータ要素のためのＣＭ領域をキャッシュメモリから確保する。【０１６２】
（Ｓ２４０７）
プログラム４１４は、移行ページテーブル４１１における、対象仮想ページに対応した「移行ステータス」の値に応じて、ＣＭ領域を確保する。具体的には、例えば、下記の通りである。【０１６３】
＜＜ケースＡ：    「移行ステータス」が“未移行”＞＞
例えば、以下の（具体例Ａ１）及び（具体例Ａ２）のうちのいずれかが行われる。
（具体例Ａ１）
＊プログラム４１４は、ＣＭ領域を確保し、対象仮想ページに対応した移行先ティアにおけるフリーの実ページを、ライト先として決定する。より具体的には、例えば、プログラム４１４は、移行先ティアにおけるいずれかのフリーの実ページ内のデータ要素がキャッシュメモリにあれば、そのデータ要素が存在するＣＭ領域を確保し、且つ、そのフリーの実ページを、ライト先として決定する。移行先ティアにおけるフリーの実ページは、前述したように、テーブル４０２（図６）、及び４０８（図１１）を基に特定することができる。
＊プログラム４１４は、対象仮想ページに対応した「移行ステータス」を“移行済”に更新する。この結果、対象仮想ページについて、データ要素の移行は行われない。すなわち、言いかえれば、対象仮想ページについてデータ要素の移行がキャンセルされたことになる。
＊プログラム４１４は、対象仮想ページに、元の実ページに代えて、決定したライト先の実ページを割り当てる。すなわち、プログラム４１４は、アロケーションテーブル４０７における、対象仮想ページのＩＤに対応した欄に、上記決定したライト先の実ページのＩＤ、及び、その実ページを有するティアのＩＤ（移行先ティアのＩＤ）を上書きする。
＊プログラム４１４は、実ページ管理テーブル４０８（図１１）における、対象仮想ページに割り当てられていた元の実ページの「ステータス」を、“フリー”に更新する。また、プログラム４１４は、そのテーブル４０８における、対象仮想ページに新たに割り当てられた実ページ（決定したライト先の実ページ）の「ステータス」を“使用中”に更新する。
（具体例Ａ２）
＊プログラム４１４は、ＣＭ領域を確保し、対象仮想ページに割り当てられている実ページ（移行元ティア内の実ページ）を、ライト先として決定する。より具体的には、例えば、プログラム４１４は、移行先ティアにおけるいずれのフリーの実ページ内のデータ要素もキャッシュメモリになければ、ＣＭ領域（例えば、対象仮想ページに割り当てられている実ページ内のデータ要素が存在する領域）を確保し、且つ、対象仮想ページに割り当てられている実ページ（移行元ティア内の実ページ）を、ライト先として決定する。
＊プログラム４１４は、対象仮想ページに対応した「移行ステータス」を“中断”に更新して良い。これにより、例えば、対象仮想ページについては、再配置プログラム４１５によるデータ移行は行われない。なお、この「移行ステータス」の値は、例えば、プログラム４１４によって、後述のデステージが済んだ場合に、“中断”から“未移行”に戻されて良い。【０１６４】
＜＜ケースＢ：    「移行ステータス」が“移行中”＞＞
例えば、以下の（具体例Ｂ１）〜（具体例Ｂ３）のうちのいずれかが行われる。
（具体例Ｂ１）
＊プログラム４１４は、対象仮想ページに対応した「移行ステータス」を“中断”に更新する。そして、プログラム４１４は、前述の（具体例Ａ１）又は（具体例Ａ２）を行う。（具体例Ａ１）が行われた場合、対象仮想ページに対応した「移行ステータス」は、“移行済”に更新されることになる。（具体例Ａ２）が行われた場合、対象仮想ページに対応した「移行ステータス」は、“未移行”に更新されることになる。
（具体例Ｂ２）
＊プログラム４１４は、ＣＭ領域を確保する。（具体例Ｂ２）の場合、デステージは、対象仮想ページに対応した「移行ステータス」が“移行済”に更新された後に行われる。それ故、ライト先（デステージ先）は、移行先ティア内の実ページである。なぜなら、その時点で、対象仮想ページには、移行先ティア内の実ページが割り当てられているからである。
（具体例Ｂ３）
＊プログラム４１４は、ＣＭ領域を確保する。（具体例Ｂ３）の場合、デステージは、対象仮想ページに対応した「移行ステータス」が“移行中”の最中に行われ、データ要素は、対象仮想ページに割り当てられている実ページと、移行先ティア内の実ページとの両方にデステージされる（いわゆる二重ライトが行われる）。【０１６５】
＜＜ケースＣ：    「移行ステータス」が“移行済”＞＞
例えば、以下の処理が行われる。
＊プログラム４１４は、ＣＭ領域を確保する。このケースでは、ライト先（デステージ先）は、移行先ティア内の実ページである。なぜなら、対象仮想ページに対応した「移行ステータス」が“移行済”に更新されているので、対象仮想ページに割り当てられている実ページが、後に説明するように、移行先となった実ページに変更されるからである。【０１６６】
（Ｓ２４０８）
Ｓ２４０２で特定された全ての仮想ページについてＣＭ領域が確保された場合、プログラム４１４は、確保された一以上のＣＭ領域にライト対象のデータを書き込み、完了をホスト１０１に応答する。【０１６７】
＜ライト処理（デステージ））＞。【０１６８】
図２５は、デステージ処理のフローを示す。【０１６９】
Ｉ／Ｏ制御プログラム４１４は、ライト対象のデータを構成する各データ要素について、デステージ処理を行う。【０１７０】
（Ｓ２５０１）
プログラム４１４は、デステージを行う。すなわち、プログラム４１４は、キャッシュメモリに存在する複数のデータ要素のうち実ページに未だ書き込まれていないデータ要素（ダーティのデータ要素）を実ページに書き込む。デステージ先の実ページは、その実ページのライト先となった仮想ページに割り当てられている実ページ（アロケーションテーブル４０７から特定される実ページ）である。なお、このとき、その仮想ページに対応した「移行ステータス」が“中断”になっていれば、プログラム４１４は、その「移行ステータス」を“未移行”に更新して良い。【０１７１】
（Ｓ２５０２）
プログラム４１４は、テーブル４０３（図７）又は４０４（図８）を基に、モニタテーブル４０９を更新する必要があるか否かを判断する。テーブル４０４（図８）が優先されて良い。具体的には、例えば、プログラム４１４は、以下の二つの判断Ｐ及び判断Ｑを行う。
（判断Ｐ）プログラム４１４は、Ｓ２５０１でのデステージ先の実ページを有するプール（以下、図２５の説明において「対象プール」と言う）に対応した「再配置」が“ＯＮ”か否か、又は、そのデステージ先の実ページが割り当てられている仮想ページを有するＶＶＯＬ（以下、図２５の説明において「対象ＶＶＯＬ」と言う）に対応した「再配置」が“ＯＮ”か否かを判断する。この判断Ｐの結果が否定的の場合、Ｓ２５０３は行われない（すなわち、モニタテーブル４０９を更新する必要が無いということになる）。
（判断Ｑ）判断Ｐの結果が肯定的の場合、プログラム４１４は、現在の時刻が、対象プールに対応した「モニタ時間帯」の値が表す時間帯内か否かを判断する。この判断Ｑの結果が否定的の場合、Ｓ２５０３は行われない。一方、判断Ｐだけでなくこの判断Ｑの結果も肯定的の場合、Ｓ２５０３が行われる（すなわち、モニタテーブル４０９を更新する必要があるということになる）。【０１７２】
（Ｓ２５０３）
プログラム４１４は、モニタテーブル４０９を更新する。具体的には、例えば、下記の通りである。
＊プログラム４１４は、テーブル４１２（図１５）において、対象ＶＶＯＬに対応した「ページ単位移行」が“ＯＮ”になっていれば、対象ＶＶＯＬに対応したアクティブのモニタテーブル４０９を更新する。具体的には、例えば、プログラム４１４は、アクティブのモニタテーブル４０９における、デステージされたデータ要素のライト先仮想ページに対応する「合計Ｉ／Ｏ数」の値を更新し（例えば１インクリメントし）、且つ、「最終Ｉ／Ｏ時刻」の値を更新する。また、プログラム４１４は、例えば、そのライト先仮想ページについて、デステージ時点の時刻を、前述のＩ／Ｏ履歴テーブルに追加する。この場合、Ｉ／Ｏ履歴テーブルには、ライト先の仮想ページのＩＤが記録されて良い。例えば、そのＩ／Ｏ履歴テーブルを基に、後に、プログラム４１４は、アクティブのモニタテーブル４０９における「平均Ｉ／Ｏ数」及び「最大Ｉ／Ｏ数」を更新して良い。【０１７３】
＜リード処理＞。【０１７４】
図２６は、リード処理のフローを示す。【０１７５】
（Ｓ２６００）
Ｉ／Ｏ制御プログラム４１４が、リードコマンドをホスト１０１から受信する。そして、プログラム４１４が、受信したリードコマンドが有するＩ／Ｏ先情報から、リード元のＶＶＯＬ及び仮想ページを特定する。【０１７６】
（Ｓ２６０１）
プログラム４１４は、キャッシュメモリ上に、リード対象のデータがあるか否かを判断する。この判断の結果が否定的の場合、Ｓ２６０３が行われ、この判断の結果が肯定的の場合、Ｓ２６０２が行われる。【０１７７】
（Ｓ２６０２）
プログラム４１４は、キャッシュメモリ上のリード対象のデータを、ホスト１０１に送信する。この場合、リード元のＶＶＯＬに対応するモニタテーブル４０９は更新されない。実ページに対するＩ／Ｏが行われていないからである。【０１７８】
（Ｓ２６０３）
プログラム４１４は、アロケーションテーブル４０７を基に、Ｓ２６００で特定された仮想ページに実ページが割り当てられているか否かを判断する。この判断の結果が否定的の場合、Ｓ２６０４が行われ、この判断の結果が肯定的の場合、Ｓ２６０５が行われる。【０１７９】
（Ｓ２６０４）
プログラム４１４は、所定の応答（例えば、ゼロを表すデータ）をホスト１０１に送信する。【０１８０】
（Ｓ２６０５）
プログラム４１４は、Ｓ２６００で特定された一以上の仮想ページのＩＤのうちの少なくとも一つが移行ページテーブル４１１に登録されており、且つ、その登録されている仮想ページＩＤに対応する「移行ステータス」が“移行中”か否かを判断する。この判断の結果が否定的の場合、Ｓ２６０７が行われ、この判断の結果が肯定的の場合、Ｓ２６０６が行われる。【０１８１】
（Ｓ２６０６）
プログラム４１４は、Ｓ２６００で特定された一以上の仮想ページにそれぞれ割り当てられている一以上の実ページ（アロケーションテーブル４０７から特定される一以上の実ページ）からデータ要素を読み出す。プログラム４１４は、それらのデータ要素で構成したリード対象のデータを、ホスト１０１に送信する。【０１８２】
（Ｓ２６０７）
プログラム４１４は、「移行ステータス」が“移行中”の仮想ページについて、「移行ステータス」が“移行済”に更新されるまで待つ。その後、プログラム４１４は、Ｓ２６００で特定された一以上の仮想ページにそれぞれ割り当てられている一以上の実ページ（アロケーションテーブル４０７から特定される一以上の実ページ）からデータ要素を読み出す。プログラム４１４は、それらのデータ要素で構成したリード対象のデータを、ホスト１０１に送信する。【０１８３】
（Ｓ２６０８）
プログラム４１４は、テーブル４０３（図７）又は４０４（図８）を基に、モニタテーブル４０９を更新する必要があるか否かを判断する。テーブル４０４（図８）が優先されて良い。具体的には、例えば、プログラム４１４は、以下の二つの判断Ｖ及び判断Ｗを行う。
（判断Ｖ）プログラム４１４は、リード元のＶＶＯＬに割り当てられているプール（以下、図２６の説明において「リード元プール」と言う）に対応した「再配置」が“ＯＮ”か否か、又は、リード元のＶＶＯＬに対応した「再配置」が“ＯＮ”か否かを判断する。この判断Ｖの結果が否定的の場合、Ｓ２６０９は行われない（すなわち、モニタテーブル４０９を更新する必要が無いということになる）。
（判断Ｗ）判断Ｖの結果が肯定的の場合、プログラム４１４は、現在の時刻が、対象プールに対応した「モニタ時間帯」の値が表す時間帯内か否かを判断する。この判断Ｗの結果が否定的の場合、Ｓ２６０９は行われない。一方、判断Ｖだけでなくこの判断Ｗの結果も肯定的の場合、Ｓ２６０９が行われる（すなわち、モニタテーブル４０９を更新する必要があるということになる）。【０１８４】
（Ｓ２６０９）
プログラム４１４は、モニタテーブル４０９を更新する。具体的には、例えば、下記の通りである。
＊プログラム４１４は、テーブル４１２（図１５）において、リード元のＶＶＯＬに対応した「ページ単位移行」が“ＯＮ”になっていれば、リード元のＶＶＯＬに対応したアクティブのモニタテーブル４０９を更新する。具体的には、例えば、プログラム４１４は、アクティブのモニタテーブル４０９における、リード元のライト先仮想ページに対応する「合計Ｉ／Ｏ数」の値を更新し（例えば１インクリメントし）、且つ、「最終Ｉ／Ｏ時刻」の値を更新する。また、プログラム４１４は、例えば、そのリード元の仮想ページについて、リード時点の時刻を、前述のＩ／Ｏ履歴テーブルに追加する。この場合、Ｉ／Ｏ履歴テーブルには、リード元の仮想ページのＩＤが記録されて良い。例えば、そのＩ／Ｏ履歴テーブルを基に、後に、プログラム４１４は、アクティブのモニタテーブル４０９における「平均Ｉ／Ｏ数」及び「最大Ｉ／Ｏ数」を更新して良い。【０１８５】
＜Ｉ／Ｏ頻度のモニタと再配置処理との関係＞。【０１８６】
図２７は、Ｉ／Ｏ頻度のモニタと再配置との関係の概要を示す。【０１８７】
実ページに対するＩ／Ｏがモニタされ、実ページに対するＩ／Ｏが行われた場合に、その実ページが割り当てられている仮想ページ又はその仮想ページを有するＶＶＯＬのＩ／Ｏ頻度が更新される。つまり、モニタテーブル４０９が更新される。別の言い方をすれば、前述したように、Ｉ／Ｏ制御プログラム４１４がリードコマンドをホスト１０１から受けたものの、実ページからデータ要素をリードしなかった場合には、モニタテーブル４０９は更新されない。【０１８８】
モニタテーブル４０９の更新に応じて、度数分布テーブル４１０が更新される。なお、度数分布テーブル４１０は、予め用意されていなくて良く、例えば、管理者から度数分布の表示が命じられた場合に、モニタテーブル４０９を基に度数分布テーブル４１０が作成され、そのテーブル４１０を基に度数分布が表示されてよい。なお、度数分布に代えて、モニタテーブル４０９が表示されてよい。【０１８９】
再配置処理は、ティア判定処理と移行処理とを有する。ティア判定処理では、移行ページテーブル４１１が作成される。そのテーブル４１１は、モニタテーブル４０９が表すＩ／Ｏ頻度と、ティア管理テーブル４０２（図６）内のティアレンジとを基に作成されてよい。移行処理では、作成された移行ページテーブル４１１を基に、ページ単位のデータ移行が行われる。【０１９０】
＜再配置処理＞。【０１９１】
再配置処理は、或るティアの使用割合がそのティアのティア閾値を超えた場合に行われても良いし、定期的に（例えば「再配置実行時刻」の値が表す時刻の都度に）行われても良い。【０１９２】
図２８は、再配置処理のフローを示す。なお、図２８は、一つのＶＶＯＬ（図２８の説明において「対象ＶＶＯＬ」と言う）についてのフローである。【０１９３】
（Ｓ２８０１）
再配置プログラム４１５は、対象ＶＶＯＬについてデータ移行を実行するか否かを判断する。具体的には、例えば、以下の処理が行われる。
＊プログラム４１５は、ＶＶＯＬ管理テーブル４０４（図８）において、対象ＶＶＯＬに対応した「自動実行」が“ＯＮ”になっているか否かを判断する。対象ＶＶＯＬに対応した「自動実行」の値の設定が無い場合、プログラム４１５は、プール管理テーブル４０３（図７）において、対象ＶＶＯＬに割り当てられているプール（以下、図２８の説明において「対象プール」）に対応した「自動実行」が“ＯＮ”になっているか否かを判断する。
＊対象ＶＶＯＬ又は対象プールに対応した「自動実行」が“ＯＮ”の場合、プログラム４１５は、対象ＶＶＯＬ又は対象プールに対応した「再配置実行時刻」の値が表す時刻に現在の時刻が達しているか否かを判断する。この判断の結果が肯定的の場合、Ｓ２８０１の判断の結果が肯定的であり、この判断の結果が否定的の場合、Ｓ２８０１の判断の結果が否定的である。
＊対象ＶＶＯＬ又は対象プールに対応した「自動実行」が“ＯＦＦ”の場合、プログラム４１５は、管理者から管理装置１０５を通じて、対象ＶＶＯＬについてデータ移行の指示を受け付けたならば、Ｓ２８０１の判断の結果は肯定的となる。【０１９４】
プログラム４１５は、対象ＶＶＯＬ又は対象プールに対応した「自動実行」が“ＯＦＦ”であれば（Ｓ２８０２：ＮＯ）、Ｓ２８０６を行う。【０１９５】
プログラム４１５は、対象ＶＶＯＬ又は対象プールに対応した「自動実行」が“ＯＮ”であれば（Ｓ２８０２：ＹＥＳ）、Ｓ２８０７を行う。【０１９６】
（Ｓ２８０６）
プログラム４１５は、管理者からティアレンジが設定されているか否かを判断する。この判断の結果が否定的の場合、Ｓ２８０７が行われた後にＳ２８０８が行われ、この判断の結果が否定的の場合、Ｓ２８０７が行われることなくＳ２８０８が行われる。【０１９７】
（Ｓ２８０７）
プログラム４１５は、ティアレンジ決定処理を行う。この処理によって、ティアレンジが決定される。ティアレンジ決定の方法としては、幾つか考えられる。例えば、予め、複数種類のティアレンジが用意されていて良く、プログラム４１５が、ティア毎に、それら複数種類のティアレンジから任意のティアレンジを選択して良い。【０１９８】
（Ｓ２８０８）
プログラム４１５は、ティア判定処理を行う。ティア判定処理では、前述したように、移行ページテーブル４１１が作成される。【０１９９】
（Ｓ２８０９）
プログラム４１５は、作成した移行ページテーブル４１１に従って、ページ単位の移行処理を行う。ページ単位のデータ移行では、対象プール内において、或るティア内の実ページから別のティア内の実ページにデータ要素が移行される。ページ単位の移行処理については、後に詳細に説明する。【０２００】
＜＜ページ単位の移行処理＞＞。【０２０１】
図３４は、図２８のＳ２８０８での移行ページテーブル作成処理のフローを示す。【０２０２】
（Ｓ３４０１）
プログラム４１５は、対象ＶＶＯＬの先頭の仮想ページを選択する。【０２０３】
（Ｓ３４０２）
プログラム４１５は、アロケーションテーブル４０７を基に、選択された仮想ページに実ページが割り当てられているか否かを判断する。この判断の結果が否定的であれば、Ｓ３４０５が行われ、この判断の結果が肯定的であれば、Ｓ３４０３が行われる。【０２０４】
（Ｓ３４０３）
プログラム４１５は、モニタテーブル４０９を基に、選択された仮想ページに割り当てられている実ページ内のデータ要素が存在すべきティアを変更すべきか否かを判断する。具体的には、例えば、下記の通りである。
＊プログラム４１５は、選択された仮想ページに割り当てられている実ページを有するティア（Ｓ３４０３の説明において「対象ティア」）を、テーブル４０２（図６）から特定する。
＊プログラム４１５は、選択された仮想ページのＩ／Ｏ頻度（例えば、対象ＶＶＯＬに対応したアクティブのモニタテーブル４０９が表す合計Ｉ／Ｏ数、平均Ｉ／Ｏ数、及び最大Ｉ／Ｏ数のうちの少なくとも一つ）と、対象ティアに対応した「ティアレンジ」の値とを基に、選択された仮想ページに割り当てられている実ページ内のデータ要素を、対象ティアから別のティアに移行すべきかどうかを判断する。例えば、選択された仮想ページの対象ティアに対応したティアレンジに、選択された仮想ページのＩ／Ｏ頻度が収まっていなければ、データ要素が移行されるべきと判断される。【０２０５】
このＳ３４０３の判断の結果が否定的であれば、Ｓ３４０５が行われ、この判断の結果が肯定的であれば、Ｓ３４０４が行われる。【０２０６】
（Ｓ３４０４）
プログラム４１５は、選択された仮想ページのＩ／Ｏ頻度（例えば、対象ＶＶＯＬに対応したアクティブのモニタテーブル４０９が表す合計Ｉ／Ｏ数、平均Ｉ／Ｏ数、及び最大Ｉ／Ｏ数のうちの少なくとも一つ）と、対象ティアを有するプール内の他の割当ティアに対応した「ティアレンジ」の値とを基に、移行先ティアを決定する。ここでは、例えば、選択された仮想ページのＩ／Ｏ頻度が収まっているティアレンジに対応する割当ティア（対象ＶＶＯＬの割当ティア）が、移行先ティアとして決定される。そして、プログラム４１５は、移行先ページテーブル４１１に、選択された仮想ページのＩＤと、対象ティアのＩＤと、決定された移行先ティアのＩＤと、移行ステータス“未移行”とを登録する。【０２０７】
（Ｓ３４０５）
プログラム４１５は、選択された仮想ページが、対象ＶＶＯＬの末端の仮想ページであるか否かを判断する。この判断の結果が否定的であれば、Ｓ３４０６が行われ、この判断の結果が肯定的であれば、この移行ページテーブル作成処理が終了となる。【０２０８】
（Ｓ３４０６）
プログラム４１５は、対象ＶＶＯＬから、直前回に選択された仮想ページの次の仮想ページを選択する。その後、その選択された仮想ページについて、Ｓ３４０２以降が行われる。【０２０９】
この移行ページテーブル作成処理により、ページ単位の移行処理のための移動ページテーブル４１１が作成される。【０２１０】
図３５は、ページ単位の移行処理の概要を示す。【０２１１】
ページ単位の移行処理によれば、テーブル４１１に登録されている仮想ページ毎に、その仮想ページに割り当てられている実ページ内のデータ要素が、その仮想ページに対応した移行先ティア内のフリーの実ページに移行される。その仮想ページに、移行元実ページに代えて移行先実ページが割り当てられる。図３５に示すように、この移行処理によって、より上位のティアに移行されるデータ要素もあれば、より下位のティアに移行されるデータ要素ある。【０２１２】
どのティアについてどのようなティアレンジを設定するかによって、仮想ページのＩ／Ｏ頻度に適したティアにその仮想ページ内のデータ要素を配置することができる。【０２１３】
例えば、上位のティアほど、高いティアレンジが設定され、下位のティアほど、低いティアレンジが設定されるとする。具体的には、例えば、ティア＃１１が、高速且つ高信頼のティア（例えば、ＲＶＯＬ種類が“ＳＳＤ”のティア）であって、高いティアレンジが設定されるとする。また、例えば、ティア＃１３が、低速又は低信頼のティア（例えば、ＲＶＯＬ種類が“ＨＤＤ−ＳＡＴＡ”のティア）であって、低いティアレンジが設定されるとする。また、例えば、ティア＃１２が、ＶＶＯＬ＃５０のデフォルトティアであって、中程度のティアレンジが設定されるとする。この場合、ＶＶＯＬ＃５０を構成する仮想ページに対するライト対象のデータ要素は、一旦は、デフォルトティア＃１２内の実ページに書き込まれる。その後、例えば、ＶＶＯＬ＃５０内の或る仮想ページ＃ＡのＩ／Ｏ頻度が、高いティアレンジに収まるぐらいに高いＩ／Ｏ頻度になった場合には、その仮想ページ＃Ａに割り当てられている実ページ＃Ｘ内のデータ要素が、ティア＃１２からティア＃１１に移行される。一方、例えば、ＶＶＯＬ＃５０内の或る仮想ページ＃ＢのＩ／Ｏ頻度が、低いティアレンジに収まるぐらいに低いＩ／Ｏ頻度になった場合には、その仮想ページ＃Ｂに割り当てられている実ページ＃Ｙ内のデータ要素が、ティア＃１２からティア＃１３に移行される。【０２１４】
このように、どのティアにどのようなティアレンジを設定するかと、仮想ページ毎のＩ／Ｏ頻度のモニタ結果と、ページ単位のデータ移行とにより、ＶＶＯＬ内のデータ要素を適切なティア（物理記憶資源）に配置することができる。【０２１５】
図３６は、ページ単位の移行処理のフローを示す。【０２１６】
（Ｓ３６０１）
再配置プログラム４１５が、対象ＶＶＯＬに割り当てられているプールの「プールステータス」を“再配置中”に更新する。【０２１７】
（Ｓ３６０２）
プログラム４１５が、作成された移行ページテーブル４１１の先頭のレコードを選択する。【０２１８】
（Ｓ３６０３）
プログラム４１５は、選択されたレコードにおける「移行ステータス」の値を“移行中”に更新する。【０２１９】
（Ｓ３６０４）
プログラム４１５は、選択されたレコードが表す移行先ティアからフリーの実ページを選択し、選択した実ページ（移行先実ページ）に、移行元ティア内の移行元実ページに記憶されているデータ要素を移行する。移行元実ページは、対象仮想ページに割り当てられている実ページである。【０２２０】
（Ｓ３６０５）
プログラム４１５は、テーブルを更新する。具体的には、例えば、下記の通りである。
＊プログラム４１５は、移行元実ページの代わりに移行先実ページが、選択されたレコードが表す仮想ページ（以下、Ｓ３６０５の説明において「選択仮想ページ」）に割り当るよう、アロケーションテーブル４０７を更新する。つまり、プログラム４１５は、選択仮想ページに、移行先実ページのＩＤと、移行先ティアのＩＤとを対応付ける。
＊プログラム４１５は、選択仮想ページのＩ／Ｏ頻度（例えば、アクティブのテーブル４０９）を更新する。具体的には、例えば、選択仮想ページ又は対象ＶＶＯＬの合計Ｉ／Ｏ数が１インクリメントされる。
＊プログラム４１５は、テーブル４０２（図６）における、移行先ティアの「使用割合」の値を、更新する。【０２２１】
（Ｓ３６０６）
プログラム４１５は、選択されたレコードにおける「移行ステータス」の値を“移行済”に更新する。【０２２２】
（Ｓ３６０７）
プログラム４１５は、選択されたレコードが、仮想ページテーブル４１１における末端のレコードであるか否かを判断する。この判断の結果が否定的であれば、Ｓ３６０８が行われ、この判断の結果が肯定的であれば、この移行処理が終了となる。【０２２３】
（Ｓ３６０８）
プログラム４１５は、仮想ページテーブル４１１から、直前回に選択されたレコードの次のレコードを選択する。その後、その選択されたレコードについて、Ｓ３６０３以降が行われる。【０２２４】
以上が、ページ単位の移行処理のフローである。なお、ページ単位の移行処理の変形例として、例えば、下記の複数の変形例のうちの少なくとも一つが考えられる。
＊Ｓ３６０２のＳ３６０３の間で、プログラム４１５が、データ要素を移行先ティアに移行したと仮定して、移行先ティアの使用割合が移行先ティアのティア閾値を超えるか否かを判断してよい。超えると判断された場合、プログラム４１５は、Ｓ３６０３〜Ｓ３６０６をスキップしてＳ３６０７を行ってよい（すなわち、プログラム４１５は、選択されたレコードについてデータ要素の移行を行わなくて良い）。或いは、超えると判断された場合、プログラム４１５は、移行先ティアを割当ティアとしているＶＶＯＬについて再配置処理を行うことで、移行先ティアにフリーの実ページを増やし、その後で、Ｓ３６０３を開始してもよい。
＊Ｓ３６０５で移行先ティアの使用割合を更新したときに、プログラム４１５が、移行先ティアの使用割合が移行先ティアのティア閾値を超えるか否かを判断してよい。超えたと判断された場合、プログラム４１５は、管理装置１０７に警告を表示して良く、及び/又は、移行先ティアを割当ティアとしているＶＶＯＬについて再配置処理を行うことで、移行先ティアにフリーの実ページを増やしてよい。【０２２５】
＜ティア閾値の変更＞。【０２２６】
ＵＩ制御プログラム４１３が、管理者からティア閾値の変更を受け付けることができる。【０２２７】
図３７は、ティア閾値の変更処理のフローを示す。【０２２８】
（Ｓ３７０１）
プログラム４１３が、プールＩＤ及びティアＩＤと、そのティアＩＤについての変更後のティア閾値とを受け付ける。【０２２９】
（Ｓ３７０２）
プログラム４１３は、Ｓ３７０１で受けたプールＩＤ及びティアＩＤに対応した「使用割合」の値が、変更後のティア閾値を超えているか否かを判断する。【０２３０】
（Ｓ３７０３）
プログラム４１３は、Ｓ３７０２の判断の結果が肯定的の場合、エラーを管理装置１０７に表示する。【０２３１】
＜使用割合の監視＞。【０２３２】
前述したように、Ｉ／Ｏ制御プログラム４１４又は再配置プログラム４１５は、実ページにデータ要素を書き込んだ場合、テーブル４０２（図６）における、その実ページを有するティアの「使用割合」の値を、更新する。その後、プログラム４１４又は４１５は、「使用割合」の更新後の値が、そのティアに対応する「ティア閾値」の値を超えたか否かを判断してよい。この判断の結果が肯定的であれば、プログラム４１４又は４１５は、図３８に示す閾値オーバー対処処理を行って良い。【０２３３】
図３８は、閾値オーバー対処処理のフローを示す。【０２３４】
プログラム４１４又は４１５は、使用割合がティア閾値を超えたティアを有するプールの「プールステータス」が“再配置中”か否かを判断する（Ｓ３８０１）。【０２３５】
Ｓ３８０１の判断の結果が肯定的の場合、プログラム４１４又は４１５は、管理装置１０７又はホスト１０１に、警告を出す（Ｓ３８０２）。その警告は、例えば、使用割合がティア閾値を超えたティアのＩＤと、そのティアを有するプールのＩＤと、そのプールの「プールステータス」の値（“再配置中”）とを含んでよい。【０２３６】
Ｓ３８０１の判断の結果が否定的の場合、プログラム４１４又は４１５は、管理装置１０７又はホスト１０１に、警告を出し（Ｓ３８０３）、そのティアの使用割合がそのティアのティア閾値以下になるよう再配置処理（図２８）を実行する（Ｓ３８０４）。なお、Ｓ３８０３での警告は、例えば、使用割合がティア閾値を超えたティアのＩＤと、そのティアを有するプールのＩＤと、そのプールについて再配置処理を行うことを意味するメッセージとを含んでよい。【０２３７】
＜データ要素の集約＞。【０２３８】
本実施例では、データ要素の集約処理が行われて良い。【０２３９】
図２１は、データ要素の集約処理の概要を示す。【０２４０】
Ｉ／Ｏ制御プログラム４１４又は再配置プログラム４１５は、ＶＶＯＬ＃３９について、定期的に、或いは、データ要素を実ページに書き込んだときに（例えば、ページ単位の移行処理の終了時に）、ＶＶＯＬ＃３９内のデータ要素の配置をチェックする。具体的には、例えば、プログラム４１４又は４１５は、ＶＶＯＬ＃３９の各割当ティア＃００、＃０１、＃０３について、ＶＶＯＬ＃３９内の全てのデータ要素のうちのどの程度の割合のデータ要素が存在するか（つまり格納割合）を算出する。プログラム４１４又は４１５は、ＶＶＯＬ＃３９の割当ティア＃００、＃０１、＃０３に、格納割合が格納閾値を超える割当ティアがあるか否かを判断する。【０２４１】
プログラム４１４又は４１５は、格納割合が格納閾値を超える格納割合の割当ティアがある場合、その割当ティア＃００以外の割当ティア＃０１及び＃０３内のデータ要素（ＶＶＯＬ＃３９内のデータ要素）を、割当ティア＃００（具体的には、例えば、割当ティア＃００のフリーの実ページ）に移行する。【０２４２】
なお、その後、例えば、プログラム４１４は、ＶＶＯＬ＃３９内の仮想ページ（特に、実ページが割り当てられていない仮想ページ）に対してライトが発生した場合には、その仮想ページに、必ず、割当ティア＃００から実ページを割り当てて良い。【０２４３】
なお、割当ティア＃０１及び＃０３内のデータ要素（ＶＶＯＬ＃３９内のデータ要素）を割当ティア＃００に移行すると割当ティア＃００の使用割合が割当ティア＃００のティア閾値を超えてしまうようであれば、プログラム４１４又は４１５は、下記の（ｘ）又は（ｙ）を行って良い。
（ｘ）プログラム４１４は、割当ティア＃０１及び＃０３内のデータ要素を割当ティア＃００に移行しない。
（ｙ）プログラム４１４は、対象ＶＶＯＬ以外のＶＶＯＬ内のデータ要素であって割当ティア＃００内のデータ要素を他のティアに移行することで割当ティア＃００にフリーの実ページを増やす。【０２４４】
また、本実施例では、図２８のＳ２８０７において、ティアレンジを自動で決定することができる。ティアレンジは、例えば、図示しないティアレンジ決定プログラムがＭＰに実行されることで決定される。【０２４５】
以下、一つのプール（ティアレンジの自動決定の説明において「対象プール」と言う）を例に採り、ティアレンジ決定処理を説明する。【０２４６】
図２９は、ティアレンジ決定処理の概要を示す。【０２４７】
対象プールが、３つのティア＃０１、＃０２及び＃０３を有するとする。ティア＃０１が最上位であり、ティア＃０２が２番目に上位であり、ティア＃０３が最下位のティアであるとする。言い換えれば、ティア＃０１の性能ポテンシャルが最も高く、ティア＃０２の性能ポテンシャルが２番目に高く、ティア＃０３の性能ポテンシャルが最も低いとする。「性能ポテンシャル」とは、再配置処理での、データ要素の配置の重みである。性能ポテンシャルについては後に詳述する。【０２４８】
ティアレンジ決定プログラムが、対象プールが割り当てられている全てのＶＶＯＬの度数分布を集約することで、対象プールについての度数分布４３００を取得する。度数分布の横軸は、Ｉ／Ｏ頻度（負荷）であり、縦軸は、仮想ページ数である。【０２４９】
ティアレンジ決定プログラムは、上位のティアから下位のティアにかけて順に（又は、下位のティアから上位のティアにかけて順に）、ティアレンジを決定する。以下、ティア＃０１、＃０２、＃０３の順でティアレンジが決定されるとする。以下、各ティアについてのティアレンジの決定のために行われる処理を述べる（なお、図２９において、ティアレンジの上限はひし形のマークであり、ティアレンジの下限は丸型のマークである）。【０２５０】
＜＜ティア＃０１のティアレンジ１の決定＞＞
＊ティアレンジ決定プログラムは、ティア＃０１のティアレンジ１の上限として、無限大を設定する。つまり、最上位のティアのティアレンジの上限として、無限大が設定される。
＊ティアレンジ決定プログラムは、度数分布４３００において、矢印４３０１で示すように、Ｉ／Ｏ頻度が最も高い方から低い方へと仮想ページ数を累計していく。その累計値が、ティア＃０１の性能ポテンシャルに達した場合、ティアレンジ決定プログラムは、ティア＃０１の性能ポテンシャルに達する直前に加算された仮想ページ数に対応するＩ／Ｏ頻度を、ティア（０−１）境界値（ティア＃００とティア＃０１の境界値）として設定する。
＊ティアレンジ決定プログラムは、ティア（０−１）境界値より或る程度のマージンだけ低いＩ／Ｏ頻度を、ティア＃０１のティアレンジ１の下限として設定する。具体的には、例えば、その下限は、ティア（０−１）境界値より所定割合低いＩ／Ｏ頻度（例えば１０％低いＩ／Ｏ頻度）である。
＊ティアレンジ決定プログラムは、ティアレンジ１に収まるＩ／Ｏ頻度となっている全ての仮想ページ内のデータ要素がティア＃０１に移行されたと仮定して、ティア＃０１の使用割合がティア＃０１のティア閾値を超えるか否かを判断する。この判断の結果が肯定的の場合、ティアレンジ決定プログラムは、ティア＃０１の使用割合がティア＃０１のティア閾値を超えないような大きさにティアレンジ１を修正する。【０２５１】
＜＜ティア＃０２のティアレンジ２の決定＞＞
＊ティアレンジ決定プログラムは、ティア＃０２のティアレンジ１の上限として、ティア（０−１）境界値より或る程度のマージンだけ高いＩ／Ｏ頻度を設定する。具体的には、例えば、その上限は、ティア（０−１）境界値より所定割合高いＩ／Ｏ頻度（例えば１０％高いＩ／Ｏ頻度）である。
＊ティアレンジ決定プログラムは、度数分布４３００において、ティア（０−１）境界値から低い方へと仮想ページ数を累計していく。その累計値が、ティア＃０２の性能ポテンシャルに達した場合、ティアレンジ決定プログラムは、ティア＃０２の性能ポテンシャルに達する直前に加算された仮想ページ数に対応するＩ／Ｏ頻度を、ティア（１−２）境界値（ティア＃０１とティア＃０２の境界値）として設定する。
＊ティアレンジ決定プログラムは、ティア（１−２）境界値より或る程度のマージンだけ低いＩ／Ｏ頻度を、ティア＃０２のティアレンジ２の下限として設定する。
＊ティアレンジ決定プログラムは、ティアレンジ２に収まるＩ／Ｏ頻度となっている全ての仮想ページ内のデータ要素がティア＃０２に移行されたと仮定して、ティア＃０２の使用割合がティア＃０２のティア閾値を超えるか否かを判断する。この判断の結果が肯定的の場合、ティアレンジ決定プログラムは、ティア＃０２の使用割合がティア＃０２のティア閾値を超えないような大きさにティアレンジ２を修正する。【０２５２】
＜＜ティア＃０３のティアレンジ３の決定＞＞
＊ティアレンジ決定プログラムは、ティア＃０３のティアレンジ３の上限として、ティア（１−２）境界値より或る程度のマージンだけ高いＩ／Ｏ頻度を設定する。
＊ティアレンジ決定プログラムは、ティア＃０２のティアレンジ２の下限として、ゼロを設定する。つまり、最下位のティアのティアレンジの下限として、ゼロが設定される。
＊ティアレンジ決定プログラムは、ティアレンジ３に収まるＩ／Ｏ頻度となっている全ての仮想ページ内のデータ要素がティア＃０３に移行されたと仮定して、ティア＃０３の使用割合がティア＃０３のティア閾値を超えるか否かを判断する。この判断の結果が肯定的の場合、ティアレンジ決定プログラムは、ティア＃０３の使用割合がティア＃０３のティア閾値を超えないような大きさにティアレンジ３を修正する。【０２５３】
以上のようにして、ティアレンジ１〜３が決定される。なお、ティアレンジの上限及び／又は下限に、ティア境界値のマージンが付与されるのは、Ｉ／Ｏ頻度の変動に応じて頻繁にデータ要素の移行が発生しないようにするためである。具体的には、例えば、マージンが無く、且つ、或る仮想ページのＩ／Ｏ頻度がティア（０−１）境界値を頻繁に越えたり下回ったりすると、その仮想ページ内のデータ要素が頻繁にティア＃０１に移行されたりティア＃０２に移行されたりしてしまう。しかし、上記のようにマージンが設けられれば、そのような移行が行われる頻度を減らすことができる。【０２５４】
以下、ティアレンジ決定処理をより詳細に説明する。【０２５５】
図３０は、ティアレンジ決定処理のフローを示す。【０２５６】
（Ｓ４４０１）
ティアレンジ決定プログラムは、対象プールの各ティアについて性能ポテンシャルを算出する。一つのティア（以下、Ｓ４４０１の説明で「対象ティア」と言う）を例に採ると、性能ポテンシャルは、例えば、下記（式１）、
性能ポテンシャル＝性能レベルｘ実効実ページ数（実効容量）・・・（式１）
により算出される。この（式１）は、性能レベルが低くても実行実ページ数が多ければ、性能ポテンシャルが高いことを意味する。【０２５７】
なお、「実効実ページ数」とは、対象ティアを構成する全実ページのうちの、再配置処理においてデータ要素の移行先となり得る実ページの総数である。言い換えれば、プールには、再配置処理中にホストからのライト対象のデータ要素を書きこめるよう、再配置処理では移行先とされることのない実ページが設けられていて良い。【０２５８】
「性能レベル」とは、対象ティアの単位容量（例えば一つの実ページ）当たりの性能ポテンシャルである。性能レベルは、例えば、下記（式２）、
値Ｋ＝ＲＧ性能/ＲＧ実効容量・・・（式２）
により算出される値Ｋに基づいている。（式２）における「ＲＧ性能」とは、例えば、リードの重みとライトの重みの比が１：１のときのＲＧ性能であって、対象ティアの基になっているＲＧが単位時間当たりに処理可能な最大Ｉ／Ｏ数である。（式２）における「ＲＧ実効容量」とは、例えば、対象ティアの基になっているＲＧについての、データ要素を格納する実ページの総数である。なお、性能レベルは、上記値Ｋに代えて又は加えて、リードの重みとライトの重みの比が参酌されても良い。その比は、例えば、ホストからのＩ／Ｏの状況、キャッシュメモリの状況（例えば、ダーティのデータ要素とクリーンのデータ要素（実ページに格納済みのデータ要素）の配分）、ＲＧのＲＡＩＤレベルのうちの少なくとも一つに基づいて変更されて良い。また、性能レベルは、管理者によって手動で設定されても良い。【０２５９】
（Ｓ４４０２）
ティアレンジ決定プログラムは、ティア境界値算出処理を行う。すなわち、ティアレンジ決定プログラムは、対象プールの各ティアについて算出された性能ポテンシャルを基に、ティア境界値を算出する。【０２６０】
（Ｓ４４０３）
ティアレンジ決定プログラムは、算出された各ティア境界値を基に、各ティアについてティアレンジを算出する。【０２６１】
（Ｓ４４０４）
ティアレンジ決定プログラムは、各ティアについてティアレンジが不適切か否かを判断する。一つのティア（以下、Ｓ４４０３及びＳ４４０５の説明において「対象ティア」と言う）を例に採って具体的に言うと、例えば、ティアレンジ決定プログラムは、対象ティアのティアレンジに収まるＩ／Ｏ頻度となっている全ての仮想ページ内のデータ要素が対象ティアに移行されたと仮定して、対象ティアの使用割合が対象ティアのティア閾値を超えるか否かを判断する。【０２６２】
（Ｓ４４０５）
Ｓ４４０４の判断の結果が肯定的の場合、ティアレンジ決定プログラムは、管理装置１０７に警告を表示するか、或いは、対象ティアの使用割合が対象ティアのティア閾値を超えないような大きさにティアレンジを修正する。【０２６３】
図３１は、図３０のＳ４４０２のティア境界値算出処理のフローを示す。【０２６４】
（Ｓ４５０１）
ティアレンジ決定プログラムが、対象プールが割り当てられている全てのＶＶＯＬの度数分布を集約することで、対象プールの度数分布を取得する。度数分布は、対象プールが割り当てられている各ＶＶＯＬに対応するモニタテーブル４０９を用いて取得することができる。【０２６５】
（Ｓ４５０２）
ティアレンジ決定プログラムが、対象プールのＩ／Ｏ頻度合計を算出する。具体的には、ティアレンジ決定プログラムが、対象プールが割り当てられている全てのＶＶＯＬの全ての仮想ページのＩ／Ｏ頻度を合計する。【０２６６】
（Ｓ４５０３）
ティアレンジ決定プログラムが、Ｓ４５０２で算出されたＩ／Ｏ頻度合計を基に、対象プールの各ティアについての配分Ｉ／Ｏ頻度を算出する。具体的には、ティアレンジ決定プログラムが、Ｓ４５０２で算出されたＩ／Ｏ頻度合計を、対象プールの複数のティアに配分する。具体的には、例えば、ティアレンジ決定プログラムが、図３０のＳ４４０１で算出された、複数のティアの性能ポテンシャルの比に基づいて、それら複数のティアにＩ／Ｏ頻度合計を配分する。これにより、例えば、性能ポテンシャルの比が、ティア＃０１：ティア＃０２：ティア＃０３＝４：２：１であり、且つ、Ｉ／Ｏ頻度合計が７０００であった場合、ティア＃０１の配分Ｉ／Ｏ頻度は４０００（７０００x（４／（４＋２＋１））となり、ティア＃０２の配分Ｉ／Ｏ頻度は２０００（７０００x（２／（４＋２＋１））となり、ティア＃０１の配分Ｉ／Ｏ頻度は１０００（７０００x（１／（４＋２＋１））となる。【０２６７】
（Ｓ４５０４）
ティアレンジ決定プログラムが、対象プールの各ティアの配分Ｉ／Ｏ頻度を基に、ティア境界値を決定する。例えば、Ｓ４５０３の例で言えば、ティア（０−１）境界値は、２０００となり、ティア（１−２）境界値は、１０００となる。【０２６８】
以上のディアレンジ決定処理によれば、各ティアの性能ポテンシャルと対象プールの度数分布とを基に、ティア毎に、対象プールの全体のＩ／Ｏ状況に応じた適切なティアレンジを設定することができる。【０２６９】
以上が、実施例１についての説明である。【０２７０】
なお、実施例１において、例えば、ＶＶＯＬについて、デフォルトティアは、必ず、ＶＶＯＬの割当ティアのうちＩ／Ｏ性能（例えばＩ／Ｏ速度又はレスポンスタイム）が最大のティア（例えば割当ティアのうちの最上位のティア）であってもよい。ＶＶＯＬのＩ／Ｏ性能をなるべく大きくするためである。この場合、ＶＶＯＬに書き込まれるデータ要素は、なるべく上位の割当ティアに配置されてよい。但し、割当ティアの使用容量がその割当ティアのティア閾値を超えないように制御される。【０２７１】
また、例えば、各プール、或いは、複数のプールに共通して、退避用のティアが設けられて良い。プログラム４１４及び４１５は、退避用のティアには、通常、ホストからのライトコマンドに従うライトでも、再配置処理における移行処理でも、データ要素を書き込まない。しかし、プログラム４１４又は４１５は、例えば、データ要素の書き込み先のティア（以下、この段落の説明において「対象ティア」）の使用割合がそのティアのティア閾値を超える場合、対象ティア内の任意の実ページ内のデータ要素（或いは、対象ティアのティアレンジにＩ／Ｏ頻度が収まっていない仮想ページに割り当てられている、対象ティアにおける実ページ内のデータ要素）を、退避用のティアに移行し、それにより、対象ティアにフリーの実ページを増やしてもよい。この場合、プログラム４１４又は４１５は、対象ティア内の移行元実ページに割り当てられている仮想ページに、その移行元実ページに代えて、退避用のティア内の移行先実ページを割り当ててよい。その後、プログラム４１４又は４１５は、退避用ティア内の実ページに割り当てられている仮想ページのＩ／Ｏ頻度が収まっているティアレンジが設定されているティアに、その退避用ティア内の実ページに格納されているデータ要素を移行してもよい。退避用ティアは、例えば、最上位のティアと同種のＲＶＯＬで構成されたティアであってよい。【０２７２】
また、デフォルトティアは設定されなくて良い。ＶＶＯＬに対するホスト１０１からのライト対象のデータ要素は、なるべく上位のティアに書き込まれて良い。上位のティアの使用割合がティア閾値を超えた場合には、その上位のティアより一つ下位のティアにデータ要素が書き込まれて良い。【０２７３】
また、モニタテーブル４０９Ｂ及び４０９Ａのうち４０９Ａは必ずしも無くてもよい。この場合、モニタテーブル４０９Ｂが有する仮想ページ毎のＩ／Ｏ頻度を合計することでＶＶＯＬのＩ／Ｏ頻度が算出されても良い。【０２７４】
また、ページ単位の移行処理中断することもできる。例えば、再配置プログラム４１５は、管理者から中断の指示を受けた場合、移行ステータス“移行中”については移行ステータス“移行済”にするまで処理をすすめてから、ページ単位の移行処理を中断することができる。プログラム４１５は、例えば、中断の指示を受けてから一定時間後に、又は、再開の指示を受けたとき、移行ページテーブル４１１を基に移行処理を再開しても良い。或いは、プログラム４１５は、中断の指示を受けた場合、移行ページテーブル４１１を破棄し、次の移行処理の際には、アクティブのモニタテーブル４０９を基に移行ページテーブル４１１を作成しても良い。【０２７５】
また、本実施例では、Thin ProvisioningのＶＶＯＬ２０３は、ホスト１０１から仮想ページのあるアドレスへのライト要求に応じて実ページが割り当てられるものであるとしたが、本発明はこの場合に限られるものでなく、以下の例に挙げるものも好ましい。これらの例の場合でも、実際に使用される容量の削減を実現できるからである。【０２７６】
１つ目の例は、次のとおりである。すなわち、ＶＶＯＬ２０３の複数の仮想ページのうちの一部の仮想ページに対しては又はＶＶＯＬ２０３の各仮想ページに含まれる一部の領域は、ホスト１０１から仮想ページのあるアドレスへのライト要求を受信する前に事前に実領域が割り当てられていて（プレアロケーション）、ホスト１０１から仮想ページのあるアドレスへのライト要求に応じて、既に割当済みの領域で十分でなく更なる割当が必要な場合に、追加の実領域が割り当てられる。【０２７７】
２つ目の例は、次のとおりである。すなわち、ＶＶＯＬ２０３の複数の仮想ページは、ホスト１０１から仮想ページのあるアドレスへのライト要求を受信する前に事前にゼロデータが格納されている実領域や制御用の領域（これらの領域はＳＳＤなどの記憶デバイス上の領域に対応するものである）に仮に割り当てられていて（仮アロケーション）、ホスト１０１から仮想ページのあるアドレスへのライト要求に応じて、仮の割当領域からデータが格納されるべき実ページへ割当先が変更される（本アロケーション)。この場合、本アロケーション実施前にホスト１０１から仮想ページのあるアドレスへリード要求を受信した場合、仮アロケーション先の実領域や制御用の領域に格納されているゼロデータがホスト１０１へ応答されることになる。【０２７８】
また、本実施例では、複数のプール２０１を一元的に管理するべく１つのテーブルで複数のプール２０１を管理することにしたが、本発明はそれに限られることなく、各プール２０１毎に実ページ２０７を一元的に管理するべく、プール２０１毎に管理用のテーブル（テーブル形式以外の形式の情報でも良い）を分けることも好ましい。【０２７９】
また、ティア３０３の種類は、本実施例で記載したＳＳＤ、ＨＤＤ−ＳＡＳ、ＨＤＤ−ＳＡＴＡなどの属性毎に分類されることに限られるものでなく、ＦＣインタフェースを有するＨＤＤや、ＨＤＤ形式でない記憶デバイス、例えばフラッシュメモリなどの半導体記憶媒体で構成されたデバイス、等の属性毎に分類されることも好ましい。この場合、各ティア３０３に関連付けられる仮想ページの属性や各ティア３０３に含まれる各実ページの属性も、本実施例で記載したＳＳＤ、ＨＤＤ−ＳＡＳ、ＨＤＤ−ＳＡＴＡなどの属性毎に分類されることに限られるものでなく、ＦＣインタフェースを有するＨＤＤや、ＨＤＤ形式でない記憶デバイス、例えばフラッシュメモリなどの半導体記憶媒体で構成されたデバイス、等の属性毎に分類されることになる。【０２８０】
さらに、ティア３０３の種類は、上記記憶デバイスのタイプという属性だけで分類されることに限られるものでもなく、上記記憶デバイスのタイプとＲＡＩＤ１からＲＡＩＤ５等のＲＡＩＤタイプとを組み合わせた属性や、上記記憶デバイスのタイプと上記記憶デバイスの性能（アクセス速度など）や記憶容量とＲＡＩＤ１からＲＡＩＤ５等のＲＡＩＤタイプとを組み合わせた属性毎に分類されることも好ましい。これらの場合、各ティア３０３に関連付けられる仮想ページの属性や各ティア３０３に含まれる各実ページの属性も、上記記憶デバイスのタイプという属性だけで分類されることに限られるものでもなく、上記記憶デバイスのタイプとＲＡＩＤ１からＲＡＩＤ５等のＲＡＩＤタイプとを組み合わせた属性や、上記記憶デバイスのタイプと上記記憶デバイスの性能（アクセス速度など）や記憶容量とＲＡＩＤ１からＲＡＩＤ５等のＲＡＩＤタイプとを組み合わせた属性毎に分類されることになる。
【実施例２】
【０２８１】
以下、本発明の実施例２を説明する。その際、実施例１との相違点を主に説明し、実施例１との共通点については説明を省略或いは簡略する（これは、後の実施例３以降についても同様である）。【０２８２】
本発明の実施例２では、Ｉ／Ｏ頻度に代えて又は加えて、ＶＶＯＬ毎又は仮想ページ毎の最終Ｉ／Ｏ時刻を基に、ページ単位の移行処理が行われる。最終Ｉ／Ｏ時刻は、実施例１で説明したように、実ページにデータ要素が書き込まれた場合に、モニタテーブル４０９に登録される。再配置プログラムは、仮想ページのＩ／Ｏ頻度とその仮想ページ内のデータ要素を有するティアのティアレンジとの関係に代えて又は加えて、仮想ページの最終Ｉ／Ｏ時刻を基に、移行ページテーブル４１１に登録する仮想ページを決定する。例えば、最終Ｉ／Ｏ時刻が現在の時刻から所定時間以上に過去である仮想ページが、移行ページテーブル４１１に登録されて良い。その際、その仮想ページ内のデータ要素の移行先は、その仮想ページ内のデータ要素を有するティアよりも下位のティアとされて良い。なぜなら、最終Ｉ／Ｏ時刻が古い仮想ページ内のデータ要素は、今後も入出力される可能性が低く、より下位のティアに配置するのが好ましいと考えられるからである。
【実施例３】
【０２８３】
本発明の実施例３では、シーケンシャルアクセスとランダムアクセスのどちらのアクセスパターンでＩ／Ｏが行われるかを基に、ページ単位の移行処理が行われる。【０２８４】
Ｉ／Ｏ対象のデータが、シーケンシャルアクセスされるデータならば、Ｉ／Ｏ先のＲＶＯＬの基になっているＰＤＥＶがＨＤＤの場合に、ＨＤＤのシークの時間が短くて済む。この場合、比較的性能が低いＨＤＤにＩ／Ｏ対象のデータが入っていても、シーケンシャルアクセスされるが故に、性能低下の度合いは小さいと考えられる。また、シーケンシャルアクセスされるデータを安価で性能の低いＰＤＥＶに移すことで、ランダムアクセスされる他のデータのために、性能の高いＰＤＥＶに基づく実ページのより多くをフリーにすることができる。このため、ストレージシステム全体のＩ／Ｏ性能の向上が期待できる。【０２８５】
実施例３では、例えば、Ｉ／Ｏ制御プログラム４１４が、実ページにデータ要素を書き込んだ場合に、Ｉ／Ｏ先の仮想ページについてのアクセスパターン（シーケンシャルアクセスかランダムアクセスか）を、例えばアロケーションテーブル４０７に登録する。アロケーションテーブル４０７には、仮想ページ毎に、アクセスパターン毎の実行頻度が書き込まれても良い。【０２８６】
再配置プログラム４１５は、例えば、移行ページテーブル４１１の作成において、仮想ページに対するアクセスパターンがシーケンシャルアクセスであれば（或いは、シーケンシャルアクセスの実行頻度が高ければ）、その仮想ページに対応した移行先として、より下位のティアを選択して良い。また、例えば、再配置プログラム４１５は、仮想ページのＩ／Ｏ頻度が、その仮想ページに割り当てられている実ページを有するティアのティアレンジの最大値より高くても、その実ページ内のデータ要素を移行対象としなくて良い。
【実施例４】
【０２８７】
本発明の実施例４では、二つのモニタテーブル４０９は、交互に使用されることに代えて、所定のタイミングで編集不可能にＣＭＰＫ１１９又は他の記憶資源に保存される。例えば、月曜日のモニタ結果を表すモニタテーブル４０９が月曜日のテーブル４０９として保存され、土曜日のモニタ結果を表すモニタテーブル４０９が土曜日のテーブル４０９として月曜日のモニタテーブル４０９とは別に保存されてよい。このようにすることで、再配置処理の運用の運用方法の選択肢が増える。【０２８８】
実施例４では、例えば、再配置プログラム４１５が、再配置直前に、アクティブのモニタテーブル４０９を保存するかどうかを、管理者に問い合わせる等の方法により決定する。保存する場合には、再配置処理の直前に、プログラム４１５が、モニタテーブル４０９を管理装置１０７又は別の記憶資源に保存する。プログラム４１５は、移行ページテーブル４１１の作成のために参照するモニタテーブル４０９をどれにするかを、保存されている複数のモニタテーブル４０９から選択し、選択したモニタテーブル４０９を用いて、移行ページテーブル４１１を作成することができる。
【実施例５】
【０２８９】
本発明の実施例５では、Ｉ／Ｏ頻度とティアレンジとの比較方法として、絶対値比較と相対値比較のいずれかを選択して設定することができる。【０２９０】
「絶対値比較」とは、ページ単位の移行処理について言えば、仮想ページのＩ／Ｏ頻度（例えば、合計Ｉ／Ｏ数、平均Ｉ／Ｏ数、又は最大Ｉ／Ｏ数）を、その仮想ページを有するＶＶＯＬ内の他の仮想ページのＩ／Ｏ頻度を考慮することなく、そのまま、ティアレンジと比較することである。絶対値比較によれば、他の仮想ページ又はＶＶＯＬのＩ／Ｏ頻度を考慮する必要がないので、比較に要する時間を短くすることができ、以って、再配置処理に要する時間を短くすることが期待できる。【０２９１】
「相対値比較」とは、ページ単位の移行処理について言えば、仮想ページのＩ／Ｏ頻度（例えば、合計Ｉ／Ｏ数、平均Ｉ／Ｏ数、又は最大Ｉ／Ｏ数）を、その仮想ページを有するＶＶＯＬ内の他の仮想ページのＩ／Ｏ頻度を基に修正し（正規化し）、修正後のＩ／Ｏ頻度をティアレンジと比較することである。具体的には、例えば、或る仮想ページ又はＶＶＯＬのＩ／Ｏ頻度が低くても、他の仮想ページ又は他のＶＶＯＬのＩ／Ｏ頻度がもっと低ければ、全体として、上記或る仮想ページ又はＶＶＯＬのＩ／Ｏ頻度はそれほど低く無いように修正される。また、例えば、或る仮想ページ又はＶＶＯＬのＩ／Ｏ頻度が高くても、他の仮想ページ又は他のＶＶＯＬのＩ／Ｏ頻度がもっと高ければ、全体として、上記或る仮想ページ又はＶＶＯＬのＩ／Ｏ頻度はそれほど高く無いように修正される。相対値比較によれば、モニタ時間帯での全体のＩ／Ｏ状況に応じた最適な配置が期待できる。【０２９２】
また、本実施例では、比較対象のＩ／Ｏ頻度として、例えば、平均Ｉ／Ｏ数とするか最大Ｉ／Ｏ数とするかを選択して設定することができる。平均Ｉ／Ｏ数によれば、モニタ時間帯全体でのＩ／Ｏ頻度に応じてデータ要素を配置することが期待できる。最大Ｉ／Ｏ数によれば、Ｉ／Ｏ頻度が一時的に大きくなってもＩ／Ｏ性能が下がらないようにデータ要素を配置することが期待できる。【０２９３】
比較方法を絶対値比較とするか相対値比較とするか、及び、比較対象を平均Ｉ／Ｏ数とするか最大Ｉ／Ｏ数とするかは、例えば、前述したプール定義ＧＵＩ又はＶＶＯＬ作成ＧＵＩを通じて管理者が設定することができる。プールについての比較方法及び比較対象は、例えば図２０に示すようにプール管理テーブル４４０３に登録され、ＶＶＯＬについての比較方法及び比較対象は、例えば図２０に示すようにＶＶＯＬ管理テーブル４４０４に登録される（図３２及び図２０には、図７又は図８に示したカラムが省略されているが、実施例２でも、そのカラムは存在する）。なお、ＶＶＯＬとそれに割り当てられているプールについて比較方法又は比較対象が異なっている場合には、実施例１と同様に、ＶＶＯＬについての設定が優先されて良い。【０２９４】
図３３は、比較方法／比較対象の設定処理のフローを示す。【０２９５】
比較方法／比較対象の設定処理は、例えば、プール作成処理及び／又はＶＶＯＬ作成処理の中で行われてよい。【０２９６】
ＵＩ制御プログラム４１３が、或るプール又は或るＶＶＯＬ（図３３の説明において「対象プール又は対象ＶＶＯＬ」と言う）について、相対値比較の指定を受けた場合（Ｓ４２０１：ＮＯ）、対象プール又は対象ＶＶＯＬについて、比較方法“相対値比較”をテーブル４４０３又は４４０４に設定する（Ｓ４２０２）。【０２９７】
プログラム４１３が、対象プール又は対象ＶＶＯＬについて、絶対値比較の指定を受けた場合（Ｓ４２０１：ＹＥＳ）、対象プール又は対象ＶＶＯＬについて、比較方法“絶対値比較”をテーブル４４０３又は４４０４に設定する（Ｓ４２０３）。【０２９８】
プログラム４１３が、対象プール又は対象ＶＶＯＬについて、最大Ｉ／Ｏ数の指定を受けた場合（Ｓ４２０４：ＮＯ）、対象プール又は対象ＶＶＯＬについて、比較対象“最大Ｉ／Ｏ数”をテーブル４４０３又は４４０４に設定する（Ｓ４２０５）。【０２９９】
プログラム４１３が、対象プール又は対象ＶＶＯＬについて、平均Ｉ／Ｏ数の指定を受けた場合（Ｓ４２０４：ＹＥＳ）、対象プール又は対象ＶＶＯＬについて、比較対象“平均Ｉ／Ｏ数”をテーブル４４０３又は４４０４に設定する（Ｓ４２０６）。【０３００】
なお、比較方法及び／又は比較対象は、管理者から手動の設定に代えて、自動で設定又は変更されても良い。例えば、プログラム４１４又は４１５は、モニタテーブル４０９Ｂを基に、ＶＶＯＬ又はプールのＩ／Ｏの状況をチェックし、チェックしたＩ／Ｏの状況に応じて、テーブル４４０３及び／又は４４０３に設定済みの「比較方法」及び／又は「比較対象」の値を変更して良い。例えば、一つのＶＶＯＬにおける全ての仮想ページのＩ／Ｏ頻度（又は、複数のＶＶＯＬのＩ／Ｏ頻度）のばらつきが所定範囲に収まっていないことが検出された場合には、「比較方法」が、“相対値比較”から“絶対値比較”に変更され、逆に、そのばらつきが所定範囲に収まっていることが検出された場合には、「比較方法」が、“絶対値比較”から“相対値比較”に変更されてよい。また、例えば、一時的にＩ／Ｏ頻度が急増することが検出された場合には、「比較対象」が、“平均Ｉ／Ｏ数”から“最大Ｉ／Ｏ数”に変更され、Ｉ／Ｏ頻度のばらつきが所定範囲に収まっていることが検出された場合には、「比較対象」が、“最大Ｉ／Ｏ数”から“平均Ｉ／Ｏ数”に変更されて良い。【０３０１】
以上、本発明の幾つかの実施例を説明したが、本発明は、これらの実施例に限定されるものでなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。【０３０２】
例えば、少なくとも一つのＰＶＯＬが、仮想的なＰＶＯＬであっても良く、ＰＶＯＬの基になるＰＤＥＶが、別のストレージシステムに存在しても良い。この場合、ＰＶＯＬを構成する実ページに書き込まれるデータ要素は、そのＰＶＯＬの基になっている、別のストレージシステム内のＰＤＥＶに書き込まれて良い。【０３０３】
また、例えば、モニタテーブル４０９は、実ページに対するＩ／Ｏが行われたか否かに関わらず、仮想ページに対するＩ／Ｏが発生する都度に更新されてもよい。【０３０４】
また、例えば、ページ単位の移行処理において、移行先実ページの割当て先の仮想ページ又はその仮想ページを有するＶＶＯＬについて、移行先実ページにデータ要素が移行されたときにＩ／Ｏ頻度及び最終Ｉ／Ｏ時刻が更新されなくても良い。移行後に、その仮想ページ又はＶＶＯＬに対するＩ／Ｏに応じてその仮想ページ又はＶＶＯＬに割り当てられている実ページにＩ／Ｏが行われるときに、その仮想ページ又はＶＶＯＬのＩ／Ｏ頻度及び最終Ｉ／Ｏ時刻が更新されて良い。【０３０５】
また、例えば、ＲＶＯＬ種類は、ＲＶＯＬの基になっているＲＧを構成するＰＶＥＶの種類に代えて又は加えて、そのＲＧのＲＡＩＤレベル（ＲＡＩＤ１、ＲＡＩＤ５（３Ｄ＋１Ｐ）、など）に基づいても良い。このため、例えば、第１のＲＧと第２のＲＧをそれぞれ構成するＰＤＥＶの種類が同じであっても、第１のＲＧと第２のＲＧのＲＡＩＤレベルが異なっていれば、第１のＲＧに基づく第１のＲＶＯＬと、第２のＲＧに基づく第２のＲＶＯＬは種類が異なることになり、それ故、第１のＲＶＯＬと第２のＲＶＯＬが異なるティアに属して良い。ティアは、ＲＶＯＬ種類に限らず、他の観点から定義されても良い。【０３０６】
また、例えば、一つの実ページの容量は、一つの仮想ページに複数の実ページが割り当てられるような容量であっても良い。この場合、ページ単位の移行は、例えば、仮想ページに割り当てられている複数の移行元実ページから、複数の移行先実ページにデータ要素がそれぞれ移行されてよい。【０３０７】
また、例えば、一つの実ページの容量は、一つの実ページが複数の仮想ページに割り当てられるような容量であっても良い。この場合、ページ単位の移行処理では、複数の仮想ページが選択され、それら複数の仮想ページについて、一つの移行元実ページから移行先実ページにデータ要素が移行されてよい。【０３０８】
また、プールＶＯＬは、外部のストレージシステムが提供するＶＯＬに対応付けられた仮想的な論理ボリュームであっても良い。この場合、プールＶＯＬの実ページに書き込まれるデータ要素は、そのプールＶＯＬに対応する、外部のストレージシステムのＶＯＬに書き込まれる。【０３０９】
また、Ｉ／Ｏ頻度の単位は、例えば、ＩＯＰＳ（１秒間当たりのＩ／Ｏの数）でも良い。【０３１０】
また、度数分布におけるＩ／Ｏ頻度幅は、１でも良い（つまり、Ｉ／Ｏ頻度毎に仮想ページ数がカウントされても良い）。
【符号の説明】
【０３１１】
１０３…ストレージシステム
【図１】
2011077489.tif 000003
【図２】
2011077489.tif 000004
【図３】
2011077489.tif 000005
【図４】
2011077489.tif 000006
【図５】
2011077489.tif 000007
【図６】
2011077489.tif 000008
【図７】
2011077489.tif 000009
【図８】
2011077489.tif 000010
【図９】
2011077489.tif 000011
【図１０】
2011077489.tif 000012
【図１１】
2011077489.tif 000013
【図１２】
2011077489.tif 000014
【図１３】
2011077489.tif 000015
【図１４】
2011077489.tif 000016
【図１５】
2011077489.tif 000017
【図１６】
2011077489.tif 000018
【図１７】
2011077489.tif 000019
【図１８】
2011077489.tif 000020
【図１９】
2011077489.tif 000021
【図２０】
2011077489.tif 000022
【図２１】
2011077489.tif 000023
【図２２】
2011077489.tif 000024
【図２３】
2011077489.tif 000025
【図２４】
2011077489.tif 000026
【図２５】
2011077489.tif 000027
【図２６】
2011077489.tif 000028
【図２７】
2011077489.tif 000029
【図２８】
2011077489.tif 000030
【図２９】
2011077489.tif 000031
【図３０】
2011077489.tif 000032
【図３１】
2011077489.tif 000033
【図３２】
2011077489.tif 000034
【図３３】
2011077489.tif 000035
【図３４】
2011077489.tif 000036
【図３５】
2011077489.tif 000037
【図３６】
2011077489.tif 000038
【図３７】
2011077489.tif 000039
【図３８】
2011077489.tif 000040
【手続補正書】
【提出日】平成24年1月26日(2012.1.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の第一の記憶デバイスと複数の第二の記憶デバイスを含む複数の記憶デバイスであって、前記複数の第一の記憶デバイスの性能は前記複数の第二の記憶デバイスの性能より高い複数の記憶デバイスと、
前記複数の第一の記憶デバイスにより提供される第一ティア記憶領域と前記複数の第二の記憶デバイスにより提供される第二ティア記憶領域とを含む記憶プールを管理し、前記第一ティア記憶領域の第一の記憶領域が割り当てられる第一の仮想記憶領域と、前記第二ティア記憶領域の第二の記憶領域が割り当てられる第二の仮想記憶領域を少なくとも含む複数の仮想記憶領域を含む仮想ボリュームを提供するコントローラと
を備え、
（Ａ）前記第一の仮想記憶領域におけるＩ／Ｏ負荷が第一の閾値を下回る場合、前記コントローラは、前記第一の仮想記憶領域に割り当てられる前記第一の記憶領域におけるデータを前記第二ティア記憶領域における第三の記憶領域にコピーし、前記第一の記憶領域の代わりに前記第三の記憶領域を前記第一の仮想記憶領域に割り当て、
（Ｂ）前記第二の仮想記憶領域におけるＩ／Ｏ負荷が前記第一の閾値より大きい第二の閾値を超える場合、前記コントローラは、前記第二の仮想記憶領域に割り当てられる前記第二の記憶領域におけるデータを前記第一ティア記憶領域における第四の記憶領域にコピーし、前記第二の記憶領域の代わりに前記第四の記憶領域を前記第二の仮想記憶領域に割り当てる、
ストレージシステム。
【請求項２】
前記コントローラは、前記複数の仮想記憶領域の各々におけるＩ／Ｏ負荷を使用することによりティア境界値を決定し、
前記コントローラは、前記ティア境界値より低い値を前記第一の閾値として設定し、前記ティア境界値より高い値を前記第二の閾値として設定する、
請求項１記載のストレージシステム。
【請求項３】
前記ティア境界値は、複数の仮想記憶領域のＩ／Ｏ負荷の最高値からＩ／Ｏ負荷の最低値にかけてＩ／Ｏ負荷を累積していくことをその累積値が所定の値に達するまで前記コントローラによって行うことにより決定され、
前記第一の閾値は、前記ティア境界値より或るマージン分低い値であり、
前記第二の閾値は、前記ティア境界値より或るマージン分高い値である、
請求項２記載のストレージシステム。
【請求項４】
前記コントローラは前記仮想ボリュームにおける仮想記憶領域に対しての書き込み要求を受領し、前記コントローラは前記第一のティア記憶領域もしくは前記第二のティア記憶領域における記憶領域を前記仮想記憶領域に割り当てる、
請求項１乃至３のうちのいずれか１項に記載のストレージシステム。
【請求項５】
前記第一の仮想記憶領域における前記Ｉ／Ｏ負荷は、前記第一の仮想記憶領域におけるＩ／Ｏ数である、
請求項１乃至４のうちのいずれか１項に記載のストレージシステム。
【請求項６】
前記第一の仮想記憶領域における前記Ｉ／Ｏ負荷は、管理装置により特定される監視時間帯内での、前記第一の仮想記憶領域におけるＩ／Ｏ数である、
請求項１乃至５のうちのいずれか１項にストレージシステム。
【請求項７】
管理装置により特定される監視時間帯内で、前記コントローラは、前記仮想ボリュームの前記第一の仮想記憶領域における前記Ｉ／Ｏ負荷を監視する、
請求項１乃至６のうちのいずれか１項に記載のストレージシステム。
【請求項８】
前記コントローラは、管理装置により特定される再配置性能時間で前記（Ａ）と（Ｂ）を実行することを始める、
請求項１乃至７のうちのいずれか１項に記載のストレージシステム。
【請求項９】
前記コントローラは、データを一時的に記憶するキャッシュメモリを含み、
前記コントローラは、前記キャッシュメモリに記憶されるデータを記憶する仮想記憶領域にＩ／Ｏをカウントしないように構成される、
請求項１乃至８のうちのいずれか１項に記載のストレージシステム。
【請求項１０】
前記コントローラは、前記第一のティア記憶領域への第一のティア閾値と前記第二のティア記憶領域への第二のティア閾値を管理するよう構成され、
前記仮想ボリュームにおける一以上の仮想記憶領域に割り当てられる一以上の第一のティア記憶領域の容量が前記第一のティア閾値を超える場合、あるいは前記仮想ボリュームにおける一以上の仮想記憶領域に割り当てられる一以上の第二のティア記憶領域の容量が前記第二のティア閾値を超える場合、前記コントローラは、エラーコマンドを管理装置に発する、
請求項１乃至９のうちのいずれか１項に記載のストレージシステム。
【請求項１１】
前記コントローラは、前記第一のティア記憶領域への第一のティア閾値と前記第二のティア記憶領域への第二のティア閾値を管理するよう構成され、
前記仮想ボリュームにおける一以上の仮想記憶領域に割り当てられる一以上の第一のティア記憶領域の容量が前記第一のティア閾値を超える場合、あるいは前記仮想ボリュームにおける一以上の仮想記憶領域に割り当てられる一以上の第二のティア記憶領域の容量が前記第二のティア閾値を超える場合、前記コントローラは、前記（Ａ）と（Ｂ）を実行することを始める、
請求項１乃至１０のうちのいずれか１項に記載のストレージシステム。
【請求項１２】
前記複数の第一の記憶デバイスの第一のディスクタイプは、半導体ドライブタイプであり、
前記複数の第二の記憶デバイスの第二のディスクタイプは、ハードディスクドライブタイプである、
請求項１乃至１１のうちのいずれか１項に記載のストレージシステム。
【請求項１３】
前記複数の第一の記憶デバイスの第一のディスクタイプは、シリアル接続SCSIインターフェースを含むハードディスクドライブタイプであり、
前記複数の第二の記憶デバイスの第二のディスクタイプは、シリアルATAインターフェースを含むハードディスクドライブタイプである、
請求項１乃至１１のうちのいずれか１項に記載のストレージシステム。
【請求項１４】
複数の第一の記憶デバイスと複数の第二の記憶デバイスを含む複数の記憶デバイスであって、前記複数の第一の記憶デバイスの性能は前記複数の第二の記憶デバイスの性能と異なる複数の記憶デバイスと、
前記複数の第一の記憶デバイスにより提供される第一ティア記憶領域と前記複数の第二の記憶デバイスにより提供される第二ティア記憶領域を含む記憶プールを管理し、前記第一ティア記憶領域の第一の仮想記憶領域が割り当てられる第一の仮想記憶領域と、前記第二ティア記憶領域の第二の記憶領域が割り当てられる第二の仮想記憶領域を少なくとも含む仮想ボリュームを提供するように構成されるコントローラと
を備え、
前記コントローラは、前記第一のティア記憶領域の記憶領域が割り当てられるべき前記仮想ボリュームの仮想記憶領域におけるＩ／Ｏ負荷のレンジである第一のティアレンジと、前記第二のティア記憶領域の記憶領域が割り当てられるべき前記仮想ボリュームの仮想記憶領域におけるＩ／Ｏ負荷のレンジである第二のティアレンジとを管理するように構成され、前記第一のティアレンジの一部が前記第二のティアレンジの一部に重複し、
（Ａ）前記第一の仮想記憶領域のＩ／Ｏ負荷が前記第一のティアレンジを超える場合、前記コントローラは、前記第一の仮想記憶領域に割り当てられる前記第一の記憶領域におけるデータを前記第二のティア記憶領域における第三の記憶領域にコピーし、前記第一の記憶領域の代わりに前記第三の記憶領域を前記第一の仮想記憶領域に割り当て、
（Ｂ）前記第二の仮想記憶領域のＩ／Ｏ負荷が前記第二のティアレンジを超える場合、前記コントローラは、前記第二の仮想記憶領域に割り当てられる前記第二の記憶領域におけるデータを前記第二のティア記憶領域における第四の記憶領域にコピーし、前記第二の記憶領域の代わりに前記第四の記憶領域を前記第二の仮想記憶領域に割り当てる、
ストレージシステム。
【請求項１５】
前記コントローラは、前記複数の仮想記憶領域の各々におけるＩ／Ｏ負荷を使用することによりティア境界値を決定し、
前記コントローラは、前記ティア境界値より低い値を前記第一のティアレンジの下限として設定し、前記ティア境界値より高い値を前記第二のティアレンジの上限として設定する、
請求項１４に記載のストレージシステム。
【請求項１６】
前記ティア境界値は、複数の仮想記憶領域のＩ／Ｏ負荷の最高値からＩ／Ｏ負荷の最低値にかけてＩ／Ｏ負荷を累積していくことをその累積値が所定の値に達するまで前記コントローラによって行うことにより決定され、
前記第一ティアレンジの下限が、前記ティア境界値より或るマージン分低い値であり、
前記第二ティアレンジの上限が、前記ティア境界値より或るマージン分高い値である、
請求項１５に記載のストレージシステム。
【請求項１７】
前記コントローラは、前記仮想ボリュームにおける仮想記憶領域に対しての書き込み要求を受領し、前記コントローラは前記第一のティア記憶領域もしくは前記第二のティア記憶領域における記憶領域を前記仮想記憶領域に割り当てる、
請求項１４乃至１６のうちのいずれか１項に記載のストレージシステム。
【請求項１８】
前記Ｉ／Ｏ負荷がＩ／Ｏ要求数である、
請求項１４乃至１７のうちのいずれか１項に記載のストレージシステム。
【請求項１９】
前記Ｉ／Ｏ負荷が、管理装置により特定される監視時間帯内でのＩ／Ｏ要求数である、
請求項１４乃至１８のうちのいずれか１項に記載のストレージシステム。
【請求項２０】
管理装置により特定される監視時間帯内で、前記コントローラは、前記仮想ボリュームの前記仮想記憶領域における前記Ｉ／Ｏ負荷を監視する、
請求項１４乃至１９のうちのいずれか１項に記載のストレージシステム。
【請求項２１】
前記コントローラは、管理装置により特定された再配置性能時間で前記（Ａ）と（Ｂ）を実行することを始める、
請求項１４乃至２０のうちのいずれか１項に記載のストレージシステム。
【請求項２２】
前記コントローラは、データを一時的に記憶するキャッシュメモリを含み、
前記コントローラは、前記キャッシュメモリに記憶されるデータを記憶する仮想記憶領域にＩ／Ｏ要求をカウントしないように構成される、
請求項１４乃至２１のうちのいずれか１項に記載のストレージシステム。
【請求項２３】
前記コントローラは、前記第一のティア記憶領域への第一のティア閾値と前記第二のティア記憶領域への第二のティア閾値を管理するよう構成され、
前記仮想ボリュームにおける一以上の仮想記憶領域に割り当てられる一以上の第一のティア記憶領域の容量が前記第一のティア閾値を超える場合、あるいは前記仮想ボリュームにおける一以上の仮想記憶領域に割り当てられる一以上の第二のティア記憶領域の容量が前記第二のティア閾値を超える場合、前記コントローラは、エラーコマンドを管理装置に発する、
請求項１４乃至２２のうちのいずれか１項に記載のストレージシステム。
【請求項２４】
前記コントローラは、前記第一のティア記憶領域への第一のティア閾値と前記第二のティア記憶領域への第二のティア閾値を管理するよう構成され、
前記仮想ボリュームにおける一以上の仮想記憶領域に割り当てられる一以上の第一のティア記憶領域の容量が前記第一のティア閾値を超える場合、あるいは前記仮想ボリュームにおける一以上の仮想記憶領域に割り当てられる一以上の第二のティア記憶領域の容量が前記第二のティア閾値を超える場合、前記コントローラは、前記（Ａ）と（Ｂ）を実行することを始める、
請求項１４乃至２３のうちのいずれか１項に記載のストレージシステム。
【請求項２５】
前記複数の第一の記憶デバイスの第一のディスクタイプは、半導体ドライブタイプであり、
前記複数の第二の記憶デバイスの第二のディスクタイプは、ハードディスクドライブタイプである、
請求項１４乃至２４のうちのいずれか１項に記載のストレージシステム。
【請求項２６】
前記複数の第一の記憶デバイスの第一のディスクタイプは、シリアル接続SCSIインターフェースを含むハードディスクドライブタイプであり、
前記複数の第二の記憶デバイスの第二のディスクタイプは、シリアルATAインターフェースを含むハードディスクドライブタイプである、
請求項１４乃至２４のうちのいずれか１項に記載のストレージシステム。
【国際調査報告】
2011077489.tif 000041
2011077489.tif 000042
2011077489.tif 000043
2011077489.tif 000044
2011077489.tif 000045
2011077489.tif 000046