(57)【要約】【課題】ストレージシステムの性能向上を効率的に行うこと。【解決手段】ストレージ制御装置１０１＃１、＃２のいずれかは、複数のストレージ１０２に含まれる複数の記憶領域へのアクセスの偏りの有無に応じて構成情報１１１に基づき複数の記憶領域へのアクセスの偏りを補正する第１の構成変更を行う。第１の構成変更を行った後、ストレージ制御装置１０１＃１、＃２のいずれかは、第１の構成変更を行った後で、複数のストレージへのアクセスの偏りの有無に応じて構成情報１１１に基づき第２の構成変更を行う補正処理を実行する。または、第１の構成変更を行った後、ストレージ制御装置１０１＃１、＃２のいずれかは、第１の構成変更を行った後で、複数のストレージ制御装置１０１にかかる負荷の偏りの有無に応じて構成情報１１１に基づき第３の構成変更を行う補正処理を実行する。【選択図】図１
2015082315.tif 000002
【特許請求の範囲】
【請求項１】
ストレージシステム内の複数のストレージへのアクセスを制御する複数のストレージ制御装置のいずれかのストレージ制御装置であって、
前記ストレージシステムの構成を特定する構成情報を記憶する記憶部と、
前記複数のストレージに含まれる複数の記憶領域へのアクセスの偏りの有無に応じて前記構成情報に基づき前記複数の記憶領域へのアクセスの偏りを補正する第１の構成変更を行った後で、前記複数のストレージへのアクセスの偏りの有無に応じて前記構成情報に基づき前記複数のストレージへのアクセスの偏りを補正する第２の構成変更を行う、または、前記複数のストレージ制御装置にかかる負荷の偏りの有無に応じて前記構成情報に基づき前記複数のストレージ制御装置にかかる負荷の偏りを補正する第３の構成変更を行う補正処理を実行する制御部と、
を有することを特徴とするストレージ制御装置。
【請求項２】
前記第２の構成変更は、
前記複数のストレージへのアクセスの偏りが有ることを検出したことに応じて、前記構成情報に基づき前記複数のストレージのうち相対的にアクセスが多いストレージが含まれるＲＡＩＤグループのＲＡＩＤレベルを変更する処理、または、前記構成情報に基づき当該ＲＡＩＤグループを形成するストレージの個数を変更する処理を含むことを特徴とする請求項１に記載のストレージ制御装置。
【請求項３】
前記第３の構成変更は、
前記複数のストレージ制御装置にかかる負荷の偏りが有ることを検出したことに応じて、前記構成情報に基づき前記複数のストレージによって形成される複数のＲＡＩＤグループの各々のＲＡＩＤグループのアクセスを担当する前記各々のＲＡＩＤグループごとの担当ストレージ制御装置のうち、相対的に負荷が高い担当ストレージ制御装置が担当するＲＡＩＤグループの担当を変更する処理を含むことを特徴とする請求項１または２に記載のストレージ制御装置。
【請求項４】
前記第１の構成変更は、
前記複数の記憶領域へのアクセスの偏りが有ることを検出したことに応じて、前記構成情報に基づき前記複数の記憶領域のうち相対的にアクセスが多い記憶領域が含まれるＲＡＩＤグループのＲＡＩＤレベルを変更する処理、または、当該ＲＡＩＤグループを形成するストレージの個数を変更する処理を含むことを特徴とする請求項１〜３のいずれか一つに記載のストレージ制御装置。
【請求項５】
ストレージシステム内の複数のストレージへのアクセスを制御する複数のストレージ制御装置のいずれかのストレージ制御装置が、
前記複数のストレージに含まれる複数の記憶領域へのアクセスの偏りの有無に応じて前記ストレージシステムの構成を特定する構成情報に基づき前記複数の記憶領域へのアクセスの偏りを補正する第１の構成変更を行った後で、前記複数のストレージへのアクセスの偏りの有無に応じて前記構成情報に基づき前記複数のストレージへのアクセスの偏りを補正する第２の構成変更を行う、または、前記複数のストレージ制御装置にかかる負荷の偏りの有無に応じて前記構成情報に基づき前記複数のストレージ制御装置にかかる負荷の偏りを補正する第３の構成変更を行う補正処理を実行する、
処理を実行することを特徴とする制御方法。
【請求項６】
ストレージシステム内の複数のストレージへのアクセスを制御する複数のストレージ制御装置のいずれかのストレージ制御装置に、
前記複数のストレージに含まれる複数の記憶領域へのアクセスの偏りの有無に応じて前記ストレージシステムの構成を特定する構成情報に基づき前記複数の記憶領域へのアクセスの偏りを補正する第１の構成変更を行った後で、前記複数のストレージへのアクセスの偏りの有無に応じて前記構成情報に基づき前記複数のストレージへのアクセスの偏りを補正する第２の構成変更を行う、または、前記複数のストレージ制御装置にかかる負荷の偏りの有無に応じて前記構成情報に基づき前記複数のストレージ制御装置にかかる負荷の偏りを補正する第３の構成変更を行う補正処理を実行する、
処理を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ制御装置、制御方法、およびプログラムに関する。
【背景技術】
【０００２】
従来、複数のストレージを有するストレージシステムの構成を変更する技術がある。たとえば、複数のストレージのいずれかのストレージにアクセスが集中した際に、ストレージシステムの構成を変更して、いずれかのストレージへのアクセスを分散させることがある。また、たとえば、複数のストレージを制御する複数のプロセッサのいずれかのプロセッサに負荷が集中した際に、ストレージシステムの構成を変更して、いずれかのプロセッサにかかる負荷を分散させることがある。
【０００３】
関連する先行技術として、たとえば、監視対象となっているストレージネットワーク構成要素から収集した性能情報をもとに、以後の情報収集の対象範囲もしくは程度を自動調整するものがある。また、第１の論理ディスクに割り当てられている物理エクステントに対するホスト装置からのアクセス頻度を示す統計情報に基づいて、第２の論理ディスクに割り当てる第２の物理エクステントに、第１の論理ディスクのコピーボリュームを作成する技術がある。また、外部マネージャが、ディスクアレイ制御装置群と通信し、それぞれが有する物理ドライブおよび論理ボリュームに関するアクセス情報、構成情報を収集、管理し、アクセス負荷を均衡化するための最適なデータ移行マイグレーション指示を生成する技術がある。また、ホスト装置が、ハードディスク装置から受信したパラメータ情報に基づいてハードディスク装置に対するコマンドの実行時間を予測して、予測結果に基づいて、コマンドの並び替えを行う技術がある。（たとえば、下記特許文献１〜４を参照。）
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−１５７９３３号公報
【特許文献２】特開２００９−２１７７００号公報
【特許文献３】特開２００１−３３７７９０号公報
【特許文献４】特開２００１−２２２３８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術によれば、ストレージシステムの性能を劣化させる複数の要因が存在する際に、それぞれの要因を解消するためのそれぞれの構成変更を行っても期待通りの性能向上を得られない場合がある。
【０００６】
１つの側面では、本発明は、ストレージシステムの性能向上を効率的に行えるストレージ制御装置、制御方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一側面によれば、ストレージシステム内の複数のストレージへのアクセスを制御する複数のストレージ制御装置のいずれかのストレージ制御装置であって、ストレージシステムの構成を特定する構成情報を記憶する記憶部にアクセス可能であり、複数のストレージに含まれる複数の記憶領域へのアクセスの偏りの有無に応じて構成情報に基づき複数の記憶領域へのアクセスの偏りを補正する第１の構成変更を行った後で、複数のストレージへのアクセスの偏りの有無に応じて構成情報に基づき複数のストレージへのアクセスの偏りを補正する第２の構成変更を行う、または、複数のストレージ制御装置にかかる負荷の偏りの有無に応じて構成情報に基づき複数のストレージ制御装置にかかる負荷の偏りを補正する第３の構成変更を行う補正処理を実行するストレージ制御装置、制御方法、およびプログラムが提案される。
【発明の効果】
【０００８】
本発明の一態様によれば、ストレージシステムの性能向上を効率的に行うことができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、本実施の形態にかかるストレージ制御装置の動作例を示す説明図である。
【図２】図２は、ストレージシステムの接続例を示す説明図である。
【図３】図３は、ＣＭのハードウェア構成例を示すブロック図である。
【図４】図４は、ＲＡＩＤ構成におけるボリュームの関係を示す説明図である。
【図５】図５は、Ｔｈｉｎ  Ｐｒｏｖｉｓｉｏｎｉｎｇのボリュームの対応関係を示す説明図である。
【図６】図６は、Ｗｉｄｅ  Ｓｔｒｉｐｉｎｇの説明図である。
【図７】図７は、ＣＭの機能構成例を示す説明図である。
【図８】図８は、制御部の詳細な機能構成例を示す説明図である。
【図９】図９は、検出に用いる性能情報の一覧を示す説明図である。
【図１０】図１０は、偏りによる性能への影響度とＲＡＩＤ構成の最適化手法の一例を示す説明図である。
【図１１】図１１は、ＰＬＵアクセスの偏りの補正と特定ＳＬＵアクセスの偏りの補正の一例を示す説明図である。
【図１２】図１２は、クロスアクセスの偏りの補正の一例を示す説明図である。
【図１３】図１３は、偏り検出および補正処理手順の一例を示すフローチャート（その１）である。
【図１４】図１４は、偏り検出および補正処理手順の一例を示すフローチャート（その２）である。
【発明を実施するための形態】
【００１０】
以下に図面を参照して、開示のストレージ制御装置、制御方法、およびプログラムの実施の形態を詳細に説明する。
【００１１】
図１は、本実施の形態にかかるストレージ制御装置の動作例を示す説明図である。本実施の形態にかかるストレージシステム１００は、ストレージ１０２＃１〜＃ｎを制御する複数のストレージ制御装置１０１＃１、＃２を含むシステムである。
【００１２】
ストレージシステム１００は、ストレージシステム１００の利用者に対してストレージ１０２＃１〜＃ｎの記憶領域を提供するシステムである。利用者のデータを紛失しないために、ストレージ制御装置１０１＃１、＃２は、ストレージ１０２＃１〜＃ｎを組み合わせてＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）を形成して、ＲＡＩＤにより形成された仮想的なボリュームを利用者に提供する。ストレージシステム１００は、ストレージシステム１００の構成を特定する構成情報１１１を記憶する。構成情報１１１は、ストレージ１０２＃１〜＃ｎを組み合わせることにより形成されたＲＡＩＤグループの情報を記憶する。
【００１３】
ＲＡＩＤグループの情報は、ＲＡＩＤ構成を特定する情報と、該当のＲＡＩＤグループへのアクセスを担当するストレージ制御装置１０１を特定する情報とを含む。ＲＡＩＤ構成は、ＲＡＩＤレベルとストレージ１０２の個数とにより決定する。同一のＲＡＩＤ構成となるＲＡＩＤグループは、ＲＡＩＤレベルが同一であり、かつ、ディスクの個数が同一となるＲＡＩＤグループである。ＲＡＩＤレベルは、複数のレベルが定義されており、主に、ＲＡＩＤ０からＲＡＩＤ６まで存在する。また、ＲＡＩＤ０＋１というように、ＲＡＩＤレベルを組み合わせたレベルも存在する。
【００１４】
複数台のストレージ１０２にデータを分散してＩ／Ｏを高速化させる技術はストライピングと呼ばれ、データがＸｂｙｔｅずつ順番にＲＡＩＤグループを形成するボリュームに配置される。Ｘｂｙｔｅの各データを、ストリップ（ｓｔｒｉｐ）と呼称する。また、ＲＡＩＤグループを形成する各ストレージ１０２に配置されたストリップを横つながりに組み合わせた１つのデータセットを、ストライプ（ｓｔｒｉｐｅ）と呼称する。
【００１５】
ＲＡＩＤグループへのアクセスを担当するストレージ制御装置１０１は、たとえば、書き込み先のＲＡＩＤグループのＲＡＩＤレベルがＲＡＩＤ５であれば、書き込みデータからパリティを計算して、対応するストリップに書き込みデータ、またはパリティを書き込む。
【００１６】
ＲＡＩＤを形成することにより、ストレージシステム１００は、利用者にデータの冗長性による信頼性の高い記憶領域を提供できる。また、ＲＡＩＤを形成することにより、アクセスが複数のストレージ１０２に分散することから、ストレージシステム１００は、利用者にアクセス応答が高速な記憶領域を提供できる。
【００１７】
しかしながら、アクセスがＲＡＩＤグループを形成する複数のストレージ１０２の一つのストレージ１０２にアクセスが偏ると、ＲＡＩＤグループのＩ／Ｏ性能が、単一のストレージ１０２のＩ／Ｏに依存してしまい、アクセスに対応する応答が遅延する。また、複数のストレージ１０２に含まれる複数の記憶領域のうち、単一の記憶領域にアクセスが偏ると、アクセスに対応する応答が遅延する。さらに、複数のストレージ制御装置１０１のうち、単一のストレージ制御装置１０１にかかる負荷が偏ると、アクセスに対応する応答が遅延する。
【００１８】
単一のストレージ１０２にアクセスが集中する例として、ファイルシステムや、アプリケーションソフトウェアなどが管理するメタデータは、あるタイミングで比較的小さなファイルサイズでＲｅａｄ／Ｗｒｉｔｅが行われる場合がある。メタデータのアクセス特性によってはＲＡＩＤグループを形成するストレージ１０２の個数やストリップサイズの相性から、アクセスされるデータが１つのストレージ１０２に集中してしまう可能性がある。
【００１９】
より詳細には、たとえば、アプリケーションソフトウェアなどが管理するメタデータが複数のレコードを有するテーブル構造になっており、一レコードのサイズが１ストライプ分のデータサイズと一致するとする。そして、アプリケーションソフトウェアが、複数のレコードから、各レコードのあるフィールドの値がある条件を満たすレコードを検索する処理を行うとする。この場合、各レコードのあるフィールドが記憶される記憶領域は、ＲＡＩＤグループを形成する複数のストレージ１０２のうち、ある１つのストレージ１０２に集中する可能性がある。
【００２０】
応答の遅延については、ストレージシステム１００の構成を変更することにより解消する可能性があるが、ストレージシステム１００の性能を引き出すためのチューニングには高度な知識が要求され、ストレージシステム１００の管理者にかかる負荷が高い。具体的に、ストレージシステム１００の管理者は、ストレージシステム１００の性能が引き出せない原因の追究、性能を引き出すためのチューニングは、ストレージシステム１００内から収集できる性能情報の詳細な調査を行うことになる。
【００２１】
また、単一のストレージ１０２へのアクセスの偏りの解消と、単一の記憶領域へのアクセスの偏りの解消と、単一のストレージ制御装置１０１にかかる負荷の偏りの解消と、のうちのいずれかを行うためにストレージシステム１００の構成を変更したとする。このとき、ストレージシステム１００の構成により、解消した偏り以外の偏りがより大きくなる可能性がある。そして、解消した偏りがストレージシステム１００の性能に与える影響より、より大きくなった偏りがストレージシステム１００の性能に与える影響の方が大きい場合、ストレージシステム１００の性能が悪化することになる。
【００２２】
そこで、本実施の形態にかかるストレージ制御装置１０１は、複数のストレージ１０２の各記憶領域へのアクセスの偏りの補正後、複数のストレージへのアクセスの偏りまたは複数のストレージ制御装置１０１にかかる負荷の偏りを補正する。これにより、ストレージ制御装置１０１は、ストレージシステム１００の性能に高影響の要因の補正が低影響の要因の補正で台無しになることを防ぐ。
【００２３】
図１の（Ａ）は、ストレージ制御装置１０１＃１、＃２のいずれかが複数のストレージ１０２に含まれる複数の記憶領域へのアクセスの偏りの有無に応じて構成情報１１１に基づき複数の記憶領域へのアクセスの偏りを補正する第１の構成変更を行った後の図である。ストレージ制御装置１０１＃１、＃２のいずれかは、第１の構成変更を行うことにより、複数の記憶領域へのアクセスの偏りを補正することになる。複数の記憶領域へのアクセスの偏りを補正する第１の構成変更については、図１０、図１１で後述する。
【００２４】
図１の（Ａ）における構成情報１１１は、ＲＡＩＤグループ１がストレージ１０２＃１〜＃ｎ−１により形成されており、ＲＡＩＤレベルがＲＡＩＤ５であることを示す。また、図１の（Ａ）における構成情報１１１は、ＲＡＩＤグループ１にアクセスを担当するストレージ制御装置１０１がストレージ制御装置１０１＃１であることを示す。図１の（Ａ）、（Ｂ）における、ストレージ制御装置１０１＃１、＃２に入る矢印は、ＲＡＩＤグループ１に対するアクセス量を示す。図１の（Ａ）では、ストレージ制御装置１０１＃１に依頼されるＲＡＩＤグループ１に対するアクセス量より、ストレージ制御装置１０１＃２に依頼されるＲＡＩＤグループ１に対するアクセス量の方が大きいことを示す。結果、ストレージ制御装置１０１＃１は、ＲＡＩＤグループ１に対するアクセスの処理として、ストレージ制御装置１０１＃１に直接依頼された分と、ストレージ制御装置１０１＃２から依頼された分とを行うため、負荷が集中する。
【００２５】
また、図１の（Ａ）に示すストレージシステム１００は、アクセスがストレージ１０２＃ｍに集中しており、アクセスに偏りが発生した状態である。図１の（Ａ）、（Ｂ）における斜線が入った矩形１２１、１２２は、該当のストリップアクセスがあることを示す。具体的に、図１の（Ａ）では、ストリップｍに矩形１２１があるから、ストリップｍにアクセスがあることを示し、また、ストリップｎ＋ｍに矩形１２２があるから、ストリップｎ＋ｍにアクセスがあることを示す。このように、複数の記憶領域へのアクセスの偏りを補正した結果、単一のストレージ１０２にアクセスが偏ってしまう可能性がある。
【００２６】
第１の構成変更を行った後、ストレージ制御装置１０１＃１、＃２のいずれかは、複数のストレージへのアクセスの偏りの有無に応じて構成情報１１１に基づき第２の構成変更を行う補正処理を実行する。または、第１の構成変更を行った後、ストレージ制御装置１０１＃１、＃２のいずれかは、複数のストレージ制御装置１０１にかかる負荷の偏りの有無に応じて構成情報１１１に基づき第３の構成変更を行う補正処理を実行する。
【００２７】
第２の構成変更は、複数のストレージへのアクセスの偏りを補正する構成変更である。ストレージ制御装置１０１＃１、＃２のいずれかは、第２の構成変更を行うことにより、複数のストレージへのアクセスの偏りを補正することになる。第２の構成変更については、図１０、図１１で後述する。
【００２８】
また、第３の構成変更は、複数のストレージ制御装置１０１にかかる負荷の偏りを補正する構成変更である。ストレージ制御装置１０１＃１、＃２のいずれかは、第３の構成変更を行うことにより、複数のストレージ制御装置１０１にかかる負荷の偏りを補正することになる。第３の構成変更については、図１０、図１２で後述する。
【００２９】
図１（Ｂ）に示すストレージシステム１００は、第２の構成変更を行った場合の例を示す。図１の（Ｂ）における構成情報１１１は、ＲＡＩＤグループ１のＲＡＩＤレベルとＲＡＩＤ担当ストレージ制御装置１０１については変更されておらず、ＲＡＩＤグループ１に含まれるストレージの個数が変更されている。ＲＡＩＤグループ１にストレージ１０２＃ｎが加わったことにより、アクセスが、ストリップｍを有するストレージ１０２＃ｍと、ストリップｎ＋ｍを有するストレージ１０２＃ｍ−１とに分散される。したがって、図１の（Ａ）においてストレージ１０２＃ｍに偏っていたアクセスが分散され、ＲＡＩＤグループ１の性能が向上することになる。
【００３０】
図１には示していないが、ストレージ制御装置１０１＃１、＃２のいずれかは、第１の構成変更を行った後、第３の構成変更を行う補正処理を実行してもよい。第３の構成変更として、ストレージ制御装置１０１＃１、＃２のいずれかは、ＲＡＩＤ担当ストレージ制御装置１０１を、ストレージ制御装置１０１＃１からストレージ制御装置１０１＃２に変更する。ストレージ制御装置１０１＃１に依頼されるＲＡＩＤグループ１に対するアクセス量は小さいため、ストレージ制御装置１０１＃１、＃２にかかる負荷を分散することができ、ストレージシステム１００の性能を向上させることができる。
【００３１】
次に、図２〜図１４において、ＣＭ（Ｃｏｎｔｒｏｌｌｅｒ  Ｍｏｄｕｌｅ）を有するストレージシステム２００について説明する。
【００３２】
図２は、ストレージシステムの接続例を示す説明図である。ストレージシステム２００は、ホスト装置２０１と、ＦＣスイッチ２０２と、ＣＭ２０３〜２０６と、ＤＥ（Ｄｒｉｖｅ  Ｅｎｃｌｏｓｕｒｅ）２０７〜２１０と、を含む。ストレージ制御装置１０１は、ＣＭ２０３〜２０６に相当する。
【００３３】
ホスト装置２０１は、ＣＡ（Ｃｈａｎｎｅｌ  Ａｄａｐｔｅｒ）２１１＃１〜＃４を含む。ＣＭ２０３〜２０６のハードウェア構成については、図３で後述する。ＤＥ２０７は、ストレージ２１２＃１〜＃９と、ＨＳ（Ｈｏｔ  Ｓｐａｒｅ）２１３とを含む。また、ＤＥ２０８は、ストレージ２１４＃１〜＃９と、ＨＳ２１５とを含む。同様に、ＤＥ２０９は、ストレージ２１６＃１〜＃９と、ＨＳ２１７とを含む。また、ＤＥ２１０は、ストレージ２１８＃１〜＃９と、ＨＳ２１９とを含む。
【００３４】
ホスト装置２０１は、ストレージ２１２＃１〜＃９、２１４＃１〜＃９、２１６＃１〜＃９、２１８＃１〜＃９が有する記憶領域を利用する装置である。ＦＣスイッチ２０２は、ホスト装置２０１とＣＭ２０３〜２０６とに接続する装置である。ＣＭ２０３〜２０６は、ストレージ２１２＃１〜＃９、２１４＃１〜＃９、２１６＃１〜＃９、２１８＃１〜＃９を制御する装置である。ＤＥ２０７〜２１０は、ストレージ２１２＃１〜＃９、２１４＃１〜＃９、２１６＃１〜＃９、２１８＃１〜＃９を搭載する筐体である。ストレージ２１２＃１〜＃９、２１４＃１〜＃９、２１６＃１〜＃９、２１８＃１〜＃９は、記憶領域を有する装置である。また、ＣＭ２０３〜２０６は、ＣＥ（Ｃｏｎｔｒｏｌｌｅｒ  Ｅｎｃｌｏｓｕｒｅ）２２０に含まれる。ＣＥ２２０は、ＣＭ２０３〜２０６を搭載する筐体である。
【００３５】
ＣＡ２１１＃１〜４は、ＦＣスイッチ２０２を経由してＣＭ２０３〜２０６に接続するアダプタである。ストレージ２１２＃１〜＃９、２１４＃１〜＃９、２１６＃１〜＃９、２１８＃１〜＃９は、たとえば、ハードディスクドライブや磁気テープドライブなどである。ＨＳ２１３、２１５、２１７、２１９は、ストレージ２１２＃１〜＃９、２１４＃１〜＃９、２１６＃１〜＃９、２１８＃１〜＃９に対して予備となる記憶領域を有する装置である。
【００３６】
図３は、ＣＭのハードウェア構成例を示すブロック図である。図３では、ＣＭ２０３のハードウェア構成例を示す。ＣＭ２０４〜ＣＭ２０６のハードウェア構成については、ＣＭ２０３のハードウェア構成と同一になるため説明を省略する。
【００３７】
ＣＭ２０３は、ＣＰＵ３０１＃１、＃２と、メモリ３０２と、ＣＡ３０３＃１、＃２と、ＤＥへのアダプタ３０４＃１、＃２とを含む。ＣＰＵ３０１＃１、＃２と、メモリ３０２とは、バス３０５により接続される。ＣＡ３０３＃１、＃２、ＤＥへのアダプタ３０４＃１、＃２は、バス３０５に接続してもよいし、ＣＰＵ３０１＃１、＃２に直接接続してもよい。
【００３８】
ＣＰＵ３０１＃１、＃２は、ＣＭ２０３全体の制御を司る演算処理装置である。メモリ３０２は、ブートプログラムなどのプログラムを記憶する不揮発メモリである。ＣＡ３０３＃１、＃２は、ＦＣスイッチ２０２を経由してホスト装置２０１と接続する装置である。ＤＥへのアダプタ３０４＃１、＃２は、ＤＥ２０７〜２１０のそれぞれに格納されたストレージ２１２＃１〜＃９、２１４＃１〜＃９、２１６＃１〜＃９、２１８＃１〜＃９に接続する装置である。また、図３には図示していないが、ＣＭ２０３は、ブートプログラムなどのプログラムを記憶する不揮発性メモリを有する。
【００３９】
図３で示したように、ＣＭ２０３〜２０６それぞれは、複数のＣＰＵを有する。したがって、ＣＭ２０３〜２０６に含まれる１つのＣＰＵとメモリ３０２とを１つの装置として、図１に示したストレージ制御装置１０１に相当するとしてもよい。
【００４０】
図４は、ＲＡＩＤ構成におけるボリュームの関係を示す説明図である。図４では、ＲＬＵ（ＲＡＩＤ  Ｇｒｏｕｐ  Ｌｏｇｉｃａｌ  Ｕｎｉｔ）と、ＳＬＵ（Ｓｈａｒｅｄ  Ｌｏｇｉｃａｌ  Ｕｎｉｔ）と、ＯＬＵ（Ｏｐｅｎ  Ｌｏｇｉｃａｌ  Ｕｎｉｔ）と、ＤＬＵ（ｖｉｒｔｕａｌ  Ｄｅｖｉｃｅ  Ｌｏｇｉｃａｌ  Ｕｎｉｔ）と、ＰＬＵ（Ｐｈｙｓｉｃａｌ  Ｌｏｇｉｃａｌ  Ｕｎｉｔ）とについて説明する。
【００４１】
ＲＬＵは、ＲＡＩＤグループを示す。ＳＬＵは、ＲＡＩＤグループの一部のボリューム、または全体のボリュームを示す。ＳＬＵは、ストレージシステム２００内でボリュームを管理する最小単位である。ＯＬＵは、Ｏｐｅｎ  Ｓｙｓｔｅｍ用のボリュームを示す。ＯＬＵのボリュームタイプとしては、通常のボリューム、ＴＰＶ（Ｔｈｉｎ  Ｐｒｏｖｉｓｉｏｎｉｎｇ  Ｖｏｌｕｍｅ）、ＦＴＶ（Ｆｌｅｘｉｂｌｅ  Ｔｉｅｒ  Ｖｏｌｕｍｅ）、図６で後述するＷＳＶ（Ｗｉｄｅ  Ｓｔｒｉｐｉｎｇ  Ｖｏｌｕｍｅ）がある。ＤＬＵは、仮想ディスクを示す。ＤＬＵは、ＲＬＵとＰＬＵを関連付けるための概念である。ＰＬＵは、物理ディスクを示す。
【００４２】
図４では、ＲＡＩＤ１＋０におけるディスクおよびボリュームを示す。ＲＬＵ４０１は、ＰＬＵが４台であり、ＲＡＩＤレベルがＲＡＩＤ１＋０のＲＡＩＤ構成である。ＲＬＵ４０１は、ＤＬＵ４１１、４１２を含む。ＤＬＵ４１１は、ＰＬＵ４２１、４２２を含む。また、ＤＬＵ４１２は、ＰＬＵ４２３、４２４を含む。ＰＬＵ４２４は、ＯＬＵ４３１、４３２、４３３を含む。ＯＬＵ４３３は、ＳＬＵ４４１、４４２、４４３を含む。ＯＬＵとＳＬＵについて、ＯＬＵを最初に定義する際には、ＯＬＵとＳＬＵとは同一の記憶領域を示す。ＯＬＵの定義後に、ＯＬＵの記憶領域を拡張する場合に、既存のＯＬＵと別のＳＬＵとによりＯＬＵを再定義することにより、ＯＬＵの記憶領域を拡張することができる。
【００４３】
図５は、Ｔｈｉｎ  Ｐｒｏｖｉｓｉｏｎｉｎｇのボリュームの対応関係を示す説明図である。図５では、Ｔｈｉｎ  Ｐｒｏｖｉｓｉｏｎｉｎｇを適用しない場合と、Ｔｈｉｎ  Ｐｒｏｖｉｓｉｏｎｉｎｇを適用した場合のディスクおよびボリュームの対応関係について説明する。Ｔｈｉｎ  Ｐｒｏｖｉｓｉｏｎｉｎｇを適用した場合のディスクおよびボリュームの概念として、ＴＰＰ（Ｔｈｉｎ  Ｐｒｏｖｉｓｉｏｎｉｎｇ  Ｐｏｏｌ）、ＴＰＰＶ（Ｔｈｉｎ  Ｐｒｏｖｉｓｉｏｎｉｎｇ  Ｐｏｏｌ  Ｖｏｌｕｍｅ）、ＴＰＶがある。
【００４４】
ＴＰＰは、ＲＡＩＤグループの集合体である。ＴＰＰＶは、Ｔｈｉｎ  Ｐｒｏｖｉｓｉｏｎｉｎｇにおける物理ボリュームである。ＴＰＰＶは、ＳＬＵに相当する。ＴＰＶは、Ｔｈｉｎ  Ｐｒｏｖｉｓｉｏｎｉｎｇにおける論理ボリュームである。ＴＰＶは、ＯＬＵに相当する。ＬＢＡ変換テーブル５０１は、ＣＭ２０３内部で管理する情報である。
【００４５】
図６は、Ｗｉｄｅ  Ｓｔｒｉｐｉｎｇの説明図である。ＲＡＩＤの性能は、ＤＩＳＫ性能に依るところが多い。特に、Ｒａｎｄｏｍライトの性能は、ＤＩＳＫ性能に大きく影響する。したがって、ＬＵＮが複数のＤＩＳＫを同時に使用できるＲＡＩＤ構成であれば、一般的に性能は向上する。Ｗｉｄｅ  Ｓｔｒｉｐｉｎｇは、性能向上を目的として、複数のＲＡＩＤグループをＳｔｒｉｐｉｎｇで連結する機能である。
【００４６】
Ｗｉｄｅ  Ｓｔｒｉｐｉｎｇで形成されたボリュームは、ＷＳＶと呼称される。それぞれのＲＡＩＤグループにより、同容量のＳＬＵが作成される。そして、ＳＬＵは、ＷＳＶの連結するサイズごとに分割される。分割された単位は、「ＷＳＶ  Ｕｎｉｔ」と呼称する。また、分割されたサイズは、「ＷＳＶ  Ｕｎｉｔ  Ｓｉｚｅ」と呼称する。
【００４７】
ＷＳＶのＯＬＢＡは、ＷＳＶ  Ｕｎｉｔ  Ｓｉｚｅ単位に  ＳＬＵのＷＳＶ  ＵｎｉｔがＲＡＩＤグループ順にラウンドロビンで割り当てられる。図６で示す例では、ＲＬＵ＃ＡにＳＬＵ＃０が含まれており、ＲＬＵ＃ＢにＳＬＵ＃１が含まれており、ＲＬＵ＃ＣにＳＬＵ＃２が含まれており、ＲＬＵ＃ＤにＳＬＵ＃３が含まれる。ＯＬＢＡ＃０は、ＳＬＵ＃０内のＷＳＶ  Ｕｎｉｔ＃０に割り当てられる。次に、ＯＬＢＡ＃１は、ＳＬＵ＃１内のＷＳＶ  Ｕｎｉｔ＃０に割り当てられる。続けて、ＯＬＢＡ＃２は、ＳＬＵ＃２内のＷＳＶ  Ｕｎｉｔ＃０に割り当てられる。次に、ＯＬＢＡ＃３は、ＳＬＵ＃３内のＷＳＶ  Ｕｎｉｔ＃０に割り当てられる。続けて、ＯＬＢＡ＃４は、ＳＬＵ＃０内のＷＳＶ  Ｕｎｉｔ＃１に割り当てられる。このように、ラウンドロビンにしたがってＳＬＵの記憶領域がＯＬＵの記憶領域として割り当てられる。
【００４８】
図７は、ＣＭの機能構成例を示す説明図である。ＣＭ２０３は、ＣＡ制御部７０１と、ＯＳ制御部７０２と、リソース制御部７０３と、キャッシュ制御部７０４と、ＲＡＩＤ制御部７０５と、ストレージ制御部７０６と、制御部７０７とを含む。ＣＡ制御部７０１〜ストレージ制御部７０６は、ＣＭ２０４〜ＣＭ２０６も有する。また、制御部７０７は、ＣＭ２０４〜ＣＭ２０６のいずれかが有してもよい。本実施の形態では、ＣＭ２０３が、ストレージシステム２００全体を制御する運用ＣＭであるとして説明を行う。
【００４９】
また、ＣＭ２０３は、構成情報１１１にアクセス可能である。構成情報１１１は、メモリ３０２に記憶される。ＣＡ制御部７０１〜制御部７０７は、記憶装置に記憶されたストレージシステムの構成管理プログラムをＣＰＵ３０１＃１が実行することにより、ＣＡ制御部７０１〜制御部７０７の機能を実現する。記憶装置とは、具体的には、たとえば、図３に示したメモリ３０２などである。ＣＡ制御部７０１〜制御部７０７の出力結果は、メモリ３０２に格納される。
【００５０】
ＣＡ制御部７０１は、ホスト装置２０１からコマンドを受け付けて、コマンドの応答を行う。ＯＳ制御部７０２は、ＣＭ２０３のＯＳの制御を行う。リソース制御部７０３は、ホスト装置２０１に対するＩ／Ｏの排他や監視を行う。キャッシュ制御部７０４は、メモリ３０２上のキャッシュ域の監視を行う。ＲＡＩＤ制御部７０５は、ストレージ２１２＃１〜＃９、２１４＃１〜＃９、２１６＃１〜＃９、２１８＃１〜＃９により形成される複数のＲＡＩＤグループの制御を行う。ストレージ制御部７０６は、ストレージ２１２＃１〜＃９、２１４＃１〜＃９、２１６＃１〜＃９、２１８＃１〜＃９への書き込み制御を行う。
【００５１】
制御部７０７は、ストレージシステム２００の構成を変更する。具体的に、制御部７０７は、構成情報１１１とＣＡ制御部７０１〜ストレージ制御部７０６から収集した性能情報に基づいて、複数のＲＡＩＤグループの構成と、複数のＲＡＩＤグループの担当ＣＰＵを変更する。制御部７０７の詳細な機能構成例については、図８で説明する。
【００５２】
図８は、制御部の詳細な機能構成例を示す説明図である。制御部７０７は、第１の検出部８０１と、第１の補正部８０２と、第２の検出部８０３と、第２の補正部８０４と、第３の検出部８０５と、第３の補正部８０６と、を含む。
【００５３】
第１の検出部８０１は、複数のストレージに含まれる複数の記憶領域へのアクセスの偏りの有無を検出する。複数のストレージとは、複数のＰＬＵである。複数の記憶領域とは、複数のＳＬＵである。以下、複数の記憶領域へのアクセスの偏りを、「特定ＳＬＵアクセスの偏り」と呼称する。特定ＳＬＵアクセスの偏りの有無の検出に用いる性能情報については、図９で説明する。
【００５４】
第１の補正部８０２は、第１の検出部８０１が特定ＳＬＵアクセスの偏りが有ることを検出したことに応じて、構成情報に基づき特定ＳＬＵアクセスの偏りを補正する第１の構成変更を行う。たとえば、第１の補正部８０２は、第１の構成変更として、複数のＳＬＵのうち相対的にアクセスが多いＳＬＵが含まれるＲＡＩＤグループのＲＡＩＤレベルを変更する、または、前述のＲＡＩＤグループを形成するストレージの個数を変更する。特定ＳＬＵアクセスの偏りの補正例については、図１１で説明する。
【００５５】
第２の検出部８０３は、第１の補正部８０２が第１の構成変更を行った後で、複数のストレージへのアクセスの偏りの有無を検出する。以下、複数のストレージへのアクセスの偏りを、「ＰＬＵアクセスの偏り」と呼称する。ＰＬＵアクセスの偏りの検出に用いる性能情報については、図９で説明する。
【００５６】
第２の補正部８０４は、第２の検出部８０３がＰＬＵアクセスの偏りが有ることを検出したことに応じて、構成情報に基づきＰＬＵアクセスの偏りを補正する第２の構成変更を行う。たとえば、第２の補正部８０４は、第２の構成変更として、構成情報に基づいて複数のＰＬＵのうち相対的にアクセスが多いＰＬＵが含まれるＲＡＩＤグループのＲＡＩＤレベルを変更する、または、前述のＲＡＩＤグループを形成するストレージの個数を変更する。ＰＬＵアクセスの偏りの補正例については、図１１で説明する。
【００５７】
第３の検出部８０５は、第１の補正部８０２が第１の構成変更を行った後で、複数のＣＰＵにかかる負荷の偏りの有無を検出する。複数のＣＰＵにかかる負荷の偏りとしては、クロスアクセスの偏りと、ＣＰＵビジー率の偏りとがある。
【００５８】
ここで、クロスアクセスについて説明する。複数のＲＡＩＤグループには、複数のＲＡＩＤグループの各々のＲＡＩＤグループのアクセスを担当する各々のＲＡＩＤグループごとの担当ＣＰＵがある。そして、あるＲＡＩＤグループに対してあるＣＰＵがアクセスを受け付けた際に、あるＣＰＵがあるＲＡＩＤグループの担当ＣＰＵでない場合、あるＣＰＵは、あるＲＡＩＤグループの担当ＣＰＵにアクセスを依頼する。これに対し、あるＲＡＩＤグループに対してあるＣＰＵがアクセスを受け付けた際に、あるＣＰＵがあるＲＡＩＤグループの担当ＣＰＵである場合、あるＣＰＵは、あるＲＡＩＤグループにアクセスする。
【００５９】
担当ＣＰＵに依頼してアクセスすることを、「クロスアクセス」と呼称する。一方、アクセスを受け付けたＣＰＵが担当ＣＰＵであり、直接アクセスすることを、「ストレートアクセス」と呼称する。また、担当ＣＰＵのことを、「ＲＡＩＤ担当ＣＰＵ」と呼称する場合がある。
【００６０】
第３の検出部８０５は、たとえば、第１の構成変更を行った後で、クロスアクセスの偏りの有無や、ＣＰＵビジー率の偏りの有無を検出する。クロスアクセスの偏りの有無の検出に用いる性能情報と、ＣＰＵビジー率の偏りの有無の検出に用いる性能情報とについては、図９で説明する。
【００６１】
第３の補正部８０６は、第３の検出部８０５がクロスアクセスの偏りが有ること、または、第３の検出部８０５がＣＰＵビジー率の偏りが有ることを検出したことに応じて、構成情報に基づき第３の構成変更を行う。たとえば、第３の検出部８０５がクロスアクセスの偏りが有ることを検出したことに応じて、第３の補正部８０６は、第３の構成変更として、クロスアクセスの偏りを補正する。
【００６２】
また、たとえば、第３の検出部８０５がＣＰＵビジー率の偏りが有ることを検出したことに応じて、第３の補正部８０６は、第３の構成変更として、ＣＰＵビジー率の偏りを補正する第３の構成変更を行う。クロスアクセスの偏りの補正例については、図１２で説明する。また、ＣＰＵビジー率の偏りの補正例については、図１２の説明の後で説明する。第１の構成変更と、第２の構成変更と、第３の構成変更と、をまとめて補正処理とする。
【００６３】
図９は、検出に用いる性能情報の一覧を示す説明図である。本実施の形態において、解析対象となるストレージシステム２００の性能情報は、表９０１に記載された性能情報である。表９０１に記載された性能情報を用いて、ＣＭ２０３は、以下に示す４つの偏りを検出する。
【００６４】
１つ目の偏りの検出として、ＣＭ２０３は、レコード９０１−１が示すＰＬＵアクセスの偏りの有無を判断する。１つ目の偏りを検出するために収集する性能情報は、ＲＡＩＤ制御部７０５で収集する情報であり、具体的には、ＰＬＵが動作していた時間と、Ｒｅａｄコマンド回数と、Ｗｒｉｔｅコマンド回数と、Ｒｅａｄブロック数と、Ｗｒｉｔｅブロック数とである。１つ目の偏りを検出するために収集する性能情報の収集単位は、ＰＬＵ単位である。
【００６５】
ＣＭ２０３は、コマンド回数またはブロック数に基づいて、ＰＬＵアクセスの偏りの有無を検出する。ＣＭ２０３は、検出に用いるＲｅａｄコマンド回数を、下記（９−１−１）式を用いて算出する。
【００６６】
検出に用いるＲｅａｄコマンド回数＝Ｒｅａｄコマンド回数−前回収集時におけるＲｅａｄコマンド回数  …（９−１−１）
【００６７】
また、ＣＭ２０３は、検出に用いるＷｒｉｔｅコマンド回数を、下記（９−１−２）式を用いて算出する。
【００６８】
検出に用いるＷｒｉｔｅコマンド回数＝Ｗｒｉｔｅコマンド回数−前回収集時におけるＷｒｉｔｅコマンド回数  …（９−１−２）
【００６９】
また、ＣＭ２０３は、検出に用いるＲｅａｄブロック数を、下記（９−１−３）式を用いて算出する。
【００７０】
検出に用いるＲｅａｄブロック数＝Ｒｅａｄブロック数−前回収集時におけるＲｅａｄブロック数  …（９−１−３）
【００７１】
また、ＣＭ２０３は、検出に用いるＷｒｉｔｅブロック数を、下記（９−１−４）式を用いて算出する。
【００７２】
検出に用いるＷｒｉｔｅブロック数＝Ｗｒｉｔｅブロック数−前回収集時におけるＷｒｉｔｅブロック数  …（９−１−４）
【００７３】
コマンド回数に基づいてＰＬＵアクセスの偏りの有無を判断する場合、ＣＭ２０３は、下記（９−１−５）式を満たすＰＬＵが１つだけある場合、ＰＬＵアクセスの偏りが有ると判断する。
【００７４】
あるＰＬＵのコマンド回数＞所定の閾値１Ａ×他のＰＬＵのコマンド回数  …（９−１−５）
【００７５】
ここで、コマンド回数は、たとえば、検出に用いるＲｅａｄコマンド回数と検出に用いるＷｒｉｔｅコマンド回数との和である。また、コマンド回数は、検出に用いるＲｅａｄコマンド回数、検出に用いるＷｒｉｔｅコマンド回数それぞれに重みをかけた値の和としてもよい。所定の閾値１Ａは、ストレージシステム２００の管理者によって指定される値である。たとえば、所定の閾値１Ａは５である。
【００７６】
ブロック数に基づいてＰＬＵアクセスの偏りの有無を判断する場合、ＣＭ２０３は、下記（９−１−６）式を満たすＰＬＵが１つだけ有る場合、ＰＬＵアクセスに偏りが有ると判断する。
【００７７】
あるＰＬＵのブロック数＞所定の閾値１Ｂ×他のＰＬＵのブロック数  …（９−１−６）
【００７８】
ここで、ブロック数は、たとえば、検出に用いるＲｅａｄブロック数と検出に用いるＷｒｉｔｅブロック数との和である。また、ブロック数は、検出に用いるＲｅａｄブロック数、検出に用いるＷｒｉｔｅブロック数それぞれに重みをかけた値の和としてもよい。所定の閾値１Ｂは、ストレージシステム２００の管理者によって指定される値である。たとえば、所定の閾値１Ｂは５である。また、ＣＭ２０３は、ブロック数に基づいてＰＬＵアクセスの偏りの有無を判断する場合に、所定の閾値１Ｂを用いずに所定の閾値１Ａを用いてもよい。
【００７９】
２つ目の偏りの検出として、ＣＭ２０３は、レコード９０１−２が示すＣＰＵビジー率の偏りの有無を判断する。２つ目の偏りを検出するために収集する性能情報は、ＯＳ制御部で収集する情報であり、具体的には、ＣＰＵビジー率に含まれるＴｏｔａｌ  ＣＰＵ時間と、Ｉｄｌｅ  ＣＰＵ時間とである。２つ目の偏りを検出するために収集する性能情報の収集単位は、ＣＰＵ単位である。具体的に、ＣＭ２０３は、検出に用いるＣＰＵビジー率を、下記（９−２−１）式を用いて算出する。
【００８０】
検出に用いるＣＰＵビジー率＝（（Ｔｏｔａｌ  ＣＰＵ時間−前回収集時におけるＴｏｔａｌ  ＣＰＵ時間）−（Ｉｄｌｅ  ＣＰＵ時間−前回収集時におけるＩｄｌｅ  ＣＰＵ時間））÷（Ｔｏｔａｌ  ＣＰＵ時間−前回収集時におけるＴｏｔａｌ  ＣＰＵ時間）×１００  …（９−２−１）
【００８１】
ＣＭ２０３は、下記（９−２−２）式を満たすＣＰＵが１つだけある場合、ＣＰＵビジー率に偏りが有ると判断する。
【００８２】
あるＣＰＵにおける検出に用いるＣＰＵビジー率＞所定の閾値２×他のＣＰＵにおける検出に用いるＣＰＵビジー率  …（９−２−２）
【００８３】
所定の閾値２は、ストレージシステム２００の管理者によって指定される値である。たとえば、所定の閾値２は５である。
【００８４】
３つ目の偏りとして、ＣＭ２０３は、レコード９０１−３が示すクロスアクセスの偏りの有無を判断する。３つ目の偏りを検出するために収集する性能情報は、リソース制御部７０３で収集する情報であり、具体的には、Ｉ／Ｏストレートアクセス回数と、Ｉ／Ｏクロスアクセス回数とである。３つ目の偏りを検出するために収集する性能情報の収集単位は、ＲＬＵ単位である。具体的に、ＣＭ２０３は、検出に用いるストレートアクセス回数を、下記（９−３−１）式を用いて算出する。
【００８５】
検出に用いるストレートアクセス回数＝Ｉ／Ｏストレートアクセス回数−前回収集時におけるＩ／Ｏストレートアクセス回数  …（９−３−１）
【００８６】
また、ＣＭ２０３は、検出に用いるクロスアクセス回数を、下記（９−３−２）式を用いて算出する。
【００８７】
検出に用いるクロスアクセス回数＝Ｉ／Ｏクロスアクセス回数−前回収集時におけるＩ／Ｏクロスアクセス回数  …（９−３−２）
【００８８】
ＣＭ２０３は、あるＲＡＩＤグループが下記（９−３−３）式を満たす場合、該当のＲＡＩＤグループにおいてクロスアクセスに偏りが有ると判断する。
【００８９】
あるＲＡＩＤグループのクロスアクセス回数＞あるＲＡＩＤグループのストレートアクセス回数  …（９−３−３）
【００９０】
４つ目の偏りとして、ＣＭ２０３は、レコード９０１−４が示す特定ＳＬＵアクセスの偏りの有無を判断する。４つ目の偏りを検出するために収集する性能情報は、キャッシュ制御部７０４で収集する情報であり、具体的には、コマンド回数と、シーケンシャルアクセス回数とである。４つ目の偏りを検出するために収集する性能情報の収集単位は、ＳＬＵ単位である。具体的に、ＣＭ２０３は、検出に用いるＲｅａｄコマンド回数を、下記（９−４−１）式を用いて算出する。
【００９１】
検出に用いるＲｅａｄコマンド回数＝Ｒｅａｄコマンド回数−前回収集時におけるＲｅａｄコマンド回数  …（９−４−１）
【００９２】
また、ＣＭ２０３は、検出に用いるＷｒｉｔｅコマンド回数を、下記（９−４−２）式を用いて算出する。
【００９３】
検出に用いるＷｒｉｔｅコマンド回数＝Ｗｒｉｔｅコマンド回数−前回収集時におけるＷｒｉｔｅコマンド回数  …（９−４−２）
【００９４】
また、ＣＭ２０３は、検出に用いるシーケンシャルアクセスＲｅａｄコマンド回数を、下記（９−４−３）式を用いて算出する。
【００９５】
検出に用いるシーケンシャルアクセスＲｅａｄコマンド回数＝シーケンシャルアクセスＲｅａｄコマンド回数−前回収集時におけるシーケンシャルアクセスＲｅａｄコマンド回数  …（９−４−３）
【００９６】
また、ＣＭ２０３は、検出に用いるシーケンシャルアクセスＷｒｉｔｅコマンド回数を、下記（９−４−４）式を用いて算出する。
【００９７】
検出に用いるシーケンシャルアクセスＷｒｉｔｅコマンド回数＝シーケンシャルアクセスＷｒｉｔｅコマンド回数−前回収集時におけるシーケンシャルアクセスＷｒｉｔｅコマンド回数  …（９−４−４）
【００９８】
また、ＣＭ２０３は、検出に用いるランダムアクセスＲｅａｄコマンド回数を、下記（９−４−５）式を用いて算出する。
【００９９】
検出に用いるランダムアクセスＲｅａｄコマンド回数＝（Ｒｅａｄコマンド回数−前回収集時におけるＲｅａｄコマンド回数）−（シーケンシャルアクセスＲｅａｄコマンド回数−前回収集時におけるシーケンシャルアクセスＲｅａｄコマンド回数）  …（９−４−５）
【０１００】
また、ＣＭ２０３は、検出に用いるランダムアクセスＷｒｉｔｅコマンド回数を、下記（９−４−６）式を用いて算出する。
【０１０１】
検出に用いるランダムアクセスＷｒｉｔｅコマンド回数＝（Ｗｒｉｔｅコマンド回数−前回収集時におけるＷｒｉｔｅコマンド回数）−（シーケンシャルアクセスＷｒｉｔｅコマンド回数−前回収集時におけるシーケンシャルアクセスＷｒｉｔｅコマンド回数）  …（９−４−６）
【０１０２】
ＣＭ２０３は、あるＯＬＵに含まれるＳＬＵ群のうち、下記（９−４−７）式、（９−４−８）式、（９−４−９）式を満たすＳＬＵが１つだけある場合、ＳＬＵのアクセスに偏りが有ると判断する。そして、ＣＭ２０３は、ＯＬＵごとに特定ＳＬＵのアクセスに偏りが有るか否かを判断する。
【０１０３】
あるＳＬＵのコマンド回数＞所定の閾値４Ａ×他のＳＬＵのコマンド回数  …（９−４−７）
あるＳＬＵのシーケンシャルコマンド回数＞所定の閾値４Ｂ×他のＳＬＵのシーケンシャルコマンド回数  …（９−４−８）
あるＳＬＵのランダムコマンド回数＞所定の閾値４Ｃ×他のＳＬＵのランダムコマンド回数  …（９−４−９）
【０１０４】
ここで、ＳＬＵのコマンド回数は、検出に用いるＲｅａｄコマンド回数と検出に用いるＷｒｉｔｅコマンド回数との和である。同様に、ＳＬＵのシーケンシャルコマンド回数は、検出に用いるシーケンシャルアクセスＲｅａｄコマンド回数と検出に用いるシーケンシャルアクセスＷｒｉｔｅコマンド回数との和である。また、ＳＬＵのランダムコマンド回数は、検出に用いるランダムアクセスＲｅａｄコマンド回数と検出に用いるランダムアクセスＷｒｉｔｅコマンド回数との和である。また、所定の閾値４Ａ〜所定の閾値４Ｃは、ストレージシステム２００の管理者によって指定される値である。
【０１０５】
（９−４−７）式〜（９−４−９）式について、ＣＭ２０３は、（９−４−７）式〜（９−４−９）式全てを満たすＳＬＵが有る場合に、特定ＳＬＵのアクセスに偏りがあると判断する。また、ＣＭ２０３は、（９−４−７）式〜（９−４−９）式の少なくともいずれか一つの式を満たすＳＬＵが１つだけ有る場合に、特定ＳＬＵのアクセスに偏りが有ると判断してもよい。
【０１０６】
図１０は、偏りによる性能への影響度とＲＡＩＤ構成の最適化手法の一例を示す説明図である。表１００１には、図９で述べた４つの偏りに対する性能への影響度について示す。性能への影響度は、ＰＬＵアクセスの偏りが最も大きく、特定ＳＬＵアクセスの偏りが最も小さくなる。
【０１０７】
ＰＬＵアクセスの偏りが、ストレージシステム２００の性能に対して最も影響度が大きい理由として、ＲＡＩＤは、複数のストレージにアクセスを分散することにより、アクセス応答の高速化を実現している。しかしながら、単一のＰＬＵにアクセスが偏ると、アクセスが集中したＰＬＵがボトルネックとなってしまい、ＲＡＩＤが実現する高速化が行えなくなってしまうためである。
【０１０８】
また、特定ＳＬＵアクセスの偏りが、ストレージシステム２００の性能に対して最も影響度が小さい理由を説明する。理由として、ＲＡＩＤにより、複数のストレージに記憶領域が分散されていることから、単一の記憶領域にアクセスが集中しても、他の偏りよりＲＡＩＤが実現する高速化に影響を与えないためである。
【０１０９】
レコード１００１−１が示すＰＬＵアクセスの偏りは、性能への影響度が最も高く、影響する範囲は、特定のボリュームである。ＣＭ２０３が第２の構成変更を行うことにより、ＰＬＵアクセスの偏りが補正されることになる。
【０１１０】
ＰＬＵアクセスの偏りを補正する最適化手法としては、ＲＡＩＤグループにＰＬＵを追加するという第１の方法と、異なるＲＡＩＤ構成を持つＲＡＩＤグループにマイグレーションを行うという第２の方法と、がある。ＣＭ２０３は、第１の方法と第２の方法とのいずれを選択してもよいし、第２の方法を選択した後、ＰＬＵアクセスの偏りが有るままであった場合に、第１の方法を選択してもよい。
【０１１１】
第１の方法を選択した場合、ＣＭ２０３は、ストレージシステム２００の管理者にＰＬＵに相当するストレージの追加要求を通知する。たとえば、ストレージシステム２００内に、ＨＳ２１３が存在する場合、ＣＭ２０３は、ＨＳ２１３をＲＡＩＤグループに追加するストレージとして設定するとともに、新たなＨＳを追加するように管理者に通知する。また、ストレージシステム２００内に、ＨＳ２１３が存在しても、ＲＡＩＤグループに追加するストレージを別に追加するように管理者に通知してもよい。第２の方法を選択した場合、ストレージシステム２００の管理者への通知は不要である。
【０１１２】
レコード１００１−２が示すＣＰＵビジー率の偏りは、ＰＬＵアクセスの偏りに次いで性能への影響度が高く、影響する範囲は、ＣＭ２０３〜２０６全体である。ＣＭ２０３が第３の構成変更に含まれる処理を実行することにより、ＣＰＵビジー率の偏りを補正することになる。
【０１１３】
ＣＰＵビジー率の偏りを補正する最適化手法としては、ＲＡＩＤ担当ＣＰＵの変更を行う方法がある。ＲＡＩＤ担当ＣＰＵの変更を行った場合に、ストレージシステム２００の管理者への通知は不要である。
【０１１４】
レコード１００１−３が示すクロスアクセスの偏りは、ＣＰＵビジー率の偏りに次いで性能への影響度が高く、影響する範囲は、特定のボリュームである。ＣＭ２０３が第３の構成変更に含まれる処理を実行することにより、クロスアクセスの偏りを補正することになる。
【０１１５】
クロスアクセスの偏りを補正する最適化手法としては、ＲＡＩＤ担当ＣＰＵの変更を行う方法がある。ＲＡＩＤ担当ＣＰＵの変更を行った場合に、ストレージシステム２００の管理者への通知は不要である。
【０１１６】
レコード１００１−４が示す特定ＳＬＵアクセスの偏りは、クロスアクセスの偏りに次いで性能への影響度が高く、影響する範囲は、特定のボリュームである。ＣＭ２０３がの第１の構成変更を実行することにより、特定ＳＬＵアクセスの偏りを補正することになる。
【０１１７】
特定ＳＬＵアクセスの偏りを補正する最適化手法としては、異なるＲＡＩＤ構成を持つＲＡＩＤグループにマイグレーションを行う方法がある。マイグレーションを行った場合に、ストレージシステム２００の管理者への通知は不要である。
【０１１８】
以下、図１１を用いてＰＬＵアクセスの偏りの補正と特定ＳＬＵアクセスの偏りの補正について説明し、図１２を用いてクロスアクセスの偏りの補正について説明する。ＣＰＵビジー率の偏りの補正については、クロスアクセスの偏りの補正の後に説明する。
【０１１９】
図１１は、ＰＬＵアクセスの偏りの補正と特定ＳＬＵアクセスの偏りの補正の一例を示す説明図である。
【０１２０】
（ＰＬＵアクセスの偏りの補正）
ＰＬＵアクセスの偏りの補正には、ＲＡＩＤグループにＰＬＵを追加する第１の方法と、異なるＲＡＩＤ構成を持つＲＡＩＤグループにマイグレーションを行うという第２の方法とがある。第１の方法を選択した場合、ＣＭ２０３は、（９−１−５）式、または（９−１−６）式を用いて、ＰＬＵアクセスに偏りが有ると検出した場合、（９−１−５）式、または（９−１−６）式を満たしたＰＬＵが含まれるＲＡＩＤグループにＰＬＵを追加する。（９−１−５）式、または（９−１−６）式を満たしたＰＬＵが含まれるＲＡＩＤグループについては、構成情報１１１を参照することにより特定することができる。
【０１２１】
第２の方法を選択した場合、ＣＭ２０３は、（９−１−５）式、または（９−１−６）式を用いて、ＰＬＵアクセスに偏りが有ると検出した場合、（９−１−５）式、または（９−１−６）式を満たしたＰＬＵ内のＯＬＵを移行対象とする。そして、移行対象となるＯＬＵが所属するＰｏｏｌ内のＲＬＵとはＲＡＩＤ構成が異なるＲＬＵに再割り当てを行い、ＴＰＰＶを形成するＴＰＰＥ（ＴＰＰ  Ｅｌｅｍｅｎｔ）をコピーする。コピー完了後、ＣＭ２０３は、ＬＢＡ変換テーブル５０１を更新し、ＯＬＵを形成するテーブルをコピー後のテーブルに書き換えを行い、コピー前の情報を無効化する。移行対象となるＯＬＵが所属するＰｏｏｌ内のＲＬＵのＲＡＩＤ構成は、構成情報１１１を参照することにより特定できる。
【０１２２】
（特定ＳＬＵアクセスの偏りの補正）
（９−４−７）式〜（９−４−９）式のいずれかを用いて、特定ＳＬＵアクセスに偏りが有ると検出した場合、ＣＭ２０３は、特定ＳＬＵが属するＯＬＵを移行対象とする。以降の処理は、ＰＬＵアクセスの偏りの補正における第２の方法を選択した場合と同一であるので説明を省略する。
【０１２３】
図１１の例では、マイグレーションを行う例として、ＲＡＩＤグループ１１０１にあるＯＬＵを、ＲＡＩＤグループ１１０２にマイグレーションした例を示す。ＲＡＩＤグループ１１０１は、ストレージ１１１１＃１〜＃４で形成されており、ＲＡＩＤレベルがＲＡＩＤ１＋０である。ストレージ１１１１＃１〜＃４は、ストレージ２１２＃１〜＃９、２１４＃１〜＃９、２１６＃１〜＃９、２１８＃１〜＃９のいずれかである。ＲＡＩＤグループ１１０１は、ストレージ１１１１＃１、＃２によりミラーリングセット１１２１を形成し、ストレージ１１１１＃３、＃４によりミラーリングセット１１２２を形成する。具体的に、ストレージ１１１１＃１、＃２は、移行対象となるＯＬＵのストリップ０１、０３、０５、…を有する。また、ストレージ１１１１＃３、＃４は、移行対象となるＯＬＵのストリップ０２、０４、０６、…を有する。
【０１２４】
ここで、データの特性により、ストリップ０２、０４、０６、…を有するストレージ１１１１＃３にアクセスが集中しており、ＣＭ２０３が、ＰＬＵアクセスの偏りが有ることを検出して、移行対象となるＯＬＵを移行したとする。移行先のＲＡＩＤグループは、ＲＡＩＤグループ１１０２であるとする。
【０１２５】
ＲＡＩＤグループ１１０２は、ストレージ１１３１＃１〜＃４で形成されており、ＲＡＩＤレベルがＲＡＩＤ５である。移行対象となるＯＬＵが移行した後、ストレージ１１３１＃１は、移行対象となるＯＬＵのストリップ０１、０４、…、を有する。また、移行対象となるＯＬＵが移行した後、ストレージ１１３１＃２は、移行対象となるＯＬＵのストリップ０２、０５、…、を有する。また、移行対象となるＯＬＵが移行した後、ストレージ１１３１＃３は、移行対象となるＯＬＵのストリップ０３、移行対象となるＯＬＵのストリップ０４〜０６のパリティ、…、を有する。また、移行対象となるＯＬＵが移行した後、ストレージ１１３１＃４は、移行対象となるＯＬＵのストリップ０１〜０３のパリティ、移行対象となるＯＬＵのストリップ０６、…、を有する。
【０１２６】
移行対象となるＯＬＵの移行後において、ストリップ０２、０４、０６はストレージ１１３１＃１、＃２、＃４に分散しており、移行対象となるＯＬＵは、性能を向上することができる。
【０１２７】
（クロスアクセスの偏りの補正）
図１２は、クロスアクセスの偏りの補正の一例を示す説明図である。クロスアクセスの偏りの補正について、ＣＭ２０３は、クロスアクセスの偏りの補正に用いるＩＯＰＳ単位のＣＰＵビジー率を、下記（１２−１）式を用いて算出する。
【０１２８】
ＩＯＰＳ単位のＣＰＵビジー率＝ＣＰＵビジー率／（担当ＲＬＵにおけるストレートアクセス・クロスアクセスで重み付けたＩＯＰＳ）  …（１２−１）
【０１２９】
ＣＰＵビジー率は、該当のＲＡＩＤグループのＲＡＩＤ担当ＣＰＵに設定されたＣＰＵビジー率である。ＲＡＩＤグループに対応するＲＡＩＤ担当ＣＰＵを特定するには、構成情報１１１を参照することにより特定できる。ＣＭ２０３は、担当ＲＬＵにおけるストレートアクセス・クロスアクセスで重み付けたＩＯＰＳを、下記（１２−２）式を用いて算出する。
【０１３０】
担当ＲＬＵにおけるストレートアクセス・クロスアクセスで重み付けたＩＯＰＳ＝ａ×ストレートアクセス回数／（ストレートアクセス回数＋クロスアクセス回数）×ＲＬＵのＩＯＰＳの和＋ｂ×クロスアクセス回数／（ストレートアクセス回数＋クロスアクセス回数）×ＲＬＵのＩＯＰＳの和  …（１２−２）
【０１３１】
ここで、ａ、ｂは、ストレージシステム２００の管理者によって指定される係数である。また、ストレートアクセス回数とクロスアクセス回数とは、（９−３−３）式で用いたＲＡＩＤグループのストレートアクセス回数と、ＲＡＩＤグループのクロスアクセス回数とである。
【０１３２】
また、ＲＬＵのＩＯＰＳの和について、ＣＭ２０３は、下記（１２−３）式と下記（１２−４）式とを用いてＲＬＵのＩＯＰＳの和を求める。
【０１３３】
ＲｅａｄＩＯＰＳ＝（Ｒｅａｄコマンド回数−前回収集時におけるＲｅａｄコマンド回数）／性能情報収集間隔  …（１２−３）
ＷｒｉｔｅＩＯＰＳ＝（Ｗｒｉｔｅコマンド回数−前回収集時におけるＷｒｉｔｅコマンド回数）／性能情報収集間隔  …（１２−４）
【０１３４】
（１２−３）式と（１２−４）式とは、ＳＬＵ単位におけるＲｅａｄＩＯＰＳとＳＬＵ単位におけるＷｒｉｔｅＩＯＰＳを求める式である。したがって、ＣＭ２０３は、ＲＬＵに含まれるＳＬＵごとに（１２−３）式と（１２−４）式を用いてＲｅａｄＩＯＰＳとＷｒｉｔｅＩＯＰＳとを算出し、算出したＲｅａｄＩＯＰＳとＷｒｉｔｅＩＯＰＳの合計を、ＲＬＵのＩＯＰＳの和とする。
【０１３５】
ＣＭ２０３は、アクセス手法が最適になるようにＲＡＩＤ担当ＣＰＵの変更をすると仮定して、変更後のＣＰＵビジー率を、下記（１２−５）式を用いて算出する。以下、ＲＡＩＤグループの担当ＣＰＵを変更したと仮定した後を、「仮定変更後」と称する。
【０１３６】
仮定変更後のＣＰＵビジー率＝ＩＯＰＳ単位のＣＰＵビジー率×仮定変更後のＲＬＵにおけるストレートアクセス・クロスアクセスで重み付けたＩＯＰＳ…（１２−５）
【０１３７】
ＣＭ２０３は、仮定変更後のＲＬＵにおけるストレートアクセス・クロスアクセスで重み付けたＩＯＰＳを、下記（１２−６）式を用いて算出する。
【０１３８】
仮定変更後のＲＬＵにおけるストレートアクセス・クロスアクセスで重み付けたＩＯＰＳ＝ａ×仮定変更後のストレートアクセス回数／（仮定変更後のストレートアクセス回数＋仮定変更後のクロスアクセス回数）×ＲＬＵのＩＯＰＳの和＋ｂ×仮定変更後のクロスアクセス回数／（仮定変更後のストレートアクセス回数＋仮定変更後のクロスアクセス回数）×ＲＬＵのＩＯＰＳの和  …（１２−６）
【０１３９】
ＣＭ２０３は、仮定変更後のＣＰＵビジー率が最大となる値と仮定変更後のＣＰＵビジー率が最小となる値との差分がある閾値以上か否かを判断する。差分がある閾値以上であると判断した場合、ＣＭ２０３は、ＣＰＵビジー率が最大となるＣＰＵを担当ＣＰＵとして割り当てられているＲＡＩＤの担当ＣＰＵを、ＣＰＵビジー率が最小となるＣＰＵに割り当てる。割り当て変更対象のＲＬＵの選出において、ＣＭ２０３は、当該ＲＬＵの担当ＣＰＵの割り当ての変更を行った際に、各ＲＬＵに対するＣＰＵビジー率を算出し、ある閾値／２に最も近いＲＬＵを、割り当て変更対象のＲＬＵとして選出する。そして、ＣＭ２０３は、仮定変更後のＣＰＵビジー率が最大となる値と仮定変更後のＣＰＵビジー率が最小となる値との差分がある閾値以下になるまで繰り返す。
【０１４０】
図１２では、ストレージシステム２００が２ＣＭ、ＣＰＵ＃１、＃２で形成される形態を用いて、クロスアクセスの補正例を説明する。表１２０１は、補正前の性能情報を示す。ＣＭ２０３は、ＣＰＵ＃１、＃２について担当ＲＬＵにおけるストレートアクセス・クロスアクセスで重み付けたＩＯＰＳを、（１２−２）式を用いて算出する。表１２０１によると、ＣＰＵ＃１はＲＡＩＤグループＡ、Ｂの担当ＣＰＵであり、ＣＰＵ＃２はＲＡＩＤグループＣの担当ＣＰＵである。
【０１４１】
ＣＭ２０３は、ＣＰＵ＃１が担当ＣＰＵであるＲＡＩＤグループＡ、Ｂにおけるストレートアクセス・クロスアクセスで重み付けたＩＯＰＳを、（１２−２）式を用いて下記のように算出する。
【０１４２】
ＲＡＩＤグループＡ、Ｂにおけるストレートアクセス・クロスアクセスで重み付けたＩＯＰＳ＝ａ×（ＲＡＩＤグループＡ、Ｂのストレートアクセス回数）／（ＲＡＩＤグループＡ、Ｂのストレートアクセス回数＋ＲＡＩＤグループＡ、Ｂのクロスアクセス回数）×ＲＡＩＤグループＡ、ＢのＩＯＰＳの和＋ｂ×（ＲＡＩＤグループＡ、Ｂのクロスアクセス回数）／（ＲＡＩＤグループＡ、Ｂのストレートアクセス回数＋ＲＡＩＤグループＡ、Ｂのクロスアクセス回数）×ＲＡＩＤグループＡ、ＢのＩＯＰＳの和
⇔ＲＡＩＤグループＡ、Ｂにおけるストレートアクセス・クロスアクセスで重み付けたＩＯＰＳ＝１×（２００００＋１０００）／（（２００００＋１０００）＋（１００００＋５０００））×（６０００＋１０００）＋１．５×（１００００＋５０００）／（（２００００＋１０００）＋（１００００＋５０００））×（６０００＋１０００）＝２１０００／３６０００×７０００＋１．５×１５０００／３６０００×７０００＝８４５８．３
【０１４３】
そして、ＣＭ２０３は、ＣＰＵ＃１におけるＩＯＰＳ単位のＣＰＵビジー率を（１２−１）式を用いて下記にように算出する。
【０１４４】
ＣＰＵ＃１におけるＩＯＰＳ単位のＣＰＵビジー率＝１００／８４５８．３＝０．０１１８２
【０１４５】
同様に、ＣＭ２０３は、ＣＰＵ＃２が担当ＣＰＵであるＲＡＩＤグループＣにおけるストレートアクセス・クロスアクセスで重み付けたＩＯＰＳを、（１２−２）式を用いて下記のように算出する。
【０１４６】
ＲＡＩＤグループＣにおけるストレートアクセス・クロスアクセスで重み付けたＩＯＰＳ＝ａ×（ＲＡＩＤグループＣのストレートアクセス回数）／（ＲＡＩＤグループＣのストレートアクセス回数＋ＲＡＩＤグループＣのクロスアクセス回数）×ＲＡＩＤグループＣのＩＯＰＳの和＋ｂ×（ＲＡＩＤグループＣのクロスアクセス回数）／（ＲＡＩＤグループＣのストレートアクセス回数＋ＲＡＩＤグループＣのクロスアクセス回数）×ＲＡＩＤグループＣのＩＯＰＳの和
⇔ＲＡＩＤグループＣにおけるストレートアクセス・クロスアクセスで重み付けたＩＯＰＳ＝１×２００００／（２００００＋４０００）×７０００＋１．５×４０００／（２００００＋４０００）×７０００＝２００００／２４０００×７０００＋１．５×４０００／２４０００×７０００＝７５８３．３
【０１４７】
そして、ＣＭ２０３は、ＣＰＵ＃２におけるＩＯＰＳ単位のＣＰＵビジー率を（１２−１）式を用いて下記のように算出する。
【０１４８】
ＣＰＵ＃２におけるＩＯＰＳ単位のＣＰＵビジー率＝７５／７５８３．３＝０．００９８９
【０１４９】
表１２０２は、ＲＡＩＤグループＢの担当ＣＰＵを、仮に、ＣＰＵ＃１からＣＰＵ＃２に変更した場合の性能情報である。ＣＭ２０３は、ＣＰＵ＃１、＃２について、仮定変更後のＲＬＵにおけるストレートアクセス・クロスアクセスで重み付けたＩＯＰＳを、（１２−６）式を用いて算出する。
【０１５０】
ＣＭ２０３は、ＣＰＵ＃１が仮定変更後の担当ＣＰＵである、仮定変更後のＲＡＩＤグループＡにおけるストレートアクセス・クロスアクセスで重み付けたＩＯＰＳを、（１２−６）式を用いて下記のように算出する。
【０１５１】
仮定変更後のＲＡＩＤグループＡにおけるストレートアクセス・クロスアクセスで重み付けたＩＯＰＳ＝１×２００００／（２００００＋１００００）×６０００＋１．５×１００００／（２００００＋１００００）×６０００＝２００００／３００００×６０００＋１．５×１００００／３００００×６０００＝７０００
【０１５２】
そして、ＣＭ２０３は、仮定変更後のＣＰＵ＃１におけるＩＯＰＳ単位のＣＰＵビジー率を（１２−５）式を用いて下記のように算出する。
【０１５３】
仮定変更後のＣＰＵ＃１におけるＩＯＰＳ単位のＣＰＵビジー率＝ＣＰＵ＃１におけるＩＯＰＳ単位のＣＰＵビジー率×仮定変更後のＲＡＩＤグループＡにおけるストレートアクセス・クロスアクセスで重み付けたＩＯＰＳ＝０．０１１８２×７０００＝８２．７４
【０１５４】
同様に、ＣＭ２０３は、ＣＰＵ＃１が仮定変更後の担当ＣＰＵである、仮定変更後のＲＡＩＤグループＢ、Ｃにおけるストレートアクセス・クロスアクセスで重み付けたＩＯＰＳを、（１２−６）式を用いて下記のように算出する。
【０１５５】
仮定変更後のＲＡＩＤグループＢ、Ｃにおけるストレートアクセス・クロスアクセスで重み付けたＩＯＰＳ＝１×（５０００＋２００００）／（（５０００＋２００００）＋（１０００＋４０００））×（１０００＋７０００）＋１．５×（１０００＋４０００）／（（５０００＋２００００）＋（１０００＋４０００））×（１０００＋７０００）＝２５０００／３００００×８０００＋１．５×５０００／３００００×８０００＝８６６６．７
【０１５６】
そして、ＣＭ２０３は、仮定変更後のＣＰＵ＃２におけるＩＯＰＳ単位のＣＰＵビジー率を（１２−５）式を用いて下記のように算出する。
【０１５７】
仮定変更後のＣＰＵ＃２におけるＩＯＰＳ単位のＣＰＵビジー率＝ＣＰＵ＃２におけるＩＯＰＳ単位のＣＰＵビジー率×仮定変更後のＲＡＩＤグループＢ、Ｃにおけるストレートアクセス・クロスアクセスで重み付けたＩＯＰＳ＝０．００９８９×８６６６．７＝８５．７１
【０１５８】
仮定変更後のＩＯＰＳ単位のＣＰＵビジー率が均等に近づくため、ＣＭ２０３は、変更を実施する。
【０１５９】
（ＣＰＵビジー率の偏りの補正）
ＣＰＵビジー率の偏りの補正について、ＣＭ２０３は、ＣＰＵビジー率が最大となる値とＣＰＵビジー率が最小となる値との差分がある閾値以上か否かを判断する。差分がある閾値以上であると判断した場合、ＣＭ２０３は、ＣＰＵビジー率が最大となるＣＰＵを担当ＣＰＵとして割り当てられているＲＡＩＤの担当ＣＰＵを、ＣＰＵビジー率が最小となるＣＰＵに割り当てる。割り当て変更対象のＲＬＵの選出において、ＣＭ２０３は、当該ＲＬＵの担当ＣＰＵの割り当ての変更を行った際に、各ＲＬＵに対するＣＰＵビジー率を算出し、ある閾値／２に最も近いＲＬＵを、割り当て変更対象のＲＬＵとして選出する。そして、ＣＭ２０３は、担当ＣＰＵ変更後、再びＣＰＵビジー率に偏りが有るかを判断する。ＣＭ２０３は、ＣＰＵビジー率に偏りが無いと判断するまで繰り返す。
【０１６０】
次に、図１３と図１４とを用いて、偏り検出および補正処理手順の一例を示すフローチャートを示す。
【０１６１】
図１３は、偏り検出および補正処理手順の一例を示すフローチャート（その１）である。また、図１４は、偏り検出および補正処理手順の一例を示すフローチャート（その２）である。偏り検出および補正処理は、図９に示した４つの偏りと、４つの偏りを補正する補正処理とを実行する処理である。偏り検出および補正処理の実行主体としては、ＣＭ２０３〜２０６のどのＣＰＵが行ってもよいが、ここでは、ＣＭ２０３のＣＰＵ３０１＃１が実行するものとする。また、以下の記載では、実行主体を、説明の簡便化のため、単にＣＭ２０３と記載する。
【０１６２】
ＣＭ２０３は、ＳＬＵアクセスに関する性能情報を収集する（ステップＳ１３０１）。次に、ＣＭ２０３は、ＳＬＵアクセスに関する性能情報の偏りを算出する（ステップＳ１３０２）。算出に用いる式の一例は、（９−４−１）式〜（９−４−６）式となる。続けて、ＣＭ２０３は、特定ＳＬＵアクセスの偏りが有るか否かを判断する（ステップＳ１３０３）。判断に用いる式の一例は、（９−４−７）式〜（９−１−９）式のいずれかとなる。特定ＳＬＵアクセスの偏りが有ると判断した場合（ステップＳ１３０３：Ｙｅｓ）、ＣＭ２０３は、特定ＳＬＵアクセスの偏りを補正する第１の構成変更を実行する（ステップＳ１３０４）。
【０１６３】
ステップＳ１３０４の処理終了後、または、特定ＳＬＵアクセスの偏りが無いと判断した場合（ステップＳ１３０３：Ｎｏ）、ＣＭ２０３は、クロスアクセスに関する性能情報を収集する（ステップＳ１３０５）。次に、ＣＭ２０３は、クロスアクセスに関する性能情報の偏りを算出する（ステップＳ１３０６）。算出に用いる式の一例は、（９−３−１）式、（９−３−２）式となる。続けて、ＣＭ２０３は、クロスアクセスの偏りが有るか否かを判断する（ステップＳ１３０７）。判断に用いる式の一例は、（９−３−３）式となる。クロスアクセスの偏りが有ると判断した場合（ステップＳ１３０７：Ｙｅｓ）、ＣＭ２０３は、クロスアクセスの偏りを補正する第３の構成変更を実行する（ステップＳ１３０８）。
【０１６４】
ステップＳ１３０８の処理終了後、または、クロスアクセスの偏りが無いと判断した場合（ステップＳ１３０７：Ｎｏ）、ＣＭ２０３は、ＣＰＵビジー率に関する性能情報を収集する（ステップＳ１４０１）。次に、ＣＭ２０３は、ＣＰＵビジー率に関する性能情報の偏りを算出する（ステップＳ１４０２）。算出に用いる式の一例は、（９−２−１）式となる。続けて、ＣＭ２０３は、ＣＰＵビジー率の偏りが有るか否かを判断する（ステップＳ１４０３）。判断に用いる式の一例は、（９−２−２）式となる。ＣＰＵビジー率の偏りが有ると判断した場合（ステップＳ１４０３：Ｙｅｓ）、ＣＭ２０３は、ＣＰＵビジー率の偏りを補正する第３の構成変更を実行する（ステップＳ１４０４）。
【０１６５】
ステップＳ１４０４の処理終了後、または、ＣＰＵビジー率の偏りが無いと判断した場合（ステップＳ１４０３：Ｎｏ）、ＣＭ２０３は、ＰＬＵアクセスに関する性能情報を収集する（ステップＳ１４０５）。次に、ＣＭ２０３は、ＰＬＵアクセスに関する性能情報の偏りを算出する（ステップＳ１４０６）。算出に用いる式の一例は、（９−１−１）式〜（９−１−４）式となる。続けて、ＣＭ２０３は、ＰＬＵアクセスの偏りが有るか否かを判断する（ステップＳ１４０７）。判断に用いる式の一例は、（９−１−５）式、（９−１−６）式のいずれかとなる。ＰＬＵアクセスの偏りが有ると判断した場合（ステップＳ１４０７：Ｙｅｓ）、ＣＭ２０３は、ＰＬＵアクセスの偏りを補正する第２の構成変更を実行する（ステップＳ１４０８）。ステップＳ１４０８の処理終了後、または、ＰＬＵアクセスの偏りが無いと判断した場合（ステップＳ１４０７：Ｎｏ）、ＣＭ２０３は、偏り検出および補正処理を終了する。
【０１６６】
偏り検出および補正処理を行うことにより、ストレージシステム１００は、ホスト装置２０１からのアクセスに対する応答遅延を抑制することができる。ここで、クロスアクセスの偏りの補正と、ＣＰＵビジー率の偏りの補正とは、ＲＡＩＤ担当ＣＰＵを変更するだけであり、アクセス先となるＰＬＵ、ＳＬＵが変更されることはない。したがって、クロスアクセスの偏りの補正とＣＰＵビジー率の偏りの補正とは、ＰＬＵアクセスの偏りに影響を与えない。これにより、ＣＭ２０３は、ステップＳ１４０５〜ステップＳ１４０８の処理を、ステップＳ１３０４の処理終了後、または、ステップＳ１３０３：Ｎｏとなった後に実行してもよい。
【０１６７】
以上説明したように、ＣＭ２０３によれば、ＰＬＵの各ＳＬＵへのアクセスの偏りの補正後、ＰＬＵへのアクセスの偏りまたはＣＰＵにかかる負荷の偏りを補正する。これにより、ＣＭ２０３は、ストレージシステム２００の性能に高影響の要因の補正が低影響の要因の補正で台無しになることを防ぐ。
【０１６８】
また、ＣＭ２０３によれば、第１の構成変更を行った後で、複数のストレージへのアクセスの偏りが有ることを検出したことに応じて、第２の構成変更に含まれるＲＡＩＤグループのＲＡＩＤレベルの変更またはストレージの個数を変更する処理を実行してもよい。これにより、ストレージシステム２００は、ストレージシステム２００の性能の影響度が低い第１の構成変更を行った後、影響度の高い第２の構成変更を行うことになり、第２の構成変更による性能向上が台無しとなることがないため、効率的に構成変更を行える。また、ＲＡＩＤグループのＲＡＩＤレベルの変更またはストレージの個数を変更することにより、ストレージシステム２００は、アクセスの負荷を分散でき、性能遅延を抑制できる。
【０１６９】
また、ＣＭ２０３によれば、第１の構成変更を行った後で、クロスアクセスの偏り、またはＣＰＵにかかる負荷の偏りが有ることを検出したことに応じて、第３の構成変更を行ってもよい。これにより、ストレージシステム２００は、ストレージシステム２００の性能の影響度が低い第１の構成変更を行った後、影響度の高い第３の構成変更を行うことになり、第３の構成変更による性能向上が台無しとなることがないため、ストレージシステムの性能向上を効率的に行うことができる。
【０１７０】
また、ＣＭ２０３によれば、特定ＳＬＵへのアクセスの偏りが有ることを検出したことに応じて、第１の構成変更に含まれるＲＡＩＤグループのＲＡＩＤレベルの変更またはストレージの個数を変更する処理後、第２の構成変更または第３の構成変更を行ってもよい。これにより、ＲＡＩＤグループのＲＡＩＤレベルの変更またはストレージの個数を変更することにより、ストレージシステム２００は、アクセスの負荷を分散でき、性能遅延を抑制できる。
【０１７１】
また、ストレージシステム２００が、内部の性能情報を解析し、設定の最適化または推奨構成／リソース追加を促すことにより、ホスト装置２０１からのアクセス特性が要因となる応答遅延を防ぐことができる。また、装置構成を自動的に最適化することにより、ストレージシステム２００の性能の向上を見込むことができる。ストレージシステム２００の管理者はシステム構成からストレージの詳細な設定を検討することなくストレージの性能を引き出すことができ、管理のための負担を軽減することができる。
【０１７２】
なお、本実施の形態で説明した制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。ストレージ制御装置のプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またストレージ制御装置のプログラムは、インターネット等のネットワークを介して配布してもよい。
【０１７３】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１７４】
（付記１）ストレージシステム内の複数のストレージへのアクセスを制御する複数のストレージ制御装置のいずれかのストレージ制御装置であって、
前記ストレージシステムの構成を特定する構成情報を記憶する記憶部と、
前記複数のストレージに含まれる複数の記憶領域へのアクセスの偏りの有無に応じて前記構成情報に基づき前記複数の記憶領域へのアクセスの偏りを補正する第１の構成変更を行った後で、前記複数のストレージへのアクセスの偏りの有無に応じて前記構成情報に基づき前記複数のストレージへのアクセスの偏りを補正する第２の構成変更を行う、または、前記複数のストレージ制御装置にかかる負荷の偏りの有無に応じて前記構成情報に基づき前記複数のストレージ制御装置にかかる負荷の偏りを補正する第３の構成変更を行う補正処理を実行する制御部と、
を有することを特徴とするストレージ制御装置。
【０１７５】
（付記２）前記第２の構成変更は、
前記複数のストレージへのアクセスの偏りが有ることを検出したことに応じて、前記構成情報に基づき前記複数のストレージのうち相対的にアクセスが多いストレージが含まれるＲＡＩＤグループのＲＡＩＤレベルを変更する処理、または、前記構成情報に基づき当該ＲＡＩＤグループを形成するストレージの個数を変更する処理を含むことを特徴とする付記１に記載のストレージ制御装置。
【０１７６】
（付記３）前記第３の構成変更は、
前記複数のストレージ制御装置にかかる負荷の偏りが有ることを検出したことに応じて、前記構成情報に基づき前記複数のストレージによって形成される複数のＲＡＩＤグループの各々のＲＡＩＤグループのアクセスを担当する前記各々のＲＡＩＤグループごとの担当ストレージ制御装置のうち、相対的に負荷が高い担当ストレージ制御装置が担当するＲＡＩＤグループの担当を変更する処理を含むことを特徴とする付記１または２に記載のストレージ制御装置。
【０１７７】
（付記４）前記第１の構成変更は、
前記複数の記憶領域へのアクセスの偏りが有ることを検出したことに応じて、前記構成情報に基づき前記複数の記憶領域のうち相対的にアクセスが多い記憶領域が含まれるＲＡＩＤグループのＲＡＩＤレベルを変更する処理、または、当該ＲＡＩＤグループを形成するストレージの個数を変更する処理を含むことを特徴とする付記１〜３のいずれか一つに記載のストレージ制御装置。
【０１７８】
（付記５）ストレージシステム内の複数のストレージへのアクセスを制御する複数のストレージ制御装置のいずれかのストレージ制御装置が、
前記複数のストレージに含まれる複数の記憶領域へのアクセスの偏りの有無に応じて前記ストレージシステムの構成を特定する構成情報に基づき前記複数の記憶領域へのアクセスの偏りを補正する第１の構成変更を行った後で、前記複数のストレージへのアクセスの偏りの有無に応じて前記構成情報に基づき前記複数のストレージへのアクセスの偏りを補正する第２の構成変更を行う、または、前記複数のストレージ制御装置にかかる負荷の偏りの有無に応じて前記構成情報に基づき前記複数のストレージ制御装置にかかる負荷の偏りを補正する第３の構成変更を行う補正処理を実行する、
処理を実行することを特徴とする制御方法。
【０１７９】
（付記６）ストレージシステム内の複数のストレージへのアクセスを制御する複数のストレージ制御装置のいずれかのストレージ制御装置に、
前記複数のストレージに含まれる複数の記憶領域へのアクセスの偏りの有無に応じて前記ストレージシステムの構成を特定する構成情報に基づき前記複数の記憶領域へのアクセスの偏りを補正する第１の構成変更を行った後で、前記複数のストレージへのアクセスの偏りの有無に応じて前記構成情報に基づき前記複数のストレージへのアクセスの偏りを補正する第２の構成変更を行う、または、前記複数のストレージ制御装置にかかる負荷の偏りの有無に応じて前記構成情報に基づき前記複数のストレージ制御装置にかかる負荷の偏りを補正する第３の構成変更を行う補正処理を実行する、
処理を実行させることを特徴とするプログラム。
【符号の説明】
【０１８０】
１００、２００  ストレージシステム
１０１  ストレージ制御装置
１０２、２１２、２１４、２１６、２１８  ストレージ
２０３〜２０６  ＣＭ
７０７  制御部
８０１  第１の検出部
８０２  第１の補正部
８０３  第２の検出部
８０４  第２の補正部
８０５  第３の検出部
８０６  第３の補正部
【図１】
2015082315.tif 000003
【図２】
2015082315.tif 000004
【図３】
2015082315.tif 000005
【図４】
2015082315.tif 000006
【図５】
2015082315.tif 000007
【図６】
2015082315.tif 000008
【図７】
2015082315.tif 000009
【図８】
2015082315.tif 000010
【図９】
2015082315.tif 000011
【図１０】
2015082315.tif 000012
【図１１】
2015082315.tif 000013
【図１２】
2015082315.tif 000014
【図１３】
2015082315.tif 000015
【図１４】
2015082315.tif 000016