(57)【要約】【課題】ストレージシステム全体としてデータの配置が適切となるよう制御する。【解決手段】ストレージシステムが、複数種類のメディア及びコントローラを含み、複数の論理ボリュームを提供し、再配置ポリシに従って特定したデータをそのデータが記憶されているメディアからそのメディアとは別の種類のメディアにマイグレーションする再配置処理を行う。管理システムが、再配置処理の効果が無いとみなされる条件であるマイグレーションポリシに適合する論理ボリュームを、再配置処理の対象となる一以上の論理ボリュームのグループである再配置グループから探し、見つけた論理ボリューム内のデータを再配置グループ外に出すことストレージシステムに実行させる。【選択図】図１
2011186794.tif 000002
【特許請求の範囲】
【請求項１】
複数種類のメディア及びコントローラを含み複数の論理ボリュームを提供し再配置処理を行うストレージシステムストレージシステム、に接続された管理システムであって、
下記の（１）乃至（３）の情報を記憶する記憶資源と、
（１）前記ストレージシステムが提供する複数の論理ボリュームに関する情報である構成管理情報、
（２）前記再配置処理の対象となる一以上の論理ボリュームのグループである再配置グループを表す情報である再配置グループ情報、
（３）前記再配置処理の効果が無いとみなされる条件であるマイグレーションポリシを表す情報であるマイグレーションポリシ情報、
前記記憶資源に接続されたプロセッサと
を有し、
前記再配置処理は、再配置ポリシに従って特定したデータを、そのデータが記憶されているメディアから、そのメディアとは別の種類のメディアにマイグレーションする処理であり、
前記プロセッサは、
（Ａ）前記マイグレーションポリシ情報が表すマイグレーションポリシに適合する論理ボリュームを前記再配置グループから探し、
（Ｂ）前記（Ａ）によって見つけた論理ボリューム内のデータを前記再配置グループ外に出すことを前記ストレージシステムに実行させる、
管理システム。
【請求項２】
請求項１記載の管理システムであって、
前記複数の論理ボリュームには、複数の仮想領域で構成された仮想ボリュームがあり、
前記ストレージシステムは、前記複数種類のメディアで構成された記憶領域であるプールと、複数種類の物理リソースとを有し、
各種メディアは、同種の物理リソースに基づいており、
前記メディアの種類は、前記メディアの基になっている物理リソースの種類に依存し、
前記ストレージシステムは、前記仮想ボリュームの仮想領域が指定されたＩ／Ｏ（Input/Output）要求をホスト装置から受信した場合、前記仮想ボリュームにおけるＩ／Ｏ先の仮想領域に実領域が割り当てられていなければ、前記プールにおけるいずれかのメディアから前記Ｉ／Ｏ先の仮想領域に実領域を割り当て、割り当てた実領域に対してＩ／Ｏを行い、前記Ｉ／Ｏ先の仮想領域に実領域が割り当てられていれば、その実領域に対してＩ／Ｏを行い、
前記ストレージシステムは、前記仮想ボリュームの仮想領域が指定されたＩ／Ｏ要求をホスト装置から受信した場合、又は、その仮想領域に割り当てられた実領域に対するＩ／Ｏを行った場合、その仮想領域についてのＩ／Ｏ状況を更新し、
前記ストレージシステムは、下記の（ａ）及び（ｂ）の処理を含んだ前記再配置処理を行い、
（ａ）前記仮想ボリュームにおける第１の仮想領域についてのＩ／Ｏ状況が、前記第１の仮想領域に割り当てられている第１の実領域を有するメディアについてのＩ／Ｏ状況条件を満たしていない場合、前記第１の実領域内のデータを、前記第１の仮想領域のＩ／Ｏ状況が適合するＩ／Ｏ状況条件に対応するメディア内の第２の実領域にマイグレーションする、
（ｂ）前記第１の仮想領域に、前記第１の実領域に代えて前記第２の実領域を割り当てる、
前記マイグレーションポリシは、前記データ配置に関する条件である配置条件と、その配置条件に適合し続けた期間に関する条件である期間条件とを含み、
前記（Ａ）において、前記プロセッサが、データ配置が前記配置条件に適合し続けた期間が前記期間条件を満たす仮想ボリュームを探す、
管理システム。
【請求項３】
請求項２記載の管理システムであって、
前記複数の論理ボリュームには、種類の異なる複数の実ボリュームがあり、
各実ボリュームは、１種類以上の物理リソースに基づいており、
実ボリュームの種類は、その実ボリュームの基になっている物理リソースの種類に依存し、
前記（Ｂ）において、前記プロセッサは、前記（Ａ）で見つかった仮想ボリュームのデータ配置と、各実ボリュームの基になっている物理リソースの種類とに基づいて、マイグレーション先の実ボリュームを決定する、
管理システム。
【請求項４】
請求項３記載の管理システムであって、
前記マイグレーション先の実ボリュームは、前記（Ａ）で見つかった仮想ボリュームに割り当てられている１以上の実領域のうち最も多くの実領域を有するメディアの種類と同じ種類の物理リソースに基づく実ボリュームである、
管理システム。
【請求項５】
請求項３記載の管理システムであって、
前記マイグレーション先の実ボリュームは、物理リソースの種類毎の容量が前記（Ａ）で見つかった仮想ボリュームについてのメディア種類毎の実容量以上となっている実ボリュームであり、
メディア種類の実容量とは、そのメディア種類のメディアから割り当てられている１以上の実領域の総記憶容量である、
管理システム。
【請求項６】
請求項３記載の管理システムであって、
前記マイグレーション先の実ボリュームは、前記（Ａ）で見つかった仮想ボリュームのＩ／Ｏ性能以上のＩ／Ｏ性能を有する実ボリュームである、
管理システム。
【請求項７】
請求項２記載の管理システムであって、
前記構成管理情報は、前記仮想ボリューム内のデータのうち、どのぐらいのデータがどの種類のメディアに配置されているかのデータ配置に関する情報を含み、
前記（Ａ）の処理は、定期的に又は不定期的に行われ、
前記（Ａ）において、前記プロセッサは、
（ａ１）前記構成管理情報を基に、前記仮想ボリュームのデータ配置が前記配置条件を満たすか否かを判定し、
（ａ２）前記（ａ１）の判定の結果が肯定的の場合、前記仮想ボリュームのデータ配置が前記配置条件を満たすと判定された時刻である開始時刻が管理されているか否かを判定し、
（ａ３）前記（ａ２）の判定の結果が否定的の場合、前記仮想ボリュームについて、前記配置条件が満たされたときの時刻を前記開始時刻として管理し、この（Ａ）の処理を終了し、
（ａ４）前記（ａ２）の判定の結果が肯定的の場合、前記開始時刻からの経過時間が前記期間条件に適合するか否かを判定し、
（ａ５）前記（ａ４）の判定の結果が否定的の場合、この（Ａ）の処理を終了し、
前記（Ａ）で見つかった仮想ボリュームは、前記（ａ４）の判定の結果が肯定的となった仮想ボリュームである、
管理システム。
【請求項８】
請求項２記載の管理システムであって、
前記マイグレーションポリシは、ユーザによって、仮想ボリューム毎に設定される、
管理システム。
【請求項９】
請求項２記載の管理システムであって、
前記マイグレーションポリシは、複数の条件セットと、前記複数の条件セットのうちのどの１以上の条件セットが満たされる必要があるかの条件である論理条件とで構成され、
各条件セットは、配置条件と期間条件とを含んだセットである、
管理システム。
【請求項１０】
請求項１記載の管理システムであって、
前記マイグレーション先の論理ボリュームは、前記（Ａ）で見つかった論理ボリュームのＩ／Ｏ性能以上のＩ／Ｏ性能を有する論理ボリュームである、
管理システム。
【請求項１１】
請求項３記載の管理システムであって、
前記マイグレーション先の論理ボリュームは、前記ホスト装置からＩ／Ｏが行われ得ない状態の論理ボリュームであり、
マイグレーションの後、前記マイグレーション先の論理ボリュームは、前記ホスト装置からＩ／Ｏが行われ得る状態となる、
管理システム。
【請求項１２】
請求項１記載の管理システムであって、
前記ストレージシステムが、前記複数種類のメディアに基づく二以上の物理リソースを含んだ複数の物理リソースを有し、
前記（Ｂ）において、前記プロセッサが、前記再配置グループに含まれている論理ボリュームに関わらない物理リソースを前記複数の物理リソースから特定し、特定された物理リソースに基づく論理ボリュームを新たに作成し、前記（Ａ）によって見つけた論理ボリューム内のデータを前記新たに作成した論理ボリュームに格納することを前記ストレージシステムに実行させ、
前記再配置グループに含まれない論理ボリュームとは、前記新たに作成した論理ボリュームである、
管理システム。
【請求項１３】
請求項１記載の管理システムであって、
前記（Ｂ）において、前記プロセッサが、前記（Ａ）によって見つけた論理ボリュームを前記再配置グループから外し、
前記再配置グループに含まれない論理ボリュームとは、前記再配置グループから外された、前記（Ａ）によって見つけた論理ボリュームである、
管理システム。
【請求項１４】
複数種類のメディア及びコントローラを含み複数の論理ボリュームを提供し再配置処理を行うストレージシステムと、
前記ストレージシステムに接続された管理システムと
を有し、
前記再配置処理は、再配置ポリシに従って特定したデータを、そのデータが記憶されているメディアから、そのメディアとは別の種類のメディアにマイグレーションする処理であり、
前記管理システムが、
（Ａ）前記再配置処理の効果が無いとみなされる条件であるマイグレーションポリシに適合する論理ボリュームを、前記再配置処理の対象となる一以上の論理ボリュームのグループである再配置グループから探し、
（Ｂ）前記（Ａ）によって見つけた論理ボリューム内のデータを前記再配置グループ外に出すことを前記ストレージシステムに実行させる、
管理システム。
【請求項１５】
複数種類のメディア及びコントローラを含み、複数の論理ボリュームを提供し、再配置ポリシに従って特定したデータをそのデータが記憶されているメディアからそのメディアとは別の種類のメディアにマイグレーションする再配置処理を行うストレージシステムでのデータの配置を制御する方法であって、
（Ａ）前記再配置処理の効果が無いとみなされる条件であるマイグレーションポリシに適合する論理ボリュームを、前記再配置処理の対象となる一以上の論理ボリュームのグループである再配置グループから探し、
（Ｂ）前記（Ａ）によって見つけた論理ボリューム内のデータを前記再配置グループに含まれない論理ボリュームに出すことを前記ストレージシステムに実行させる、
データ配置制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム内のデータの配置の制御に関する。
【背景技術】
【０００２】
近年、１以上のストレージサブシステムで構成されたストレージシステムの運用コストの低減が重要な課題となっている。これを解決する１つの方法として、データ再配置がある。データ再配置によれば、データの新しさや利用頻度などに応じて、ストレージサブシステム内の記憶領域から同一又は別のストレージサブシステム内の別の記憶領域にデータがマイグレーションされる。
【０００３】
一般に、データマイグレーションによれば、マイグレーション元の論理ボリュームからマイグレーション先の論理ボリュームへデータがマイグレーションされる。マイグレーション先の論理ボリュームは、マイグレーション元の論理ボリュームを有するストレージサブシステム内の論理ボリュームでも良いし（特許文献１参照）、そのストレージサブシステムとは異なるストレージサブシステム内の論理ボリュームでも良い（特許文献２及び３参照）。
【０００４】
また、データマイグレーションは、論理ボリュームの性能情報やＩ／Ｏ（Input/Output）頻度に基づいて自動的に行われても良い（特許文献４参照）。また、データマイグレーションは、論理ボリュームを構成するセグメント単位で行われても良い（例えば特許文献５参照）。ここで、「セグメント」とは、論理的な記憶領域である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−２９３３１７号公報
【特許文献２】米国特許第６１０８７４８号明細書
【特許文献３】特開２００３−３４５５２２号公報
【特許文献４】特開２００３−０６７１８７号公報
【特許文献５】特開２００７−０６６２５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
論理ボリュームは、一般に、ユーザが予め見積もった容量、性能及びコスト（例えばいわゆるビットコスト）などの属性値を基に作成される。通常、見積られた属性値は、実際に必要とされる属性値よりも高いため、論理ボリュームの属性値が無駄に過剰になることが多い。
【０００７】
それを解決する方法として、動的にデータの再配置（以下、動的再配置）を行うことが考えられる。動的再配置の一例によれば、データのＩ／Ｏ頻度に応じて、そのデータが再配置される。
【０００８】
しかし、動的再配置だけでは、ストレージシステム全体としてデータの配置が適切とならないケースが生じ得る。例えば、動的再配置の効果が無いと見做されるケースが生じ得る。そのケースの例として、或る論理ボリューム内の大半のデータがほとんど再配置されないケース（例えば、ホスト装置からのＩ／Ｏ頻度が一定であるケース）がある。このようなケースでは、データがいつまでも再配置されないまま同じ記憶領域に残ってしまい、その記憶領域にデータが配置されれば性能向上が見込める別の論理ボリュームがあったとしても、そのような別の論理ボリュームの性能を見込み通りに向上させることはできない。また、動的再配置の対象とする論理ボリュームの数及び／又は容量は限られていることがある。そのような場合には、動的再配置の効果が無いと見做される論理ボリュームが動的再配置の対象とされ続けるので、別の論理ボリュームを動的再配置の対象にできなくなる可能性がある。
【０００９】
そこで、本発明の目的は、ストレージシステム全体としてデータの配置が適切となるよう制御することにある。
【課題を解決するための手段】
【００１０】
ストレージシステムが、複数種類のメディア及びコントローラを含み、複数の論理ボリュームを提供し、再配置ポリシに従って特定したデータをそのデータが記憶されているメディアからそのメディアとは別の種類のメディアにマイグレーションする再配置処理を行う。管理システムが、
（Ａ）再配置処理の効果が無いとみなされる条件であるマイグレーションポリシに適合する論理ボリュームを、再配置処理の対象となる一以上の論理ボリュームのグループである再配置グループから探し、
（Ｂ）前記（Ａ）で見つけた論理ボリューム内のデータを再配置グループ外に出すことをストレージシステムに実行させる。
【００１１】
管理システムは、ストレージシステムの外部に存在しても内部に存在しても良い。後者の場合、管理システムは、例えば、ストレージシステムが有するコントローラとすることができる。
【００１２】
（Ｂ）の処理は、例えば、下記（ｂ１）乃至（ｂ３）のうちのいずれでも良い。
（ｂ１）前記（Ａ）で見つけた論理ボリューム（ＶＯＬ）０１内のデータを、元々用意されているＶＯＬ（再配置グループ３００１外のＶＯＬ１０）にデータをマイグレーションすること（図１３Ａ参照）、
（ｂ２）再配置グループ３００１に含まれているＶＯＬ００及び０１に関わらない物理リソース３０００を複数の物理リソース（ストレージシステムが有する複数の物理リソース）から特定し、特定された物理リソース３０００に基づくＶＯＬ１１を新たに作成し、上記（Ａ）によって見つけたＶＯＬ０１内のデータを上記新たに作成したＶＯＬ１１にマイグレーションすること（図３０Ｂ参照）、
（ｂ３）前記（Ａ）で見つけたＶＯＬ０１を再配置グループ３００１から外すこと（図３０Ｃ参照）。
【００１３】
例えば、Ｔｈｉｎ  Ｐｒｏｖｉｓｉｏｎｉｎｇにおいて、仮想領域と実領域との対応関係を表すマッピングテーブルのサイズを小さくする観点では、上記（ｂ３）に比べて上記（ｂ１）又は（ｂ２）が有効であると考えられる。
【００１４】
管理システムは、例えば、（１）ストレージシステムが提供する複数の論理ボリュームに関する情報である構成管理情報、（２）再配置処理の対象となる一以上の論理ボリュームのグループである再配置グループを表す情報である再配置グループ情報、（３）再配置処理の効果が無いとみなされる条件であるマイグレーションポリシを表す情報であるマイグレーションポリシ情報、を有する。管理システムは、構成管理情報及び再配置グループ情報を基に、再配置グループ外の、元々用意されている論理ボリュームを特定することができる。また、管理システムは、再配置グループ情報を基に、再配置グループに関わらない物理リソースを特定することができる。また、管理システムは、上記（Ａ）で見つけた論理ボリュームに関する情報を再配置グループ情報から除去することで、上記（Ａ）で見つけた論理ボリュームを再配置グループから外すことができる。
【００１５】
ストレージシステムは、１以上のストレージサブシステムで構成されていて良い。この場合、マイグレーション先の論理ボリュームは、マイグレーション元の論理ボリュームを有するストレージサブシステムとは別のストレージサブシステムに存在して良い。また、この場合、マイグレーション元の論理ボリュームを有するストレージサブシステムは、前述の再配置処理を行う機能を有するサブシステムであるが、マイグレーション先の論理ボリュームを有するストレージサブシステムは、前述の再配置処理を行う機能を有していてもいなくても良い。
【００１６】
再配置グループは、後述のプール（及びそのプールから実領域が割り当てられる仮想ボリューム）とすることができる。
【００１７】
また、再配置グループは、単一のストレージサブシステムとすることができる。再配置グループを構成する一以上の論理ボリュームの全てが、１つのストレージサブシステム内に存在する場合、再配置グループに含まれない論理ボリュームとは、そのストレージサブシステムとは別のストレージサブシステム内の論理ボリュームである。
【００１８】
また、再配置処理は、ボリューム単位で行われても良いし実領域単位で行われても良い。ボリューム単位の再配置処理では、第１の論理ボリュームから第２の論理ボリュームへのデータのマイグレーションが行われる。実領域単位の再配置処理では、第１の仮想ボリューム内の第１の仮想領域に割り当てられている第１の実領域内のデータが、第１の仮想ボリュームに関連付けられているプール内の第２の実領域にマイグレーションされ、且つ、第１の仮想領域に１の実領域に代えて第２の実領域が割り当てられる。第１の仮想ボリュームは、例えば、Ｔｈｉｎ  Ｐｒｏｖｉｓｉｏｎｉｎｇに従う仮想的な論理ボリュームである。また、仮想領域は、仮想的な記憶領域であり、実領域は、実体的な記憶領域である。プールは、複数の実領域の集合である。
【発明の効果】
【００１９】
ストレージシステム全体としてデータの配置が適切となるようにすることができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施例１に係るデータ処理システムの構成を示す。
【図２】ボリュームテーブル１２１０１の構成を示す。
【図３】プールテーブル１２１０２の構成を示す。
【図４】物理リソーステーブル１２１０３の構成を示す。
【図５】物理リソース割当てテーブル１２１０４の構成を示す。
【図６】ボリューム割当てテーブル１２１０５の構成を示す。
【図７】構成情報テーブル４１００１の構成を示す。
【図８】ポリシテーブル４１００２の構成を示す。
【図９】マイグレーションポリシ設定処理のシーケンスを示す。
【図１０】図９のステップＳ１０００で表示される第１のＵＩ１０００を示す。
【図１１】第２のＵＩ２０００を示す。
【図１２】構成情報取得処理のシーケンスを示す。
【図１３】マイグレーション対象決定処理のシーケンスを示す。
【図１４】マイグレーション指示処理のシーケンスを示す。
【図１５】ステップＳ４０４０で表示されるＵＩ３０００を示す。
【図１６】マイグレーション先決定処理のシーケンスを示す。
【図１７】ボリュームマイグレーション処理のシーケンスを示す。
【図１８】Ｉ／Ｏ制御処理のシーケンスを示す。
【図１９】セグメントマイグレーション指示処理のシーケンスを示す。
【図２０】セグメントマイグレーション処理のシーケンスを示す。
【図２１】セグメント単位のＩ／Ｏ制御処理のシーケンスを示す。
【図２２】本発明の実施例２に係るデータ処理システムの構成を示す。
【図２３】実施例２に係るマイグレーション先決定処理のシーケンスを示す。
【図２４】本発明の実施例３に係るデータ処理システムの構成を示す。
【図２５】実施例３に係るボリュームテーブル１２１０１ｃの構成を示す。
【図２６】実施例３に係る構成情報テーブル４１００１ｃの構成を示す。
【図２７】実施例３に係る構成情報取得処理のシーケンスを示す。
【図２８】ボリューム性能監視処理のシーケンスを示す。
【図２９】実施例３に係るマイグレーション先決定処理のシーケンスを示す。
【図３０】図３０Ａは、再配置グループの外にデータを出すことの弟１の例を示す。図３０Ｂは、再配置グループの外にデータを出すことの弟２の例を示す。図３０Ｃは、再配置グループの外にデータを出すことの弟３の例を示す。
【発明を実施するための形態】
【００２１】
以下、本発明の幾つかの実施例を説明する。
【００２２】
なお、以下の説明では、「ｘｘｘテーブル」の表現にて各種情報を説明することがあるが、各種情報は、テーブル以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために「ｘｘｘテーブル」を「ｘｘｘ情報」と呼ぶことができる。
【００２３】
また、以下の説明では、何らかの対象を識別するための情報として、ＩＤ（識別子）、番号などが用いられるが、それに限らず、他種の識別情報が用いられても良い。
【００２４】
また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ（例えばＣＰＵ（Central Processing Unit））によって実行されることで、定められた処理を、適宜に記憶資源（例えばメモリ）及び／又は通信インタフェースプロセッサ（例えば通信ポート）を用いながら行うため、処理の主語がプロセッサとされてもよい。プログラムを主語として説明された処理は、管理システムが行う処理としても良い。また、プロセッサは、プロセッサが行う処理の一部又は全部を行うハードウェア回路を含んでも良い。コンピュータプログラムは、プログラムソースから各計算機にインストールされても良い。プログラムソースは、例えば、プログラム配布サーバ又は記憶メディアであっても良い。
【００２５】
管理システムは、一以上の計算機で構成されて良い。具体的には、例えば、管理計算機が情報を表示する場合、或いは、管理計算機が表示用情報を遠隔の計算機に送信する場合、管理計算機が管理システムである。また、例えば、複数の計算機で管理計算機と同等の機能が実現されている場合は、当該複数の計算機（表示を表示用計算機が行う場合は表示用計算機を含んで良い）が、管理システムである。
【実施例１】
【００２６】
＜実施例１の概要＞。
【００２７】
動的再配置の対象の論理ボリュームは、Ｔｈｉｎ  Ｐｒｏｖｉｓｉｏｎｉｎｇに従う仮想的な論理ボリューム（以下、仮想ボリューム）である。動的再配置の効果が無いと見做される仮想ボリュームに関する条件が、マイグレーションポリシとして設定される。マイグレーションポリシは、例えば、ホスト計算機から仮想ボリュームに対するＩ／Ｏの頻度（単位は、例えば、ＩＯＰＳ（Input Output Per Second））やデータが配置されるメディアの種類などの条件が含められる。そのマイグレーションポリシに基づいて、マイグレーション元の仮想ボリュームが選択される。マイグレーション先の論理ボリュームは、動的再配置の対象ではない論理ボリューム、すなわち、物理リソース（例えば複数の物理記憶デバイスで構成されたＲＡＩＤグループ）に基づく論理ボリュームとされる。
【００２８】
＜実施例１に係るデータ処理システムの構成＞。
【００２９】
図１は、本発明の実施例１に係るデータ処理システムの構成を示す。なお、以下の説明では、通信インタフェース装置を「Ｉ／Ｆ」と略記する。
【００３０】
データ処理システムは、ストレージサブシステム１００００と、ホスト計算機２００００と、スイッチ装置３００００と、管理計算機４００００と、スイッチ装置５００００とを有する。図には、ストレージサブシステム１００００と、ホスト計算機２００００と、スイッチ装置３００００と、管理計算機４００００と、スイッチ装置５００００とが、それぞれ１台ずつ示されているが、それぞれについて、数は、１に限らず、２以上であっても良い。
【００３１】
ストレージサブシステム１００００とホスト計算機２００００は、スイッチ装置３００００を介してネットワーク接続されている。また、ストレージサブシステム１００００と管理計算機４００００は、スイッチ装置５００００を介してネットワーク接続されている。なお、スイッチ装置３００００とスイッチ装置５００００は、同種の装置であっても良いし異種のスイッチ装置であっても良い。例えば、スイッチ装置３００００は、ＳＡＮ（Storage Area Network）の構成要素としてのＦＣ（Fibre
Channel）スイッチ装置であって良く、スイッチ装置５００００は、ＬＡＮ（Local Area
Network）の構成要素としてのルータであって良い。
【００３２】
ストレージサブシステム１００００は、物理リソース群１１０００と、コントローラ１２０００とを有する。
【００３３】
物理リソース群１１０００は、複数の物理リソース１１２０１を有する。ここで、物理リソース１１２０１とは、物理記憶デバイス単体であっても良いし、複数の同種の物理記憶デバイスで構成されたＲＡＩＤ（Redundant Array of Independent (or Inexpensive) Disks）グループであっても良い。物理記憶デバイスの種類としては、ＳＳＤ（Solid State Drive）、ＳＡＳ（Serial Attached SCSI）−ＨＤＤ（Hard Disk Drive）、ＳＡＴＡ（Serial ATA）−ＨＤＤなどがある。
【００３４】
１以上の物理リソース１１２０１を基にプール１１２００が構成されている。プール１１２００は、複数のセグメントで構成された記憶領域である。セグメントは、１以上の物理リソース１１２０１に基づく実領域（実体的な記憶領域）である。プール１１２００からセグメントが仮想ボリューム１１１００（２）に割り当てられる。
【００３５】
プール１１２００は、性能の異なる複数のセグメント群を有する。各セグメント群は、１以上のセグメントで構成されており、性能が同じ１以上の物理リソース１１２０１に基づいている。性能は、メディア種類、ＲＡＩＤレベル及びＲＡＩＤグループの構成（コンビネーション）のうちの少なくとも１つに依存する。本実施例では、性能は、メディア種類のみに依存するとする。例えば、ＳＳＤに基づくセグメントは、ＳＡＳ−ＨＤＤ及びＳＡＴＡ−ＨＤＤに基づくセグメントよりも高性能である。
【００３６】
図には、プール１１２００が１つ、物理リソース１１２０１が５つ示されているが、それぞれ、数は、その限りではない。
【００３７】
コントローラ１２０００は、メモリ１２１００と、プロセッサ１２２００と、Ｉ／Ｆ（Ａ）１２３００と、Ｉ／Ｆ（Ｂ）１２４００と、物理Ｉ／Ｆ１２５００とを有する。これらは、例えばバスを通じて接続されている。メモリ１２１００に代えて又は加えて他種の物理記憶資源が採用されて良い。
【００３８】
Ｉ／Ｆ（Ａ）１２３００は、第１の通信プロトコル（例えばＦＣ（Fibre Channel）プロトコル）で通信するためのＩ／Ｆであり、スイッチ装置３００００を介してホスト計算機２００００のＩ／Ｆ２３０００に接続される。
【００３９】
Ｉ／Ｆ（Ｂ）１２４００は、第２の通信プロトコル（例えばＴＣＰ／ＩＰ（Transmission Control Protocol／Internet
Protocol））で通信するためのＩ／Ｆであり、スイッチ装置５００００を介して管理計算機４００００のＩ／Ｆ４３０００に接続される。
【００４０】
物理Ｉ／Ｆ１２５００は、第３の通信プロトコル（例えばＦＣ（Fibre Channel）プロトコル）で通信するためのＩ／Ｆであり、各物理リソース１１２０１に接続される。
【００４１】
コントローラ１２０００は、論理ボリューム１１１００を管理する。論理ボリューム１１１００は、ホスト計算機２００００に提供される論理的な記憶デバイスである。論理ボリューム１１１００として、実ボリューム１１１００（１）と、仮想ボリューム１１１００（２）がある。
【００４２】
実ボリューム１１１００（１）は、物理リソース１１２０１に基づいている論理ボリュームである。従って、実ボリューム１１１００（１）の容量と、１以上の物理リソース１１２０１のうちの実ボリューム１１１００（１）で使用されている記憶空間部分の容量は、等しい。
【００４３】
仮想ボリューム１１１００（２）は、物理リソース１１２０１に基づかない論理ボリュームであり、具体的には、Ｔｈｉｎ  Ｐｒｏｖｉｓｉｏｎｉｎｇに従う仮想的な論理ボリュームである。仮想ボリューム１１１００（２）は、複数の仮想領域（仮想的な記憶領域）で構成されている。コントローラ１２０００がホスト計算機２００００から仮想ボリューム１１１００（２）を指定したライト要求を受信し、そのライト要求から特定されるライト先の仮想領域にセグメントが割り当てられていない場合、プール１１２００から未使用のセグメント（いずれの仮想領域に割り当てられていないセグメント）がライト先の仮想領域に割り当てられ、そのセグメントに、ライト要求に従うライト対象のデータが書き込まれる。仮想ボリューム１１１００（２）の記憶容量は、実際に割り当てられている１以上のセグメントの合計容量（使用容量）よりも大きくて良い。本実施例では、メモリ１２１００内に保持されたプログラム（後述）がプロセッサ１２２００で実行されることによって、セグメント単位で動的再配置が行われる。動的再配置は、各仮想領域のＩ／Ｏ頻度を基に行われるが、それに代えて又は加えて、各仮想領域についての他の属性値（例えば、データの重要度、最終Ｉ／Ｏ時刻）を基に行われて良い。動的再配置により、例えば、ＩＯＰＳが高い仮想領域内のデータを性能の高いセグメント（性能の物理リソースに基づくセグメント）に配置し、ＩＯＰＳが低い仮想領域内のデータを性能の低いセグメント（性能の低い物理リソースに基づくセグメント）に配置することが可能になる。これにより、ユーザ（ストレージ管理者）が論理ボリュームに関する属性値（例えば、容量、性能、コスト）を見積ることなく、適切なデータ配置を行うことが可能となる。
【００４４】
図１では、実ボリューム１１１００（１）の数も仮想ボリューム１１１００（２）の数も１であるが、いずれも、２以上であっても良い。以下の説明では、実ボリューム１１１００（１）及び仮想ボリューム１１１００（２）を特に区別しない場合には、「論理ボリューム１１１００」と総称することにする。
【００４５】
メモリ１２１００は、プロセッサ１２２００が用いるプログラムとデータを記憶する。例えば、メモリ１２１００は、ボリュームテーブル１２１０１と、プールテーブル１２１０２と、物理リソーステーブル１２１０３と、物理リソース割当てテーブルと、ボリューム割当てテーブル１２１０５と、構成情報取得プログラム１２１０６と、ボリュームコピープログラム１２１０７と、ボリュームマイグレーションプログラム１２１０８と、Ｉ／Ｏ制御プログラム１２１０９と、セグメントコピープログラム１２１１０と、セグメントマイグレーションプログラム１２１１１と、セグメントマイグレーション指示プログラム１２１１２とを有する。
【００４６】
ボリュームテーブル１２１０１は、ストレージサブシステム１００００の全ての論理ボリューム１１１００に関する情報を格納するテーブルである。具体例を図２に示す。ボリュームテーブル１２１０１は、論理ボリューム１１１００毎に、下記の情報を有する。
（＊）論理ボリュームを識別するための識別子であるＬＵＮ（Ｌｏｇｉｃａｌ  Ｕｎｉｔ  Ｎｕｍｂｅｒ）１２１０１１、
（＊）仮想ボリューム１１１００（２）が属するプールを識別するための識別子であるプールＩＤ１１２０１２、
（＊）実ボリューム１１１００（１）の基になっている物理リソース１１２０１を識別するための識別子である物理リソースＩＤ１２１０１３、
（＊）論理ボリューム１１１００の容量を示す情報である容量１２１０１４、
（＊）論理ボリューム１１１００の使用容量を示す情報である使用容量１２１０１５。
【００４７】
「使用容量」は、論理ボリューム１１１００にどのぐらいデータが格納されているかである。使用容量１２１０１５は、ＧＢ（ギガバイト）単位で表されるが、ハイフン（−）は、０ＧＢを意味する。また、使用容量１２１０１５の単位は、ＧＢ等の容量の単位に代えて、割合の単位（例えば％（パーセント））でも良い。例えば、使用容量は、論理ボリューム１１１００内のデータの総量でも良いし、又は、論理ボリューム１１１００の容量に対するデータ総量の割合である。
【００４８】
プールテーブル１２１０２は、ストレージサブシステム１００００の全てのプール１１２００に関する情報を格納するテーブルである。具体例を図３に示す。プールテーブル１２１０２は、プール１１２００毎に、下記の情報を有する。
（＊）プール１１２００を識別するための識別子であるプールＩＤ１２１０２１、
（＊）プール１１２００を構成する物理リソース１１２０１の識別子である物理リソースＩＤ１２１０２２、
（＊）物理リソース１１２０１を構成する物理記憶デバイスの種類（メディア種類）を示す情報であるメディア種類１２１０２３、
（＊）物理リソース１１２０１の容量を示す情報である容量１２１０２４、
（＊）動的再配置の条件を示す情報であるＩＯＰＳ範囲１２１０２５、
（＊）動的再配置が行なわれるプール１１２００か否かを示す動的再配置フラグ１２１０２６。
【００４９】
フラグ１２１０２６について、ＯＮ（１）は、プール１１２００が、動的再配置の対象であることを意味し、ＯＦＦ（０）は、プール１１２００が、動的再配置の対象でないことを意味する。
【００５０】
本実施例では、メディア種類として、ＳＳＤ、ＳＡＳ−ＨＤＤ及びＳＡＴＡ−ＨＤＤがあるが、それらのうちの少なくとも１つに代えて又は加えて、別のメディア種類が採用されても良い。
【００５１】
動的再配置の条件として、Ｉ／Ｏ頻度（単位はＩＯＰＳ）の範囲が定義されているが、条件は、Ｉ／Ｏ頻度の範囲に限らない。
【００５２】
物理リソーステーブル１２１０３は、ストレージサブシステム１００００の全ての物理リソース１１２０１に関する情報を格納するテーブルである。具体例を図４に示す。物理リソーステーブル１２１０３は、物理リソース１１２０１毎に、下記の情報を有する。
（＊）物理リソース１１２０１の識別子である物理リソースＩＤ１２１０３１、
（＊）物理リソース１１２０１のメディアの種類を示す情報であるメディア種類１２１０３２、
（＊）物理リソース１１２０１の容量を示す情報である容量１２１０３３、
（＊）物理リソース１１２０１の空き容量を示す情報である空き容量１２１０３４。
【００５３】
物理リソース１１２０１の「空き容量」とは、物理リソース１１２０１の記憶空間のうち、実ボリューム１１１００（１）としてもセグメントとしても使用されていない記憶空間の容量である。
【００５４】
物理リソース割当てテーブル１２１０４は、ストレージサブシステム１００００の全ての論理ボリューム１１１００に対する物理リソースの割当てに関する情報を格納するテーブルである。具体例を図５に示す。物理リソース割当てテーブル１２１０４は、論理ボリューム１１１００を構成する記憶領域（以下、ボリューム領域）毎に、下記の情報を有する。なお、ボリューム領域は、論理ボリューム１１１００が実ボリューム１１１００（１）であれば、実ボリューム１１１００（１）の全部又は一部であり、論理ボリューム１１１００が仮想ボリューム１１１００（２）であれば、仮想ボリューム１１１００（２）における１つの仮想領域である。
（＊）ボリューム領域を有する論理ボリューム１１１００を識別するための識別子であるＬＵＮ１２１０４１、
（＊）ボリューム領域を識別するための識別子である領域ＩＤ１２１０４２、
（＊）論理ボリューム１１１００におけるボリューム領域の位置を表すＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）であるボリュームＬＢＡ１２１０４３、
（＊）ボリューム領域に割り当てられている物理的な記憶領域を有する物理リソース１１２０１を識別するための識別子である物理リソースＩＤ１２１０４４、
（＊）ボリューム領域に割り当てられている物理的な記憶領域のプール１１２００又は物理リソース１１２０１における位置を表すＬＢＡである物理ＬＢＡ１２１０４５、
（＊）データマイグレーションに関する状態を示す情報であるマイグレーション状態１２１０４６、
（＊）データマイグレーションが行われた最終時刻を示す情報である最終マイグレーション日時１２１０４７、
（＊）ボリューム領域に割り当てられている物理的な記憶領域の容量を示す情報である容量１２１０４８、
（＊）仮想領域のＩ／Ｏ頻度を示す情報であるＩＯＰＳ１２１０４９。
【００５５】
ボリューム領域及び物理的な記憶領域のうちの少なくとも一方の位置情報としては、ＬＢＡ以外が採用されても良い。
【００５６】
物理的な記憶領域は、割当先のボリューム領域が実ボリューム１１１００（１）の全部又は一部であれば、プール１１２００を構成しない物理リソース１１２０１の記憶領域であり、割当先のボリューム領域が仮想領域であれば、セグメントである。このテーブル１２１０４における物理リソースＩＤ１２１０４４及び物理ＬＢＡ１２１０４５の組合せから、どの物理リソース１１２０１のどのセグメントが使用中（割当て済み）でどのセグメントが未使用（未割当て）かを特定することができる。なお、テーブル１２１０４とは別に、例えば、セグメント毎に使用中か未使用かを管理するためのセグメント管理情報が用意されていても良い。
【００５７】
マイグレーション状態１２１０４６の値としては、例えば、ハイフン（−）と、「マイグレーション中」の２種類がある。ここで、ハイフンは、マイグレーションされていない状態を意味し、「マイグレーション中」は、ボリューム領域内のデータがマイグレーションされている最中であることを意味する。ただし、マイグレーション状態１２１０４６の値は、これら２種類に限らない。
【００５８】
最終マイグレーション日時１２１０４７の値としては、例えば、ハイフン（−）と、時刻の２種類がある。ハイフンは、データのマイグレーションが起きていないことを意味し、時刻は、データのマイグレーションが起きた最近の時刻である。ただし、最終マイグレーション日時１２１０４７は、動的再配置の効果が無いと見做される仮想ボリューム１１１００（２）を特定するために使用される情報であり、動的再配置の効果が無いと見做される仮想ボリューム１１１００（２）を特定可能な情報であれば、最終マイグレーション日時１２１０４７とは別種の情報が採用されても良い。
【００５９】
動的再配置条件としてはＩ／Ｏ頻度範囲（ＩＯＰＳ範囲）が採用されていることがあり、各仮想領域についてＩ／Ｏ頻度（ＩＯＰＳ）が監視されているが、各仮想領域について監視する対象は、Ｉ／Ｏ頻度に代えて、データ転送速度など別種のＩ／Ｏ負荷であっても良いし、最終Ｉ／Ｏ日時などの別種の属性値であっても良い。
【００６０】
図５によれば、サイズが同じ複数の仮想領域で構成されている仮想ボリューム１１１００（２）もあれば、サイズが異なる仮想領域が混在している仮想ボリューム１１１００（２）もある。また、サイズが同じ複数のセグメントで構成されているプール１１２００もあれば、サイズが異なるセグメントが混在しているプール１１２００もある。また、１つの仮想領域に１つのセグメントが割り当てられるが、複数の仮想領域に１つのセグメントが割り当てられても良いし、１つの仮想領域に複数のセグメントが割り当てられても良い。
【００６１】
再び図１を参照する。ボリューム割当てテーブル１２１０５は、ホスト計算機２００００に割り当てられた論理ボリューム１１１００に関する情報を格納するテーブルである。具体例を図６に示す。ボリューム割当てテーブル１２１０５は、ホスト計算機２０００００に提供された論理ボリューム１１１００毎に、下記の情報を有する。
（＊）ホスト計算機２００００が有するＩ／Ｆ２３０００を識別するための識別子であるＩｎｉｔｉａｔｏｒ  ＩＤ１２１０５０、
（＊）ストレージサブシステム１００００が有するＩ／Ｆ（Ａ）１２３００を識別するための識別子であるＴａｒｇｅｔ  ＩＤ１２１０５１、
（＊）論理ボリューム１１１００を識別するための識別子であるＬＵＮ１２１０５２、
（＊）論理ボリューム１１１００についてのデータマイグレーションに関する状態を示す情報であるマイグレーション状態１２１０５３。
【００６２】
Ｉｎｉｔｉａｔｏｒ  ＩＤ１２１０５０の値、および、Ｔａｒｇｅｔ  ＩＤ１２１０５１の一例として、ＷＷＮ（World Wide Name）があるが、それに限らず、他種の識別情報が採用されて良い。
【００６３】
構成情報取得プログラム１２１０６は、ストレージサブシステム１００００の構成情報を収集し、当該情報を他プログラムに送信するプログラムである。構成情報としては、例えば、論理ボリューム１１１００の情報（ＬＵＮや空き容量など）、パスが論理ボリューム１１１００に対して張られているか否かを示す情報などが挙げられるが、管理計算機４００００が必要となる情報があればこの限りではなく、その他の情報が採用されても良い。
【００６４】
ボリュームコピープログラム１２１０７は、論理ボリューム１１１００内のデータを別の論理ボリューム１１１００にコピーするプログラムである。本実施例の説明では、或る論理ボリューム１１１００から別の論理ボリューム１１１００へのデータのコピーを「ボリュームコピー」と言う。
【００６５】
ボリュームマイグレーションプログラム１２１０８は、論理ボリューム１１１００内のデータを別の論理ボリューム１１１００にマイグレーションするプログラムである。本実施例の説明では、或る論理ボリューム１１１００から別の論理ボリューム１１１００へのデータのマイグレーションを「ボリュームマイグレーション」と言う。ボリュームマイグレーションでは、マイグレーション元の論理ボリューム１１１００からマイグレーション先の論理ボリューム１１１００へデータがコピーされ、マイグレーション元の論理ボリューム１１１００のＬＵＮ（以下、対象ＬＵＮ）が、マイグレーション元の論理ボリューム１１１００に代えてマイグレーション先の論理ボリューム１１１００に関連付けられる。その後、ホスト計算機２００００から対象ＬＵＮを指定したＩ／Ｏ要求を受信した場合、コントローラ１２０００は、そのＩ／Ｏ要求で指定されている対象ＬＵＮを基に同定されるマイグレーション先の論理ボリューム１１１００に対してＩ／Ｏを行う。なお、マイグレーション元の論理ボリューム１１１００内のデータは削除されても良い。また、ボリュームマイグレーション中（対象ＬＵＮをマイグレーション先の論理ボリュームに関連付ける前）にホスト計算機２００００から対象ＬＵＮを指定したＩ／Ｏ要求を受信した場合、コントローラ１２０００は以下の処理を行って良い。すなわち、コントローラ１２０００は、そのＩ／Ｏ要求がリード要求であれば、マイグレーション元の論理ボリュームからリード対象のデータをリードして良い。そのＩ／Ｏ要求がライト要求であれば、コントローラ１２０００は、キャッシュメモリ領域（例えばメモリ１２１００内の領域）にライト対象のデータを記憶し、後で、マイグレーション先の論理ボリューム１１１００にそのライト対象のデータを書き込んで良い。
【００６６】
Ｉ／Ｏ制御プログラム１２１０９は、ホスト計算機２００００から論理ボリューム１１１００へのＩ／Ｏを制御するプログラムである。
【００６７】
セグメントコピープログラム１２１１０は、或るセグメントから別のセグメントへデータをコピーするプログラムである。本実施例の説明では、或るセグメントから別のセグメントへのデータのコピーを「セグメントコピー」と言う。
【００６８】
セグメントマイグレーションプログラム１２１１１は、或るセグメント内のデータを別のセグメントへマイグレーションするプログラムである。本実施例の説明では、或るセグメントから別のセグメントへのデータのマイグレーションを「セグメントマイグレーション」と言う。
【００６９】
セグメントマイグレーション指示プログラム１２１１２は、動的再配置条件を満たすセグメント（マイグレーション元のセグメント）が検出された場合にセグメントマイグレーションをセグメントマイグレーションプログラム１２１１１に指示するプログラムである。
【００７０】
プロセッサ１２２００は、メモリ１２１００内のプログラムの実行やデータの入出力、コントローラ１２０００が有する各Ｉ／Ｆ１２３００、１２４００を通じたデータや制御命令の入出力を制御する。
【００７１】
ストレージサブシステム１００００は、他に、プール１１２００を作成する機能、論理ボリューム１１１００を作成する機能、論理ボリューム１１１００をＩ／Ｆ（Ａ）１２３００を通じてホスト計算機２００００に提供する機能、管理計算機４００００からストレージサブシステム１００００の構成変更要求を受け付ける機能など、一般的な機能を有している。
【００７２】
また、ストレージサブシステム１００００は、他に、ストレージサブシステム１００００のユーザがデータを入力するための入力装置や、ストレージサブシステム１００００のユーザに情報を提示するための出力装置を有していても良い。
【００７３】
ホスト計算機２００００は、メモリ２１０００と、プロセッサ２２０００と、Ｉ／Ｆ２３０００とを有する。これらの構成要素は例えばバスを通じて接続されている。Ｉ／Ｆ２３０００は、第１のプロトコル（例えばＦＣ（Fibre Channel）プロトコル）で通信するためのＩ／Ｆであり、スイッチ装置３００００を介してストレージサブシステム１００００のＩ／Ｆ（Ａ）１２３００に接続される。メモリ２１０００は、プロセッサ２２０００が用いるプログラムとデータを記憶する。特に、メモリ２１０００は、アプリケーション２１００１を有する。メモリ２１０００に代えて又は加えて他種の物理記憶資源が採用されて良い。アプリケーション２１００１はどのようなプログラムであっても構わない。プロセッサ２２０００は、メモリ２１０００内のプログラムの実行やデータの入出力、Ｉ／Ｆ２３０００を通じたデータや制御命令の入出力を制御する。
【００７４】
ホスト計算機２００００は、他に、ホスト計算機２００００のユーザがデータを入力するための入力装置や、ホスト計算機２００００のユーザに情報を提示するための出力装置を有していても良い。
【００７５】
スイッチ装置３００００は、ストレージサブシステム１００００に接続されるＩ／Ｆ（Ａ）３１０００と、ホスト計算機２００００に接続されるＩ／Ｆ（Ａ）３２０００とを有する。ストレージサブシステム１００００とホスト計算機２００００および両者を接続するスイッチ装置３００００との間で利用されるネットワークプロトコル（前述の第１の通信プロトコル）には、ＦＣ（Fibre Channel）やiSCSI（Ｉｎｔｅｒｎｅｔ  Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）などがあるが、それに代えて他種のプロトコルが採用されて良い。また、Ｉ／Ｆ（Ａ）の数は、２に限らず、３以上であっても良い。
【００７６】
スイッチ装置５００００は、ストレージサブシステム１００００に接続されるＩ／Ｆ（Ｂ）５１０００と、管理計算機４００００に接続されるＩ／Ｆ（Ｂ）５２０００とを有する。Ｉ／Ｆ（Ｂ）の数は、２に限らず、３以上であっても良い。
【００７７】
管理計算機４００００は、メモリ４１０００と、Ｉ／Ｆ４３０００と、それらに接続されたプロセッサ４２０００とを有する。メモリ４１０００は、プロセッサ４２０００が用いるプログラムとデータを記憶する。特に、メモリ４１０００は、構成情報テーブル４１００１と、ポリシテーブル４１００２と、構成管理プログラム４１００３と、ポリシ判定プログラム４１００４と、マイグレーション指示プログラム４１００５と、マイグレーション先決定プログラム４１００６とを有する。メモリ４１０００に代えて又は加えて他種の物理記憶資源が採用されて良い。
【００７８】
構成情報テーブル４１００１は、ストレージサブシステム１００００の構成情報を持つテーブルである。具体例を図７に示す。構成情報テーブル４１００１は、論理ボリューム１１１００毎に、下記の情報を有する。
（＊）論理ボリューム１１１００を有するストレージサブシステム１００００を識別するための識別子であるストレージサブシステムＩＤ４１００１１、
（＊）論理ボリューム１１１００を識別するための識別子であるＬＵＮ４１００１２、
（＊）論理ボリューム１１１００の容量を示す情報である容量４１００１３、
（＊）論理ボリューム１１１００の使用容量を示す情報である使用容量４１００１４、
（＊）論理ボリューム１１１００がホスト計算機２００００に割当てられているか否かを示すパスフラグ４１００１５、
（＊）論理ボリューム１１１００に割り当てられている全ての物理的な記憶領域のうちどのメディア種類に基づく物理的な記憶領域がどのぐらい存在するかを示す情報である配置先メディア割合４１００１６、
（＊）論理ボリューム１１１００がマイグレーション対象か否か（マイグレーション元とされるか否か）を示すマイグレーションフラグ４１００１７。
【００７９】
パスフラグ４１００１５がＯＮ（１）であれば、論理ボリューム１１０００に対してホスト計算機２００００からＩ／Ｏが行われ得る状態である。具体的には、例えば、論理ボリューム１１１００とホスト計算機２００００とが論理的なパスで繋がっている状態、或いは、その論理的なパスが有効とされている状態である。一方、パスフラグ４１００１５がＯＦＦ（０）であれば、論理ボリューム１１０００に対してホスト計算機２００００からＩ／Ｏが行われ得ない状態である。具体的には、例えば、論理ボリューム１１１００とホスト計算機２００００とが論理的なパスで繋がっていない状態、或いは、その論理的なパスが無効とされている状態である。後に説明するとおり、マイグレーション先の実ボリューム１１１００（１）の条件として、パスフラグ４１００１５がＯＦＦ（０）であることがある。パスフラグ４１００１５がＯＦＦ（０）の実ボリューム１１１００（１）がマイグレーション先として決定され、後述のボリュームマイグレーションが行われた後は、管理計算機４００００のプロセッサ４２０００によって、そのマイグレーション先の実ボリューム１１１００（１）についてのパスフラグ４１００１５がＯＮ（１）にされる。また、マイグレーション先の実ボリューム１１１００（１）とホスト計算機２００００との間に論理的なパスが張られる（或いは既に存在する論理的なパスが無効から有効に切り替えられる）。
【００８０】
マイグレーションフラグ４１００１７がＯＮ（１）であれば、論理ボリューム１１１００がマイグレーション対象であり、マイグレーションフラグ４１００１７がＯＦＦ（０）であれば、論理ボリューム１１１００はマイグレーション対象ではない。
【００８１】
ポリシテーブル４１００２は、動的再配置の効果が無いと見做される仮想ボリューム１１１００の条件（つまりマイグレーションポリシ）に関する情報を有するテーブルである。マイグレーションポリシは、言い換えれば、仮想ボリューム１１１００（２）から実ボリューム１１１００（１）へのボリュームマイグレーションを開始する契機の定義である。具体例を図８に示す。図８によれば、ポリシテーブル４１００２は、マイグレーションポリシ毎に、下記の情報を有する。なお、以下の説明では、ＳＳＤに基づくセグメントを「ＳＳＤセグメント」と言い、ＳＡＳ−ＨＤＤに基づくセグメントを「ＳＡＳセグメント」と言い、ＳＡＴＡ−ＨＤＤに基づくセグメントを「ＳＡＴＡセグメント」と言うことがある。
（＊）マイグレーションポリシを識別するための識別子であるポリシＩＤ４１００２１、
（＊）ストレージサブシステム１００００を識別するための識別子であるストレージサブシステムＩＤ４１００２２、
（＊）仮想ボリューム１１１００（２）を識別するための識別子であるＬＵＮ４１００２３、
（＊）論理条件を表す情報である論理条件４１００２４、
（＊）メディア配置率の条件を示す情報であるメディア配置率４１００２５、
（＊）メディア配置場所の条件を示す情報であるメディア配置場所４１００２６、
（＊）メディア配置率の条件とメディア配置場所の条件との両方が満たされ続けている期間（開始時刻４１００２８が表す時刻からの経過時間）の条件を示す情報である期間４１００２７、
（＊）メディア配置率の条件とメディア配置場所の条件との両方が満たされたことが検出された時刻を示す情報である開始時刻４１００２８。
【００８２】
「論理条件」とは、１つの仮想ボリューム１１１００（２）についての複数の条件セットの組合せに関する条件である。マイグレーションポリシは、条件セットと論理条件４１００２４との組合せで定義される。マイグレーションポリシを構成する条件は、上記の例に限らなくて良い。
【００８３】
論理条件４１００２４の値としては、ＡＮＤ、ＯＲなどがある。例えば、２つの条件セットが定義されている場合、論理条件がＡＮＤであれば、２つの条件セットの両方が満たされていれば、マイグレーションポリシが満たされていることであり、論理条件がＯＲであれば、２つの条件セットの一方が満たされていれば、マイグレーションポリシが満たされていることである。
【００８４】
「条件セット」とは、メディア配置率４１００２５が表す条件と、メディア配置場所４１００２６が表す条件と、期間４１００２７が表す条件との組合せである。
【００８５】
「メディア配置率」とは、仮想ボリューム１１１００（２）に割り当てられている全てのセグメント（つまり使用容量）のうち、或るメディア種類のセグメントがどの程度存在するかを表す。
【００８６】
「メディア配置場所」とは、仮想ボリューム１１１００（２）に割り当てられているセグメントの基になっている物理記憶デバイスのメディア種類である。
【００８７】
以下、このテーブル４１００２を基に、マイグレーションポリシが満たされているか否かの判定を説明する。なお、以下の説明では、ポリシＩＤ「３」に着目する。また、ＬＵＮ「２」の仮想ボリューム１１１００（２）を「ＶＶＯＬ＃２」と表記する。
（＊）例えば、ＶＶＯＬ＃２に割り当てられている１０個のセグメントのうちの５個のセグメントがＳＡＴＡセグメントであるとする。この場合、ＳＡＴＡのメディア配置率は５０％である。従って、この段階では、メディア配置率４１００２５が示す「１００％」という条件は満たされていない（つまりマイグレーションポリシが満たされていない）。
（＊）その後、動的再配置等により、ＶＶＯＬ＃２に割り当てられている全てのセグメントがＳＡＴＡセグメントであるとする。この状況が検出された時刻（以下、検出時刻）を表す値が、ポリシＩＤ「３」に対応した開始時刻４１００２８としてテーブル４１００２に登録される。
（＊）その後、動的再配置等により、開始時刻４１００２８が表す時刻から１５０日（ポリシＩＤ「３」に対応した期間）が経過しないうちに、ＶＶＯＬ＃２について、ＳＡＴＡのメディア配置率が１００％未満になったとする。この場合、ポリシＩＤ「３」に対応した開始時刻４１００２８が表す時刻（値）はリセットされる。
（＊）一方、ＳＡＴＡのメディア配置率が１００％未満になることなく、開始時刻４１００２８が表す時刻から１５０日（ポリシＩＤ「３」に対応した期間）が経過したことが検出された場合（すなわち、メディア配置率の条件とメディア配置場所の条件との両方が満たされたまま、所定の期間が経過した場合）、ポリシＩＤ「３」に対応したマイグレーションポリシが満たされたということになる。この場合、ＶＶＯＬ＃２から実ボリューム１１１００（１）へのボリュームマイグレーションが行われる。
【００８８】
構成管理プログラム４１００３は、ストレージサブシステム１００００の構成を管理するためのプログラムである。構成管理プログラム４１００３は、ストレージサブシステム１００００が持つ構成情報取得プログラム１２１０６と通信することによって、ストレージサブシステム１００００の構成情報を取得する。構成管理プログラム４１００３は、プール１１２００を作成する機能、論理ボリューム１１１００を作成する機能、論理ボリューム１１１００をホスト計算機２００００に割り当てる機能、及び、特定の時刻に特定の処理を行うスケジューラ機能のうちの少なくとも１つを有していても良い。また、本実施例では、構成管理プログラム４１００３が、マイグレーション設定のＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を提供する。ユーザ（ストレージ管理者）が、当該ＵＩを用いてマイグレーションポリシを設定することができる。ただし、マイグレーションポリシに関する設定を行う方法は、ＵＩを使用する方法に限らず他の方法でも良い。
【００８９】
ポリシ判定プログラム４１００４は、マイグレーションポリシを満たす仮想ボリューム１１１００（２）を発見するプログラムである。ポリシ判定プログラム４１００４は、マイグレーションポリシを満たす仮想ボリューム１１１００（２）を発見した場合、その仮想ボリューム１１１００（２）に対応したマイグレーションフラグ（構成情報テーブル４１００１におけるフラグ）４１００１８をＯＮ（１）にする。マイグレーションフラグ４１００１８がＯＮ（１）になっているレコード（行）に対応した仮想ボリューム１１１００（２）が、マイグレーション対象の仮想ボリューム１１１００（２）である。
【００９０】
マイグレーション指示プログラム４１００５は、マイグレーション対象の仮想ボリューム１１１００（２）が存在するか否かを判定し、存在した場合にマイグレーション先決定プログラム４１００６を実施して、ボリュームマイグレーションプログラム１２１０８にボリュームマイグレーションを指示するプログラムである。
【００９１】
マイグレーション先決定プログラム４１００６は、マイグレーション先の論理ボリューム１１１００を決定するプログラムである。
【００９２】
以下、本実施例で行われる処理を説明する。
【００９３】
＜仮想ボリューム１１１００（２）に対するライトの処理の概要＞
【００９４】
以下の通りである。
（ａ１）Ｉ／Ｏ制御プログラム１２１０９は、ライト要求をホスト計算機２００００から受信する。
（ａ２）プログラム１２１０９は、ライト要求が有するＩ／Ｏ先情報を基に、ライト先仮想ボリューム１１１００（２）とライト先仮想領域を特定する。Ｉ／Ｏ先情報は、Ｉ／Ｏ先を表す情報であり、例えば、仮想ボリューム１１１００（２）のＬＵＮと、仮想領域のＬＢＡとを有する。
（ａ３）プログラム１２１０９は、ライト要求に従うライト対象のデータをキャッシュメモリ領域に格納する。プログラム１２１０９は、この段階で、ホスト計算機２００００にライト完了を応答して良い。
（ａ４）プログラム１２１０９は、物理リソース割当てテーブル１２１０４を基に、上記（ａ２）で特定されたライト先仮想領域にセグメントが割り当てられているかを判定する。
（ａ５）上記（ａ４）の判定の結果が肯定的であれば、プログラム１２１０９は、ライト先仮想領域に割り当てられているセグメントに、キャッシュメモリ領域内のライト対象のデータを書き込む。
（ａ６）上記（ａ４）の判定の結果が否定的であれば、プログラム１２１０９は、物理リソース割当てテーブル１２１０４を基に未使用セグメント（どの仮想領域にも割り当てられていないセグメント）を特定する。ここで、プログラム１２１０９は、なるべく性能の高いセグメント群の未使用セグメントを特定しても良い。
（ａ７）プログラム１２１０９は、上記（ａ６）で特定したセグメントをライト先仮想領域に対応付ける。具体的には、例えば、プログラム１２１０９は、物理リソース割当てテーブル１２１０４に、ライト先仮想領域に対応した情報１２１０４４及び１２１０４５として、割り当てたセグメントの基になっている物理リソース１２１０１のＩＤとそのセグメントのＬＢＡとを登録する。
（ａ８）プログラム１２１０９は、上記（ａ６）で特定したセグメントに、キャッシュメモリ領域のライト対象のデータを書き込む（プログラム１２１０９は、この段階で、ホスト計算機２００００にライト完了を応答して良い）。
（ａ９）プログラム１２１０９は、上記（ａ２）乃至（ａ８）のうちのいずれかにおいて、ライト先仮想領域に対応したＩＯＰＳ１２１０４９を更新する。
【００９５】
＜仮想ボリューム１１１００（２）に対するリードの処理の概要＞
【００９６】
以下の通りである。
（ｂ１）Ｉ／Ｏ制御プログラム１２１０９は、リード要求をホスト計算機２００００から受信する。
（ｂ２）プログラム１２１０９は、リード要求が有するＩ／Ｏ先情報を基に、リード元仮想ボリューム１１１００（２）とリード元仮想領域を特定する。
（ｂ３）プログラム１２１０９が、リード対象のデータがキャッシュメモリ領域に残っているか否かを判定する。
（ｂ４）上記（ｂ３）の判定の結果が肯定的の場合、プログラム１２１０９は、キャッシュメモリ領域内のリード対象データを、ホスト計算機２００００に送信する。この場合、リード元仮想領域に対応したＩＯＰＳ１２１０４９は、更新されてもされなくても良い。
（ｂ５）上記（ｂ３）の判定の結果が否定的の場合、プログラム１２１０９は、物理リソース割当てテーブル１２１０４を基に、上記（ｂ２）で特定されたリード元仮想領域にセグメントが割り当てられているかを判定する。
（ｂ６）上記（ｂ５）の判定の結果が否定的であれば、プログラム１２１０９は、所定のデータ（例えばエラー）をホスト計算機２００００に送信する。
（ｂ７）上記（ｂ５）の判定の結果が肯定的であれば、プログラム１２１０９は、リード元仮想領域に割り当てられているセグメントからデータを読み出し、そのデータをキャッシュメモリ領域に書き込む。そして、プログラム１２１０９は、キャッシュメモリ領域内のそのデータをホスト計算機２００００に送信する。
（ｂ８）プログラム１２１０９は、上記（ｂ２）乃至（ｂ７）のうちのいずれかにおいて、リード元仮想領域に対応したＩＯＰＳ１２１０４９を更新する。
【００９７】
＜動的再配置の概要＞
【００９８】
以下の通りである。動的再配置は、例えば定期的に又は不定期的に行われる。
（ｃ１）セグメントマイグレーション指示プログラム１２１１２が、マイグレーション元のセグメントが存在するか否かを判定する。「マイグレーション元のセグメント」とは、該当する動的再配置条件１２１０２５が表すＩ／Ｏ頻度範囲にＩ／Ｏ頻度（ＩＯＰＳ）が属していないセグメントである。
（ｃ２）上記（ｃ１）の判定の結果が肯定的であれば、プログラム１２１１２が、セグメントマイグレーションプログラム１２１１１にセグメントマイグレーションを指示する。
（ｃ３）セグメントマイグレーションプログラム１２１１１が、マイグレーション元のセグメントが割り当てられている仮想領域に対応したマイグレーション状態１２１０４６（テーブル１２１０４における情報１２１０４６）を、「マイグレーション中」に更新する。
（ｃ４）プログラム１２１１１が、マイグレーション元のセグメントに対応したＩ／Ｏ頻度が属するＩ／Ｏ頻度範囲に対応したセグメント群（物理リソース１１２０１）内のセグメントをマイグレーション先として決定する。
（ｃ５）プログラム１２１１１は、マイグレーション元となるセグメントからマイグレーション先のセグメントにデータをマイグレーションする。
（ｃ６）プログラム１２１１１は、マイグレーション元のセグメントが割り当てられていた仮想領域に、マイグレーション元のセグメントに代えてマイグレーション先のセグメントを割り当てる。
（ｃ７）プログラム１２１１１が、マイグレーション先のセグメントが割り当てられた仮想領域に対応したマイグレーション状態１２１０４６を、ハイフン（−）に更新する。
【００９９】
＜マイグレーションポリシ設定処理＞。
【０１００】
図９は、マイグレーションポリシ設定処理のシーケンスを示す。
【０１０１】
当該処理では、まず、ステップＳ１０００において、ユーザ（ストレージ管理者）が、構成管理プログラム４１００３が提供するＵＩを通じて、動的再配置機能を有する論理ボリューム１１１００のマイグレーションポリシを設定する。
【０１０２】
次に、ステップＳ１０１０において、構成管理プログラム４１００３は、ステップＳ１０００で受け付けた情報を、ポリシテーブル４１００２に書き込む。
【０１０３】
図１０は、図９のステップＳ１０００で表示される第１のＵＩ１０００を示す。
【０１０４】
第１のＵＩ１０００は、マイグレーションポリシが関連付けられる仮想ボリューム１１１００（２）を選択するためのＵＩである。第１のＵＩ１０００は、構成管理プログラム４１００３によって提供される。第１のＵＩ１０００は、動的再配置が行われている仮想ボリューム１１１００（２）の一覧を表示するテーブル１１００と、仮想ボリューム１１１００（２）のマイグレーション設定を編集するためのボタン１２００とを有する。なお、論理ボリュームの一覧テーブル１１００は、チェックボックスを有しており、ユーザは各行を選択できるものとする。
【０１０５】
ユーザは、テーブル１１００から、ポリシの編集を行う論理ボリューム１１１００を選択し、ボタン１２００を押す。ユーザがボタン１２００を押した後、第２のＵＩが表示される。
【０１０６】
図１１は、第２のＵＩ２０００を示す。
【０１０７】
第２のＵＩ２０００は、図１０の第１のＵＩ１０００から選択された仮想ボリューム（以下、図１１の説明において「選択ボリューム」と言う）１１１００（２）のポリシの詳細設定に用いるＵＩである。第２のＵＩ２０００は、構成管理プログラム４１００３によって提供される。第２のＵＩ２０００は、選択ボリューム１１１００（２）について設定されているマイグレーションポリシを表示する領域２１００と、論理ボリューム１１１００のマイグレーションポリシの編集で利用されるツール（テキストボックス、ドロップダウンボックス等）が表示される領域２２００とを有する。
【０１０８】
領域２１００は、選択ボリューム１１１００（２）について設定済みのマイグレーションポリシを表示するテーブル２１０１と、選択ボリューム１１１００（２）に設定済みのマイグレーションポリシを編集することを指定するためのボタン２１０２と、設定済みのマイグレーションポリシを削除することを指定するためのボタン２１０３とを有する。テーブル２１０１は、チェックボックスを有しており、ユーザは所望のマイグレーションポリシが表示されている行を選択することで、所望のマイグレーションポリシを選択できる。
【０１０９】
領域２２００は、メディア配置率の値が入力されるテキストボックス２２０１と、比較演算子が指定されるドロップダウンボックス２２０２と、メディア配置場所４１００２６の値が入力されるドロップダウンボックス２２０３と、期間４１００２７の値が入力されるテキストボックス２２０４と、論理条件４１００２４の値を指定するためのラジオボタン２２０５及び２２０６と、編集中のマイグレーションポリシが表示されるテーブル２２０７と、編集中のマイグレーションポリシをリセットすることを指定するためのボタン２２０８と、編集中のマイグレーションポリシに条件セット又は論理条件を追加することを指定するためのボタン２２０９と、編集が終了したマイグレーションポリシをポリシテーブル４１００２に追加することを指定するためのボタン２２１０とを有する。
【０１１０】
ユーザは、領域２１００を通じて、選択ボリューム１１１００（２）に設定済みのマイグレーションポリシの新規設定、編集または削除を指定する。
【０１１１】
マイグレーションポリシを新規追加する場合、ユーザは、領域２２００を通じて、マイグレーションポリシの設定を行う。
【０１１２】
設定済みのマイグレーションポリシを編集する場合、ユーザは、チェックボックスを通じて、選択ボリューム１１１００（２）について設定済みのマイグレーションポリシを選択する。当該ポリシを編集する場合、ユーザは、ボタン２１０２を押す。ボタン２１０２が押された場合、構成管理プログラム４１００３は、当該設定済みポリシをテーブル２２０７に表示する。
【０１１３】
設定済みマイグレーションポリシを削除する場合、ユーザは、ボタン２１０３を押す。ボタン２２０３が押された場合、構成管理プログラム４１００３は、設定済みマイグレーションポリシをテーブル２１０１から削除する。
【０１１４】
ユーザは、領域２２００を通じて、新規にマイグレーションポリシを設定、または既存のマイグレーションポリシを編集することができる。ユーザは、ツール２２０１及び２２０２を用いて、メディア配置率４１００２５の値を指定することができる。ユーザは、マイグレーションポリシに条件セットを追加する場合、ラジオボタン２２０５及び２２０６のいずれかを選択し、ボタン２２０９を押す。ボタン２２０９が押された場合、構成管理プログラム４１００３は、編集中の条件セットをテーブル２２０７に表示する。ユーザが、条件設定を終了し、選択ボリューム１１１００（２）にマイグレーションポリシを追加する場合は、ボタン２２１０を押す。ボタン２２１０が押された場合、構成管理プログラム４１００３は、入力されたマイグレーションポリシをポリシテーブル４１００２に追加し、テーブル２１０１におけるマイグレーションポリシの一覧を更新する。
【０１１５】
編集中のマイグレーションポリシをリセットする場合、ユーザは、ボタン２２０８を押す。ボタン２２０８が押された場合、構成管理プログラム４１００３は、テーブル２２０７に表示されている情報を削除する。
【０１１６】
以上の設定方法により、ユーザは、選択ボリューム１１１００（２）について設定するマイグレーションポリシの詳細を決定することができる。なお、マイグレーションポリシの記入は必ずしも図中の表現でなくてもよく、ユーザ（ストレージ管理者）が、動的再配置の効果がない論理ボリューム１１１００を特定するための条件を記述できるＵＩがあればよい。また、本実施例では、動的再配置の効果がない論理ボリューム１１１００を特定するためにユーザがＵＩ２０００とＵＩ２１００と、を用いてポリシを決定するが、必ずしもこの方法でなくてもよい。例えば、管理計算機４１０００に予め動的再配置の効果がない論理ボリューム１１１００を特定するための条件を記述しておいてもよい。
【０１１７】
＜構成情報取得処理＞。
【０１１８】
図１２は、構成情報取得処理のシーケンスを示す。なお、本実施例にて、構成情報取得プログラム１２１０６は、管理計算機４００００が持つプログラムの他の処理と並列に実行されて良い。
【０１１９】
当該処理では、まずステップＳ２０００にて、構成管理プログラム４１００３が、構成情報取得プログラム１２１０６に対し、ストレージサブシステム１００００の構成情報の提供を要求する。
【０１２０】
ステップＳ２０１０では、構成情報取得プログラム１２１０６は、ボリュームテーブル１２１０１、プールテーブル１２１０２、物理リソーステーブル１２１０３から、ストレージサブシステム１００００の構成情報を収集する。
【０１２１】
ステップＳ２０２０では、構成情報取得プログラム１２１０６は、物理リソーステーブル１２１０３と、物理リソース割当てテーブル１２１０４とを基に、仮想ボリューム１１１００（２）についてメディア種類毎のメディア配置率を算出する。具体的には、例えば、下記が行われる。
（＊）プログラム１２１０６は、物理リソーステーブル１２１０３と、物理リソース割当てテーブル１２１０４とを参照する。
（＊）プログラム１２１０６は、仮想ボリューム１１１００（２）の仮想領域（仮想領域に割り当てられているセグメント）に対応した物理リソースＩＤ１２１０４４に対応したメディア種類１２１０３２を特定する。
（＊）プログラム１２１０６は、仮想ボリューム１１１００（２）に対応した容量１２１０１４と、その仮想ボリューム１１１００（２）にセグメントが割り当てられている仮想領域についての容量１２１０４８及び上記特定されたメディア種類１２１０３２とを基に、その仮想ボリューム１１１００（２）について、メディア種類毎のメディア配置率を算出する。
【０１２２】
ステップＳ２０３０では、プログラム１２１０６は、ステップＳ２０１０で収集された情報と、ステップ２０２０で算出された、メディア種類毎のメディア配置率（配置先メディア割合４１００１６に相当する情報）とを含んだ構成情報を、構成管理プログラム４１００３に返す。
【０１２３】
ステップＳ２０４０では、構成管理プログラム４１００３が、ストレージサブシステム１００００からの構成情報を構成情報テーブル４１００１に格納する。
【０１２４】
ステップＳ２０５０では、構成管理プログラム４１００３が、一定時間経過するのを待つ。その後、ステップＳ２０００が再度行われる。構成管理プログラム４１００３が本ステップで待つ時間の長さは、予め定められていても良いし、ユーザ等によって適時に変更されても良い。
【０１２５】
＜マイグレーション対象決定特定＞。
【０１２６】
マイグレーション対象決定処理では、動的再配置の効果が無いと見做される仮想ボリューム１１１００（２）、つまり、マイグレーション対象の仮想ボリューム１１１００（２）が決定される。
【０１２７】
図１３は、マイグレーション対象決定処理のシーケンスを示す。本実施例において、ポリシ判定プログラム４１００４は、管理計算機４００００が持つプログラムの他の処理とは並列に実行されて良い。
【０１２８】
当該処理では、まずステップＳ３０００で、ポリシ判定プログラム４１００４が、構成情報テーブル４１００１と、ポリシテーブル４１００２とを参照し、テーブル４１００２からマイグレーションポリシを抽出する。
【０１２９】
ステップＳ３０１０にて、プログラム４１００４は、構成情報テーブル４１００１から特定される１つの仮想ボリューム（図１３の説明において「対象ボリューム」と言う）１１１００（２）について、ステップＳ３０００で抽出されたいずれかのマイグレーションポリシが設定されているか否かを判定する。この判定の結果が否定的の場合、ステップＳ３１００が行われ、この判定の結果が肯定的の場合、ステップＳ３０２０が行われる。なお、図１３の説明において、ステップＳ３０１０での判定の結果が肯定的となったマイグレーションポリシを、「対象ポリシ」と言う。
【０１３０】
ステップＳ３０２０にて、プログラム４１００４は、構成情報テーブル４１００１と、ポリシテーブル４１００２とを参照し、対象ボリューム１１１００（２）に対応した配置先メディア割合４１００１６が表す一以上のメディア配置率と、対象ポリシに対応した論理条件４１００２４、メディア配置率４１００２５及びメディア配置場所４１００２６がそれぞれ表す条件とを抽出する。
【０１３１】
ステップＳ３０３０にて、プログラム４１００４は、配置先メディア割合４１００１６が表す一以上のメディア配置率が、対象ポリシに対応した情報４１００２４〜４１００２６が表す条件に適合するか否かを判定する。この判定の結果が否定的の場合に、ステップＳ３０４０が行われ、この判定の結果が肯定的の場合に、ステップＳ３０５０が行われる。
【０１３２】
ステップＳ３０４０にて、プログラム４１００４は、対象ボリューム１１１００（２）に対応したマイグレーションフラグ４１００１７をＯＦＦ（０）にする。
【０１３３】
ステップＳ３０５０にて、プログラム４１００４は、対象ポリシに対応した開始時刻４１００２８として有効な値（時刻）が既に設定されているかを判定する。この判定の結果が否定的の場合に、ステップＳ３０６０が行われ、この判定の結果が肯定的の場合に、ステップＳ３０７０が行われる。
【０１３４】
ステップＳ３０６０では、プログラム４１００４は、現在時刻を表す情報を、対象ポリシに対応した開始時刻４１００２８として登録する。
【０１３５】
ステップＳ３０７０にて、プログラム４１００４は、対象ポリシに対応した開始時刻４１００２８から現在時刻までの期間を算出する。
【０１３６】
ステップＳ３０８０では、プログラム４１００４は、算出した期間が、対象ポリシに対応した期間４１００２７が表す期間を超えているか否かを判定する。この判定の結果が否定的の場合、ステップＳ３１００が行われ、この判定の結果が肯定的の場合、ステップＳ３０９０が行われる。
【０１３７】
ステップＳ３０９０にて、プログラム４１００４は、対象ボリューム１１１００（２）に対応したマイグレーションフラグ４１００１７をＯＮ（１）にする。
【０１３８】
ステップＳ３１００にて、プログラム４１００４は、全ての論理ボリューム１１１００がチェックされているか否かを判定する。この判定の結果が否定的の場合、ステップＳ３０１０が再度行われ、この判定の結果が肯定的の場合、ステップＳ３１１０が行われる。
【０１３９】
ステップＳ３１１０にて、プログラム４１００４は、一定時間経過するのを待つ。その後、Ｓ３０００が再度行われる。なお、ポリシ判定プログラム４１００４が本ステップで待つ期間は、予め決められていても良いし、ユーザ等によって適時に変更されても良い。
【０１４０】
＜マイグレーション指示処理＞。
【０１４１】
図１４は、マイグレーション指示処理のシーケンスを示す。
【０１４２】
当該処理では、まずステップＳ４０００にて、マイグレーション指示プログラム４１００５が、構成情報テーブル４１００１を参照する。
【０１４３】
ステップＳ４０１０にて、プログラム４１００５が、マイグレーションフラグ４１００１７がＯＮ（１）である仮想ボリューム１１１００（２）（つまりマイグレーション対象の仮想ボリューム１１１００（２））が存在するか否かを判定する。この判定の結果が否定的の場合に、ステップＳ４０７０が行われ、この判定の結果が肯定的の場合に、ステップＳ４０２０が行われる。
【０１４４】
ステップＳ４０２０にて、プログラム４１００５は、マイグレーション先決定プログラム４１００６を実行し、マイグレーション先の実ボリューム１１１００（１）の情報を得る。ここで言う実ボリューム１１１００（１）の情報とは、例えば、ストレージサブシステムＩＤとＬＵＮを含んだ情報である。もし、マイグレーション先の実ボリューム１１１００（１）が存在しない場合、マイグレーション指示プログラム４１００５は、マイグレーション先の実ボリューム１１１００（１）が存在しない事を示す情報（以下、「ヌル」と言う）を得る。ただし、マイグレーション指示プログラム４１００５が本ステップで得る情報は、この限りではなく、マイグレーション先の実ボリューム１１１００（１）が存在するかどうかを区別できる情報であれば良い。なお、マイグレーション先決定プログラム４１００６が行う処理のシーケンスについては後述する。
【０１４５】
ステップＳ４０３０にて、プログラム４１００５が、マイグレーション先の実ボリューム１１１００（１）が存在するか否かを判定する。この判定の結果が否定的の場合に、ステップＳ４０４０が行われ、この判定の結果が肯定的の場合に、ステップＳ４０５０が行われる。本実施例では、ステップＳ４０２０で得た情報が、ヌルならば、ステップＳ４０４０が行われ、ステップＳ４０２０で得た情報が、ヌル以外ならば、ステップＳ４０５０が行われる。
【０１４６】
ステップＳ４０４０にて、プログラム４１００５は、構成管理プログラム４１００３が提供するＵＩを通じて、警告メッセージをユーザに通知する。
【０１４７】
ステップＳ４０５０にて、プログラム４１００５は、ボリュームマイグレーションプログラム１２１０８に対し、ステップＳ４０１０で特定されたマイグレーション対象の仮想ボリューム１１１００（２）（マイグレーションフラグ４１００１７がＯＮ（１）である仮想ボリューム１１１００（２））から、ステップＳ４０２０で特定されたマイグレーション先の実ボリューム１１１００（１）へのボリュームマイグレーションを指示する。その指示の際に、マイグレーション対象の仮想ボリューム１１１００（２）の情報（例えば、ストレージサブシステムＩＤ及びＬＵＮ）と、マイグレーション先の実ボリューム１１１００（１）の情報（例えば、ストレージサブシステムＩＤ及びＬＵＮ）とが、ボリュームマイグレーションプログラム１２１０８に送信される。これにより、ボリュームマイグレーションプログラム１２１０８が、マイグレーション対象の仮想ボリューム１１１００（２）及びマイグレーション先の実ボリューム１１１００（１）を特定することができる。
【０１４８】
ステップＳ４０６０にて、プログラム４１００５が、全ての仮想ボリューム１１１００（２）がチェックされているか否かを判定する。この判定の結果が否定的の場合に、ステップＳ４０２０が行われ、この判定の結果が肯定的の場合に、ステップＳ４０７０が行われる。
【０１４９】
ステップＳ４０７０にて、プログラム４１００５は、一定時間経過するのを待つ。その後、Ｓ４０１０が行われる。なお、マイグレーション指示プログラム４１００５が本ステップで待つ期間は、予め設定されていても良いし、ユーザ等によって適時に変更されても良い。
【０１５０】
図１５は、ステップＳ４０４０で表示されるＵＩ３０００を示す。
【０１５１】
ＵＩ３０００は、警告内容の一覧を表示する警告一覧テーブル３１００を有する。本実施例において、ユーザはテーブル３１００を通じ、マイグレーション対象の仮想ボリューム１１１００（２）についてボリュームマイグレーションが完了しなかったことを確認できる。
【０１５２】
＜マイグレーション先決定処理＞。
【０１５３】
図１６は、マイグレーション先決定処理のシーケンスを示す。
【０１５４】
当該処理では、ステップＳ５０００にて、マイグレーション先決定プログラム４１００６が、マイグレーション指示プログラム４１００５から、マイグレーション対象の仮想ボリューム１１１００（２）（以下、図１６の説明で「対象ＶＶＯＬ」と言う）の情報を受け取る。ここで、その情報は、例えば、ストレージサブシステムＩＤとＬＵＮとを含んだ情報である。
【０１５５】
ステップＳ５０１０にて、プログラム４１００６は、ステップＳ５０００で得た情報を用いて構成情報テーブル４１００１を参照することにより、対象ＶＶＯＬについて最もメディア配置率の高いメディア種類と、対象ＶＶＯＬの容量とを特定する。
【０１５６】
ステップＳ５０２０にて、プログラム４１００６は、適切なマイグレーション先の実ボリューム１１１００（１）を探す。本実施例において、適切なマイグレーション先の実ボリューム１１１００（１）とは、ステップＳ５０１０にて特定されたメディア種類の物理リソース１１２０１に基づいており、ステップＳ５０１０で特定された容量（対象ＶＶＯＬの容量）以上の容量を有し、且つ、パスフラグ４１００１５がＯＦＦ（０）となっている実ボリューム１１１００（１）である。
【０１５７】
ステップＳ５０３０にて、マイグレーション先決定プログラム４１００６は、適切な論理ボリュームが見つかったか否かを判定する。この判定の結果が肯定的の場合に、ステップＳ５０４０が行われる。本実施例では、この判定の結果が否定的の場合に、プログラム４１００６は、マイグレーション指示プログラム４１００５にヌルを通知する。
【０１５８】
ステップＳ５０４０にて、プログラム４１００６は、見つかった適切なマイグレーション先の実ボリューム１１１００（１）の情報をマイグレーション指示プログラム４１００５に通知する。
【０１５９】
＜ボリュームマイグレーション処理＞。
【０１６０】
図１７は、ボリュームマイグレーション処理のシーケンスを示す。
【０１６１】
当該処理では、まずステップＳ６０００にて、ボリュームマイグレーションプログラム１２１０８が、ボリューム割当てテーブル１２１０５を参照し、マイグレーション指示プログラム４１００５から指定されたマイグレーション対象の仮想ボリューム１１１００（２）に対応したマイグレーション状態１２１０５３を「マイグレーション中」に設定する。これにより、図１８に示すように、当該仮想ボリューム１１１００（２）に対するライトは、本時点以降、当該仮想ボリューム１１１００（２）に対してではなく、メモリ１２１００（キャッシュメモリ領域）に対して行うように、Ｉ／Ｏ制御プログラム１２１０９によって制御される。
【０１６２】
次に、ステップＳ６０１０にて、プログラム１２１０８が、ボリュームコピープログラム１２１０７に、マイグレーション対象の仮想ボリューム１１１００（２）からマイグレーション先の実ボリューム１１１００（１）へのボリュームコピーを指示する。
【０１６３】
次に、ステップＳ６０２０にて、ボリュームコピープログラム１２１０７が、マイグレーション元の仮想ボリューム１１１００（２）からマイグレーション先の実ボリューム１１１００（１）にデータをコピーする。具体的には、マイグレーション元の仮想ボリューム１１１００（２）に割り当てられている全てのセグメント内のデータが、マイグレーション先の実ボリューム１１１００（１）にコピーされる。
【０１６４】
次に、ステップＳ６０３０にて、ボリュームマイグレーションプログラム１２１０８が、Ｉ／Ｏ制御プログラム１２１０９に、マイグレーション元の仮想ボリューム１１１００（２）に対する一時的にライトを停止するように要求する。
【０１６５】
次に、ステップＳ６０４０にて、Ｉ／Ｏ制御プログラム１２１０９が、現在行っている最中のライト処理が終了した後で、一時的にライトを停止する。なお、本実施例においては、ライト停止中もストレージサブシステム１００００はホスト計算機２００００からのＩ／Ｏ要求（リード要求及びライト要求）を受け付け、そのＩ／Ｏ要求をメモリ１２１００などに保持しておくことができる。
【０１６６】
次に、ステップＳ６０５０にて、ボリュームマイグレーションプログラム１２１０８が、Ｉ／Ｏ制御プログラム１２１０９に、マイグレーション元の仮想ボリューム１１１００（２）に関して、キャッシュメモリ領域に書き込まれているデータをマイグレーション先の実ボリューム１１１００（１）の該当領域に書き込むように要求する。ここで言う「該当領域」とは、キャッシュメモリ領域内のデータについてのライト先のＬＢＡから特定される領域である。
【０１６７】
次に、ステップＳ６０６０にて、Ｉ／Ｏ制御プログラム１２１０９は、ステップＳ６０５０での要求に応答して、キャッシュメモリ領域に書き込まれているデータをマイグレーション先の実ボリューム１１１００（１）の該当領域に書き込む。
【０１６８】
次に、ステップＳ６０７０にて、ボリュームマイグレーションプログラム１２１０８が、物理リソース割当てテーブル１２１０４を参照し、マイグレーション元の仮想ボリューム１１１００（２）のＬＵＮと、マイグレーション先の実ボリューム１１１００（１）のＬＵＮとを入れ替える。
【０１６９】
次に、ステップＳ６０８０にて、ボリュームマイグレーションプログラム１２１０８が、Ｉ／Ｏ制御プログラム１２１０９に、ライトを再開するように要求する。
【０１７０】
次に、ステップＳ６０９０にて、Ｉ／Ｏ制御プログラム１２１０９が、ステップＳ６０８０での要求に応答して、ライトを再開する。
【０１７１】
＜Ｉ／Ｏ制御処理＞。
【０１７２】
Ｉ／Ｏ制御処理では、ホスト計算機２００００から論理ボリューム１１１００へのＩ／Ｏが制御される。
【０１７３】
図１８は、Ｉ／Ｏ制御処理のシーケンスを示す。
【０１７４】
当該処理では、まず、ステップＳ７０００にて、Ｉ／Ｏ制御プログラム１２１０９が、アプリケーション２１００１からＩ／Ｏ要求を受信する。
【０１７５】
次に、ステップＳ７０１０にて、Ｉ／Ｏ制御プログラム１２１０９が、Ｉ／Ｏ要求の種類を特定する。ここでは、Ｉ／Ｏ要求の種類は、「リード」又は「ライト」であるとする。
【０１７６】
Ｉ／Ｏ要求の種類が「リード」の場合、ステップＳ７０２０にて、Ｉ／Ｏ制御プログラム１２１０９が、ボリューム割当てテーブル１２１０５と、物理リソース割当てテーブル１２１０４とを参照し、リード元のボリューム領域を特定する。
【０１７７】
そして、ステップＳ７０３０にて、Ｉ／Ｏ制御プログラム１２１０９が、特定されたリード元のボリューム領域からデータをリードする。
【０１７８】
Ｉ／Ｏ要求の種類が「ライト」の場合、ステップＳ７０４０にて、Ｉ／Ｏ制御プログラム１２１０９が、ボリューム割当てテーブル１２１０５を参照し、ライト先の論理ボリューム１１１００に対応したマイグレーション状態１２１０５３を特定する。
【０１７９】
次に、Ｉ／Ｏ制御プログラム１２１０９が、ステップＳ７０５０にて、特定されたマイグレーション状態１２１０５３が「マイグレーション中」であるか否かを判定する。
【０１８０】
マイグレーション状態１２１０５３が「マイグレーション中」である場合、ステップＳ７０６０にて、Ｉ／Ｏ制御プログラム１２１０９が、アプリケーション２１００１からのライト要求に従うライト対象のデータを、キャッシュメモリ領域に書き込む。なお、ここでのライト先は、キャッシュメモリ領域以外の記憶領域であっても良い。
【０１８１】
さらに、ステップＳ７０７０にて、Ｉ／Ｏ制御プログラム１２１０９が、ライト先のボリューム領域に対応する物理リソースＩＤ１２１０４４として、キャッシュメモリ領域の識別子を書込み、ライト先のボリューム領域に対応する物理ＬＢＡ１２１０４５として、キャッシュメモリ領域における書込み先のアドレスを書込む。
【０１８２】
マイグレーション状態１２１０５３が「マイグレーション中」でない場合、ステップＳ７０８０にて、Ｉ／Ｏ制御プログラム１２１０９が、ボリューム割当てテーブル１２１０５と物理リソース割当てテーブル１２１０４とを参照し、ライト先のＬＢＡに適合するボリュームＬＢＡ１２１０４２を特定する。
【０１８３】
次に、ステップＳ７０９０にて、Ｉ／Ｏ制御プログラム１２１０９が、ステップＳ７０８０で特定されたボリュームＬＢＡ１２１０４２に対応する物理ＬＢＡ１２１０４５として、既に有効な値が格納されているか否かを判定する。
【０１８４】
ステップＳ７０９０の判定の結果が肯定的の場合、ステップＳ７１１０にて、Ｉ／Ｏ制御プログラム１２１０９が、アプリケーション２１００１からのライト対象のデータを、ステップＳ７０８０で特定されたボリュームＬＢＡ１２１０４２に対応する物理ＬＢＡ１２１０４５が表す物理的な記憶領域に書き込む。
【０１８５】
ステップＳ７０９０の判定の結果が否定的の場合、ステップＳ７１００にて、Ｉ／Ｏ制御プログラム１２１０９が、ステップＳ７０８０で特定されたボリュームＬＢＡ１２１０４２が表すボリューム領域（仮想領域）に、新たに物理リソースに基づく物理的な記憶領域（セグメント）を割り当てる。なお、新規に割り当てる物理的な記憶領域を決定する方法には、物理リソースのＬＢＡを先頭から検索し、必要な容量を満たす最初の領域を選択するなどの方法があるが、特に限定はしない。ステップＳ７１００の後、ステップＳ７１１０が行われる。
【０１８６】
図１８、図１９及び図２０に示される処理は、ストレージサブシステム１００００内での、動的再配置の対象の仮想ボリューム１１１００（２）について行われる。
【０１８７】
＜セグメントマイグレーション指示処理＞。
【０１８８】
図１９は、セグメントマイグレーション指示処理のシーケンスを示す。
【０１８９】
当該処理では、まず、ステップＳ８０００にて、セグメントマイグレーション指示プログラム１２１１２は、ボリュームテーブル１２１０１と、プールテーブル１２１０２とを基に、動的再配置の対象のプールに関連付けられている仮想ボリューム１１１００（２）を１つ選ぶ。以下、その仮想ボリューム１１１００（２）を、図１９の説明において「対象ＶＶＯＬ」と言う。
【０１９０】
次に、ステップＳ８０１０にて、プログラム１２１１２は、物理リソーステーブル１２１０３と、物理リソース割当てテーブル１２１０４とを基に、対象ＶＶＯＬの各仮想領域について、アクセス頻度（ＩＯＰＳ）と、割り当てられているセグメントのメディア種類とを特定する。
【０１９１】
次に、ステップＳ８０２０にて、プログラム１２１１２は、ステップＳ８０１０で特定されたアクセス頻度と、プールテーブル１２１０２とを基に、対象ＶＶＯＬの各仮想領域について、アクセス頻度が動的再配置条件を満たすメディア種類を特定する。
【０１９２】
次に、ステップＳ８０３０にて、プログラム１２１１２は、対象ＶＶＯＬの各仮想領域について、ステップＳ８０１０で特定されたメディア種類と、ステップＳ８０２０で特定されたメディア種類とを比較する。
【０１９３】
次に、ステップＳ８０４０にて、プログラム１２１１２は、互いに不一致のメディア種類に対応した仮想領域に割り当てられているセグメントがあるか否かを判定する。この判定の結果が否定的の場合に、ステップＳ８０７０が行われ、この判定の結果が肯定的の場合に、ステップＳ８０５０が行われる。
【０１９４】
ステップＳ８０５０にて、プログラム１２１１２は、物理リソース割り当てテーブル１２１０４とプールテーブル１２１０２とを基に、マイグレーション先のセグメントを選択する。マイグレーション先のセグメントは、互いに不一致のメディア種類に対応した仮想領域のアクセス頻度が適合する動的再配置条件に対応した物理リソースに基づくセグメントである。
【０１９５】
ステップＳ８０６０にて、プログラム１２１１２が、マイグレーション元のセグメント（互いに不一致のメディア種類に対応した仮想領域に割り当てられているセグメント）からマイグレーション先のセグメント（ステップＳ８０４０で選択したセグメント）へのセグメントマイグレーションを、セグメントマイグレーションプログラム１２１１１に指示する。その指示の際に、マイグレーション元のセグメントの情報（例えば、プールＩＤ、物理リソースＩＤ、物理ＬＢＡ）と、マイグレーション先のセグメントの情報（例えば、プールＩＤ、物理リソースＩＤ、物理ＬＢＡ）とが、セグメントマイグレーションプログラム１２１１１に送られて良い。これにより、セグメントマイグレーションプログラム１２１１１が、マイグレーション元のセグメントと、マイグレーション先のセグメントとを特定することができる。
【０１９６】
次に、ステップＳ８０７０にて、セグメントマイグレーション指示プログラム１２１１２は、一定時間経過するのを待つ。その後、Ｓ８０００が再度行われる。なお、本ステップでのセグメントマイグレーション指示プログラム１２１１２が待つ時間は、予め設定されていても良いし、ユーザ等により適時に変更されても良い。また、本実施例では、アクセス頻度を基に動的再配置条件に適合するか否かの判定が行われるが、アクセス頻度に代えて又は加えて、論理ボリュームのレスポンスタイム（例えば、論理ボリュームを指定したＩ／Ｏ要求を受けてからホスト計算機２００００に応答が返されるまでの時間長）など、他の属性値が採用されても良い。
【０１９７】
＜セグメントマイグレーション処理＞。
【０１９８】
図２０は、セグメントマイグレーション処理のシーケンスを示す。なお、当該処理のステップＳ６０４０、Ｓ６０９０は、図１７に示したボリュームマイグレーションのステップＳ６０４０、Ｓ６０９０と同じであるため、説明は省略する。
【０１９９】
当該処理では、まず、ステップＳ６０００ａにて、セグメントマイグレーションプログラム１２１１２が、ボリューム割当てテーブル１２１０５と物理リソース割当てテーブル１２１０４とを参照し、下記の（１）及び（２）：
（１）セグメントマイグレーション指示プログラム１２１１２から指示されたマイグレーション元のセグメントに対応したマイグレーション状態１２１０４６を「マイグレーション中」に設定する、
（２）マイグレーション元のセグメントを有する仮想ボリューム１１１００（２）に対応したマイグレーション状態１２１０５３を「マイグレーション中」に設定する、
を行う。これにより、図２１に示すように、当該セグメント（及びそのセグメントを含んだ仮想ボリューム１１１００（２））に対するライトは、本時点以降、当該セグメントに対してではなく、キャッシュメモリ領域に対して行うようにＩ／Ｏ制御プログラム１２１０９によって制御される。なお、上記（２）は行われなくても良い。
【０２００】
次に、ステップＳ６０１０ａにて、セグメントマイグレーションプログラム１２１１２が、セグメントコピープログラム１２１１０に、マイグレーション元のセグメントからマイグレーション先のセグメントにデータをコピーするよう指示する。
【０２０１】
次に、ステップＳ６０２０ａにて、セグメントコピープログラム１２１１０が、ステップＳ６０１０ａでの指示に応答して、マイグレーション元のセグメントからマイグレーション先のセグメントにデータをコピーする。
【０２０２】
次に、ステップＳ６０３０ａにて、セグメントマイグレーションプログラム１２１１２が、Ｉ／Ｏ制御プログラム１２１０９に、マイグレーション元のセグメントが割り当てられている仮想領域に対するライトを一時的に停止するように要求する。
【０２０３】
ステップＳ６０５０ａにて、セグメントマイグレーションプログラム１２１１１が、Ｉ／Ｏ制御プログラム１２１０９に、マイグレーション元セグメントが割り当てられている仮想領域について、キャッシュメモリ領域に書き込まれているデータを、マイグレーション先のセグメントに書き込むように要求する。
【０２０４】
次に、ステップＳ６０６０ａにて、Ｉ／Ｏ制御プログラム１２１０９は、ステップＳ６０５０ａの要求に応答して、マイグレーション元セグメントが割り当てられている仮想領域をライト先とするデータを、キャッシュメモリ領域からマイグレーション先のセグメントに書き込む。
【０２０５】
次に、ステップＳ６０７０ａにて、セグメントマイグレーションプログラム１２１１１が、物理リソース割当てテーブル１２１０４を参照し、マイグレーション元セグメントに割り当てられている仮想領域に対応した物理リソースＩＤ１２１０４４および物理ＬＢＡ１２１０４５を、マイグレーション先セグメントの物理リソースＩＤおよび物理ＬＢＡに更新する。
【０２０６】
次に、ステップＳ６０８０ａにて、セグメントマイグレーションプログラム１２１１２が、Ｉ／Ｏ制御プログラム１２１０９に、ライトを再開するように要求する。
【０２０７】
＜セグメント単位のＩ／Ｏ制御処理＞。
【０２０８】
図２１は、セグメント単位のＩ／Ｏ制御処理のシーケンスを示す。
【０２０９】
当該処理のステップＳ７０００、Ｓ７０１０、Ｓ７０２０、Ｓ７０３０、Ｓ７０４０、Ｓ７０６０、Ｓ７０９０、Ｓ７１００、Ｓ７１１０は、図１８に示したＩ／Ｏ制御のステップＳ７０００、Ｓ７０１０、Ｓ７０２０、Ｓ７０３０、Ｓ７０６０、Ｓ７０９０、Ｓ７１００、Ｓ７１１０と同じであるため、説明は省略する。
【０２１０】
当該処理では、ステップＳ７０５０ａにて、Ｉ／Ｏ制御プログラム１２１０９が、Ｉ／Ｏ先の仮想領域に対応したマイグレーション状態１２１０４６が「マイグレーション中」か否かを判定する。この判定の結果が肯定的である場合に、ステップＳ７０６０が行われ、この判定の結果が否定的である場合に、ステップＳ７０９０が行われる。
【０２１１】
ステップＳ７０７０ａにて、Ｉ／Ｏ制御プログラム１２１０９が、ライト先の仮想領域に対応する物理リソースＩＤ１２１０４４として、キャッシュメモリ領域の識別子を書込み、ライト先の仮想領域に対応する物理ＬＢＡ１２１０４５として、キャッシュメモリ領域における書込み先のアドレスを書込む。
【０２１２】
以上、実施例１で行われる処理の説明である。以上の説明によれば、動的再配置の効果が無いと見做される仮想ボリューム１１１００（２）が特定され、そのマイグレーション対象の仮想ボリューム１１１００（２）内のデータが、実ボリューム１１１００（１）にマイグレーションされる。マイグレーション先の実ボリューム１１１００（１）は、マイグレーション対象の仮想ボリューム１１１００（２）について最もメディア配置率の高いメディア種類と同じメディア種類の物理リソース１１２０１に基づく実ボリューム１１１００（１）である。例えば、マイグレーション対象の仮想ボリューム１１１００（２）について、ＳＳＤに対応するメディア配置率は９０％であり、ＳＡＴＡに対応するメディア配置率が１０％である場合、マイグレーション先の実ボリューム１１１００（１）は、ＳＳＤに基づく実ボリューム１１１００（１）とされる。このため、仮想ボリューム１１１００（２）内のデータを、その仮想ボリューム１１１００（２）についてのメディア種類毎のメディア配置率に応じた適切な実ボリューム１１１００（１）に配置できる。また、その仮想ボリューム１１１００（２）に割り当てられていたセグメントは全て他の仮想ボリューム１１１００（２）に割り当て可能となるので、プール１１２００を有効に使用することが可能となる。
【０２１３】
なお、動的再配置の効果が無いと見做される仮想ボリューム１１１００（２）は、マイグレーションポリシ次第であるが、そのポリシは、次の観点に従って定義されることが望ましい。
【０２１４】
例えば、仮想ボリューム１１１００（２）について或るメディア種類（例えばＳＳＤ）に対応したメディア配置率が高いまま長時間経過している場合、仮想ボリューム１１１００（２）内のデータは、仮想ボリューム１１１００（２）よりも実ボリューム１１１００（１）に格納されることが好ましいと考えられる。なぜなら、その場合には、仮想ボリューム１１１００（２）内の多くのデータが、動的再配置において配置が変わることがなく、それ故、動的再配置の効果が無いからである。また、一般に、Ｔｈｉｎ  Ｐｒｏｖｉｓｏｎｉｎｇに従う仮想ボリュームへのＩ／Ｏは、Ｉ／Ｏ先の仮想領域に対応するセグメントを検索するための処理が必要である等の理由から、実ボリュームへのＩ／Ｏに比べて負荷が高く、それにも関らず、動的再配置の効果が得られないデータをプール１１２００に配置させ続けておくことは、Ｉ／Ｏ性能を無駄に低下させ、且つ、プール１１２００を無駄に消費することになるからである。
【０２１５】
従って、マイグレーションポリシとしては、メディア配置率が偏っているということを意味する条件と、その偏りが続いている期間の条件とが含まれていることが望ましい。
【実施例２】
【０２１６】
以下、本発明の実施例２を説明する。なお、以下、実施例１との相違点を主に説明し、実施例１との共通点については説明を省略或いは簡略する。
【０２１７】
＜実施例２の概要＞。
【０２１８】
実施例２では、マイグレーション先の実ボリューム１１１００（１）は、マイグレーション対象の仮想ボリューム１１１００（２）についてのメディア種類毎のメディア配置率に基づいて決定される。
【０２１９】
＜実施例２に係るデータ処理システムの構成＞。
【０２２０】
図２２は、本発明の実施例２に係るデータ処理システムの構成を示す。
【０２２１】
このデータ処理システムでは、管理計算機４００００ｂが、実施例１での管理計算機４００００と異なる。具体的には、マイグレーション先決定プログラム４１００６ｂが、実施例１でのマイグレーション先決定プログラム４１００６と異なる。マイグレーション先決定プログラム４１００６ｂは、マイグレーション対象の仮想ボリューム１１１００（２）についてのメディア種類毎のメディア配置率を基に、マイグレーション先の実ボリューム１１１００（１）を決定する。
【０２２２】
＜実施例２に係るマイグレーション先決定処理＞。
【０２２３】
図２３は、実施例２に係るマイグレーション先決定処理のシーケンスを示す。
【０２２４】
図２３のステップＳ５０００、Ｓ５０３０、Ｓ５０４０については、図１６のマイグレーション先決定処理のＳ５０００，Ｓ５０３０、Ｓ５０４０と処理が同じであるため、説明は省略する。
【０２２５】
本実施例に係るマイグレーション先決定処理では、ステップＳ５０１０ｂにて、マイグレーション先決定プログラム４１００６ｂが、ステップＳ５０００で得た情報を用いて構成情報テーブル４１００１を参照することにより、対象ＶＶＯＬ（マイグレーション対象の仮想ボリューム１１１００（２））に対応した配置先メディア割合４１００１６及び容量４１００１３を特定する。
【０２２６】
ステップＳ５０２０ｂにて、プログラム４１００６ｂは、構成情報テーブル４１００１を参照し、Ｓ５０００で特定した容量４１００１３及び配置先メディア割合４１００１６を基に、対象ＶＶＯＬについて、メディア種類毎の容量を算出する。次に、プログラム４１００６ｂは、マイグレーション先の実ボリューム１１１００（１）として、各メディア種類の物理的な記憶領域の容量が、算出されたメディア種類毎の容量以上であり、かつ、パスフラグ４１００１５がＯＦＦ（０）になっている実ボリューム１１１００（１）を選ぶ。このステップＳ５０２０ｂによれば、具体的には、下記の処理が行われる。
（＊）Ｓ５０００で特定した容量４１００１３が、１０００ＧＢを表しており、配置先メディア割合４１００１６が、ＳＳＤ：２０％、ＳＡＳ：３０％、ＳＡＴＡ：５０％を表しているとする。この場合、メディア種類毎の容量として、ＳＳＤ：２００ＧＢ、ＳＡＳ：３００ＧＢ、ＳＡＴＡ：５００ＧＢが算出される。
（＊）マイグレーション先の実ボリューム１１１００（１）として、ＳＳＤ：２００ＧＢ以上、ＳＡＳ：３００ＧＢ以上、ＳＡＴＡ：５００ＧＢ以上の物理的な記憶領域を基に構成されている実ボリューム１１１００（１）が決定される。
【０２２７】
以上が、実施例２の説明である。実施例２によれば、動的再配置の効果が無いと見做される仮想ボリューム１１１００（２）からのデータのマイグレーション先は、その仮想ボリューム１１１００（２）の構成（メディア種類毎のメディア配置率）により近い構成の実ボリューム１１１００（１）となる。このため、より適切なデータ配置が期待できる。
【実施例３】
【０２２８】
以下、本発明の実施例３を説明する。なお、以下、実施例２との相違点を主に説明し、実施例２との共通点については説明を省略或いは簡略する。
【０２２９】
＜実施例３の概要＞。
【０２３０】
実施例３では、マイグレーション先の実ボリューム１１１００（１）は、マイグレーション対象の仮想ボリューム１１１００（２）のメディア配置率や容量だけでなく、その仮想ボリューム１１１００（２）の性能にも基づいて、決定される。ここで言う「性能」は、例えば、Ｉ／Ｏ速度（単位時間当たりに入出力されるデータの量）である。
【０２３１】
＜実施例３に係るデータ処理システムの構成＞。
【０２３２】
図２４は、本発明の実施例３に係るデータ処理システムの構成を示す。
【０２３３】
このデータ処理システムでは、ストレージサブシステム１００００ｃが、実施例２でのストレージサブシステム１００００と異なる。具体的には、下記が異なる。
（＊）ボリュームテーブル１２１０１ｃが、実施例２でのボリュームテーブル１２１０１と異なる。ボリュームテーブル１２１０１ｃの構成を図２５に示す。図２５によれば、テーブル１２１０１ｃは、論理ボリューム１１１００毎に、性能情報１２１０１６を更に有する。性能情報１２１０１６は、論理ボリューム１１１００の性能（Ｉ／Ｏ速度）を表す情報である。なお、図２５の例では、性能は「ＭＢ／ｓ」（メガバイト／秒）で表されているが、表現はこの限りではなく、論理ボリューム１１１００の性能の情報を示す別の単位や指標が用いられても良い。
（＊）性能監視プログラム１２１１３が新たに設けられる。性能監視プログラム１２１１３は、各論理ボリューム１１１００の性能を定期的に特定し、特定された性能を表す情報を、図２に示したテーブル１２１０１ｃの性能情報１２１０１６として登録する。
構成情報取得プログラム１２１０６ｃが、実施例２での構成情報取得プログラム１２１０６と異なる。構成情報取得プログラム１２１０６ｃは、性能情報１２１０１６が表す情報を含んだ構成情報を取得し、その構成情報を管理計算機４００００ｃに送信する。
【０２３４】
また、このデータ処理システムでは、管理計算機４００００ｃが、実施例２での管理計算機４００００ｂと異なる。具体的には、下記が異なる。
（＊）構成情報テーブル４１００１ｃが、実施例２での構成情報テーブル４１００１と異なる。構成情報テーブル４１００１ｃの構成を図２６に示す。図２６によれば、テーブル４１００１ｃは、論理ボリューム１１１００毎に、性能情報４１００１８を更に有する。性能情報４１００１８は、論理ボリューム１１１００の性能（Ｉ／Ｏ速度）を表す情報である。この情報４１００１８は、構成情報から特定された情報を表す。
（＊）マイグレーション先決定プログラム４１００６ｃが、実施例２でのマイグレーション先決定プログラム４１００６ｂと異なる。マイグレーション先決定プログラム４１００６ｃは、マイグレーション対象の仮想ボリューム１１１００（２）のメディア配置率や容量だけでなく、その仮想ボリューム１１１００（２）の性能（性能情報４１００１８が表す性能）にも基づいて、マイグレーション先の実ボリューム１１１００（１）を決定する。
【０２３５】
＜実施例３に係る構成情報取得処理＞。
【０２３６】
図２７は、実施例３に係る構成情報取得処理のシーケンスを示す。
【０２３７】
当該処理のステップＳ２０００と、Ｓ２０２０と、Ｓ２０５０は、図１２に示したステップＳ２０００と、Ｓ２０２０と、Ｓ２０５０と同じであるため、説明は省略する。
【０２３８】
当該処理では、ステップＳ２０１０ｃにて、構成情報取得プログラム１２１０６ｃが、ボリュームテーブル１２１０１ｃ、プールテーブル１２１０２及び物理リソーステーブル１２１０３ｃが表す情報（論理ボリューム１１１００の性能情報１２１０１６が表す情報を含む）を収集する。 
【０２３９】
ステップＳ２０３０ｃにて、プログラム１２１０６ｃが、ステップＳ２０１０ｃで収集された情報と、ステップＳ２０２０で取得された情報とを含んだ構成情報を、構成管理プログラム４１００３に返す。 
【０２４０】
ステップＳ２０４０ｃにて、構成管理プログラム４１００３が、ストレージサブシステム１００００ｃの構成情報（性能情報を含む）を、構成情報テーブル４１００１ｃに格納する。
【０２４１】
＜ボリューム性能監視処理＞。
【０２４２】
図２８は、ボリューム性能監視処理のシーケンスを示す。
【０２４３】
当該処理では、ステップＳ９０００にて、性能監視プログラム１２１１３は、ボリュームテーブル１２１０１ｃを参照する。
【０２４４】
ステップＳ９０１０にて、性能監視プログラム１２１１３は、ボリュームテーブル１２１０１ｃから、ステップＳ９０１０からステップＳ９０５０のループにおいて未チェックの論理ボリューム１１１００を１つ選択し、選択した論理ボリューム（以下、図２８の説明において、「選択ボリューム」）１１１００に対応した性能情報１２１０１６を特定する。
【０２４５】
ステップＳ９０２０にて、プログラム１２１１３は、特定された性能情報１２１０１６が、０ＭＢ／ｓを表すか否かを判定する。この判定の結果が否定的である場合に、ステップＳ９０３０が行われ、この判定の結果が肯定的である場合に、ステップＳ９０４０が行われる。
【０２４６】
ステップＳ９０３０にて、プログラム１２１１３は、選択ボリューム１１１００に対応した性能情報１２１０１６を、選択ボリューム１１１００の現在の性能を表す情報（例えば実際に測定された値）に更新する。
【０２４７】
ステップＳ９０４０では、プログラム１２１１３は、選択ボリューム１１１００に対応した性能情報１２１０１６を、選択ボリューム１１１００に従う固定値に更新する。選択ボリューム１１１００に従う固定値としては、例えば、選択ボリューム１１１００に基づくメディア種類に対応したスペックを基に算出された見込み性能であっても良いし、ユーザ（ストレージ管理者）が予測した値であっても良い。
【０２４８】
ステップＳ９０５０にて、プログラム１２１１３は、全ての論理ボリューム１１１００のチェックが終了しているかを判定する。この判定の結果が否定的である場合に、ステップＳ９０１０が行われ、この判定の結果が肯定的である場合に、ステップＳ９０６０が行われる。
【０２４９】
ステップＳ９０６０にて、プログラム１２１１３は、一定時間経過するのを待つ。その後、Ｓ９０００が行われる。本ステップで性能監視プログラム１２１１３が待つ期間は、予め定められていても良いし、ユーザ（ストレージ管理者）等により適時に変更されても良い。
【０２５０】
＜実施例３に係るマイグレーション先決定処理＞。
【０２５１】
図２９は、実施例３に係るマイグレーション先決定処理のシーケンスを示す。
【０２５２】
当該処理のステップＳ５０００、Ｓ５０１０ｂ、Ｓ５０３０及びＳ５０４０は、図２５のＳ５０００，Ｓ５０１０ｂ、Ｓ５０３０及びＳ５０４０と同じであるため、説明は省略する。
【０２５３】
当該処理では、ステップＳ５０２０ｃにて、マイグレーション先決定プログラム４１００６ｃは、構成情報テーブル４１００１ｃを参照し、Ｓ５０００で特定した容量４１００１３及び配置先メディア割合４１００１６を基に、対象ＶＶＯＬ（マイグレーション対象の仮想ボリューム１１１００（２））について、メディア種類毎の容量を算出する。次に、プログラム４１００６ｃは、マイグレーション先の実ボリューム１１１００（１）として、各メディア種類の物理的な記憶領域の容量が、算出されたメディア種類毎の容量以上であり、パスフラグ４１００１５がＯＦＦ（０）になっており、且つ、対象ＶＶＯＬ以上の性能を有する実ボリューム１１１００（１）を選ぶ。
【０２５４】
以上が、実施例３の説明である。実施例３によれば、動的再配置の効果が無いと見做される仮想ボリューム１１１００（２）からのデータのマイグレーション先は、その仮想ボリューム１１１００（２）の構成（メディア種類毎のメディア配置率）より近い構成を有し、且つ、その仮想ボリューム１１１００（２）の性能以上の性能を有する実ボリューム１１１００（１）となる。このため、より適切なデータ配置が期待できる。
【０２５５】
以上、本発明の幾つかの実施例を説明したが、本発明は、これらの実施例に限定されるものでなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【０２５６】
例えば、実施例２及び３で決定されるマイグレーション先の実ボリューム１１１００（１）の条件として、マイグレーション対象の仮想ボリューム１１１００（２）の容量以上の容量を有することが採用されて良い。また、実施例３で決定されるマイグレーション先の実ボリューム１１１００（１）の条件は、メディア種類毎の容量以上の容量を各メディア種類について有することに代えて、マイグレーション対象の仮想ボリューム１１１００（２）に関して最もメディア配置率の高いメディア種類と同じメディア種類の物理リソース１１２０１に基づいていることが採用されて良い。
【０２５７】
また、メディア配置率は、仮想ボリューム１１１００（２）の容量（全域）のうち、或るメディア種類のセグメントがどの程度存在するかであっても良い。
【０２５８】
また、マイグレーション先として、実ボリューム１１１００（１）に限らず、仮想ボリューム１１１００（２）が決定されても良い。ただし、その際、マイグレーション先の仮想ボリューム１１１００（２）に関連付けられているプール（以下、マイグレーション先のプール）１１２００についての動的再配置条件は、マイグレーション対象の仮想ボリューム１１１００（２）に関連付けられているプール（以下、マイグレーション元のプール）１１２００についての動的再配置条件と異なっていることが望ましい。なぜなら、それらが互いに異なっていれば、仮想ボリューム１１１００（２）間のボリュームマイグレーション後に、マイグレーション先の仮想ボリューム１１１００（２）についての動的再配置で、マイグレーション先の仮想ボリューム１１１００（２）内のデータが、マイグレーション先のプール１１２００内においてマイグレーションされる可能性があるためである。つまり、動的再配置の効果が得られることが期待されるからである。
【０２５９】
また、マイグレーション対象の論理ボリューム１１１００は、仮想ボリューム１１１００（２）に限らず、実ボリューム１１１００（１）であっても良い。例えば、或る実ボリューム１１１００（１）をマイグレーション先としたボリュームマイグレーションが行われた後に、その或る実ボリューム１１１００（１）を構成する複数のボリューム領域において、アクセス頻度が偏る可能性がある。このため、Ｉ／Ｏ制御プログラム１２１０９が、実ボリュームの各ボリューム領域についても、アクセス頻度を監視して良い。そして、ボリュームマイグレーションでは、実ボリューム１１１００（１）内のボリューム領域から、仮想ボリューム１１１００（２）内の仮想領域（マイグレーション元のボリューム領域のアドレスに対応したアドレスに属する仮想領域）にデータがマイグレーションされて良い。その際、マイグレーション先の仮想領域には、マイグレーション元のボリューム領域のアクセス頻度が属するアクセス頻度範囲の物理リソース１１２０１に基づくセグメントが割り当てられて良い。
【０２６０】
また、マイグレーション元の論理ボリューム１１１００とマイグレーション先の論理ボリューム１１１００は、別々のストレージサブシステムに存在しても良い。この場合、管理計算機からのマイグレーション指示は、マイグレーション元の論理ボリュームを有するストレージサブシステム（以下、マイグレーション元サブシステム）に送られても良いし、マイグレーション先の論理ボリュームを有するストレージサブシステム（以下、マイグレーション先サブシステム）に送られても良い。この場合、複数のストレージサブシステムでストレージシステムが構成されていることになる。ストレージシステムにおいて、ストレージサブシステム間のマイグレーションは、マイグレーション元サブシステムがマイグレーション先サブシステムへ要求（例えばライト要求）を送信することにより行われても良いし、マイグレーション先サブシステムがマイグレーション元サブシステムへ要求（例えばリード要求）を送信することにより行われても良い。
【０２６１】
また、動的再配置は、セグメント単位ではなく論理ボリューム単位で行われても良い。例えば、第１の論理ボリュームのＩ／Ｏ状況（例えば、アクセス頻度、レスポンスタイム、或いは、最終Ｉ／Ｏ時刻からの経過時間など）が、第１の論理ボリュームの基になっている第１の物理リソースのメディア種類に対応した動的再配置条件（Ｉ／Ｏ状況に関する条件）に適合しない場合、第１の論理ボリュームのＩ／Ｏ状況に適した動的差配置条件が対応付けられている第２の物理リソースが基になって言う第２の論理ボリュームに、第１の論理ボリューム内のデータがマイグレーションされても良い。
【０２６２】
また、管理計算機４００００が有するテーブルやプログラムは、管理計算機４００００に代えて、ストレージサブシステム又はホスト計算機で実行されても良い。
【符号の説明】
【０２６３】
１００００、１００００ｂ、１００００ｃ  ストレージサブシステム
１１０００    ディスク装置
１１１００    論理ボリューム
１１２００    プール
１１２０１    物理リソース
１２０００    コントローラ
１２１００    メモリ
【図１】
2011186794.tif 000003
【図２】
2011186794.tif 000004
【図３】
2011186794.tif 000005
【図４】
2011186794.tif 000006
【図５】
2011186794.tif 000007
【図６】
2011186794.tif 000008
【図７】
2011186794.tif 000009
【図８】
2011186794.tif 000010
【図９】
2011186794.tif 000011
【図１０】
2011186794.tif 000012
【図１１】
2011186794.tif 000013
【図１２】
2011186794.tif 000014
【図１３】
2011186794.tif 000015
【図１４】
2011186794.tif 000016
【図１５】
2011186794.tif 000017
【図１６】
2011186794.tif 000018
【図１７】
2011186794.tif 000019
【図１８】
2011186794.tif 000020
【図１９】
2011186794.tif 000021
【図２０】
2011186794.tif 000022
【図２１】
2011186794.tif 000023
【図２２】
2011186794.tif 000024
【図２３】
2011186794.tif 000025
【図２４】
2011186794.tif 000026
【図２５】
2011186794.tif 000027
【図２６】
2011186794.tif 000028
【図２７】
2011186794.tif 000029
【図２８】
2011186794.tif 000030
【図２９】
2011186794.tif 000031
【図３０】
2011186794.tif 000032