(57)【要約】【課題】仮想化装置内のキャッシュ容量の見積もりやキャッシュの割り当て作業を軽減することができるキャッシュ構成管理システムを提供する。【解決手段】業務サーバ１０１と、ストレージ装置１０６と、複数のストレージ装置１０６を所定に仮想化したストレージとして識別させる仮想化装置１０５と、ストレージ管理サーバ１０７を有するストレージシステムにおいて、ストレージ管理サーバ１０７は、仮想化装置１０５およびストレージ装置１０６のキャッシュの構成、アクセス性能から、仮想化装置１０５の業務サーバ１０１に対するレスポンスタイムを予測し、内部キャッシュ１２３の仮想ボリューム１２５への割り当ての有無、および割り当て容量による性能予測値を評価することで、仮想化装置１０５内のキャッシュ容量の判定、および適切なキャッシュ容量の見積もりを行い、内部キャッシュ構成の変更プランを作成することができる。【選択図】図１Ａ
2010097526.tif 000002
【特許請求の範囲】
【請求項１】
複数の業務サーバと、複数の論理ボリュームを有する複数のストレージ装置と、前記複数のストレージ装置を所定に仮想化したストレージとして識別させる仮想化装置とが、第１のネットワークを介して通信可能にされており、前記業務サーバと、前記ストレージ装置と、前記仮想化装置とが、第２のネットワークを介して管理サーバと通信可能にされるストレージシステムにおいて、前記仮想化装置内のキャッシュの構成を管理するキャッシュ構成管理システムであって、
前記管理サーバは、
前記業務サーバ内のアプリケーションプログラム毎に前記仮想化装置の各仮想ボリュームに対していくらのキャッシュ容量を割り当てているかという内部キャッシュの構成、および、前記ストレージ装置の論理ボリュームに対していくらのキャッシュ容量を割り当てているかという外部キャッシュの構成の情報を収集し、キャッシュ構成情報として記憶部に格納するキャッシュ構成情報収集手段と、
前記アプリケーションプログラムから前記論理ボリュームをアクセスする際の前記仮想化装置および前記ストレージ装置に対する、キャッシュヒット率およびレスポンスタイムであるアクセス性能を収集し、アクセス性能情報として前記記憶部に格納するアクセス性能情報収集手段と、
前記アプリケーションプログラムの目標性能値を入力部から受理するとポリシー定義情報として前記記憶部に記憶するポリシー定義情報設定手段と、
前記業務サーバ上のアプリケーションプログラムの目標性能値、前記仮想化装置の内部キャッシュの構成、および、前記ストレージ装置の外部キャッシュの構成に基づき、前記仮想化装置内の前記内部キャッシュのキャッシュ容量の変更後における予測性能値を計算し、前記予測性能値が前記目標性能値を満たすように前記内部キャッシュのキャッシュメモリの割り当て容量を見積もり、前記仮想化装置の内部キャッシュの構成変更プランを作成する内部キャッシュ構成変更プラン作成手段と、
前記入力部から内部キャッシュの構成変更の指示を受理すると、前記作成された内部キャッシュ構成変更プランに基づいて、前記仮想化装置に前記内部キャッシュ構成の変更要求を発行し、前記内部キャッシュの構成を変更する内部キャッシュ構成変更実行手段と、を有する
ことを特徴とするキャッシュ構成管理システム。
【請求項２】
前記目標性能値は、目標レスポンスタイムであり、
前記アクセス性能情報収集手段は、予め、
前記アプリケーションプログラムから前記ストレージ装置内の論理ボリュームにアクセスをした際の、前記仮想化装置内の内部キャッシュにキャッシュヒットした時のレスポンスタイムである内部キャッシュレスポンスタイムと、前記外部キャッシュにキャッシュヒットした時のレスポンスタイムである外部キャッシュレスポンスタイムと、前記論理ボリュームにアクセスした時のレスポンスタイムである外部ディスクレスポンスタイム、とを記憶しており、
前記内部キャッシュ構成変更プラン作成手段は、
前記内部キャッシュレスポンスタイムと、
前記外部キャッシュレスポンスタイムと、
前記外部ディスクレスポンスタイムと、
前記内部キャッシュのキャッシュ容量に対応するキャッシュヒット率である内部キャッシュヒット率と、
前記内部キャッシュ容量をゼロと仮定した場合の外部キャッシュのキャッシュヒット率である外部キャッシュヒット率と、に基づいて、
前記アプリケーションプログラムから前記ストレージ装置の前記論理ボリュームにアクセスをした際の予測レスポンスタイムを算出する
ことを特徴とする請求項１に記載のキャッシュ構成管理システム。
【請求項３】
前記ポリシー定義情報設定手段は、前記入力部から前記アプリケーションプログラムの重要度を受理すると前記ポリシー定義情報に記憶し、
前記内部キャッシュ構成変更プラン作成手段は、
前記見積もったキャッシュメモリ容量の合計値が、前記仮想化装置に搭載されているキャッシュ容量よりも大きい場合、前記重要度が高い前記アプリケーションプログラムを優先し前記キャッシュメモリの容量の割り当てを行う
ことを特徴とする請求項１に記載のキャッシュ構成管理システム。
【請求項４】
前記ポリシー定義情報設定手段は、前記入力部から前記アプリケーションプログラムの重要度を受理すると前記ポリシー定義情報に記憶し、
前記内部キャッシュ構成変更プラン作成手段は、
前記アプリケーションプログラムの目標性能値を満たす前記キャッシュメモリの割り当てを行い、前記仮想化装置に搭載されているキャッシュメモリ容量が余り、割り当てるキャッシュメモリの容量を増加させる場合、前記重要度が高い前記アプリケーションプログラムを優先して割り当てる
ことを特徴とする請求項１に記載のキャッシュ構成管理システム。
【請求項５】
前記管理サーバは、さらに、
前記アプリケーションプログラムからのアクセスのＩ／Ｏ特性の変化に基づいて、前記アプリケーションプログラムが目標性能値を満たすために、内部キャッシュ構成をどの時点でどのように変更すべきかを予測し、内部キャッシュ構成変更のスケジュールを作成する内部キャッシュ構成変更スケジュール作成手段を有する
ことを特徴とする請求項１に記載のキャッシュ構成管理システム。
【請求項６】
複数の業務サーバと、複数の論理ボリュームを有する複数のストレージ装置と、前記複数のストレージ装置を所定に仮想化したストレージとして識別させる仮想化装置とが、第１のネットワークを介して通信可能にされており、前記業務サーバと、前記ストレージ装置と、前記仮想化装置とを、第２のネットワークを介して管理する管理サーバにおいて、
前記業務サーバ内のアプリケーションプログラム毎に前記仮想化装置の各仮想ボリュームに対していくらのキャッシュ容量を割り当てているかという内部キャッシュの構成、および、前記ストレージ装置の論理ボリュームに対していくらのキャッシュ容量を割り当てているかという外部キャッシュの構成の情報を収集し、キャッシュ構成情報として記憶部に格納するキャッシュ構成情報収集手段と、
前記アプリケーションプログラムから前記論理ボリュームをアクセスする際の前記仮想化装置および前記ストレージ装置に対する、キャッシュヒット率およびレスポンスタイムであるアクセス性能を収集し、アクセス性能情報として前記記憶部に格納するアクセス性能情報収集手段と、
前記アプリケーションプログラムの目標性能値を入力部から受理するとポリシー定義情報として前記記憶部に記憶するポリシー定義情報設定手段と、
前記業務サーバ上のアプリケーションプログラムの目標性能値、前記仮想化装置の内部キャッシュの構成、および、前記ストレージ装置の外部キャッシュの構成に基づき、前記仮想化装置内の前記内部キャッシュのキャッシュ容量の変更後における予測性能値を計算し、前記予測性能値が前記目標性能値を満たすように前記内部キャッシュのキャッシュメモリの割り当て容量を見積もり、前記仮想化装置の内部キャッシュの構成変更プランを作成する内部キャッシュ構成変更プラン作成手段と、
前記入力部から内部キャッシュの構成変更の指示を受理すると、前記作成された内部キャッシュ構成変更プランに基づいて、前記仮想化装置に前記内部キャッシュ構成の変更要求を発行し、前記内部キャッシュの構成を変更する内部キャッシュ構成変更実行手段と、を有する
ことを特徴とする管理サーバ。
【請求項７】
前記目標性能値は、目標レスポンスタイムであり、
前記アクセス性能情報収集手段は、予め、
前記アプリケーションプログラムから前記ストレージ装置内の論理ボリュームにアクセスをした際の、前記仮想化装置内の内部キャッシュにキャッシュヒットした時のレスポンスタイムである内部キャッシュレスポンスタイムと、前記外部キャッシュにキャッシュヒットした時のレスポンスタイムである外部キャッシュレスポンスタイムと、前記論理ボリュームにアクセスした時のレスポンスタイムである外部ディスクレスポンスタイム、とを記憶しており、
前記内部キャッシュ構成変更プラン作成手段は、
前記内部キャッシュレスポンスタイムと、
前記外部キャッシュレスポンスタイムと、
前記外部ディスクレスポンスタイムと、
前記内部キャッシュのキャッシュ容量に対応するキャッシュヒット率である内部キャッシュヒット率と、
前記内部キャッシュ容量をゼロと仮定した場合の外部キャッシュのキャッシュヒット率である外部キャッシュヒット率と、に基づいて、
前記アプリケーションプログラムから前記ストレージ装置の前記論理ボリュームにアクセスをした際の予測レスポンスタイムを算出する
ことを特徴とする請求項６に記載の管理サーバ。
【請求項８】
前記ポリシー定義情報設定手段は、前記入力部から前記アプリケーションプログラムの重要度を受理すると前記ポリシー定義情報に記憶し、
前記内部キャッシュ構成変更プラン作成手段は、
前記見積もったキャッシュメモリ容量の合計値が、前記仮想化装置に搭載されているキャッシュ容量よりも大きい場合、前記重要度が高い前記アプリケーションプログラムを優先し前記キャッシュメモリの容量の割り当てを行う
ことを特徴とする請求項６に記載の管理サーバ。
【請求項９】
前記ポリシー定義情報設定手段は、前記入力部から前記アプリケーションプログラムの重要度を受理すると前記ポリシー定義情報に記憶し、
前記内部キャッシュ構成変更プラン作成手段は、
前記アプリケーションプログラムの目標性能値を満たす前記キャッシュメモリの割り当てを行い、前記仮想化装置に搭載されているキャッシュメモリ容量が余り、割り当てるキャッシュメモリの容量を増加させる場合、前記重要度が高い前記アプリケーションプログラムを優先して割り当てる
ことを特徴とする請求項６に記載の管理サーバ。
【請求項１０】
前記管理サーバは、さらに、
前記アプリケーションプログラムからのアクセスのＩ／Ｏ特性の変化に基づいて、前記アプリケーションプログラムが目標性能値を満たすために、内部キャッシュ構成をどの時点でどのように変更すべきかを予測し、内部キャッシュ構成変更のスケジュールを作成する内部キャッシュ構成変更スケジュール作成手段を有する
ことを特徴とする請求項６に記載の管理サーバ。
【請求項１１】
複数の業務サーバと、複数の論理ボリュームを有する複数のストレージ装置と、前記複数のストレージ装置を所定に仮想化したストレージとして識別させる仮想化装置とが、第１のネットワークを介して通信可能にされており、前記業務サーバと、前記ストレージ装置と、前記仮想化装置とが、第２のネットワークを介して管理サーバと通信可能にされるストレージシステムにおいて、前記仮想化装置内のキャッシュの構成を管理するキャッシュ構成管理方法であって、
前記管理サーバは、
前記業務サーバ内のアプリケーションプログラム毎に前記仮想化装置の各仮想ボリュームに対していくらのキャッシュ容量を割り当てているかという内部キャッシュの構成、および、前記ストレージ装置の論理ボリュームに対していくらのキャッシュ容量を割り当てているかという外部キャッシュの構成の情報を収集し、キャッシュ構成情報として記憶部に格納するキャッシュ構成情報収集ステップと、
前記アプリケーションプログラムから前記論理ボリュームをアクセスする際の前記仮想化装置および前記ストレージ装置に対する、キャッシュヒット率およびレスポンスタイムであるアクセス性能を収集し、アクセス性能情報として前記記憶部に格納するアクセス性能情報収集ステップと、
前記アプリケーションプログラムの目標性能値を入力部から受理するとポリシー定義情報として前記記憶部に記憶するポリシー定義情報設定ステップと、
前記業務サーバ上のアプリケーションプログラムの目標性能値、前記仮想化装置の内部キャッシュの構成、および、前記ストレージ装置の外部キャッシュの構成に基づき、前記仮想化装置内の前記内部キャッシュのキャッシュ容量の変更後における予測性能値を計算し、前記予測性能値が前記目標性能値を満たすように前記内部キャッシュのキャッシュメモリの割り当て容量を見積もり、前記仮想化装置の内部キャッシュの構成変更プランを作成する内部キャッシュ構成変更プラン作成ステップと、
前記入力部から内部キャッシュの構成変更の指示を受理すると、前記作成された内部キャッシュ構成変更プランに基づいて、前記仮想化装置に前記内部キャッシュ構成の変更要求を発行し、前記内部キャッシュの構成を変更する内部キャッシュ構成変更実行ステップと、
を含んで実行することを特徴とするキャッシュ構成管理方法。
【請求項１２】
前記目標性能値は、目標レスポンスタイムであり、
前記アクセス性能情報収集ステップは、予め、
前記アプリケーションプログラムから前記ストレージ装置内の論理ボリュームにアクセスをした際の、前記仮想化装置内の内部キャッシュにキャッシュヒットした時のレスポンスタイムである内部キャッシュレスポンスタイムと、前記外部キャッシュにキャッシュヒットした時のレスポンスタイムである外部キャッシュレスポンスタイムと、前記論理ボリュームにアクセスした時のレスポンスタイムである外部ディスクレスポンスタイム、とを記憶しており、
前記内部キャッシュ構成変更プラン作成ステップは、
前記内部キャッシュレスポンスタイムと、
前記外部キャッシュレスポンスタイムと、
前記外部ディスクレスポンスタイムと、
前記内部キャッシュのキャッシュ容量に対応するキャッシュヒット率である内部キャッシュヒット率と、
前記内部キャッシュ容量をゼロと仮定した場合の外部キャッシュのキャッシュヒット率である外部キャッシュヒット率と、に基づいて、
前記アプリケーションプログラムから前記ストレージ装置の前記論理ボリュームにアクセスをした際の予測レスポンスタイムを算出する
ことを特徴とする請求項１１に記載のキャッシュ構成管理方法。
【請求項１３】
前記ポリシー定義情報設定ステップは、前記入力部から前記アプリケーションプログラムの重要度を受理すると前記ポリシー定義情報に記憶し、
前記内部キャッシュ構成変更プラン作成ステップは、
前記見積もったキャッシュメモリ容量の合計値が、前記仮想化装置に搭載されているキャッシュ容量よりも大きい場合、前記重要度が高い前記アプリケーションプログラムを優先し前記キャッシュメモリの容量の割り当てを行う
ことを特徴とする請求項１１に記載のキャッシュ構成管理方法。
【請求項１４】
前記ポリシー定義情報設定ステップは、前記入力部から前記アプリケーションプログラムの重要度を受理すると前記ポリシー定義情報に記憶し、
前記内部キャッシュ構成変更プラン作成ステップは、
前記アプリケーションプログラムの目標性能値を満たす前記キャッシュメモリの割り当てを行い、前記仮想化装置に搭載されているキャッシュメモリ容量が余り、割り当てるキャッシュメモリの容量を増加させる場合、前記重要度が高い前記アプリケーションプログラムを優先して割り当てる
ことを特徴とする請求項１１に記載のキャッシュ構成管理方法。
【請求項１５】
前記管理サーバは、さらに、
前記アプリケーションプログラムからのアクセスのＩ／Ｏ特性の変化に基づいて、前記アプリケーションプログラムが目標性能値を満たすために、内部キャッシュ構成をどの時点でどのように変更すべきかを予測し、内部キャッシュ構成変更のスケジュールを作成する内部キャッシュ構成変更スケジュール作成ステップを有する
ことを特徴とする請求項１１に記載のキャッシュ構成管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
ストレージ装置の仮想化技術に係り、仮想化装置内のキャッシュ容量の見積もりやキャッシュの割り当て作業を軽減することができるキャッシュ構成管理システム、管理サーバおよびキャッシュ構成管理方法に関する。
【背景技術】
【０００２】
ＳＡＮ（Storage Area Network）環境の大規模化により、ベンダや機種が多岐に渡るストレージ装置の運用、管理コストが増大してきている。そのため、ストレージ資源の有効活用、および管理コストの低減を目的として、複数台のストレージ装置内の記憶領域を仮想化装置内にマッピングし、一元的に運用、管理する仮想化技術が普及してきている。
【０００３】
しかし、仮想化したストレージシステムは、サーバからのアクセスの際にデータが仮想化装置を経由しなければならず、性能が低下する場合がある。特許文献１では仮想化装置を導入したストレージシステムにおいて、仮想化装置から各外部サブシステムに対するレスポンスタイムを計測し、レスポンスタイムが長い外部サブシステムにキャッシュを多く割り当てることでアクセス性能を向上させる方法について言及している。
【特許文献１】特開２００７−１７９１５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
特許文献１のストレージシステムでは、キャッシュ割り当て後のレスポンスタイムの予測値は求めておらず、またアプリケーションプログラムがストレージに求める目標性能値のひとつであるレスポンスタイム（以降、「目標レスポンスタイム」と呼ぶ。）についても考慮していない問題があった。
【０００５】
本発明は、前記の課題を解決するための発明であって、目標性能値を考慮した仮想化装置内のキャッシュ容量の見積もりやキャッシュの割り当て作業を軽減することができるキャッシュ構成管理システム、管理サーバおよびキャッシュ構成管理方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
前記目的を達成するために、業務サーバ（例えば、業務サーバ１０１）と、ストレージ装置（例えば、ストレージ装置１０６）と、複数のストレージ装置を所定に仮想化したストレージとして識別させる仮想化装置（例えば、仮想化装置１０５）と、管理サーバ（例えば、ストレージ管理サーバ１０７）とを有するストレージシステムにおいて、管理サーバは、仮想化装置およびストレージ装置のキャッシュの構成、アクセス性能から、仮想化装置の業務サーバに対するレスポンスタイムを予測し、内部キャッシュ（例えば、内部キャッシュ１２３）の仮想ボリューム（例えば、仮想ボリューム１２５）への割り当ての有無、および割り当て容量による性能予測値を評価することで、目標性能値を満たす仮想化装置内のキャッシュ容量の判定、および、適切なキャッシュ容量の見積もりを行い、内部キャッシュ構成の変更プランを作成し、変更することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、目標性能値を考慮した仮想化装置内のキャッシュ容量の見積もりやキャッシュの割り当て作業を軽減することができる。
【発明を実施するための最良の形態】
【０００８】
以下、本発明の実施形態を、図面を参照しながら詳細に説明する。
（第１の実施形態）
第１の実施形態では、仮想化装置に外部接続したストレージ装置内の論理ボリュームを、仮想化装置側に取り込み仮想ボリュームとした場合に、運用管理プログラムが仮想ボリュームに割り当てる仮想化装置内のキャッシュ容量を、目標レスポンスタイムが満たされる適切な容量に変更する。以下、その方法について詳細に説明する。
【０００９】
（第１の実施形態におけるシステムの構成）
図１Ａは、本発明の第１の実施形態における、ストレージシステムを示すブロック図である。ＳＡＮ１０３に業務サーバ１０１および仮想化装置１０５が接続されている。また、ＳＡＮ１０４に仮想化装置１０５とストレージ装置１０６が接続されている。ＳＡＮ１０３，１０４（第１のネットワーク）は図のように分かれていても良いが、１つであっても良い。業務サーバ１０１は一台であっても複数台あっても良い。ストレージ装置１０６は一台であっても複数台あっても良い。ストレージ装置１０６の属性（例えば、ベンダ）は、仮想化装置１０５の属性と同じであっても良いし異なっていても良い。仮想化装置１０５は、通信ネットワークを構成するスイッチ装置の形態であっても良い。
【００１０】
（ストレージ装置）
ストレージ装置１０６は、コントローラ１２２、外部キャッシュ１２４、論理ボリューム１２６、ＳＡＮインターフェース１１８およびＬＡＮ（Local Area Network）インターフェース１１９を備える。コントローラ１２２は、外部キャッシュ１２４および論理ボリューム１２６に対するデータの入出力の制御を行う制御部である。また、外部キャッシュ１２４のキャッシュヒット率（以降、「外部キャッシュヒット率」と呼ぶ。）を測定する。測定した情報は、ＬＡＮ１１２（第２のネットワーク）を経由し、ストレージ管理サーバ１０７（管理サーバ）へ送信される。
【００１１】
（仮想化装置）
仮想化装置１０５は、ＳＡＮインターフェース１１５とＳＡＮインターフェース１１７を有し、ＳＡＮインターフェース１１５によりＳＡＮ１０３に接続され、ＳＡＮインターフェース１１７によりＳＡＮ１０４に接続されている。また、仮想化装置１０５は、ＬＡＮインターフェース１１６を有し、ＬＡＮインターフェース１１６によりＬＡＮ１１２に接続されている。
【００１２】
仮想化装置１０５は、所定に仮想化してストレージ装置１０６の有するボリュームを自己のボリュームとして業務サーバ１０１に提供することができる。仮想化装置１０５は、その内部に論理ボリュームを有していなくても良いし、有していても良い。
【００１３】
仮想化装置１０５内に点線で示した仮想ボリューム１２５は、ストレージ装置１０６内の論理ボリューム１２６を仮想化装置１０５側に取り込んだ状態を示すものである。即ち、本実施形態では、仮想化装置１０５から見て、外部に存在する論理ボリューム１２６を、仮想化装置１０５内の仮想ボリューム１２５として業務サーバ１０１に論理ボリューム１２６の記憶資源を提供することができる。
【００１４】
コントローラ１２１は、内部キャッシュ１２３および仮想ボリューム１２５に対するデータの入出力の制御を行う制御部である。また、内部キャッシュ１２３のキャッシュヒット率（以降、「内部キャッシュヒット率」と呼ぶ。）を測定する。測定した情報は、ＬＡＮ１１２を経由し、ストレージ管理サーバ１０７へ送信される。
【００１５】
図１Ｂは、仮想化装置およびストレージ装置の詳細を示す説明図である。図１Ｂにおいて、図１Ａから仮想化装置１０５、ＳＡＮ１０４およびストレージ装置１０６を抜き出し、内部キャッシュ１２３と外部キャッシュ１２４について示す。ストレージ装置１０６において、論理ボリューム１２６が複数存在する場合、各論理ボリューム１２６を区別するために、１台のストレージ装置１０６内においてユニークな番号であるボリュームＩＤ（identification）が割り振られている。また、ストレージ装置１０６が複数台存在する場合、各ストレージ装置１０６を区別するために、ストレージシステム全体においてユニークな番号であるストレージ装置ＩＤが後述するキャッシュ構成情報収集プログラム１００１によって割り振られている。本実施形態では、仮想ボリュームのボリュームＩＤはストレージ装置１０６のストレージ装置ＩＤとボリュームＩＤを、アンダーバーで繋げたものにしている。
【００１６】
内部キャッシュ１２３と外部キャッシュ１２４は、それぞれ仮想ボリューム１２５と論理ボリューム１２６ごとに、ある容量を割り当てることができる。キャッシュを割り当てる単位は、本実施形態ではボリュームにしているが、ストレージ装置１０６ごとに割り当てることもできる。さらに１つ以上の論理ボリュームから構成されデータグループとしてみなされるＲＡＩＤグループ（パリティグループ或いはアレイグループと呼ばれることもある）ごとにキャッシュを割り当てることもできる。
【００１７】
内部キャッシュ１２３内の符号１２３Ａから符号１２３Ｄ、およびストレージ装置１０６内の符号１２４Ａから符号１２４Ｄの各数値は、各ボリュームに割り当てたキャッシュ容量を示している。例えば、ボリュームＩＤが「Storage００１＿０：０１」である仮想ボリューム１２５に割り当てられているキャッシュ容量は符号１２３Ａが示す１００ＭＢである。ストレージ装置ＩＤが「Storage００７」であるストレージ装置１０６内のボリュームＩＤが「０：０８」である論理ボリューム１２６に割り当てられている外部キャッシュ１２４の容量は、符号１２４Ｃが示す１００ＭＢである。
【００１８】
（業務サーバ）
図１Ａに戻り、業務サーバ１０１は、ＳＡＮインターフェース１１４を有し、ＳＡＮインターフェース１１４によりＳＡＮ１０３に接続されている。また、業務サーバ１０１はＬＡＮインターフェース１１３を有し、ＬＡＮインターフェース１１３によりＬＡＮ１１２に接続されている。業務サーバ１０１上では、アプリケーションプログラム１０２とエージェント（agent）１２７が動作する。アプリケーションプログラム１０２は、１つの業務サーバ１０１上に１つだけ存在しても良いし、複数あっても良い。エージェント１２７は、アプリケーションプログラム１０２が書き込み、又は読み込みを行う、各ボリュームに対するアクセス情報を収集したり、アプリケーションプログラム１０２が仮想化装置１０５に対してデータの書き込み、又は読み込み命令を出し応答が返ってくるまでの、レスポンスタイムの情報を収集したりする。収集した情報はＬＡＮ１１２を経由し、ストレージ管理サーバ１０７へ送信される。
【００１９】
（ストレージ管理サーバ）
ストレージ管理サーバ１０７は、ＣＰＵ（Central Processing Unit）１０８、メモリ１０９、表示部１１０、入力部１１１およびＬＡＮインターフェース１２０を備え、ＬＡＮインターフェース１２０によりＬＡＮ１１２に接続されている。ストレージ管理サーバ１０７は、エージェント１２７、コントローラ１２１およびコントローラ１２２が収集した情報をＬＡＮ１１２経由で受信する。ＣＰＵ１０８は、メモリ１０９に記憶されている後述する図２の運用管理プログラム２０１を読み出して実行することによって、各種処理を行う。また、ＣＰＵ１０８は、各種処理過程でユーザとのインタラクションを必要とする情報を表示部１１０に表示する。さらに、ＣＰＵ１０８は、前記インタラクションを通じて、入力部１１１から入力された情報を処理する。
【００２０】
（第１の実施形態におけるメモリの構成）
図２は、本発明の第１の実施形態における、ストレージ管理サーバ上のメモリの構成を示すブロック図である。ストレージ管理サーバ１０７上のメモリ１０９は、運用管理プログラム２０１および運用管理データベース（以下、「運用管理ＤＢ（Data Base）」と記す。）２０２を記録している。
【００２１】
運用管理プログラム２０１は、キャッシュ構成情報収集プログラム１００１、アクセス性能情報収集プログラム１００２、ポリシー定義情報設定プログラム１００３、内部キャッシュ構成変更プラン作成プログラム１００４（図９参照）、内部キャッシュ構成変更実行プログラム１０１３、および内部キャッシュ構成変更スケジュール作成プログラム１０１４（図１５参照）から構成される。
【００２２】
運用管理ＤＢ２０２は、キャッシュ構成情報テーブル１００５（図３参照）、アクセス性能情報テーブル１００６（図４参照）、ポリシー定義情報テーブル１００７（図５Ａ参照）、キャッシュヒット率情報テーブル１００８（図７参照）、内部キャッシュ構成変更プラン格納テーブル１００９（図８Ａ参照）、Ｉ／Ｏ特性履歴情報テーブル１０１１（図１３参照）、および内部キャッシュ構成変更スケジュールテーブル１０１２（図１４参照）から構成されている。
【００２３】
（キャッシュ構成情報収集プログラム）
キャッシュ構成情報収集プログラム１００１は、論理ボリューム１２６に割り当てられている外部キャッシュ容量と、当該論理ボリューム１２６に対応する仮想ボリューム１２５に割り当てられている内部キャッシュ容量の情報を収集し、キャッシュ構成情報テーブル１００５に格納する。
【００２４】
さらに、各業務サーバ１０１のエージェント１２７から送られてきたアプリケーションプログラム１０２の情報を基に、アプリケーションプログラム１０２を一意に識別できるアプリケーションＩＤを付与する。このアプリケーションＩＤもキャッシュ構成情報テーブル１００５に格納する。内部キャッシュ容量の割り当てに関する情報については、仮想化装置１０５内のコントローラ１２１から送られてくる情報を収集する。外部キャッシュ容量の割り当てに関する情報については、ストレージ装置１０６内のコントローラ１２２から送られてくる情報を収集する。
【００２５】
アプリケーションプログラム１０２と仮想ボリューム１２５の対応は、一般的には次に述べる３つのレイヤーの情報により対応付けることができる。３つのレイヤーとは、アプリケーションプログラム１０２からファイルシステムまで、ファイルシステムからＬＵＮ（Logical Unit Number）まで、そしてＬＵＮから仮想ボリューム１２５まで、である。
【００２６】
まず、アプリケーションプログラム１０２からファイルシステムまでのレイヤーにおいては、アプリケーションプログラム１０２とファイルシステムの対応関係は、ユーザによる入力、又はエージェント１２７によるディスクＩ／Ｏの監視、或いはアプリケーションプログラム１０２の構成情報を認識可能な専用のエージェント１２７で収集する。次にファイルシステムからＬＵＮまでのレイヤーにおいては、エージェント１２７がＯＳ（Operating System）の構成情報により対応付ける。
【００２７】
最後にＬＵＮから仮想ボリューム１２５までのレイヤーでは、仮想化装置１０５のコントローラ１２１から収集した情報に基づいて対応付けを行う。これら３つのレイヤーから収集した情報を基にキャッシュ構成情報収集プログラム１００１がアプリケーションプログラム１０２と仮想ボリューム１２５との対応関係を管理する。
【００２８】
（アクセス性能情報収集プログラム）
アクセス性能情報収集プログラム１００２は、各仮想ボリューム１２５の内部キャッシュヒット率をコントローラ１２１から、外部キャッシュヒット率をコントローラ１２２から収集する。また、業務サーバ１０１が仮想化装置１０５に対して書き込み、又は読み込み命令を出した時の、データの平均Ｉ／Ｏサイズとそのデータの単位サイズのデータのアクセス頻度の分散値をコントローラ１２１によって求め、アクセス性能情報テーブル１００６に格納する。なお、アクセス頻度の分散値は、エージェント１２７で求めても良いし、コントローラ１２１又はエージェント１２７より収集した情報に基づき、アクセス性能情報収集プログラム１００２で求めても良い。
【００２９】
内部キャッシュ１２３にキャッシュヒットした時のレスポンスタイム（以降、「内部キャッシュレスポンスタイム」と呼ぶ。）と外部キャッシュ１２４にキャッシュヒットした時のレスポンスタイム（以降、「外部キャッシュレスポンスタイム」と呼ぶ。）と論理ボリューム１２６にアクセスした時のレスポンスタイム（以降、「外部ディスクレスポンスタイム」と呼ぶ。）については、アクセス性能情報収集プログラム１００２がストレージ装置ごとの性能値を予め保持しており、その値を用いる。詳細は後述する。
【００３０】
（ポリシー定義情報設定プログラム）
ポリシー定義情報設定プログラム１００３は、業務サーバ１０１上のアプリケーションプログラム１０２の求める目標レスポンスタイム（目標性能値）、アプリケーションプログラム１０２の重要度、および非仮想化環境から仮想化環境への移行の際の許容性能低下度をユーザに入力させ、入力された値をポリシー定義情報設定プログラム１００３が、ポリシー定義情報テーブル１００７に格納する。ポリシー定義情報テーブル１００７の詳細は後述する。
【００３１】
（内部キャッシュ構成変更プラン作成プログラム）
内部キャッシュ構成変更プラン作成プログラム１００４は、業務サーバ１０１上のアプリケーションプログラム１０２の目標レスポンスタイム（目標性能値）および重要度、仮想化装置１０５の内部キャッシュの構成、ストレージ装置１０６の外部キャッシュの構成に基づき、仮想化装置１０５の内部キャッシュ１２３の構成変更プランを作成する。ここでの内部キャッシュの構成とは、各仮想ボリューム１２５に対していくらのキャッシュ容量を割り当てているかを意味する。同様に外部キャッシュの構成とは、各論理ボリューム１２６に対していくらのキャッシュ容量を割り当てているかを意味する。詳細は図９から図１２を参照して後述する。
【００３２】
（内部キャッシュ構成変更実行プログラム）
内部キャッシュ構成変更実行プログラム１０１３は、前記内部キャッシュ構成変更プラン作成プログラム１００４によって作成された内部キャッシュ構成変更プランに基づいて、仮想化装置１０５のコントローラ１２１にキャッシュ構成の変更要求を発行し、仮想化装置１０５の内部キャッシュ１２３の構成を変更する。
【００３３】
本実施形態では、仮想化装置１０５の内部キャッシュ１２３とストレージ装置１０６の外部キャッシュ１２４のいずれに対しても、仮想ボリューム１２５又は論理ボリューム１２６の単位でキャッシュを割り当てられることを想定して記載しているが、ハードウェアの制約などにより、ボリューム単位ではキャッシュを割り当てられず、アレイグループ単位、あるいは装置（仮想化装置１０５又はストレージ装置１０６）の単位でしか割り当てられないこともある。あるいは、キャッシュ利用効率の向上のため、ボリュームよりも大きな単位でキャッシュを割り当てたほうが良いこともある。
【００３４】
そうしたことを考慮し、当該アレイグループ又は当該装置に含まれるボリューム群をグループ化して、グループに含まれる各ボリュームに対応するキャッシュ容量の合計値を求めて、この合計値をアレイグループ又は装置のキャッシュ容量とするようにしてキャッシュ構成変更処理を行っても良い。
【００３５】
（内部キャッシュ構成変更スケジュール作成プログラム）
内部キャッシュ構成変更スケジュール作成プログラム１０１４は、アプリケーションプログラム１０２からのアクセスのＩ／Ｏ特性の変化に基づいて、アプリケーションプログラム１０２が目標レスポンスタイムを満たすために、内部キャッシュ構成をどの時点でどのように変更すべきかを予測しスケジュールを作成する。詳細は図１５を参照して後述する。
【００３６】
（キャッシュ構成情報テーブル）
図３は、キャッシュ構成情報テーブルの内容を示す説明図である。キャッシュ構成情報テーブル１００５は、ストレージ装置を一意に識別できるストレージ装置ＩＤ１００５Ａ、ストレージ装置１０６内で論理ボリュームを一意に識別できるボリュームＩＤ１００５Ｂ、論理ボリューム１２６を仮想化装置１０５側に取り込み仮想ボリューム１２５とした時に仮想ボリューム１２５へ割り当てられている内部キャッシュ１２３の内部キャッシュ容量１００５Ｃ、各論理ボリューム１２６へ割り当てられている外部キャッシュ容量１００５Ｄ、ボリューム容量１００５Ｅ、および仮想ボリューム１２５を利用するアプリケーションプログラム１０２を一意に識別するアプリケーションＩＤ１００５Ｆをフィールドとして含む。
【００３７】
キャッシュ構成情報テーブル１００５の内容は、内部キャッシュ構成変更実行プログラム１０１３が仮想化装置１０５のコントローラ１２１に対して内部キャッシュ構成の変更要求を行って内部キャッシュ構成を変更した時に、内部キャッシュ構成変更実行プログラム１０１３から更新される。
【００３８】
（アクセス性能情報テーブル）
図４は、アクセス性能情報テーブルの内容を示す説明図である。アクセス性能情報テーブル１００６は、ストレージ装置ＩＤ１００６Ａ、ボリュームＩＤ１００６Ｂ、内部キャッシュヒット率１００６Ｃ、内部キャッシュ１２３上のデータにキャッシュヒットした場合の業務サーバ１０１への応答時間である内部キャッシュレスポンスタイム１００６Ｄ、外部キャッシュヒット率１００６Ｅ、外部キャッシュ１２４上のデータにキャッシュヒットした場合の業務サーバ１０１への応答時間である外部キャッシュレスポンスタイム１００６Ｆ、外部キャッシュ１２４上のデータにキャッシュヒットしなかった場合の業務サーバ１０１への応答時間である外部ディスクレスポンスタイム１００６Ｇ、業務サーバ１０１からのアクセスデータの平均Ｉ／Ｏサイズ１００６Ｈ、および業務サーバ１０１からのアクセス頻度の分散値１００６Ｉをフィールドとして含む。
【００３９】
内部キャッシュヒット率１００６Ｃは、コントローラ１２１から収集し、外部キャッシュヒット率１００６Ｅは、コントローラ１２２から収集する。内部キャッシュレスポンスタイム１００６Ｄと外部キャッシュレスポンスタイム１００６Ｆについては、複数ベンダの多機種の仮想化装置１０５、およびストレージ装置１０６に対する情報を予めアクセス性能情報収集プログラム１００２が保持しており、その値を用いる。
【００４０】
平均Ｉ／Ｏサイズ１００６Ｈは、ある測定期間（例えば、１時間など）において、アプリケーションプログラム１０２からのアクセスにおける入出力データをエージェント１２７とコントローラ１２１が監視し、Ｉ／Ｏサイズの合計値をアクセス回数で除算して求める。アクセス頻度の分散値１００６Ｉも、平均Ｉ／Ｏサイズ１００６Ｈと同様に、ある測定期間において、アプリケーションプログラム１０２からのアクセスにおける入出力データの単位サイズのデータごとにカウントしたアクセス回数を基に、単位サイズのデータごとにアクセス頻度の分散値を求めたものである。
【００４１】
（ポリシー定義情報設定テーブル）
図５Ａは、ポリシー定義情報テーブルの内容を示す説明図である。ポリシー定義情報テーブル１００７は、アプリケーションプログラム１０２を一意に識別できるアプリケーションＩＤ１００７Ａ、アプリケーションプログラム１０２の目標レスポンスタイム１００７Ｂ、アプリケーションプログラム１０２の相対的な重要度１００７Ｃ、および非仮想化環境から仮想化環境への移行の際に非仮想化環境で測定されたレスポンスタイムに対して仮想化環境への移行後の予測レスポンスタイムとして許容できる許容性能低下度１００７Ｄをフィールドとして含む。なお、本実施形態においては、重要度の数値が小さいものほど重要であるとしている。
【００４２】
（ポリシー定義情報設定における設定画面）
図５Ｂは、ポリシー定義情報の設定方法を示す画面例である。図５Ｂは、ポリシー定義情報テーブル１００７の各フィールドに対応し、各アプリケーションプログラム１０２が求める目標レスポンスタイム、各アプリケーションプログラム１０２の重要度、および許容性能低下度について、ユーザが設定する際に表示部１１０に表示する画面例を図示したものである。本画面例では、アプリケーションＩＤ（ｄ５００）、目標レスポンスタイムｄ５０１、重要度ｄ５０２、許容性能低下度ｄ５０３が表示されている。ユーザは、各アプリケーションＩＤ（ｄ５００）で示されるアプリケーションプログラム１０２について、目標レスポンスタイムｄ５０１、重要度ｄ５０２、および許容性能低下度ｄ５０３を設定することができる。
【００４３】
なお、本実施形態では目標レスポンスタイム、重要度、許容性能低下度をそれぞれ個別に設定できるようにしているが、ポリシー定義情報設定プログラムが、重要度ｄ５０２に基づき許容性能低下度ｄ５０３を決定したり、重要度ｄ５０２に基づき目標レスポンスタイムｄ５０１を決定したりするようにしても差し支えない。
【００４４】
（キャッシュ容量とキャッシュヒット率に関する基本的な考え方）
図６は、キャッシュ容量とキャッシュヒット率の関係に関する基本的な考え方を示す説明図である。なお、ここで説明するのは概算のための近似手法の一例であり、別の近似手法を使っても差し支えない。図６には上段、中段、下段に３つのグラフを示しており、上から順に説明する。
【００４５】
上段のグラフは、ボリューム内の単位サイズのデータごとのアクセス頻度（アクセス回数）を示したグラフである。これをアクセス頻度が高い順に並び替えたものが中段のグラフである。並び替えた後アクセス頻度を曲線で結んだものをy=g(x) とする。ここで下段のグラフ（実線）にて横軸を割り当てる内部キャッシュ容量とみなすと、あるキャッシュ容量cを割り当てるとした時のキャッシュヒット率rは、y=g(x)全体の面積に対するy=g(x) の0からcまでの面積で表すことができる。これをf(c)とし、キャッシュ容量とキャッシュヒット率の関係をr=f(c)として表すことができる。
【００４６】
この式において、キャッシュ容量を増加させると、その増加にともない、キャッシュヒット率が増加する。ボリューム内でアクセスされるデータに偏りがある場合（破線（Ａ）に相当）、すなわちアクセス頻度の分散値が大きい場合、キャッシュ容量が小さい時でもキャッシュヒット率は高い分、キャッシュ容量を増やして行ってもキャッシュヒット率はあまり向上しない。キャッシュ容量が小さい時にはキャッシュヒット率の増加は大きいが、キャッシュ容量が大きくなるとキャッシュヒット率の増加は小さくなると言える。
【００４７】
一方、ボリューム内でアクセスされるデータに偏りがなく、満遍なくアクセスされる場合、すなわちアクセス頻度の分散値が小さい場合（破線（Ｂ）に相当）、キャッシュ容量が小さい時のキャッシュヒット率はあまり高くないが、キャッシュ容量を増やしていくと相応のキャッシュヒット率の向上が見られる。キャッシュ容量が小さい時にはキャッシュヒット率の増加は小さいが、キャッシュ容量が大きくなった場合でもその増加はあまり変化せず、分散値が大きい場合に比べそれ程小さくはならないと言える。なお、ここでパラメタcは割り当てるキャッシュ容量としたが、キャッシュ容量の代わりに、キャッシュ容量／ボリューム容量をパラメタとして使用しても差し支えない。
【００４８】
（キャッシュヒット率情報テーブル）
図７は、キャッシュヒット率情報テーブルの内容を示す説明図である。アプリケーションプログラム１０２のＩ／Ｏ特性には、データのＩ／Ｏサイズや、データに対するアクセスの分散値、データアクセスがランダムアクセスであるかシーケンシャルアクセスであるか、読み込みが多いのか書き込みが多いのか、など多数の属性が存在する。本発明は、Ｉ／Ｏ特性が類似したアプリケーションプログラム１０２は、キャッシュ容量とキャッシュヒット率の相関モデルに関して、同様の相関モデルの適用によって近似が可能という考え方に基づいている。
【００４９】
図６の説明で述べたように、アクセス頻度の分散値が大きい場合のキャッシュ容量とキャッシュヒット率との関係を示す曲線と、アクセス頻度の分散値が小さい場合のキャッシュ容量とキャッシュヒット率との関係を示す曲線は、異なる特徴を持つカーブになると考えられる。なお、本発明ではＩ／Ｏ特性として、平均Ｉ／Ｏサイズとアクセス頻度の分散値を例に挙げ説明するが、他の属性を用いても本発明の実施には差し支えない。
【００５０】
キャッシュヒット率情報テーブル１００８は、キャッシュ容量とキャッシュヒット率の関係を前記Ｉ／Ｏ特性（平均Ｉ／Ｏサイズとアクセス頻度の分散値）に基づきモデル化したものであり、モデルを一意に識別するためのキャッシュヒット率モデル名１００８Ａ、平均Ｉ／Ｏサイズ１００８Ｂ、アクセス頻度の分散値１００８Ｃ、およびキャッシュ容量とキャッシュヒット率を数式化したキャッシュ容量のモデル式１００８Ｄのフィールドを含む。キャッシュヒット率情報テーブル１００８は、運用管理プログラム２０１がストレージ管理サーバ１０７にインストールされた時点で作成されるものであるが、運用中の測定値を使い、ユーザが相関モデルをチューニングしたり、新たなモデルを作成したりしても、本実施形態には差し支えない。
【００５１】
（内部キャッシュ構成変更プラン格納テーブル）
図８Ａは、内部キャッシュ構成変更プラン格納テーブルの内容を示す説明図である。内部キャッシュ構成変更プラン格納テーブル１００９は、割り当てる内部キャッシュの容量や内部キャッシュを割り当てた場合の予測レスポンスタイムなどを格納しておくテーブルであり、後述する内部キャッシュ構成変更処理によってレコードが作成される。
【００５２】
内部キャッシュ構成変更プラン格納テーブル１００９は、ストレージ装置ＩＤ１００９Ａ、ボリュームＩＤ１００９Ｂ、内部キャッシュ容量１００９Ｃ、内部キャッシュヒット率１００９Ｄ、内部キャッシュレスポンスタイム１００９Ｅ、外部キャッシュヒット率１００９Ｆ、外部キャッシュレスポンスタイム１００９Ｇ、外部ディスクレスポンスタイム１００９Ｈ、および内部キャッシュヒット時、外部キャッシュヒット時、外部ディスクアクセス時のそれぞれのレスポンスタイムを考慮した予測レスポンスタイム１００９Ｉをフィールドとして含む。
【００５３】
内部キャッシュ容量１００９Ｃは、アプリケーションプログラム１０２のポリシー定義情報によって期待される性能を満たすために必要な内部キャッシュ容量を見積もった値である。内部キャッシュ容量１００９Ｃが０ＭＢの場合は、内部キャッシュを割り当てなくても期待される性能が満たされることを示す。本実施形態では、内部キャッシュ容量を十分に割り当てても期待される性能を満たせないことを表すために、内部キャッシュ容量１００９Ｃに−１ＭＢといった負の値を設定するが、他にフィールドを追加して表しても差し支えない。詳細は後述する。
【００５４】
（内部キャッシュ構成変更プランの確認および再設定画面）
図８Ｂは、内部キャッシュ構成変更プランの確認・再設定方法を示す画面例である。図８Ｂには、内部キャッシュ構成変更プラン格納テーブル１００９の内容を、表示部１１０の表示画面を通してユーザに提示し、ユーザがキャッシュ容量を確認し必要があれば値を再設定するための画面例を示す。
【００５５】
本画面例では、アプリケーションＩＤ（ｄ６００）が割り振られたアプリケーションプログラム１０２のアクセスする、ストレージ装置ＩＤ（ｄ６０１）とボリュームＩＤ（ｄ６０２）を持つ論理ボリューム１２６に対応する仮想ボリューム１２５に対して、割り当てる予定の内部キャッシュ容量ｄ６０３、その内部キャッシュ容量を割り当てた際のボリュームの予測レスポンスタイムｄ６０４、およびアプリケーションプログラム１０２の目標レスポンスタイムを図示している。本画面でユーザは内部キャッシュ容量ｄ６０３を変更することができ、変更した場合には、後述するように予測レスポンスタイムｄ６０４が再計算され表示される。
【００５６】
例えば、内部キャッシュ容量が８０ＭＢ（ｄ６０６）、予測レスポンスタイムｄ６０４が５．９ｍｓの場合（ｄ６０７）に、内部キャッシュ容量を１２０ＭＢに変更すると（ｄ６０８）、変更後の内部キャッシュ容量１２３に対する予測レスポンスタイムｄ６０４が再計算され、５．５ｍｓ（ｄ６０９）と表示される。再計算の方法は、ステップＳ２１０４（図１０参照）にて後述する。ここで変更された値は、内部キャッシュ構成変更プラン格納テーブル１００９に反映される。
【００５７】
なお、内部キャッシュ構成変更プラン格納テーブル１００９の内部キャッシュ容量１００９Ｃが負の値の場合、内部キャッシュ容量ｄ６０３はブランク表示とし、目標レスポンスタイムを満たす適正な内部キャッシュ容量の見積もりが出来なかったことを示す。また、本画面でＯＫボタンｄ６１０をクリックすることで、内部キャッシュ構成変更実行プログラム１０１３が呼び出され、内部キャッシュ構成変更プラン格納テーブル１００９に格納された構成変更プランに沿って、仮想化装置１０５のコントローラ１２１に内部キャッシュ構成変更要求が発行され、内部キャッシュ構成が変更される。
【００５８】
（Ｉ／Ｏ特性履歴情報テーブル）
図１３は、Ｉ／Ｏ特性履歴情報テーブルの内容を示す説明図である。Ｉ／Ｏ特性履歴情報テーブル１０１１は、Ｉ／Ｏ特性を計測した測定時期１０１１Ａ、ストレージ装置ＩＤ１０１１Ｂ、ボリュームＩＤ１０１１Ｃ、平均Ｉ／Ｏサイズ１０１１Ｄ、および業務サーバ１０１からアクセスされるデータの単位サイズのデータにおけるアクセス頻度の分散値１０１１Ｅのフィールドを含む。
【００５９】
このＩ／Ｏ特性履歴情報テーブル１０１１を基に、各ボリュームのＩ／Ｏ特性の変化に規則性がないかを調べる。規則性がある場合はその時期、例えば特定の日付や曜日、時間帯などによって変化するＩ／Ｏ特性に合わせたキャッシュ容量を予め求めておき、その時期の直前に内部キャッシュ構成の変更を行う。図１３では、ストレージ装置ＩＤ１０１１Ｂが「Storage００１」、かつボリュームＩＤ１０１１Ｃが「０：０１」のボリュームに対するアプリケーションプログラム１０２のＩ／Ｏ特性が、変化していることを表している。
【００６０】
つまり測定時期が「７／２５(金) １７：００−１８：００」の間には、平均Ｉ／Ｏサイズ１０１１Ｄとアクセス頻度の分散値１０１１Ｅがそれぞれ「４００ＫＢ」、「２５」だったＩ／Ｏ特性が、「７／２５(金) １８：００−１９：００」の間には、平均Ｉ／Ｏサイズ１０１１Ｄとアクセス頻度の分散値１０１１Ｅがそれぞれ「８ＫＢ」、「３０５」と変化し、さらに「７／２５(金) １９：００−２０：００」の間には、平均Ｉ／Ｏサイズ１０１１Ｄとアクセス頻度の分散値１０１１Ｅがそれぞれ「４００ＫＢ」、「２５」に戻っている。
【００６１】
（内部キャッシュ構成変更スケジュールテーブル）
図１４は、内部キャッシュ構成変更スケジュールテーブルの内容を示す説明図である。内部キャッシュ構成変更スケジュールテーブル１０１２は、キャッシュ構成の変更を開始する時期である変更開始時期１０１２Ａ、ストレージ装置１０６を一意に識別できるストレージ装置ＩＤ１０１２Ｂ、ストレージ装置１０６内で論理ボリュームを一意に識別できるボリュームＩＤ１０１２Ｃ、および変更後の内部キャッシュ容量１０１２Ｄのフィールドを含む。
【００６２】
図１４の行１０１２Ｌと行１０１２Ｍは、前述した図１３のＩ／Ｏ特性の変化に応じて、内部キャッシュ構成変更スケジュール作成プログラム１０１４が作成したスケジュールである。つまり「毎月最終金曜日の１８：００」にストレージ装置ＩＤが「Storage００１」、ボリュームＩＤが「０：０１」を仮想化装置１０５内にマッピングしている仮想ボリューム１２５に対して内部キャッシュ１２３を「２００ＭＢ」割り当てることを意味している。詳細は後述する。
【００６３】
次に、主要な処理について説明する。第１の実施形態における、ストレージ装置のキャッシュ構成管理システムの処理は、内部キャッシュ構成変更プラン作成処理（図９から図１２参照）、およびＩ／Ｏ特性に基づく内部キャッシュ構成変更スケジュール作成処理（図１５参照）に分類して説明される。それぞれの処理について詳細に説明する。
【００６４】
（内部キャッシュ構成変更プラン作成処理）
図９は、内部キャッシュ構成変更プラン作成処理を示すフローチャートである。図９に示す処理は、ＣＰＵ１０８（図１参照）が、内部キャッシュ構成変更プラン作成プログラム１００４をメモリ１０９上に読み込み実行される。本内部キャッシュ構成変更プラン作成処理は、ユーザによる入力部１１１からの実行命令を契機として実行するものとするが、予め設定した日時に実行するようにしても差し支えない。
【００６５】
ステップＳ２００１において、ＣＰＵ１０８は、仮想化装置１０５の内部キャッシュ容量の見積もり処理（図１０参照）を行う。続くステップＳ２００２において、ＣＰＵ１０８は、ステップＳ２００１で見積もった内部キャッシュ容量が、実際に仮想化装置１０５に搭載されている内部キャッシュ容量の範囲に収まるか否かを判断する処理（図１１参照）を行い、収まらなかった場合に内部キャッシュ割り当て容量の調整を行う。
【００６６】
続くステップＳ２００３において、ＣＰＵ１０８は、ステップＳ２００１で見積もった内部キャッシュ容量が実際に仮想化装置１０５に搭載されている内部キャッシュ容量よりも小さかった場合に、余剰キャッシュを仮想化装置１０５の仮想ボリューム１２５に追加で分配処理（図１２参照）を行う。
【００６７】
最後に、ステップＳ２００４において、ＣＰＵ１０８は、内部キャッシュ構成の表示を行う。図８Ｂで示した確認画面によって、ユーザが内部キャッシュ構成の確認を行い、割り当てるべき内部キャッシュ容量の変更と、仮想化装置１０５のコントローラ１２１を用いた内部キャッシュの構成変更を行う。内部キャッシュ構成変更処理を予め設定した日時に実行する場合、ユーザの確認処理を省き、ここでの表示内容、すなわち内部キャッシュ構成変更プラン格納テーブルの内容をそのまま用いて、仮想化装置１０５のコントローラ１２１を呼び出して内部キャッシュの構成変更を行う。
【００６８】
（内部キャッシュ容量見積もり処理）
図１０は、内部キャッシュ容量見積もり処理を示すフローチャートである。内部キャッシュ容量見積もり処理は、仮想化装置１０５の各仮想ボリューム１２５に対して行う処理である。ここでの見積もり処理では、目標性能を満たす中で最も小さい内部キャッシュ容量を求める。処理主体はＣＰＵ１０８であるが、以下説明において主体名は省略する。
【００６９】
まず、ステップＳ２１０１で、対象の仮想ボリューム１２５に割り当てる内部キャッシュ容量を、ゼロに初期化する。続くステップＳ２１０２で、対象の仮想ボリューム１２５に割り当てる内部キャッシュ容量が、ボリュームごとの上限値を以下であるか（超えていないか）を確認する。ここでの上限値は、仮想化装置１０５に搭載されている内部キャッシュ１２３の総容量に対する一定の割合としても良く、当該仮想ボリューム１２５のボリューム容量の一定割合としても良い。ここで、上限値以下でなかった場合（ステップＳ２１０２，Ｎｏ）、内部キャッシュ容量を十分に割り当てても目標性能を満たすことができないと判断し、ステップＳ２１０３に進み、割り当てる内部キャッシュ容量を負の値（−１ＭＢ）として、ステップＳ２１０７に進む。
【００７０】
次に、ステップＳ２１０２において上限値以下である場合（ステップＳ２１０２，Ｙｅｓ）、ステップＳ２１０４で、性能モデルに基づいた性能予測を行う。アクセス性能情報テーブル１００６（図４参照）から、対象の仮想ボリューム１２５に対応する平均Ｉ／Ｏサイズ１００６Ｈ（μＩＯ）とアクセス頻度の分散値１００６Ｉ（σ２ｆｒｅｑ）を取得し、キャッシュヒット率情報テーブル１００８（図７参照）から最類似のモデルを選択する。最類似のモデルを選択する方法としては、例えば次式で表す値Δが最小になるものを最類似とする方法がある。なお、以下の（Ａ１）式においてａ、ｂは係数であり、システムで固定値としても良く、性能の実測結果などを用いてチューニングしても良い。μｍｏｄｅｌとσ２ｍｏｄｅｌはそれぞれ、キャッシュヒット率情報テーブル１００８のあるモデルにおける、平均Ｉ／Ｏサイズ１００８Ｂとアクセス頻度の分散値１００８Ｃの値を意味する。
Δ＝ａ（μｍｏｄｅｌ−μＩＯ）２＋ｂ（σ２ｍｏｄｅｌ−σ２ｆｒｅｑ）２   …（Ａ１）
【００７１】
前記で最類似と判断されたキャッシュ容量のモデル式１００８Ｄより、内部キャッシュ容量に対応する内部キャッシュヒット率ri、および内部キャッシュ容量をゼロと仮定した場合の外部キャッシュ容量に対応する外部キャッシュヒット率rｅを求める。この時の性能予測値としての予測レスポンスタイムは、キャッシュ構成情報テーブル１００５（図３参照）およびアクセス性能情報テーブル１００６（図４参照）の値を用いて、次のようにして求められる。
【００７２】
内部キャッシュ容量が外部キャッシュ容量１００５Ｄよりも小さい場合、外部キャッシュにヒットするケースを考慮して、予測レスポンスタイムは、（Ａ２）式となる。
（内部キャッシュヒット率ｒｉ×内部キャッシュレスポンスタイム１００６Ｄ）＋（（外部キャッシュヒット率ｒｅ−内部キャッシュヒット率ｒｉ））×外部キャッシュヒット率１００６Ｅ）＋（（１−外部キャッシュヒット率ｒｅ）×外部ディスクレスポンスタイム１００６Ｇ）                                                   …（Ａ２）
【００７３】
内部キャッシュ容量が外部キャッシュ容量１００５Ｄよりも大きい場合、外部キャッシュにヒットするケースがないと考えられるため、予測レスポンスタイムは、（Ａ３）式となる。
（内部キャッシュヒット率ｒｉ×内部キャッシュレスポンスタイム１００６Ｄ）＋
（（１−内部キャッシュヒット率ｒｉ）×外部ディスクレスポンスタイム１００６Ｇ）
…（Ａ３）
【００７４】
ステップＳ２１０５で、予測性能が目標を満たしているか否かを判定する。具体的には、ステップＳ２１０４で求めた予測性能である予測レスポンスタイムと、目標性能であるポリシー定義情報テーブル１００７の目標レスポンスタイム１００７Ｂとを比較する。この時、キャッシュ構成情報テーブル１００５（図３参照）を、対象ボリュームに対応するストレージ装置ＩＤ１００５ＡとボリュームＩＤ１００５Ｂをキーとして参照しアプリケーションＩＤ１００５Ｆを求め、前記アプリケーションＩＤがポリシー定義情報テーブル１００７（図５Ａ参照）のアプリケーションＩＤ１００７Ａと合致する行を参照することで、前記目標レスポンスタイムを求める。
【００７５】
予測性能が目標性能を満たしていない場合（ステップＳ２１０５，Ｎｏ）、ステップＳ２１０６へ進み、内部キャッシュ容量を追加する（ステップＳ２１０６）。そして、ステップＳ２１０２に戻り、再度性能予測を試みる。
【００７６】
予測性能が目標性能を満たすことが出来た場合（ステップＳ２１０５，Ｙｅｓ）、ステップＳ２１０７に進み、対象ボリュームに割り当てる内部キャッシュ容量を確定する。確定した結果は、内部キャッシュ構成変更プラン格納テーブル１００９（図８Ａ参照）に保存する。この時、内部キャッシュ容量１００９Ｃ、内部キャッシュヒット率１００９Ｄ、および外部キャッシュヒット率１００９Ｆは、前記確定した結果および確定に用いたヒット率である。これら以外のフィールドは、アクセス性能情報テーブル１００６（図４参照）でストレージ装置ＩＤ１００６ＡとボリュームＩＤ１００６Ｂが合致する行の同名のフィールドと同じ値とする。
【００７７】
最後にステップＳ２１０８で、全ボリュームに対して内部キャッシュ容量見積もりが完了したか否か（処理を行ったか）を確認し、完了していなかった場合（ステップＳ２１０８，Ｎｏ）、ステップＳ２１０１に戻り、完了していた場合（ステップＳ２１０８，Ｙｅｓ）、内部キャッシュ容量見積もり処理を終了する。
【００７８】
（内部キャッシュ割り当て可否判断処理）
図１１は、内部キャッシュ割り当て可否判断処理を示すフローチャートである。内部キャッシュ割り当て可否判断処理は、前記内部キャッシュ容量見積もり処理の結果である、内部キャッシュ構成変更プラン格納テーブル１００９（図８Ａ参照）の情報が、実際の仮想化装置１０５の内部キャッシュ１２３の総容量の範囲か否かを確認し、範囲外であった場合には重要度が高いアプリケーションに優先して内部キャッシュ容量を割り当てる処理である。処理主体はＣＰＵ１０８であるが、以下説明において主体名は省略する。
【００７９】
まず、ステップＳ２２０１で、内部キャッシュ構成変更プラン格納テーブル１００９（図８Ａ参照）の全行の内部キャッシュ容量１００９Ｃを参照し、値が正のものについての和を求める。これにより、全仮想ボリュームについて割り当てる予定の内部キャッシュ容量の合計値を求める。続くステップＳ２２０２で、前記合計値を仮想化装置１０５に搭載されている内部キャッシュ１２３の容量と比較する。前記合計値が搭載されている容量以下であれば（ステップＳ２２０２，Ｙｅｓ）、内部キャッシュ構成変更プラン格納テーブル１００９の内部キャッシュ容量１００９Ｃはすべて割り当て可能であり、処理を終了する。
【００８０】
ステップＳ２２０１で求めた合計値が仮想化装置１０５に搭載されている内部キャッシュ１２３の総容量よりも大きかった場合（ステップＳ２２０２，Ｎｏ）、ステップＳ２２０３に進み、割り当て対象ボリュームの中で重要度が低いものに関し、内部キャッシュを割り当てないことにして（ステップＳ２２０３）、割り当てるべき内部キャッシュの容量を削減する。
【００８１】
具体的には、内部キャッシュ構成変更プラン格納テーブル１００９（図８Ａ参照）とキャッシュ構成情報テーブル１００５（図３参照）をストレージ装置ＩＤとボリュームＩＤによって、キャッシュ構成情報テーブル１００５（図３参照）とポリシー定義情報テーブル１００７（図５Ａ参照）をアプリケーションＩＤによって、それぞれ結合する。結合表にて、内部キャッシュ構成変更プラン格納テーブル１００９の内部キャッシュ容量１００９Ｃが正の値で、ポリシー定義情報テーブル１００７の重要度１００７Ｃが最大のものを求める。そして、求めた最大の重要度１００７Ｃに対応するものについて、内部キャッシュ構成変更プラン格納テーブル１００９の内部キャッシュ容量１００９Ｃを負の値（−１ＭＢ）として、ステップＳ２２０１に戻る。
【００８２】
（余剰キャッシュ追加配分処理）
図１２は、余剰キャッシュ追加配分処理を示すフローチャートである。余剰キャッシュ追加配分処理は、前記内部キャッシュ容量見積もり処理の結果、仮想化装置１０５に搭載されている内部キャッシュ１２３の容量に余りが出た場合に、ストレージシステム全体での性能向上のために内部キャッシュ追加時の改善度を考慮して追加で割り当てる内部キャッシュ容量を判断する処理である。なお、追加分配処理は必須ではなく、後述するＩ／Ｏ特性に基づく内部キャッシュ構成変更スケジュール作成処理のために余剰キャッシュを残したままにしておいても良い。処理主体はＣＰＵ１０８であるが、以下説明において主体名は省略する。
【００８３】
まず、ステップＳ２３０１で、仮想化装置１０５に搭載されている内部キャッシュ１２３に割り当て予定がない容量があるか否かを確認する。具体的には、内部キャッシュ構成変更プラン格納テーブル１００９（図８Ａ参照）の全行の内部キャッシュ容量１００９Ｃを参照し、値が正のものについての和を求め、これを仮想化装置１０５に搭載されている内部キャッシュ１２３の総容量と比較する。前記和が前記総容量よりも小さかった場合、残りがあると判断できる。残りがなかった場合は（ステップＳ２３０１，Ｎｏ）、処理を終了する。
【００８４】
残りがあった場合（ステップＳ２３０１，Ｙｅｓ）、ステップＳ２３０２で、全ボリュームに対して、内部キャッシュ容量を追加した場合の改善度を算出する。この時に追加するサイズは、システムの固定値でも、内部キャッシュの残容量をシステムの固定値で等分した値などでも構わない。内部キャッシュを追加した場合の予測レスポンスタイムは、ステップＳ２１０４で述べたのと同様の方法で算出し、
（（追加前の予測レスポンスタイム−追加後の予測レスポンスタイム）／追加前の予測レスポンスタイム）
によって、各ボリュームの改善度を算出する。
【００８５】
続くステップＳ２３０３で、ステップＳ２３０２で算出した改善度が最も大きいボリュームに対して、内部キャッシュ容量を追加することにして、その結果を内部キャッシュ構成変更プラン格納テーブル１００９（図８Ａ参照）に反映する。
【００８６】
なお、余剰キャッシュ追加分配処理の他の実施形態として、内部キャッシュを追加した場合の改善度に基づく追加分配ではなく、アプリケーションプログラム１０２の重要度１００７Ｃに応じた追加分配としても良い。１つの実施形態として、重要度を基にした比例配分方法としては、あるボリュームに追加配分するキャッシュ容量Ｃｉは、余剰キャッシュの容量をＣｒｓｔ、あるボリュームにアクセスするアプリケーションプログラム１０２の重要度１００７Ｃをｘｉとすると、例えば以下の（Ａ４）式で求めることが出来る。
Ｃｉ＝ｘｉ／Σｘ＊Ｃｒｓｔ                                     …（Ａ４）
【００８７】
（内部キャッシュ構成変更スケジュール作成処理）
図１５は、Ｉ／Ｏ特性に基づく内部キャッシュ構成変更スケジュール作成処理を示すフローチャートである。Ｉ／Ｏ特性履歴情報テーブル１０１１（図１３参照）より、規則性の有無を判定し、規則性がある場合には、その規則性に応じたタイミングでキャッシュ構成の変更を行うスケジュールを作成する。処理主体はＣＰＵ１０８であるが、以下説明において主体名は省略する。
【００８８】
ステップＳ２４０１では、Ｉ／Ｏ特性に規則的な変化があるか否かを検出する。規則的な変化とは、例えば、毎週特定の曜日のある特定時間帯だけＩ／Ｏ特性が変化するなどである。規則的な変化の検出には、例えば、計測した平均Ｉ／Ｏサイズとアクセス頻度の分散値が共にある割合（例えば２０％）以上変化している測定時期を全て取り上げ、それらが日時や曜日などの観点から、共通点がないかを調べる方法などがある。測定値に規則性がない場合には（ステップＳ２４０１，Ｎｏ）、Ｉ／Ｏ特性に基づく内部キャッシュ構成変更スケジュール作成処理は終了する。規則性がある場合には（ステップＳ２４０１，Ｙｅｓ）、ステップＳ２４０２に進む。ステップＳ２４０２では、Ｉ／Ｏ特性の変化するタイミングに基づき、キャッシュ構成を変更する時刻を求める。
【００８９】
ステップＳ２４０３では、Ｉ／Ｏ特性に基づき対象ボリュームの予測レスポンスタイムを求め、当該時間帯に必要となる内部キャッシュ容量を算出する。内部キャッシュ容量の算出は、図１０のステップＳ２１０１からステップＳ２１０６と同じである。ステップＳ２４０４では、全ボリュームに対して処理を行ったかを判定し、未処理のボリュームがある場合には（ステップＳ２４０４，Ｎｏ）、ステップＳ２４０１からの処理を繰り返す。全ボリュームに対して処理を行っている場合には（ステップＳ２４０４，Ｙｅｓ）、ステップＳ２４０５に進む。
【００９０】
ステップＳ２４０５では、Ｉ／Ｏ特性に規則性のあるボリュームが１つ以上あるか否かの判定を行う。ステップＳ２４０１の処理で規則性があると判定したボリュームが１つもない場合には（ステップＳ２４０５，Ｎｏ）、本処理は終了する。規則性があるボリュームが１つでもある場合には（ステップＳ２４０５，Ｙｅｓ）、ステップＳ２４０６へ進む。
【００９１】
ステップＳ２４０６では、ボリュームごとにステップＳ２４０２で求めた時刻とステップＳ２４０６で求めた内部キャッシュ容量を、内部キャッシュ構成変更スケジュールテーブル１０１２（図１４参照）に格納する。内部キャッシュ構成変更スケジュールテーブルに格納された各行に対応する仮想化装置１０５のコントローラ１２１への内部キャッシュ構成の変更処理は、一般的なＯＳの提供するタスク管理機能などによって指定された時期に実行されることを想定しているが、運用管理プログラム２０１にタスク管理用のプログラムを実装しても差し支えない。
【００９２】
なお、本フローチャートは内部キャッシュ構成変更で必要となるキャッシュ容量が事前に十分確保されていることを前提にして示したが、図１１の内部キャッシュ割り当て可否判断処理で示したように、仮想化装置１０５に搭載されている内部キャッシュ１２３の全容量を考慮してボリュームごとの内部キャッシュ割り当て可否の判断を行うようにしても良い。
【００９３】
（第２の実施形態）
第１の実施形態では、外部接続したストレージ装置内の論理ボリュームを、仮想化装置側に取り込み仮想ボリュームとした場合の、仮想ボリュームに割り当てられている仮想化装置内の内部キャッシュ容量について述べた。第２の実施形態では、仮想化装置が存在しない環境に対して、仮想化装置を新たに導入する際の内部キャッシュ容量の見積もりについて述べる。なお、第１の実施形態と共通する処理については説明を省略し、第１の実施形態と異なる点を中心に述べる。
【００９４】
（第２の実施形態におけるシステムの構成）
図１６は、本発明の第２の実施形態における、ストレージシステムを示すブロック図である。図１Ａと異なる点は、図１Ａの仮想化装置１０５が含まれず、ＳＡＮ１０４も存在しない点である。そのため、業務サーバ１０１は、ＳＡＮ１０３を通し、直接、各ストレージ装置１０６にアクセスを行う。仮想化装置導入後のストレージシステムのブロック図は、図１Ａに示すものとなる。
【００９５】
（第２の実施形態におけるメモリの構成）
図１７は、本発明の第２実施形態における、ストレージ管理サーバ上のメモリの構成を示すブロック図である。第１の実施形態におけるストレージ管理サーバ１０７上のメモリのブロック図（図２参照）と異なるのは、以下の点である。メモリ１０９の運用管理プログラム２０１には、内部キャッシュ構成変更プラン作成プログラム１００４が含まれず、代わりに搭載キャッシュ容量見積もりプログラム１１０１が含まれる。また運用管理ＤＢ２０２には、Ｉ／Ｏ特性履歴情報テーブル、および内部キャッシュ構成変更スケジュールテーブル１０１２が含まれない。
【００９６】
なお、本実施形態では、キャッシュ構成情報テーブル１００５（図３参照）の内部キャッシュ容量１００５Ｃ、アクセス性能情報テーブル１００６（図４参照）の内部キャッシュヒット率１００６Ｃおよび内部キャッシュレスポンスタイム１００６Ｄのフィールドには値が格納されていないものとする。
【００９７】
（レスポンスタイムの評価方法）
図１８は、レスポンスタイムの評価方法を示す説明図である。図１８には、本実施形態における、非仮想化環境および仮想化環境での内部キャッシュの割り当ての有無による、キャッシュヒット時のレスポンスタイム（以降、「キャッシュヒットレスポンスタイム」と呼ぶ。）５００１、キャッシュミスヒット時のレスポンスタイム（以降、「キャッシュミスヒットレスポンスタイム」と呼ぶ。）５００３、およびキャッシュヒット時とミスヒット時を合わせたレスポンスタイムであるボリュームレスポンスタイム５００２について示す。
【００９８】
非仮想化環境下において、図１８に示すようにキャッシュヒットレスポンスタイム、キャッシュミスヒットレスポンスタイム、ボリュームレスポンスタイムが、それぞれ５００１Ａ、５００３Ａ、５００２Ａであったとする。非仮想化環境から仮想化環境への移行（仮想化装置１０５の導入）において、内部キャッシュを割り当てない場合を考えると、業務サーバ１０１からのアクセスの際には、キャッシュヒットの有無に関係なく、仮想化装置１０５とＳＡＮ１０４を経由し、ストレージ装置１０６にアクセスする。
【００９９】
そのため、キャッシュヒットレスポンスタイム５００１Ｂ、キャッシュミスヒットレスポンスタイム５００３Ｂ、およびボリュームレスポンスタイム５００２Ｂは、それぞれ非仮想化環境のキャッシュヒットレスポンスタイム５００１Ａ、キャッシュミスヒットレスポンスタイム５００３Ａ、ボリュームレスポンスタイム５００２Ａに比べ、仮想化装置１０５を経由する時間とＳＡＮ１０４を経由する時間の分、遅くなる。
【０１００】
一方、非仮想化環境から仮想化環境への移行において、内部キャッシュを割り当てる場合を考える。なお割り当てる内部キャッシュ容量は、非仮想化環境で割り当てている外部キャッシュ容量と同容量とし、キャッシュヒット率も変わらないと仮定する。また、内部キャッシュと外部キャッシュの容量が同じ場合には、外部キャッシュ上に存在するデータは、内部キャッシュ上にも存在するため、外部キャッシュによる効果は無く外部キャッシュを取り除いた状態と同じになるとする。
【０１０１】
ストレージ装置と仮想化装置のキャッシュを比較した場合、ストレージ装置１０６の外部キャッシュ１２４よりも仮想化装置内のキャッシュの方が高性能であることが多い。そのため非仮想化環境から仮想化環境への移行において、内部キャッシュを割り当てるとすると、仮想化環境で内部キャッシュを割り当てた場合のキャッシュヒットレスポンスタイム５００１Ｃは、非仮想化環境のキャッシュヒットレスポンスタイム５００１Ａよりも早くなる。
【０１０２】
仮想化環境で内部キャッシュを割り当てた場合のキャッシュミスヒットレスポンスタイム５００３Ｃは、仮想化環境で内部キャッシュを割り当てない場合のキャッシュミスヒットレスポンスタイム５００３Ｂと同じである。ボリュームレスポンスタイムについては、仮想化環境で内部キャッシュを割り当てない場合（５００２Ｂ）に比べ早くなる（５００２Ｃａ）。キャッシュヒット時（５００１Ｃ）のＩＯＰＳ（Input Output Per Second）の量によっては、非仮想化環境のボリュームレスポンスタイム５００２Ａよりも早くなる（５００２Ｃｂ）場合もある。
【０１０３】
別の視点として、アプリケーションプログラム１０２の視点で考えると、頻繁にアクセスするデータである、キャッシュ上に存在するデータのレスポンスタイムが重要であると考えることもできる。そのため、評価方法として、ボリュームレスポンスタイム５００２で考える方法の他に、キャッシュヒットレスポンスタイム５００１だけを評価対象として考える方法が考えられる。以降の説明では、ボリュームレスポンスタイム５００２を使う評価方法で説明を行うが、キャッシュヒットレスポンスタイム５００１だけを使う評価方法を用いることもできる。その場合、目標レスポンスタイムも、キャッシュヒット時の目標レスポンスタイムを用いる。
【０１０４】
（搭載キャッシュ容量見積もり処理）
図１９は、搭載キャッシュ容量見積もりプログラムの処理を示すフローチャートである。第２の実施形態における、搭載キャッシュ容量見積もりプログラム１１０１は、運用管理プログラム２０１により行われる処理である。図１９に示す処理は、ＣＰＵ１０８（図１参照）が、搭載キャッシュ容量見積もりプログラム１１０１をメモリ１０９上に読み込み実行される。処理主体はＣＰＵ１０８であり、以下では主体名は省略する。
【０１０５】
ステップＳ３００１では、業務サーバ１０１が仮想化装置１０５を経由しストレージ装置１０６にアクセスする際における、仮想化装置１０５を経由する時間（以降、「仮想化装置経由時間」と呼ぶ。）T_vrtと、仮想化装置１０５からストレージ装置１０６までに存在するＳＡＮ１０４を経由する時間（以降、「ＳＡＮ経由時間」と呼ぶ。）T_netを取得する。なお、この仮想化装置経由時間は、厳密には状況によりいくつも場合分けを行う必要がある。
【０１０６】
具体的には、業務サーバ１０１がデータを読み込む時において、内部キャッシュ１２３が割り当てられており、業務サーバ１０１からの要求が、仮想化装置１０５に入り内部キャッシュを検索しキャッシュヒットせずストレージ装置１０６に向けて要求が仮想化装置を出る時間、ストレージ装置１０６から読み込んだデータが仮想化装置１０５に入り割り当てられた内部キャッシュ１２３にデータを書き込んで仮想化装置１０５を出てサーバに戻る時間、さらに内部キャッシュ１２３が割り当てられておらず、キャッシュ上のデータの検索を行わずストレージ装置１０６に向けて仮想化装置１０５を出る時間、内部キャッシュ１２３への書き込みを行わず業務サーバ１０１に戻る時間、などが考えられる。
【０１０７】
本実施形態では、キャッシュ容量の見積もりの概算を行うことを目的としているので、詳細な場合分けを行わず、仮想化装置経由時間は１つの値として計算する。仮想化装置経由時間T_vrtの取得に関しては、本実施形態ではカタログのスペック値を予め搭載キャッシュ容量見積もりプログラム１１０１が保持しているが、運用管理プログラム２０１インストール後にユーザが変更することもできる。ＳＡＮ経由時間T_netの計測に関しては、非仮想化環境におけるＳＡＮ１０３の経由時間で代用する。計測方法の一例として、ＳＡＮインターフェース１１４からストレージ装置１０６のコントローラ１２２に対して直ぐに応答を返す信号を送信し、応答が返ってくるまでの時間を計測し、その時間の半分をＳＡＮ経由時間T_netとする。ストレージ装置１０６が複数存在する場合には、その中のいくつかについて測定し、平均値を用いることとしても良い。またＳＡＮ経由時間T_netも、ユーザによる入力を受け付けることも可能である。
【０１０８】
ステップＳ３００２では、キャッシュ構成情報テーブル１００５、アクセス性能情報テーブル１００６、およびポリシー定義情報テーブル１００７より、必要な情報を取得する。取得する情報は、キャッシュ構成情報テーブル１００５より、ストレージ装置ＩＤ１００５ＡID_str、ボリュームＩＤ１００５ＢID_vol、外部キャッシュ容量１００５ＤC_ext、アプリケーションＩＤ１００５ＦID_apを、アクセス性能情報テーブル１００６から、外部キャッシュヒット率１００６ＥR_ext、外部キャッシュレスポンスタイム１００６ＦT_ext、外部ディスクレスポンスタイム１００６ＧT_dsk、平均Ｉ／Ｏサイズ１００６ＨμIO、およびアクセス頻度の分散値１００６Ｉσ2freqを、ポリシー定義情報テーブル１００７より、目標レスポンスタイム１００７ＢT_tgt、許容性能低下度１００７ＤD_prmtを取得する。なお、内部キャッシュレスポンスタイムT_intに関しては、導入する仮想化装置１０５のカタログのスペック値を用いる。
【０１０９】
ステップＳ３００３では、仮想化装置１０５を導入した際に、論理ボリューム１２６に対応する仮想ボリュームに対して、内部キャッシュの割り当て判定処理（図２０参照）を行う。内部キャッシュ１２３の割り当てを行う仮想ボリュームに対応する内部キャッシュ構成変更プラン格納テーブル１００９内の各ボリュームに対して、割り当てキャッシュ容量が内部キャッシュ容量１００９Ｃに格納される。詳細は図２０を参照して後述する。
【０１１０】
ステップＳ３００４では、全ボリュームに対して処理を行ったか否かを判定する。全ボリュームに対して処理が行われていない場合（ステップＳ３００４，Ｎｏ）、ステップＳ３００３の処理に戻る。全てのアプリケーションプログラム１０２から利用されている全ての論理ボリューム１２６に対して行うまで繰り返す。全論理ボリュームに対して処理が完了した場合には（ステップＳ３００４，Ｙｅｓ）、ステップＳ３００５に進む。ステップＳ３００５では、内部キャッシュ容量１００９Ｃの合計値を求め、ユーザに提示する。提示方法の詳細については、図２１を参照して後述する。
【０１１１】
（内部キャッシュ割り当て判定処理）
図２０は、非仮想化環境における内部キャッシュ割り当て判定処理の詳細を示すフローチャートである。図２０に示す内部キャッシュ割り当て判定処理（ステップＳ３００３）では、内部キャッシュ割り当ての要否の判定を、目標レスポンスタイムを満たしているか否か、非仮想化環境下のボリュームレスポンスタイムに対する許容性能低下度D_prmtの範囲内か否かで行う。
【０１１２】
ステップＳ３１０１では、外部キャッシュ容量C_extと外部キャッシュヒット率R_extに基づき内部キャッシュ容量C_intと内部キャッシュヒット率R_intを決める（設定する）。割り当てる内部キャッシュ容量C_intは、外部キャッシュ容量C_extを同じとする。このときの内部キャッシュヒット率R_intは外部キャッシュヒット率R_extと同じと仮定し、内部キャッシュヒット率R_intに外部キャッシュヒット率R_extを用いる。
【０１１３】
ステップＳ３１０２では、内部キャッシュ割り当て時の予測レスポンスタイムT_vol_wcと非割り当て時の予測レスポンスタイムT_vol_clを求める（計算する）。共に仮想化装置経由時間T_vrtとＳＡＮ経由時間T_netを考慮し、以下の（Ａ５）（Ａ６）式で求める。
T_vol_wc = R_int * T_int + (1-R_int) * {T_dsk + (T_vrt + T_net) * 2}
…（Ａ５）
T_vol_cl = R_ext * {T_ext + (T_vrt + T_net) * 2}
+ (1-R_ext) * {T_dsk + (T_vrt + T_net) * 2}      …（Ａ６）
【０１１４】
ここで、仮想化装置経由時間T_vrtとＳＡＮ経由時間T_netに２を掛けているのは、業務サーバ１０１からのアクセス時に、往路と復路で仮想化装置１０５とＳＡＮ１０４を２度経由するためである。
【０１１５】
ステップＳ３１０３では、内部キャッシュ１２３を割り当てない際の予測レスポンスタイムT_vol_clが、目的レスポンスタイムT_tgtを満たしているか否か、或いは非仮想化環境でのボリュームレスポンスタイムに対する許容性能低下度D_prmtの範囲内であるか否かを判定する。満たしている場合、或いは範囲内である場合には（ステップＳ３１０３，Ｙｅｓ）、内部キャッシュを割り当てなくとも目的の性能を満たせるとみなし、ステップＳ３１０４へ進む。
【０１１６】
ステップＳ３１０４では、割り当てる内部キャッシュ容量を「０ＭＢ」、内部キャッシュヒット率を「０％」とし、ストレージ装置ＩＤID_str、ボリュームＩＤID_vol、内部キャッシュヒット率R_int、内部キャッシュレスポンスタイムT_int、外部キャッシュヒット率R_ext、外部キャッシュレスポンスタイムT_ext、外部ディスクレスポンスタイムT_dsk、平均Ｉ／ＯサイズμIO、およびアクセス頻度の分散値σ2freqを内部キャッシュ構成変更プラン格納テーブル１００９に格納し処理を終了する。
【０１１７】
ステップＳ３１０３において、内部キャッシュ非割り当て時の予測レスポンスタイムT_vol_clが、目標レスポンスタイムT_tgtを満たしていない場合、或いは許容性能低下度D_prmtの範囲外の場合には（ステップＳ３１０３，Ｎｏ）、ステップＳ３１０５へ進む。
【０１１８】
ステップＳ３１０５では、内部キャッシュを割り当てた際の予測レスポンスタイムT_vol_wcと目標レスポンスタイムT_tgtを比較し、内部キャッシュを割り当てることで予測レスポンスタイムが、目標レスポンスタイムT_tgtを満たす場合、或いは非仮想環境下のボリュームレスポンスタイムに対する許容性能低下度D_prmtの範囲内かを判定する。内部キャッシュを割り当てることで予測レスポンスタイムが、目標レスポンスタイムT_tgtを満たす場合、或いは非仮想環境下のボリュームレスポンスタイムに対する許容性能低下度D_prmtの範囲内の場合には（ステップＳ３１０５，Ｙｅｓ）、内部キャッシュを割り当てるとし、ストレージ装置ＩＤID_str、ボリュームＩＤID_vol、内部キャッシュヒット率R_int、外部キャッシュヒット率R_ext、外部キャッシュレスポンスタイムT_ext、外部ディスクレスポンスタイムT_dsk他の情報と共に、内部キャッシュ構成変更プラン格納テーブル１００９（図８Ａ参照）に格納し処理を終了する。
【０１１９】
ステップＳ３１０５において、内部キャッシュ割り当て時の予測レスポンスタイムT_vol_wcが、目標レスポンスタイムT_tgtを満たしていない場合、或いは許容性能低下度D_prmtの範囲外の場合には（ステップＳ３１０５，Ｎｏ）、ステップＳ３１０６へ進む。
【０１２０】
ステップＳ３１０６では、内部キャッシュを割り当てても目標レスポンスタイムを満たさない、或いは非仮想化環境下のボリュームレスポンスタイムに対する許容性能低下度D_prmtの範囲外となるので、内部キャッシュを割り当てないようにする。この意味では、ステップＳ３１０４と同じであるが、ステップＳ３１０４とは異なり、内部キャッシュ容量を負の値（−１ＭＢ）にする。これは、図８Ａの説明したが、内部キャッシュを割り当てても期待する性能を満たせないことを表している。最後にステップＳ３１０４と同様に、内部キャッシュヒット率を「０％」とし、他の情報と共に、内部キャッシュ構成変更プラン格納テーブル１００９に格納し処理を終了する。
【０１２１】
（内部キャッシュ見積もり容量の確認および変更受付画面）
図２１は、搭載キャッシュ容量見積もり処理の結果を示す画面例である。搭載キャッシュ容量見積もり処理の結果は、表示部１１０を介してユーザに提示される。本画面例では、アプリケーションＩＤ（ｄ１０００）がアクセス（利用）する、ストレージ装置ＩＤｄ１００１とボリュームＩＤｄ１００２を持つボリュームごとに、見積もった内部キャッシュ容量ｄ１００３に対して、予測レスポンスタイムｄ１００４、目標レスポンスタイムｄ１００５、現在のボリュームレスポンスタイムｄ１００６、および許容性能低下度ｄ１００７と共に表示した画面である。画面下部には搭載する必要のある内部キャッシュ見積もり容量の合計値ｄ１００８を表示している。
【０１２２】
図２１の上部の画面例において、アプリケーションＩＤ（ｄ１０００）がＡＰ４の内部キャッシュ容量ｄ１００３が空欄ｄ１００９になっているのは、非仮想化環境下での外部キャッシュ容量と同容量の内部キャッシュを割り当てても割り当てなくとも、予測レスポンスタイムが、目標レスポンスタイムを満たさず、非仮想化環境のボリュームレスポンスタイムに対する許容性能低下度の範囲にも収まっていないことを表している。
【０１２３】
内部キャッシュ容量ｄ１００３は、ユーザによる変更を受け付けることができる。例えば、空欄ｄ１００９を２００ＭＢ（ｄ１０１２）に変更することができる。変更された場合、内部キャッシュ見積もり容量も更新され、１２６．５ＧＢ（ｄ１００８）から１２６．７ＧＢ（ｄ１０１１）に更新される。また変更した内部キャッシュ容量を基に予測レスポンスタイムｄ１００４も再計算され、７．１ｍｓ（ｄ１０１０）から５．９ｍｓ（ｄ１０１３）に更新される。このときの予測レスポンスタイムの再計算には、まず平均Ｉ／ＯサイズμIO、アクセス頻度の分散値σ2freq、およびキャッシュヒット率情報テーブル１００８を用いて変更後の内部キャッシュヒット率R_intを求める（図１０参照）。さらにこの変更後の内部キャッシュヒット率R_intより、ステップＳ３１０２の説明で述べたT_vol_wcの計算方法で予測レスポンスタイムを求める。
【０１２４】
本実施形態によれば、業務サーバ１０１と、ストレージ装置１０６と、複数のストレージ装置１０６を所定に仮想化したストレージとして識別させる仮想化装置１０５と、ストレージ管理サーバ１０７を有するストレージシステムにおいて、ストレージ管理サーバ１０７は、仮想化装置１０５およびストレージ装置１０６のキャッシュの構成、アクセス性能から、仮想化装置１０５の業務サーバ１０１に対するレスポンスタイムを予測し、内部キャッシュ１２３の仮想ボリューム１２５への割り当ての有無、および割り当て容量による性能予測値を評価することで、仮想化装置１０５内のキャッシュ容量の判定、および適切なキャッシュ容量の見積もりを行い、内部キャッシュ構成の変更プランを作成することができる。
【０１２５】
本実施形態によれば、次の方法によりストレージ装置の資源の活用を行う。
（１）仮想化装置導入前の外部ストレージ装置のレスポンスタイムを測定し、仮想化環境への移行後のレスポンスタイムの予測値を算出する。仮想化装置内のキャッシュを割り当てる場合と割り当てない場合の両ケースで算出し比較する。目標レスポンスタイムや導入前性能値からの低下度に基づいて、仮想化装置のキャッシュの割り当て要否を判定し、仮想化装置導入における仮想化装置に必要なキャッシュ容量を算出する。
（２）仮想化装置を導入している環境におけるキャッシュ構成管理において、算出したレスポンスタイムが、目標レスポンスタイムを満たす場合は、仮想化装置内のキャッシュ容量を削減し、外部ストレージ装置のキャッシュとの組み合わせにて目標レスポンスタイムを満たすキャッシュ容量を算出し、キャッシュ構成プランを作成する。
（３）作成したキャッシュ構成プランに従い、キャッシュ構成を変更する。また、定期的にＩ／Ｏ特性を監視し、動的にキャッシュ構成変更プランの作成と実行を行い、キャッシュ構成の最適化を行う。
【０１２６】
本実施形態によれば、（１）仮想化装置に外部接続されたストレージ装置に対して、仮想化装置内の内部キャッシュを割り当てるか否かの判定を容易に行える。また、割り当てる内部キャッシュ容量の算出を容易にすることができる。（２）さらにストレージシステム全体で仮想化装置のキャッシュ資源を最大限に有効活用する。仮想化装置の導入前に、仮想化装置内に搭載する適切な内部キャッシュ容量を見積もることができる。
【図面の簡単な説明】
【０１２７】
【図１Ａ】本発明の第１の実施形態における、ストレージシステムのブロック図である。
【図１Ｂ】本発明の第１の実施形態における、仮想化装置と仮想化装置に外部接続したストレージ装置のブロック図である。
【図２】本発明の第１の実施形態における、ストレージ管理サーバ上のメモリのブロック図である。
【図３】キャッシュ構成情報テーブルの内容を示す説明図である。
【図４】アクセス性能情報テーブルの内容を示す説明図である。
【図５Ａ】ポリシー定義情報テーブルの内容を示す説明図である。
【図５Ｂ】ポリシー定義情報の設定方法を示す画面例である。
【図６】キャッシュ容量とキャッシュヒット率に関する基本的な考え方を示す説明図である。
【図７】キャッシュヒット率情報テーブルの内容を示す説明図である。
【図８Ａ】内部キャッシュ構成変更プラン格納テーブルの内容を示す説明図である。
【図８Ｂ】内部キャッシュ構成変更プランの確認・再設定方法を示す画面例である。
【図９】内部キャッシュ構成変更プラン作成処理を示すフローチャートである。
【図１０】内部キャッシュ容量見積もり処理を示すフローチャートである。
【図１１】内部キャッシュ割り当て可否判断処理を示すフローチャートである。
【図１２】余剰キャッシュ追加分配処理を示すフローチャートである。
【図１３】測定したＩ／Ｏ特性を格納する、Ｉ／Ｏ特性履歴情報テーブルの内容を示す説明図である。
【図１４】内部キャッシュ構成変更スケジュールテーブルの内容を示す説明図である。
【図１５】Ｉ／Ｏ特性に基づく内部キャッシュ構成変更スケジュール作成処理を示すフローチャートである。
【図１６】本発明の第２の実施形態における、ストレージシステムのブロック図である。
【図１７】本発明の第２の実施形態における、ストレージ管理サーバ上のメモリのブロック図である。
【図１８】レスポンスタイムの評価方法を示す説明図である。
【図１９】搭載キャッシュ容量見積もり処理を示すフローチャートである。
【図２０】内部キャッシュ割り当て判定処理を示すフローチャートである。
【図２１】搭載キャッシュ容量見積もり処理の結果を示す画面例である。
【符号の説明】
【０１２８】
１０１    業務サーバ
１０２    アプリケーションプログラム
１０３，１０４    ＳＡＮ（第１のネットワーク）
１０５    仮想化装置
１０６    ストレージ装置
１０７    ストレージ管理サーバ（管理サーバ）
１０８    ＣＰＵ
１０９    メモリ
１１０    表示部
１１１    入力部
１１２    ＬＡＮ（第２のネットワーク）
１１３，１１６，１１９，１２０    ＬＡＮインターフェース
１１４，１１５，１１７，１１８    ＳＡＮインターフェース
１２１    コントローラ
１２２    コントローラ
１２３    内部キャッシュ
１２４    外部キャッシュ
１２５    仮想ボリューム
１２６    論理ボリューム
１２７    エージェント
２０１    運用管理プログラム
２０２    運用管理ＤＢ
１００１    キャッシュ構成情報収集プログラム
１００２    アクセス性能情報収集プログラム
１００３    ポリシー定義情報設定プログラム
１００４    内部キャッシュ構成変更プラン作成プログラム
１００５    キャッシュ構成情報テーブル
１００６    アクセス性能情報テーブル
１００７    ポリシー定義情報テーブル
１００８    キャッシュヒット率情報テーブル
１００９    内部キャッシュ構成変更プラン格納テーブル
１０１１    Ｉ／Ｏ特性履歴情報テーブル
１０１２    内部キャッシュ構成変更スケジュールテーブル
１０１３    内部キャッシュ構成変更実行プログラム
１０１４    内部キャッシュ構成変更スケジュール作成プログラム
１１０１    搭載キャッシュ容量見積もりプログラム
【図１Ａ】
2010097526.tif 000003
【図１Ｂ】
2010097526.tif 000004
【図２】
2010097526.tif 000005
【図３】
2010097526.tif 000006
【図４】
2010097526.tif 000007
【図５Ａ】
2010097526.tif 000008
【図５Ｂ】
2010097526.tif 000009
【図６】
2010097526.tif 000010
【図７】
2010097526.tif 000011
【図８Ａ】
2010097526.tif 000012
【図８Ｂ】
2010097526.tif 000013
【図９】
2010097526.tif 000014
【図１０】
2010097526.tif 000015
【図１１】
2010097526.tif 000016
【図１２】
2010097526.tif 000017
【図１３】
2010097526.tif 000018
【図１４】
2010097526.tif 000019
【図１５】
2010097526.tif 000020
【図１６】
2010097526.tif 000021
【図１７】
2010097526.tif 000022
【図１８】
2010097526.tif 000023
【図１９】
2010097526.tif 000024
【図２０】
2010097526.tif 000025
【図２１】
2010097526.tif 000026