(57)【要約】      （修正有）【課題】ＡＬＵＡ非対称論理ユニットアクセス対応ストレージ装置において性能の向上を図る。【解決手段】記憶域をそなえ、記憶域に対する複数のアクセスパスが設けられているストレージ装置を制御するストレージ制御装置２１は、複数のアクセスパスの負荷を示す負荷情報２８，２９を取得する取得部２２１と、負荷情報２８，２９に基づいて、記憶域に対するアクセスパスを切り替えるべきかどうかを判定する判定部２２２と、判定部２２２によってアクセスパスを切り替えるべきと判定された場合、切替候補アクセスパスを選択する抽出部２２３と、抽出部２２３が選択した切替候補アクセスパスの切替を指示する切替指示部２２４と、をそなえる。【選択図】図３
2015184895.tif 000002
【特許請求の範囲】
【請求項１】
記憶域をそなえ、前記記憶域に対する複数のアクセスパスが設けられているストレージ装置を制御するストレージ制御装置であって、
前記複数のアクセスパスの負荷を示す負荷情報を取得する取得部と、
前記負荷情報に基づいて、前記記憶域に対する前記アクセスパスを切り替えるべきかどうかを判定する判定部と、
前記判定部によってアクセスパスを切り替えるべきと判定された場合、切替候補アクセスパスを選択する抽出部と、
前記抽出部が選択した前記切替候補アクセスパスの切替を指示する切替指示部と、
をそなえることを特徴とするストレージ制御装置。
【請求項２】
前記負荷情報に基づいて、前記アクセスパスの切替後に前記アクセスパスの切替の効果の有無を確認し、前記切替の効果がある場合には前記切替を継続し、前記切替の効果がない場合には前記アクセスパスの切替を元に戻す確認部をさらにそなえることを特徴とする請求項１記載のストレージ制御装置。
【請求項３】
前記複数のアクセスパスは、前記記憶域に対するアクセスの優先度が異なり、
前記判定部は、前記負荷情報に基づいて、前記複数のアクセスパスのうちの優先度の高いパスの前記負荷が所定値以上であり、前記複数のアクセスパスのうちの優先度の低いアクセスパスの前記負荷が所定値未満である場合に、前記記憶域に対する前記アクセスパスを切り替えるべきであると判定することを特徴とする請求項１又は２記載のストレージ制御装置。
【請求項４】
前記抽出部は、前記複数のアクセスパスのうち、前記取得部が取得した前記負荷情報に基づいて、前記負荷の最も低いアクセスパスを、前記切替候補アクセスパスとして選択することを特徴とする請求項１〜３のいずれか１項に記載のストレージ制御装置。
【請求項５】
前記ストレージ装置は、前記記憶域を複数有し、
前記ストレージ制御装置は、前記複数の記憶域のうちの一部分を制御し、
前記取得部は、前記ストレージ制御装置が制御する記憶域毎に前記負荷情報を取得することを特徴とする請求項１〜４のいずれか１項に記載のストレージ制御装置。
【請求項６】
前記取得部は、前記負荷情報を前記ストレージ制御装置及び前記記憶域毎に取得することを特徴とする請求項５記載のストレージ制御装置。
【請求項７】
前記抽出部は、前記ストレージ制御装置が制御する前記記憶域のうち、前記取得部が取得した前記負荷情報に基づいて、前記負荷が最も高い記憶域を通るアクセスパスのうち、前記ストレージ制御装置以外の第２のストレージ制御装置を通る前記優先度の低いアクセスパスを、前記切替候補アクセスパスとして選択することを特徴とする請求項６記載のストレージ制御装置。
【請求項８】
前記ストレージ制御装置の前記負荷が低下したか、或いは前記第２のストレージ制御装置の前記負荷が上昇した場合に、前記ストレージ装置内の全アクセスパスをリセットする復旧部をさらにそなえることを特徴とする請求項７記載のストレージ制御装置。
【請求項９】
ストレージ装置であって、
記憶域と、
前記ストレージ装置を制御するストレージ制御装置と、をそなえ、前記記憶域に対して複数のアクセスパスが設けられており、
前記ストレージ制御装置は、
前記複数のアクセスパスの負荷を示す負荷情報を取得する取得部と、
前記負荷情報に基づいて、前記記憶域に対する前記アクセスパスを切り替えるべきかどうかを判定する判定部と、
前記判定部によってアクセスパスを切り替えるべきと判定された場合、切替候補アクセスパスを選択する抽出部と、
前記抽出部が選択した前記切替候補アクセスパスの切替を指示する切替指示部と、
をそなえることを特徴とするストレージ装置。
【請求項１０】
記憶域と、ストレージ装置を制御するストレージ制御装置と、をそなえ、前記記憶域に対して複数のアクセスパスが設けられているストレージ装置を制御するストレージ制御プログラムであって、
前記複数のアクセスパスの負荷を示す負荷情報を取得し、
前記負荷情報に基づいて、前記記憶域に対する前記アクセスパスを切り替えるべきかどうかを判定し、
前記アクセスパスを切り替えるべきと判定された場合、切替候補アクセスパスを選択し、
前記選択された前記切替候補アクセスパスの切替を指示する、
処理をコンピュータに実行させることを特徴とするストレージ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ制御装置、ストレージ装置、及びストレージ制御プログラムに関する。
【背景技術】
【０００２】
近年、Asymmetric Logical Unit Access（ＡＬＵＡ；非対称論理ユニットアクセス）機能に対応したＡＬＵＡ対応ストレージ装置が登場している。
ＡＬＵＡとは、標準Small Computer Serial Interface（ＳＣＳＩ）のSCSI Primary Commands-3（ＳＰＣ−３）に規定されている機能である。ＡＬＵＡを使用することにより、ストレージ装置とホストとの間で最適化されたパスを特定したり、ストレージ装置の各Channel Adaptor（ＣＡ）ポートに異なるアクセスレベルを設定することが可能となる。
【０００３】
ここで、一般に、ストレージ装置においては、ストレージ装置内に構成されている各Redundant Array of Independent Disks（ＲＡＩＤ）グループや論理ユニット（Logical Unit；ＬＵＮ）に対して、アクセス制御等を行なうControl Module（ＣＭ）がそれぞれ割り当てられている。このＣＭは担当ＣＭと呼ばれ、制御を実行しないＣＭは非担当ＣＭと呼ばれる。
【０００４】
ＡＬＵＡ対応ストレージ装置においては、ＬＵＮの最適なアクセスパスは、担当ＣＭに割り当てられているＣＭを経由するアクセスパスである。ストレージ装置のパスの状態が正常な場合には、担当ＣＭのアクセスパスが常に最適パスとして選択され、入出力（Input/Output；Ｉ／Ｏ）処理が行なわれる。
このとき、担当ＣＭの負荷が高くなった場合、担当ＣＭを経由するパスでＩ／Ｏの処理待ちが発生したり、キューフル（Queue full）が発生し、担当ＣＭに処理が偏り、Ｉ／Ｏレスポンス速度の低下が発生する。
【０００５】
このとき、非担当ＣＭを経由するアクセスパスは、Ｉ／Ｏ処理に余裕があっても、ストレージ装置のパス状態が正常である限りＩ／Ｏ処理に使用されることはない。この結果、ＣＭ間で負荷のアンバランスが生じ、ＡＬＵＡ対応ストレージ装置において応答時間が上昇してしまう。
このため、ＡＬＵＡ対応ストレージ装置において、レスポンスタイム（応答時間）を短縮するために、最適アクセスパス以外のパスを使用して、ストレージ装置の負荷を分散させ、性能の向上を図ることが望ましい。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平９−１９０２９２号公報
【特許文献２】特開２００５−７８５０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記課題に鑑みて、１つの側面では、本発明は、ＡＬＵＡ対応ストレージ装置において性能の向上を図ることを目的とする。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の１つとして位置付けることができる。
【課題を解決するための手段】
【０００８】
このため、記憶域をそなえ、前記記憶域に対する複数のアクセスパスが設けられているストレージ装置を制御するストレージ制御装置は、前記複数のアクセスパスの負荷を示す負荷情報を取得する取得部と、前記負荷情報に基づいて、前記記憶域に対する前記アクセスパスを切り替えるべきかどうかを判定する判定部と、前記判定部によってアクセスパスを切り替えるべきと判定された場合、切替候補アクセスパスを選択する抽出部と、前記抽出部が選択した前記切替候補アクセスパスの切替を指示する切替指示部と、をそなえる。
【０００９】
又、ストレージ装置は、記憶域と、前記ストレージ装置を制御するストレージ制御装置と、をそなえ、前記記憶域に対して複数のアクセスパスが設けられており、前記ストレージ制御装置は、前記複数のアクセスパスの負荷を示す負荷情報を取得する取得部と、前記負荷情報に基づいて、前記記憶域に対する前記アクセスパスを切り替えるべきかどうかを判定する判定部と、前記判定部によってアクセスパスを切り替えるべきと判定された場合、切替候補アクセスパスを選択する抽出部と、前記抽出部が選択した前記切替候補アクセスパスの切替を指示する切替指示部と、をそなえる。
【００１０】
更に、記憶域と、ストレージ装置を制御するストレージ制御装置と、をそなえ、前記記憶域に対して複数のアクセスパスが設けられているストレージ装置を制御するストレージ制御プログラムは、前記複数のアクセスパスの負荷を示す負荷情報を取得し、前記負荷情報に基づいて、前記記憶域に対する前記アクセスパスを切り替えるべきかどうかを判定し、前記アクセスパスを切り替えるべきと判定された場合、切替候補アクセスパスを選択し、前記選択された前記切替候補アクセスパスの切替を指示する、処理をコンピュータに実行させる。
【発明の効果】
【００１１】
本発明によれば、ＡＬＵＡ対応ストレージ装置において性能の向上を図ることができる。
【図面の簡単な説明】
【００１２】
【図１】実施形態の一例としてのＡＬＵＡ対応ストレージ装置を有する情報処理システムのシステム構成を示す図である。
【図２】実施形態の一例としてのＡＬＵＡ対応ストレージ装置におけるパスを例示する図である。
【図３】実施形態の一例としてのパス管理部の機能構成を示す図である。
【図４】実施形態の一例としてのストレージ装置におけるＣＭ負荷テーブルを例示する図である。
【図５】実施形態の一例としてのストレージ装置におけるＬＵＮ負荷テーブルを例示する図である。
【図６】実施形態の一例としての情報処理システムにおける各ＬＵＮの状態遷移図である。
【図７】図６の状態遷移図を、担当ＣＭ、非担当ＣＭのそれぞれの負荷状態毎に表形式で示す図である。
【図８】実施形態の一例としての情報処理システムにおけるパス切替処理を示すフローチャートである。
【図９】実施形態の一例としての情報処理システムにおけるパス切替処理時のシーケンスを例示する図である。
【図１０】実施形態の一例としての情報処理システムにおけるパス切替処理時のシーケンスを例示する図である。
【図１１】実施形態の一例としての負荷情報取得部による負荷情報取得処理を示すフローチャートである。
【図１２】図１１に示した負荷情報取得部によるＣＭ負荷テーブル格納処理を示すフローチャートである。
【図１３】（ａ）はＬＵＮ負荷テーブルを例示する図であり、（ｂ）は図１１に示した負荷情報取得部によるＬＵＮ負荷テーブル格納処理を示すフローチャートである。
【図１４】（ａ）はＣＭ負荷テーブルを例示する図であり、（ｂ）はＬＵＮ負荷テーブルを例示する図である。
【図１５】（ａ）は、パス切替候補領域を例示する図であり、（ｂ）はＬＵＮ負荷テーブルを例示する図であり、（ｃ）は実施形態の一例としての切替パス抽出部による切替パス抽出処理及びパス切替指示部によるパス切替指示処理を示すフローチャートである。
【図１６】（ａ）はＬＵＮ負荷テーブルを例示する図であり、（ｂ）は実施形態の一例としてのパス切替効果確認部によるパス切替効果確認処理を示すフローチャートである。
【図１７】パス切替効果ありの場合を例示する図であり、（ａ）はＣＭ負荷テーブルを例示する図であり、（ｂ）はＬＵＮ負荷テーブルを例示する図である。
【図１８】パス切替効果なしの場合を例示する図であり、（ａ）はＣＭ負荷テーブルを例示する図であり、（ｂ）はＬＵＮ負荷テーブルを例示する図である。
【図１９】実施形態の一例としての全パス切戻し部による全パス切戻し処理を示すフローチャートである。
【図２０】全パス切戻し処理前の各テーブルを示す図であり、（ａ）はＣＭ負荷テーブルを例示する図であり、（ｂ）はＬＵＮ負荷テーブルを例示する図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照して、本実施の形態の一例としてのストレージ制御装置、ストレージ装置、及びストレージ制御プログラムについて説明する。
ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形（実施形態及び各変形例を組み合わせる等）して実行することができる。
（Ａ）構成
最初に、実施形態の一例としての情報処理システム１の構成を説明する。
【００１４】
図１は、実施形態の一例としてのＡＬＵＡ対応ストレージ装置２を有する情報処理システム１のシステム構成を示す図である。
情報処理システム１は、ホスト３と、ＡＬＵＡ対応ストレージ装置２とをそなえ、ホスト３とＡＬＵＡ対応ストレージ装置２とは、例えばLocal Area Network（ＬＡＮ）などのリンクによって相互接続されている。
【００１５】
ホスト３は、後述するＡＬＵＡ対応ストレージ装置２に対してデータのリードやライトなどのＩ／Ｏを行なう情報処理装置である。
ＡＬＵＡ対応ストレージ装置２は、複数（図１に示す例では２つ）のＣＭ１１−１，１１−２と、ディスク１８−１〜１８−ｎ（ｎは２以上の整数）とをそなえる。
ＡＬＵＡ対応ストレージ装置２は、ＣＭ１１−１と１１−２とが異なるアクセス性能を持つＡＬＵＡ対応ストレージ装置である。以下、簡潔を期するために、ＡＬＵＡ対応ストレージ装置２を、単にストレージ装置２とも呼ぶ。
【００１６】
ＣＭ１１−１は、ストレージ装置２全体の動作を制御するマスタＣＭである。このため、以下、ＣＭ１１−１をマスタＣＭ１１−１とも呼ぶ。
ＣＭ１１−２は、マスタＣＭ１１−１のスペアのＣＭであるスレーブＣＭである。このため、以下、ＣＭ１１−２をスレーブＣＭ１１−２とも呼ぶ。スレーブＣＭ１１−２は、マスタＣＭ１１−１の障害等の発生時に、マスタＣＭ１１−１の動作を引き継いで新たなマスタＣＭとして動作する。
【００１７】
なお、以下、ＣＭを示す符号としては、複数のＣＭのうち１つを特定する必要があるときには符号１１−１，１１−２を用いるが、任意のＣＭを指すときには符号１１を用いる。さらに、以降、ＣＭ１１−１，１１−２を、ＣＭ＃０，＃１とも呼ぶ。
又、以下、ディスクを示す符号としては、複数のディスクのうち１つを特定する必要があるときには符号１８−１，１８−２…を用いるが、任意のディスクを指すときには符号１８を用いる。
【００１８】
ＣＭ１１−１，１１−２は、Serial Attached SCSI（ＳＡＳ）やPCI Express（登録商標）（ＰＣＩｅ）などのＣＭ間接続１６によって接続される。ＣＭ１１が３つ以上の場合、ＣＭ１１間にスイッチが設けられる場合もある。
ディスク１８は、例えばHard Disk Drive（ＨＤＤ）である。ここでディスク１８が、複数のＲＡＩＤグループ１９−１〜１９−ｍ（ｍは２以上の整数）を構成している。以下、ＲＡＩＤグループ１９−１〜１９−ｍを、ＲＡＩＤグループ＃０〜＃ｍ−１とも呼ぶ。
【００１９】
又、ディスク１８は、ホスト３等に対して提供される、論理的な格納域である論理ユニット（Logical Unit；ＬＵＮ；記憶域）１７−０〜１７−ｋ（ｋは２以上の整数）（図２参照）も構成している。
なお、以下、ＬＵＮを示す符号としては、複数のＬＵＮのうち１つを特定する必要があるときには符号１７−１，１７−ｋ…を用いるが、任意のＬＵＮを指すときには符号１７を用いる。
【００２０】
又、以下、ＲＡＩＤグループを示す符号としては、複数のＲＡＩＤグループのうち１つを特定する必要があるときには符号１９−１〜１９−ｍを用いるが、任意のＲＡＩＤグループを指すときには符号１９を用いる。
これらのＬＵＮ１７−０〜１７−ｋにはそれぞれ、当該ＬＵＮ１７を管理するＣＭ１１（以下、このＣＭを当該ＬＵＮの「担当ＣＭ」と呼ぶ）が割り当てられている。一方、当該ＬＵＮ１７の担当ＣＭではない他のＣＭを「非担当ＣＭ」と呼ぶ。
【００２１】
ディスク１８とＲＡＩＤグループ１９との対応付け、及びディスク１８とＬＵＮ１７との対応付けは、ＣＭ１１内の後述する構成定義２７に記録されている。
ここで、ＣＭ１１−１は、複数（図１に示す例では２つ）のChannel Adaptor（ＣＡ）１２−１，１２−２、複数（図１に示す例では２つ）のディスクアダプタ（Disk Adaptor；ＤＡ）１３−１，１３−２、Central Processing Unit（ＣＰＵ）１４−１、及びメモリ１５−１をそなえる。
【００２２】
ＣＡ１２−１，１２−２は、ホスト３とＣＭ１１−１とを接続するためのモジュールである。ＣＡ１２−１，１２−２は、Fibra Channel（ＦＣ）、Internet Small Computer System Interface（ｉＳＣＳＩ）、ＳＡＳ、Fibre Channel over Ethernet（ＦＣｏＥ）、Infinibandなど、様々な通信規格によりホスト３とＣＭ１１−１とを接続する。
ＤＡ１３−１，１３−２は、後述するディスク１８とＣＭ１１−１とを、例えば、ＳＡＳによって接続するExpanderやI/O Controller（ＩＯＣ）などのインタフェースである。ＤＡ１３−１，１３−２は、ＣＭ１１−１とディスク１８とのデータのやり取りを制御する。
【００２３】
ＣＰＵ１４−１は、種々の制御や演算を行なう処理装置であり、後述するメモリ１５−１等に格納されたOperating System（ＯＳ）やプログラムを実行することにより、種々の機能を実現する。又、ＣＰＵ１４−１は、ストレージ制御プログラムを実行することにより、ストレージ制御部２０−１として機能する。ＣＰＵ１４−１は、例えば、公知のＣＰＵを使用して実装することができる。
【００２４】
ストレージ制御部２０−１は、ストレージ装置２の全体の動作を制御すると共に、当該ストレージ制御部２０−１がそなえられているＣＭ１１−１が担当するＬＵＮ１７の制御を行なう。
ストレージ制御部２０−１は、パス管理部（ストレージ制御装置）２１、キャッシュ制御部２２、及びＲＡＩＤ制御部２３をそなえる。
【００２５】
パス管理部２１は、ストレージ装置２のＲＡＩＤ１９やＬＵＮ１７へのアクセスパスを管理する。又、パス管理部２１は、担当ＣＭ１１の負荷が高く、非担当ＣＭ１１の負荷が低い場合に、ＬＵＮ１７へのアクセスパス（以下、パスとも呼ぶ）を非担当ＣＭ１１を経由するパス（クロスアクセス）に切り替えて、ＣＭ１１間の負荷分散を図る。パス管理部２１の詳細な構成及び機能については図２を用いて後述する。
【００２６】
キャッシュ制御部２２は、ＣＭ１１にそなえられた不図示のキャッシュとディスク１８との間でデータのキャッシュ制御を行なう。キャッシュ制御部２２の機能は公知であるため、その詳細な説明は省略する。
ＲＡＩＤ制御部２３は、後述のディスク１８を用いてＲＡＩＤを実現する。このＲＡＩＤ制御部２３は、例えば、構成定義２７に基づいて、ディスク１８によるＲＡＩＤグループ１９−１〜１９−ｍの構成を制御する。ここで、構成定義２７は、ＲＡＩＤグループ１９−１〜１９−ｍの構成情報や、ボリュームの設定情報及びデータチェックの管理情報などを記憶しているデータである。
【００２７】
又、ＲＡＩＤ制御部２３は、ＲＡＩＤグループ１９−１〜１９−ｍの変更があった場合、その変更を構成定義２７に記録する。ＲＡＩＤ制御部２３の機能は公知であるため、その詳細な説明は省略する。
メモリ１５−１は、ＣＰＵ１４−１が実行するプログラムや種々のデータ、ＣＰＵ１４−１の動作により得られたデータ等を格納する。又、メモリ１５−１は、構成定義２７、ＣＭ負荷テーブル（ＴＢＬ）２８、ＬＵＮ負荷テーブル２９、及びパス切替候補領域２６を格納する格納部としても機能する。
【００２８】
ＣＭ負荷テーブル２８は、ストレージ装置２にそなえられているＣＭ１１毎の性能値として、その平均レスポンスタイム（平均応答時間）を格納している。ＣＭ負荷テーブル２８の詳細な構成については図４を用いて後述する。
ＬＵＮ負荷テーブル２９は、ストレージ装置２内に定義されているＬＵＮ１７毎の性能値として、その平均レスポンスタイムを格納している。ＬＵＮ負荷テーブル２９の詳細な構成については図５を用いて後述する。
【００２９】
パス切替候補領域２６は、パス管理部２１によって、パスを切り替える際に、切り替え候補のパスの選定に使用される一時的な記憶域である。図１５（ａ）に示すように、パス切替候補領域２６は、ストレージ装置２内に定義されているＬＵＮ１７を一意に識別する識別子を格納するＬＵＮ＃２６１と、レスポンスタイム２６２とを有する。
メモリ１５−１としては、例えばRandom Access Memory（ＲＡＭ）などを用いることができる。
【００３０】
なお、ＣＭ１１−１内のＣＡ１２−１，１２−２、ＤＡ１３−１，１３−２、ＣＰＵ１４−１、メモリ１５−１などの構成要素は、ＰＣＩｅにより相互に接続されている。又、途中に不図示のスイッチが設けられる場合もある。
一方、ＣＭ１１−２は、複数（図１に示す例では２つ）のＣＡ１２−３，１２−４、複数（図１に示す例では２つ）のＤＡ１３−３，１３−４、ＣＰＵ１４−２、及びメモリ１５−２をそなえる。
【００３１】
ＣＡ１２−３，１２−４は、ホスト３とＣＭ１１−２とを接続するためのモジュールである。ＣＡ１２−３，１２−４は、ＦＣ、ｉＳＣＳＩ、ＳＡＳ、ＦＣｏＥ、Infinibandなど、様々な通信規格によりホスト３とＣＭ１１−２とを接続する。
ＤＡ１３−３，１３−４は、後述するディスク１８とＣＭ１１−２とを、例えば、ＳＡＳによって接続するExpanderやＩＯＣなどのインタフェースである。ＤＡ１３−３，１３−４は、ＣＭ＃１３−１とディスク１８とのデータのやり取りを制御する。
【００３２】
ＣＰＵ１４−２は、種々の制御や演算を行なう処理装置であり、後述するメモリ１５−２等に格納されたＯＳやプログラムを実行することにより、種々の機能を実現する。又、ＣＰＵ１４−２は、ストレージ制御プログラムを実行することにより、ストレージ制御部（ストレージ制御装置）２０−２として機能する。ＣＰＵ１４−２は、例えば、公知のＣＰＵを使用して実装することができる。
【００３３】
ストレージ制御部２０−２は、当該ストレージ制御部２０−２がそなえられているＣＭ１１−２が担当するＬＵＮ１７の制御を行なう。又、ストレージ制御部２０−２は、マスタＣＭ１１−１の故障時等には、ストレージ制御部２０−１の代わりにストレージ装置２の全体の動作を制御する。
ストレージ制御部２０−２の機能及び構成は、ＣＭ１１−１にそなえられているストレージ制御部２０−１の機能及び構成と同様であるため、その詳細な図示並びに説明は省略する。
【００３４】
メモリ１５−２は、ＣＰＵ１４−２が実行するプログラムや種々のデータ、ＣＰＵ１４−２の動作により得られたデータ等を格納する。又、メモリ１５−２は、不図示の構成定義、ＣＭ負荷テーブル、ＬＵＮ負荷テーブル、及びパス切替候補領域を格納する格納部としても機能する。
メモリ１５−２内の構成定義、ＣＭ負荷テーブル、ＬＵＮ負荷テーブル、及びパス切替候補領域の構成及び機能は、ＣＭ１１−１にそなえられている対応する機能及び構成と同様であるため、その詳細な図示並びに説明は省略する。又、スレーブＣＭ１１−２の構成定義は、スレーブＣＭ１１−２によって、マスタＣＭ１１−１に問い合わせを行なうことにより取得される。
【００３５】
メモリ１５−２としては、例えばＲＡＭなどを用いることができる。
なお、ＣＭ１１−２内のＣＡ１２−３，１２−４、ＤＡ１３−３，１３−４、ＣＰＵ１４−２、メモリ１５−２などの構成要素は、ＰＣＩｅにより相互に接続されている。又、途中に不図示のスイッチが設けられる場合もある。
なお、以下、ＣＡを示す符号としては、複数のＣＡのうち１つを特定する必要があるときには符号１２−１〜１２−４を用いるが、任意のＣＡを指すときには符号１２を用いる。
【００３６】
又、以下、ＤＡを示す符号としては、複数のＤＡのうち１つを特定する必要があるときには符号１３−１〜１３−４を用いるが、任意のＤＡを指すときには符号１３を用いる。
又、以下、ＣＰＵを示す符号としては、複数のＣＰＵのうち１つを特定する必要があるときには符号１４−１，１４−２を用いるが、任意のＣＰＵを指すときには符号１４を用いる。
【００３７】
又、以下、メモリを示す符号としては、複数のメモリのうち１つを特定する必要があるときには符号１５−１，１５−２を用いるが、任意のメモリを指すときには符号１５を用いる。
又、以下、ストレージ制御部を示す符号としては、複数のストレージ制御部のうち１つを特定する必要があるときには符号２０−１，２０−２を用いるが、任意のストレージ制御部を指すときには符号２０を用いる。
【００３８】
図２は、実施形態の一例としてのＡＬＵＡ対応ストレージ装置２におけるパスを例示する図である。
前述のように、ストレージ装置２は、ＡＬＵＡ対応のストレージ装置である。
ストレージ装置２は、ＬＵＮ１７−１〜１７−ｋ（以下、ＬＵＮ＃０〜＃ｋ−１とも呼ぶ）を提供している。
【００３９】
このＬＵＮ＃０の制御を担当する担当ＣＭ１１は、ＣＭ１１−１（ＣＭ＃０とも呼ぶ）であり、ＣＭ１１−２（ＣＭ＃１とも呼ぶ）はＬＵＮ＃０の非担当ＣＭ１１である。
ＡＬＵＡ対応ストレージ装置２においては、ＬＵＮ＃０に対するアクセスにおいて、担当ＣＭ１１−１、非担当ＣＭ１１−２のＩ／Ｏアクセス性能に差があり、担当ＣＭ１１−１を経由するパスＰＡのほうがアクセス性能が高く、アクセス優先度が高く設定されている。
【００４０】
このため、ＡＬＵＡ対応ストレージ装置では、正常時には、ホスト３からＬＵＮ＃０へのＩ／Ｏアクセスは、図２に符号ＰＡで示すようなパス（ストレートアクセスパス、或いはストレートアクセスと呼ぶ）が使用される。従来のＡＬＵＡ対応ストレージ装置では、ＣＭ間で負荷のアンバランスが発生している場合であっても、ストレートアクセスＰＡが正常に使用可能である限り、符号ＰＢで示すようなアクセスパス（クロスアクセスパス、或いはクロスアクセスと呼ぶ）が使用されることがない。ＰＢのクロスアクセスパスが使用されるのは、ストレートアクセス経路で何らかの異常が発生した場合だけである。
【００４１】
一方、本実施形態の一例としてのパス管理部２１（図１参照）は、ＣＭ１１間で負荷のアンバランスが生じると、ＬＵＮ＃０へのアクセスパスを、ストレートアクセスＰＡからクロスアクセスＰＢへ切り替えて、ＣＭ１１の負荷分散を図る。
以下、ＬＵＮ１７へのアクセスパスを、当該ＬＵＮ１７の担当ＣＭ１１を経由するストレートアクセスＰＡから、非担当ＣＭ１１を経由するクロスアクセスＰＢへ変更することを「パスを切り替える」と呼び、その操作を「パス切替」と呼ぶ。逆に、ＬＵＮ１７へのアクセスパスをクロスアクセスＰＢからストレートアクセスＰＡに戻すことを「パスを切り戻す」と呼び、その操作を「パス切戻し」と呼ぶ。
【００４２】
ここで、図３を用いてパス管理部２１の機能構成について説明する。
図３は、実施形態の一例としてのパス管理部２１の機能構成を示す図である。
パス管理部２１は、負荷情報取得部（取得部）２２１、負荷判定部（判定部）２２２、切替パス抽出部（抽出部）２２３、パス切替指示部（切替指示部）２２４、パス切替効果確認部（確認部）２２５、及び全パス切戻し部（復旧部）２２６をそなえる。
【００４３】
負荷情報取得部２２１は、所定間隔Ｔ１（例えば３０秒）おきに、ストレージ装置２に関する負荷情報を取得する。詳細には、負荷情報取得部２２１は、ＣＭ１１毎、ＬＵＮ１７毎の平均レスポンスタイムを採取する。なお、ここで「ＣＭ経由毎のレスポンスタイム」とは各ＣＭ経由でのＬＵＮ平均レスポンスタイムを意味する。
負荷情報取得部２２１は、各ＣＭ１１について、コマンドレスポンスタイムとして、所定間隔Ｔ１毎に、ホスト３からのリード／ライト要求をストレージ装置２が受け付けてから、ストレージ装置２が当該要求を処理して応答を返すまでの時間を採取する。負荷情報取得部２２１は、例えばコマンドレスポンスが行なわれる度に、ＣＭ１１毎のコマンドレスポンスタイムの平均値を求め、求めた値を、後述するＣＭ負荷テーブル２８のＣＭ平均レスポンスタイム２８２（図４参照）に格納する。
【００４４】
同時に、負荷情報取得部２２１は、各ＬＵＮ１７について、コマンドレスポンスタイムとして、ホスト３からのリード／ライト要求をストレージ装置２が受け付けてから、ストレージ装置２が当該要求を処理して応答を返すまでの時間を採取する。負荷情報取得部２２１は、例えばコマンドレスポンスが行なわれる度に、ＬＵＮ１７毎のコマンドレスポンスタイムの平均値を求め、求めた値を、後述するＬＵＮ負荷テーブル２９のＣＭ経由毎（経路毎）の平均レスポンスタイム２９４〜２９５（図５参照）に格納する。
【００４５】
負荷情報取得部２２１による負荷情報取得処理については、図１１〜図１３を用いて後述する。
負荷判定部２２２は、負荷情報取得部２２１が取得した負荷情報に基づいて、ＣＭ１１間で負荷のアンバランスが生じているかどうかを判定する。詳細には、負荷判定部２２２は、負荷情報取得部２２１が採取した、ＣＭ負荷テーブル２８内のＣＭ１１毎の平均レスポンスタイムを使用して、担当ＣＭ１１の負荷が高く、かつ非担当ＣＭ１１の負荷が低いかどうかを判定する。例えば、負荷判定部２２２は、自ＣＭ１１が高負荷（自ＣＭ１１のＣＭ毎平均レスポンスタイムが２０．０以上）であり、かつ他ＣＭ１１が低負荷（他ＣＭのＣＭ毎平均レスポンスタイムが１０．０未満）である場合に、ＣＭ１１間で負荷のアンバランスが生じていると判定する。
【００４６】
切替パス抽出部２２３は、負荷判定部２２２によって、ＣＭ１１間で負荷のアンバランスが生じていると判定された場合に、切替候補のパスを選択する。その際、切替パス抽出部２２３は、負荷情報取得部２２１が採取したＬＵＮ１７毎の平均コマンドレスポンスタイムに基づいて、ＣＭ１１の管理下のＬＵＮ１７のうち、パス切替をしておらず、最も遅延の大きなＬＵＮ１７を選択する。以降、ＣＭ１１の管理下のＬＵＮ１７のうち、最も遅延の大きなＬＵＮ１７を最遅延ＬＵＮ１７とも呼ぶ。
【００４７】
詳細には、切替パス抽出部２２３は、ＬＵＮ負荷テーブル２９を参照して、自ＣＭ１１の管理下にあるパス切替をしていないＬＵＮ１７のうち、平均レスポンスタイムが長く、かつ平均レスポンスタイムが最も大きいＬＵＮ１７を抽出する。ここで、自ＣＭ１１とは、切替パス抽出部２２３がそなえられているＣＭ１１を指す。
切替パス抽出部２２３は、平均レスポンスタイムが長いかどうかの判定を、平均レスポンスタイムが所定の上限しきい値ＴＡ（例えば２０．０ｍｓ）以上であるかどうかを判定することによって行なう。なお、切替パス抽出部２２３による切替パス抽出処理については、図１５（ａ）〜（ｃ）を用いて後述する。
【００４８】
パス切替指示部２２４は、切替パス抽出部２２３が選択した最遅延ＬＵＮ１７に対して、Target-Port-Group-Support（ＴＰＧＳ）を利用して、ＬＵＮ１７のアクセスパスをストレートアクセスＰＡからクロスアクセスＰＢに変更するパス切替を実施する。
その際、パス切替指示部２２４は、切替パス抽出部２２３が特定した最遅延ＬＵＮ１７に対するＩ／Ｏコマンドがホスト３から発行されるまで待機する。そして、このＬＵＮ１７に対してホスト３からＩ／Ｏコマンドが発行されると、ＴＰＧＳを利用して、このコマンドにセンス応答し、ホスト３にパス切替を促す。ここで、センス応答とは、ホスト３からのＳＣＳＩコマンドに対するエラー／インフォメーション付きの応答を指す。
【００４９】
ストレージ装置２は、自身ではパスの切替を行なうことができず、パスを切り替えるには、ホスト３からパスの切替を指示してもらう必要がある。そこで、パス切替指示部２２４は、最遅延ＬＵＮ１７に対するＩ／Ｏコマンドがホスト３から発行されたときに、ＴＰＧＳを利用して、ホスト３に対してセンス応答を行ない、ホスト３からパスの切替を指示してもらう。
【００５０】
パス切替指示部２２４からのセンス応答を受けたホスト３は、例えば、ストレージ装置２に対してパス確認コマンドを送信して、パス切替をストレージ装置２に対して指示する。なお、ＴＰＧＳやセンス応答、パス確認コマンドについては周知技術であるため、その説明を省略する。
パス切替効果確認部２２５は、パス切替を実施してから所定時間Ｔ１後に、パス切替の効果があったかどうかを判定する。詳細には、パス切替効果確認部２２５は、パスを切り替えたＬＵＮ１７に対するパス切替後の平均レスポンスタイムＲａと、パス切替前の平均レスポンスタイムＲｂとを比較する。
【００５１】
そして、パス切替後の平均レスポンスタイムＲａがパス切替前の平均レスポンスタイムＲｂを下回る（Ｒａ＜Ｒｂ）場合、パス切替効果確認部２２５は、パス切替効果ありと判定し、パス切替を確定する（パス切替をそのまま継続させる）。
一方、パス切替後の平均レスポンスタイムＲａがパス切替前の平均レスポンスタイムＲｂ以上の場合（Ｒａ≧Ｒｂ）、パス切替効果確認部２２５は、パス切替効果なしと判定して、パスを切り替えたＬＵＮ１７のパスを、元のパスに戻す。
【００５２】
なお、パス切替後にホスト３からのＩ／Ｏアクセスが一切なく、平均レスポンスタイムが０となる場合も、パス切替効果確認部２２５は、パス切替効果なしと判定し、パスを切り戻させる。パス切替効果確認部２２５によるパス切替効果確認処理については、図１６を用いて後述する。
全パス切戻し部２２６は、ストレージ装置２内の全アクセスパスを、各ＬＵＮ１７の担当ＣＭ１１を経由するストレートアクセスＰＡ（図２参照）に戻す。全パス切戻し部２２６による全パス切戻し処理については図１９を用いて後述する。
【００５３】
図４は、実施形態の一例としてのストレージ装置２におけるＣＭ負荷テーブル２８を例示する図である。
ＣＭ負荷テーブル２８は、ＣＭ＃２８１とＣＭ平均レスポンスタイム２８２とを有する。
ＣＭ＃２８１は、ストレージ装置２にそなえられているＣＭ１１を一意に識別するＣＭ  ＩＤを記憶する領域である。図４の例では、２つのＣＭ１１に対応するＣＭ＃２８１が存在する。
【００５４】
ＣＭ平均レスポンスタイム２８２は、負荷情報取得部２２１によってＣＭ１１毎に取得された、例えばミリ秒（ｍｓ）単位の平均レスポンスタイムを記憶する領域である。
図５は、実施形態の一例としてのストレージ装置２におけるＬＵＮ負荷テーブル２９を例示する図である。
ＬＵＮ負荷テーブル２９は、ＬＵＮ＃２９１、担当ＣＭ＃２９２、切替フラグ（Ｆｌｇ）２９３、ＣＭ経由毎（経路毎）の平均レスポンスタイム２９４〜２９５を有する。
【００５５】
ＬＵＮ＃２９１は、ストレージ装置２内に定義されているＬＵＮ１７を一意に識別するＬＵＮ  ＩＤを記憶する領域である。
担当ＣＭ＃２９２は、ＬＵＮ＃２９１に示すＬＵＮ  ＩＤを有するＬＵＮ１７の担当ＣＭ１１のＩＤを記憶する領域である。図５の表の１行目の例では、ＬＵＮ  ＩＤ＝１のＬＵＮ１７の担当ＣＭ＃２９２の値は“０”であり、ＣＭ  ＩＤ＝０のＣＭ１１−１（ＣＭ＃０）がＬＵＮ＃１の担当ＣＭであることを示す。
【００５６】
切替フラグ２９３は、ＬＵＮ１７のパスの切替の状態を示すフラグ値を記憶する領域である。切替フラグ２９３の値“０”は、当該ＬＵＮ＃１へのアクセスパスをストレートアクセスＰＡからクロスアクセスＰＢへの切替が行なわれていないこと（切替なし）を示す。又、値“１”は、クロスアクセスＰＢに切替中であるが、切替の効果が未だ確認されていないため、切替がいわば仮の切替状態であることを示す。値“２”は、クロスアクセスＰＢに切替済みであり、切替の効果が確認され、切替が確定していることを示す。さらに、値“−１”は、アクセスパスをクロスアクセスＰＢに切り替えたものの、切替効果がなく、ストレートアクセスＰＡに切り戻したこと（切替効果なし）を示す。
【００５７】
図５の表の１行目の例では、ＬＵＮ  ＩＤ＝０のＬＵＮ１７の切替フラグ２９３の値が“０”であり、クロスアクセスＰＢへの切替が行なわれていないことを示す。
ＣＭ経由毎（経路毎）の平均レスポンスタイム２９４〜２９５は、負荷情報取得部２２１によって取得された、ＬＵＮ＃２９１に示すＬＵＮ  ＩＤを有するＬＵＮ１７に対するＣＭ経由毎（経路毎）の平均レスポンスタイムを記憶する領域である。この領域（格納域）の個数は、ストレージ装置２にそなえられているＣＭ１１の数に一致するようにＬＵＮ負荷テーブル２９が構成される。
【００５８】
図５の例では、ＬＵＮ負荷テーブル２９は、ＣＭ＃０経由平均レスポンスタイム２９４と、ＣＭ＃１経由平均レスポンスタイム２９５とを有する。
ＣＭ＃０経由平均レスポンスタイム２９４は、ＬＵＮ＃２９１に示すＬＵＮ  ＩＤを有するＬＵＮ１７にＣＭ＃０（ＣＭ１１−１）を経由してアクセスした際の平均アクセスタイムを、例えばミリ秒（ｍｓ）単位で記憶している。図５の表の１行目の例では、ＬＵＮ  ＩＤ＝０のＬＵＮ１７（ＬＵＮ１７−１つまりＬＵＮ＃０）へのＣＭ＃０経由の平均レスポンスタイムが、２２．０ｍｓであったことを示す。
【００５９】
ＣＭ＃１経由平均レスポンスタイム２９５は、ＬＵＮ＃２９１に示すＬＵＮ  ＩＤを有するＬＵＮ１７にＣＭ＃１（ＣＭ１１−２）を経由してアクセスした際の平均アクセスタイムを、例えばミリ秒（ｍｓ）単位で記憶している。図５の表の１行目の例では、ＬＵＮ  ＩＤ＝０のＬＵＮ１７に対してＣＭ＃１経由のアクセスが未だ行なわれていないため、平均レスポンスタイムが空欄のままである。
【００６０】
なお、このＬＵＮ負荷テーブル２９の切替フラグ２９３の値は、ＣＭ１１のいずれかにおいて変更が行なわれる度に、ＣＭ間接続１６を介して他のＣＭ１１内のパス管理部２１に伝達される。これにより、パスの切替情報がＣＭ１１間で共有される。
ここで、パスの切替情報の共有は、例えば、公知のＣＭ間通信技術を用いて、切替フラグ２９３の値の情報を他ＣＭ１１に伝達することによって行なうことができる。詳細には、切替フラグ２９３の値を変えようとしているＣＭ１１のパス管理部２１が、値を変更する対象のＬＵＮ  ＩＤ、変更後の切替フラグ２９３の値（０，１，２，…）を、他ＣＭ１１のパス管理部２１に通知する。この通知を受け取った他ＣＭ１１のパス管理部２１が、ＬＵＮ負荷テーブル２９の値を更新する。
【００６１】
図６は、実施形態の一例としてのストレージ装置２における各ＬＵＮの状態遷移図であり、図７は、図６の状態遷移図を、担当ＣＭ１１、非担当ＣＭ１１のそれぞれの負荷状態毎に表形式で示す図である。
ストレージ装置２におけるＬＵＮ１７は、ＳＴ１「正常状態」と、ＳＴ２「パス切替状態」との２つの状態を取る。
【００６２】
ＳＴ１の正常状態は、ＬＵＮ１７へのアクセスに、担当ＣＭ１１を経由するストレートアクセスＰＡ（図２参照）が使用される状態である。一方、ＳＴ２のパス切替状態は、ＬＵＮ１７へのアクセスに、非担当ＣＭ１１を経由するクロスアクセスＰＢ（図２参照）が使用される状態である。
図６，図７に示すように、ＳＴ１において、負荷判定部２２２が、ＬＵＮ１７の担当ＣＭ１１の負荷が高くなり（例えば平均アクセスタイムが所定の上限しきい値ＴＡ以上になる）、かつ非担当ＣＭ１１の負荷が低い（例えば、平均アクセスタイムがＴＢ未満である）と判定する。
【００６３】
この場合、ステップＳ１において、切替パス抽出部２２３が最遅延ＬＵＮ１７を選択する。そして、パス切替指示部２２４が最遅延ＬＵＮ１７のパス切替を実行する。そして、所定間隔Ｔ１後に、パス切替効果確認部２２５が、パスの切替効果ありと判定すると、状態がＳＴ２に遷移する。
状態ＳＴ２において、負荷判定部２２２が、ＬＵＮ１７の担当ＣＭ１１の負荷が高く、かつ非担当ＣＭ１１の負荷も中程度である（例えば、平均アクセスタイムが所定の下限しきい値ＴＢ＝１０．０ｍｓ以上ＴＡ未満）と判定すると、ステップＳ３において状態遷移は発生しない（現状が維持される）。又、担当ＣＭ１１の負荷が中程度（例えば、平均アクセスタイムがＴＢ以上ＴＡ未満）であり、かつ非担当ＣＭ１１の負荷が低い（例えば、平均アクセスタイムがＴＢ未満）場合、或いは、担当ＣＭ１１の負荷が中程度（例えば、平均アクセスタイムがＴＢ以上ＴＡ未満）であり、かつ非担当ＣＭ１１の負荷も中程度であると判定された場合も、状態遷移は発生しない。
【００６４】
一方、状態ＳＴ２において、負荷判定部２２２が、担当ＣＭ１１の負荷が低くなった（例えば、平均アクセスタイムがＴＢ未満になる）か、或いは、非担当ＣＭ１１の負荷が高くなった（例えば、平均アクセスタイムがＴＡ以上になる）と判定した場合、ステップＳ２において、パス切替指示部２２４によりパスが切り戻され、状態がＳＴ１に戻る。
なお、上記実施形態の一例においては、ＣＭ１１のＣＰＵ１４が、データ複製プログラムを実行することにより、上述したパス管理部２１、負荷情報取得部２２１、負荷判定部２２２、切替パス抽出部２２３、パス切替指示部２２４、パス切替効果確認部２２５、及び全パス切戻し部２２６として機能するようになっている。
【００６５】
なお、上述したパス管理部２１、負荷情報取得部２２１、負荷判定部２２２、切替パス抽出部２２３、パス切替指示部２２４、パス切替効果確認部２２５、及び全パス切戻し部２２６としての機能を実現するためのストレージ制御プログラムは、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ  ＤＶＤ等），ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体から、不図示の媒体リーダーを用いてプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
【００６６】
上述したパス管理部２１、負荷情報取得部２２１、負荷判定部２２２、切替パス抽出部２２３、パス切替指示部２２４、パス切替効果確認部２２５、及び全パス切戻し部２２６としての機能を実現する際には、内部記憶装置（本実施形態ではＣＭ１１のメモリ１５や不図示のＲＯＭ）に格納されたプログラムがコンピュータのマイクロプロセッサ（本実施形態ではＣＭ１１のＣＰＵ１４）によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
（Ｂ）動作
次に、図８〜図２０を参照して、実施形態の一例におけるストレージ装置２の動作を説明する。
【００６７】
図８は、実施形態の一例としての情報処理システム１におけるパス切替処理を示すフローチャート（ステップＳ１１〜Ｓ２１）である。
ステップＳ１１において、負荷情報取得部２２１が、所定間隔Ｔ１（例えば３０秒）おきに、負荷情報取得処理を実行して、ＣＭ１１毎（担当ＣＭ１１、非担当ＣＭ１１）及びＬＵＮ１７毎の平均コマンドレスポンスタイムを採取する。この負荷情報取得処理の詳細については、図１１〜図１３を用いて後述する。
【００６８】
次に、ステップＳ１２において、負荷判定部２２２が、ステップＳ１２において負荷情報取得部２２１が採取したＣＭ１１毎の平均レスポンスタイムを使用して、ＣＭ１１間で負荷のアンバランスが生じているかどうかを判定する。詳細には、負荷判定部２２２は、ＣＭ負荷テーブル２８を参照して、担当ＣＭ１１の負荷が高く、かつ非担当ＣＭ１１の負荷が低いかどうかを判定する。
【００６９】
ＣＭ１１間で負荷のアンバランスが生じている場合（ステップＳ１２のＹＥＳルート参照）、ステップＳ１３において、切替パス抽出部２２３が、パス切替を行なうパスを特定する。その際、切替パス抽出部２２３は、ＬＵＮ負荷テーブル２９を参照して、担当ＣＭ１１の管理下にあるＬＵＮ１７のうち、平均レスポンスタイムが最も高いＬＵＮ１７へのパスを、切替パスとして特定する。ステップＳ１３の処理については図１５を用いて後述する。
【００７０】
次に、ステップＳ１４において、パス切替指示部２２４は、切替パス抽出部２２３が特定した最遅延ＬＵＮ１７のパス切替指示処理を実行する。詳細には、パス切替指示部２２４は、切替パス抽出部２２３が特定した最遅延ＬＵＮ１７に対するＩ／Ｏコマンドがホスト３から発行されるまで待機する。そして、ＬＵＮ１７に対するＩ／Ｏコマンドがホスト３から発行されると、パス切替指示部２２４は、このコマンドにセンス応答し、ホスト３にパス切替を促す。
【００７１】
なお、上記ステップＳ１３，Ｓ１４の処理については、図１４，図１５を用いて後述する。
次に、ステップＳ１５において、パス切替指示部２２４は、所定時間Ｔ２（例えば５秒）内に、ホスト３からパス確認コマンドが受信され、パスの切替が確定したかどうかを判定する。なお、以降、上記のステップＳ１３〜Ｓ１５の処理をまとめて、パス切替処理と呼ぶ。パス切替処理におけるホスト３とのコマンドシーケンスについては、図９，図１０を用いて後述する。
【００７２】
所定時間Ｔ２内にパスの切替が確定しなかった場合（ステップＳ１５のＮＯルート参照）、ステップＳ１９において、パス切替指示部２２４は、最遅延ＬＵＮ１７のパスを元のパスに戻す（パスを切り戻す）。その際、パス切替指示部２２４は、ステップＳ１４，Ｓ１５でパスを切り替えたＬＵＮ１７に対するＩ／Ｏコマンドがホスト３から発行されるまで待機する。そして、このＬＵＮ１７に対してホスト３からＩ／Ｏコマンドが発行されると、ＴＰＧＳを利用して、このコマンドにセンス応答し、ホスト３にパス切戻しを促す。その後処理はステップＳ１１に戻る。
【００７３】
一方、所定時間Ｔ２内にパスの切替が確定した場合（ステップＳ１５のＹＥＳルート参照）、ステップＳ１６において、負荷情報取得部２２１が、所定間隔Ｔ１（例えば３０秒）後に、パス切替を行なったＬＵＮ１７について、負荷情報を取得する。
次に、ステップＳ１７において、パス切替効果確認部２２５が、パス切替効果確認処理を実行する。詳細には、パス切替効果確認部２２は、ステップＳ１６で採取したパス切替後（非担当ＣＭ１１経由）の平均レスポンスタイムＲａと、ステップＳ１１で採取したパス切替前（担当ＣＭ１１経由）の平均レスポンスタイムＲｂとを比較する。そして、パス切替効果確認部２２は、パス切替後の平均レスポンスタイムＲａがパス切替前の平均レスポンスタイムＲｂを下回る（Ｒａ＜Ｒｂ）場合、パス切替効果ありと判定する。逆に、パス切替後の平均レスポンスタイムＲａがパス切替前の平均レスポンスタイムＲｂ以上の場合（Ｒａ≧Ｒｂ）には、パス切替効果確認部２２は、パス切替効果なしと判定する。なお、パス切替効果確認処理については、図１６を用いて後述する。
【００７４】
ステップＳ１８において、パス切替効果確認部２２５は、ステップＳ１７でパス切替効果ありと判定されたかどうかを判定する。
パス切替効果ありと判定された場合（ステップＳ１８のＹＥＳルート参照）、処理はステップＳ１１に戻る。
一方、パス切替効果なしと判定された場合（ステップＳ１８のＮＯルート参照）、ステップＳ１９において、パス切替指示部２２４は、最遅延ＬＵＮ１７のパスを元のパスに戻す（パスを切り戻す）。その後処理はステップＳ１１に戻る。
【００７５】
一方、ステップＳ１２でＣＭ１１間で負荷のアンバランスが生じていない場合（ステップＳ１２のＮＯルート参照）、ステップＳ２０において、負荷判定部２２２は、担当ＣＭ１１の負荷が低くなったか、或いは、非担当ＣＭ１１の負荷が高くなり、かつパスを切り替え済みのＬＵＮ１７が存在するかどうかを判定する。
ステップＳ２０の条件判定が真の場合（ステップＳ２０のＹＥＳルート参照）、ステップＳ２１において、全パス切戻し部２２が、全パス切戻し処理を実行する（全パス切戻し処理については図１９を用いて後述する）。その後、処理はステップＳ１１に戻る。
【００７６】
一方、ステップ１９の条件判定が偽の場合（ステップＳ２０のＮＯルート参照）、処理はステップＳ１１に戻る。
ここで、図８のステップＳ１４，Ｓ１５におけるパス切替処理のシーケンスについて説明する。
図９は、実施形態の一例としての情報処理システム１におけるパス切替処理時のシーケンスを例示する図（ステップＳ３１〜Ｓ３５）である。
【００７７】
この例は、図８のステップＳ１４でのパス切替指示部２２４によるセンス応答後、所定時間Ｔ２（例えば５秒）内にホスト３からのパス確認コマンドがストレージ装置２に到着した場合を示す。
ステップＳ３１において、負荷判定部２２２がＣＭ１１間の負荷がアンバランスであることを検出し、パスの切替が必要であると判定すると、切替パス抽出部２２３が最遅延ＬＵＮ１７を特定する。そして、パス切替指示部２２４が、切替パス抽出部２２３が特定した最遅延ＬＵＮ１７に対するホストＩ／Ｏの受信を待機する。
【００７８】
その後、ステップＳ３２において、ホスト３が、ステップＳ３１でパス切替指示部２２４が特定した最遅延ＬＵＮ１７に対してコマンドを発行する。
ステップＳ３３において、ステップＳ３２で受信したホスト３からのＩ／Ｏコマンドに対して、パス切替指示部２２４が、最遅延ＬＵＮ１７においてホスト３にセンス応答を行なう。
【００７９】
ステップＳ３４において、ステップＳ３３のセンス応答後、所定時間Ｔ２（例えば５秒）内にホスト３からのパス確認コマンドが、ストレージ装置２（詳細には最遅延ＬＵＮ１７）に到着する。
この場合、ステップＳ３５において、パス切替指示部２２４は、非担当ＣＭ１１を経由するクロスアクセスＰＢにパスが切り替わったことを通知するパス情報応答を、ホスト３に対して送信する。以降、ステップＳ３１で特定された最遅延ＬＵＮ１７へのアクセスが、クロスアクセスＰＢ経由で行なわれるようになる。
【００８０】
図１０は、実施形態の一例としての情報処理システム１におけるパス切替処理時のシーケンスを例示する図（ステップＳ４１〜Ｓ４６）である。
この例は、図８のステップＳ１４でのパス切替指示部２２４によるセンス応答後、所定時間Ｔ２（例えば５秒）内にホスト３からのパス確認コマンドがストレージ装置２に到着しなかった（遅れて到着した）場合を示す。
【００８１】
ステップＳ４１において、負荷判定部２２２が、ＣＭ１１間の負荷がアンバランスであることを検出し、パスの切替が必要であると判定すると、切替パス抽出部２２３が最遅延ＬＵＮ１７を特定する。そして、パス切替指示部２２４が、切替パス抽出部２２３が特定した最遅延ＬＵＮ１７に対するホストＩ／Ｏの受信を待機する。
その後、ステップＳ４２において、ホスト３が、ステップＳ４１でパス切替指示部２２４が特定した最遅延ＬＵＮ１７に対してコマンドを発行する。
【００８２】
ステップＳ４３において、ステップＳ４２で受信したホスト３からのＩ／Ｏコマンドに対して、パス切替指示部２２４が、最遅延ＬＵＮ１７においてホスト３にセンス応答を行なう。
ステップＳ４４において、ステップＳ４３のセンス応答後、所定時間Ｔ２（例えば５秒）が経過し、ホスト３からのパス確認コマンドの受信タイムアウトが発生する。
【００８３】
その後、ステップＳ４５において、ホスト３からのパス確認コマンドが、ストレージ装置２（詳細には最遅延ＬＵＮ１７）に到着する。
この場合、ステップＳ４６において、パス切替指示部２２４は、担当ＣＭ１１を経由するストレートアクセスＰＡのままパスが切り替わっていないことを通知するパス情報応答を、ホスト３に対して送信する。そして以降も、ステップＳ４１で特定された最遅延ＬＵＮ１７へのアクセスが、ストレートアクセスＰＡ経由で引き続き行なわれる。
【００８４】
次に、図１１〜１３を参照して、図８のステップＳ１１の負荷情報取得部２２１による負荷情報取得処理について説明する。
図１１は、実施形態の一例としての負荷情報取得部２２１による負荷情報取得処理を示すフローチャート（ステップＳ５１〜Ｓ５３）である。
ステップＳ５１において、負荷情報取得部２２１は、所定間隔Ｔ１（例えば３０秒）おきに、ＣＭ１１毎、ＬＵＮ１７毎の平均コマンドレスポンスタイムを取得する。
【００８５】
詳細には、負荷情報取得部２２１は、各ＣＭ１１について、コマンドレスポンスタイムとして、所定間隔Ｔ１毎に、ホスト３からのリード／ライト要求をストレージ装置２が受け付けてから、ストレージ装置２が当該要求を処理して応答を返すまでの時間を採取する。そして、負荷情報取得部２２１は、例えばコマンドレスポンスが行なわれる度に、ＣＭ１１毎のコマンドレスポンスタイムの平均値を求める。
【００８６】
又、負荷情報取得部２２１は、各ＬＵＮ１７について、コマンドレスポンスタイムとして、ホスト３からのリード／ライト要求をストレージ装置２が受け付けてから、ストレージ装置２が当該要求を処理して応答を返すまでの時間を採取する。負荷情報取得部２２１は、例えばコマンドレスポンスが行なわれる度に、ＬＵＮ１７毎のコマンドレスポンスタイムの平均値を求める。
【００８７】
次に、ステップＳ５２において、負荷情報取得部２２１は、ステップＳ５１で取得したＣＭ毎の平均コマンドレスポンスタイムを、ＣＭ負荷テーブル２８に格納する。
ステップＳ５３において、負荷情報取得部２２１は、ステップＳ５１で取得したＬＵＮ１７毎の平均コマンドレスポンスタイムを、ＬＵＮ負荷テーブル２９に格納する。
なお、上記のステップＳ５２，Ｓ５３の処理は、同時に実行されても、逆の順序で実行されてもよい。
【００８８】
次に、図１１のステップＳ５２におけるＣＭ負荷テーブル格納処理を詳細に説明する。
図１２は、図１１に示した負荷情報取得部２２１によるＣＭ負荷テーブル格納処理を示すフローチャート（ステップＳ５２１〜Ｓ５２２）である。
ステップＳ５２１において、負荷情報取得部２２１は、図１１のステップＳ５１で取得したＣＭ＃０（ＣＭ１１−１）の平均コマンドレスポンスタイムを、ＣＭ負荷テーブル２８に格納する。
【００８９】
ステップＳ５２２において、負荷情報取得部２２１は、図１１のステップＳ５１で取得したＣＭ＃１（ＣＭ１１−２）の平均コマンドレスポンスタイムを、ＣＭ負荷テーブル２８に格納する。
次に、図１１のステップＳ５３におけるＬＵＮ負荷テーブル格納処理を詳細に説明する。
【００９０】
図１３（ａ）はＬＵＮ負荷テーブル２９を例示する図であり、図１３（ｂ）は図１１に示した負荷情報取得部２２１によるＬＵＮ負荷テーブル格納処理を示すフローチャート（ステップＳ５３１〜Ｓ５３５）である。この処理は、各ＣＭ１１においてそれぞれ独立して実行される。
図１３（ａ）のＬＵＮ負荷テーブル２９において、値が変更された箇所が太字で示されている。
【００９１】
ステップＳ５３１において、負荷情報取得部２２１は、ＬＵＮ負荷テーブル２９の先頭のレコードに移動する。
ステップＳ５３２において、負荷情報取得部２２１は、ステップＳ５３１で選択したレコードの担当ＣＭ１１が本処理を実行しているＣＭ１１（自ＣＭ）であり、かつステップＳ５３１で選択したレコードの切替フラグ２９３の値が“０”であるか、或いは、ステップＳ５３１で選択したレコードの担当ＣＭ１１が自ＣＭ１１ではなく（他ＣＭ）、かつステップＳ５３１で選択したレコードの切替フラグ２９３の値が“０”を超えるかどうかを判定する。
【００９２】
ステップＳ５３２の条件判定が真の場合（ステップＳ５３２のＹＥＳルート参照）、負荷情報取得部２２１は、ステップＳ５３３において、図１１のステップＳ５１で取得したＬＵＮ１７の平均レスポンスタイムを、ＬＵＮ負荷テーブル２９のＣＭ＃０経由平均レスポンスタイム２９４に格納する。
一方、ステップＳ５３２の条件判定が偽の場合（ステップＳ５３２のＮＯルート参照）、負荷情報取得部２２１は、ステップＳ５３４において、図１１のステップＳ５１で取得したＬＵＮ１７の平均レスポンスタイムを、ＬＵＮ負荷テーブル２９のＣＭ＃１経由平均レスポンスタイム２９５に格納する。
【００９３】
次に、ステップＳ５３５において、負荷情報取得部２２１は、ＬＵＮ負荷テーブル２９の次のレコードに移動して、上記のステップＳ５３２〜Ｓ５３４の処理を繰り返す。負荷情報取得部２２１は、ＬＵＮ負荷テーブル２９の最後のレコードの処理が完了するまで、上記のステップＳ５３２〜Ｓ５３４の処理を繰り返す。
次に、図１４（ａ），（ｂ），図１５（ａ）〜（ｃ）を参照して、図８のステップＳ１３，Ｓ１４の切替パス抽出処理及びパス切替指示処理について説明する。
【００９４】
図１４（ａ）はＣＭ負荷テーブル２８を例示する図であり、図１４（ｂ）はＬＵＮ負荷テーブル２９を例示する図である。図１５（ａ）は、パス切替候補領域２６を例示する図であり、図１５（ｂ）はＬＵＮ負荷テーブル２９を例示する図であり、図１５（ｃ）は実施形態の一例としての切替パス抽出部２２３による切替パス抽出処理及びパス切替指示部２２４によるパス切替処理を示すフローチャート（ステップＳ６１〜Ｓ６９）である。
【００９５】
ストレージ装置２において、ＣＭ負荷がアンバランス状態とは、例えば、図１４（ａ）に示すような状態である。図１４（ａ）の例では、例えば、ＣＭ１１−１の平均レスポンスタイムが所定の上限しきい値ＴＡ（例えば２０ｍｓ）以上になっている一方、ＣＭ１１−２の平均レスポンスタイムは低い。
このような場合、前述のように、図８のステップＳ１４において切替判定部２２２によってパスの切替が必要であると判定され、まず、切替パス抽出部２２３が切替パス抽出処理（ステップＳ６１〜Ｓ６６）を実行して、クロスアクセスＰＢに切り替えるパスを特定する。この処理は、各ＣＭ１１においてそれぞれ独立して実行される。
【００９６】
詳細には、切替パス抽出部２２３は、図１５（ｂ）のステップＳ６１において、ＣＭ１１のメモリ１５内のパス切替候補領域２６（図１参照）のＬＵＮ＃２６１及びレスポンスタイム２６２を、それぞれ値“０”に初期化する。
次に、ステップＳ６２において、切替パス抽出部２２３は、ＬＵＮ負荷テーブル２９の先頭のレコードに移動する。
【００９７】
ステップＳ６３において、切替パス抽出部２２３は、ステップＳ６２で選択したレコードの担当ＣＭ１１が本処理を実行しているＣＭ１１（自ＣＭ）であり、かつ当該レコードの切替フラグ２９３の値が“０”（切替なし）であるかどうかを判定する。
ステップＳ６３の条件判定が偽の場合（ステップＳ６３のＮＯルート参照）、切替パス抽出部２２３は、ＬＵＮ負荷テーブル２９の次のレコードに移動してステップＳ６３に戻る。
【００９８】
一方、ステップＳ６３の条件判定が真の場合（ステップＳ６３のＹＥＳルート参照）、切替パス抽出部２２３は、ステップＳ６４において、ステップＳ６２で選択したレコードのＬＵＮ１７の平均レスポンスタイムが、所定の上限しきい値ＴＡを超えており、かつ、当該ＬＵＮ１７の平均レスポンスタイムが、パス切替候補領域２６のレスポンスタイム２６２の記憶域に格納されている値を超えているかどうかを判定する。
【００９９】
ステップＳ６４の条件判定が偽の場合（ステップＳ６４のＮＯルート参照）、切替パス抽出部２２３は、ＬＵＮ負荷テーブル２９の次のレコードに移動してステップＳ６３に戻る。
一方、ステップＳ６４の条件判定が真の場合（ステップＳ６４のＹＥＳルート参照）、切替パス抽出部２２３は、ステップＳ６５において、ステップＳ６２で選択したレコードのＬＵＮ１７のＬＵＮ＃と平均レスポンスタイムとを、パス切替候補領域２６のＬＵＮ＃２６１とレスポンスタイム２６２とに、それぞれ格納する。その後、切替パス抽出部２２３は、ＬＵＮ負荷テーブル２９の次のレコードに移動してステップＳ６３に戻り、上記のステップＳ６３〜Ｓ６５の処理を繰り返す。切替パス抽出部２２３は、ＬＵＮ負荷テーブル２９の最後のレコードの処理が完了するまで、上記のステップＳ６２〜Ｓ６５の処理を繰り返す。
【０１００】
上記のステップＳ６２〜Ｓ６６の処理においては、図１５（ａ）のＬＵＮ負荷テーブル２９の例に示すように、切替パス抽出部２２３が、平均レスポンスタイムが最も高い２２．５ｍｓであるＬＵＮ＃４を最遅延ＬＵＮ１７として選択し、パス切替候補領域２６のＬＵＮ＃２６１に“４”を、レスポンスタイム２６２に“２２．５”を、それぞれ記録する。
【０１０１】
次に、パス切替指示部２２４がパス切替処理（ステップＳ６７〜Ｓ６９）を実行する。
ステップＳ６７において、パス切替指示部２２４は、パス切替候補領域２６のＬＵＮ＃２６１の値が“０”であるかどうかを判定する。
パス切替候補領域２６のＬＵＮ＃２６１の値が“０”である場合（ステップＳ６７のＹＥＳルート参照）、切替パス抽出処理において切替候補のパスが選択されなかったので、パス切替指示部２２４は、本処理を終了する。
【０１０２】
一方、パス切替候補領域２６のＬＵＮ＃２６１の値が“０”ではない場合（ステップＳ６７のＮＯルート参照）、切替パス抽出処理において切替候補のパスが選択されている。このため、ステップＳ６８において、パス切替指示部２２４は、パス切替候補領域２６のＬＵＮ＃２６１に格納されているＬＵＮ１７に対し、ＴＰＧＳを利用してホスト３にセンス応答し、ホスト３に対してパス切替を誘導する。
【０１０３】
ステップＳ６９において、パス切替指示部２２４は、ＬＵＮ負荷テーブル２９の、パス切替を誘導したＬＵＮ１７の切替フラグ２９３の値を“１”（切替中）に変更して処理を終了する。図１５（ａ）のＬＵＮ負荷テーブル２９の例では、ＬＵＮ＃＝４の切替Ｆｌｇの値を“１”に変更する。
次に、図１６（ａ），（ｂ）〜図１８（ａ），（ｂ）を参照して、図８のステップＳ１７のパス切替効果確認処理について説明する。
【０１０４】
図１６（ａ）はＬＵＮ負荷テーブル２９を例示する図であり、図１６（ｂ）は、実施形態の一例としてのパス切替効果確認部２２５によるパス切替効果確認処理を示すフローチャート（ステップＳ７１〜Ｓ７７）である。このパス切替効果確認処理は、各ＣＭ１１においてそれぞれ独立して実行される。
図１６（ｂ）のステップＳ７１において、パス切替効果確認部２２５は、ＬＵＮ負荷テーブル２９の先頭のレコードに移動する。
【０１０５】
ステップＳ７２において、パス切替効果確認部２２５は、ステップＳ７１で選択したレコードの担当ＣＭ１１が本処理を実行しているＣＭ１１（自ＣＭ）であり、かつ当該レコードの切替フラグ２９３の値が“１”（切替済み）であるかどうかを判定する。
ステップＳ７２の条件判定が偽の場合（ステップＳ７２のＮＯルート参照）、パス切替効果確認部２２５は、ＬＵＮ負荷テーブル２９の次のレコードに移動してステップＳ７２に戻る。
【０１０６】
一方、ステップＳ７２の条件判定が真の場合（ステップＳ７２のＹＥＳルート参照）、パスの切替が行なわれている。このため、ステップＳ７３において、パス切替効果確認部２２５は、ＬＵＮ負荷テーブル２９を参照して、パス切替前の平均レスポンスタイムＲｂがパス切替後のレスポンスタイムＲａを超えているかどうかを調べ、超えている場合はパス切替効果ありと判定する。一方、パス切替効果確認部２２５は、パス切替前の平均レスポンスタイムＲｂがパス切替後のレスポンスタイムＲａ以下の場合には、パス切替効果なしと判定する。
【０１０７】
例えば、図１６（ａ）のＬＵＮ負荷テーブル２９の例では、ＬＵＮ＃４に対するパス切替前の平均レスポンスタイムＲｂ＝２２．５は、パス切替後のレスポンスタイムＲａ＝１９．５を超えているため、パス切替効果確認部２２５は、パス切替効果ありと判定する。
パス切替効果ありと判定した場合（ステップＳ７３のＹＥＳルート参照）、パス切替を確定するために、ステップＳ７６において、パス切替効果確認部２２５は、ＬＵＮ負荷テーブル２９の当該ＬＵＮ１７の切替フラグ２９３の値を“２”（切替済み）に設定し、後述するステップＳ７７に移動する。
【０１０８】
一方、パス切替効果なしと判定した場合（ステップＳ７３のＮＯルート参照）、ステップＳ７４において、ＴＰＧＳを使用して、対象のＬＵＮ１７のパスを切り戻す。
そしてステップＳ７５において、パス切替効果確認部２２５は、ＬＵＮ負荷テーブル２９の当該ＬＵＮ１７の切替フラグ２９３の値を“−１”（切替効果なし）に設定する。
その後、パス切替効果確認部２２５は、ＬＵＮ負荷テーブル２９の次のレコードに移動してステップＳ７７に移動し、上記のステップＳ７３〜Ｓ７６の処理を繰り返す。パス切替効果確認部２２５は、ＬＵＮ負荷テーブル２９の最後のレコードの処理が完了するまで、上記のステップＳ７３〜Ｓ７６の処理を繰り返す。
【０１０９】
図１７（ａ），（ｂ）は、パス切替効果ありの場合を例示する図であり、図１７（ａ）はＣＭ負荷テーブル２８を例示する図であり、図１７（ｂ）はＬＵＮ負荷テーブル２９を例示する図である。
この図の例では、パス切替前の平均レスポンスタイムＲｂ＝２２．５は、パス切替後のレスポンスタイムＲａ＝１９．５を超えているため、パス切替効果確認部２２５は、パス切替効果ありと判定する。そのため、パス切替効果確認部２２５は、ＬＵＮ負荷テーブル２９の当該ＬＵＮ１７の切替フラグ２９３の値を“２”に設定して、パス切替を確定する。
【０１１０】
図１８（ａ），（ｂ）は、パス切替効果なしの場合を例示する図であり、図１８（ａ）はＣＭ負荷テーブル２８を例示する図であり、図１８（ｂ）はＬＵＮ負荷テーブル２９を例示する図である。
この図の例では、パス切替前の平均レスポンスタイムＲｂ＝２２．５は、パス切替後のレスポンスタイムＲａ＝２５．５以下であるため、パス切替効果確認部２２５は、パス切替効果なしと判定する。そのため、パス切替効果確認部２２５は、ＬＵＮ負荷テーブル２９の当該ＬＵＮ１７の切替フラグ２９３の値を“−１”に設定して、パスを切り戻す。
【０１１１】
次に、図１９，図２０（ａ），（ｂ）を参照して、図８のステップＳ１７の全パス切戻し処理について説明する。
図１９は、実施形態の一例としての全パス切戻し部２２６による全パス切戻し処理を示すフローチャート（ステップＳ８１〜Ｓ８５）である。この処理は、各ＣＭ１１においてそれぞれ独立して実行される。
【０１１２】
ステップＳ８１において、全パス切戻し部２２６は、ＬＵＮ負荷テーブル２９の先頭のレコードに移動する。
ステップＳ８２において、全パス切戻し部２２６は、ステップＳ８１で選択したレコードの担当ＣＭ１１が本処理を実行しているＣＭ１１（自ＣＭ）であり、かつステップＳ８１で選択したレコードの切替フラグ２９３の値が“０”を超えているかどうかを判定する。
【０１１３】
ステップＳ８２の条件判定が偽の場合（ステップＳ８２のＮＯルート参照）、全パス切戻し部２２６は、ＬＵＮ負荷テーブル２９の次のレコードに移動してステップＳ８２に戻る。
一方、ステップＳ８２の条件判定が真の場合（ステップＳ８２のＹＥＳルート参照）、ステップＳ８３において、全パス切戻し部２２６は、ＬＵＮ負荷テーブル２９のステップＳ８１で選択したレコードのＬＵＮ＃のＬＵＮ１７に対して、ＴＰＧＳを利用して、ホスト３にパスの切戻しを誘導する。詳細には、全パス切戻し部２２６は、当該ＬＵＮ１７に対するＩ／Ｏコマンドがホスト３から発行されるまで待機する。そして、このＬＵＮ１７に対してホスト３からＩ／Ｏコマンドが発行されると、ＴＰＧＳを利用して、このコマンドにセンス応答し、ホスト３にパス切戻しを促す。
【０１１４】
ステップＳ８４において、全パス切戻し部２２６は、ＬＵＮ負荷テーブル２９の当該ＬＵＮ１７の切替フラグ２９３の値を“０”に設定する。
その後、全パス切戻し部２２６は、ＬＵＮ負荷テーブル２９の次のレコードに移動してステップＳ８２に戻り、上記のステップＳ８３〜Ｓ８５の処理を繰り返す。全パス切戻し部２２６は、ＬＵＮ負荷テーブル２９の最後のレコードの処理が完了するまで、上記のステップＳ８３〜Ｓ８５の処理を繰り返す。
【０１１５】
図２０（ａ），（ｂ）は、全パス切戻し処理前の各テーブルを示す図であり、図２０（ａ）はＣＭ負荷テーブル２８を例示する図であり、図２０（ｂ）はＬＵＮ負荷テーブル２９を例示する図である。
この例では、ＬＵＮ負荷テーブル２９の切替フラグ２９３の値が“１”又は“２”のＬＵＮ１７は、パスの切替が行なわれている。全パス切戻し部２２６により、これらのパスが全て切り戻される。
【０１１６】
（Ｃ）作用／効果
このように、実施形態の一例によれば、パス管理部２１の負荷情報取得部２２１が、ＣＭ１１毎及びＬＵＮ１７毎の負荷として、ＬＵＮ１７の平均レスポンスタイムを監視する。そして、負荷判定部２２２が、ＣＭ１１間で負荷のアンバランスの発生の有無を判定し、ＣＭ１１間で負荷のアンバランスが発生している場合、パスの切替が必要であると判定する。次に、切替パス抽出部２２３が、最遅延ＬＵＮ１７を特定し、パス切替指示部２２４が、切替パス抽出部２２３によって特定された最遅延ＬＵＮ１７のパス切替を行なう。
【０１１７】
これにより、ＡＬＵＡ対応ストレージ装置２においてＣＭ１１間で負荷が分散される。特定のＣＭ１１にＩ／Ｏ負荷が偏る状況が回避されるため、ストレージ装置２全体のレスポンスタイムが短縮される。
パス切替後に、負荷判定部２２２が、ＣＭ１１間の負荷のアンバランスの解消、すなわち、パス切替を行なった担当ＣＭ１１の高負荷が解消したか、或いは非担当ＣＭ１１の負荷が上昇したことを検知すると、パス切替指示部２２４が当該ＬＵＮ１７のパスを切戻す。
【０１１８】
上記の構成により、ＡＬＵＡ対応ストレージ装置２においてレスポンスタイムが短くなる方のパスが常に選択されるので、ＣＭ１１間で負荷の分散を図り、ストレージ装置２のＩ／Ｏレスポンスを改善して、レスポンスタイムを短縮することができる。
このように、本ストレージ装置２においては、担当ＣＭ１１の負荷が高く、処理遅延が発生した場合に、処理能力に余力のある非担当ＣＭ１１のアクセスパスを有効活用して、レスポンス遅延を解消することができる。
（Ｄ）その他
なお、上述した実施形態に関わらず、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
【０１１９】
例えば、上記の実施形態の一例においては、各ＣＭ１１にＣＡ１２、ＤＡ１３がそれぞれ２つずつそなえられていたが、ＣＭ１１に１、又は３以上のＣＡ１２、ＤＡ１３がそなえられてもよい。
逆に、上記の実施形態の一例においては、各ＣＭ１１にそなえられたＣＰＵ１４およびメモリ１５の個数はそれぞれ１つであったが、１つのＣＭ１１に複数のＣＰＵ１４やメモリ１５がそなえられてもよい。
【０１２０】
又、上記の実施形態の一例においては、各ディスク１８はＨＤＤであったが、ディスク１８が、Solid State Disk（ＳＳＤ）などの他の記憶装置であってもよい。
又、上記の実施形態の一例においては、ストレージ装置２は、複数台のディスク１８がＲＡＩＤグループ１９を構成するＲＡＩＤ構成であったが、ストレージ装置２がＲＡＩＤを構成していなくてもよい。
【０１２１】
又、上記の実施形態の一例においては、負荷情報取得部２２１が、負荷情報として平均レスポンスタイムを収集していたが、負荷情報取得部２２１が、負荷情報として、処理量やキュー待機量などのほかの情報を収集してもよい。
さらに、上記の実施形態の一例においては、所定間隔Ｔ１、所定時間Ｔ２、上限しきい値ＴＡ、下限しきい値ＴＢの値の例として、３０秒、５秒、２０．０ｍｓ、１０．０ｍｓを使用したが、これらのパラメータに、任意の値を設定してもよい。
【０１２２】
（Ｅ）付記
以上の実施形態に関し、さらに以下の付記を開示する。
（付記１）
記憶域をそなえ、前記記憶域に対する複数のアクセスパスが設けられているストレージ装置を制御するストレージ制御装置であって、
前記複数のアクセスパスの負荷を示す負荷情報を取得する取得部と、
前記負荷情報に基づいて、前記記憶域に対する前記アクセスパスを切り替えるべきかどうかを判定する判定部と、
前記判定部によってアクセスパスを切り替えるべきと判定された場合、切替候補アクセスパスを選択する抽出部と、
前記抽出部が選択した前記切替候補アクセスパスの切替を指示する切替指示部と、
をそなえることを特徴とするストレージ制御装置。
【０１２３】
（付記２）
前記負荷情報に基づいて、前記アクセスパスの切替後に前記アクセスパスの切替の効果の有無を確認し、前記切替の効果がある場合には前記切替を継続し、前記切替の効果がない場合には前記アクセスパスの切替を元に戻す確認部をさらにそなえることを特徴とする付記１記載のストレージ制御装置。
【０１２４】
（付記３）
前記複数のアクセスパスは、前記記憶域に対するアクセスの優先度が異なり、
前記判定部は、前記負荷情報に基づいて、前記複数のアクセスパスのうちの優先度の高いパスの前記負荷が所定値以上であり、前記複数のアクセスパスのうちの優先度の低いアクセスパスの前記負荷が所定値未満である場合に、前記記憶域に対する前記アクセスパスを切り替えるべきであると判定することを特徴とする付記１又は２記載のストレージ制御装置。
【０１２５】
（付記４）
前記抽出部は、前記複数のアクセスパスのうち、前記取得部が取得した前記負荷情報に基づいて、前記負荷の最も低いアクセスパスを、前記切替候補アクセスパスとして選択することを特徴とする付記１〜３のいずれか１項に記載のストレージ制御装置。
（付記５）
前記ストレージ装置は、前記記憶域を複数有し、
前記ストレージ制御装置は、前記複数の記憶域のうちの一部分を制御し、
前記取得部は、前記ストレージ制御装置が制御する記憶域毎に前記負荷情報を取得することを特徴とする付記１〜４のいずれか１項に記載のストレージ制御装置。
【０１２６】
（付記６）
前記取得部は、前記負荷情報を前記ストレージ制御装置及び前記記憶域毎に取得することを特徴とする付記５記載のストレージ制御装置。
（付記７）
前記抽出部は、前記ストレージ制御装置が制御する前記記憶域のうち、前記取得部が取得した前記負荷情報に基づいて、前記負荷が最も高い記憶域を通るアクセスパスのうち、前記ストレージ制御装置以外の第２のストレージ制御装置を通る前記優先度の低いアクセスパスを、前記切替候補アクセスパスとして選択することを特徴とする付記６記載のストレージ制御装置。
【０１２７】
（付記８）
前記ストレージ制御装置の前記負荷が低下したか、或いは前記第２のストレージ制御装置の前記負荷が上昇した場合に、前記ストレージ装置内の全アクセスパスをリセットする復旧部をさらにそなえることを特徴とする付記７記載のストレージ制御装置。
（付記９）
ストレージ装置であって、
記憶域と、
前記ストレージ装置を制御するストレージ制御装置と、をそなえ、
前記記憶域に対して複数のアクセスパスが設けられており、
前記ストレージ制御装置は、
前記複数のアクセスパスの負荷を示す負荷情報を取得する取得部と、
前記負荷情報に基づいて、前記記憶域に対する前記アクセスパスを切り替えるべきかどうかを判定する判定部と、
前記判定部によってアクセスパスを切り替えるべきと判定された場合、切替候補アクセスパスを選択する抽出部と、
前記抽出部が選択した前記切替候補アクセスパスの切替を指示する切替指示部と、
をそなえることを特徴とするストレージ装置。
【０１２８】
（付記１０）
前記ストレージ制御装置は、
前記負荷情報に基づいて、前記アクセスパスの切替後に前記アクセスパスの切替の効果の有無を確認し、前記切替の効果がある場合には前記切替を継続し、前記切替の効果がない場合には前記アクセスパスの切替を元に戻す確認部をさらにそなえることを特徴とする付記９記載のストレージ装置。
【０１２９】
（付記１１）
前記複数のアクセスパスは、前記記憶域に対するアクセスの優先度が異なり、
前記判定部は、前記負荷情報に基づいて、前記複数のアクセスパスのうちの優先度の高いパスの前記負荷が所定値以上であり、前記複数のアクセスパスのうちの優先度の低いアクセスパスの前記負荷が所定値未満である場合に、前記記憶域に対する前記アクセスパスを切り替えるべきであると判定することを特徴とする付記９又は１０記載のストレージ装置。
【０１３０】
（付記１２）
前記抽出部は、前記複数のアクセスパスのうち、前記取得部が取得した前記負荷情報に基づいて、前記負荷の最も低いアクセスパスを、前記切替候補アクセスパスとして選択することを特徴とする付記９〜１１のいずれか１項に記載のストレージ装置。
（付記１３）
前記ストレージ装置は、
前記記憶域を複数と、第２のストレージ制御装置とを有し、
前記ストレージ制御装置と前記第２のストレージ制御装置とは、前記複数の記憶域のうちの一部分をそれぞれ制御し、
前記取得部は、前記ストレージ制御装置が制御する記憶域毎に前記負荷情報を取得することを特徴とする付記９〜１２のいずれか１項に記載のストレージ装置。
【０１３１】
（付記１４）
前記取得部は、前記ストレージ制御装置及び前記第２のストレージ制御装置、並びに前記記憶域毎に前記負荷情報を取得することを特徴とする付記１３記載のストレージ装置。
（付記１５）
前記抽出部は、前記ストレージ制御装置が制御する前記記憶域のうち、前記取得部が取得した前記負荷情報に基づいて、前記負荷が最も高い記憶域を通るアクセスパスのうち、前記第２のストレージ制御装置を通る前記優先度の低いアクセスパスを、前記切替候補アクセスパスとして選択することを特徴とする付記１４記載のストレージ装置。
【０１３２】
（付記１６）
前記ストレージ制御装置の前記負荷が低下したか、或いは前記第２の前記ストレージ制御装置の前記負荷が上昇した場合に、前記ストレージ装置内の全アクセスパスをリセットする復旧部をさらにそなえることを特徴とする付記１５記載のストレージ装置。
（付記１７）
記憶域と、ストレージ装置を制御するストレージ制御装置と、をそなえ、前記記憶域に対して複数のアクセスパスが設けられているストレージ装置を制御するストレージ制御プログラムであって、
前記複数のアクセスパスの負荷を示す負荷情報を取得し、
前記負荷情報に基づいて、前記記憶域に対する前記アクセスパスを切り替えるべきかどうかを判定し、
前記アクセスパスを切り替えるべきと判定された場合、切替候補アクセスパスを選択し、
前記選択された前記切替候補アクセスパスの切替を指示する、
処理をコンピュータに実行させることを特徴とするストレージ制御プログラム。
【０１３３】
（付記１８）
前記負荷情報に基づいて、前記アクセスパスの切替後に前記アクセスパスの切替の効果の有無を確認し、前記切替の効果がある場合には前記切替を継続し、前記切替の効果がない場合には前記アクセスパスの切替を元に戻す処理を前記コンピュータに実行させることを特徴とする付記１７記載のストレージ制御プログラム。
【０１３４】
（付記１９）
前記複数のアクセスパスは、前記記憶域に対するアクセスの優先度が異なり、
前記負荷情報に基づいて、前記複数のアクセスパスのうちの優先度の高いパスの前記負荷が所定値以上であり、前記複数のアクセスパスのうちの優先度の低いアクセスパスの前記負荷が所定値未満である場合に、前記記憶域に対する前記アクセスパスを切り替えるべきであると判定する処理を前記コンピュータに実行させることを特徴とする付記１７又は１８記載のストレージ制御プログラム。
【０１３５】
（付記２０）
前記複数のアクセスパスのうち、前記取得部が取得した前記負荷情報に基づいて、前記負荷の最も低いアクセスパスを、前記切替候補アクセスパスとして選択する処理を前記コンピュータに実行させることを特徴とする付記１７〜１９のいずれか１項に記載のストレージ制御プログラム。
【０１３６】
（付記２１）
前記ストレージ装置は、前記記憶域を複数有し、
前記ストレージ装置は、前記複数の記憶域のうちの一部分を制御し、
前記ストレージ制御装置が制御する記憶域毎に前記負荷情報を取得する処理を前記コンピュータに実行させることを特徴とする付記１７〜２０のいずれか１項に記載のストレージ制御プログラム。
【０１３７】
（付記２２）
前記負荷情報を前記ストレージ制御装置及び前記記憶域毎に取得する処理を前記コンピュータに実行させることを特徴とする付記２１記載のストレージ制御プログラム。
（付記２３）
前記ストレージ制御装置が制御する前記記憶域のうち、前記取得部が取得した前記負荷情報に基づいて、前記負荷が最も高い記憶域を通るアクセスパスのうち、前記ストレージ制御装置以外の第２のストレージ制御装置を通る前記優先度の低いアクセスパスを、前記切替候補アクセスパスとして選択する処理を前記コンピュータに実行させることを特徴とする付記２２記載のストレージ制御プログラム。
【０１３８】
（付記２４）
前記ストレージ制御装置の前記負荷が低下したか、或いは前記第２のストレージ制御装置の前記負荷が上昇した場合に、前記ストレージ装置内の全アクセスパスをリセットする処理を前記コンピュータに実行させることを特徴とする付記２３記載のストレージ制御プログラム。
【符号の説明】
【０１３９】
１                    情報処理システム
２                    ストレージ装置
３                    ホスト（上位装置）
１１                  ＣＭ（コンピュータ）
１２                  ＣＡ
１３                  ＤＡ
１４                  ＣＰＵ
１５                  メモリ
１６                  ＣＭ間接続
１７                  ＬＵＮ（記憶域）
１８                  ディスク
１９                  ＲＡＩＤ
２０                  ストレージ制御部
２１                  パス管理部（ストレージ制御装置）
２２                  キャッシュ制御部
２３                  ＲＡＩＤ制御部
２８                  ＣＭ負荷テーブル
２９                  ＬＵＮ負荷テーブル
２２１                負荷情報（２８，２９）取得部（取得部）
２２２                負荷判定部（判定部）
２２３                切替パス抽出部（抽出部）
２２４                パス切替指示部（切替指示部）
２２５                パス切替効果確認部（確認部）
２２６                全パス切戻し部（復旧部）
【図１】
2015184895.tif 000003
【図２】
2015184895.tif 000004
【図３】
2015184895.tif 000005
【図４】
2015184895.tif 000006
【図５】
2015184895.tif 000007
【図６】
2015184895.tif 000008
【図７】
2015184895.tif 000009
【図８】
2015184895.tif 000010
【図９】
2015184895.tif 000011
【図１０】
2015184895.tif 000012
【図１１】
2015184895.tif 000013
【図１２】
2015184895.tif 000014
【図１３】
2015184895.tif 000015
【図１４】
2015184895.tif 000016
【図１５】
2015184895.tif 000017
【図１６】
2015184895.tif 000018
【図１７】
2015184895.tif 000019
【図１８】
2015184895.tif 000020
【図１９】
2015184895.tif 000021
【図２０】
2015184895.tif 000022