(57)【要約】【課題】チューニングパラメータの設定ミスに伴うストレージシステムの性能低下を回避し、最適な性能チューニングを行う。【解決手段】ストレージシステム１０は、運用ボリュームとしてホスト計算機３に提供されるプライマリボリューム５０１と、プライマリボリューム５０１とコピーペアを形成可能なセカンダリボリューム５０２と、記憶制御装置１００とを備える。記憶制御装置１００は、チューニングパラメータＡが設定されたプライマリボリューム５０１へのＩ／Ｏ処理に要する負荷よりもチューニングパラメータＢが設定されたセカンダリボリューム５０２へのＩ／Ｏ処理に要する負荷の方が軽い場合には、プライマリボリューム５０１とセカンダリボリューム５０２との間の正副関係を入れ替えて、セカンダリボリューム５０２を運用ボリュームとしてホスト計算機３に提供する。【選択図】図１
2007280111.tif 000002
【特許請求の範囲】
【請求項１】
運用ボリュームとしてホスト計算機に提供されるプライマリボリュームと、
前記プライマリボリュームとコピーペアを形成可能なセカンダリボリュームと、
前記ホスト計算機から発行されるＩ／Ｏ要求に応答して前記プライマリボリューム及び前記セカンダリボリュームのそれぞれについてＩ／Ｏ処理を実行する記憶制御装置と、
を備え、
前記記憶制御装置は、第一のチューニングパラメータが設定された前記プライマリボリュームへのＩ／Ｏ処理に要する負荷よりも第二のチューニングパラメータが設定された前記セカンダリボリュームへのＩ／Ｏ処理に要する負荷の方が軽い場合には、前記プライマリボリュームと前記セカンダリボリュームとの間の正副関係を入れ替えて、前記セカンダリボリュームを運用ボリュームとしてホスト計算機に提供する、ストレージシステム。
【請求項２】
請求項１に記載のストレージシステムであって、
前記記憶制御装置は、前記プライマリボリュームについてのＩ／Ｏ処理を実行する第一のコントローラと、前記セカンダリボリュームについてのＩ／Ｏ処理を実行する第二のコントローラとを備える、ストレージシステム。
【請求項３】
請求項２に記載のストレージシステムであって、
前記第一のコントローラは、前記ホスト計算機から前記プライマリボリュームに発行されるＩ／Ｏ要求を複製し、その複製されたＩ／Ｏ要求を前記第二のコントローラに転送する、ストレージシステム。
【請求項４】
請求項２に記載のストレージシステムであって、
前記第一のコントローラは、前記ホスト計算機から前記プライマリボリュームに発行されるＩ／Ｏ要求に応答して前記プライマリボリュームについてＩ／Ｏ処理を実行する一方、前記第二のコントローラは、前記ホスト計算機から前記セカンダリボリュームに発行されるＩ／Ｏ要求に応答して前記セカンダリボリュームについてＩ／Ｏ処理を実行する、ストレージシステム。
【請求項５】
請求項１に記載のストレージシステムであって、
前記記憶制御装置は、ある時間帯において、前記プライマリボリュームへのＩ／Ｏ処理に要する負荷よりも前記セカンダリボリュームへのＩ／Ｏ処理に要する負荷の方が軽い場合には、前記プライマリボリュームと前記セカンダリボリュームとの間の正副関係を入れ替えて前記セカンダリボリュームを運用ボリュームとしてホスト計算機に提供する一方、他の時間帯において、前記セカンダリボリュームへのＩ／Ｏ処理に要する負荷よりも前記プライマリボリュームへのＩ／Ｏ処理に要する負荷の方が軽い場合には、前記セカンダリボリュームと前記プライマリボリュームとの間の正副関係を再度入れ替えて、前記プライマリボリュームを運用ボリュームとしてホスト計算機に提供する、ストレージシステム。
【請求項６】
請求項５に記載のストレージシステムであって、
前記プライマリボリュームとコピーペアを形成可能な前記セカンダリボリュームを複数備える、ストレージシステム。
【請求項７】
ホスト計算機に提供される運用ボリュームと、
前記運用ボリュームとコピーペアを形成可能なコピーボリュームと、
前記ホスト計算機から発行されるＩ／Ｏ要求に応答して前記運用ボリュームについてＩ／Ｏ処理を実行するとともに前記Ｉ／Ｏ要求を複製する第一のコントローラと、
前記第一のコントローラが複製したＩ／Ｏ要求を前記第一のコントローラから受信して前記コピーボリュームへのＩ／Ｏ処理を実行する第二のコントローラと、
を備え、
前記第二のコントローラは、第一のチューニングパラメータが設定された前記プライマリボリュームへのＩ／Ｏ処理に要する負荷よりも第二のチューニングパラメータが設定された前記セカンダリボリュームへのＩ／Ｏ処理に要する負荷の方が軽い場合には、前記プライマリボリュームと前記セカンダリボリュームとの間の正副関係を入れ替えて、前記セカンダリボリュームを運用ボリュームとしてホスト計算機に提供する、ストレージシステム。
【請求項８】
運用ボリュームとしてホスト計算機に提供されるプライマリボリュームに第一のチューニングパラメータを設定するステップと、
前記プライマリボリュームとコピーペアを形成可能なセカンダリボリュームを作成するステップと、
前記セカンダリボリュームに第二のチューニングパラメータを設定するステップと、
ホスト計算機から発行されるＩ／Ｏ要求に応答して前記プライマリボリューム及び前記セカンダリボリュームのそれぞれについてＩ／Ｏ処理を実行するステップと、
前記プライマリボリュームへのＩ／Ｏ処理に要する負荷を計測するステップと、
前記セカンダリボリュームへのＩ／Ｏ処理に要する負荷を計測するステップと、
前記プライマリボリュームへのＩ／Ｏ処理に要する負荷よりも前記セカンダリボリュームへのＩ／Ｏ処理に要する負荷の方が軽い場合には、前記プライマリボリュームと前記セカンダリボリュームとの間の正副関係を入れ替えて、前記セカンダリボリュームを運用ボリュームとしてホスト計算機に提供するステップと、
を備えるストレージシステムの性能チューニング方法。
【請求項９】
請求項８に記載のストレージシステムの性能チューニング方法であって、
ある時間帯において、前記プライマリボリュームへのＩ／Ｏ処理に要する負荷よりも前記セカンダリボリュームへのＩ／Ｏ処理に要する負荷の方が軽い場合には、前記プライマリボリュームと前記セカンダリボリュームとの間の正副関係を入れ替えて、前記セカンダリボリュームを運用ボリュームとしてホスト計算機に提供するステップと、
他の時間帯において、前記セカンダリボリュームへのＩ／Ｏ処理に要する負荷よりも前記プライマリボリュームへのＩ／Ｏ処理に要する負荷の方が軽い場合には、前記セカンダリボリュームと前記プライマリボリュームとの間の正副関係を再度入れ替えて、前記プライマリボリュームを運用ボリュームとしてホスト計算機に提供するステップと、
を更に備える、ストレージシステムの性能チューニング方法。
【請求項１０】
プライマリボリュームに第一のチューニングパラメータを設定するステップと、
前記プライマリボリュームとコピーペアを形成可能なセカンダリボリュームに第二のチューニングパラメータを設定するステップと、
ホスト計算機から発行されるＩ／Ｏ要求に応答して前記プライマリボリューム及び前記セカンダリボリュームのそれぞれについてＩ／Ｏ処理を実行するステップと、
前記プライマリボリュームへのＩ／Ｏ処理に要する負荷を計測するステップと、
前記セカンダリボリュームへのＩ／Ｏ処理に要する負荷を計測するステップと、
前記プライマリボリュームへのＩ／Ｏ処理に要する負荷よりも前記セカンダリボリュームへのＩ／Ｏ処理に要する負荷の方が軽い場合には、前記プライマリボリュームと前記セカンダリボリュームとの間の正副関係を入れ替えて、前記セカンダリボリュームを運用ボリュームとしてホスト計算機に提供するステップと、
前記セカンダリボリュームへのＩ／Ｏ処理に要する負荷よりも前記プライマリボリュームへのＩ／Ｏ処理に要する負荷の方が軽い場合には、前記セカンダリボリュームと前記プライマリボリュームとの間の正副関係を再度入れ替えて、前記プライマリボリュームを運用ボリュームとしてホスト計算機に提供するステップと、
を備えるストレージシステムの性能チューニング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はストレージシステム及びその性能チューニング方法に関する。
【背景技術】
【０００２】
コンピュータシステムの発展に伴い、ストレージシステムの用途は多様化しつつある。また、ストレージシステムにＩ／Ｏ処理を要求するホスト計算機のＩ／Ｏ特性も多様化しつつある。様々なＩ／Ｏ特性に対して高性能なストレージシステムを実現するには、それぞれのＩ／Ｏ特性に応じた最適な性能チューニングが有効である。
【０００３】
ホスト計算機のＩ／Ｏ特性は、時間的に変化することがある。Ｉ／Ｏ特性の時間的な変化は、主として、短期的なＩ／Ｏ特性の変化（例えば、夜間にバックアップ処理が実行される場合のように周期の短いＩ／Ｏ特性の変化）と、長期的なＩ／Ｏ特性の変化（例えば、ホスト計算機からのＩ／Ｏ処理要求の増加に伴う負荷増大のように周期の長いＩ／Ｏ特性の変化）とがある。
【０００４】
特開平８−２４１２２７号公報には、ストレージシステムの性能に悪影響を及ぼす状況を監視又は予測する目的で、動作中のストレージシステムの性能を評価し、性能が最適でないことが検出されたならば、それをユーザに警告し、性能を向上させるための措置を指示する方法が開示されている。
【特許文献１】特開平８−２４１２２７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、ストレージシステムの性能をチューニングするためのチューニングパラメータとして、内部制御に関わるチューニングパラメータと、外部仕様に関わるチューニングパラメータとがある。内部制御に関わるチューニングパラメータとして、例えば、シーケンシャルリードの「先読み」、シーケンシャルライトの「まとめ書き」などがある。外部仕様に関わるチューニングパラメータとして、例えば、「ＲＡＩＤレベル」、「ドラブ構成」、「ディスクタイプ」、「ストライプサイズ」などがある。
【０００６】
これらのチューニングパラメータの変更は、ストレージシステムの性能向上を見込んで実施するものであるが、チューニングパラメータの設定を誤った場合には、却って性能が低下してしまう場合がある。ストレージシステムの性能の低下がみられる場合には、チューニングパラメータを元に戻す必要がある。
【０００７】
しかし、外部仕様に関わるチューニングパラメータを元に戻そうとすると、ディスクドライブ間でのデータ移動を実行しなければならないので、チューニングパラメータ変更に伴うストレージシステムへの負荷は大きく、しかもその作業には長時間を要する。更に、チューニングパラメータを変更している最中では、ストレージシステムの性能が低下するというデメリットもある。
【０００８】
更に、ストレージシステムに対するＩ／Ｏ特性の時間的変化、特に、短期的なＩ／Ｏ特性の変化に対して、ストレージシステムの性能を引き出せるように、チューニングパラメータを動的に設定するのは困難である。
【０００９】
そこで、本発明はチューニングパラメータの設定ミスに伴うストレージシステムの性能低下を回避し、最適な性能チューニングを行うことを課題とする。
【課題を解決するための手段】
【００１０】
上記の課題を解決するため、本発明のストレージシステムは、運用ボリュームとしてホスト計算機に提供されるプライマリボリュームと、プライマリボリュームとコピーペアを形成可能なセカンダリボリュームと、ホスト計算機から発行されるＩ／Ｏ要求に応答してプライマリボリューム及びセカンダリボリュームのそれぞれについてＩ／Ｏ処理を実行する記憶制御装置と、を備える。記憶制御装置は、第一のチューニングパラメータが設定されたプライマリボリュームへのＩ／Ｏ処理に要する負荷よりも第二のチューニングパラメータが設定されたセカンダリボリュームへのＩ／Ｏ処理に要する負荷の方が軽い場合には、プライマリボリュームとセカンダリボリュームとの間の正副関係を入れ替えて、セカンダリボリュームを運用ボリュームとしてホスト計算機に提供する。
【００１１】
このように、プライマリボリュームのＩ／Ｏ処理に要する負荷よりも、セカンダリボリュームのＩ／Ｏ処理に要する負荷の方が軽い場合に、正副関係を入れ替えて、セカンダリボリュームを運用ボリュームとしてホスト計算機に提供することにより、チューニングパラメータの設定ミスに伴うストレージシステムの性能低下を回避しつつ、最適な性能チューニングを実現できる。
【００１２】
尚、ボリュームのＩ／Ｏ処理に要する負荷とは、例えば、ハードウェアリソースの使用率などである。
【００１３】
ここで、本発明のある観点によれば、記憶制御装置は、プライマリボリュームについてのＩ／Ｏ処理を実行する第一のコントローラと、セカンダリボリュームについてのＩ／Ｏ処理を実行する第二のコントローラとを備えるのが好ましい。
【００１４】
例えば、第一のコントローラは、ホスト計算機からプライマリボリュームに発行されるＩ／Ｏ要求を複製し、その複製されたＩ／Ｏ要求を第二のコントローラに転送する。かかる構成によれば、プライマリボリュームへのＩ／Ｏ処理を実行するハードウェアと、セカンダリボリュームへのＩ／Ｏ処理を実行するハードウェアを分離できるので、それぞれのボリュームについて、Ｉ／Ｏ処理に要する負荷を精度よく評価できる。
【００１５】
また例えば、第一のコントローラは、ホスト計算機から前記プライマリボリュームに発行されるＩ／Ｏ要求に応答してプライマリボリュームについてＩ／Ｏ処理を実行する一方で、第二のコントローラは、ホスト計算機からセカンダリボリュームに発行されるＩ／Ｏ要求に応答してセカンダリボリュームについてＩ／Ｏ処理を実行する。かかる構成によれば、プライマリボリュームへのＩ／Ｏ処理を実行するハードウェアと、セカンダリボリュームへのＩ／Ｏ処理を実行するハードウェアを完全に分離できるので、それぞれのボリュームについて、Ｉ／Ｏ処理に要する負荷を精度よく評価できる。
【００１６】
記憶制御装置は、ある時間帯において、プライマリボリュームへのＩ／Ｏ処理に要する負荷よりもセカンダリボリュームへのＩ／Ｏ処理に要する負荷の方が軽い場合には、プライマリボリュームとセカンダリボリュームとの間の正副関係を入れ替えてセカンダリボリュームを運用ボリュームとしてホスト計算機に提供する一方、他の時間帯において、セカンダリボリュームへのＩ／Ｏ処理に要する負荷よりもプライマリボリュームへのＩ／Ｏ処理に要する負荷の方が軽い場合には、セカンダリボリュームとプライマリボリュームとの間の正副関係を再度入れ替えて、プライマリボリュームを運用ボリュームとしてホスト計算機に提供する。
【００１７】
かかる構成によれば、Ｉ／Ｏ特性の変動に追随して、プライマリボリュームとセカンダリボリュームとの正副関係を入れ替えるので、Ｉ／Ｏ特性の変動に関わりなくストレージシステムの性能を最適化できる。
【００１８】
本発明の他の観点によるストレージシステムは、ホスト計算機に提供される運用ボリュームと、運用ボリュームとコピーペアを形成可能なコピーボリュームと、ホスト計算機から発行されるＩ／Ｏ要求に応答して運用ボリュームについてＩ／Ｏ処理を実行するとともにＩ／Ｏ要求を複製する第一のコントローラと、第一のコントローラが複製したＩ／Ｏ要求を第一のコントローラから受信してコピーボリュームへのＩ／Ｏ処理を実行する第二のコントローラと、を備える。第二のコントローラは、第一のチューニングパラメータが設定されたプライマリボリュームへのＩ／Ｏ処理に要する負荷よりも第二のチューニングパラメータが設定されたセカンダリボリュームへのＩ／Ｏ処理に要する負荷の方が軽い場合には、プライマリボリュームとセカンダリボリュームとの間の正副関係を入れ替えて、セカンダリボリュームを運用ボリュームとしてホスト計算機に提供する。
【００１９】
本発明の性能チューニング方法は、運用ボリュームとしてホスト計算機に提供されるプライマリボリュームに第一のチューニングパラメータを設定するステップと、プライマリボリュームとコピーペアを形成可能なセカンダリボリュームを作成するステップと、セカンダリボリュームに第二のチューニングパラメータを設定するステップと、ホスト計算機から発行されるＩ／Ｏ要求に応答してプライマリボリューム及びセカンダリボリュームのそれぞれについてＩ／Ｏ処理を実行するステップと、プライマリボリュームへのＩ／Ｏ処理に要する負荷を計測するステップと、セカンダリボリュームへのＩ／Ｏ処理に要する負荷を計測するステップと、プライマリボリュームへのＩ／Ｏ処理に要する負荷よりもセカンダリボリュームへのＩ／Ｏ処理に要する負荷の方が軽い場合には、プライマリボリュームとセカンダリボリュームとの間の正副関係を入れ替えて、セカンダリボリュームを運用ボリュームとしてホスト計算機に提供するステップと、を備える。
【００２０】
本発明の他の観点による性能チューニング方法は、プライマリボリュームに第一のチューニングパラメータを設定するステップと、プライマリボリュームとコピーペアを形成可能なセカンダリボリュームに第二のチューニングパラメータを設定するステップと、ホスト計算機から発行されるＩ／Ｏ要求に応答してプライマリボリューム及びセカンダリボリュームのそれぞれについてＩ／Ｏ処理を実行するステップと、プライマリボリュームへのＩ／Ｏ処理に要する負荷を計測するステップと、セカンダリボリュームへのＩ／Ｏ処理に要する負荷を計測するステップと、プライマリボリュームへのＩ／Ｏ処理に要する負荷よりもセカンダリボリュームへのＩ／Ｏ処理に要する負荷の方が軽い場合には、プライマリボリュームとセカンダリボリュームとの間の正副関係を入れ替えて、セカンダリボリュームを運用ボリュームとしてホスト計算機に提供するステップと、セカンダリボリュームへのＩ／Ｏ処理に要する負荷よりもプライマリボリュームへのＩ／Ｏ処理に要する負荷の方が軽い場合には、セカンダリボリュームとプライマリボリュームとの間の正副関係を再度入れ替えて、プライマリボリュームを運用ボリュームとしてホスト計算機に提供するステップと、を備える。
【発明の効果】
【００２１】
本発明によれば、チューニングパラメータの設定ミスに伴うストレージシステムの性能低下を回避し、最適な性能チューニングを行うことができる。
【発明を実施するための最良の形態】
【００２２】
以下、各図を参照しながら本発明の実施例について説明する。各実施例は、特許請求の範囲を限定するものではなく、また実施例で説明されている特徴の全てが発明の解決手段に必須であるとは限らない。
【実施例１】
【００２３】
図１は実施例１に関わるストレージシステム１０の性能チューニング方法の概要を示している。ストレージシステム１０は、記憶制御装置１００と、論理ボリューム５０１，５０２とを備える。記憶制御装置１００は、コントローラ１，２を備える。論理ボリューム５０２は、論理ボリューム５０１を複製したコピーボリューム（レプリカボリューム）であり、論理ボリューム５０１と論理ボリューム５０２との間のペア状態は、同期状態にある。以下の説明では、文脈に応じて、コピー元の「論理ボリューム５０１」を「プライマリボリューム５０１」と称し、コピー先の「論理ボリューム５０２」を「セカンダリボリューム５０２」又は「コピーボリューム５０２」と称する。また「プライマリボリューム」と「運用ボリューム」とは、同義であるものとする。
【００２４】
コントローラ１は、プライマリボリューム５０１に対するＩ／Ｏ処理を実行するとともに、ネットワーク４を介してホスト計算機３から送信されてくるＩ／Ｏ要求を複製し、複製したＩ／Ｏ要求をコントローラ２に転送する。コントローラ２は、コントローラ１からその複製されたＩ／Ｏ要求を受信し、セカンダリボリューム５０２に対するＩ／Ｏ処理を実行する。このように、プライマリボリューム５０１に対するＩ／Ｏ処理を制御するハードウェア資源と、セカンダリボリューム５０２に対するＩ／Ｏ処理を制御するハードウェア資源とは、分離されており、プライマリボリューム５０１とセカンダリボリューム５０２のそれぞれについて、Ｉ／Ｏ処理性能を十分な精度で測定することができる。
【００２５】
尚、プライマリボリューム５０１は、運用ボリュームとして、ホスト計算機３に提供されている。ホスト計算機３は、プライマリボリューム５０１を認識しているが、セカンダリボリューム５０２を認識していない。
【００２６】
いま、プライマリボリューム５０１に設定されているチューニングパラメータを「Ａ」とする。プライマリボリューム５０１に設定されているチューニングパラメータを「Ａ」から「Ｂ」に変更するには、まず、ストレージシステム１０は、試験的にセカンダリボリューム５０２にチューニングパラメータ「Ｂ」を設定した上で、セカンダリボリューム５０２に対するＩ／Ｏ処理の性能向上が確認できたか否かを判定する。より詳細には、ストレージシステム１０は、旧パラメータ「Ａ」を設定したプライマリボリューム５０１と、新パラメータ「Ｂ」を設定したセカンダリボリューム５０２のうち何れのＩ／Ｏ性能が優れているかを判断する。
【００２７】
そして、セカンダリボリューム５０２に対するＩ／Ｏ処理の性能向上が確認できた場合に、ストレージシステム１０は、プライマリボリューム５０１とセカンダリボリューム５０２の正副関係を入れ替える。これにより、チューニングパラメータ「Ｂ」が設定された論理ボリューム（正副関係を入れ替える前のセカンダリボリューム５０２）をプライマリボリューム５０１としてホスト計算機３に提供できる。
【００２８】
プライマリボリューム５０１に設定されるチューニングパラメータを上述のようにして変更すれば、チューニングパラメータの設定ミスに起因する性能低下を回避できるとともに、プライマリボリューム５０１の運用を継続したまま、チューニングパラメータを変更できるという利点がある。
【００２９】
図２はストレージシステム１０のハードウェア構成を示す。
ストレージシステム１０は、ネットワーク６１を介して一つ以上のホスト計算機３に接続している。ホスト計算機３は、パーソナルコンピュータ、ワークステーション、メインフレーム等である。ホスト計算機３は、ストレージシステム１０が提供する記憶資源を利用して、各種の業務処理（例えば、データベース処理、Ｗｅｂアプリケーション処理、ストリーミング処理など）を実行する。
【００３０】
ネットワーク６１としては、例えば、ＳＡＮ（Storage Area Network）、ＬＡＮ(Local Area Network)、ＰＡＮ（Personal Area Network）、ＭＡＮ（Metropolitan Area Network）、ＷＡＮ（Wide Area Network）、インターネット、専用回線、公衆回線等を挙げることができる。
【００３１】
例えば、ホスト計算機３がＳＡＮを介してストレージシステム１０に接続する場合、ホスト計算機３は、ファイバチャネルプロトコル又はｉＳＣＳＩ（internet Small Computer System Interface）等のプロトコルにより、ストレージシステム１０の記憶資源のデータ管理単位であるブロックを単位としてデータ入出力を要求する。
【００３２】
例えば、ホスト計算機３がＬＡＮを介してストレージシステム１０に接続する場合、ホスト計算機３は、ＮＦＳ（Network File System）又はＣＩＦＳ（Common Interface File System）等のプロトコルにより、ファイル名を指定してファイル単位でのデータ入出力を要求する。
【００３３】
記憶装置７０は、複数のディスクドライブ７１を備える。ディスクドライブ７１は、例えば、ＦＣ（Fibre Channel）ディスクドライブ、ＳＡＴＡ（Serial Advanced Technology Attachment）ディスクドライブ、ＰＡＴＡ（Parallel Advanced Technology Attachment）ディスクドライブ、ＦＡＴＡ（Fibre Attached Technology Adapted）ディスクドライブ、ＳＣＳＩ（Small Computer System Interface）ディスクドライブなどである。
【００３４】
コントローラ１，２は、記憶装置７０をいわゆるＲＡＩＤ方式に規定されるＲＡＩＤレベル（例えば、０，１，４，５）で制御することができる。ＲＡＩＤグループは、例えば、４つのディスクドライブ７１を一組としてグループ化することにより（３Ｄ＋１Ｐ）、或いは８つのディスクドライブ７１を一組としてグループ化することにより（７Ｄ＋１Ｐ）、構成される。即ち、複数のディスクドライブ７１のそれぞれが提供する記憶領域が集合して一つのＲＡＩＤグループが構成される。ＲＡＩＤグループは、パリティグループ又はＥＣＣグループと別称することもできる。ＲＡＩＤグループ上には、ホスト計算機３からのアクセス単位である一つ以上の論理ボリュームが定義される。各論理ボリュームには、ＬＵＮ（Logical Unit Number）がアサインされる。
【００３５】
コントローラ１は、ホストインタフェース制御部１１、キャッシュメモリ２１、プロセッサ３１、データ転送制御部４１、ローカルメモリ５１、及びディスクインタフェース制御部６１を備える。
【００３６】
プロセッサ３１は、ホスト計算機３からのデータ入出力要求に応答して記憶装置７０へのＩ／Ｏ処理（ライトアクセス、又はリードアクセス）を制御する。ローカルメモリ５１には、各種のマイクロプログラム及び管理テーブルが格納されている。プロセッサ３１はローカルメモリ５１に格納されているマイクロプログラムを実行することにより、コピーボリュームの作成処理、チューニングパラメータの設定処理などを実行する。マイクロプログラム及び管理テーブルの詳細については、後述する。キャッシュメモリ２１は、記憶装置７０に読み書きするデータを一時的に格納するためのバッファメモリである。キャッシュメモリ２１は、電源バックアップされており、ストレージシステム１０に電源障害が発生した場合でも、キャッシュデータのロストを防ぐ不揮発性メモリとして構成されている。
【００３７】
データ転送制御部４１は、ホストインタフェース制御部１１、プロセッサ２１、キャッシュメモリ３１、ローカルメモリ５１、及びディスクインタフェース制御部６１を相互に接続し、ホスト計算機３と記憶装置７０との間のデータ転送を制御する。
【００３８】
例えば、ホスト計算機３からのライトアクセスに対し、データ転送制御部４１は、ホストインタフェース制御部１１を介してホスト計算機３から受け取ったライトデータをキャッシュメモリ２１に書き込む。その後、ディスクインタフェース制御部６１は、キャッシュメモリ２１に書き込まれたライトデータを記憶装置７０に書き込む。
【００３９】
一方、ホスト計算機３からのリードアクセスに対し、データ転送制御部４１は、ディスクインタフェース制御部６１を介して記憶装置７０から読みとったリードデータをキャッシュメモリ２１に書き込むとともに、ホストインタフェース制御部１１に転送する。ホストインタフェース制御部１１は、リードデータをホスト計算機３に送信する。
【００４０】
尚、記憶装置７０がＲＡＩＤレベル５で管理される場合には、パリティデータは、データ転送制御部４１によって演算される。
【００４１】
ホストインタフェース制御部１１は、ホスト計算機３とコントローラ１との間のインタフェースを制御するコントローラであり、例えば、ファイバチャネルプロトコルに基づくホスト計算機３からのブロックアクセス要求や、ファイル転送プロトコルに基づくホスト計算機３からのファイルアクセス要求を受信する機能を有する。ホスト計算機３からのファイルアクセス要求を処理するためには、ホストインタフェース制御部１１は、ＮＡＳ（Network Attached Storage）機能を搭載している必要がある。
【００４２】
ディスクインタフェース制御部６１は、記憶装置７０とコントローラ１との間のインタフェースを制御するコントローラであり、例えば、記憶装置７０を制御するプロトコルに従って、記憶装置７０へのデータ入出力要求を制御する機能を有する。
【００４３】
一方、コントローラ２は、ホストインタフェース制御部１２、キャッシュメモリ２２、プロセッサ３２、データ転送制御部４２、ローカルメモリ５２、及びディスクインタフェース制御部６２を備える。コントローラ２のハードウェア構成は、コントローラ１のハードウェア構成と同様であるので、コントローラ２のハードウェア構成の詳細な説明は、省略する。
【００４４】
図３はローカルメモリ５１内のソフトウェア構成を示す。
ローカルメモリ５１には、コピーボリューム管理プログラム１１１、コピーボリューム管理テーブル１１２、チューニングパラメータ管理プログラム１２１、チューニングパラメータ管理テーブル１２２、インタフェース制御プログラム１３１、ストレージ制御プログラム１３２、データ転送制御プログラム１３３、及びオペレーティングシステム１０１が格納されている。
【００４５】
コピーボリューム管理プログラム１１１は、コピーボリュームに関する処理を行う。例えば、コピーボリューム管理プログラム１１１は、コピーボリューム作成指示を受けて、コピーボリューム（セカンダリボリューム５０２）を作成する処理と、プライマリボリューム５０１へのＩ／Ｏ要求を受けて、セカンダリボリューム５０２へ同期若しくは非同期にＩ／Ｏ要求を発行する処理と、プライマリボリューム５０１とセカンダリボリューム５０２との関係を管理する処理とを実行する。
【００４６】
コピーボリューム管理テーブル１１２は、プライマリボリューム５０１とセカンダリボリューム５０２との関係を示す情報を保持する。コピーボリューム管理テーブル１１２の詳細については、後述する。
【００４７】
チューニングパラメータ管理プログラム１２１は、ストレージシステム１０内の各ボリュームについて、チューニングパラメータを設定する。
【００４８】
チューニングパラメータ管理テーブル１２２は、ストレージシステム１０内の各ボリュームに設定されているチューニングパラメータを保持する。チューニングパラメータ管理テーブル１２２の詳細については、後述する。
【００４９】
インタフェース制御プログラム１３１は、ホストインタフェース制御部１１及びディスクインタフェース制御部６１を制御するためのドライバソフトウェアである。
【００５０】
ストレージ制御プログラム１３２は、ディスクドライブ７１上の論理アドレスと物理アドレスとを変換するためのアドレス変換処理、ディスクドライブ７１のＲＡＩＤ構成を変換する処理などを実行する。
【００５１】
データ転送制御プログラム１３３は、データ転送制御部４１におけるデータ転送、つまり、ホストインタフェース制御部１１、プロセッサ２１、キャッシュメモリ３１、ローカルメモリ５１、及びディスクインタフェース制御部６１のそれぞれの間におけるデータ転送を制御する。
【００５２】
オペレーティングシステム１０１は、各マイクロプログラムの実行をスケジューリングする。
【００５３】
図４はコピーボリューム管理テーブル１１２のテーブル構造を示す。
コピーボリューム管理テーブル１１２は、それぞれの論理ボリュームについて、ホストＬＵＮ、プライマリボリュームＬＵＮ、及びセカンダリボリュームＬＵＮを対応付けている。ホストＬＵＮはホスト計算機３が認識している、プライマリボリューム５０１のＬＵＮを示す。プライマリボリュームＬＵＮは、ストレージシステム１０内部で管理される、プライマリボリューム５０１のＬＵＮを示す。セカンダリボリュームＬＵＮは、ストレージシステム１０内部で管理される、セカンダリボリューム５０２のＬＵＮを示す。例えば、同図に示す例によると、ＬＵＮ「８」のプライマリボリュームと、ＬＵＮ「４」のセカンダリボリュームとは、ペア関係にあり、しかもＬＵＮ「８」のプライマリボリュームは、ホスト計算機３からは、ＬＵＮ「３」の論理ボリュームとして認識されていることを示している。
【００５４】
コピーボリューム管理プログラム１１１は、プライマリボリュームＬＵＮと、セカンダリボリュームＬＵＮとを入れ替えることにより、プライマリボリューム５０１とセカンダリボリューム５０２との間の正副関係を入れ替えることができる。例えば、同図に示す例では、プライマリボリュームＬＵＮ「８」と、セカンダリボリュームＬＵＮ「４」とを入れ替えることで、ＬＵＮ「８」のプライマリボリュームは、セカンダリボリュームに変更され、ＬＵＮ「４」のセカンダリボリュームは、プライマリボリュームに変更される。
【００５５】
尚、コピーボリューム管理テーブル１１２に保持される情報は、同図に示す情報に限られるものではない。プライマリボリューム５０１とセカンダリボリューム５０２とを同期させる処理が非同期に実行される場合には、コピーボリューム管理テーブル１１２には、両者の差分データの有無、差分データの格納位置、同期コピー開始時刻、両者のペア状態に関する情報（ペア同期、ペアスプリット、初期コピーなど）を格納してもよい。
【００５６】
図５はチューニングパラメータ管理テーブル１２２のテーブル構造を示す。
チューニングパラメータ管理テーブル１２２は、それぞれの論理ボリュームについて、「ＬＵＮ」、「先読み量」、「ＲＡＩＤグループ」、「ディスクタイプ」、及び「ストライプサイズ」を対応付けている。ここで、「ＬＵＮ」は、チューニングパラメータが設定されている論理ボリュームのＬＵＮを示す。「先読み」は、シーケンシャルリードモードで先読みを実行するか否かのフラグ情報と、先読みを実行する場合における先読み量を示す。「ＲＡＩＤグループ」は、ＲＡＩＤレベルと、ドライブ構成を示す。例えば、ＲＡＩＤ５を例にとると、ドライブ構成は、ディスクドライブ７１の構成が（４Ｄ＋１Ｐ）であるのか、或いは（３Ｄ＋１Ｐ）であるのかを示す。「ディスクタイプ」は、ディスクドライブ７１の物理スペックを示す。物理スペックとして、例えば、ディスクドライブ７１のインターフェースプロトコルの種類（例えば、ＦＣプロトコル、ＳＡＴＡプロトコルなど）、ディスク回転数などがある。「ストライプサイズ」は、ＲＡＩＤ構成された複数のディスクドライブ７１のそれぞれに書き込まれるデータの分割サイズ（ストライピング単位）を示す。
【００５７】
尚、上述したチューニングパラメータのうち、「先読み」は、ストレージシステム１０の内部制御に関わるものであるから、短時間かつ低負荷で変更可能である。これに対し、「ＲＡＩＤグループ」、「ディスクタイプ」、及び「ストライプサイズ」は、ストレージシステム１０の外部仕様に関わるものであり、これらのチューニングパラメータを変更するには、ディスクドライブ７１間のデータ移動が必要になるので、長時間かつ高負荷を要する。これは、外部仕様に関わるチューニングパラメータの設定を誤ると、パラメータ変更に伴うオーバーヘッドだけでなく、パラメータを元に戻すときのオーバーヘッドも大きいことを示している。
【００５８】
尚、同図に示すチューニングパラメータは、あくまでも一般的なものを例示したにすぎないので、ストレージシステム１０の性能に関わるパラメータであって、且つ設定変更可能なものならば、特に限定されるものではない。例えば、内部制御に関わるチューニングパラメータとして、シーケンシャルライトの「まとめ書き量」を含めてもよい。この他に例えば、各種のハードウェアリソース（プロセッサリソース、メモリリソース、バスリソースなど）の制限値、論理資源（論理ボリュームなど）の制限値などを含めてもよい。
【００５９】
図６はチューニングパラメータ設定処理ルーチンを記述したフローチャートを示す。
ストレージシステム１０は、まず、これからチューニングパラメータを変更しようとする論理ボリューム５０１が論理ボリューム５０１との間でペア関係にあるコピーボリューム５０２を有しているか否かを判定する（ステップ６０１）。
【００６０】
論理ボリューム５０１がコピーボリューム５０２を有している場合には（ステップ６０１：ＹＥＳ）、ストレージシステム１０は、Ｓ４０３の処理を実行する。一方、論理ボリューム５０１がコピーボリューム５０２を有してない場合には（ステップ６０１；ＮＯ）、ストレージシステム１０は、論理ボリューム５０１との間でコピーペアを形成可能なコピーボリューム５０２を作成し（ステップ６０２）、ステップ６０３の処理を実行する。
【００６１】
便宜上、以下の説明では論理ボリューム５０１をプライマリボリューム５０１と称し、コピーボリューム５０２をセカンダリボリューム５０２と称する。
【００６２】
ストレージシステム１０は、論理ボリューム５０１に新たに設定しようとするチューニングパラメータを試験的にコピーボリューム５０２に設定する（ステップ６０３）。
【００６３】
ストレージシステム１０は、ホスト計算機３から発行されたＩ／Ｏ要求をプライマリボリューム５０１に発行するとともに、そのＩ／Ｏ要求をコピーし、そのコピーしたＩ／Ｏ要求をセカンダリボリューム５０２へ発行する（ステップ６０４）。
【００６４】
尚、ステップ６０４は、プライマリボリューム５０１とセカンダリボリューム５０２のそれぞれの性能を評価するための処理であるので、ステップ６０４の処理時間は、Ｉ／Ｏ特性に応じて設定するのが好ましい。例えば、Ｉ／Ｏ特性の変動周期が長い場合（Ｉ／Ｏ特性の変動が緩やかな場合）には、短時間の測定でも、十分な精度で各ボリュームの性能を評価できる。一方、Ｉ／Ｏ特性の変動周期が短い場合（Ｉ／Ｏ特性の変動が急激な場合）には、短時間の測定では、十分な精度で各ボリュームの性能を評価することができないので、測定時間を長めに設定する必要がある。
【００６５】
そして、ストレージシステム１０は、セカンダリボリューム５０２に対するＩ／Ｏ処理の方がプライマリボリューム５０１に対するＩ／Ｏ処理よりも低負荷であるか否かを判断する（ステップ６０５）。ここでいう負荷とは、ストレージシステム１０がＩ／Ｏ処理に要する各種のリソース（プロセッサリソース、メモリリソース、バスリソースなど）の使用率（プロセッサ使用率、メモリ使用率、バス使用率など）をいう。
【００６６】
プライマリボリューム５０１に対するＩ／Ｏ処理の方がセカンダリボリューム５０２に対するＩ／Ｏ処理よりも低負荷である場合には（ステップ６０５；ＮＯ）、新たしいチューニングパラメータを設定したセカンダリボリューム５０２の方が低性能であることを示しているので、ストレージシステム１０は、ステップ６０７の処理に進む。
【００６７】
一方、セカンダリボリューム５０２に対するＩ／Ｏ処理の方がプライマリボリューム５０１に対するＩ／Ｏ処理よりも低負荷である場合には（ステップ６０５；ＹＥＳ）、新たしいチューニングパラメータを設定したセカンダリボリューム５０２の方が高性能であることを示しているので、ストレージシステム１０は、コピーボリューム管理テーブル１１２におけるプライマリボリュームＬＵＮとセカンダリボリュームＬＵＮとを入れ替えて、プライマリボリューム５０１とセカンダリボリューム５０２との間の正副関係を入れ替える（ステップ６０６）。この処理により、新しいチューニングパラメータが設定された、高性能なセカンダリボリューム５０２を、今後はプライマリボリューム５０１として運用することが可能となる。
【００６８】
次に、ストレージシステム１０は、正副関係を入れ替える前のセカンダリボリューム５０２又は正副関係を入れ替えた後のプライマリボリューム５０１のうち何れか一方がステップ６０２の処理で作成されたコピーボリュームであるか否かを判断する（ステップ６０７）。
【００６９】
正副関係を入れ替える前のセカンダリボリューム５０２又は正副関係を入れ替えた後のプライマリボリューム５０１のうち何れか一方がステップ６０２の処理で作成されたコピーボリュームであるならば（ステップ６０７；ＹＥＳ）、ストレージシステム１０は、ステップ６０２の処理で作成されたコピーボリュームを削除し（ステップ６０８）、チューニングパラメータ設定処理ルーチンを抜ける。
【００７０】
一方、正副関係を入れ替える前のセカンダリボリューム５０２又は正副関係を入れ替えた後のプライマリボリューム５０１のうち何れか一方がステップ６０２の処理で作成されたコピーボリュームでないならば（ステップ６０７；ＮＯ）、ストレージシステム１０は、チューニングパラメータ設定処理ルーチンを抜ける。
【００７１】
本実施例によれば、チューニングパラメータの設定ミスに伴うストレージシステム１０の性能低下を回避しつつ、最適な性能チューニングを実現できる。また、運用ボリュームを運用を停止することなく、最適な性能チューニングを実現できるので、利便性に優れている。
【実施例２】
【００７２】
図７は実施例２に関わるストレージシステム１０の性能チューニング方法の概要を示している。図１に示した符号と同一符号のデバイス等は、同一のデバイス等を示すものとして、その詳細な説明を省略する。実施例２に関わるチューニングパラメータ設定方法は、実施例１に関わるチューニングパラメータ設定方法とほぼ同様であるので、両者の異なる点について中心に説明を加える。
【００７３】
実施例１では、ホスト計算機３は、プライマリボリューム５０１のみを認識し、セカンダリボリューム５０２を認識していない。ホスト計算機３からプライマリボリューム５０１へ発行されたＩ／Ｏ要求は、コントローラ１において複製され、コントローラ２に転送される。コントローラ２は、その複製されたＩ／Ｏ要求を受信して、セカンダリボリューム５０２へのＩ／Ｏ処理を実行する。
【００７４】
これに対し、実施例２では、ホスト計算機３は、プライマリボリューム５０１だけでなくセカンダリボリューム５０２をも認識し、プライマリボリューム５０１とセカンダリボリューム５０２のそれぞれにＩ／Ｏ要求を発行する。つまり、コントローラ１は、ホスト計算機３から発行されたＩ／Ｏ要求を複製する必要がない。かかる構成により、プライマリボリューム５０１に対するＩ／Ｏ処理を制御するハードウェア資源と、セカンダリボリューム５０２に対するＩ／Ｏ処理を制御するハードウェア資源とを完全に分離することが可能となり、プライマリボリューム５０１とセカンダリボリューム５０２のそれぞれについて、Ｉ／Ｏ処理性能を十分な精度で測定することができる。
【実施例３】
【００７５】
図８は実施例３に関わるストレージシステム１０の性能チューニング方法の概要を示している。図１に示した符号と同一符号のデバイス等は、同一のデバイス等を示すものとして、その詳細な説明を省略する。ホスト計算機３は、プライマリボリューム５０１のみを認識し、セカンダリボリューム５０２を認識していない。ホスト計算機３からプライマリボリューム５０１へ発行されたＩ／Ｏ要求は、コントローラ１において複製され、コントローラ２に転送される。コントローラ２はその複製されたＩ／Ｏ要求を受信して、セカンダリボリューム５０２へのＩ／Ｏ処理を実行する。
【００７６】
実施例３では、プライマリボリューム５０１とセカンダリボリューム５０２のそれぞれについて、異なるチューニングパラメータが設定されている。例えば、プライマリボリューム５０１に設定されているチューニングパラメータを「Ｃ」とし、セカンダリボリューム５０２に設定されているチューニングパラメータを「Ｄ」とする。
【００７７】
ホスト計算機３のＩ／Ｏ特性が時間の経過とともに変化する場合を想定すると、ある時間帯では、プライマリボリューム５０１のＩ／Ｏ処理性能が高性能（低負荷）であるのに対して、セカンダリボリューム５０２のＩ／Ｏ処理性能が低性能（高負荷）であるが、他の時間帯では、プライマリボリューム５０１のＩ／Ｏ処理性能が低性能（高負荷）であるのに対し、セカンダリボリューム５０２のＩ／Ｏ処理性能が高性能（低負荷）であるということが考えられる。プライマリボリューム５０１からセカンダリボリューム５０２への同期処理が非同期的に実行されているような場合には、プライマリボリューム５０１の応答時間が運用系（運用ボリューム）の応答時間になる。
【００７８】
そこで、ストレージシステム１０は、プライマリボリューム５０１とセカンダリボリューム５０２のそれぞれについて、Ｉ／Ｏ処理性能を計測し、プライマリボリューム５０１のＩ／Ｏ処理性能の方が高性能である場合には、そのまま運用を継続する。一方、セカンダリボリューム５０２のＩ／Ｏ処理性能の方が高性能である場合には、ストレージシステム１０は、プライマリボリューム５０１とセカンダリボリューム５０２との正副関係を入れ替えて、高性能なＩ／Ｏ処理性能を有する論理ボリューム（正副関係を入れ替える前のセカンダリボリューム５０２）をプライマリボリューム５０１として運用する。
【００７９】
例えば、バックアップ処理に適したチューニングパラメータをセカンダリボリューム５０２に設定しておき、夜間になると、ストレージシステム１０は、プライマリボリューム５０１とセカンダリボリューム５０２との間の正副関係を入れ替えて、バックアップ処理する。
【００８０】
かかるＩ／Ｏ処理方法によれば、ストレージシステム１０のＩ／Ｏ処理性能を常に最適化できる。
【００８１】
図９は実施例３に関わるＩ／Ｏ処理ルーチンを示すフローチャートである。
ストレージシステム１０は、ホスト計算機３から発行されたＩ／Ｏ要求をプライマリボリューム５０１に発行するとともに、そのＩ／Ｏ要求をコピーし、そのコピーしたＩ／Ｏ要求をセカンダリボリューム５０２へ発行する（ステップ９０１）。
【００８２】
次に、ストレージシステム１０は、セカンダリボリューム５０２に対するＩ／Ｏ処理の方がプライマリボリューム５０１に対するＩ／Ｏ処理よりも低負荷であるか否かを判断する（ステップ９０２）。実施例３では、変動の激しいＩ／Ｏ特性の変化に追随することを目的としているので、プライマリボリューム５０１とセカンダリボリューム５０２のそれぞれのＩ／Ｏ処理性能の測定時間は、短時間でよい。ユーザは、Ｉ／Ｏ処理性能の測定時間を自由に設定することもできる。
【００８３】
セカンダリボリューム５０２に対するＩ／Ｏ処理の方がプライマリボリューム５０１に対するＩ／Ｏ処理よりも低負荷である場合には（ステップ９０２；ＹＥＳ）、ストレージシステム１０は、プライマリボリューム５０１とセカンダリボリューム５０２の正副関係を入れ替えて（ステップ９０３）、高性能なＩ／Ｏ処理性能を有する論理ボリューム（正副関係を入れ替える前のセカンダリボリューム５０２）をプライマリボリューム５０１として運用し、Ｉ／Ｏ処理ルーチンを抜ける。
【００８４】
一方、セカンダリボリューム５０２に対するＩ／Ｏ処理の方がプライマリボリューム５０１に対するＩ／Ｏ処理よりも高負荷である場合には（ステップ９０２；ＮＯ）、ストレージシステム１０は、Ｉ／Ｏ処理ルーチンを抜ける。
【００８５】
尚、実施例３では、プライマリボリュームとコピーペアを形成可能な複数のコピーボリュームを作成し、全ての論理ボリューム（プライマリボリュームと全てのコピーボリューム）のそれぞれに異なるチューニングパラメータを設定し、その時々において高性能なＩ／Ｏ処理性能を発揮する論理ボリュームをプライマリボリュームとして運用してもよい。
【００８６】
本実施例によれば、Ｉ／Ｏ特性の変動に追随して、プライマリボリューム５０１とセカンダリボリューム５０２との正副関係を入れ替えるので、Ｉ／Ｏ特性の変動に関わりなくストレージシステム１０の性能を最適化できる。
【図面の簡単な説明】
【００８７】
【図１】実施例１に関わるストレージシステムの性能チューニング方法の概要図である。
【図２】ストレージシステムのハードウェア構成図である。
【図３】ローカルメモリ内のソフトウェア構成図である。
【図４】コピーボリューム管理テーブルの説明図である。
【図５】チューニングパラメータ管理テーブルの説明図である。
【図６】チューニングパラメータ設定処理ルーチンを示すフローチャートである。
【図７】実施例２に関わるストレージシステムの性能チューニング方法の概要図である。
【図８】実施例３に関わるストレージシステムの性能チューニング方法の概要図である。
【図９】性能チューニング処理ルーチンを示すフローチャートである。
【符号の説明】
【００８８】
１…コントローラ  ２…コントローラ  ３…ホスト計算機  ４…ネットワーク  １０…ストレージシステム  １００…記憶制御装置  ５０１…プライマリボリューム  ５０２…セカンダリボリューム
【図１】
2007280111.tif 000003
【図２】
2007280111.tif 000004
【図３】
2007280111.tif 000005
【図４】
2007280111.tif 000006
【図５】
2007280111.tif 000007
【図６】
2007280111.tif 000008
【図７】
2007280111.tif 000009
【図８】
2007280111.tif 000010
【図９】
2007280111.tif 000011