(57)【要約】  階層化されたプールを効率的に使用すること。  管理サーバは、複数のホスト計算機の性能情報を管理し、各性能情報に基づいて、複数のホスト計算機のうち予め設定される所定の閾値以上の負荷を有する所定のホスト計算機が有るか判定する。管理サーバは、所定のホスト計算機の使用する所定の仮想的論理ボリュームに対する、複数の記憶階層毎の実記憶領域の割当量を規定する再配置計画を作成する。管理サーバは、再配置計画に基づいて、各論理的記憶領域と各記憶階層の各実記憶領域との対応関係を決定し、ストレージ装置に通知する。
2013103005.tif 000002
【特許請求の範囲】
【請求項１】
複数のホスト計算機及び少なくとも一つのストレージ装置を含む計算機システムを管理する管理装置であって、
前記ストレージ装置は、前記複数のホスト計算機に提供するための複数の仮想的論理ボリュームと、性能の異なる複数の記憶階層を有するプールとを備え、かつ、前記複数の仮想的論理ボリュームを構成する論理的記憶領域を、前記複数の記憶階層のうち所定の記憶階層の実記憶領域に対応付けるための再配置処理を実行するようになっており、
前記複数のホスト計算機の性能情報を管理する性能情報管理部と、
前記各性能情報に基づいて、前記複数のホスト計算機のうち予め設定される所定の閾値以上の負荷を有する所定のホスト計算機が有るか判定する負荷判定部と、
前記複数の仮想的論理ボリュームのうち前記所定のホスト計算機の使用する所定の仮想的論理ボリュームに対する、前記複数の記憶階層毎の前記実記憶領域の割当量を規定する再配置計画を作成する再配置計画作成部と、
前記再配置計画に基づいて、前記複数の仮想的論理ボリュームの前記各論理的記憶領域と前記各記憶階層の前記各実記憶領域との対応関係を決定し、前記対応関係を前記ストレージ装置に通知して、前記ストレージ装置に前記再配置処理の実行を指示する再配置指示部と、
を備え、
前記再配置計画作成部は、前記所定の仮想的論理ボリュームの応答時間が所定の目標応答時間以上となる複数の再配置計画を作成し、それら複数の前記再配置計画の中からいずれか一つを選択し、
前記再配置指示部は、選択された前記再配置計画に基づいて前記対応関係を決定し、決定した前記対応関係を前記ストレージ装置に通知する、
計算機システムの管理装置。
【請求項２】
ユーザから入力された値が前記目標応答時間として設定される、
請求項１に記載の計算機システムの管理装置。
【請求項３】
前記再配置計画作成部は、前記複数の再配置計画の中から、前記プールの応答時間が最小となる再配置計画を一つ選択する、
請求項２に記載の計算機システムの管理装置。
【請求項４】
前記再配置計画作成部は、前記所定の仮想的論理ボリュームに対する前記複数の記憶階層毎の前記実記憶領域の割当量の全ての組合せのうち、予め設定される所定の範囲内の組合せに基づいて、前記複数の再配置計画を作成する、
請求項３に記載の計算機システムの管理装置。
【請求項５】
前記複数の記憶階層には、最も高性能の第１記憶階層と、次に高性能の第２記憶階層と、最も性能の低い第３記憶階層とが含まれており、
前記再配置計画作成部は、前記所定の仮想的論理ボリュームの応答時間が増加する程度を示すボリューム応答時間指標と、前記プールの応答時間が減少する程度を示すプール応答時間指標とに基づいて、前記所定の範囲を設定するようになっており、
前記ボリューム応答時間指標は、前記所定の仮想的論理ボリュームに割り当てる前記第１記憶階層の実記憶領域を所定量だけ減らした場合の応答時間と、前記所定の仮想的論理ボリュームに割り当てる前記第２記憶階層の実記憶領域を前記所定量だけ減らした場合の応答時間との比として算出され、
前記プール応答時間指標は、前記プールで使用可能な前記第１記憶階層の実記憶領域が前記所定量だけ増加した場合の応答時間と、前記プールで使用可能な前記第２記憶階層の実記憶領域が前記所定量だけ増加した場合の応答時間との比として算出される、
請求項４に記載の計算機システムの管理装置。
【請求項６】
前記複数のホスト計算機には優先度が設定されており、
前記再配置計画作成部は、所定の優先度以上の優先度を有するホスト計算機の使用する前記仮想的論理ボリュームの応答時間が短縮されるホスト計算機の数を算出し、算出された数の最も大きい再配置計画を前記複数の再配置計画の中から選択する、
請求項１に記載の計算機システムの管理装置。
【請求項７】
前記再配置計画作成部は、前記複数の再配置計画の中から、ユーザにより指定される再配置計画を一つ選択する、
請求項１に記載の計算機システムの管理装置。
【請求項８】
前記目標応答時間は、手動モードまたは自動モードのうち予め選択されたモードに従って設定されるようになっており、
前記手動モードが選択されている場合は、ユーザからの入力値を前記目標応答時間として設定し、
前記自動モードが選択されている場合は、前記所定のホスト計算機の負荷が前記所定の閾値未満となるまで、前記所定のホスト計算機の現在の応答時間よりも長く設定される初期値から段階的に低下させることで、前記目標応答時間を設定する、
請求項１に記載の計算機システムの管理装置。
【請求項９】
前記再配置計画作成部は、前記所定の仮想的論理ボリュームに対する前記複数の記憶階層毎の前記実記憶領域の割当量の全ての組合せのうち、予め設定される所定の範囲内の組合せに基づいて、前記複数の再配置計画を作成する、
請求項１に記載の計算機システムの管理装置。
【請求項１０】
前記複数の記憶階層には、最も高性能の第１記憶階層と、次に高性能の第２記憶階層と、最も性能の低い第３記憶階層とが含まれており、
前記再配置計画作成部は、前記所定の仮想的論理ボリュームの応答時間が増加する程度を示すボリューム応答時間指標と、前記プールの応答時間が減少する程度を示すプール応答時間指標とに基づいて、前記所定の範囲を設定するようになっており、
前記ボリューム応答時間指標は、前記所定の仮想的論理ボリュームに割り当てる前記第１記憶階層の実記憶領域を所定量だけ減らした場合の応答時間と、前記所定の仮想的論理ボリュームに割り当てる前記第２記憶階層の実記憶領域を前記所定量だけ減らした場合の応答時間との比として算出され、
前記プール応答時間指標は、前記プールで使用可能な前記第１記憶階層の実記憶領域が前記所定量だけ増加した場合の応答時間と、前記プールで使用可能な前記第２記憶階層の実記憶領域が前記所定量だけ増加した場合の応答時間との比として算出される、
請求項９に記載の計算機システムの管理装置。
【請求項１１】
複数のホスト計算機及び少なくとも一つのストレージ装置を含む計算機システムを管理装置で管理するための方法であって、
前記ストレージ装置は、前記複数のホスト計算機に提供するための複数の仮想的論理ボリュームと、性能の異なる複数の記憶階層を有するプールとを備え、かつ、前記複数の仮想的論理ボリュームを構成する論理的記憶領域を、前記複数の記憶階層のうち所定の記憶階層の実記憶領域に対応付けるための再配置処理を実行するようになっており、
前記管理装置は、
前記複数のホスト計算機の性能情報を管理する性能情報管理ステップと、
前記各性能情報に基づいて、前記複数のホスト計算機のうち予め設定される所定の閾値以上の負荷を有する所定のホスト計算機が有るか判定する負荷判定ステップと、
前記複数の仮想的論理ボリュームのうち前記所定のホスト計算機の使用する所定の仮想的論理ボリュームに対する、前記複数の記憶階層毎の前記実記憶領域の割当量を規定する再配置計画を作成する再配置計画作成ステップであって、前記所定の仮想的論理ボリュームの応答時間が所定の目標応答時間以上となる複数の再配置計画を作成し、それら複数の前記再配置計画の中からいずれか一つを選択する再配置計画作成ステップと、
選択された前記再配置計画に基づいて、前記複数の仮想的論理ボリュームの前記各論理的記憶領域と前記各記憶階層の前記各実記憶領域との対応関係を決定し、前記対応関係を前記ストレージ装置に通知して、前記ストレージ装置に前記再配置処理の実行を指示する再配置指示ステップと、
を実行する、
計算機システムの管理方法。
【請求項１２】
前記再配置計画作成ステップは、前記複数の再配置計画の中から、前記プールの応答時間が最小となる再配置計画を一つ選択する、
請求項１１に記載の計算機システムの管理方法。
【請求項１３】
前記再配置計画作成ステップは、前記所定の仮想的論理ボリュームに対する前記複数の記憶階層毎の前記実記憶領域の割当量の全ての組合せのうち、予め設定される所定の範囲内の組合せに基づいて、前記複数の再配置計画を作成する、
請求項１１に記載の計算機システムの管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システムの管理装置及び管理方法に関する。
【背景技術】
【０００２】
階層ストレージ技術は、ストレージ装置の利用効率を高める。階層ストレージ技術では、それぞれ性能の異なる複数種類の記憶装置を用いて、階層型プールを形成する。その階層型プールに蓄積されている実記憶領域（実領域とも呼ぶ）を、仮想的な論理ボリュームに割り当てる。【０００３】
階層ストレージ技術では、仮想的な論理ボリュームのデータの格納先を、そのデータに対するＩ／Ｏ（Input/Output）負荷に基づいて、適切な性能の階層へと自動または手動で変更する。頻繁にアクセスされるデータは高性能の階層に格納され、アクセス頻度の少ないデータは低性能の階層に格納される。階層ストレージ技術を利用することで、データに対して、そのデータに必要な性能の記憶装置を必要な分だけ割当てることができる。【０００４】
第１の特許文献では、ページと呼ばれる仮想的な記憶領域に含まれるデータ毎にＩ／Ｏ負荷を計測し、１ページ単位でデータの格納先を変更できる階層ストレージ技術を開示している（特許文献１）。【０００５】
第２の特許文献は、アプリケーションプログラムの優先度、使用率、または性能要件情報を利用して、動的にページの再割当てを行う技術を開示している（特許文献２）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−１０８３４１号公報
【特許文献２】特開２０１１−７０６２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従来技術は、ページ毎のＩ／Ｏ数の大小に基づいて、階層間でデータを再配置する。従来技術では、ＣＰＵ（Central Processing Unit）利用率、ネットワーク使用率、Ｉ／Ｏ分布といった、ホスト計算機の稼働情報を使用していない。【０００８】
そのため、従来技術では、Ｉ／Ｏ以外の性能（例えば、ＣＰＵ処理時間）がボトルネックになっているホスト計算機であっても、そのホスト計算機からのＩ／Ｏ数が多い場合は、そのホスト計算に使用されるデータに対して、高性能な上位階層を割り当てる。【０００９】
しかし、このケースでは、Ｉ／Ｏ以外の性能が性能ボトルネックであるため、上位階層を割当てることでＩ／Ｏレスポンスタイムの高速化を図っても、上位階層のコストに見合う程の効果を期待できない。ホスト計算機のＩ／Ｏ処理以外の他の処理を含む総合的なレスポンスタイムの向上を期待できない場合がある。ホスト計算機がデータを速やかに取得できたとしても、ホスト計算機のＣＰＵが高負荷であるために、データ処理が遅れる可能性がある。【００１０】
従って、性能ボトルネックが発生しているホスト計算機に上位階層を割り当てるよりも、性能ボトルネックの発生していない他のホスト計算機に上位階層を割り当てる方が、結果的に好ましい。こうすることで、プール全体の、Ｉ／Ｏ以外の処理を含むレスポンスタイムを最大化できる。しかし、従来技術では、上述のように、性能ボトルネックの発生したホスト計算機が上位階層を利用するため、プール全体のレスポンスタイムを最適化できない。【００１１】
本発明の目的は、ホスト計算機の状態に応じて複数の記憶階層の実記憶領域を割り当てることで、複数の記憶階層の実記憶領域を効率的に使用することができるようにした、計算機システムの管理装置及び管理方法を提供することにある。
【課題を解決するための手段】
【００１２】
上記課題を解決すべく、本発明に従う計算機システムの管理装置は、複数のホスト計算機及び少なくとも一つのストレージ装置を含む計算機システムを管理する管理装置であって、ストレージ装置は、複数のホスト計算機に提供するための複数の仮想的論理ボリュームと、性能の異なる複数の記憶階層を有するプールとを備え、かつ、複数の仮想的論理ボリュームを構成する論理的記憶領域を、複数の記憶階層のうち所定の記憶階層の実記憶領域に対応付けるための再配置処理を実行するようになっており、複数のホスト計算機の性能情報を管理する性能情報管理部と、各性能情報に基づいて、複数のホスト計算機のうち予め設定される所定の閾値以上の負荷を有する所定のホスト計算機が有るか判定する負荷判定部と、複数の仮想的論理ボリュームのうち所定のホスト計算機の使用する所定の仮想的論理ボリュームに対する、複数の記憶階層毎の実記憶領域の割当量を規定する再配置計画を作成する再配置計画作成部と、再配置計画に基づいて、複数の仮想的論理ボリュームの各論理的記憶領域と各記憶階層の各実記憶領域との対応関係を決定し、対応関係をストレージ装置に通知して、ストレージ装置に再配置処理の実行を指示する再配置指示部と、を備え、再配置計画作成部は、所定の仮想的論理ボリュームの応答時間が所定の目標応答時間以上となる複数の再配置計画を作成し、それら複数の再配置計画の中からいずれか一つを選択し、再配置指示部は、選択された再配置計画に基づいて対応関係を決定し、決定した対応関係をストレージ装置に通知する。【００１３】
本発明に関連する更なる特徴は、本明細書の記述、添付図面から明らかになるものである。また、本発明の様態は、要素および多様な要素の組み合わせ及び以降の詳細な記述と添付される特許請求の範囲の様態により達成され実現される。【００１４】
本明細書の記述は典型的な例示に過ぎず、本発明の請求の範囲又は適用例を如何なる意味に於いても限定するものではないことを理解する必要がある。
【図面の簡単な説明】
【００１５】
【図１】本実施形態の全体概要を示す説明図である。
【図２】第１実施例におけるシステム全体の構成図の例である。
【図３】第１実施例におけるストレージ装置の構成図の例である。
【図４】第１実施例における管理サーバの構成図の例である。
【図５】第１実施例におけるホストの構成図の例である。
【図６】第１実施例におけるストレージ制御プログラムの論理概念図の例である。
【図７】第１実施例におけるＴｉｅｒの性能履歴を管理する情報の構成例である。
【図８】第１実施例におけるホストの性能ボトルネック閾値を管理する情報の構成例である。
【図９】第１実施例における再配置プランを管理する情報の構成例である。
【図１０】第１実施例における管理サーバが仮想ボリュームを管理するための情報の構成例である。
【図１１】第１実施例におけるストレージ装置が仮想ボリュームを管理するための情報の構成例である。
【図１２】第１実施例におけるホストの性能履歴を管理する情報の構成例である。
【図１３】第１実施例における管理サーバがＲＡＩＤグループを管理するための情報の構成例である。
【図１４】第１実施例におけるストレージ装置がＲＡＩＤグループを管理するための情報の構成例である。
【図１５】第１実施例におけるＴｉｅｒの構成を管理する情報の構成例である。
【図１６】第１実施例におけるＴｉｅｒ構成別のレスポンスタイムを管理する情報の構成例である。
【図１７】第１実施例におけるストレージ装置が実領域を管理するための情報の構成例である。
【図１８】第１実施例における再配置プランを作成する処理を説明するフローチャートの例である。
【図１９】第１実施例におけるホストの性能履歴を取得する処理を説明するフローチャートの例である。
【図２０】第１実施例における性能ボトルネックを判別する処理を説明するフローチャートの例である。
【図２１】第１実施例における再配置プランを策定する処理を説明するフローチャートの例である。
【図２２】第１実施例におけるＩ／Ｏレスポンスタイムを計算する処理を説明するフローチャートの例である。
【図２３】第１実施例における仮想ボリュームの性能情報を取得する処理を説明するフローチャートの例である。
【図２４】第１実施例における再配置指示処理を説明するためのフローチャートの例である。
【図２５】第１実施例におけるリード処理を説明するフローチャートの例である。
【図２６】第１実施例におけるライト処理を説明するフローチャートの例である。
【図２７】第１実施例における入力情報を登録する処理を説明するフローチャートの例である。
【図２８】第１実施例におけるホストの性能ボトルネック閾値を設定するための画面例である。
【図２９】第１実施例における再配置プラン策定処理の仮想配置先を管理する情報の構成例である。
【図３０】第１実施例における再配置プラン策定処理の仮想再配置プログラムを説明するフローチャートの例である。
【図３１】第１実施例における実領域割当ての処理を説明するフローチャートの例である。
【図３２】第２実施例におけるホストの性能を管理する情報の構成例である。
【図３３】第２実施例における構成プラン別のホスト性能情報をユーザに提示するための画面例である。
【図３４】第２実施例におけるホストの性能情報をユーザに提示するための画面例である。
【図３５】第３実施例におけるホストの性能ボトルネック閾値を設定するための画面例である。
【図３６】第３実施例における再配置プランの策定および実行を説明するフローチャートの例である。
【図３７】第３実施例におけるホストの性能ボトルネック閾値を管理する情報の構成例である。
【図３８】第４実施例におけるレスポンスタイム変化指標を管理する情報の構成例である。
【図３９】第４実施例におけるホストＩ／Ｏレスポンスタイム減少比を計算する処理を説明するフローチャートの例である。
【図４０】第４実施例におけるプールＩ／Ｏレスポンスタイム増加比を計算する処理を説明するフローチャートの例である。
【図４１】第４実施例における再配置プランの策定および実行を説明するフローチャートの例である。
【図４２】第５実施例における再配置プランの策定および実行を説明するフローチャートの例である。
【図４３】第５実施例におけるＴｉｅｒ構成別のレスポンスタイムを管理する情報の構成例である。
【発明を実施するための形態】
【００１６】
以下、図面に基づいて、本発明の実施の形態を説明する。本実施形態では、ストレージ装置の有する複数の記憶装置の使用状況を最適化するための管理装置、または管理方法あるいは管理ソフトウェアについて説明する。本実施形態は、後述のように、アプリケーションの性能情報を利用しているようなシステム構成において有効な技術を開示する。本実施形態では、プールを共有するホスト全体のレスポンスタイムを最適化できる。
【００１７】
添付図面では、機能的に同じ要素は同じ番号で表示される場合もある。なお、添付図面は、本発明の原理に則った具体的な実施形態と実装例とを示している。それらの実施形態及び実施例は、本発明の理解のためのものであり、本発明を限定的に解釈するために用いてはならない。
【００１８】
本実施形態では、当業者が本発明を実施するのに十分かつ詳細にその説明がなされているが、他の実装または形態も可能である。本発明の技術的思想の範囲と精神を逸脱することなく、構成または構造の変更、多様な要素の置き換えが可能であることを理解する必要がある。従って、以降の記述を、これに限定して解釈してはならない。
【００１９】
更に、本発明の実施形態は、後述されるように、汎用コンピュータ上で稼動するソフトウェアで実装しても良いし、専用ハードウェアで実装してもよいし、またはソフトウェアとハードウェアの組み合わせで実装しても良い。
【００２０】
なお、以後の説明では「テーブル」形式によって本発明の各情報について説明するが、これら情報は必ずしもテーブルによるデータ構造で表現されていなくても良く、リスト、ＤＢ、キュー等のデータ構造やそれ以外で表現されていても良い。そのため、データ構造に依存しないことを示すために「テーブル」、「リスト」、「ＤＢ」、「キュー」等について単に「情報」と呼ぶことがある。
【００２１】
また、各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「名前」、「ＩＤ」という表現を用いることが可能であり、これらについてはお互いに置換が可能である。
【００２２】
以下では「プログラム」を主語（動作主体）として本発明の実施形態における各処理について説明を行うが、プログラムはプロセッサによって実行されることで定められた処理をメモリ及び通信ポート（通信制御装置）を用いながら行うため、プロセッサを主語とした説明としてもよい。また、プログラムを主語として開示された処理は管理サーバ等の計算機、情報処理装置が行う処理としてもよい。プログラムの一部または全ては専用ハードウェアで実現してもよく、また、モジュール化されていても良い。各種プログラムはプログラム配布サーバや記憶メディアによって各計算機にインストールされてもよい。
【００２３】
図１は、本実施形態の全体概念を模式的に示す説明図である。図１に示す構成は一例に過ぎず、本発明の範囲は図１の構成に限定されない。計算機システムは、複数のホスト計算機（以下、ホスト）１と、少なくとも一つの管理サーバ２と、少なくとも一つのストレージ装置３を備える。
【００２４】
ホスト１とストレージ装置３とは、例えば、ＩＰ−ＳＡＮ（Internet Protocol_SAN）またはＦＣ−ＳＡＮ（Fibre Channel-Storage Area Network）のようなＩ／Ｏ用の通信ネットワーク４を介して接続される。ホスト１及びストレージ装置３と管理サーバ２とは、例えば、ＬＡＮ（Local Area Network）のような管理用の通信ネットワーク５を介して接続される。Ｉ／Ｏ用通信ネットワーク４と管理用通信ネットワーク５とを結合して一つの通信ネットワークとして構成してもよい。
【００２５】
ストレージ装置３は、それぞれ性能の異なる複数の記憶階層（以下、Ｔｉｅｒ）を備えている。Ｔｉｅｒ内の実記憶領域は、仮想的論理ボリューム内の論理的記憶領域に対応付けられており、仮想的論理ボリュームのデータを記憶する。以下、仮想的論理ボリュームを仮想ボリュームと、実記憶領域を実ページと、論理的記憶領域を論理ページと、それぞれ呼ぶことがある。図１では、アプリケーションプログラム（以下、アプリケーション）ＡＰ１の稼働するホスト１が仮想ボリュームＶＶＯＬ１を使用する。アプリケーションＡＰ２の稼働するホスト１は仮想ボリュームＶＶＯＬ２を、アプリケーションＡＰ３の稼働するホスト１は仮想ボリュームＶＶＯＬ３を使用する。
【００２６】
「管理装置」としての管理サーバ２は、例えば、設定値記憶部Ｐ２１と、性能履歴管理部Ｐ２２と、ボトルネック判定部Ｐ２３と、再配置プラン策定部Ｐ２４と、再配置指示部Ｐ２５を有する。これら機能Ｐ２１〜Ｐ２５は、後述するストレージ・ホスト管理プログラム０１２４に対応する。
【００２７】
設定値記憶部Ｐ２１は、システム管理者等のユーザから入力される値を、設定値として保存する。「性能情報管理部」としての性能履歴管理部Ｐ２２は、ホスト１の性能情報を収集し、性能情報の履歴を管理する。「負荷判定部」としてのボトルネック判定部Ｐ２３は、ホスト１の負荷状態が所定の閾値以上の高負荷状態であるかを判定する。ユーザは、所定の閾値を入力でき、その入力値は設定値記憶部Ｐ２１に記憶される。図１では、アプリケーションＡＰ１の稼働しているホスト１が高負荷状態であると仮定する。
【００２８】
「再配置計画作成部」としての再配置プラン策定部Ｐ２４は、高負荷状態のホスト１（ＡＰ１）の使用する仮想ボリューム（ＶＶＯＬ１）に対する、Ｔｉｅｒ毎の実ページの割当量を算出する。再配置プラン策定部Ｐ２４は、仮想ボリューム（ＶＶＯＬ１）に対して、上位Ｔｉｅｒの実ページをどれだけ割当て、中位Ｔｉｅｒの実ページをどれだけ割り当てるかを規定する再配置プランを作成する。
【００２９】
再配置指示部Ｐ２５は、再配置プランに基づいて、各仮想ボリュームの論理ページと各Ｔｉｅｒの実ページとの対応関係を決定し、ストレージ装置３に通知する。ストレージ装置３は、再配置指示部Ｐ２５からの指示に基づいて、仮想ボリュームの論理ページに所定Ｔｉｅｒの実ページを割当てる。
【００３０】
本実施形態の再配置プラン策定部Ｐ２４は、高負荷状態のホスト１（ＡＰ１）に割り当てる上位Ｔｉｅｒまたは中位Ｔｉｅｒの実ページ数を少なくする。再配置指示部Ｐ２５により、高負荷状態のホスト１（ＡＰ１）に割り当てられなくなった上位Ｔｉｅｒまたは中位Ｔｉｅｒの実ページは他のホスト１（ＡＰ２、ＡＰ３）に割り当てられる。
【００３１】
従って、本実施形態では、プール内の実ページをより効率的に使用することができ、プールを共有する複数のホストの全体としてのレスポンスタイムを最適化できる。以下、本実施形態を詳細に説明する。
【実施例１】
【００３２】
図２〜図３１を参照して第１実施例を説明する。本実施例では、複数のホストにより使用される仮想ボリュームは、ストレージ装置内の同一プールに基づいて作成される。プールは、性能の異なる複数の記憶階層を有する。管理サーバは、ホストの性能情報と実ページのアクセス情報とに基づいて、ページの再配置を行う。【００３３】
図２は、第１実施例による計算機システムの概略図を示す図である。計算機システム０１００は、複数のホスト０１０１と、少なくとも一つの管理サーバ０１０２と、少なくとも１つのストレージ装置０１０３と、を有している。ホスト０１０１と、ストレージ装置０１０３は、ＳＡＮ（Storage Area Network）０１０４によって接続されている。また、ホスト０１０１、管理サーバ０１０２、及びストレージ装置０１０３は、ＬＡＮ（Local Area Network）０１０５によって接続されている。【００３４】
（１）ホスト０１０１
ホスト０１０１は、ＣＰＵ０１１１と、メモリ０１１２と、を備える。ホスト０１０１は、ＳＡＮポート０１１５を有し、ＳＡＮポート０１１５によってＳＡＮ０１０４に接続されている。また、ホスト０１０１は、ＬＡＮポート０１１６を有し、ＬＡＮポート０１１６によってＬＡＮ０１０５に接続されている。【００３５】
図５は、ホスト０１０１のハードウェア構成を示す図である。ＣＰＵ０１１１は、メモリ０１１２に格納されているアプリケーション０１１３と、ホスト性能情報通知プログラム０１１４を実行することによって、各種処理を行う。【００３６】
メモリ０１１２は、アプリケーション０１１３と、ホスト性能情報通知プログラム０１１４と、ＣＰＵ０１１１がアプリケーション０１１３を実行する際に必要な情報（不図示）と、ＣＰＵ０１１１がホスト性能情報通知プログラム０１１４を実行する際に必要な情報（不図示）と、を格納する。ホスト性能情報通知プログラム０１１４は、例えば、ホストのＣＰＵ利用率またはネットワーク利用率のような性能情報を、所定サイクルで（例えば１０分に１回）、管理サーバ０１０２に通知する。【００３７】
（２）管理サーバ０１０２
管理サーバ０１０２は、ＣＰＵ０１２１と、メモリ０１２２と、補助記憶装置０１２３と、を備える。管理サーバ０１０２は、ＬＡＮポート０１２６を有し、ＬＡＮポート０１２６によってＬＡＮ０１０５に接続されている。【００３８】
図４は、管理サーバ０１０２のハードウェア構成を示す図である。ＣＰＵ０１２１は、メモリ０１２２に格納されているストレージ・ホスト管理プログラム０１２４を実行することによって、各種処理を行う。【００３９】
メモリ０１２２は、ストレージ・ホスト管理プログラム０１２４と、ストレージ・ホスト管理プログラム０１２４を実行する際に必要な情報（不図示）と、ストレージ管理情報０１２５と、を格納する。【００４０】
ストレージ・ホスト管理プログラム０１２４は、例えば、補助記憶装置０１２３に格納されているホスト性能情報と、ストレージ管理情報０１２５に格納されているストレージ装置０１０３の情報とから、ストレージ装置０１０３の記憶装置０１３３についての再配置プランを作成するプログラムである。【００４１】
ストレージ・ホスト管理プログラム０１２４は、例えば、入力情報登録０３０１と、ホスト性能履歴取得０３０２と、性能ボトルネック判別０３０３と、再配置プラン策定０３０４と、再配置０３０５と、を有する。各処理については後述する。簡単に説明すると、ホスト０１０１とストレージ装置０１０３とから情報を収集する処理と、収集した情報に基づいて、ストレージ装置０１０３の補助記憶装置０１３３に関する再配置プランを作成してストレージ装置０１０３に通知する処理と、を有する。【００４２】
ストレージ管理情報０１２５は、例えば、ＲＡＩＤグループ管理情報０３０６と、実領域管理情報０３０７と、仮想ボリューム管理情報０３０８と、Ｔｉｅｒ性能履歴情報０３０９と、再配置プラン管理情報０３１０と、Ｔｉｅｒ管理情報０３１１と、を有する。各情報については後述する。簡単に説明すると、管理サーバ０１０２の有するストレージ管理情報０１２５は、ストレージ装置０１０３の有するストレージ管理情報０１３５から、再配置プランの作成に必要な情報を抽出して格納したものである。【００４３】
補助記憶装置０１２３は、ストレージ・ホスト管理プログラム０１２４が収集または管理する情報を格納する。なお、補助記憶装置０１２３は、図中では１つで構成されているが、１つに限らず複数の補助記憶装置から構成されていてもよい。補助記憶装置０１２３としては、例えばＳＡＴＡ（Serial Advanced Technology Attatchment）ディスク、ＦＣ（Fibre Channel）ディスク、ＳＳＤ(Solid State Drive)等がある。【００４４】
なお、管理サーバ０１０２は、入力装置及び出力装置（不図示）を有する。出力装置は、例えば表示装置である。入出力装置の代替として、シリアルインターフェースまたはイーサーネットインターフェースを入出力装置としてもよい。そのインターフェースに、ディスプレイ及びキーボード（及び／又はポインタデバイス）を有する表示用計算機を接続してもよい。管理サーバ０１０２は、表示用情報を表示用計算機に送信して表示させたり、ユーザが表示用計算機に入力した情報を表示用計算機から受信したりできる。表示用計算機は、携帯電話、携帯情報端末、パーソナルコンピュータのように構成してもよい。管理サーバ０１０２は、複数のコンピュータから構成してもよい。【００４５】
（３）ストレージ装置０１０３
ストレージ装置０１０３は、ＳＡＮポート０１３６と、ＬＡＮポート０１３７とを有している。ストレージ装置０１０３は、ＳＡＮポート０１３６によってＳＡＮ０１０４に接続され、ＬＡＮポート０１３７によってＬＡＮ０１０５に接続されている。また、ストレージ装置０１０３は、ＣＰＵ０１３１と、メモリ０１３２と、少なくとも１つの補助記憶装置０１３３とを有している。【００４６】
図３は、ストレージ装置０１０３のハードウェア構成を示す図である。ＣＰＵ０１３１は、メモリ０１３２に格納されているストレージ制御プログラム０１３４を実行することによって、各種処理を行う。【００４７】
メモリ０１３２は、ストレージ制御プログラム０１３４と、ＣＰＵ０１３１がストレージ制御プログラム０１３４を実行する際に必要なストレージ管理情報０１３５を格納している。ストレージ制御プログラム０１３４は、例えば、他のストレージ装置から論理的に提供される論理ボリュームを、それがあたかもストレージ装置０１０３の固有の論理ボリュームであるかのようにホスト０１０１に見せかけるための処理も実行できる。【００４８】
補助記憶装置０１３３は、後述するようにストレージ制御プログラム０１３４により記憶領域として扱われる領域を提供する。補助記憶装置０１３３は、性能の異なる複数の記憶装置０２０９を備える。記憶装置０２０９は、例えば、ＳＡＴＡディスク、ＦＣディスク、ＳＳＤ等から構成される。同種の記憶装置０２０９の記憶領域をＲＡＩＤグループ０２１０としてグループ化し、グループ化された記憶領域を用いて、論理ボリュームを生成することができる。【００４９】
＜論理記憶領域の構成例＞
図６は、ストレージ制御プログラム０１３４の論理概念図である。ストレージ制御プログラム０１３４は、複数の補助記憶装置から論理記憶領域を構築する機能を有する。例えば、ストレージ制御プログラム０１３４は、ＲＡＩＤグループ０２１０、論理ボリューム０５０８、ストレージプール０５０１、及び仮想論理ボリューム０５０９のような、論理記憶領域を構築することができる。以下、各論理記憶領域について詳述する。【００５０】
ＲＡＩＤグループ０２１０は、複数の記憶装置０２０９から構成された論理記憶領域、即ち、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）であり、ストレージ制御プログラム０１３４により構築される。【００５１】
例えば、ストレージ制御プログラム０１３４は、管理サーバ０１０２から複数の補助記憶装置０１３３の何れにＲＡＩＤグループを構成するかについての指示、及びＲＡＩＤレベルの指示を入力パラメータとして受け付ける。ストレージ制御プログラム０１３４は、指定されたＲＡＩＤレベルを持つＲＡＩＤグループ０２１０を指定された補助記憶装置０１３３に構築することができる。様々なサイズのＲＡＩＤグループ０２０１を、混在させて作成することができる。【００５２】
論理ボリューム０５０８は、ＲＡＩＤグループ０２１０内の論理記憶領域であり、ストレージ制御プログラム０１３４により構築される。例えば、ストレージ制御プログラム０１３４は、管理サーバ０１０２から、作成元ＲＡＩＤグループ０２１０と作成する論理ボリューム０５０８のサイズとを入力値として受け付ける。ストレージ制御プログラム０１３４は、指定されたＲＡＩＤグループ０２１０から、指定されたサイズを持つ論理ボリューム０５０８を作成する。【００５３】
ストレージプール０５０１は、複数の論理ボリューム０５０８から構成された論理記憶領域であり、ストレージ制御プログラム０１３４により構築される。例えば、ストレージ制御プログラム０１３４は、管理サーバ０１０２から、プールを構成すべき複数の論理ボリューム０５０８を入力値として受け付ける。ストレージ制御プログラム０１３４は、指定された複数の論理ボリューム０５０８を用いて、ストレージプール０５０１を構築することができる。【００５４】
「実記憶領域」としての実領域（ＳＥＧ）０５０６は、ストレージプール０５０１から構成された１つ又は複数の論理記憶領域であり、ストレージ制御プログラム０１３４により構築される。実領域（ＳＥＧ）０５０６は、「実ページ」またはＳＥＧと呼ぶことがある。ＳＥＧ０５０６に格納されるデータは、そのページ（ＳＥＧ）を構成するストレージプール０５０１を介して、当該ストレージプール０５０１を構成する論理ボリューム０５０８へ格納される。【００５５】
「仮想的論理ボリューム」としての仮想ボリューム（ＶＶＯＬ）０５０９は、ストレージ制御プログラム０１３４により複数の仮想領域（ＶＳＥＧ）０５０２から構築された、論理記憶領域である。仮想ボリューム０５０９は、実容量以上の容量を持つ仮想ボリュームとして、ホスト０１０１に公開される。以下、仮想ボリュームは、図中ではＶＶＯＬと略記される場合がある。「論理記憶領域」としての仮想領域（ＶＳＥＧ）は、論理ページとも呼ばれ、後述のように、実ページ（ＳＥＧ）に対応付けられる。【００５６】
例えば、ストレージ制御プログラム０１３４は、管理サーバ０１０２から仮想ボリューム０５０９の容量を入力値として受け付けると、複数のＳＥＧ０５０６を用いて、指定された容量を持つ仮想ボリューム０５０９を構築する。【００５７】
各仮想ボリューム０５０９は、プール０５０１に関連付けられている。簡単に説明すると、ホスト０１０１が仮想ボリューム０５０９内のＶＳＥＧ０５０６にデータを書き込むと、プール０５０１から選択されたＳＥＧ０５０６が、その書込先のＶＳＥＧ０５０６に割り当てられる。ホスト０１０１からのライトデータは、割り当てられたＳＥＧ０５０６に書き込まれる。【００５８】
プール０５０１は、それぞれ性能の異なる複数の記憶階層を備える。プール０５０１は、例えば、第１階層（Ｔｉｅｒ１）０５０３、第２階層（Ｔｉｅｒ２）０５０４及び第３階層（Ｔｉｅｒ３）０５０５の３種類の記憶階層を備えることができる。【００５９】
第１階層０５０３は、最も高性能の記憶装置０２０９の有する複数の実領域（ＳＥＧ）０５０６から構成される。第１階層０５０３は、最上位階層と呼ぶこともできる。第２階層０５０４は、中程度の性能の記憶装置０２０９が有する複数の実領域（ＳＥＧ）０５０６から構成される。第２階層０５０４は、中位階層と呼ぶこともできる。第３階層０５０５は、最も低性能の記憶装置０２０９の有する複数の実領域（ＳＥＧ）０５０６から構成される。第３階層０５０５は、最下位階層と呼ぶこともできる。以降の説明では、第１階層０５０３と第２階層０５０４とを合わせて、上位Ｔｉｅｒと呼ぶことがある。【００６０】
ホスト０１０１が、実領域０５０６の割り当てられていない仮想領域（ＶＳＥＧ）０５０２にデータを書き込む場合、各階層０５０３、０５０４、０５０５のうちいずれかの階層に属する実領域０５０６が、ストレージ装置０１０３によって選択される。ストレージ装置０１０３は、選択した実領域０５０６を、書き込み対象の仮想領域０５０２に割り当てる。ストレージ装置０１０３は、仮想領域０５０２に割り当てられた実領域０５０６に、ホスト０１０１からのライトデータを書き込む。【００６１】
仮想ボリューム０５０９の仮想領域０５０２に割り当てられた実領域０５０６のデータは、そのデータの利用頻度に応じて、所属先の階層が変更される。ストレージ装置０１０３は、実領域０５０６へのアクセスに関する情報（または、仮想領域０５０２へのアクセスに関する情報と言い換えてもよい）に基づいて、定期的にまたは不定期に、その実領域０５０６のデータが所属する階層を変更する。【００６２】
例えば、アクセス頻度の高い仮想領域０５０２のデータは、ストレージ装置０１０３によって、高性能な階層に移動される。逆に、アクセス頻度の低い仮想領域０５０２のデータは、より低性能な階層に移動される。ストレージ装置０１０３は、データを記憶している実領域０５０６（コピー元）から、再配置先の階層に属する実領域０５０６（コピー先）へのデータコピーを行うことで、データの配置先を変更する。【００６３】
アクセス頻度の高いデータは、高性能な階層に記憶されるため、その応答時間は短縮される。さらに、アクセス頻度の低いデータを、高性能な階層から低性能な階層に移動することができるため、高性能な階層が無駄に使用されるのを防止し、効率的に使用することができる。【００６４】
＜ストレージ装置の処理の概要＞
ストレージ制御プログラム０１３４は、前述の論理記憶領域構成機能と、論理ボリューム割り当て機能と、仮想ボリューム拡張機能、及び性能情報収集機能を提供する。論理記憶領域構成機能とは、論理記憶領域を構成する機能である。論理ボリューム割当て機能とは、論理ボリューム０５０８および仮想ボリューム０５０９をホスト０１０１に割り当てる機能である。仮想ボリューム拡張機能とは、ボリュームを割り当てたホスト０１０１からのＩ／Ｏ命令に応じて、仮想ボリューム０５０９の仮想領域０５０２に実領域０５０６を割り当てる機能である。性能情報収集機能とは、ストレージリソースの性能情報を定期的に収集する機能である。【００６５】
ストレージ制御プログラム０１３４は、それらの機能に関する管理情報をストレージ管理情報０１３５に格納して管理する。また、ストレージ制御プログラム０１３４は、管理サーバ０１０２からの要求に応答して、他の各ストレージ装置（不図示）及びホスト０１０１に管理情報を送出する。管理サーバ０１０２からの要求は、例えば、ＬＡＮ０１０５を経由して、ストレージ制御プログラム０１３４に送信できる。【００６６】
ストレージ装置０１０３は、上述の各機能をストレージ制御プログラム０１３４によって実現する。ストレージ制御プログラム０１３４は、図３に示すように、仮想ボリューム管理プログラム０２０２と、性能モニタリングプログラム０２０１と、データ再配置プログラム０２０３と、を備える。【００６７】
仮想ボリューム管理プログラム０２０２は、仮想ボリューム０５０９の構成を管理するための機能である。仮想ボリューム管理プログラム０２０２は、仮想ボリューム０５０９を生成してホスト０１０１に対応付け、ホスト０１０１からのライトアクセスに応じて仮想領域０５０２にプール０５０１内の実領域０５０６を割り当てる。さらに、仮想ボリューム管理プログラム０２０２は、管理サーバ０１０２からの指示に基づいて、及び／または、データのアクセス頻度に基づいて、そのデータの再配置先を変更する。【００６８】
性能モニタリングプログラム０２０１は、各実領域０５０６の性能値を取得する。ここで、「性能」とは、例えば、アクセス性能である。アクセス性能としては、例えば、レスポンスタイム、データ転送速度、ＩＯＰＳ（単位時間当たりに処理したアクセス要求の数）がある。アクセス性能は、例えば、リード処理２４００またはライト処理２５００で取得する、アクセス頻度から計算する。【００６９】
図２５は、リード処理２４００を説明するためのフローチャートの例である。本処理は、ストレージ装置０１０３のストレージ制御プログラム０１３４により実行される。【００７０】
ストレージ制御プログラム０１３４は、リード要求（リードコマンド）をホスト０１０１から受信すると（ステップ２４０１）、処理開始時間をメモリ０１３２に一時的に（ステップ２４０７まで）保存し、リード処理を開始する。【００７１】
ステップ２４０２において、ストレージ制御プログラム０１３４は、リード要求が有するアクセス先情報を基に、データの読出し対象である仮想領域（以下、リード対象仮想領域）を特定する。【００７２】
ステップ２４０３において、ストレージ制御プログラム０１３４は、リード対象仮想領域のデータがストレージ装置０１０３のキャッシュメモリ（不図示）上に存在するか否かを判断する。リード対象仮想領域のデータがキャッシュメモリに記憶されている場合（ステップ２４０３：ＹＥＳ）、ステップ２４０６において、ストレージ制御プログラム０１３４は、キャッシュメモリ上のリード対象データを、ホスト０１０１に送信する。【００７３】
リード対象仮想領域がキャッシュメモリ上に無い場合（ステップ２４０３：ＮＯ）、ステップ２４０４において、ストレージ制御プログラム０１３４は、仮想ボリューム管理情報０２０６に基づいて、ステップ２４０２で特定されたリード対象仮想領域に割り当てられている実領域（以下、リード対象実領域）を特定する。【００７４】
ステップ２４０５において、ストレージ制御プログラム０１３４は、リード対象実領域からデータを読み出し、そのデータをキャッシュメモリに書き込む。さらに、ストレージ制御プログラム０１３４は、ステップ２４０６において、キャッシュメモリに書き込んだデータをホスト０１０１に送信する。【００７５】
ステップ２４０７において、ストレージ制御プログラム０１３４は、仮想ボリューム管理情報０２０２からリード対象仮想領域の再配置先判定結果１００７を取得し、リード処理の開始時に保存した処理開始時間とステップ２４０７実行時点との差分を、管理サーバ０１０２に送信する。管理サーバ０１０２は、受信した情報で、Ｔｉｅｒ性能履歴情報０３０９を更新する（ステップＳ２４０７）。Ｔｉｅｒ性能履歴情報０３０９の更新方法は、後述する。【００７６】
最後に、ステップ２４０８において、ストレージ制御プログラム０１３４は、仮想ボリューム管理情報０２０６において、リード対象仮想領域に対応するアクセス数１００５の値を更新する。【００７７】
図２６は、ライト処理２５００を説明するためのフローチャートの例である。本処理は、ストレージ制御プログラム０１３４により実行される。【００７８】
ストレージ制御プログラム０１３４は、ライト要求をホスト０１０１から受信すると、ライト処理を開始する（ステップ２５０１）。ステップ２５０２において、ストレージ制御プログラム０１３４は、ライト要求が有するアクセス先情報を基に、データを書き込む先の仮想領域（ライト対象仮想領域）を特定する。【００７９】
ストレージ制御プログラム０１３４は、ステップ２５０３において、ライト対象仮想領域に実領域が割り当てられているか否かを判断する。具体的には、ライト対象仮想領域が仮想ボリューム管理情報０２０６に登録されているか否かを判断する。【００８０】
ライト対象仮想領域に実領域が割り当てられている場合（ステップＳ２５０３：ＹＥＳ）、ステップ２５０６において、ストレージ制御プログラム０１３４は、ライト対象データを、ライト対象仮想領域に割り当てられている実領域に書き込む。【００８１】
ライト対象仮想領域に実領域が割り当てられていない場合（ステップＳ２５０３：ＮＯ）、ステップ２５０４において、ストレージ制御プログラム０１３４は、ライト対象仮想領域に割り当て可能な、未割当の実領域が存在するか否かを判断する。具体的には、ストレージ制御プログラム０１３４は、実領域管理情報０２０５の割当状況１６０３が「未割当て」に設定されている実領域が存在するか否かを判断する。【００８２】
ライト対象仮想領域に未割当の実領域が存在する場合（ステップ２５０４：ＹＥＳ）、ステップ２５０５において、ストレージ制御プログラム０１３４は、ライト対象仮想領域に未割当の実領域を割り当て、ライト対象データをその実領域に書き込む。【００８３】
ライト対象仮想領域に未割当の実領域が存在しない場合（ステップ２５０４：ＮＯ）、ステップ２５０８において、ストレージ制御プログラム０１３４は、ホスト０１０１にエラーを送信する。【００８４】
最後に、ストレージ制御プログラム０１３４は、ステップ２５０７において、仮想ボリューム管理情報０２０６において、ライト対象仮想領域に対応するアクセス数１００５の値を更新する。【００８５】
図３に示すデータ再配置プログラム０２０３は、管理サーバ０１０２の再配置処理０３０５で算出された仮想ボリューム管理情報０２０６の再配置先判定結果１００７と、仮想領域ＩＤ１００２と、実領域ＩＤ１００４と、に基づいて、仮想領域０５０２と実領域０５０６の対応付けを更新する。【００８６】
＜各管理情報の構成例＞
以下、ストレージ装置０１０３に格納されている管理情報について説明する。ストレージ装置０１０３は、図３に示すように、例えば、ＲＡＩＤグループ管理情報０２０４と、実領域管理情報０２０５と、仮想ボリューム管理情報０２０６と、を有する。【００８７】
（１）ＲＡＩＤグループ管理情報（図１４）
図１４は、ＲＡＩＤグループ０２１０の情報を管理するＲＡＩＤグループ管理情報０２０４の構成例を示す図である。ＲＡＩＤグループ管理情報０２０４は、例えば、ＲＡＩＤグループＩＤ１３０１と、デバイスタイプ１３０２と、ＲＡＩＤレベル１３０３と、記憶装置ＩＤ１３０４と、を構成項目として有している。【００８８】
ＲＡＩＤグループＩＤ１３０１は、ＲＡＩＤグループ０２１０を一意に特定または識別するための識別子である。デバイスタイプ１３０２は、ＲＡＩＤグループ０２１０を構成する記憶装置０２０９の種類を示す情報である。ＲＡＩＤレベル１３０３は、ＲＡＩＤグループ０２１０のＲＡＩＤレベル及びコンビネーションを示す情報である。記憶装置ＩＤ１３０４は、ＲＡＩＤグループ０２１０を構成する記憶装置０２０９を識別する情報である。図中では、記憶装置０２０９を「ＰＤＥＶ」と略記する場合がある。【００８９】
なお、以下に述べる各テーブル（情報）でも同様であるが、図示されたテーブルが含む項目の一部を他の項目に変更したり、新たな項目を追加したりしてもよい。さらに、一つのテーブルを複数のテーブルに分割することもできる。【００９０】
（２）実領域管理情報（図１７）
図１７は、実領域０５０６の情報を管理する実領域管理情報０２０５の構成例を示す図である。実領域管理情報０２０５は、例えば、ＲＡＩＤグループＩＤ１６０１と、実領域ＩＤ１６０２と、ＲＡＩＤグループＬＢＡ範囲１６０３と、割当て状況１６０４と、を構成項目として有している。【００９１】
ＲＡＩＤグループＩＤ１６０１は、ＲＡＩＤグループ０２１０を一意に特定または識別するための識別子である。実領域ＩＤ１６０２は、実領域０５０６を識別するための情報である。ＬＢＡ範囲１６０３は、実領域０５０６に対応する、ＲＡＩＤグループ０２１０のＬＢＡ（Logical Block Addressing）範囲を示す情報である。割当て状況１６０３は、実領域０５０６が仮想ボリューム０５０９に割当て済みか否かを示す情報である。【００９２】
（３）仮想ボリューム管理情報（図１１）
図１１は、仮想ボリューム０５０９を管理する仮想ボリューム管理情報０２０６の構成例を示す図である。仮想ボリューム管理情報０２０６は、仮想ボリューム０５０９内の各仮想領域０５０２と、その仮想領域０５０２に割り当てられている実領域０５０６とに関する情報を管理する。【００９３】
例えば、仮想ボリューム管理情報０２０６は、仮想ボリュームＩＤ１００１と、仮想領域ＩＤ１００２と、仮想ボリュームのＬＢＡ範囲１００３と、実領域ＩＤ１００４と、アクセス数１００５と、モニタリング期間１００６と、再配置先判定結果１００７とを対応付けて管理する。【００９４】
仮想ボリュームＩＤ（ＶＶＯＬ−ＩＤ）１００１は、仮想ボリューム０５０９を識別する情報である。仮想ボリュームＩＤ１００１は、ホスト０１０１から指定される識別子ではなく、ストレージ装置０１０３の内部で認識される識別子である。仮想領域ＩＤ１００２は、仮想領域０５０２を識別する情報である。【００９５】
仮想ボリュームのＬＢＡ範囲１００３は、仮想ボリューム０５０９の仮想領域０５０２に対応するＬＢＡ範囲を示す値である。実領域ＩＤ１００４は、仮想ボリューム０５０９の仮想領域０５０２に割り当てられている実領域０５０６を識別する情報である。【００９６】
アクセス数１００５は、仮想ボリューム０５０９内の仮想領域０５０２に対する、ホスト０１０１からのアクセス数（累計のＩ／Ｏ数）を示す情報である。アクセス数１００５は、仮想領域０５０２に対するアクセス回数である。ストレージ装置０１０３によるアクセス回数の監視は、モニタリング期間１００６に設定された時間範囲内で行われる。【００９７】
モニタリング期間１００６に特定の時間帯を示す値が設定されていない場合、ストレージ装置０１０３は、常時、アクセス回数の監視を行う。ストレージ装置０１０３は、モニタリングを開始するタイミングで、アクセス数１００５の値を０にリセットする。モニタリング期間１００６における監視結果を保存しない場合は、一定期間、例えば２４時間毎に、アクセス数１００５の値を０にリセットする。【００９８】
モニタリング期間１００６には、性能モニタリングプログラム０２０１によるモニタリング期間が登録される。性能モニタリングプログラム０２０１が、仮想ボリューム０５０９へのアクセス回数の監視と監視結果の保存とを行う時間範囲がモニタリング期間１００６に記憶される。モニタリング期間１００６の値は、予め固定値として与えることもできるし、または、管理サーバ３０から任意の値を設定することもできる。【００９９】
再配置先判定結果１００７には、再配置処理により判定された、データ再配置先の階層を示す情報が登録される。後述の再配置処理により、仮想ボリューム内の仮想領域に割り当てられるべき実領域を供給する階層が一つ決定される。再配置先判定結果１００７には、決定された階層を特定する識別情報が記憶される。【０１００】
＜管理サーバの論理構成＞
図４は、管理サーバ０１０２のメモリ０１２２及び補助記憶装置０１２３の論理構成例を示す図である。【０１０１】
メモリ０１２２に格納されるストレージ・ホスト管理プログラム０１２４は、入力情報登録プログラム０３０１と、ホスト性能履歴取得プログラム０３０２と、性能ボトルネック判別プログラム０３０３と、再配置プラン策定プログラム０３０４と、再配置指示プログラム０３０５と、性能情報取得プログラム０３１６を含んでいる。【０１０２】
メモリ０１２２に格納されるストレージ管理情報０１２５は、ＲＡＩＤグループ管理情報０３０６と、実領域管理情報０３０７と、仮想ボリューム管理情報０３０８と、Ｔｉｅｒ性能履歴情報０３０９と、再配置プラン管理情報０３１０と、Ｔｉｅｒ管理情報０３１１と、を含んでいる。【０１０３】
補助記憶装置０１２３は、ボトルネック閾値管理情報０３１２と、ホスト性能履歴管理情報０３１３と、Ｔｉｅｒ構成別レスポンスタイム管理情報０３１４と、仮想配置先管理情報０３１５と、を含んでいる。それらの管理情報０３１２〜０３１５は、再配置プラン作成プログラム０３０４が管理する。【０１０４】
管理サーバ０１０２の有するＲＡＩＤグループ管理情報０３０６と、実領域管理情報０３０７と、仮想ボリューム管理情報０３０８とは、ストレージ装置０１０３の有するＲＡＩＤグループ管理情報０２０４、実領域管理情報０２０５、仮想ボリューム管理情報０２０６に、それぞれ対応する。【０１０５】
管理サーバ０１０２内の各管理情報０３０６、０３０７、０３０８の構成は、対応する管理情報０２０４、０２０５、０２０６の構成と完全に一致している必要はない。管理サーバ０１０２は、ストレージ装置０１０３の管理情報０２０４、０２０５、０２０６から情報を取得して、管理情報０３０６、０３０７、０３０８に格納する。【０１０６】
（１）ＲＡＩＤグループ管理情報（図１３）
図１３は、管理サーバ０１０２の有するＲＡＩＤグループ管理情報０３０６の構成例を示す図である。ＲＡＩＤグループ管理情報０３０６は、ストレージ装置０１０３が有するＲＡＩＤグループ管理情報０２０４に対応しており、ＲＡＩＤグループ管理情報０２０４が有する情報を格納するために用いられる。【０１０７】
但し、ＲＡＩＤグループ管理情報０３０６が有する情報は、ＲＡＩＤグループ管理情報０２０４が有する情報と完全に一致している必要はない。ＲＡＩＤグループ管理情報０２０４の有する情報のうち一部の情報は、ＲＡＩＤグループ管理情報０３０６に格納しなくてもよい。【０１０８】
例えば、ＲＡＩＤグループ管理情報０３０６は、ＲＡＩＤグループ０２１０の識別子を表すＲＡＩＤグループＩＤ１２０１と、ＲＡＩＤグループ０２１０を構成する記憶装置０２０９の種類を表すデバイスタイプ１２０２と、ＲＡＩＤグループ０２１０のＲＡＩＤレベル及びコンビネーションを示すＲＡＩＤレベル１２０３と、を管理する。【０１０９】
（２）実領域管理情報
管理サーバ０１０２の有する実領域管理情報０３０７は、図１７に示すストレージ装置０１０３の有する実領域管理情報０２０５と同一構成にできるため、説明を省略する。従って、以下では図１７を参照して、管理サーバ側の実領域管理情報０３０７を説明する場合がある。【０１１０】
（３）仮想ボリューム管理情報（図１０）
図１０は、管理サーバ０１０２の有する仮想ボリューム管理情報０３０８の構成例を示す図である。仮想ボリューム管理情報０３０８は、例えば、仮想ボリュームＩＤ０９０１と、仮想領域ＩＤ０９０２と、仮想ボリュームのＬＢＡ範囲０９０３と、実領域ＩＤ０９０４と、ＩＯＰＳ０９０５と、配置先判定結果０９０６と、ホストＩＤ０９０７と、を備える。【０１１１】
項目０９０１、０９０２、０９０３、０９０４、０９０６は、図１１に示す仮想ボリューム管理情報０２０６の項目１００１、１００２、１００３、１００４、１００７に対応するため、説明を省略する。【０１１２】
管理サーバ０１０２の有する仮想ボリューム管理情報０３０８では、性能情報をモニタリングする期間についての項目（図１１の項目１００６）は不要であるため、含まれていない。ホストＩＤ０９０７は、仮想ボリュームＩＤ０９０１で指定される仮想ボリューム０５０９を使用するホスト０１０１の識別子を示す情報である。【０１１３】
ストレージ装置０１０３の有する仮想ボリューム管理情報０２０６では、アクセス数１００５に、仮想領域０５０２へのアクセス回数が記録される。これに対し、管理サーバ０１０２の有する仮想ボリューム管理情報０３０８では、ＩＯＰＳ０９０５に、管理サーバ０１０２が行う各処理において使用される、アクセス数に関連する値が記録される。例えば、ＩＯＰＳ０９０５には、前回処理時に計算された仮想領域のアクセス数の平均値（前回処理時の平均値）が記録される。【０１１４】
（４）Ｔｉｅｒ性能履歴情報（図７）
図７は、Ｔｉｅｒの性能履歴情報０３０９の構成例を示す図である。階層ＩＤ０６０１は、階層を一意に識別するためのＩＤである。レスポンスタイム０６０２は、これまでのＩ／Ｏレスポンスタイムの平均値を格納している。レスポンスタイム０６０２は、再配置プラン策定プログラム０３０４において、ホスト０１０１のレスポンスタイムと、プール０５０１のＩ／Ｏレスポンスタイムとを計算するために使用する情報である。Ｉ／Ｏ数０６０３は、レスポンスタイム０６０２の計算に使用したＩ／Ｏの総数を格納する。【０１１５】
新たにＩ／Ｏを実行するとき、性能履歴情報を以下の式１に従って更新する。【０１１６】
更新後のレスポンスタイム＝（更新前のレスポンスタイム＊Ｉ／Ｏ数＋新たに実行したＩ／Ｏのレスポンスタイム）／（Ｉ／Ｏ数＋１）・・・（式１）【０１１７】
更新後のＩ／Ｏ数０６０３は、更新前のＩ／Ｏ数に１を加えた値である。つまり、Ｉ／Ｏ毎のレスポンスタイムをそれぞれ記録するのではなく、式１を用いて、Ｔｉｅｒ毎に１つのレスポンスタイムを管理する。【０１１８】
（５）再配置プラン管理情報（図９）
図９は、再配置プランを管理する情報０３０４の構成例を示す図である。再配置プラン管理情報０３１０は、例えば、ホスト０１０１の識別子を示すホストＩＤ０８０１と、ホスト０１０１が使用可能な第１階層の容量を示すＴｉｅｒ１容量０８０２と、ホスト０１０１が使用可能な第２階層の容量を示すＴｉｅｒ２容量０８０３と、を有する。【０１１９】
Ｔｉｅｒ１容量０８０２とＴｉｅｒ２容量０８０３には、再配置プラン策定プログラム０３０４において計算された値が格納される。Ｔｉｅｒ１容量０８０２とＴｉｅｒ２容量０８０３とは、再配置指示プログラム０３０５において使用される。再配置指示プログラム０３０５は、各階層の割当てが容量０８０２、０８０３で規定する値を超えないように、再配置指示プログラム０３０５を実行する。【０１２０】
（６）Ｔｉｅｒ管理情報（図１５）
図１５は、管理サーバ０１０２の有するＴｉｅｒ管理情報０３１１の構成例を示す図である。Ｔｉｅｒ管理情報０３１１は、第１階層（Ｔｉｅｒ１）０５０３と、第２階層（Ｔｉｅｒ２）０５０４と、第３階層（Ｔｉｅｒ３）０５０５の、性能要件を管理する。Ｔｉｅｒ管理情報０３１１は、ユーザ（システム管理者）からの要求に応じて更新することができる。【０１２１】
Ｔｉｅｒ管理情報０３１１は、階層ＩＤ１４０１と、性能要件１４０２と、空き実領域数１４０３を備える。階層ＩＤ１４０１には、各階層の識別子が設定される。性能要件１４０２には、各階層の性能要件を表す値が設定される。空き実領域１４０３には、各階層の実領域のうち、未割当ての実領域の総数を表す値が設定される。【０１２２】
性能要件１４０２は、例えば、記憶装置０２０９のデバイスタイプと、ＲＡＩＤグループ０２１０のＲＡＩＤレベルとの組合せとして定義することができる。さらに、アクセス速度等の他の性能パラメータを性能要件に含めてもよい。【０１２３】
（７）ボトルネック閾値管理情報（図８）
図８は、ホスト０１０１のボトルネック閾値を管理する情報０３１２の構成例を示す図である。例えば、ホスト性能履歴管理情報０３１３は、ホスト０１０１の識別子を示すホストＩＤ０７０１と、ホスト０１０１のＣＰＵ利用率閾値０７０２と、ホスト０１０１の性能ボトルネック条件の期間０７０３と、Ｉ／Ｏレスポンスタイムの目標値０７０４と、を有する。Ｉ／Ｏレスポンスタイムの目標値０７０４は、ホスト０１０１が性能ボトルネックの場合に使用される目標レスポンスタイムである。【０１２４】
ＣＰＵ利用率閾値０７０２は、性能ボトルネック判別プログラム０３０３において、ＣＰＵボトルネックを判別するために使用する値である。例えば、ホストＩＤ０７０１で指定されたホスト０１０１のＣＰＵ利用率が、ＣＰＵ利用率閾値０７０２を超え、かつ、ＣＰＵ利用率閾値０７０２を超えた期間が、期間０７０３で指定された期間以上である場合に、ホスト０１０１はＣＰＵボトルネックであると判別する。【０１２５】
図８では、ＣＰＵ利用率閾値０７０２と期間０７０３とから性能ボトルネックを規定している。これに代えて、例えば、ネットワーク利用率などの他の指標を用いて、性能ボトルネックを判定しても良い。さらに他の指標を用いてもよく、複数の指標を組み合わせて性能ボトルネックを判定してもよい。【０１２６】
Ｉ／Ｏレスポンスタイム目標値０７０４は、性能ボトルネックであると判別されたホスト０１０１のＩ／Ｏレスポンスタイムを減少させるための目標値である。再配置プラン策定プログラム０３０４が、性能ボトルネックの有無を判定する。再配置プラン策定プログラム０３０４の詳細は後述する。【０１２７】
ボトルネック閾値管理情報０３１２の各項目０７０１〜０７０４の値は、図２８で後述するホスト性能ボトルネック設定画面２７００を介して、ユーザが設定する。【０１２８】
（８）ホスト性能履歴管理情報（図１２）
図１２は、ホストの性能履歴を管理する情報０３１３の構成例を示す図である。例えば、ホスト性能履歴管理情報０３１３は、ホストＩＤ１１０１と、ＣＰＵ利用率１１０２と、性能情報取得日時１１０３と、ボトルネック１１０４と、を有する。【０１２９】
ホストＩＤ１１０１は、ホスト０１０１を一意に識別するための識別子である。ＣＰＵ利用率１１０２は、性能情報取得日時１１０３における、ホスト０１０１のＣＰＵ利用率を示す情報である。性能情報取得日時１１０３は、ホスト０１０１の性能情報を取得した日時を示す情報である。ボトルネック１１０４は、ホスト０１０１の性能ボトルネックになっている構成要素を示す情報である。【０１３０】
図１２では、ＣＰＵ利用率１１０２のみを記述しているが、例えば、ネットワーク利用率などのように性能ボトルネックになり得る他の指標に変更しても良い。また、複数の指標を組み合わせて使用する構成でもよい。【０１３１】
ホスト性能履歴管理情報０３１３は、管理サーバ０１０２が、ホスト０１０１の性能データを受信した時に、管理サーバ０１０２により更新される。ホスト０１０１は、ホスト性能情報通知プログラム０１１４を実行し、管理サーバ０１０２にホストの性能データを定期的に送信する。ホストは、性能データを例えば１０分毎に管理サーバに送信することができる。【０１３２】
（９）Ｔｉｅｒ構成別レスポンスタイム管理情報（図１６）
図１６は、Ｔｉｅｒの構成別にレスポンスタイムを管理する情報０３１４の構成例を示す図である。Ｔｉｅｒ構成別レスポンスタイム管理表０３１４は、例えば、構成プランＩＤ１５０１と、第１階層（Ｔｉｅｒ１）１５０２と、第２階層（Ｔｉｅｒ２）１５０３と、プールレスポンスタイム１５０４と、を有する。【０１３３】
構成プランＩＤ１５０１は、Ｔｉｅｒ１１５０２とＴｉｅｒ２１５０３との組合せである構成プランを、一意に識別するための識別子である。Ｔｉｅｒ１  １５０２及びＴｉｅｒ２  １５０３は、再配置プラン策定プログラム０３０４が使用する情報であり、再配置プラン管理情報０３１０のＴｉｅｒ１容量０８０２及びＴｉｅｒ２容量０８０３に対応する。プールレスポンスタイム１５０４は、プール０５０１のレスポンスタイムを示す情報である。【０１３４】
（１０）仮想配置先管理情報（図２９）
図２９は、仮想領域０５０２のＴｉｅｒ配置先を管理する情報０３１５の構成例を示す図である。例えば、仮想配置先管理情報０３１５は、仮想領域ＩＤ３２０１と、仮想配置先３２０２と、を有する。【０１３５】
仮想領域ＩＤ３２０１は、仮想領域０５０２を一意に識別するための識別子である。仮想配置先３２０２は、仮想再配置プログラム３３００により判定された、データ再配置先の階層を示す情報が登録される。図３０で後述する仮想再配置プログラム３３００により、仮想ボリューム内の仮想領域に割り当てられるべき実領域を供給する階層が一つ決定される。仮想配置先３２０２には、決定された階層を特定する識別情報が記憶される。【０１３６】
＜管理サーバによる処理の概要＞
図１８は、管理サーバ０１０２が実行する処理の概要を説明するためのフローチャートである。この処理において、管理サーバは、性能情報取得プログラム０３１６と、再配置プラン策定プログラム０３０４と、再配置指示プログラム０３０５を実行する。以下、処理の主体を、プログラムまたは管理サーバであるとして説明する。【０１３７】
管理サーバは、図１８の処理に入力する情報を取得するために、入力情報登録プログラム０３０１と、ホスト性能履歴取得プログラム０３０２と、性能ボトルネック判別プログラム０３０３と、を有する。【０１３８】
入力情報登録プログラム０３０１は、ユーザから、ホストのボトルネック閾値を取得するためのものである。ホスト性能履歴取得プログラム０３０２は、ホストから性能情報を取得するためのものである。性能ボトルネック判別プログラム０３０３は、ホストの性能ボトルネックを判別するためのものである。【０１３９】
ステップ１７０４において、管理サーバ０１０２は、ＩＯＰＳを算出して、仮想ボリューム管理情報０３０８のＩＯＰＳ９０５に格納する。具体的には、管理サーバは、ストレージ装置０１０３から、ＬＡＮ０１０５を経由して、仮想ボリューム管理情報０２０６のアクセス数１００５及びモニタリング期間１００６を取得する。管理サーバは、それらアクセス数及びモニタリング期間からＩＯＰＳを計算し、仮想ボリューム管理情報０３０８のＩＯＰＳ０９０５に格納する。【０１４０】
ステップ１７０１において、管理サーバは、性能ボトルネックの発生しているホストを、再配置プランの策定対象となるホスト（以下、対象ホスト）として選択する。対象ホストは「所定のホスト計算機」に該当する。【０１４１】
管理サーバ０１０２は、定期的にホスト性能履歴取得プログラム０３０２を実行して取得した性能情報と、性能ボトルネック判別プログラム０３０３で判別した性能ボトルネックのあるホストの情報とに基づき、再配置プラン策定プログラム０３０４の実行対象となるホストを選択する。【０１４２】
ステップ１７０２において、管理サーバは、再配置プラン策定プログラム０３０４により、Ｔｉｅｒ割当てのシミュレーションを行う。管理サーバは、対象ホストのＩ／Ｏレスポンスタイムが、入力情報登録プログラム０３０１で指定したＩ／Ｏレスポンスタイム目標値０７０４よりも遅くなる再配置プランを求め、再配置プラン管理情報０３１０に登録する。ステップ１７０３において、管理サーバは、ステップ１７０２で求めた再配置プラン管理情報０３１０に基づき、再配置指示プログラム０３０５を実行する。【０１４３】
以上のように、本実施形態における主な処理では、各装置０１０１、０１０３から必要な所定の情報を収集し、それらの情報に基づいて、性能ボトルネックを有するホストに割当てる上位階層（Ｔｉｅｒ１、Ｔｉｅｒ２）の容量を制限する。さらに、本実施形態の主な処理では、前記制限により未割当て状態となった上位階層の実領域を、性能ボトルネックの発生していない他のホストに割当てる。これにより、本実施形態では、性能の異なる複数階層を有するプール０５０１全体のレスポンスタイムを最適化できる。【０１４４】
今後、ＳＳＤ（Solid State Drive）のように高速なＩ／Ｏ処理が可能な記憶装置の活用が広まり、その結果、アプリケーションにとってのボトルネックは、Ｉ／Ｏ処理速度よりも、ＣＰＵ速度またはネットワーク通信速度に移動すると予想される。本実施形態は、ＣＰＵボトルネックと連動して階層再配置を行い、プールのレスポンスタイムを最適化するため、効果を発揮するであろう。【０１４５】
（１）性能情報取得プログラム
図２３は、管理サーバ０１０２が仮想ボリューム（ＶＶＯＬ）０５０９の性能情報を取得する処理を説明するフローチャートの例である。管理サーバの性能情報取得プログラム０３１６は、まず最初にステップ２２０１において、仮想ボリューム管理情報０３０８のＩＯＰＳ０９０５のデータを削除する処理を行う。【０１４６】
続いて、管理サーバ（詳しくは、性能情報取得プログラム０３１６）は、ステップ２２０３−２２０５を、全ＶＶＯＬ０５０９の全ＶＳＥＧ０５０２について繰り返す（ステップ２２０２）。【０１４７】
ステップ２２０３において、管理サーバは、仮想ボリューム管理情報（ストレージ側）０２０６のアクセス数１００５及びモニタリング期間１００６を取得する。ステップ２２０４において、管理サーバは、アクセス数１００５とモニタリング期間１００６とから、ＩＯＰＳを計算する。ステップ２２０５において、管理サーバは、仮想ボリューム管理情報（管理側）０３０８のＩＯＰＳ０９０５に、ステップ２２０４で算出したＩＯＰＳを格納する。【０１４８】
（２）再配置プラン策定プログラム
図２１は、管理サーバが再配置プランを策定する処理を説明するためのフローチャートの例である。再配置プラン策定プログラム０３０４は、図１８のステップ１７０１から始まるループの中で、繰り返し実行される。以下、再配置プラン策定プログラム０３０４のフローチャートの説明においては、図１８のステップ１７０１で選択されたホストを対象ホストと呼ぶことにする。【０１４９】
管理サーバ０１０２の再配置プラン策定プログラム０３０４は、まず最初にステップ２００１において、Ｔｉｅｒ構成別レスポンスタイム管理表０３１４（図１６参照）のデータを削除し、Ｔｉｅｒ構成別レスポンスタイム管理表０３１４を初期化する。【０１５０】
ステップ２００２−ステップ２００８において、管理サーバは、対象ホストが使用する仮想領域（ＶＳＥＧ）０５０２に割当てる実領域（ＳＥＧ）０５０６について、各Ｔｉｅｒに属するＳＥＧの数の全ての組合せの中から、所定のＴｉｅｒの組合せを求める。【０１５１】
管理サーバは、Ｔｉｅｒ１、Ｔｉｅｒ２、及びＴｉｅｒ３にそれぞれ属するＳＥＧの数の全組合せの中から、対象ホストのレスポンスタイムがＩ／Ｏレスポンスタイム目標値０７０４より遅く、かつ、プールのレスポンスタイムが最も速くなるＴｉｅｒの組合せを求める。【０１５２】
なお、ステップ２００２−２００８の処理は、その全てがシミュレーションとして実行される。再配置プランを作成する時点においては、ストレージ装置０１０３の有する仮想ボリューム０５０９のＴｉｅｒ割当ては、実際には変更されない。以下、各ステップを詳細に説明する。【０１５３】
管理サーバは、ステップ２００２で作成した各Ｔｉｅｒ容量の組合せのうちの一つの組合せについて、ステップ２００４−ステップ２００８までを繰り返し実行する。各Ｔｉｅｒの容量の組合せを作る処理は、対象ホストのＩ／ＯレスポンスタイムがＩ／Ｏレスポンスタイム目標値０７０４以上であり、かつ、プールレスポンスタイム１５０４が最小である、Ｔｉｅｒ１割当てサイズ１５０２及びＴｉｅｒ２割当てサイズ１５０３の組合せを作ることが可能であれば、どのような処理であっても良い。【０１５４】
例えば、対象ホストに割当てるＳＥＧ０５０６の総数と、対象ホストに割当てる、Ｔｉｅｒ１、Ｔｉｅｒ２、及びＴｉｅｒ３のそれぞれのページの総数とが一致するように、Ｔｉｅｒ１、Ｔｉｅｒ２、Ｔｉｅｒ３の全組合せを順番に作る処理であっても良い。それらの考えられる全ての組合せのうち、Ｉ／Ｏレスポンスタイム目標値０７０４以上であり、かつ、プールレスポンスタイム１５０４が最小となる組合せを抽出すればよい。【０１５５】
ステップ２００４では、管理サーバは、ステップ２００２で指定したＴｉｅｒ１の容量及びＴｉｅｒ２の容量と、仮想ボリューム管理情報０３０８のＩＯＰＳ０９０５とに基づいて、仮想再配置プログラム３３００を行う。【０１５６】
図３０は、仮想再配置プログラム３３００を説明するフローチャートの例である。仮想再配置プログラム３３００は、ＶＳＥＧ０５０２に割り当てるべきＴｉｅｒを決定する処理である。図３０の詳細は後述する。【０１５７】
仮想再配置プログラム３３００は、仮想ボリューム管理情報０３０８のＩＯＰＳ０９０５の値が大きいＶＳＥＧ０５０２から順に、上位Ｔｉｅｒに仮想的に割当てる。割り当てるＴｉｅｒは、Ｔｉｅｒ１  ０５０３と、Ｔｉｅｒ２  ０５０４と、Ｔｉｅｒ３  ０５０５の何れか１つである。仮想再配置プログラム３３００は、Ｔｉｅｒ１、Ｔｉｅｒ２、Ｔｉｅｒ３の順でＶＳＥＧ０５０２に仮想的に割当て、割当てた結果を仮想配置先管理情報０３１５（図２９参照）に格納する。【０１５８】
仮想再配置プログラム３３００は、対象ホストに割り当てるＴｉｅｒ１の容量が、ステップ２００２で指定したＴｉｅｒ１の最大値を超えないことを保証する。同様に、仮想再配置プログラム３３００は、対象ホストに割り当てるＴｉｅｒ２の容量が、ステップ２００２で指定したＴｉｅｒ２の最大値を超えないことを保証する。【０１５９】
仮想再配置プログラム３３００は、後述する再配置指示プログラム０３０５と類似した処理を行う。仮想再配置プログラム３３００と再配置指示プログラム０３０５とは、計算結果である配置先を格納する場所が異なる。再配置指示プログラム０３０５は、仮想ボリューム管理情報（管理側）０３０８に配置先を格納する。これに対し、仮想再配置プログラム３３００は、仮想配置先管理情報０３１５に配置先を格納する。【０１６０】
ステップ２００５では、管理サーバの再配置プラン策定プログラム０３０４は、対象ホストのＩ／Ｏレスポンスタイムを、Ｉ／Ｏレスポンスタイム計算プログラム２１００により計算する。【０１６１】
図２２は、Ｉ／Ｏレスポンスタイムの計算処理を説明するためのフローチャートの例である。Ｉ／Ｏレスポンスタイム計算プログラム２１００は、計算対象の全ページについて以下のステップ２１０１〜２１０３を実行する。【０１６２】
Ｉ／Ｏレスポンスタイム計算プログラム２１００は、仮想ボリューム管理情報０３０８からＩＯＰＳ０９０５を取得し（ステップ２１０１）、続いて、仮想配置先管理情報３２００から仮想配置先３２０２を取得する（ステップ２１０２）。さらに、Ｉ／Ｏレスポンスタイム計算プログラム２１００は、Ｔｉｅｒ性能履歴情報０３０９からレスポンスタイム０６０２を取得する（ステップ２１０３）。【０１６３】
Ｉ／Ｏレスポンスタイム計算プログラム２１００は、下記の式２に基づいて、Ｉ／Ｏレスポンスタイムを算出する（ステップ２１０４）。【０１６４】
Ｉ／Ｏレスポンスタイム＝Σ｛計算対象のページ｝（IOPS＊ページの配置されているTierのレスポンスタイム）／（計算対象の全ページのIOPSの総和）・・・（式２）【０１６５】
ここで、上記式２のΣ｛Ｘ｝（Ｙ）は、Ｘの各要素についてＹの計算を行い、その総和を表す式である。【０１６６】
対象ホストのＩ／Ｏレスポンスタイムは、式２において、計算対象のページを、ホストに割当てられた仮想ボリューム０５０９の持つ仮想領域０５０２として算出すれば、求めることができる。プールのＩ／Ｏレスポンスタイムは、式２において、計算対象のページを、プール０５０１の全仮想ボリューム０５０９が有する仮想領域０５０２として計算すれば、求められる。【０１６７】
ステップ２００６では、管理サーバの再配置プラン策定プログラム０３０４は、ステップ２００５で計算した対象ホストのＩ／Ｏレスポンスタイムが、ボトルネック閾値管理表０３１２のＩ／Ｏレスポンスタイム目標値０７０４以上であるか否かを判定する。【０１６８】
対象ホストのＩ／Ｏレスポンスタイムが目標値０７０４以上であれば（ステップ２００６：ＹＥＳ）、管理サーバは、ステップ２００７において、プールのレスポンスタイムを計算する。管理サーバは、ステップ２００８において、Ｔｉｅｒ構成別レスポンスタイム管理情報０３１４に、現在のＴｉｅｒ構成とプールのレスポンスタイムを追加する。【０１６９】
管理サーバは、ステップ２００４からステップ２００８までを繰り返し、ホストのＩ／ＯレスポンスタイムがＩ／Ｏレスポンスタイム目標値０７０４以上となるＴｉｅｒの組合せを網羅し、Ｔｉｅｒ構成別レスポンスタイム管理情報０３１４に格納する。【０１７０】
最後に、管理サーバは、ステップ２００９で、Ｔｉｅｒ構成別レスポンスタイム管理情報０３１４から、プールレスポンスタイム１５０４が最小となる上位Ｔｉｅｒの組合せ（Ｔｉｅｒ１  １５０２、Ｔｉｅｒ２  １５０３）を探し出し、再配置プラン管理情報０３１０のうちホストＩＤ０８０１が対象ホストであるデータを更新する。【０１７１】
管理サーバは、Ｔｉｅｒ１容量０８０２にＴｉｅｒ１  １５０２の値を格納し、Ｔｉｅｒ２容量０８０３にＴｉｅｒ２  １５０３の値を格納する。【０１７２】
（３）再配置指示プログラム
図２４は、再配置指示プログラム０３０５を説明するフローチャートの例である。再配置指示プログラム０３０５は、管理サーバ０１０２により決定された割当て結果（どのＶＳＥＧをどのＴｉｅｒに割り当てるか）を、ストレージ装置０１０３に送信し、ストレージ装置０１０３により再配置処理を実行させる。【０１７３】
ストレージ装置０１０３は、管理サーバで決定された割当て結果に基づいて、ＶＳＥＧ０５０２をＳＥＧ０５０６に割当てる。【０１７４】
再配置指示プログラム０３０５は、仮想ボリューム管理情報０３０８のＩＯＰＳ０９０５の値が大きいＶＳＥＧ０５０２から順に、Ｔｉｅｒに割当てる。Ｔｉｅｒは、Ｔｉｅｒ１  ０５０３と、Ｔｉｅｒ２  ０５０４と、Ｔｉｅｒ３  ０５０５のＴｉｅｒと、の何れか１つである。管理サーバ０１０２は、Ｔｉｅｒ１、Ｔｉｅｒ２、Ｔｉｅｒ３の順にＶＳＥＧ０５０２に割当てるべきＴｉｅｒを決定する。【０１７５】
再配置指示プログラム０３０５は、再配置プラン管理情報０３１０のＴｉｅｒ１容量０８０２とＴｉｅｒ２容量０８０３とが指定されている場合、その指定値に基づき、ホストに割当てるＴｉｅｒ１の容量とＴｉｅｒ２の容量が、それぞれ指定された値を超えないことを保証する。【０１７６】
ステップ２３０１では、管理サーバの再配置指示プログラム０３０５は、仮想ボリューム管理情報０３０８の再配置先判定結果０９０６の値を削除する。そして、管理サーバは、ＲＡＩＤグループ管理情報０３０６と、管理サーバの実領域管理情報０３０７と、Ｔｉｅｒ管理情報０３１１と、から、各ＴｉｅｒのＳＥＧ数の総数をカウントする（ステップ２３０１）。管理サーバは、カウントした値を、Ｔｉｅｒ管理情報０３１１の空き実領域数１４０３に格納する（ステップ２３０１）。なお、カウントの際には、割当て状況１６０３が「割当て済み」となっているデータもカウントする。【０１７７】
再配置指示プログラム０３０５は、ステップ２３０３―ステップ２３０５を、仮想ボリューム管理情報０３０８のＩＯＰＳ０９０５の値が大きいＶＳＥＧ順に実行する（ステップ２３０２）。【０１７８】
ステップ２３０３では、例えば、仮想ボリューム管理情報０３０８の、仮想領域ＩＤ０９０２及びホストＩＤ０９０７から、ＶＳＥＧ０５０２とホスト０１０１との対応関係を取得する。以下、対応関係のあるホストを対象ホストと呼ぶ。そして、管理サーバは、Ｔｉｅｒ管理情報０３１１を用いて、空き実領域数１４０３の値が１以上である、最も上位のＴｉｅｒを、配置先として選択する（ステップ２３０３）。【０１７９】
ステップ２３０４では、管理サーバは、再配置プラン管理情報０３１０のＴｉｅｒ１容量０８０２が対象ホストに指定されている場合、仮想ボリューム管理情報０３０８を参照して、対象ホストのＴｉｅｒ１割当量がＴｉｅｒ１容量０８０２を超えていないことを確認する。対象ホストのＴｉｅｒ１割当量がＴｉｅｒ１容量０８０２を超えている場合、管理サーバは、ＶＳＥＧの配置先を、Ｔｉｅｒ１から一つ下の階層であるＴｉｅｒ２に変更する。【０１８０】
同様に、対象ホストに再配置プラン管理情報０３１０のＴｉｅｒ２容量０８０３が指定されている場合、管理サーバは、仮想ボリューム管理情報０３０８を参照して、対象ホストのＴｉｅｒ２割当量がＴｉｅｒ２容量０８０３を超えていないことを確認する。対象ホストのＴｉｅｒ２割当量がＴｉｅｒ２容量０８０３を超えている場合、管理サーバは、ＶＳＥＧの配置先を、Ｔｉｅｒ２から一つ下の階層であるＴｉｅｒ３に変更する。【０１８１】
ステップ２３０５では、管理サーバは、再配置先判定結果０９０６の値を配置先Ｔｉｅｒに更新し、配置先Ｔｉｅｒの空き実領域数１４０３の値を１つ減らす。【０１８２】
ステップ２３０６で、ストレージ装置０１０３は、仮想ボリューム管理情報０２０６の再配置先判定結果１００７に基づき、データ再配置プログラム０２０３を実行する。【０１８３】
図３１は、図２４にステップ２３０６として示す実領域割当ての処理を説明するためのフローチャートの例である。再配置指示プログラム０３０５は、全てのＶＳＥＧ０５０２について、ＩＯＰＳの高い順に以下のステップ４００２〜ステップ４００７を実行する（ステップ４００１）。【０１８４】
以後、実行対象のＶＳＥＧを対象ＶＳＥＧと呼ぶ。また、対象ＶＳＥＧの再配置先判定結果０９０６を配置先と呼ぶ。【０１８５】
ステップ４００２では、管理サーバは、ＲＡＩＤグループ管理情報０３０６と、管理サーバ０１０２の実領域管理情報０３０７と、Ｔｉｅｒ管理情報０３１１とから、対象ＶＳＥＧに割り当てられているＴｉｅｒを取得する。【０１８６】
管理サーバは、対象ＶＳＥＧに割り当てられているＴｉｅｒと配置先Ｔｉｅｒとが一致しているか否かを確認する（ステップ４００２）。両者が一致した場合（ステップ４００２：ＹＥＳ）、管理サーバは、次のＶＳＥＧを処理対象とする。両者が一致しなかった場合（ステップ４００２：ＮＯ）、管理サーバは、ステップ４００３を実行する。【０１８７】
ステップ４００３では、管理サーバは、ＲＡＩＤグループ管理情報０３０６と、実領域管理情報０３０７と、Ｔｉｅｒ管理情報０３１１とから、配置先として指示されたＴｉｅｒ内に未割当てのＳＥＧ０５０８があるか確認する。【０１８８】
未割当てのＳＥＧ０５０８が有る場合（ステップＳ４００３：ＹＥＳ）、管理サーバは、ステップ４００４において、未割当てのＳＥＧの中から１つのＳＥＧを選択し、選択したＳＥＧ（移行先）に、対象ＶＳＥＧ０５０２に割当てられているＳＥＧ（移行元）のデータを移行させる。【０１８９】
データの配置先を変えるために、再配置指示プログラム０３０５は、移行元ＳＥＧから移行先ＳＥＧにデータを移行するように、ストレージ装置０１０３に指示する。ストレージ装置０１０３のストレージ制御プログラム０１３４は、再配置指示プログラム０３０５からの指示を受信すると、移行元ＳＥＧ０５０８から移行先ＳＥＧ０５０８にデータを移行する。【０１９０】
未割当てのＳＥＧ０５０８が無い場合（ステップ４００３：ＮＯ）、管理サーバは、ステップ４００５を実行する。ステップ４００５において、管理サーバは、ＲＡＩＤグループ管理情報０３０６と、実領域管理情報０３０７と、Ｔｉｅｒ管理情報０３１１とから、配置先Ｔｉｅｒに、入れ替え可能な実領域（ＳＥＧ）があるか否かを判定する。【０１９１】
具体的には、管理サーバは、配置先として指示されたＴｉｅｒ内の割当て済みＳＥＧの中から、そのＳＥＧが割り当てられているＶＳＥＧに対応する再配置先判定結果０９０６が、実領域ＩＤ０９０４で指定されているＳＥＧのＴｉｅｒと一致するものが存在するか否かを判定する。【０１９２】
例えば、管理サーバは、Ｔｉｅｒ２からＴｉｅｒ１にＶＳＥＧ０５０２を移行させる場合に、Ｔｉｅｒ１の割当済みＳＥＧ０５０８に対応するＶＳＥＧ０５０２のうち、Ｔｉｅｒ２への移行が予定されているＶＳＥＧ０５０２が有るか否かを判定する。【０１９３】
配置先Ｔｉｅｒに入れ替え可能な領域がある場合（ステップ４００５：ＹＥＳ）、管理サーバは、ステップ４００６を実行する。【０１９４】
入れ替え可能な領域が無い場合（ステップ４００５：ＮＯ）、管理サーバは、ステップ４００７において、配置先Ｔｉｅｒに性能が最も近い他のＴｉｅｒ内の未割当のＳＥＧを選択する（ステップ４００７）。管理サーバは、性能の近いＴｉｅｒ内の未割当てＳＥＧに、対象ＶＳＥＧに割り当てられているＳＥＧのデータを移行させる。具体的なデータの移行方法は、ステップ４００４で述べたと同様である。【０１９５】
ステップ４００６では、管理サーバの再配置指示プログラム０３０５は、対象ＶＳＥＧのＳＥＧと、入れ替え可能なＶＳＥＧのＳＥＧのデータとを入れ替えるように、ストレージ装置０１０３のストレージ制御プログラム０１３４に指示する。ストレージ制御プログラム０１３４は、再配置指示プログラム０３０５からの指示を受信すると、指定された各実領域間でデータを入れ替る。【０１９６】
ステップ４００４と、ステップ４００６と、ステップ４００７とでは、管理サーバは、データ移行後またはデータ入れ替え後、データ移行先のＳＥＧ０５０８の割当て状況１６０３を「割当済み」に更新する。【０１９７】
さらに、管理サーバは、仮想ボリューム管理情報０３０８の実領域ＩＤを、選択したＳＥＧ０５０８に更新する。管理サーバは、ステップ４００４とステップ４００７とで、データ移行元のＳＥＧ０５０８の割当て状況１６０３を「未割当て」に更新する。【０１９８】
最後に、図２４のステップ２３０７では、ストレージ装置０１０３が、管理サーバ０１０２から、仮想領域ＩＤ０９０２と、実領域ＩＤ０９０４と、再配置先判定結果０９０６と、を取得する。ストレージ装置は、仮想ボリューム管理情報０２０６のうち、仮想領域ＩＤ１００２が仮想領域ＩＤ０９０２と対応するデータに、実領域ＩＤ１００４と再配置先判定結果１００７とを格納する（ステップ２３０７）。【０１９９】
（４）入力情報登録プログラム
図２７は、入力情報登録プログラム０３０１を示すフローチャートの例である。入力情報登録プログラム０３０１は、ユーザがホスト性能ボトルネック設定画面２７００（図２８参照）から入力した情報を、ボトルネック閾値管理情報０３１２に格納するための処理を行う。【０２００】
図２８の画面２７００は、ユーザがホストの性能ボトルネックに関する値を設定するために使用される。画面２７００は、例えば、ホストを指定するホスト名入力部２７０１と、ボトルネック閾値を指定するボトルネック閾値入力部２７０２と、ボトルネックの発生している期間を指定するボトルネック発生期間入力部２７０３と、定数を入力する定数入力部２７０４とを含む。入力内容を設定する場合、ユーザは登録ボタン２７０５を押す。入力内容を取り消す場合、ユーザはキャンセルボタン２７０６を押す。【０２０１】
管理サーバの入力情報登録プログラム０３０１は、ステップ２６０１において、ボトルネック閾値管理表０３１２に、ユーザが各入力部２７０１〜２７０４で入力した情報を記憶させる。【０２０２】
つまり、ボトルネック閾値管理表０３１２において、ホスト名２７０１で指定されたホストＩＤ０７０１のＣＰＵ利用率閾値０７０２と、期間０７０３と、Ｉ／Ｏレスポンスタイム目標値０７０４の値を、ユーザが入力したＣＰＵ利用率２７０２と、期間２７０３、Ｉ／Ｏレスポンスタイム目標値２７０４にそれぞれ更新する。【０２０３】
（５）ホスト性能履歴取得プログラム
図１９は、ホスト性能履歴取得プログラム０３０２を説明するためのフローチャートの例である。ホスト性能履歴取得プログラム０３０２は、全てのホストから性能情報を取得して、性能ボトルネックの有無を判別し、ホスト性能履歴管理情報０３１３を更新する処理を行う。【０２０４】
ステップ１８０１では、管理サーバのホスト性能履歴取得プログラム０３０２は、ホスト０１０１のホストＩＤと、ＣＰＵ利用率と、情報取得時の日時とを、ホストのホスト性能情報通知プログラム０１１４から取得する。ステップ１８０２では、管理サーバは、ステップ１８０１で取得した、ホストＩＤと、ＣＰＵ利用率と、情報取得の日時を、ホスト性能履歴管理情報０３１３のホストＩＤ１１０１と、ＣＰＵ利用率１１０２と、情報取得日時１１０３と、に登録する。【０２０５】
ステップ１８０３では、管理サーバは、性能ボトルネックの判別処理を実行し、性能ボトルネックが有る場合、ホスト性能履歴管理情報０３１３のボトルネック１１０４を更新する。【０２０６】
図１９では、ステップ１８０１において、ホストから取得する性能情報としてＣＰＵ利用率のみを記述しているが、これに代えて、例えばネットワーク利用率等のように、性能ボトルネックになり得る別の情報を用いても良い。また、複数の情報を組み合わせて、性能ボトルネックを判定する構成としても良い。ステップ１８０１で取得する情報に対応して、ホスト性能履歴管理情報０３１３の項目を変更する。【０２０７】
（６）性能ボトルネック判別プログラム
図２０は、性能ボトルネック判別プログラム０３０３を説明するためのフローチャートの例である。性能ボトルネック判別プログラム０３０３は、ホスト性能履歴取得プログラム０３０２から処理対象ホストを指定して呼び出される。以後、このホストを対象ホストと呼ぶ。【０２０８】
性能ボトルネック判別プログラム０３０３は、ボトルネック閾値管理情報０３１２とホスト性能履歴管理情報０３１３とに基づき、対象ホストの性能ボトルネックの有無を判別し、ホスト性能履歴管理情報０３１３のボトルネック１１０４を更新する。【０２０９】
ステップ１９０１では、管理サーバの性能ボトルネック判別プログラム０３０３は、ホスト性能履歴管理情報０３１３のホストＩＤ１１０１が対象ホストと一致するデータの中で、情報取得日時１１０３が新しい順にステップ１９０２−１９０４を実行する。【０２１０】
ステップ１９０２では、管理サーバは、ホスト性能履歴管理情報０３１３のＣＰＵ利用率１１０２が、ボトルネック閾値管理情報０３１２のＣＰＵ利用率閾値０７０２を超過しているか否かを判定する。超過している場合（ステップ１９０２：ＹＥＳ）、ステップ１９０３に移動する。超過していない場合（ステップ１９０２：ＮＯ）、ステップ１９０５に移動する。【０２１１】
ステップ１９０３では、管理サーバは、対象ホストが、期間０３１３以上の間、性能ボトルネックであるか否かを判定する。性能ボトルネックである期間とは、ホスト性能履歴管理情報０３１３の最新の情報取得日時１１０３から、繰り返し処理で見ているホスト性能管理情報０３１３の情報取得日時１１０３まで、とする。【０２１２】
期間０３１３以上の間、ＣＰＵ利用率１１０２がＣＰＵ利用率閾値０７０２を超過している場合（ステップ１９０３：ＮＯ）、管理サーバは、ＣＰＵが性能ボトルネックであると判定する。管理サーバは、ステップ１９０４において、ホストＩＤ１１０１が対象ホストと一致しているデータの中で、ホスト性能履歴管理情報０３１３の最新の情報取得日時１１０３のボトルネック１１０４を「ＣＰＵ」に更新する。【０２１３】
ステップ１９０５では、管理サーバは、対象ホストに性能情報ボトルネックが生じているか否かを、ホスト性能履歴管理情報０３１３のボトルネック１１０４に格納されている値の有無で判別する。【０２１４】
ボトルネック１１０４に値が格納されている場合（ステップ１９０５：ＹＥＳ）、本処理は終了する。ボトルネック１１０４に値が格納されていない場合（ステップ１９０５：ＮＯ）、ステップ１９０６に移動する。【０２１５】
ステップ１９０６では、管理サーバは、再配置プラン管理情報０３１０のデータの中で、対象ホストとホストＩＤが一致するデータのＴｉｅｒ１容量０８０２の値と、Ｔｉｅｒ２容量０８０３の値とを削除する。Ｔｉｅｒ１容量０８０２の値とＴｉｅｒ２容量０８０３の値とを削除することで、図２４に示す再配置指示処理のステップ２３０４において、対象ホストは容量が制限されなくなる。【０２１６】
本実施例によれば、性能ボトルネックの発生しているホストが使用する仮想ボリュームへの上位Ｔｉｅｒの割当量を制限し、性能ボトルネックの発生していない他のホストの使用する仮想ボリュームに、上位Ｔｉｅｒの実領域を割り当てる。従って、上位Ｔｉｅｒの実領域をより効率的に使用することができ、プール全体としてのレスポンスタイムを向上させることができる。
【実施例２】
【０２１７】
図３２〜図３４を参照して第２実施例を説明する。本実施例を含む以下の各実施例は、第１実施例の変形例に該当する。そこで、以下では、既に説明された構成と異なる構成を中心に説明する。【０２１８】
本実施例では、第１実施例における再配置プラン策定プログラム０３０４において、ユーザ（例えば、ストレージ管理者）が手動で構成プランを選択する。第１実施例では、再配置プラン策定プログラム０３０４において、再配置シミュレーションを行い、再配置後のプールのレスポンスタイムのみを評価していた。【０２１９】
これに対し、本実施例では、例えば、再配置後の各ホストのレスポンスタイムを確認して、ユーザが適切な構成プランを選択する。これにより、例えば、ホストの優先度、または、ホストの性能要求など、ユーザの意思を、Ｔｉｅｒ構成のプランに反映することが可能となる。【０２２０】
例えば、ユーザは、優先度の高いホストの方が優先度の低いホストよりも大きく性能が向上する構成プランを選択できる。その結果、本実施例では、ホストの優先度を考慮して、ホストのレスポンスタイムを最適化することができる。【０２２１】
本実施例では、第１実施例における再配置プラン策定プログラム０３０４のステップ２００９に替えて、ユーザが構成プラン（再配置プラン）を選択する。つまり、図２１に示すステップ２００９は、本実施例において、「ユーザが複数の再配置プランの中から、再配置プランを一つ選択する。」と変更される。【０２２２】
ユーザは、再配置プラン策定プログラム０３０４で作成したＴｉｅｒ構成の組合せを画面上で確認して、最適な組合せ（再配置プラン）を選択する。ユーザが再配置プランを選択した後、管理サーバは、再配置指示プログラム０３０５を実行する。【０２２３】
図３２は、ホスト性能管理情報２８００の構成例である。管理サーバ０１０２の補助記憶装置０１２３が、ホスト性能管理情報２８００を有している。ホスト性能管理情報２８００は、後述する構成プラン別ホスト性能情報画面２９００において、構成プラン適用前のレスポンスタイム２９０６を表示するために使用する。【０２２４】
図３３は、本実施例における構成プラン別のホスト性能情報をユーザに提示するための画面２９００である。図３３では、例えば、ホスト１が性能ボトルネックである場合の例を表示している。以下、性能ボトルネックであるホストを対象ホストと呼ぶ。【０２２５】
画面２９００は、構成プラン情報２９０９と、ホスト性能情報２９１０とを表示することができる。【０２２６】
構成プラン情報２９０９は、構成プランＩＤ２９０１と、Ｔｉｅｒ１  ２９０２と、Ｔｉｅｒ２  ２９０３と、プールレスポンスタイム２９０４と、を有する。構成プランＩＤは、構成プランを一意に識別するための識別子である。Ｔｉｅｒ１  ２９０２は、対象ホストに割当てることができるＴｉｅｒ１の容量を示す値である。Ｔｉｅｒ２  ２９０３は、対象ホストに割当てることができるＴｉｅｒ２の容量を示す値である。プールレスポンスタイムは、容量を制限した場合のプールのレスポンスタイムの予測値を示す。なお、例えば、レスポンスタイムの昇順に構成プランをソートして、構成プラン情報２９０９を表示してもよい。【０２２７】
ホスト性能情報２９１０は、ホストＩＤ２９０５と、構成プランを適用する前のレスポンスタイム２９０６と、構成プランを適用した後のレスポンスタイム２９０７と、を有する。ホストＩＤ２９０５は、ホストを一意に識別するための識別子である。【０２２８】
構成プランを適用する前のレスポンスタイム２９０６には、ホスト性能管理情報２８００のＩ／Ｏレスポンスタイム２８０２を表示する。Ｉ／Ｏレスポンスタイム２８０２は、構成別ホスト性能情報２９００の表示前に、管理サーバが値を計算し、格納する。例えば、管理サーバは、再配置指示プログラム０３０５を実行した後に、Ｉ／Ｏレスポンスタイムを計算する。【０２２９】
Ｉ／Ｏレスポンスタイム２８０２の計算は、Ｉ／Ｏレスポンスタイム計算処理２１００に基づく。ただし、本実施例では、ステップ２１０２で仮想配置先管理情報０３１５から、対象ページの仮想配置先３２０２を取得する替わりに、仮想ボリューム管理情報０３０８から、対象ページの再配置先判定結果０９０６を取得する点が異なる。管理サーバは、Ｉ／Ｏレスポンスタイムの計算結果を、ホスト性能管理情報２８００のＩ／Ｏレスポンスタイム２８０２に格納する。【０２３０】
構成プラン適用前レスポンスタイム２９０６は、本実施例では、管理サーバが値を計算している。これに代えて、各ホストのレスポンスタイムの実測値をレスポンスタイム２９０６として使っても良い。【０２３１】
構成プランを適用した後のレスポンスタイム２９０７は、ユーザが構成プランを選択した時に、管理サーバが、その選択された構成プランで仮想再配置プログラム３３００を実行し、Ｉ／Ｏレスポンスタイム計算処理２１００で算出された値を画面に表示する。【０２３２】
ユーザは、構成プラン情報２９０９に表示されている構成プランの中から、何れか１つを選択する。構成プランの選択後に、選択した構成プランに対応したホスト性能情報２９１０が、例えば同一画面の下部に表示される。【０２３３】
図３３では、点線で囲む「Ｐｌａｎ２」を選択した場合の、ホスト性能情報２９１０の表示を例示している。ホスト性能情報２９１０は、ホストＩＤ  ２９０５と、構成プラン適用前のレスポンスタイム２９０６と、構成プラン適用後のレスポンスタイム２９０７とを含む。【０２３４】
ユーザが選択した構成プランで仮想再配置プログラム３３００を実行し、各ホストのＩ／ＯレスポンスタイムをＩ／Ｏレスポンスタイム計算処理２１００に基づいて計算する。その計算結果をホスト性能情報２９１０の構成プラン適用後レスポンスタイム２９０７に表示する。ユーザは、ホスト性能情報２９１０に表示される値を確認し、最適な構成プランを一つ選択する。【０２３５】
図３４は、ホストの性能情報をユーザに提示するための画面３４００の例である。ユーザは、管理サーバがホストに適用した構成プランをホスト性能情報画面３４００を介して確認できる。ユーザが、構成プランを変更する場合には、変更対象のホストを選択し、選択したホストを対象とした構成プラン別ホスト性能情報２９００を開き、構成プランを変更できる。【０２３６】
ホストＩＤ３４０１は、ホストを一意に識別するための識別子である。Ｔｉｅｒ１容量３４０２及びＴｉｅｒ２容量３４０３は、再配置プラン管理情報０３１０において、ホストＩＤ０８０１とホストＩＤ３４０１の値が一致しているデータの、Ｔｉｅｒ１容量０８０２及びＴｉｅｒ２容量０８０３の値である。【０２３７】
ボトルネック３４０４は、ホストＩＤ３４０１で識別されるホストにおける、ホスト性能履歴情報０３１３内の最新の情報取得日時１１０３のボトルネック１１０４の値を表示する。レスポンスタイム３４０５は、ホスト性能管理情報２８００において、ホストＩＤ２８０１とホストＩＤ３４０１の値が一致しているデータの、Ｉ／Ｏレスポンスタイム２８０２の値である。【０２３８】
なお、ユーザに提示する情報は、図示した表示順序及び表示内容に限定されるものではなく、表示順序を変更する機能があっても良いし、更に、情報の一部を隠す機能があっても良い。【０２３９】
このように構成される本実施例も第１実施例と同様の効果を奏する。本実施例では、ユーザ自身が最適と考えるプランを選択できるため、ユーザの使い勝手が向上する。例えば、計算機システムに熟知したユーザにとって、本実施例の構成は使いやすいであろう。これに対し、第１実施例では、プールレスポンスタイムが向上するプランを自動的に選択するため、経験の少ないユーザにとって便利であろう。第１実施例と第２実施例とを組み合わせて、自動的に選択されたプランを、ユーザが手動で変更する構成としてもよい。さらに、例えば、複数のプールのうち一方のプールについては第１実施例を適用し、他方のプールについては第２実施例を適用する、構成としてもよい。
【実施例３】
【０２４０】
図３５〜図３７を参照して第３実施例を説明する。本実施例では、Ｉ／Ｏレスポンスタイム目標値０７０４を、手動または自動のいずれかで設定できるようになっている。【０２４１】
本実施例では、例えば、ユーザが、Ｉ／Ｏレスポンスタイム目標値を自動設定した場合、管理サーバが、ホスト０１０１のＩ／Ｏレスポンスタイム目標値を、ＣＰＵボトルネックであるホストのＣＰＵボトルネックが解消されるまで、再配置を実行する毎に徐々に大きい値に変更する。本実施例により、ユーザがＩ／Ｏレスポンスタイム目標値を手動設定する手間を省略でき、ユーザの使い勝手を向上できる。以下、第１実施例または第２実施例との相違点を中心に説明する。【０２４２】
図３５は、ホストの性能ボトルネック閾値を設定する画面３０００の例である。本実施例の画面３０００と、第１実施例及び第２実施例におけるホスト性能ボトルネック閾値設定画面２７００との相違点を述べる。本実施例の画面３０００は、Ｉ／Ｏレスポンスタイム目標値の自動設定３００５を有する。【０２４３】
ユーザが、自動設定３００５を選択すると、ボトルネック閾値管理情報０３１２のＩ／Ｏレスポンスタイム自動設定３５０５に「Ｏｎ」が格納される。ユーザが、手動設定を選択した場合は、ボトルネック閾値管理情報０３１２のＩ／Ｏレスポンスタイム自動設定３５０５に「Ｏｆｆ」が格納される。自動設定部３００５以外の構成３００１〜３００４、３００６、３００７は、ホスト性能ボトルネック閾値設定画面２７００の２７０１〜２７０４、２７０５、２７０６と同一であるため、説明を省略する。【０２４４】
図３６の前に図３７を説明する。図３７は、本実施例におけるホストの性能ボトルネック閾値を管理する情報０３１２の構成例である。本実施例と、第１実施例及び第２実施例との相違点は、本実施例におけるボトルネック閾値管理情報０３１２がＩ／Ｏレスポンスタイム自動設定３５０５を有する点である。Ｉ／Ｏレスポンスタイム自動設定３５０５は、ユーザが、Ｉ／Ｏレスポンスタイム目標値を自動設定にした場合Ｏｎを格納し、手動設定にした場合はＯｆｆを格納する。他の項目３５０１〜３５０４は、図８に示すボトルネック閾値管理情報０３１２の０７０１〜０７０４と同一のため、説明を省略する。【０２４５】
図３６は、本実施例における再配置プランの策定および実行を説明するフローチャートの例である。本実施例と第１実施例及び第２実施例との相違点は、本実施例の処理３１００がステップ３１０４及びステップ３１０５を有する点である。以後、性能ボトルネックがあり、再配置プラン策定処理の対象となっているホストを、対象ホストと呼ぶ。【０２４６】
管理サーバは、性能情報を取得する処理を実行する（ステップ３１０６）。管理サーバは、性能ボリュームを有するホストについて、以下のステップ３１０４、３１０２、３１０５を実行する（ステップ３１０１）。【０２４７】
ステップ３１０４において、管理サーバ０１０２は、対象ホストにおけるボトルネック閾値管理情報０３１２のＩ／Ｏレスポンスタイム自動設定３５０５が「Ｏｎ」であるか否かを判定する。【０２４８】
「Ｏｎ」の場合、ステップ３１０５において、管理サーバ０１０２は、対象ホストのＩ／Ｏレスポンスタイム目標値３５０４に、対象ホストのレスポンスタイムより大きい値を目標値として格納する。目標値は、例えば、対象ホストに関するホスト性能管理情報２８００のＩ／Ｏレスポンスタイム２８０２と、所定のステップ幅との積として求めることができる。【０２４９】
所定のステップ幅は、例えば、１．１のように小さな値に設定することができる。ステップ幅は、管理サーバに予め定義された値を使っても良いし、ユーザが入力した値を使っても良い。ステップ幅をユーザが入力する場合、管理サーバ０１０２は、ユーザに対し、ステップ幅を入力するための画面を提示する。【０２５０】
Ｉ／Ｏレスポンスタイム目標値の計算方法は、対象ホストの現在のＩ／Ｏレスポンスタイムよりも目標値の方が大きい値になる計算方法であれば、前記以外の他の方法を用いてもよい。【０２５１】
ただし、現在のＩ／Ｏレスポンスタイムと比べて大きすぎるＩ／Ｏレスポンスタイム目標値を算出する方法の場合は、Ｉ／Ｏレスポンスタイムが遅くなりすぎて、性能問題を引き起こす可能性がある。これとは逆に、現在のＩ／Ｏレスポンスタイムと比べて小さすぎるＩ／Ｏレスポンスタイム目標値を算出する方法では、ＣＰＵボトルネックを解消するための処理ステップ３１００の実行回数が多くなる。【０２５２】
対象ホストにＣＰＵボトルネックが発生している限り、ステップ３１００を繰り返す毎に、ステップ３１０５で指定するＩ／Ｏレスポンスタイム目標値３５０４は徐々に大きくなり、この結果、対象ホストのＩ／Ｏレスポンスタイムは遅くなる。そのため、ステップ３１００を繰り返すことにより、対象ホストのボトルネックは、ＣＰＵからＩ／Ｏに移り、ＣＰＵボトルネックは解消される。【０２５３】
このように構成される本実施例も前記各実施例と同様の効果を奏する。本実施例では、レスポンスタイム目標値を自動的に設定するモード（ステップ３１０５）を備えるため、ユーザの使い勝手がさらに向上する。
【実施例４】
【０２５４】
図３８〜図４１を参照して第４実施例を説明する。第４実施例では、再配置プラン策定処理２０００におけるステップ２００２において、Ｔｉｅｒ１の容量とＴｉｅｒ２の容量の組合せを探索する範囲を絞込み、処理ステップ２００４−２００８の繰り返し回数を低減する。【０２５５】
本実施例により、各ホストとプールのＩ／Ｏ分布を考慮した再配置プラン策定処理２０００を高速化できる。従って、大容量のプール及びホストに対しても、本実施例を高速に適用できる。以後、性能ボトルネックがあり、再配置プラン策定処理を行う対象となっているホストを対象ホストと呼ぶ。【０２５６】
本実施例では、例えば、対象ホストのＩ／Ｏレスポンスタイムが減少する比と、プールのＩ／Ｏレスポンスタイムが増加する比との２種類の指標を用いて、Ｔｉｅｒ容量とＴｉｅｒ２容量の組合せを探索する範囲を絞り込む。以下、第１実施例、第２実施例、または第３実施例との相違点を中心に説明する。【０２５７】
図３８は、レスポンスタイム変化指標を管理する情報３６００の構成例を示す。レスポンスタイム変化指標管理情報３６００は、管理サーバ０１０２の補助記憶装置０１２３に記憶される。レスポンスタイム変化指標管理情報３６００は、再配置プラン策定処理３９００を実行した場合における、ホストのＩ／Ｏレスポンスタイムの変化量の特徴と、プールのＩ／Ｏレスポンスタイムの変化量の特徴とを、格納するために用いられる。【０２５８】
例えば、レスポンスタイム変化指標管理情報３６００は、ホストの識別子を表すホストＩＤ３６０１と、ホストのＩ／Ｏレスポンスタイムの変化量の特徴を表すホストＩ／Ｏレスポンスタイム減少比３６０２と、プールのＩ／Ｏレスポンスタイムの変化量の特徴を表すプールＩ／Ｏレスポンスタイム増加比３６０３と、を有する。【０２５９】
ホストＩ／Ｏレスポンスタイム減少比３６０２は、管理サーバ０１０２が、対象ホストに対して、Ｔｉｅｒ１の容量を１ページ減少させた場合のホストのＩ／Ｏレスポンスタイムの変化量と、Ｔｉｅｒ２の容量を１ページ減少させた場合のホストのＩ／Ｏレスポンスタイムの変化量との比である。【０２６０】
ホストＩ／Ｏレスポンスタイム減少比３６０２が大きい程、ホストのＩ／Ｏレスポンスタイムに与えるＴｉｅｒ１の影響が大きく、Ｔｉｅｒ２の影響は小さいことを示す。【０２６１】
例えば、ホストＩ／Ｏレスポンスタイム減少比が「３」の場合を説明する。この場合、ホストが使用するＴｉｅｒ１を１ページ減少させ、かつ、ホストが使用するＴｉｅｒ２を１ページ増加させることと、ホストが使用するＴｉｅｒ２を３ページ減少させ、かつ、ホストが使用するＴｉｅｒ３を３ページ増加させることとは、ホストのＩ／Ｏレスポンスタイムを減少させる観点において同等である。【０２６２】
プールＩ／Ｏレスポンスタイム増加比３６０３は、プールで使用可能なＴｉｅｒ１の容量が１ページ増加し、かつ、Ｔｉｅｒ２が１ページ減少した場合のプールのレスポンスタイムの変化量と、プールで使用可能なＴｉｅｒ２の容量が１ページ増加し、かつ、Ｔｉｅｒ３が１ページ減少した場合のプールのレスポンスタイムの変化量との比である。【０２６３】
プールＩ／Ｏレスポンスタイム増加比３６０３が大きい程、プールのＩ／Ｏレスポンスタイムに対するＴｉｅｒ１の影響が大きく、Ｔｉｅｒ２の影響が小さくなる。例えば、プールＩ／Ｏレスポンスタイム増加比が「２」の場合を説明する。この場合、プールが使用するＴｉｅｒ１を１ページ増加させ、かつ、プールが使用するＴｉｅｒ２を１ページ減少させることと、プールが使用するＴｉｅｒ２を２ページ増加させ、かつ、プールが使用するＴｉｅｒ３を２ページ減少させることとは、プールのＩ／Ｏレスポンスタイムを増加させる観点において同等である。【０２６４】
図３９は、ホストＩ／Ｏレスポンスタイム減少比を計算するための処理を説明するフローチャートの例である。対象ホストの仮想領域（ＶＳＥＧ）０５０２の中で、Ｔｉｅｒ１に割当てられているＮ個の仮想領域０５０２をＴｉｅｒ２に移行したときのレスポンスタイムの変化量と、Ｔｉｅｒ２に割当てられているＮ個の仮想領域０５０２をＴｉｅｒ３に移行したときのレスポンスタイムの変化量と、の比から、ホストＩ／Ｏレスポンスタイム減少比３６０２を計算する。例えば、本実施例では、Ｎ＝１０とする。【０２６５】
Ｎは、管理サーバに予め定義された値を使っても良いし、ユーザが入力した値を使っても良い。Ｎが小さい程、ホストＩ／Ｏレスポンスタイム減少比の計算結果の誤差が大きくなるが、処理時間は短い。Ｎが大きい程、ホストＩ／Ｏレスポンスタイム減少比の計算結果の誤差は小さくなるが、処理時間が長くなる。【０２６６】
ステップ３７０１において、管理サーバ０１０２は、仮想ボリューム管理情報０３０８から、再配置プラン策定処理３９００の対象ホストの仮想領域ＩＤ０９０２と、ＩＯＰＳ０９０５と、再配置先判定結果０９０６と、を取得する。【０２６７】
ステップ３７０２において、管理サーバは、ステップ３７０１で取得したデータのうち、再配置先判定結果０９０６が「Ｔｉｅｒ１」であるデータを抽出する。管理サーバは、判定結果が「Ｔｉｅｒ１」であるデータがＴｉｅｒ２へ移行する順序を特定するために、ＩＯＰＳの降順にそれらのデータ（ページ）をソートする。再配置処理０３０５では、ＩＯＰＳの降順に処理を行うため、Ｔｉｅｒ１からＴｉｅｒ２へと移行するページは、ＩＯＰＳの小さいページである。【０２６８】
ステップ３７０３で、管理サーバは、移行元のページのＩ／Ｏレスポンスタイムを計算する。Ｉ／Ｏレスポンスタイムの計算には、第１実施例で述べた式２を使用する。計算対象のページは、Ｔｉｅｒ１の下位Ｎ個のページである。ページの配置されているＴｉｅｒは、全て移行元のＴｉｅｒ１とする。【０２６９】
ステップ３７０４において、管理サーバは、ステップ３７０３と同様に、移行先のページのＩ／Ｏレスポンスタイムを計算する。ただし、ページの配置されているＴｉｅｒは、全て移行先のＴｉｅｒ２とする。式２の計算結果からステップ３７０３の計算結果を引いた値を計算する。【０２７０】
ステップ３７０５―ステップ３７０７までの処理は、ステップ３７０２―ステップ３７０４までの処理と同様である。ただし、ステップ３７０５−ステップ３７０７では、ステップ３７０２−ステップ３７０４における移行元のＴｉｅｒ１、移行先のＴｉｅｒ２を、それぞれＴｉｅｒ２、Ｔｉｅｒ３に置き換えて処理を行う。【０２７１】
ステップ３７０８において、管理サーバは、ホストＩ／Ｏレスポンスタイム減少比を計算する。ホストＩ／Ｏレスポンスタイム減少比は、ステップ３７０４の計算結果と、ステップ３７０７の計算結果の商（ステップ３７０４の計算結果／ステップ３７０７の計算結果）である。【０２７２】
図４０は、プールＩ／Ｏレスポンスタイム増加比の計算処理を説明するためのフローチャートの例である。プールの仮想領域０５０２の中で、Ｔｉｅｒ２に割当てられているＮ個の仮想領域０５０２をＴｉｅｒ１に移行した場合のレスポンスタイムの変化量と、Ｔｉｅｒ３に割当てられているＮ個の仮想領域０５０２をＴｉｅｒ２に移行した場合のレスポンスタイムの変化量との比から、プールＩ／Ｏレスポンスタイム増加比３６０３は算出される。【０２７３】
プールＩ／Ｏレスポンスタイム増加比計算処理３８００は、ホストＩ／Ｏレスポンスタイム減少比計算処理３７００と類似している。それらの相違点を述べる。ホストＩ／Ｏレスポンスタイム減少比計算処理３７００では、ＩＯＰＳの下位Ｎ個の仮想領域を現在Ｔｉｅｒよりも下位のＴｉｅｒに移行したときの、Ｉ／Ｏレスポンスタイムの変化量を計算する。これに対し、プールＩ／Ｏレスポンスタイム増加比計算処理３８００では、ＩＯＰＳの上位Ｎ個の仮想領域を現在Ｔｉｅｒよりも上位Ｔｉｅｒに移行したときの、Ｉ／Ｏレスポンスタイムの変化量を計算する。【０２７４】
ステップ３８０１において、管理サーバ０１０２は、仮想ボリューム管理情報０３０８から、仮想領域ＩＤ０９０２と、ＩＯＰＳ０９０５と、再配置先判定結果０９０６と、を取得する。【０２７５】
ステップ３８０２において、管理サーバは、ステップ３８０１で取得したデータのうち、再配置先判定結果０９０６がＴｉｅｒ２であるデータを抽出する。そして、管理サーバは、Ｔｉｅｒ２のデータがＴｉｅｒ１へ移行する順序を特定するために、ＩＯＰＳの降順にソートする。再配置処理０３０５では、ＩＯＰＳの降順に処理を行うため、Ｔｉｅｒ２からＴｉｅｒ１へと移行するページは、ＩＯＰＳの大きいページである。【０２７６】
ステップ３８０３において、管理サーバは、移行元のページのＩ／Ｏレスポンスタイムを計算する。Ｉ／Ｏレスポンスタイムは、仮想ボリューム管理情報０３０８のＩＯＰＳ０９０５と、Ｔｉｅｒ性能履歴情報０３０９のレスポンスタイム０６０２に基づき、式２により計算する。式２における計算対象のページは上位Ｎ個のページ（仮想領域）であり、ページの配置されているＴｉｅｒはＴｉｅｒ２である。【０２７７】
ステップ３８０４において、ステップ３８０３と同様の計算を行う。ただし、式３において、ページの配置されているＴｉｅｒは移行先のＴｉｅｒ１である点が異なる。式２の計算結果からステップ３８０３の計算結果を引いた値を計算する。【０２７８】
ステップ３８０５―ステップ３８０７の処理は、ステップ３８０２―ステップ３８０４と同様である。ただし、ステップ３８０５−３８０７では、ステップ３８０２−ステップ３８０４における移行元のＴｉｅｒ２、移行先のＴｉｅｒ１を、それぞれＴｉｅｒ３、Ｔｉｅｒ２に置き換えて処理を行う。【０２７９】
ステップ３８０８において、管理サーバは、プールＩ／Ｏレスポンスタイム増加比を計算する。プールＩ／Ｏレスポンスタイム増加比は、ステップ３８０４の計算結果と、ステップ３８０７の計算結果の商（ステップ３８０４の計算結果／ステップ３８０７の計算結果）である。【０２８０】
図４１は、本実施例における再配置プランの策定および実行を説明するフローチャートの例である。再配置プラン策定処理３９００は、第１実施例の再配置プラン策定処理２０００（図２１参照）に、探索範囲の絞り込み処理を加えた処理である。本実施例では、再配置プラン策定処理を、再配置プラン策定処理２０００ではなく、再配置プラン策定処理３９００によって行う。【０２８１】
ステップ３９０１において、管理サーバ０１０２は、対象ホストのホストＩ／Ｏレスポンスタイム減少比をホストＩ／Ｏレスポンスタイム減少比計算処理３７００によって計算する。ステップ３９０２において、管理サーバは、プールＩ／Ｏレスポンスタイム増加比をプールＩ／Ｏレスポンスタイム増加比計算処理３８００によって計算する。【０２８２】
ステップ３９０３において、管理サーバは、対象ホストと、ステップ３９０１で計算したホストＩ／Ｏレスポンスタイム減少比と、ステップ３９０２で計算したプールＩ／Ｏレスポンスタイム増加比とによって、図３８に示すレスポンスタイム変化指標管理情報３６００を更新する。【０２８３】
再配置プラン策定処理３９００のステップ３９０４と、ステップ３９０７と、ステップ３９０８とは、再配置プラン策定処理２０００のステップ２００１と、ステップ２００４−ステップ２００８と、ステップ２００９とに対応し、同一処理を実行する。そこで、ステップ３９０４、３９０７、３９０８の説明は省略する。【０２８４】
ステップ３９０５において、管理サーバは、ホストＩ／Ｏレスポンスタイム減少比とプールＩ／Ｏレスポンスタイム増加比とから、Ｔｉｅｒ１容量を減少させた場合のプールＩ／Ｏレスポンスタイムへの効果と、Ｔｉｅｒ２容量を減少させた場合のプールＩ／Ｏレスポンスタイムへの効果とを比較する。管理サーバは、比較結果に基づいて、Ｔｉｅｒ１、Ｔｉｅｒ２の組合せを作成する（ステップ３９０５）。【０２８５】
管理サーバは、ホストＩ／Ｏレスポンスタイム減少比３６０２とプールＩ／Ｏレスポンスタイム増加比３６０３とから、Ｔｉｅｒ１容量またはＴｉｅｒ２容量のどちらを優先的に減少させれば良いか判断ができる。【０２８６】
例えば、増加比３６０３と減少比３６０２との商（増加比３６０３／減少比３６０２）が１以上の場合を説明する。この場合、プールＩ／Ｏレスポンスタイム向上への効果は、Ｔｉｅｒ１容量を減少させる方が、Ｔｉｅｒ２容量を減少させるよりも大きくなる。増加比３６０３と減少比３６０２との商を、以降、増加減少比と呼ぶ。【０２８７】
増加減少比が１以上の場合、ステップ３９０５において、管理サーバは、Ｔｉｅｒ１容量の減少による対象ホストのＩ／Ｏレスポンスタイムの減少量が、一定値以上である構成プランを作成する。【０２８８】
例えば、増加減少比が大きい程、Ｔｉｅｒ１容量を減少させた場合にプールのレスポンスタイムが大きく向上する点を考慮して、管理サーバは、以下の式３により、Ｔｉｅｒ１容量の減少による対象ホストのレスポンスタイム減少量の下限値を定める。【０２８９】
Ｔｉｅｒ１容量の減少による対象ホストのレスポンスタイム減少量の下限値＝｛（増加減少比−１）／（増加減少比）｝＊（Ｉ／Ｏレスポンスタイム目標値−再配置前の対象ホストのＩ／Ｏレスポンスタイム）・・・（式３）【０２９０】
式３によれば、例えば、増加減少比が２の場合、減少させる必要があるＩ／Ｏレスポンスタイムの半分が、Ｔｉｅｒ１容量の減少による対象ホストのレスポンスタイム減少量の下限となる。【０２９１】
式３により、増加減少比の増加に比例して、Ｔｉｅｒ１容量の上限値を小さくできることがわかる。Ｔｉｅｒ１容量の上限値は、例えば、対象ホストのレスポンスタイム減少量が下限値になるまで、Ｔｉｅｒ１容量を１ページずつ徐々に減少させることで、計算することができる。【０２９２】
増加減少比が１以下の場合、ステップ３９０５の処理を、値を置き換えて実行する。置き換える値は、増加減少比とＴｉｅｒ１容量である。増加減少比を、増加減少比の逆数で置き換え、さらに、Ｔｉｅｒ１容量を、Ｔｉｅｒ２容量で置き換える。【０２９３】
ステップ３９０６において、管理サーバは、ステップ３９０５で作成した組合せを用いて処理を行う。これにより、管理サーバは、Ｔｉｅｒ１の容量とＴｉｅｒ２の容量の組合せの探索範囲を絞り込むことができる。【０２９４】
管理サーバ０１０２は、ユーザが確認できるように、ホストＩ／Ｏレスポンスタイム減少比３６０２とプールＩ／Ｏレスポンスタイム増加比３６０３を、画面に提示する機能を有しても良い。【０２９５】
なお、ステップ３９０５において、組合せを更に絞り込む方法を説明する。その方法では、本実施例に加えて、増加比３６０３と、減少比３６０２と、再配置プランの組合せとを、履歴として保持する。さらに他の方法として、ステップ３９０１で計算した減少比３６０２と、ステップＳ３９０２で計算した増加比３６０３とが、履歴データ内の減少比及び増加比と類似する場合に、履歴データの再配置プランを参考にすることもできる。例えば、管理サーバは、履歴データ内のＴｉｅｒ１とＴｉｅｒ２の比率の周辺のみを探索することで、処理時間を短縮できる。【０２９６】
このように構成される本実施例も前記各実施例と同様の効果を奏する。さらに、本実施例では、再配置プランの策定に際して、本実施例に特徴的な判別指標である増加減少比を使用する。本実施例では、その特徴的指標を用いて、Ｔｉｅｒ１の容量とＴｉｅｒ２の容量の組合せを探索する範囲を絞込む。従って、本実施例では、より高速に、再配置プランを作成できる。
【実施例５】
【０２９７】
図４２及び図４３を参照して、第５実施例を説明する。本実施例では、再配置プラン策定処理２０００において、プールのＩ／Ｏレスポンスタイムを最小とするＴｉｅｒ１  １５０２とＴｉｅｒ２  １５０３の組合せを選択する替わりに、それとは異なる評価指標で、Ｔｉｅｒ１  １５０２とＴｉｅｒ２  １５０３を選択する。【０２９８】
本実施例により、例えば、管理サーバが再配置プランを選択する際、再配置によって性能の向上するホストの中で、優先度の高いホストの数が、優先度の低いホストの数より多くなるような再配置プランを選択できる。以下、第１実施例または第２実施例との相違点を中心に説明する。【０２９９】
図４２は、本実施例による再配置プラン策定処理のフローチャートである。管理サーバは、ステップ２００６の次に、優先度の高いホストのうち、レスポンスタイムの向上したホストの数をカウントする（ステップ２００７Ａ）。ホストの優先度は、ユーザが設定してもよいし、または、ホストの種類等に応じて自動的に設定してもよい。例えば、バッチ処理であれば優先度を低くし、トランザクション処理であれば優先度を高くする。【０３００】
管理サーバは、図４３に示す、Ｔｉｅｒ構成別のレスポンスタイムを管理する情報０３１４Ａにおいて、ホスト数１５０５の値を、ステップ２００７Ａで算出した値に更新する（ステップ２００８Ａ）。図４３に示す管理情報０３１４Ａは、図１６の管理情報０３１４のプールレスポンスタイム１５０４に代えて、ホスト数１５０５を備える。【０３０１】
管理サーバは、ステップ２００９Ａにおいて、レスポンスタイムの改善されるホスト数が最大となる、Ｔｉｅｒ１  １５０２とＴｉｅｒ２  １５０３の組合せを選択し、再配置プラン管理情報０３１０を更新する。【０３０２】
ホストの優先度を考慮せずに、Ｉ／Ｏレスポンスタイムが向上したホストの数に基づいて、再配置プランを作成してもよい。ホスト毎にＩ／Ｏレスポンスタイムの増加量を計算し、増加量が一定値以上のホストの数を、評価指標として使用する。ここで言う一定値とは、管理サーバに予め定義された値を使っても良いし、ユーザが入力した値を使っても良い。評価指標の値が大きい程、多くのホストのＩ／Ｏレスポンスタイムを向上できていることを示す。【０３０３】
なお、本発明は、上述した各実施例に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。例えば、上述された本発明の技術的特徴は、適宜結合させて実施することができる。【０３０４】
例えば、本発明は、以下のようにコンピュータプログラムの発明として表現することもできる。そのコンピュータプログラムは記録媒体に固定されて配布されたり、通信ネットワークを介して配信されたりできる。
「コンピュータを、複数のホスト計算機及び少なくとも一つのストレージ装置を含む計算機システムを管理するための管理装置として機能させるためのコンピュータプログラムであって、
前記ストレージ装置は、前記複数のホスト計算機に提供するための複数の仮想的論理ボリュームと、性能の異なる複数の記憶階層を有するプールとを備え、かつ、前記複数の仮想的論理ボリュームを構成する論理的記憶領域を、前記複数の記憶階層のうち所定の記憶階層の実記憶領域に対応付けるための再配置処理を実行するようになっており、
前記複数のホスト計算機の性能情報を管理する性能情報管理部と、
前記各性能情報に基づいて、前記複数のホスト計算機のうち予め設定される所定の閾値以上の負荷を有する所定のホスト計算機が有るか判定する負荷判定部と、
前記複数の仮想的論理ボリュームのうち前記所定のホスト計算機の使用する所定の仮想的論理ボリュームに対する、前記複数の記憶階層毎の前記実記憶領域の割当量を規定する再配置計画を作成する再配置計画作成部であって、前記所定の仮想的論理ボリュームの応答時間が所定の目標応答時間以上となる複数の再配置計画を作成し、それら複数の前記再配置計画の中からいずれか一つを選択する再配置計画作成部と、
選択された前記再配置計画に基づいて、前記複数の仮想的論理ボリュームの前記各論理的記憶領域と前記各記憶階層の前記各実記憶領域との対応関係を決定し、前記対応関係を前記ストレージ装置に通知して、前記ストレージ装置に前記再配置処理の実行を指示する再配置指示部と、
を、前記コンピュータ上に実現させるためのコンピュータプログラム。」
【符号の説明】
【０３０５】
１、０１０１：ホスト計算機、２、０１０２：管理サーバ、３、０１０３：ストレージ装置
【図１】
2013103005.tif 000003
【図２】
2013103005.tif 000004
【図３】
2013103005.tif 000005
【図４】
2013103005.tif 000006
【図５】
2013103005.tif 000007
【図６】
2013103005.tif 000008
【図７】
2013103005.tif 000009
【図８】
2013103005.tif 000010
【図９】
2013103005.tif 000011
【図１０】
2013103005.tif 000012
【図１１】
2013103005.tif 000013
【図１２】
2013103005.tif 000014
【図１３】
2013103005.tif 000015
【図１４】
2013103005.tif 000016
【図１５】
2013103005.tif 000017
【図１６】
2013103005.tif 000018
【図１７】
2013103005.tif 000019
【図１８】
2013103005.tif 000020
【図１９】
2013103005.tif 000021
【図２０】
2013103005.tif 000022
【図２１】
2013103005.tif 000023
【図２２】
2013103005.tif 000024
【図２３】
2013103005.tif 000025
【図２４】
2013103005.tif 000026
【図２５】
2013103005.tif 000027
【図２６】
2013103005.tif 000028
【図２７】
2013103005.tif 000029
【図２８】
2013103005.tif 000030
【図２９】
2013103005.tif 000031
【図３０】
2013103005.tif 000032
【図３１】
2013103005.tif 000033
【図３２】
2013103005.tif 000034
【図３３】
2013103005.tif 000035
【図３４】
2013103005.tif 000036
【図３５】
2013103005.tif 000037
【図３６】
2013103005.tif 000038
【図３７】
2013103005.tif 000039
【図３８】
2013103005.tif 000040
【図３９】
2013103005.tif 000041
【図４０】
2013103005.tif 000042
【図４１】
2013103005.tif 000043
【図４２】
2013103005.tif 000044
【図４３】
2013103005.tif 000045
【国際調査報告】
2013103005.tif 000046
2013103005.tif 000047