(57)【要約】【課題】Ｉ／Ｏ状況の変化によってＩ／Ｏ性能が低下してしまうことを防ぐ。【解決手段】アクセス元とストレージ装置とを有する計算機システムにキャッシュ制御装置が備えられる。その装置が、アクセス元からのＩ／Ｏコマンドに従うＩ／Ｏの状況を表す情報であるＩ／Ｏ状況情報を基に、アクセス元からのＩ／Ｏの性能が低下するか否かを判断する。その判断の結果が肯定的の場合、キャッシュ制御装置は、キャッシュ領域に関するキャッシュ使用状況を表す情報であるキャッシュ使用状況情報から特定されるキャッシュ使用状況をＩ／Ｏ性能が向上するようなキャッシュ使用状況に変更する。【選択図】図１１
2010286923.tif 000002
【特許請求の範囲】
【請求項１】
アクセス元とストレージ装置とを有する計算機システムに備えられるキャッシュ制御装置であって、
前記アクセス元は、Ｉ／Ｏ（Input/Output）コマンドを発行し、
前記ストレージ装置は、複数の記憶デバイスと、キャッシュメモリを有するコントローラとを有し、
前記キャッシュメモリは、割り当てられたキャッシュ領域を含み、
前記コントローラが、前記アクセス元からのＩ／Ｏコマンドに従ってデータの入出力を行い、その際に、前記キャッシュ領域を利用し、
前記キャッシュ制御装置は、
記憶資源と、
前記記憶資源に接続されたプロセッサと
を有し、
前記記憶資源が、
前記キャッシュ領域に関するキャッシュ使用状況を表す情報であるキャッシュ使用状況情報と、
前記アクセス元からのＩ／Ｏコマンドに従うＩ／Ｏの状況を表す情報であるＩ／Ｏ状況情報と
を記憶し、
前記プロセッサが、
（Ｘ）前記Ｉ／Ｏ状況情報を基に、前記アクセス元からのＩ／Ｏの性能が低下するか否かを判断し；
（Ｙ）前記（Ｘ）の判断の結果が肯定的の場合に、前記キャッシュ使用状況情報から特定されるキャッシュ使用状況をＩ／Ｏ性能が向上するようなキャッシュ使用状況に変更するキャッシュ制御を行う、
キャッシュ制御装置。
【請求項２】
前記アクセス元は、論理ボリュームを指定したＩ／Ｏコマンドを発行するアプリケーションであり、
複数のアプリケーションが一以上のホスト装置で実行され、
一以上のホスト装置と前記ストレージ装置との間に、キャッシュメモリを有する中継装置があり、
前記複数の記憶デバイスは、複数の論理ボリュームであり、
前記記憶資源は、アプリケーション管理情報を記憶し、
前記Ｉ／Ｏ状況情報は、アプリケーション／ボリュームセット毎に、実際のＩ／Ｏ性能とＩ／Ｏ増加率とを表し、
前記キャッシュ使用状況情報は、キャッシュ領域毎に、Ｉ／Ｏ特性と、複数のキャッシュモードから選択されたキャッシュモードとを表し、
前記アプリケーション管理情報は、アプリケーション／ボリュームセット毎の要求Ｉ／Ｏ性能を表し、
前記アプリケーション／ボリュームセットは、アプリケーションとそのアプリケーションから入出力される論理ボリュームとのセットであり、
前記要求Ｉ／Ｏ性能は、アプリケーションから要求されるＩ／Ｏ性能であり、アプリケーションからのＩ／Ｏの性能の履歴に基づく値であり、
前記プロセッサは、前記一以上のホスト装置及び／又は前記ストレージ装置から情報を取得し、その情報を基に、前記Ｉ／Ｏ状況情報、前記キャッシュ使用状況情報及び前記アプリケーション管理情報を更新し、
各キャッシュモードは、キャッシュ領域に常駐化させておくデータの種類及び／又は容量によって定義されたモードであり、
前記プロセッサは、第一のアプリケーションと第一の論理ボリュームとのアプリケーション／ボリュームセットである第一のセットについて、以下の処理（Ａ）及び（Ｂ）：
（Ａ）前記（Ｘ）において、前記第一のセットに対応する要求Ｉ／Ｏ性能、実際のＩ／Ｏ性能及びＩ／Ｏ増加率を基に、前記第一のセットについて、将来の或る時点でＩ／Ｏ性能がその要求Ｉ／Ｏ性能より低下するか否かを判断し；
（Ｂ）前記（Ｙ）において、前記（Ｘ）の判断の結果が肯定的な場合に、以下の処理（ｂ１）〜（ｂ６）：
（ｂ１）前記第一の論理ボリュームに割り当てられたキャッシュ領域である対象キャッシュ領域についてのキャッシュモードが、前記対象キャッシュ領域についてのＩ／Ｏ特性に適しているか否かを判断する；
（ｂ２）前記（ｂ１）の判断の結果が否定的な場合、前記キャッシュ制御として、前記対象キャッシュ領域についてのＩ／Ｏ特性に応じて、前記対象キャッシュ領域についてのキャッシュモードを別のキャッシュモードに変更するか、或いは、前記対象キャッシュ領域に記憶されているデータのうち頻繁にリードされるデータを前記対象キャッシュ領域に常駐化させる；
（ｂ３）前記（ｂ１）の判断の結果が肯定的な場合、第一のパスに関わる第一の余剰キャッシュ領域があるか否かを判断する；
（ｂ４）前記（ｂ３）の判断の結果が肯定的な場合、前記キャッシュ制御として、前記第一の余剰キャッシュ領域を追加的に前記第一の論理ボリュームに割り当てる；
（ｂ５）前記（ｂ３）の判断の結果が否定的な場合、別のアプリケーション／ボリュームセットである第二のセットについての実際のＩ／Ｏ性能、Ｉ／Ｏ増加率及び要求Ｉ／Ｏ性能を基に、前記第二のセットに属する第二の論理ボリュームに割り当てられているキャッシュ領域の少なくとも一部を解除可能か否か判断する；
（ｂ６）前記（ｂ５）の判断の結果が肯定的な場合、前記キャッシュ制御として、前記第二の論理ボリュームに割り当てられているキャッシュ領域の少なくとも一部である第二の余剰キャッシュ領域を解除し、且つ、解除した前記第二の余剰キャッシュ領域の少なくとも一部を、前記第一の論理ボリュームに追加的に割り当てる、
を行い、
前記第一のパスは、前記第一のアプリケーションと前記第一の論理ボリュームとの間のパスであり、
前記第一の余剰キャッシュ領域は、前記第一のパスが経由する中継装置内のキャッシュメモリにおける記憶領域であって、いずれの論理ボリュームにも割り当てられていないキャッシュ領域であり、
前記第二の余剰キャッシュ領域の容量は、前記第二のセットについて実際のＩ／Ｏ性能、Ｉ／Ｏ増加率及び要求Ｉ／Ｏ性能を基に決定された容量である、
請求項１記載のキャッシュ制御装置。
【請求項３】
前記計算機システムが、別のストレージ装置を有し、
前記ストレージ装置が有する論理ボリュームを前記別のストレージ装置にマイグレーションすることが可能であり、
前記プロセッサが、以下の（Ｐ）及び（Ｑ）の条件に適合する場合に、前記第一の論理ボリュームを前記ストレージ装置から前記別のストレージ装置にマイグレーションさせる：
（Ｐ）前記（Ｂ）の処理が行われても、前記第一のセットについてのＩ／Ｏ性能が将来の或る時点でその要求Ｉ／Ｏ性能より低下すると判断される；
（Ｑ）前記第一の論理ボリュームが前記ストレージ装置から前記別のストレージ装置にマイグレーションされても前記別のストレージ装置にとって過負荷とならないと推測される、
請求項２記載のキャッシュ制御装置。
【請求項４】
前記（Ａ）及び（Ｂ）の処理が、各アプリケーション／ボリュームセットについて行われ、その際、Ｉ／Ｏ増加率の最も高いアプリケーション／ボリュームセットから先に行われる、
請求項２又は３記載のキャッシュ制御装置。
【請求項５】
前記プロセッサは、前記キャッシュ制御として、未割当てのキャッシュ領域である第一の余剰キャッシュ領域を追加的に割り当てる、
請求項１記載のキャッシュ制御装置。
【請求項６】
前記アクセス元と前記ストレージ装置との間に、キャッシュメモリを有する中継装置があり、
前記第一の余剰キャッシュ領域は、前記中継装置内のキャッシュメモリが有するキャッシュ領域である、
請求項５記載のキャッシュ制御装置。
【請求項７】
前記プロセッサは、下記（ｆ１）又は（ｆ２）の場合に、前記第一の余剰キャッシュ領域を追加的に割り当て：
（ｆ１）常駐トラックリード割合が或る値より高い；
（ｆ２）常駐トラックリード割合が或る値以下であるが、前記キャッシュ領域についてライトよりもリードが多く、常駐設定されていないデータがない、
前記常駐トラックリード割合とは、前記キャッシュ領域についての入出力のうち常駐化されているデータがリードされる割合である、
請求項２乃至６のうちのいずれかに記載のキャッシュ制御装置。
【請求項８】
前記（ｆ１）は、以下の（ｆ１１）又は（ｆ１２）であり：
（ｆ１１）リードヒット率が或る値より高く、且つ、常駐トラックリード割合が或る値より高い；
（ｆ１２）リードヒット率が或る値以下であるがライト割合が或る値以下であり、且つ、常駐トラックリード割合が或る値より高い、
前記リードヒット率とは、前記キャッシュ領域についてのリードのうちリード対象のデータが見つかった割合であり、
前記ライト割合とは、前記キャッシュ領域についての入出力のうちライトが行われた割合である、
請求項７記載のキャッシュ制御装置。
【請求項９】
前記キャッシュ領域に対する入出力が、設定されたキャッシュモードに従って行われ、
前記プロセッサは、前記追加的に割り当てられた第一の余剰キャッシュ領域について、ライトデータをキャッシュ領域に常駐させないがリードデータをキャッシュ領域に常駐させるためのキャッシュモードを設定する、
請求項７又は８記載のキャッシュ制御装置。
【請求項１０】
前記キャッシュ領域に対する入出力が、設定されたキャッシュモードに従って行われ、
前記プロセッサは、以下の（ｇ１）及び（ｇ２）の場合に、前記第一の余剰キャッシュ領域を追加的に割り当て：
（ｇ１）リードヒット率が或る値以下でありライト割合が或る値より高い；
（ｇ２）前記キャッシュ領域について設定されているキャッシュモードが、ライトデータ及びリードデータの両方をキャッシュ領域に常駐させるためのキャッシュモードである、
前記リードヒット率とは、前記キャッシュ領域についてのリードのうちリード対象のデータが見つかった割合であり、
前記ライト割合とは、前記キャッシュ領域についての入出力のうちライトが行われた割合である、
請求項２乃至９のうちのいずれかに記載のキャッシュ制御装置。
【請求項１１】
前記プロセッサは、前記追加的に割り当てられた第一の余剰キャッシュ領域について、ライトデータ及びリードデータの両方をキャッシュ領域に常駐させるためのキャッシュモードを設定する、
請求項１０記載のキャッシュ制御装置。
【請求項１２】
前記プロセッサは、前記キャッシュ制御として、他のキャッシュ領域の少なくとも一部を解除し、解除された部分である第二の余剰キャッシュ領域の少なくとも一部を、新たなキャッシュ領域として追加的に割り当てる、
請求項１記載のキャッシュ制御装置。
【請求項１３】
前記キャッシュ領域の利用の際に、ヒットしたか否かが判定され、
ヒットしたとは、ライト対象のデータを格納するための領域又はリード対象のデータが格納されている領域が前記キャッシュ領域から見つかることであり、
前記プロセッサは、前記他のキャッシュ領域のうち、ヒット率が或る値以下であるリードデータが記憶されている第一の部分よりも、ヒット率が或る値以下であるライトデータが記憶されている第二の部分を優先的に解除する、
請求項１２記載のキャッシュ制御装置。
【請求項１４】
前記プロセッサは、前記他のキャッシュ領域のうち、前記第二の部分よりも、ヒット率が或る値以下である常駐データが記憶されている第三の部分を優先的に解除する、
請求項１３記載のキャッシュ制御装置。
【請求項１５】
前記プロセッサは、アクセス元についての要求Ｉ／Ｏ性能及び実際のＩ／Ｏ性能を基に、解除する領域の記憶容量を決定する、
請求項１２乃至１４のうちのいずれかに記載のキャッシュ制御装置。
【請求項１６】
前記プロセッサは、前記キャッシュ制御として、前記キャッシュ領域に存在するリードデータのより多くを常駐化する、
請求項１記載のキャッシュ制御装置。
【請求項１７】
前記キャッシュ領域に対する入出力が、設定されたキャッシュモードに従って行われ、
前記プロセッサが、前記キャッシュ制御として、前記キャッシュ領域についてのキャッシュモードを、前記キャッシュ領域に常駐化されるデータがより多くなる別のキャッシュモードに変更する、
請求項１記載のキャッシュ制御装置。
【請求項１８】
前記複数の記憶デバイスは、複数の論理ボリュームであり、
前記計算機システムが、別のストレージ装置を有し、
前記プロセッサは、前記キャッシュ制御として、前記ストレージ装置から前記別のストレージ装置への論理ボリュームのマイグレーションを行う、
請求項１記載のキャッシュ制御装置。
【請求項１９】
前記プロセッサは、前記キャッシュ制御として、以下の（ｈ１）乃至（ｈ４）のいずれを行ってもＩ／Ｏの性能が低下する場合に、前記マイグレーションを行う：
（ｈ１）未割当てのキャッシュ領域である余剰キャッシュ領域を追加的に割り当てる；
（ｈ２）他のキャッシュ領域の少なくとも一部を解除し、解除された部分である余剰キャッシュ領域のうちの少なくとも一部を、追加的に割り当てる；
（ｈ３）前記キャッシュ領域に存在するリードデータのより多くを常駐化する；
（ｈ４）前記キャッシュ領域についてのキャッシュモードを、前記キャッシュ領域に常駐化されるデータがより多くなる別のキャッシュモードに変更する、
請求項１８記載のキャッシュ制御装置。
【請求項２０】
アクセス元とストレージ装置とを有する計算機システムで行うキャッシュ制御方法であって、
前記アクセス元は、Ｉ／Ｏ（Input/Output）コマンドを発行し、
前記ストレージ装置は、複数の記憶デバイスと、キャッシュメモリを有するコントローラとを有し、
前記キャッシュメモリは、割り当てられたキャッシュ領域を含み、
前記コントローラが、前記アクセス元からのＩ／Ｏコマンドに従ってデータの入出力を行い、その際に、前記キャッシュ領域を利用し、
前記キャッシュ制御方法は、
（Ｘ）前記アクセス元からのＩ／Ｏコマンドに従うＩ／Ｏの状況を表す情報であるＩ／Ｏ状況情報を基に、前記アクセス元からのＩ／Ｏの性能が低下するか否かを判断し、
（Ｙ）前記（Ｘ）の判断の結果が肯定的の場合に、前記キャッシュ領域に関するキャッシュ使用状況を表す情報であるキャッシュ使用状況情報から特定されるキャッシュ使用状況をＩ／Ｏ性能が向上するようなキャッシュ使用状況に変更するキャッシュ制御を行う、
キャッシュ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュの制御に関する。
【背景技術】
【０００２】
キャッシュ領域にデータを保持することは一般に行われている。例えば、ストレージ装置は、ディスク装置（例えばハードディスク）の他にキャッシュメモリを有する（例えば特許文献１）。ストレージ装置は、アクセス元からのライトコマンドに従うライト対象のデータをキャッシュメモリに保持したり、アクセス元からのリードコマンドに従うリード対象のデータをキャッシュメモリから読み出してアクセス元に提供したりする。これにより、Ｉ／Ｏ（Input/Output）性能（例えばデータ転送速度）の向上が期待できる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２００７−５３７５４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
アクセス元からのＩ／Ｏ状況が一定であるとは限らない。このため、Ｉ／Ｏ性能が低下してしまう可能性がある。
【０００５】
本発明の目的は、Ｉ／Ｏ状況の変化によってＩ／Ｏ性能が低下してしまうことを防ぐことにある。
【課題を解決するための手段】
【０００６】
アクセス元とストレージ装置とを有する計算機システムに、キャッシュ制御装置が備えられる。
【０００７】
アクセス元は、Ｉ／Ｏコマンドを発行する。アクセス元としては、例えば、ホスト装置或いはホスト装置で実行されるコンピュータプログラム（例えば、アプリケーションプログラム、或いはオペレーションシステム）を採用することができる。
【０００８】
ストレージ装置は、複数の記憶デバイスと、キャッシュメモリを有するコントローラとを有する。キャッシュメモリは、割り当てられたキャッシュ領域を含む。コントローラは、アクセス元からのＩ／Ｏコマンドに従ってデータの入出力を行う。その際、コントローラは、キャッシュ領域を利用する。
【０００９】
キャッシュ制御装置は、記憶資源と、記憶資源に接続されたプロセッサとを有する。前記記憶資源が、キャッシュ領域に関するキャッシュ使用状況を表す情報であるキャッシュ使用状況情報と、アクセス元からのＩ／Ｏコマンドに従うＩ／Ｏの状況を表す情報であるＩ／Ｏ状況情報とを記憶する。これらの情報は、プロセッサによって収集された情報であっても良いし、外部の装置から入力された情報であっても良い。
【００１０】
プロセッサが、以下の処理（Ｘ）及び（Ｙ）：
（Ｘ）Ｉ／Ｏ状況情報を基に、アクセス元からのＩ／Ｏの性能が低下するか否かを判断する；
（Ｙ）上記（Ｘ）の判断の結果が肯定的の場合に、キャッシュ使用状況情報から特定されるキャッシュ使用状況をＩ／Ｏ性能が向上するようなキャッシュ使用状況に変更するキャッシュ制御を行う、
を行う。
【００１１】
上記（Ｘ）の判断の結果が肯定的になる原因としては、幾つか考えられるが、特に、下記の２つの原因：
（原因１）キャッシュ領域の使用状況が、Ｉ／Ｏ特性にあっていない；
（原因２）キャッシュ領域の使用状況が、Ｉ／Ｏ特性にあっているが、割り当てられたキャッシュ領域の総容量が不足している、
が考えられる。
【００１２】
（原因１）の解決方法としては、ストレージ装置内のキャッシュ領域の使用状況を正しい状況にする方法が考えられる。具体的には、例えば、キャッシュ制御として、以下の（ａ）又は（ｂ）の処理：
（ａ）キャッシュ領域に存在するリードデータのより多くを常駐化する；
（ｂ）キャッシュ領域についてのキャッシュモードを、キャッシュ領域に常駐化されるデータがより多くなる別のキャッシュモードに変更する、
を行う方法が考えられる。
【００１３】
一方、（原因２）の解決方法としては、新たなキャッシュ領域を追加的に割り当てる方法が考えられる。具体的には、例えば、キャッシュ制御として、以下の（ｃ）又は（ｄ）の処理：
（ｃ）未割当てのキャッシュ領域である第一の余剰キャッシュ領域を追加的に割り当てる；
（ｄ）他のキャッシュ領域の少なくとも一部を解除し、解除された部分である第二の余剰キャッシュ領域を追加的に割り当てる、
を行う方法が考えられる。
【００１４】
上記第一及び／又は第二の余剰キャッシュ領域は、アクセス元からストレージ装置への経路上の装置であってストレージ装置より上位の装置、例えば、アクセス元とストレージ装置との通信を中継する中継装置内のキャッシュメモリにあることが好ましい。具体的には、例えば、図１１Ａにグレーで示すように、ストレージ装置１１０５内のキャッシュメモリ１１０６が有する全ての領域が、キャッシュ領域として割り当てられている場合、図１１Ｂにグレーで示すように、中継装置１１０１内のキャッシュメモリ１１０２が有する第一（又は第二）の余剰キャッシュ領域が追加的に割り当てられることが好ましい。これにより、中継装置１１０１内のキャッシュメモリ１１０２が有するキャッシュ領域（追加的に割り当てられた余剰キャッシュ領域）に、アクセス元１１０３が所望するリード対象のデータが存在するケースが生じ、そのケースでは、そのキャッシュ領域からリード対象のデータがアクセス元１１０３に提供される。このため、Ｉ／Ｏ性能が向上する。
【００１５】
また、キャッシュ制御として、ボリュームマイグレーションが考えられる。具体的には、例えば、図１２Ａにグレーで示すように、ストレージ装置１１０５内のキャッシュメモリ１１０６が有する全ての領域が、キャッシュ領域としてアクセス元１１０３に割り当てられている場合において、図１２Ｂに示すように、アクセス元１１０３が使用する論理ボリューム＃１が、ストレージ装置１１０５から別のストレージ装置２１０５にマイグレーションされたとする（例えば、キャッシュメモリ１１０６に、論理ボリューム＃１に格納されていないデータ（ダーティデータ）があれば、そのデータは、論理ボリューム＃１に格納される）。マイグレーション後は、図１２Ｂに示すように、キャッシュメモリ１１０６に記憶されているデータのうち、論理ボリューム＃１に入出力されるデータは不要となる。このため、論理ボリューム＃１がマイグレーションされた後、キャッシュメモリ１１０６は、論理ボリューム＃２に対して入出力されるデータをより多く記憶できる。それ故、論理ボリューム＃２に対するデータのＩ／Ｏの性能が向上することが期待できる。
【００１６】
プロセッサは、コンピュータプログラムを実行することにより前述した処理を行うことができるが、そのコンピュータプログラムは、遠隔のサーバからインストールされても良いし、記憶媒体（例えば、ＣＤ−ＲＯＭ、ＤＶＤ（Digital Versatile Disk）などの可搬型の記憶媒体）からインストールされても良い。また、前述した処理の少なくとも一部がハードウェアで行われても良い。
【図面の簡単な説明】
【００１７】
【図１】図１は、本発明の一実施形態に係る計算機システムを示す。
【図２】図２Ａは、ＡＰ情報管理テーブル２０１を示す。図２Ｂは、要求Ｉ／Ｏ性能が時刻によって異なることを示す。
【図３】図３Ａは、Ｉ／Ｏ監視テーブル３０１を示す。図３Ｂは、実測Ｉ／Ｏ性能が時刻によって異なることを示す。
【図４】図４は、キャッシュ管理テーブル４０１を示す。
【図５】図５Ａは、マイグレーション管理テーブル５０１を示す。図５Ｂは、データセット情報５１１を示す。
【図６】図６は、キャッシュ管理処理の流れを示す。
【図７】図７は、Ｓ６０４及びＳ６０８の詳細を示す。
【図８】図８は、領域解除処理の流れを示す。
【図９】図９は、マイグレーション管理処理の流れを示す。
【図１０】図１０は、Ｓ９０５のボリュームマイグレーション処理の流れを示す。
【図１１】図１１Ａは、中継装置内のキャッシュメモリが有する領域がキャッシュ領域として未割当ての状態を示す。図１１Ｂは、中継装置内のキャッシュメモリが有する領域がキャッシュ領域として割り当てられた状態を示す。
【図１２】図１２Ａは、ボリュームマイグレーション前の状態を示す。図１２Ｂは、ボリュームマイグレーション後の状態を示す。
【発明を実施するための形態】
【００１８】
以下、図面を参照して、本発明の一実施形態を説明する。なお、以後の説明では、「ｘｘｘテーブル」と表現される情報があるが、情報は、テーブル以外のデータ構造で表現されていてもよい。また、以下、コンピュータプログラムが行う処理は、実際には、そのプログラムを実行するプロセッサによって行われる。
【００１９】
図１は、本発明の一実施形態に係る計算機システムを示す。
【００２０】
ＬＡＮ（Local Area Network）１０２に、ホスト装置（以下、ホスト）１０１、ファイバチャネルスイッチ装置（以下、ＦＣ−ＳＷ）１０６、ストレージ装置（以下、ストレージ）１０９、及び管理サーバ１０５が接続されている。但し、後述の外部ストレージはＬＡＮ１０２に接続されていなくて良い。
【００２１】
ＳＡＮ（Storage Area Network）がＦＣ−ＳＷ１０６を有する。ＦＣ−ＳＷ１０６に、ホスト１０１及びストレージ１０９が接続されている。但し、後述の外部ストレージはＬＡＮ１０２に接続されていなくて良い。ＳＡＮ及びＬＡＮのうちの少なくとも一方が他種の通信ネットワークでも良い。また、ＳＡＮ及びＬＡＮに代えて一つの通信ネットワークが採用されても良い。
【００２２】
ホスト１０１は、通信インタフェース装置（例えば、ＮＩＣ（Network Interface Card）１５５、ＨＢＡ（Host Bus Adapter）１５３）、ＣＰＵ（Central
Processing Unit）及び記憶資源を有する。記憶資源が、例えば、アプリケーションプログラム（以下、ＡＰ）１５５とパス管理プログラム１５１とを記憶し、ＣＰＵが、それらのプログラム１５５及び１５１を実行する。
【００２３】
ＦＣ−ＳＷ１０６は、ホスト１０１とストレージ１０９間の通信を中継する。ＦＣ−ＳＷ１０６は、キャッシュメモリと、キャッシュメモリの使用を制御するキャッシュ機能とを有していても良い。
【００２４】
ストレージ１０９は、コントローラと、磁気ディスク群とを有する。
【００２５】
磁気ディスク群は、ＲＡＩＤ（Redundant Array of Independent (or Inexpensive) Disks）グループを有する。ＲＡＩＤグループは、二以上の磁気ディスク１７６を有する。ＲＡＩＤグループを基に、１又は複数の論理ボリューム１７７が形成される。論理ボリューム１７７には、識別子として、例えば、ＬＵＮ（Logical
Unit Number）が割り当てられている。磁気ディスク１７６は、典型的にはハードディスクドライブであるが、それに代えて、フラッシュメモリなど他種の不揮発性の記憶デバイスが採用されても良い。
【００２６】
コントローラは、ホスト１０１からのＩ／Ｏを制御する。コントローラは、例えば、ＣＰＵ、キャッシュメモリ（以下、ＣＭ）１７３を含む。具体的には、例えば、コントローラは、チャネルアダプタ（以下、ＣＨＡ）１７４、ディスクアダプタ（以下、ＤＫＡ）１７５、ＣＭ１７３、ＮＩＣ１７８及びスイッチデバイス（以下、ＳＷ）１７１を有する。
【００２７】
ＣＨＡ１７４は、フロントエンドのインタフェース装置であり、ホスト１０１との通信を制御する。ＣＨＡ１７４は、ＣＰＵを有する。ＣＨＡ１７４は、ホスト１０１からＩ／Ｏコマンドを受け付け、そのＩ／Ｏコマンドを処理する。
【００２８】
ＤＫＡ１７５は、バックエンドのインタフェース装置であり、磁気ディスク１７６との通信を制御する。ＤＫＡ１７５も、ＣＰＵを有する。ＤＫＡ１７５は、ホスト１０１からのＩ／Ｏコマンドで指定されているＬＵＮに対応した論理ボリューム１７７の基になっている磁気ディスク１７６にアクセスする。
【００２９】
ＣＭ１７３は、ホスト１０１からのＩ／Ｏコマンドに従うデータ（ライト対象のデータ、又は、リード対象のデータ）を記憶する。ＣＭ１７３を基に、複数のキャッシュ領域が定義されている。
【００３０】
ＮＩＣ１７８は、ＬＡＮ１０２を介した通信を制御する。ＮＩＣ１７８は、例えばいずれかのＣＨＡ１７４に接続されている。
【００３１】
ＳＷ１１は、ＣＨＡ１７４、ＤＫＡ１７５及びＣＭ１７３に接続されており、ＣＨＡ１７４、ＤＫＡ１７５及びＣＭ１７３間の通信を制御する。
【００３２】
コントローラは、キャッシュ領域毎に、各時刻でのキャッシュ使用状況を管理している。キャッシュ使用状況としては、例えば、キャッシュヒット率（リードヒット率、ライトヒット率）、ライト割合、常駐トラックリード割合、容量及びキャッシュモードがある。これらについては後述する。
【００３３】
さて、図１によれば、同種の要素の名称は、名称本体と通し番号との組合せで表現されている。例えば、ホスト１、ホスト２、ホスト３、ＡＰ１１、ＡＰ２１、…のような表現がある。以下、同種の要素を特に区別しないで説明する場合には、名称本体と参照番号を使用し、同種の要素を区別して説明する場合には、参照番号を使用することに代えて、名称本体と通し番号との組合せを使用することにする。なお、名称本体に続く番号が参照番号であるか通し番号であるかは、番号の桁数で判別できる。３桁以上の整数は参照番号であり、２桁以下の整数は通し番号である。
【００３４】
ストレージ２には、外部ストレージ３及び４が接続されている。以下、外部ストレージ３及び４が有する論理ボリュームを「外部ボリューム」と言う。
【００３５】
ストレージ２は、外部ストレージ３及び４が有する論理ボリューム３１１〜３１３、３２１〜３２３、４１１〜４１２、４２１〜４２３を仮想化技術により一元管理する。ストレージ２は、通常の論理ボリューム（磁気ディスクが基になっている論理ボリューム）２１及び２２の他に、仮想的な論理ボリューム（以下、仮想ボリューム）と、仮想ボリュームと外部ボリュームとの対応関係とを管理している。ストレージ２は、仮想ボリュームを指定したＩ／Ｏコマンドを受けた場合、その仮想ボリュームに対応する外部ボリュームを特定し、ＣＨＡ２３又はＣＨＡ２４を通じて、その外部ボリュームに対するＩ／Ｏを行う。例えば、外部ストレージ３内の外部ボリューム３１１に対するＩ／Ｏが行われる場合、Ｉ／Ｏ対象のデータが、外部ストレージ３内のＣＭ３１に保持される。つまり、仮想ボリュームに対してＩ／Ｏが頻繁に行われる場合、外部ストレージ３及び／又は４内のＣＭ３１及び／又は４１に対してＩ／Ｏが頻繁に行われることになる。
【００３６】
この例によれば、ストレージ２が、ホスト１０１と外部ストレージ３又は４との通信を中継することになる。このため、本実施形態では、ＦＣ−ＳＷ１又は２に限らず、ストレージ２も中継装置になり得る。
【００３７】
以下、ＡＰ１１から外部ボリューム３１１にアクセスされることを例に採り、各要素の機能を説明する。ボリューム３１１は、パス（Ｐ１−Ｐ２−Ｐ３）に関連付けられているとする。また、外部ボリューム３１１に対応した仮想ボリュームを、以下の説明において「仮想ボリューム３１１」と言う。また、ＣＭ３１に基づく複数のキャッシュ領域のうちの一つが、外部ボリューム３１１に割り当てられているとする。以下、その一つのキャッシュ領域を、この説明において「キャッシュ領域（Ｔ１）」と言う。
【００３８】
ＡＰ１１は、外部ボリューム３１１に対応した仮想ボリューム３１１を指定したＩ／Ｏコマンドを発行する。
【００３９】
パス管理プログラム１は、ホスト１で認識されている論理ボリュームへのパスを管理する。例えば、ＡＰ１１から、仮想ボリューム３１１を指定したＩ／Ｏコマンドが発行された場合、パス管理プログラム１は、そのＩ／Ｏコマンドを、パス（Ｐ１−Ｐ２−Ｐ３）に関連しているＨＢＡ１２から出力する。
【００４０】
ＦＣ−ＳＷ２が、仮想ボリューム３１１を指定したＩ／Ｏコマンドを受け、その場合、そのＩ／Ｏコマンドを、ＣＨＡ２１に転送する。
【００４１】
ストレージ２のコントローラが、そのＩ／Ｏコマンドを外部ストレージ３に転送する。具体的には、ＣＨＡ２１が、仮想ボリューム３１１を指定したＩ／Ｏコマンドを受け、そのＩ／Ｏコマンドで指定されているボリュームが仮想ボリューム３１１であることを特定する。その場合、ＣＨＡ２１が、そのＩ／Ｏコマンドを、外部ボリューム３１１を指定したＩ／Ｏコマンドに変更し、そのＩ／Ｏコマンドを、ＳＷ２１を通じてＣＨＡ２３に送信する。ＣＨＡ２３が、そのＩ／Ｏコマンドをストレージ３に転送する。
【００４２】
外部ストレージ３のコントローラ（具体的にはＣＨＡ３１）が、外部ボリューム３１１を指定したＩ／Ｏコマンドを受けた場合、キャッシュ領域（Ｔ１）からキャッシュヒットしたか否かを判定する。「キャッシュヒットした」とは、キャッシュ領域（Ｔ１）からＩ／Ｏサブ領域が見つかったことである。Ｉ／Ｏコマンドがライトコマンドの場合、キャッシュヒットとはライトヒットのことであり、Ｉ／Ｏサブ領域は、そのライトコマンドに従うライト対象のデータが格納される領域である。一方、Ｉ／Ｏコマンドがリードコマンドの場合、キャッシュヒットとはリードヒットのことであり、Ｉ／Ｏサブ領域は、そのリードコマンドに従うリード対象のデータが格納されている領域である。
【００４３】
キャッシュヒットした場合、外部ストレージ３のコントローラは、見つかったＩ／Ｏサブ領域（キャッシュ領域（Ｔ１）内の領域）に対するＩ／Ｏを行う。具体的には、例えば、Ｉ／Ｏコマンドがライトコマンドの場合、コントローラは、Ｉ／Ｏサブ領域にライト対象のデータを書込み、その後、キャッシュ領域（Ｔ１）から外部ボリューム３１１にそのライト対象のデータを書き込む。一方、Ｉ／Ｏコマンドがリードコマンドの場合、コントローラは、Ｉ／Ｏサブ領域からリード対象のデータを読み出し、ストレージ２に転送する。そのデータは、ストレージ２からＦＣ−ＳＷ２を通ってＡＰ１１に送られる（つまり、リード対象のデータは、パス（Ｐ１−Ｐ２−Ｐ３）を通ってＡＰ１１に送られる）。
【００４４】
キャッシュヒットしなかった場合（キャッシュミスだった場合）、例えば以下の処理が行われる。例えば、Ｉ／Ｏコマンドがライトコマンドの場合、コントローラは、クリーンデータ（外部ボリューム３１１に格納済みのデータ）が記憶されている領域をＩ／Ｏサブ領域として確保し、その領域に、ライト対象のデータを書込む（その後、その領域から外部ボリューム３１１にそのライト対象のデータが書き込まれる）。一方、Ｉ／Ｏコマンドがリードコマンドの場合、コントローラは、キャッシュ領域（Ｔ１）にＩ／Ｏサブ領域を確保し、外部ボリューム３１１からリード対象のデータを読み出し、確保したＩ／Ｏサブ領域に確保する。その後、コントローラは、Ｉ／Ｏサブ領域からリード対象のデータを読み出し、そのデータをストレージ２に転送する。
【００４５】
さて、次に、管理サーバ１０５について説明する。
【００４６】
管理サーバ１０５は、キャッシュ制御装置の一例としての計算機である。管理サーバ１０５は、ＬＡＮ１０２を介して通信するためのＮＩＣ１６１と、コンピュータプログラム及び情報を記憶する記憶資源１６６と、ＮＩＣ１６１及び記憶資源１６６に接続されたＣＰＵ１６３とを有する。通信ネットワーク或いは通信プロトコル等の種類に応じて、ＮＩＣ１６１に代えて他の通信インタフェース装置が採用されても良い。
【００４７】
記憶資源１６６が記憶するコンピュータプログラムとして、例えば、アプリケーション管理プログラム（図では「ＡＰ管理ＰＧ」と略記）１７１、Ｉ／Ｏ監視プログラム（図では「Ｉ／Ｏ監視ＰＧ」と略記）１７２、キャッシュ管理プログラム（図では「ＣＭ管理ＰＧ」と略記）１７３及びマイグレーション管理プログラム（図では「ＭＧ管理ＰＧ」と略記）１７４がある。
【００４８】
アプリケーション管理プログラム１７１は、各ＡＰについての要求Ｉ／Ｏ性能を管理する。具体的には、例えば、アプリケーション管理プログラム１７１は、各ＡＰからの情報を基に、要求Ｉ／Ｏ性能を管理する。「要求Ｉ／Ｏ性能」とは、ＡＰ１１が仮想ボリューム（外部ボリューム）３１１に対して行うＩ／Ｏの性能としてＡＰ１１が要求する性能である。ちなみに、Ｉ／Ｏ性能は、例えばデータ転送速度である。Ｉ／Ｏ性能は、例えば、Ｉ／Ｏコマンドに従うデータのサイズと、そのＩ／Ｏコマンドに対応したレスポンスタイムとに基づいて決定される。具体的には、例えば、データサイズが「１０」であり、レスポンスタイム（Ｉ／Ｏコマンドが発行されてからそのＩ／Ｏコマンドについての処理が完了するまでの時間）が「５」の場合、Ｉ／Ｏ性能は「２」（１０÷２）となる。また、例えば、データサイズが「１０」であり、レスポンスタイムが１０の場合、Ｉ／Ｏ性能は「１」となる。
【００４９】
Ｉ／Ｏ監視プログラム１７２は、各ＡＰが論理ボリュームに対して行うＩ／Ｏの実際の性能（実測Ｉ／Ｏ性能）を監視する。
【００５０】
キャッシュ管理プログラム１７３は、要求Ｉ／Ｏ性能と実測Ｉ／Ｏ性能とに基づいて、実測Ｉ／Ｏ性能がやがて要求Ｉ／Ｏ性能より低下するか否かを判断する。キャッシュ管理プログラム１７３は、その判断の結果が肯定的の場合に、どのようなキャッシュ制御が必要になるかを判定し、判定されたキャッシュ制御を実行する。
【００５１】
マイグレーション管理プログラム１７４は、ボリュームマイグレーションを行う。ボリュームマイグレーションは、後述するように、実測Ｉ／Ｏ性能を向上するためのキャッシュ制御となり得る。
【００５２】
以下、各プログラム１７１〜１７４について詳細に説明する。
【００５３】
まず、ＡＰ管理プログラム１７１について説明する。
【００５４】
ＡＰ管理プログラム１７１は、定期的に、以下の（Ａ−１）及び（Ａ−２）の処理：
（Ａ−１）各ホストから、ＬＡＮ１０２を通じて、各ＡＰのＩ／Ｏ性能を表す情報を取得する；
（Ａ−２）取得した情報に基づいて算出される要求Ｉ／Ｏ性能を表す情報を、図２Ａに示すＡＰ情報管理テーブル２０１に格納する、
を行う。
【００５５】
テーブル２０１は、ＡＰ管理プログラム１７１に管理される情報であり、記憶資源１６６に記憶される。テーブル２０１は、図２Ａに示すように、ＡＰ／ボリュームセット（ＡＰとそのＡＰからのＩ／Ｏ先となる論理ボリュームとのセット）毎に、以下の情報要素（ａ１）〜（ａ４）：
（ａ１）ＡＰ／ボリュームセットに属するＡＰの名前；
（ａ２）そのＡＰ／ボリュームセットについて要求Ｉ／Ｏ性能が測定された時刻；
（ａ３）そのＡＰ／ボリュームセットに属する論理ボリュームに割り当てられているＬＵＮ；及び
（ａ４）そのＡＰ／ボリュームセットについての要求Ｉ／Ｏ性能、
を有する。つまり、テーブル２０１は、各ＡＰ／ボリュームセットについての要求Ｉ／Ｏ性能の履歴（統計データ）である。各ＡＰ／ボリュームセットについて、要求Ｉ／Ｏ性能は、例えば図２Ｂに示すように、時刻によって異なる。各時刻での要求Ｉ／Ｏ性能が算出されテーブル２０１に格納される。このため、テーブル２０１を参照すれば、各ＡＰ／ボリュームセットについての要求Ｉ／Ｏ性能の変化がわかる。
【００５６】
要求Ｉ／Ｏ性能は、前述のように、各ＡＰからの情報を基に管理サーバ１０５が管理している。各ＡＰからは、例えば定期的に情報が取得される。なお、要求Ｉ／Ｏ性能の算出には、Ｉ／Ｏ監視プログラム１７２が取得したＩ／Ｏ性能が利用されても良い。
【００５７】
以上が、ＡＰ管理プログラム１７１についての説明である。次に、Ｉ／Ｏ監視プログラム１７２について説明する。
【００５８】
Ｉ／Ｏ監視プログラム１７２は、定期的に、以下の（Ｂ−１）及び（Ｂ−２）の処理：
（Ｂ−１）ＡＰ／ボリュームセット毎の実測Ｉ／Ｏ性能を表す情報を取得する；
（Ｂ−２）取得した情報を、図３Ａに示すＩ／Ｏ監視テーブル３０１に格納する、
を行う。Ｉ／Ｏ監視プログラム１７２が、ＡＰ／ボリュームセット毎に、Ｉ／Ｏ性能を計測し管理している。
【００５９】
テーブル３０１は、Ｉ／Ｏ監視プログラム１７２に管理される情報であり、記憶資源１６６に記憶される。テーブル３０１は、図３Ａに示すように、ＡＰ／ボリュームセット毎に、以下の情報要素（ｂ１）〜（ｂ５）：
（ｂ１）ＡＰ／ボリュームセットに論理ボリュームに割り当てられているＬＵＮ；
（ｂ２）そのＡＰ／ボリュームセットに属するＡＰの名前；
（ｂ３） そのＡＰ／ボリュームセットについての実測Ｉ／Ｏ性能が計測された時刻；
（ｂ４）そのＡＰ／ボリュームセットについての実測Ｉ／Ｏ性能；
（ｂ５）そのＡＰ／ボリュームセットについてのＩ／Ｏ増加率、
を有する。つまり、テーブル３０１は、各ＡＰ／ボリュームセットについての実測Ｉ／Ｏ性能及びＩ／Ｏ増加率の履歴（統計データ）である。実測Ｉ／Ｏ性能は、例えば定期的に取得される。各ＡＰ／ボリュームセットについて、実測Ｉ／Ｏ性能は、例えば図３Ｂに示すように、時刻によって異なる（つまり、Ｉ／Ｏ状況は変化する）。Ｉ／Ｏ増加率は、各ホスト及び／又は各ストレージによって算出されても良いし、Ｉ／Ｏ監視プログラム１７２によって算出されても良い。具体的には、例えば、Ｉ／Ｏ増加率は、Ｉ／Ｏ監視プログラム１７２が｛（今回の実測Ｉ／Ｏ性能）÷（直前の時刻の実測Ｉ／Ｏ性能）×１００｝を計算することによって算出される。
【００６０】
以上が、Ｉ／Ｏ監視プログラム１７２についての説明である。次に、キャッシュ管理プログラム１７３について説明する。
【００６１】
キャッシュ管理プログラム１７３は、キャッシュ機能を有する各装置が有するキャッシュ領域を管理する。言い換えれば、キャッシュ管理プログラム１７３は、管理サーバ１０５を有する計算機システムに存在する全てのキャッシュ領域を管理することができる。つまり、キャッシュ管理プログラム１７３は、ＦＣ−ＳＷ１０６がキャッシュメモリ及びキャッシュ機能を有しているならば、ストレージ１０９内のキャッシュ領域だけでなく、ＦＣ−ＳＷ１０６内のキャッシュ領域も管理することができる。本実施形態では、ＦＣ−ＳＷ１０６はキャッシュ機能を有しておらず、故に、ストレージ１〜４内のキャッシュ領域が管理される。
【００６２】
キャッシュ管理プログラム１７３は、定期的に、以下の（Ｃ−１）及び（Ｃ−２）の処理：
（Ｃ−１）キャッシュ機能を有する各装置（ここでは各ストレージ）から、ＬＡＮ１０２を通じて、各キャッシュ領域のキャッシュ使用状況を表す情報を含んだ管理情報を取得する；
（Ｃ−２）取得した管理情報から特定される所定種類の情報要素を、図４に示すキャッシュ管理テーブル４０１に格納する、
を行う。
【００６３】
テーブル４０１は、キャッシュ管理プログラム１７３に管理される情報であり、記憶資源１６６に記憶される。テーブル４０１は、図４に示すように、キャッシュ領域毎に、以下の情報要素（ｃ１）〜（ｃ７）：
（ｃ１）キャッシュ領域のＩＤ；
（ｃ２）そのキャッシュ領域についてのリードヒット率；
（ｃ３）そのキャッシュ領域についてのライトヒット率；
（ｃ４）そのキャッシュ領域についてのライト割合；
（ｃ５）そのキャッシュ領域についての常駐トラックリード割合；
（ｃ６）そのキャッシュ領域の容量；及び、
（ｃ７）そのキャッシュ領域について採用されているキャッシュモード、
を有する。このように、テーブル４０１では、計算機システムに存在する各キャッシュ領域に関するキャッシュ使用状況が管理される。上記（ｃ１）〜（ｃ７）の情報要素が、各ストレージから取得される管理情報に含まれている。テーブル４０１で管理されている各キャッシュ領域は、いずれかのＡＰ／ボリュームセットに割り当てられている。どのキャッシュ領域がどの論理ボリュームに割り当てられているかは、キャッシュ管理プログラム１７３によって別途管理されている。また、計算機システムに存在するキャッシュメモリのうちキャッシュ領域として割り当てられていないアドレス範囲がどれであるか（以下、そのアドレス範囲に対応する領域を「プールキャッシュ領域」と言う）も、キャッシュ管理プログラム１７３によって別途管理されている。
【００６４】
キャッシュ領域のＩＤは、例えば、そのキャッシュ領域を有するストレージに関する情報（例えばストレージの名称）を含んでいる。これにより、キャッシュ領域のＩＤから、そのキャッシュ領域がどのストレージに存在するかがわかる。なお、キャッシュ領域のＩＤとは別に、キャッシュ領域を有する装置のＩＤが管理されても良い。
【００６５】
情報要素（ｃ２）〜（ｃ７）が、キャッシュ使用状況を表す情報に含まれている情報要素である。また、情報要素（ｃ２）〜（ｃ５）は、時間帯毎に各ストレージにおいて計測されても良い。或いは、各ストレージからの管理情報に、Ｉ／Ｏ処理履歴情報（例えば、いつどんなＩ／Ｏコマンドを受けたかやそのＩ／Ｏコマンドについてキャッシュヒットしたか否かなどを表す情報）が含まれていて、キャッシュ管理プログラム１７３は、そのＩ／Ｏ処理履歴情報を基に、情報要素（ｃ２）〜（ｃ５）を算出しても良い。
【００６６】
以下、情報要素（ｃ２）〜（ｃ５）、すなわち、リードヒット率、ライトヒット率、ライト割合及び常駐トラックリード割合を説明する。その際、説明を分かり易くするため、キャッシュＩＤ「STORAGE3 CLPR31」から同定されるキャッシュ領域、つまり、外部ストレージ３内のキャッシュ領域（以下、キャッシュ領域（Ｔ２））を例に採る。キャッシュ領域（Ｔ２）は、ボリューム３２１に割り当てられているとする。ボリューム３２１が指定されたライトコマンドを「特定ライトコマンド」と言い、ボリューム３２１が指定されたリードコマンドを「特定リードコマンド」と言う。
【００６７】
「リードヒット率」は、キャッシュ領域（Ｔ２）でリードヒットした確率である。具体的には、或る期間でのリードヒット率は、その期間に受信した特定リードコマンドの総数のうちリードヒットした特定リードコマンドの数の割合である。
【００６８】
「ライトヒット率」は、キャッシュ領域（Ｔ２）でライトヒットした確率である。具体的には、或る期間でのライトヒット率は、その期間に受信した特定ライトコマンドの総数のうちライトヒットした特定ライトコマンドの数の割合である。
【００６９】
「ライト割合」は、特定Ｉ／Ｏコマンドのうちの特定ライトコマンドの割合である。具体的には、或る期間でのライト割合は、その期間に受信した特定Ｉ／Ｏコマンドの総数のうちの特定ライトコマンドの数の割合である。
【００７０】
「常駐トラックリード割合」は、常駐化されているリードデータが読み出される割合である。具体的には、例えば、或る期間での常駐トラックリード割合は、その期間に受信した特定リードコマンドの総数のうち、常駐化されているリードデータをリード対象とした特定リードコマンドの数の割合である。なお、「リードデータ」とは、リードコマンドに応答して磁気ディスクからキャッシュ領域に読み出されたデータのことである。このため、リードヒットした場合には、キャッシュ領域に存在するリードデータのうちのいずれかがリード対象としてキャッシュ領域から読み出される。一方、ＡＰから送信されキャッシュメモリに書き込まれたデータが「ライトデータ」である。このため、ライトコマンドに従ってキャッシュ領域に書き込まれたライト対象のデータに限らず、過去にライトコマンドに従って書き込まれたデータもライトデータである。
【００７１】
次に、キャッシュモードについて説明する。
【００７２】
キャッシュモードは、キャッシュ領域毎に設定される。各ストレージ内のコントローラは、キャッシュ領域を、そのキャッシュ領域に対応付けられているキャッシュモードに従って使用する。キャッシュモードは、動的モードと静的モードの２種類に大別することができる。
【００７３】
動的モードとは、キャッシュ領域上のデータが動的にキャッシュ領域に常駐化されるモードである。動的モードとしては、例えば、ＢモードとＰモードの２種類がある。
【００７４】
Ｂモードとは、ライトデータもリードデータもキャッシュ領域に常駐化させるモードである。具体的には、ライト処理では、キャッシュ領域上のライト対象データは常駐化される。そのライト対象データの磁気ディスクへの反映は、電源が遮断されるときなどに実施される。一方、リード処理では、キャッシュ領域に読み出されたリード対象データは常駐化される。キャッシュ領域上の常駐化されているデータは、そのデータが磁気ディスクに反映済みであったとしても、更新されない。
【００７５】
Ｐモードとは、ライトデータをキャッシュ領域に常駐化させないがリードデータをキャッシュ領域に常駐化させるモードである。キャッシュ領域上の常駐化されていないデータは、更新され得る。具体的には、例えば、キャッシュ領域上のライトデータは、そのライトデータを更新するためのライトコマンドが受領され、且つ、そのライトデータが記憶されている領域が確保されないとそのライトコマンドに従うライト対象データを格納できない場合に、そのライト対象データに上書きされる。
【００７６】
静的モードとは、キャッシュ領域上にデータが常駐化されない通常のモードである。このため、動的モードに比べて、例えば、リードヒット率は低い。
【００７７】
以上が、キャッシュ管理プログラム１７３についての説明である。次に、マイグレーション管理プログラム１７４について説明する。
【００７８】
マイグレーション管理プログラム１７４は、各ボリュームのマイグレーションに関するスケジュールを、図５Ａに示すマイグレーション管理テーブル５０１に登録する。
【００７９】
テーブル５０１は、マイグレーション管理プログラム１７４に管理される情報であり、記憶資源１６６に記憶される。テーブル５０１は、図５Ａに示すように、マイグレーション毎に、以下の情報要素（ｄ１）〜（ｄ５）：
（ｄ１）マイグレーションの開始の予定時刻；
（ｄ２）マイグレーション対象の論理ボリュームを有するストレージのＩＤ；
（ｄ３）マイグレーション対象の論理ボリュームのＬＵＮ；
（ｄ４）マイグレーション対象の論理ボリュームの基になっているＲＡＩＤグループ（マイグレーション元ＲＧ）のＩＤ；
（ｄ５）マイグレーション先のＲＡＩＤグループ（マイグレーション先ＲＧ）のＩＤ、
を有する。マイグレーション先ＲＧは、マイグレーション元ＲＧを有するストレージとは別のストレージに存在する。以下、マイグレーション先ＲＧを有するストレージを「マイグレーション先ストレージ」と言い、マイグレーション対象の論理ボリュームを有するストレージを「マイグレーション元ストレージ」と言う。
【００８０】
マイグレーション管理プログラム１７４は、テーブル５０１のレコードに記録されている情報に基づくマイグレーション指示を、マイグレーション元ストレージ（及び／又は、マイグレーション先ストレージ）に送信する。その指示を受けたストレージが、マイグレーション予定開始時刻にマイグレーションを行う。本実施形態のマイグレーションでは、下記の処理（ｍ１）及び（ｍ２）：
（ｍ１）マイグレーション先ＲＧに基づく論理ボリュームに、マイグレーション対象の論理ボリューム内のデータがコピーされる；
（ｍ２）マイグレーション対象の論理ボリュームに割り当てられていたＬＵＮが、マイグレーション先の論理ボリュームに割り当てられる、
が行われる。これにより、マイグレーション対象の論理ボリュームに割り当てられていたＬＵＮを指定したＩ／Ｏコマンドは、マイグレーション先ストレージに送信される。また、そのＩ／Ｏコマンドに従うデータの入出力は、マイグレーション先ストレージ内のキャッシュ領域に対して行われることになる。
【００８１】
以上が、マイグレーション管理プログラム１７４についての説明である。以下、本実施形態で行われる処理の流れを説明する。
【００８２】
図６は、キャッシュ管理処理の流れを示す。
【００８３】
Ｓ６０１で、アプリケーション管理プログラム１７１が、各ホストから、各アプリケーションに関するＡＰ管理情報を取得し、その情報から特定される各種情報要素を、アプリケーション管理テーブル２０１に登録する。また、キャッシュ管理プログラム１７３が、各ストレージから、ＣＭ管理情報（キャッシュ領域毎のキャッシュ使用状況を表す情報、及び、データセット情報を含んだ情報）を取得し、管理情報から特定される各種情報要素を、キャッシュ管理テーブル４０１に登録する。Ｓ６０１は、例えば、定期的に行われる。
【００８４】
なお、データセット情報とは、例えば、図５Ｂに示すとおりである。すなわち、データセット情報５１１は、論理ボリューム毎のＩ／Ｏ特性を表す。具体的には、例えば、データセット情報５１１は、各論理ボリュームについて、論理ボリュームのＬＢＡ（Logical Block Address）範囲毎に、リードとライトのどちらがより多く行われたかのＩ／Ｏ特性を表す情報を含む。つまり、ストレージのコントローラによって、各論理ボリュームについて、論理ボリュームのＬＢＡ範囲毎に、リードとライトのどちらがより多く行われたかが管理されている。なお、データセット情報には、ＬＢＡ範囲毎に、ライトとリードのそれぞれの頻度を表す値が含まれていても良い。
【００８５】
再び図６を参照する。
【００８６】
Ｓ６０２で、Ｉ／Ｏ監視プログラム１７２が、ＡＰ／ボリューム毎の実測Ｉ／Ｏ性能及びＩ/Ｏ増加率を取得し、それらの情報要素などをＩ／Ｏ監視テーブル３０１に登録する。Ｓ６０２は、例えば定期的に行われる。
【００８７】
各ＡＰ／ボリュームセットについて、Ｓ６０３〜Ｓ６１２を含んだループが行われる。そのループは、Ｉ／Ｏ増加率の最も高いＡＰ／ボリュームセットから先に行われる。一つのＡＰ／ボリュームセットを例に採り、Ｓ６０３〜Ｓ６１１を説明する。以下、図６〜図８の説明において、そのＡＰ／ボリュームセットを「対象セット」と言い、対象セットに属するＡＰを「対象ＡＰ」と言い、対象セットに属する論理ボリュームを「対象ボリューム」と言う。対象ボリュームは、外部ストレージ３内のボリューム３１１であるとし、そのボリューム３１１に対応した仮想ボリュームがストレージ２で管理されているとする。
【００８８】
Ｓ６０３で、判断６−１が行われる。判断６−１では、キャッシュ管理プログラム１７３が、対象セットに対応した要求Ｉ／Ｏ性能、実測Ｉ／Ｏ性能及びＩ／Ｏ増加率に基づいて、将来の或る時点での実測Ｉ／Ｏ性能がその要求Ｉ／Ｏ性能より低下するか否かを判断する。「将来の或る時点での実測Ｉ／Ｏ性能」は、例えば、最新の時刻でのＩ／Ｏ増加率と最新の時刻での実測Ｉ／Ｏ性能とを基にプログラム１７３によって推測された値である。判断６−１の結果が否定的であれば、対象セットについての処理が終了となり（すなわち、対象セットについては、キャッシュ使用状況を変更するためのキャッシュ制御が不要であり）、次にＩ／Ｏ増加率の高い別のＡＰ／ボリュームセットについてＳ６０３が行われる。一方、判断６−１の結果が肯定的であれば、Ｓ６０４が行われる。
【００８９】
Ｓ６０４で、判断６−２が行われる。判断６−２では、キャッシュ管理プログラム１７３が、キャッシュ使用状況が適切か否かを判断する。判断６−１の結果が否定的であれば、Ｓ６０８が行われ、判断６−２の結果が肯定的であれば、Ｓ６０５が行われる。
【００９０】
Ｓ６０５で、判断６−３が行われる。判断６−３では、キャッシュ管理プログラム１７３が、プールキャッシュ領域のうちの少なくとも一部（以下、「第一の余剰キャッシュ領域」と言う）を、割り当て可能か否かを判断する。判断６−３の結果が肯定的であれば、Ｓ６０９が行われ、判断６−３の結果が否定的であれば、Ｓ６０６が行われる。必要とされる第一の余剰キャッシュ領域の容量以上のプールキャッシュ領域があれば、判断６−３の結果が肯定的となる。
【００９１】
Ｓ６０６で、判断６−４が行われる。判断６−４では、キャッシュ管理プログラム１７３が、実測Ｉ／Ｏ性能が過剰に高いＡＰ／ボリュームセット（例えば、実測Ｉ／Ｏ性能が或る閾値以上であるＡＰ／ボリュームセット）があるか否かを判断する。以下、そのセットを、「第一の余剰セット」と言う。判断６−４の結果が肯定的であれば、Ｓ６１０が行われ、判断６−４の結果が否定的であれば、Ｓ６０７が行われる。
【００９２】
Ｓ６０７で、判断６−５が行われる。判断６−５では、キャッシュ管理プログラム１７３が、Ｉ／Ｏ増加率が低く（例えばＩ／Ｏ増加率が或る閾値より低く）且つ要求Ｉ／Ｏ性能が減少傾向にあるＡＰ／ボリュームセット（以下、第二の余剰セット）があるか否かを判断する。判断６−５の結果が肯定的であれば、Ｓ６１１が行われ、判断６−５の結果が否定的であれば、対象セットについて、このループにおける処理が終了となる（すなわち、対象セットについては、キャッシュ使用状況を変更するためのキャッシュ制御は不要である）。
【００９３】
Ｓ６０８で、キャッシュ制御が行われる。具体的には、キャッシュ管理プログラム１７３は、対象ボリュームに割当てられているキャッシュ領域について、キャッシュモードを変更する、又は、キャッシュ領域のうちのリードデータのより多くを常駐化する。
【００９４】
Ｓ６０９で、キャッシュ管理プログラム１７３は、プールキャッシュ領域のうちの必要な容量の第一の余剰キャッシュ領域を、対象ボリュームに追加的に割り当てる。
【００９５】
Ｓ６１０で、キャッシュ管理プログラム１７３は、上記第一の余剰セットに属するボリュームに割り当てられていたキャッシュ領域の少なくとも一部を解除し、解除した部分（以下、解除された部分を「第二の余剰キャッシュ領域」と言う）の少なくとも一部を、対象ボリュームに追加的に割り当てる。
【００９６】
Ｓ６１１で、キャッシュ管理プログラム１７３は、上記第二の余剰セットに属するボリュームに割り当てられていたキャッシュ領域の一部を解除し、解除した部分（第二の余剰キャッシュ領域）の少なくとも一部を、対象ボリュームに追加的に割り当てる。
【００９７】
このループにおける処理が全てのＡＰ／ボリュームセットについて行われた場合に、このループから処理が抜けることになる。なお、このループは、一定時間毎に行われる。つまり、Ｓ６０１及びＳ６０２によって、新たな時刻での情報要素がテーブル２０１、３０１及び４０１に登録されているので、その新たな時刻での情報要素を基に、全てのＡＰ／ボリュームセットについてループが行われる。その際、新たな時刻でのＩ／Ｏ増加率が前の時刻でのＩ／Ｏ増加率と異なっていれば、ＡＰ／ボリュームセットの順序（ループにおける処理が行われる順序）も前の順序とは異なる。
【００９８】
前述のＳ６０９を詳細に説明する。
【００９９】
「プールキャッシュ領域」とは、前述したように、計算機システムに存在するキャッシュメモリのうちキャッシュ領域として割り当てられていないアドレス範囲に対応する領域である。Ｓ６０９では、プールキャッシュ領域のうち、対象ＡＰと対象ボリュームとの間におけるパスが経由する装置であって、対象ボリュームを有するストレージよりも上位の装置（ホスト側の装置）内のキャッシュ領域（第一の余剰キャッシュ領域）が、対象ボリュームを有するストレージ内のキャッシュ領域よりも優先的に割り当てられる。
【０１００】
キャッシュ管理プログラム１７３は、余剰キャッシュ領域の割り当ての指示（キャッシュ割当て指示）を、余剰キャッシュ領域を有する中継装置に送信する。中継装置は、例えば、ストレージ２であるが、ＦＣ−ＳＷ２がキャッシュ機能を有していれば、ＦＣ−ＳＷ２がその中継装置になり得る。キャッシュ管理プログラム１７３からのキャッシュ割当て指示は、例えば、
（Ｋ１）対象ボリュームのＬＵＮ；
（Ｋ２）余剰キャッシュ領域のアドレス範囲；及び
（Ｋ３）そのアドレス範囲に対応付けるＬＢＡ範囲（対象ボリュームのＬＢＡ範囲）、
を含む。その指示を受けた装置は、その指示に含まれている（Ｋ１）〜（Ｋ３）の情報要素を保持する。これにより、余剰キャッシュ領域の割り当てが完了する。その後、例えば、対象ボリュームのＬＵＮ及びＬＢＡを含んだＩ／Ｏコマンドを中継装置が受けた場合、その中継装置は、Ｉ／Ｏコマンドに含まれているＬＵＮ及びＬＢＡに対応したアドレス範囲が、その中継装置が有するキャッシュメモリ内のアドレス範囲であれば、そのアドレス範囲に対応した領域に対して、そのＩ／Ｏコマンドに従うデータの入出力を行う。このため、例えば、その領域にリード対象データが保持されていれば、中継装置が、Ｉ／Ｏコマンドに応答して、保持されているリード対象データを対象ＡＰに提供する。
【０１０１】
なお、余剰キャッシュ領域の割当ての方法についての上記の説明は、第一の余剰キャッシュ領域の割り当てに限らず、第二の余剰キャッシュ領域（つまり、前述の第一又は第二の余剰セットに属する論理ボリュームに割当てられているキャッシュ領域から解除された部分）が対象ボリュームに割当てられる場合についても同様である。
【０１０２】
次に、前述のＳ６０４及びＳ６０８を、図７を参照して詳細に説明する。
【０１０３】
図７に示す処理は、前述のＳ６０４及びＳ６０８の詳細である。具体的には、図７のＳ７０１〜Ｓ７０５が、Ｓ６０４の詳細であり、Ｓ７０７及びＳ７０８が、Ｓ６０８の詳細である。
【０１０４】
Ｓ７０１では、判断７−１が行われる。判断７−１では、キャッシュ管理プログラム１７３が、キャッシュ管理テーブル４０１を参照し、対象ボリュームに割り当てられているキャッシュ領域（以下、キャッシュ領域（Ｔ３））についてのリードヒット率が高いか否か（例えば、そのリードヒット率が或る閾値以上か否か）を判断する。判断７−１の結果が否定的であれば、Ｓ７０２が行われ、判断７−１の結果が肯定的であれば、Ｓ７０４が行われる。
【０１０５】
Ｓ７０２では、判断７−２が行われる。判断７−２では、キャッシュ管理プログラム１７３が、キャッシュ管理テーブル４０１を参照し、キャッシュ領域（Ｔ３）についてのライト割合が高いか否か（例えば、そのライト割合が或る閾値以上か否か）を判断する。判断７−２の結果が否定的であれば、Ｓ７０３が行われ、判断７−２の結果が肯定的であれば、Ｓ７０４が行われる。
【０１０６】
Ｓ７０３では、判断７−３が行われる。判断７−３では、キャッシュ管理プログラム１７３が、キャッシュ管理テーブル４０１を参照し、キャッシュ領域（Ｔ３）についてのキャッシュモードがＢモードか否かを判断する。判断７−３の結果が否定的であれば、Ｓ７０６が行われ、判断７−３の結果が肯定的であれば、図６のＳ６０５が行われる。
【０１０７】
Ｓ７０４では、判断７−４が行われる。判断７−４では、キャッシュ管理プログラム１７３が、キャッシュ管理テーブル４０１を参照し、キャッシュ領域（Ｔ３）についての常駐トラックリード割合が高いか否か（例えば、その常駐トラックリード割合が或る閾値以上か否か）を判断する。判断７−４の結果が否定的であれば、Ｓ７０５が行われ、判断７−４の結果が肯定的であれば、図６のＳ６０５が行われる。
【０１０８】
Ｓ７０５では、判断７−５が行われる。判断７−５では、キャッシュ管理プログラム１７３が、キャッシュ領域（Ｔ３）に、リードが多く且つ常駐化されていないデータがあるか否かを判断する。キャッシュ領域（Ｔ３）に常駐化されていないデータがあるか否かは、例えば、ストレージからのＣＭ管理情報に含まれているサブ領域管理情報を参照することで、判断することができる。サブ領域管理情報は、キャッシュ領域の各サブ領域（スロット）に記憶されているデータが常駐化されているか否かを表す情報を含む。また、リードが多いデータがあるか否かは、例えば、キャッシュ領域（Ｔ３）におけるどのデータが対象ボリュームのどのＬＢＡ範囲に対応するかを表す情報（例えば上記ＣＭ管理情報に含まれている情報）や、前述したデータセット情報を基に判断することができる。判断７−５の結果が肯定的であれば、Ｓ７０７が行われ、判断７−５の結果が否定的であれば、図６のＳ６０５が行われる。
【０１０９】
Ｓ７０６では、キャッシュ管理プログラム１７３が、キャッシュ領域（Ｔ３）についてのキャッシュモードをＢモードに変更することのモード変更指示を、キャッシュ領域（Ｔ３）を有するストレージに送信する。これにより、キャッシュ領域（Ｔ３）を有するストレージにおいて、キャッシュ領域（Ｔ３）についてＢモードが設定され、その後、Ｂモードに従ってキャッシュ領域（Ｔ３）が使用される。
【０１１０】
Ｓ７０７では、キャッシュ管理プログラム１７３が、キャッシュ領域（Ｔ３）に存在するリードデータのうちのリードが多いリードデータを常駐化することのデータ常駐指示を、キャッシュ領域（Ｔ３）を有するストレージに送信する。これにより、キャッシュ領域（Ｔ３）において、より多くのリードデータが常駐化される。リードデータのうちのどれがリードが多いかは、例えば、キャッシュ領域（Ｔ３）におけるどのデータが対象ボリュームのどのＬＢＡ範囲に対応するかを表す情報（例えば上記ＣＭ管理情報に含まれている情報）や、上記データセット情報を基に判断することができる。
【０１１１】
図７に基づく以上の説明によれば、以下のことがわかる。
【０１１２】
すなわち、キャッシュ領域（Ｔ３）について、リードヒット率が高くなく、ライト割合が低くなく、且つ、キャッシュモードがＢモードでは無い場合に、キャッシュ制御として、キャッシュ領域（Ｔ３）のキャッシュモードがＢモードに変更される。
【０１１３】
また、キャッシュ領域（Ｔ３）について、リードヒット率が高く（又は、リードヒット率が高くないがライト割合が低く）、常駐トラックリード割合が高くなく、且つ、リードが多く常駐化されていないデータがある場合、キャッシュ制御として、より多くのデータが常駐化される。
【０１１４】
さらに、キャッシュ領域（Ｔ３）について、以下の（Ａ）乃至（Ｃ）：
（Ａ）リードヒット率が高く（又は、リードヒット率が高くないがライト割合が低く）、且つ、常駐トラックリード割合が高い場合；
（Ｂ）リードヒット率が高く（又は、リードヒット率が高くないがライト割合が低く）、常駐トラックリード割合が高くなく、且つ、リードが多く常駐化されていないデータがない場合；
（Ｃ）リードヒット率が高くなく、ライト割合が低くなく、且つ、キャッシュモードがＢモードである場合、
のいずれかの場合、Ｓ６０５を経て、第一の余剰キャッシュ領域（対象ＡＰと対象ボリュームとのパス上における上位のキャッシュ領域）が、対象ボリュームに追加的に割り当てられる。なお、割り当てられる第一の余剰キャッシュ領域の容量は、例えば、対象セットについての要求Ｉ／Ｏ性能、実測Ｉ／Ｏ性能及びＩ／Ｏ増加率を基に決定されて良い。これにより、第一の余剰キャッシュ領域の容量が無駄に多くならないようにすることが期待できる。また、追加的に割り当てられた第一の余剰キャッシュ領域についてのキャッシュモードとしては、上記（Ａ）及び（Ｂ）の場合ではＰモードが採用され、上記（Ｃ）の場合ではＢモードが採用されて良い。
【０１１５】
図６の前述のＳ６１０及びＳ６１１での領域解除処理を詳細に説明する。
【０１１６】
図８は、領域解除処理の流れを示す。
【０１１７】
Ｓ８０１では、判断８−１が行われる。判断８−１では、キャッシュ管理プログラム１７３が、余剰セット（第一又は第二の余剰セット）に属する論理ボリュームに割り当てられているキャッシュ領域（以下、解除保有キャッシュ領域）において、常駐化されており且つリードヒット率の低いデータがあるか否かを判断する。解除保有キャッシュ領域におけるデータ毎のヒット率（リードヒット率／ライトヒット率）は、前述したサブ領域管理情報（キャッシュ領域の各サブ領域（スロット）に記憶されているデータが常駐化されているか否かを表す情報を含んだ情報）から特定することができる。判断８−１の結果が肯定的であれば、Ｓ８０３が行われ、判断８−１の結果が否定的であれば、Ｓ８０２が行われる。
【０１１８】
Ｓ８０２では、判断８−２が行われる。判断８−２では、キャッシュ管理プログラム１７３が、解除保有キャッシュ領域において、ライトヒット率の低いライトデータがあるか否かを判断する。判断８−２の結果が肯定的であれば、Ｓ８０４が行われ、判断８−２の結果が否定的であれば、Ｓ８０５が行われる。
【０１１９】
Ｓ８０３では、キャッシュ管理プログラム１７３が、リードヒット率の最も低い常駐データが記憶されている領域から優先的に割当てを解除する。
【０１２０】
Ｓ８０４では、キャッシュ管理プログラム１７３が、ライトヒット率の最も低いライトデータが記憶されている領域から優先的に割当てを解除する。
【０１２１】
Ｓ８０５では、キャッシュ管理プログラム１７３が、リードヒット率の最も低いリードデータが記憶されている領域から優先的に割当てを解除する。
【０１２２】
Ｓ８０３〜Ｓ８０５では、プログラム１７３が、例えば、該当部分を解除保有キャッシュ領域から解除することの割当て解除指示を、解除保有キャッシュ領域を有する装置に送信する。割り当て解除された部分が、前述した第二の余剰キャッシュ領域である。第二の余剰キャッシュ領域の容量は、例えば、余剰セットについての要求Ｉ／Ｏ性能、実測Ｉ／Ｏ性能及びＩ／Ｏ増加率を基に決定されて良い。これにより、第二の余剰キャッシュ領域の容量が無駄に多くならないようにすることが期待できる。
【０１２３】
第二の余剰キャッシュ領域の少なくとも一部が、図６のＳ６１０又はＳ６１１において、対象ボリュームに追加的に割当てられる。割当てられる領域の容量は、例えば、対象セットについての要求Ｉ／Ｏ性能、実測Ｉ／Ｏ性能及びＩ／Ｏ増加率を基に決定されて良い。これにより、追加的に割当てられる領域の容量が無駄に多くならないようにすることが期待できる。もし、第二の余剰キャッシュ領域の一部だけが追加的に割り当てられた場合、残りの領域は、プールキャッシュ領域として管理されて良い。
【０１２４】
さて、図６〜図８を参照して説明した処理とは別に、マイグレーション管理処理が実行される。
【０１２５】
図９は、マイグレーション管理処理の流れを示す。
【０１２６】
Ｓ９０１及びＳ９０２で、図６のＳ６０１及びＳ６０２と同様の処理が行われる。Ｓ９０１及びＳ９０２は、Ｓ６０１及びＳ６０２それ自体であっても良いし、それとは別の処理であっても良い。
【０１２７】
各ＡＰ／ボリュームセットについて、Ｓ９０３〜Ｓ９０５を含んだループが行われる。そのループは、Ｉ／Ｏ増加率の最も高いＡＰ／ボリュームセットから先に行われる。一つのＡＰ／ボリュームセットを例に採り、Ｓ９０３〜Ｓ９０５を説明する。以下、図９及び図１０の説明において、そのＡＰ／ボリュームセットを「対象セット」と言い、対象セットに属するＡＰを「対象ＡＰ」と言い、対象セットに属する論理ボリュームを「対象ボリューム」と言う。対象ボリュームは、外部ストレージ３内のボリューム３１１であるとし、そのボリューム３１１に対応した仮想ボリュームがストレージ２で管理されているとする。
【０１２８】
Ｓ９０３で、判断９−１が行われる。判断９−１では、マイグレーション管理プログラム１７４が、図６の判断６−１と同様の方法で、将来の或る時点での実測Ｉ／Ｏ性能がその要求Ｉ／Ｏ性能より低下するか否かを判断する。判断９−１の結果が否定的であれば、対象セットについての処理が終了となり、次にＩ／Ｏ増加率の高い別のＡＰ／ボリュームセットについてＳ９０３が行われる。一方、判断９−１の結果が肯定的であれば、Ｓ９０４が行われる。
【０１２９】
Ｓ９０４で、判断９−２が行われる。判断９−２では、マイグレーション管理プログラム１７４が、対象セットについて図６の処理が行われたか否かを判断する。判断９−２の結果が肯定的であれば、図６の処理が行われても実測Ｉ／Ｏ性能が低下するということなので、Ｓ９０５が行われる。一方、判断９−２の結果が否定的であれば、対象セットについて図６の処理が行われれば実測Ｉ／Ｏ性能が低下しない可能性があるので、Ｓ９０５が行われることなく対象セットについての処理が終了となる。
【０１３０】
Ｓ９０５で、ボリュームマイグレーション処理が行われる。
【０１３１】
なお、前述の判断９−２は、図６のＳ６０３〜Ｓ６１１のループに相当する。具体的には、例えば、図６のＳ６０７の判断の結果が否定的（ＮＯ）ならば、判断９−２の結果も否定的（ＮＯ）となり、図６のＳ６０７の判断まで行われない、又は、図６のＳ６０７の判断の結果が肯定的（ＹＥＳ）ならば、判断９−２の結果も肯定的（ＹＥＳ）となる。このため、マイグレーション間隔（図９に示したループが行われる時間間隔）が、キャッシュ管理間隔（図６のＳ６０３〜Ｓ６１１のループが行われる時間間隔）より長い。
【０１３２】
図１０は、Ｓ９０５のボリュームマイグレーション処理の流れを示す。
【０１３３】
Ｓ１００１で、判断１０−１が行われる。判断１０−１では、マイグレーション管理プログラム１７４が、対象ボリューム内のデータを格納できる領域（マイグレーション先ボリューム）を有するストレージがあるかどうかを判断する。この判断は、各ストレージに関する構成情報（例えば、どのストレージがどんなボリュームを有していてそのボリュームがどのＲＡＩＤグループを基に形成されているかを表す情報を含んだ情報）を参照することで、行うことができる。判断１０−１の結果が否定的であれば、このマイグレーション処理が終了する。一方、判断１０−１の結果が肯定的であれば、Ｓ１００２が行われる。
【０１３４】
Ｓ１００２で、判断１０−２が行われる。判断１０−２では、マイグレーション管理プログラム１７４が、Ｓ１００１で見つかったストレージに対象ボリューム内のデータをマイグレーションした場合、そのストレージが過負荷になるか否かを判断する。具体的には、例えば、マイグレーション管理プログラム１７４が、対象セットについての実測Ｉ／Ｏ性能、Ｉ／Ｏ増加率、キャッシュ使用状況情報などを基に、対象ボリュームをマイグレーションしたと仮定した場合の、マイグレーション先ストレージ内のキャッシュメモリの使用状況の変化を予測し、予測される状況が、過負荷な状況であるか否かを判断する。判断１０−２の結果が肯定的の場合、再度Ｓ１００１が行われる。つまり、対象ボリューム内のデータを格納できる領域を有するストレージがあるかどうかが判断される。一方、判断１０−２の結果が否定的の場合、Ｓ１００３が行われる。
【０１３５】
Ｓ１００３で、マイグレーション管理プログラム１７４が、マイグレーションスケジュールに関する情報をマイグレーション管理テーブル５０１に登録する。マイグレーション開始予定時刻は、対象ボリューム内のデータの量、或いは他種の情報を基に、決定されて良い。
【０１３６】
以上、本発明の一つの実施形態を説明したが、本発明は、この実施形態に限定されるものでなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【０１３７】
１０５…管理サーバ
【図１】
2010286923.tif 000003
【図２】
2010286923.tif 000004
【図３】
2010286923.tif 000005
【図４】
2010286923.tif 000006
【図５】
2010286923.tif 000007
【図６】
2010286923.tif 000008
【図７】
2010286923.tif 000009
【図８】
2010286923.tif 000010
【図９】
2010286923.tif 000011
【図１０】
2010286923.tif 000012
【図１１】
2010286923.tif 000013
【図１２】
2010286923.tif 000014