IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-09
(45)【発行日】2024-07-18
(54)【発明の名称】情報処理装置およびパス制御方法
(51)【国際特許分類】
   G06F 13/14 20060101AFI20240710BHJP
   G06F 13/10 20060101ALI20240710BHJP
   G06F 3/06 20060101ALI20240710BHJP
   G06F 11/20 20060101ALI20240710BHJP
【FI】
G06F13/14 330E
G06F13/10 340A
G06F3/06 304B
G06F11/20 610
【請求項の数】 7
(21)【出願番号】P 2020143200
(22)【出願日】2020-08-27
(65)【公開番号】P2022038607
(43)【公開日】2022-03-10
【審査請求日】2023-05-11
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】渡邉 創
(72)【発明者】
【氏名】小橋 究
(72)【発明者】
【氏名】河野 秀和
(72)【発明者】
【氏名】桐ヶ谷 信和
(72)【発明者】
【氏名】河村 正人
(72)【発明者】
【氏名】千葉 博
(72)【発明者】
【氏名】市川 浩
(72)【発明者】
【氏名】山口 春樹
【審査官】松平 英
(56)【参考文献】
【文献】特開2010-092285(JP,A)
【文献】国際公開第2016/208014(WO,A1)
【文献】特開2015-184895(JP,A)
【文献】特表2012-504793(JP,A)
【文献】国際公開第2015/068299(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/06-3/08
11/16-11/20
12/00-12/128
13/10-13/18
H04L12/00-12/22
12/50-12/66
45/00-49/9057
(57)【特許請求の範囲】
【請求項1】
現用系の複数の第1パスと待機系の複数の第2パスとを介してストレージ装置に接続する通信部と、
前記複数の第1パスの一部が使用不能になった場合、前記複数の第1パスのうち使用可能な残りの第1パスおよび前記複数の第2パスのそれぞれについての通信負荷および前記ストレージ装置から割り当てられた処理能力を参照して、前記残りの第1パスに前記ストレージ装置へのアクセス要求を分配した場合における第1の応答時間を、前記残りの第1パスのそれぞれについての前記通信負荷および前記処理能力に基づいて推定するとともに、前記残りの第1パスと前記複数の第2パスとに対して前記ストレージ装置へのアクセス要求を分配した場合における第2の応答時間を、前記残りの第1パスおよび前記複数の第2パスのそれぞれについての前記通信負荷および前記処理能力に基づいて推定し、
前記第1の応答時間と前記第2の応答時間との比較結果に基づいて、前記残りの第1パスに前記ストレージ装置へのアクセス要求を分配するか、前記残りの第1パスと前記複数の第2パスとに対して前記ストレージ装置へのアクセス要求を分配するかを決定する処理部と、
を有する情報処理装置。
【請求項2】
前記処理部は、
前記第1の応答時間が所定の第1閾値以下の場合、前記残りの第1パスに前記ストレージ装置へのアクセス要求を分配し、
前記第1の応答時間が前記第1閾値を超える場合、前記第1の応答時間と前記第2の応答時間との比較結果に基づいて、前記残りの第1パスに前記ストレージ装置へのアクセス要求を分配するか、前記残りの第1パスと前記複数の第2パスとに対して前記ストレージ装置へのアクセス要求を分配するかを決定する、
請求項記載の情報処理装置。
【請求項3】
前記残りの第1パスおよび前記複数の第2パスのそれぞれについての前記処理能力は、前記残りの第1パスおよび前記複数の第2パスのそれぞれにおける前記ストレージ装置側の各通信ポートについての、現用系パスおよび待機系パスとしての使用状況と、前記各通信ポートにおける現時点での前記通信負荷とに応じて、前記ストレージ装置によって割り当てられる、
請求項1または2記載の情報処理装置。
【請求項4】
前記ストレージ装置は、前記情報処理装置からのアクセス対象となる記憶領域と、前記記憶領域に対するアクセスを制御する第1の制御装置および第2の制御装置とを有し、
前記記憶領域へのアクセス要求が前記複数の第1パスに送信された場合、前記第1の制御装置を介して前記記憶領域へのアクセスが行われ、前記記憶領域へのアクセス要求が前記複数の第2パスに送信された場合、前記第2の制御装置と前記第1の制御装置とを介して前記記憶領域へのアクセスが行われる、
請求項1乃至のいずれか1項に記載の情報処理装置。
【請求項5】
前記処理部は、
前記複数の第1パスおよび前記複数の第2パスのそれぞれについての前記処理能力を一定時間ごとに前記ストレージ装置から取得して、前記複数の第1パスについて新たに取得した前記処理能力と前記複数の第1パスについての現時点での前記通信負荷とに基づいて、前記複数の第1パスに対して前記ストレージ装置へのアクセス要求を分配した場合における第3の応答時間を推定し、
前記第3の応答時間が所定の第2閾値を超える場合、前記複数の第1パスと前記複数の第2パスとに対して前記ストレージ装置へのアクセス要求を分配する、
請求項1または2記載の情報処理装置。
【請求項6】
前記複数の第1パスにおける前記ストレージ装置側の通信ポートが、他の情報処理装置から前記ストレージ装置にアクセスするための待機系パスと兼用されており、
前記複数の第1パスについての前記処理能力は、前記通信ポートにおける前記情報処理装置からの現用系パスと前記他の情報処理装置からの待機系パスとによる使用状況と、前記通信ポートにおける前記情報処理装置および前記他の情報処理装置のそれぞれからのアクセス要求の負荷とに応じて、前記ストレージ装置によって割り当てられる、
請求項記載の情報処理装置。
【請求項7】
コンピュータが、
現用系の複数の第1パスと待機系の複数の第2パスとを介してストレージ装置に接続している状態において、前記複数の第1パスの一部が使用不能になった場合、前記複数の第1パスのうち使用可能な残りの第1パスおよび前記複数の第2パスのそれぞれについての通信負荷および前記ストレージ装置から割り当てられた処理能力を参照して、前記残りの第1パスに前記ストレージ装置へのアクセス要求を分配した場合における第1の応答時間を、前記残りの第1パスのそれぞれについての前記通信負荷および前記処理能力に基づいて推定するとともに、前記残りの第1パスと前記複数の第2パスとに対して前記ストレージ装置へのアクセス要求を分配した場合における第2の応答時間を、前記残りの第1パスおよび前記複数の第2パスのそれぞれについての前記通信負荷および前記処理能力に基づいて推定し、
前記第1の応答時間と前記第2の応答時間との比較結果に基づいて、前記残りの第1パスに前記ストレージ装置へのアクセス要求を分配するか、前記残りの第1パスと前記複数の第2パスとに対して前記ストレージ装置へのアクセス要求を分配するかを決定する、
パス制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置およびパス制御方法に関する。
【背景技術】
【0002】
コンピュータがストレージ装置にアクセスするためのアクセスパスを冗長化することで、障害発生に対する可用性を高めたり、通信負荷を分散させることができる。これらのうち可用性に関しては、アクセスパス冗長化の一例として、通常運用時に使用される現用系パスと、現用系パスの障害発生時に使用される待機系パスとが設けられることがある。
【0003】
このようなマルチパスの制御に関しては、次のような提案がある。例えば、アクティブ-アクティブポリシーおよびアクティブ-パッシブポリシーを含む互換可能なストレージデバイスにインテリジェント的に適合するように用いられるポートフェイルオーバポリシーによって、マルチパスプログラミングが行われるストレージサーバが提案されている。また、発行したI/O(Input/Output)に対してエラーが発生すると、待機系のHBA(Host Bus Adaptor)に対する電力供給を開始してから現用系のパスに同一のI/Oを再発行し、これに対してエラーが発生しなければ所定時間後に待機系のHBAに対する電力供給を停止するコンピュータシステムが提案されている。
【先行技術文献】
【特許文献】
【0004】
【文献】国際公開第2002/065290号
【文献】特開2010-198353号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、ストレージ装置に対する現用系パスおよび待機系パスのそれぞれが、複数のパスを含む場合がある。この構成では通常、現用系パスに含まれる一部のパスに障害が発生した場合には、現用系パスに含まれる残りのパスを使用してストレージ装置へのアクセスが実行される。しかし、この場合には、残りのパスのそれぞれにおける通信負荷が増大し、アクセス性能が大きく低下するという問題がある。
【0006】
1つの側面では、本発明は、現用系パスに含まれる一部のパスに障害が発生した場合におけるアクセス性能の低下を抑制することが可能な情報処理装置およびパス制御方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
1つの案では、次のような通信部と処理部とを有する情報処理装置が提供される。この情報処理装置において、通信部は、現用系の複数の第1パスと待機系の複数の第2パスとを介してストレージ装置に接続する。処理部は、複数の第1パスの一部が使用不能になった場合、複数の第1パスのうち使用可能な残りの第1パスおよび複数の第2パスのそれぞれについての通信負荷およびストレージ装置から割り当てられた処理能力に基づいて、残りの第1パスにストレージ装置へのアクセス要求を分配するか、残りの第1パスと複数の第2パスとに対してストレージ装置へのアクセス要求を分配するかを決定する。
【0008】
また、1つの案では、上記の情報処理装置と同様の処理をコンピュータが実行するパス制御方法が提供される。
【発明の効果】
【0009】
1つの側面では、現用系パスに含まれる一部のパスに障害が発生した場合におけるアクセス性能の低下を抑制できる。
【図面の簡単な説明】
【0010】
図1】第1の実施の形態に係るストレージシステムの構成例および処理例を示す図である。
図2】ストレージシステムの第1構成例を示す図である。
図3】サーバのハードウェア構成例を示す図である。
図4】第1構成例におけるアクセスパスを示す図である。
図5】ストレージシステムの第2構成例を示す図である。
図6】第2構成例におけるアクセスパスを示す図である。
図7】サーバおよびCMが備える処理機能の構成例を示す図である。
図8】ストレージ装置のリソース割り当て機能について説明するための図である。
図9】サーバ接続に応じたリソース割り当て処理を示すフローチャートの例である。
図10】I/O要求に応じたリソース割り当て処理を示すフローチャートの例(その1)である。
図11】I/O要求に応じたリソース割り当て処理を示すフローチャートの例(その2)である。
図12】CMの性能管理テーブルの構成例を示す図である。
図13】サーバの性能管理テーブルの構成例を示す図である。
図14】正常時の状態の例を示す図である。
図15】アクティブパスに障害が発生した状態の第1の例を示す図である。
図16】アクティブパスに障害が発生した状態の第2の例を示す図である。
図17】アクティブパスに障害が発生した状態の第3の例を示す図である。
図18】正常時の状態の例を示す図である。
図19】アクティブパスに障害が発生した状態の第4の例を示す図である。
図20】アクティブパスに障害が発生した状態の第5の例を示す図である。
図21】アクティブパスとスタンバイパスとを併用した場合の性能情報の推定値を示す図である。
図22】障害発生時のパス選択処理を示すフローチャートの例である。
図23】性能情報取得時のパス選択処理を示すフローチャートの例である。
【発明を実施するための形態】
【0011】
以下、本発明の実施の形態について図面を参照して説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係るストレージシステムの構成例および処理例を示す図である。図1に示すストレージシステムは、情報処理装置10とストレージ装置20を含む。
【0012】
情報処理装置10は、通信部11と処理部12を備える。通信部11は、ストレージ装置20と通信するための通信インタフェースである。処理部12は、例えば、プロセッサとして実現される。一方、ストレージ装置20は、HDD(Hard Disk Drive)やSSD(Solid State Drive)などの記憶装置によって実現される記憶領域21を備える。情報処理装置10の処理部12は、通信部11を介してストレージ装置20へアクセス要求を送信することで、記憶領域21にアクセスする。
【0013】
図1の例では、処理部12が記憶領域21にアクセスするためのアクセスパスとして、パス1a,1b,2a,2bが設けられている。図1では例として、通信部11はポートP1~P4を備え、ストレージ装置20はポートP11~P14を備える。そして、パス1aはポートP1とポートP11とを接続し、パス1bはポートP2とポートP12とを接続し、パス2aはポートP3とポートP13とを接続し、パス2bはポートP4とポートP14とを接続する。
【0014】
これらのパスのうち、パス1a,1bは現用系パスとして使用され、パス2a,2bは待機系パスとして使用される。処理部12は、パス1a,1b,2a,2bのどれを介してアクセス要求を送信するかを制御する機能を備えている。現用系のパス1a,1bがいずれも正常に通信可能な状態では、処理部12は、アクセス要求がパス1a,1bに分配されるように制御する。この状態では、待機系のパス2a,2bは使用されない。また、パス1a,1bの両方が障害によって使用不能になった場合、処理部12は、アクセス要求が待機系のパス2a,2bに分配されるように制御する。
【0015】
一方で、現用系のパス1a,1bの一方のみ使用不能になったときに、使用可能な残りのパスだけにアクセス要求を分配した場合には、残りのパスにアクセス要求が集中してしまうので、アクセス性能が大きく低下するという問題がある。例えば、現用系の残りのパスに加えて待機系のパス2a,2bも用いてアクセス要求も送信できれば、通信負荷が分散され、アクセス性能の低下を抑制できると考えられる。
【0016】
しかし、待機系のパス2a,2bでの通信性能が現用系と同等であるとは限らない。例えば、ストレージ装置20が記憶領域21へのアクセスを制御する複数の制御装置を備える場合がある。その構成において、例えば、現用系のパス1a,1bを用いた経路は複数の制御装置のうちの1つ(第1の制御装置)だけを経由して記憶領域21に到達する。一方、待機系のパス2a,2bを用いた経路は複数の制御装置のうちの他の1つ(第2の制御装置)を経由し、さらに第1の制御装置を経由して記憶領域21に到達する、という場合がある。この場合、待機系のパス2a,2bにアクセス要求を送信した場合の応答速度は、現用系のパス1a,1bを用いた場合より遅くなる。
【0017】
あるいは、例えば、待機系のパス2a,2bの接続先であるポートP13,P14が、ストレージ装置20にアクセスする他の情報処理装置からのアクセスパス(例えば現用系パス)としても利用されている場合がある。この場合でも、他の情報処理装置からの通信状況によっては、待機系のパス2a,2bにアクセス要求を送信した場合の応答速度は、現用系のパス1a,1bを用いた場合より遅くなることがあり得る。
【0018】
そこで、処理部12は、現用系のパス1a,1bの一方が使用不能になったとき、残りのパスおよび待機系のパス2a,2bのそれぞれについての通信負荷3aおよび処理能力3bに基づいて、適切なパスを選択してアクセス要求を分配する。ここで、処理能力3bは、上記のパスのそれぞれに対してストレージ装置20から割り当てられる。例えば、上記各パスのストレージ装置20側のポートについての、現用系パスおよび待機系パスとしての使用状況や、それらのポートでの通信負荷などに基づいて、パスごとに処理能力が割り当てられる。処理部12は、パス1a,1b,2a,2bのそれぞれに割り当てられた処理能力3bを、例えば定期的にストレージ装置20から取得する。また、通信負荷3aは、ストレージ装置20からその検出値が取得されてもよいし、情報処理装置10側で検出されてもよい。
【0019】
以下、図1に示すように、パス1aが障害発生により使用不能になったものとする。このとき、処理部12は、現用系パスのうち使用可能な残りのパス1b、および待機系のパス2a,2bのそれぞれについての通信負荷3aおよび処理能力3bを参照する。そして、処理部12は、これらの通信負荷3aおよび処理能力3bに基づき、現用系の残りのパス1aにアクセス要求を分配する(パターンA)か、またはパス1aと待機系のパス2a,2bとにアクセス要求を分配する(パターンB)かを決定する。これにより、アクセス性能の低下を適切に抑制できる。
【0020】
例えば、処理部12は、通信負荷3aおよび処理能力3bから、パターンA,Bのどちらを選択した方がアクセス要求に対する応答時間を短縮できるかを推定できる。したがって、既存のパスを効率的に用いながら、アクセス性能の低下を適切に抑制できる。あるいは、処理部12は、現用系の残りのパス1aにアクセス要求を分配すると応答時間が著しく低下する(例えば所定閾値を超える)と推定される場合に、パターンA,Bのどちらを選択した方がアクセス要求に対する応答時間を短縮できるかを推定してもよい。この場合、既存のパスを効率的に用いながら、アクセス性能を一定以上に維持できる。
【0021】
〔第2の実施の形態〕
次に、第2の実施の形態に係るストレージシステムについて説明する。第2の実施の形態では、「第1構成例」と「第2構成例」という2つのシステム構成を例示する。
【0022】
図2は、ストレージシステムの第1構成例を示す図である。図2に示すストレージシステムは、サーバ100とストレージ装置200を含む。ストレージ装置200は、CM(Controller Module)201,202とドライブ部203を備える。サーバ100とCM201,202とは、図示しないネットワークを介して接続されている。このネットワークは、例えば、FC(Fibre Channel)を用いたSAN(Storage Area Network)である。
【0023】
ドライブ部203には、HDDやSSDなどの不揮発性の記憶装置が複数台搭載されている。CM201,202は、サーバ100からのI/O要求に応じてドライブ部203の記憶装置にアクセスするストレージ制御装置である。また、CM201とCM202は互いに通信可能になっている。なお、以下の説明では、CM201,202をそれぞれCM#0,CM#1と記載する場合がある。サーバ100は、業務処理などの所定の処理を実行するサーバコンピュータであり、CM201,202に対してI/O要求を送信することでドライブ部203にアクセス可能になっている。
【0024】
ここで、サーバ100はHBA#0~#7を備えている。HBA#0~#7は、ストレージ装置200と通信するためのインタフェースであり、それぞれ個別の通信ポートを備える。一方、CM201は通信ポートとしてポート#0~#3を備えている。また、CM202は通信ポートとしてポート#0~#3を備えている。そして、サーバ100のHBA#0~#3がそれぞれCM201のポート#0~#3に接続され、サーバ100のHBA#4~#7がそれぞれCM202のポート#0~#3に接続されている。
【0025】
図3は、サーバのハードウェア構成例を示す図である。サーバ100は、例えば、図3に示すような構成のコンピュータとして実現可能である。図3に示すように、サーバ100は、プロセッサ101、RAM(Random Access Memory)102、HDD103、グラフィックインタフェース(I/F)104、入力インタフェース(I/F)105、読み取り装置106および通信インタフェース(I/F)107を備える。
【0026】
プロセッサ101は、サーバ100全体を統括的に制御する。プロセッサ101は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)またはPLD(Programmable Logic Device)である。また、プロセッサ101は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
【0027】
RAM102は、サーバ100の主記憶装置として使用される。RAM102には、プロセッサ101に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、プロセッサ101による処理に必要な各種データが格納される。
【0028】
HDD103は、サーバ100の補助記憶装置として使用される。HDD103には、OSプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、SSDなどの他の種類の不揮発性記憶装置を使用することもできる。
【0029】
グラフィックインタフェース104には、表示装置104aが接続されている。グラフィックインタフェース104は、プロセッサ101からの命令にしたがって、画像を表示装置104aに表示させる。表示装置としては、液晶ディスプレイや有機EL(ElectroLuminescence)ディスプレイなどがある。
【0030】
入力インタフェース105には、入力装置105aが接続されている。入力インタフェース105は、入力装置105aから出力される信号をプロセッサ101に送信する。入力装置105aとしては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【0031】
読み取り装置106には、可搬型記録媒体106aが脱着される。読み取り装置106は、可搬型記録媒体106aに記録されたデータを読み取ってプロセッサ101に送信する。可搬型記録媒体106aとしては、光ディスク、光磁気ディスク、半導体メモリなどがある。
【0032】
通信インタフェース107は、ネットワーク300を介してCM201,202などの他の装置との間でデータの送受信を行う。図2に示した第1構成例では、通信インタフェース107としてHBA#0~#7が搭載されている。
【0033】
以上のようなハードウェア構成によって、サーバ100の処理機能を実現することができる。なお、CM201,202についても図3に示すような構成のコンピュータとして実現可能である。
【0034】
図4は、第1構成例におけるアクセスパスを示す図である。まず、図4に示すデータ領域211は、ドライブ部203に搭載された記憶装置によって実現される記憶領域であり、例えば、RAID(Redundant Array of Inexpensive Disks)によって管理される論理ボリュームである。ストレージ装置200では、ドライブ部203によって実現されるデータ領域ごとに、そのデータ領域に直接的にアクセスしてI/O処理を実行する「担当CM」が決められている。第1構成例では、CM#0がデータ領域211の担当CMであるものとする。この場合、データ領域211に対する直接的なI/O処理はCM#0によって実行される。
【0035】
また、サーバ100からデータ領域211にアクセスするためのアクセスパスは、アクティブパスPaとスタンバイパスPsとを有するマルチパス構成となっている。基本的に、アクティブパスPaは通常運用時に使用されるアクセスパスであり、スタンバイパスPsはアクティブパスPaに異常が生じた場合に使用されるアクセスパスである。
【0036】
第1構成例では図4に示すように、アクティブパスPaは、サーバ100のHBA#0~#3からCM#0のポート#0~#3を経由してデータ領域211に到達する経路となっている。また、スタンバイパスPsは、サーバ100のHBA#4~#7からCM#1のポート#0~#3を経由してデータ領域211に到達する経路となっている。
【0037】
ただし、上記のようにデータ領域211の担当CMはCM#0であることから、スタンバイパスPsは、CM#1からさらにCM#0を経由してデータ領域211に到達するようになっている。このため、スタンバイパスPsを用いてデータ領域211へのアクセスが行われた場合、CM#0とCM#1との間の通信(CM間通信)が発生することになるので、アクティブパスPaを用いた場合よりアクセス速度は低くなる。
【0038】
なお、図4の例では、サーバ100とCM#0との間のアクティブパスPaは、4組の通信ポートのセットを用いた4つの通信経路を有しており、これによって通信経路が冗長化されている。同様に、サーバ100とCM#1との間のスタンバイパスPsも、4組の通信ポートのセットを用いた4つの通信経路を有しており、これによって通信経路が冗長化されている。
【0039】
次に、第2構成例について説明する。
図5は、ストレージシステムの第2構成例を示す図である。第2構成例では、ストレージ装置200に対して2台のサーバ100a,100bが接続されている点で第1構成例とは異なる。また、サーバ100a,100bとストレージ装置200のCM201,202とは、スイッチ310を介して接続されている。サーバ100a,100bはいずれも、スイッチ310およびCM201,202を介してドライブ部203にアクセス可能になっている。なお、以下の説明では、サーバ100a,100bをそれぞれサーバ#0、#1と記載する場合がある。
【0040】
図5に示すように、サーバ100aは、HBA#0~#3を備えている。サーバ100bは、HBA#0~#3を備えている。スイッチ310は、ポート#0~#11を備えている。CM201は、ポート#0,#1を備えている。CM202は、ポート#0,#1を備えている。
【0041】
そして、サーバ100aのHBA#0~#3はそれぞれスイッチ310のポート#0~#3に接続され、サーバ100bのHBA#0~#3はそれぞれスイッチ310のポート#4~#7に接続されている。また、スイッチ310のポート#8,#9はCM201のポート#0,#1に接続され、スイッチ310のポート#10,#11はCM202のポート#0,#1に接続されている。
【0042】
さらに、スイッチ310においては、ポート#0,#1がそれぞれポート#8,#9に接続され、ポート#2,#3がそれぞれポート#10,#11に接続されている。また、ポート#4,#5がそれぞれポート#8,#9に接続され、ポート#6,#7がそれぞれポート#10,#11に接続されている。
【0043】
図6は、第2構成例におけるアクセスパスを示す図である。図6(A)は、サーバ#0からデータ領域へのアクセスパスを示しており、図6(B)は、サーバ#1からデータ領域へのアクセスパスを示している。
【0044】
図6(A)に示すデータ領域212、および図6(B)に示すデータ領域213は、いずれもドライブ部203に搭載された記憶装置によって実現される記憶領域であり、例えば、RAIDによって管理される論理ボリュームである。第2構成例では、データ領域212はサーバ#0からのアクセス対象となる記憶領域であり、データ領域213はサーバ#1からのアクセス対象となる記憶領域であるものとする。また、第2構成例では、CM#0がデータ領域212の担当CMであり、CM#1がデータ領域213の担当CMであるものとする。この場合、データ領域212に対する直接的なI/O処理はCM#0によって実行され、データ領域213に対する直接的なI/O処理はCM#1によって実行される。
【0045】
図6(A)に示すように、サーバ#0からデータ領域212にアクセスするためのアクセスパスは、アクティブパスPa1とスタンバイパスPs1とを有するマルチパス構成となっている。基本的に、アクティブパスPa1は通常運用時に使用されるアクセスパスであり、スタンバイパスPs1はアクティブパスPa1に異常が生じた場合に使用されるアクセスパスである。
【0046】
アクティブパスPa1は、サーバ#0のHBA#0,#1からスイッチ310のポート#0,#1(図示を省略)、スイッチ310のポート#8,#9(図示を省略)、CM#0のポート#0,#1を経由してデータ領域212に到達する経路となっている。また、スタンバイパスPs1は、サーバ#0のHBA#2,#3からスイッチ310のポート#2,#3(図示を省略)、スイッチ310のポート#10,#11(図示を省略)、CM#1のポート#0,#1を経由してデータ領域212に到達する経路となっている。
【0047】
ただし、上記のようにデータ領域212の担当CMはCM#0であることから、スタンバイパスPs1は、CM#1からさらにCM#0を経由してデータ領域212に到達するようになっている。このため、スタンバイパスPs1を用いてデータ領域212へのアクセスが行われた場合にはCM間通信が発生することになる。
【0048】
一方、図6(B)に示すように、サーバ#1からデータ領域213にアクセスするためのアクセスパスは、アクティブパスPa2とスタンバイパスPs2とを有するマルチパス構成となっている。基本的に、アクティブパスPa2は通常運用時に使用されるアクセスパスであり、スタンバイパスPs2はアクティブパスPa2に異常が生じた場合に使用されるアクセスパスである。
【0049】
アクティブパスPa2は、サーバ#1のHBA#2,#3からスイッチ310のポート#6,#7(図示を省略)、スイッチ310のポート#10,#11(図示を省略)、CM#1のポート#0,#1を経由してデータ領域213に到達する経路となっている。また、スタンバイパスPs2は、サーバ#1のHBA#0,#1からスイッチ310のポート#4,#5(図示を省略)、スイッチ310のポート#8,#9(図示を省略)、CM#0のポート#0,#1を経由してデータ領域213に到達する経路となっている。
【0050】
ただし、上記のようにデータ領域213の担当CMはCM#1であることから、スタンバイパスPs2は、CM#0からさらにCM#1を経由してデータ領域213に到達するようになっている。このため、スタンバイパスPs2を用いてデータ領域213へのアクセスが行われた場合にはCM間通信が発生することになる。
【0051】
以上の第1構成例および第2構成例のいずれも、あるサーバからあるデータ領域へのアクティブパスには物理的に独立した複数の伝送路が含まれている。例えば第1構成例では、サーバ100からデータ領域211へのアクティブパスPaには、サーバ100のHBA#0~#3をそれぞれ経由する伝送路が含まれる。このようにアクティブパスに含まれる伝送路が冗長化されている場合には、その中の一部の伝送路に障害が発生した場合でも、生存している残りの伝送路を用いてデータ領域との間のI/O処理を継続できる。このため一般的に、アクティブパス内のすべて伝送路が使用不能になって初めて、スタンバイパスを使用したI/O処理が実行される。
【0052】
しかしながら、アクティブパスに含まれる一部の伝送路が使用不能になり、残りの伝送路だけを使用してすべてのI/O処理が実行されるので、各伝送路における通信負荷が過大になり、I/O処理性能が低下するという問題がある。また、アクティブパス内のすべての伝送路が使用不能になるまでスタンバイパスが使用されないので、リソースが無駄になっている。
【0053】
そこで、本実施の形態では、サーバは、アクティブパスに含まれる少なくとも1つの伝送路が使用不能になった場合には、生存している残りの伝送路だけでなくスタンバイパスの伝送路も使用してI/O処理を実行できるようにする。これにより、伝送路のリソースを有効活用してI/O処理性能の低下をできるだけ抑制する。
【0054】
ただし、前述のようにスタンバイパスを使用したI/O処理ではCM間通信が発生するので、スタンバイパスに含まれる個々の伝送路を用いた場合には、アクティブパスに含まれる個々の伝送路を用いた場合より応答速度が低くなる。また、第2構成例のように、スタンバイパスにおけるストレージ装置200側の通信ポートは他のサーバのアクティブパスとしても使用されている場合がある。このような理由から、アクティブパスに含まれる一部の伝送路が使用不能になったときにスタンバイパスも使用することでI/O処理性能をどの程度改善できるかは、状況によって異なる。
【0055】
スタンバイパスは本来予備のアクセスパスであるので、アクティブパスの一部の伝送路が生存している状態でむやみに使用することは好ましくない。しかも、第2構成例のようにあるサーバのスタンバイパスの経路の一部が他のサーバのアクティブパスと重複している場合には、前者のパスを使用することが後者のパスでのI/O処理性能に影響を与えてしまう。したがって、アクティブパスの一部の伝送路が生存している状態では、必要性が高い場合にのみスタンバイパスが使用されるように制御できることが望ましい。
【0056】
ここで、本実施の形態のストレージ装置200は、CMの各通信ポートについて、I/O処理による使用状況に応じて、サーバの各HBAからのI/O要求に対するリソースの割り当て(処理量の配分比率)を制御する機能(リソース割り当て制御機能)を備えている。この機能では、リソース割り当て量とI/O処理負荷の検出値に基づいて、通信ポートを経由するアクセスパスを用いたI/O処理の処理能力が計算される。そこで、本実施の形態ではこのような機能を利用し、ストレージ装置200が、CMの通信ポートごとの現在のI/O処理負荷およびI/O処理能力を性能情報としてサーバに通知できるようにする。そして、サーバは、アクティブパスの一部の伝送路が使用不能になったとき、通知された性能情報に基づいて、アクティブパスの残りの伝送路だけでなくスタンバイパスも用いてI/O処理を実行した方がよいか否かを判定する。これにより、リソース使用のバランスをとりながら障害発生に伴うI/O処理性能の低下を抑制できるようにする。
【0057】
図7は、サーバおよびCMが備える処理機能の構成例を示す図である。図7では例として、第1構成例におけるサーバ100およびCM201,202の処理機能を示している。
【0058】
まず、CM201は、記憶部220とRAID制御部230を備える。記憶部220は、例えばRAMやHDDなどのCM201が備える記憶装置の記憶領域として実現される。RAID制御部230は、例えば、CM201が備えるプロセッサが所定のプログラムを実行することで実現される。
【0059】
記憶部220には、性能管理テーブル221が記憶される。性能管理テーブル221には、CM201が備える通信ポートと、その通信ポートに接続されたサーバのHBAとの組み合わせごとに性能情報が登録される。なお、第2構成例のようにCM201に複数のサーバが接続されている場合、性能管理テーブル221には、CM201側の通信ポートと、接続された各サーバの各HBAとの組み合わせごとにレコードが登録される。また、図示しないが、記憶部220にはこの他に、アクセス元のサーバと、アクセス先のデータ領域と、アクティブパスおよびスタンバイパスに対応する通信ポートとの対応関係を示す情報が記憶される。
【0060】
RAID制御部230は、サーバから受信したI/O要求に応じて、I/O処理対象のデータ領域に対するI/O処理を実行する。このとき、ドライブ部203の記憶装置をRAIDによって管理しながらI/O処理を実行する。また、RAID制御部230は、CM201自身が担当していないデータ領域に対するI/O要求をスタンバイパスを介して受信した場合には、そのI/O要求を担当CMに転送する。
【0061】
さらに、RAID制御部230は、リソース割り当て部231を備える。リソース割り当て部231は、受信したI/O要求に対するリソースの割り当てを、I/O処理によるリソースの使用状況に応じて制御する。ここで言う「リソースの割り当て」とは、I/O要求に応じたI/O処理で使用されるリソースの割り当てを示し、例えば、プロセッサコアの割り当て数、キャッシュの使用量などを示す。リソース割り当て部231は、CM201が備える通信ポートと、その通信ポートに接続されたサーバのHBAとの組み合わせごとに、リソースの割り当て量を決定する。
【0062】
また、リソース割り当て部231は、上記の組み合わせごとにI/O要求に応じた処理負荷(以下「I/O負荷」と記載する場合がある)を検出する。さらに、リソース割り当て部231は、リソースの割り当て量とI/O負荷とに基づいて、I/O処理の処理能力や、I/O要求に対する応答時間の推定値を計算する。リソース割り当て部231は、I/O処理の処理能力、I/O負荷および応答時間を、性能情報として性能管理テーブル221に登録する。また、リソース割り当て部231は、サーバからの要求に応じて、性能管理テーブル221に登録された性能情報をサーバに通知する。
【0063】
CM202は、記憶部220aとRAID制御部230aを備える。記憶部220aには、性能管理テーブル221aが記憶される。性能管理テーブル221aは、CM201の性能管理テーブル221と同様に、CM202が備える通信ポートと、その通信ポートに接続されたサーバのHBAとの組み合わせごとに性能情報が登録される。
【0064】
RAID制御部230aは、CM201のRAID制御部230と同様の処理機能であり、サーバから受信したI/O要求に応じてI/O処理対象のデータ領域に対するI/O処理を実行する。また、RAID制御部230aは、リソース割り当て部231aを備える。リソース割り当て部231aは、CM201のリソース割り当て部231と同様に、CM202が備える通信ポートと、その通信ポートに接続されたサーバのHBAとの組み合わせごとに、リソースの割り当て、I/O負荷の検出、応答時間の算出を行う。また、リソース割り当て部231aは、リソースの割り当て量、I/O負荷および応答時間を、性能情報として性能管理テーブル221aに登録する。また、リソース割り当て部231aは、サーバからの要求に応じて、性能管理テーブル221aに登録された性能情報をサーバに通知する。
【0065】
サーバ100は、記憶部110、I/O制御部121およびパス制御部122を備える。記憶部110は、例えばRAM102やHDD103などのサーバ100が備える記憶装置の記憶領域として実現される。I/O制御部121およびパス制御部122は、例えば、サーバ100が備えるプロセッサ101が所定のプログラムを実行することで実現される。
【0066】
記憶部110には、性能管理テーブル111が記憶される。性能管理テーブル111は、CM201,202のリソース割り当て部231,231aから取得された性能情報を保持する。性能情報は、サーバ100の通信ポート(HBA)と、ストレージ装置200の通信ポート(具体的にはCMの通信ポート)との組み合わせごとに登録される。
【0067】
I/O制御部121は、データ領域に対するI/O要求を発行する。例えば、サーバ100が業務サーバの場合、I/O制御部121は、業務アプリケーションからの要求に応じてI/O要求を発行する。パス制御部122は、I/O制御部121から発行されたI/O要求を送信するためのアクセスパスを選択し、選択されたアクセスパスを介してI/O要求を送信する。
【0068】
パス制御部122は、例えば、アクティブパス内のすべての伝送路が生存している場合、それらの伝送路にI/O要求を均等に送信する。一方、パス制御部122は、アクティブパス内の少なくとも1つが使用不能である場合、性能管理テーブル111に基づき、アクティブパス内の残りの伝送路のみを用いてI/O要求を送信するか、スタンバイパスの伝送路も用いてI/O要求を送信するかを決定する。
【0069】
なお、図示しないが、第2構成例のサーバ100a,100bも、図7に示したサーバ100と同様の処理機能を備える。ここで、サーバ100aの性能管理テーブル111には、サーバ100aの通信ポート(HBA)と、ストレージ装置200の通信ポートとの組み合わせごとに登録される。また、サーバ100bの性能管理テーブル111には、サーバ100bの通信ポート(HBA)と、ストレージ装置200の通信ポートとの組み合わせごとに登録される。
【0070】
図8は、ストレージ装置のリソース割り当て機能について説明するための図である。ここでは例として、CM201,202のうちCM201のリソース割り当て部231による処理について説明する。
【0071】
リソース割り当て部231は、CM201の通信ポート(ポート#0~#3)ごとに、I/O要求に対するリソースの割り当てを適応的に変化させる。RAID制御部230は、各通信ポートから受信したI/O要求に対応するI/O処理を、リソースの割り当て量に応じて実行する。これにより、リソースの割り当て量に応じたI/O性能が発揮されるようになる。
【0072】
図8の状態1では、CM201の通信ポートにアクティブパスからのI/O要求のみ入力されており、この通信ポートがアクティブパスだけに使用されている。この状態ではアクティブパスからのI/O要求のみ処理されればよいので、この状態でアクティブパスに割り当てられるリソースを100%とする。すなわち、リソース割り当て部231は、通信ポートがアクティブパスだけに使用されている場合には、アクティブパスに100%のリソースを割り当てる。
【0073】
また、図8の状態2では、CM201の通信ポートにスタンバイパスからのI/O要求のみ入力されており、この通信ポートがスタンバイパスだけに使用されている。この状態では、状態1での処理能力の割り当て量を基準とすると、リソース割り当て部231はスタンバイパスに対して50%のリソースを割り当てるものとする。これは、スタンバイパスからI/O要求を受信した場合にはCM間通信が発生するので、アクティブパスから受信した場合と比較してI/O処理にかかる時間が長くなるからである。このため、CM間通信処理に残りの50%のリソースを割り当てると考える。
【0074】
なお、割り当てが制御されるリソースとしては、例えば、プロセッサコア、キャッシュなどを適用可能である。例えば50%のリソースが割り当てられた場合には、100%割り当てられた場合と比較して、具体的には次のような制御が行われる。例えば、受信したI/O要求に応じたI/O処理に対して、50%の数のプロセッサコアが割り当てられる。あるいは、そのI/O処理に対して、50%の容量のキャッシュが割り当てられる。これにより、I/O負荷が同じ(単位時間当たりのI/O要求の受信数が同じ)場合には、100%のリソースが割り当てられた場合と比較して、概ね50%程度のI/O性能が発揮されるようになる。
【0075】
また、図8の状態3では、CM201の通信ポートに、アクティブパスからのI/O要求とスタンバイパスからのI/O要求の両方が入力されており、この通信ポートがアクティブパスとスタンバイパスに共用されている。この状態では、状態1でのリソースの割り当て量を基準とすると、リソース割り当て部231は、アクティブパスに対して50%のリソースを割り当て、スタンバイパスに対してその半分の25%のリソースを割り当てるものとする。これにより、アクティブパスからのI/O負荷とスタンバイパスからのI/O負荷とが同じ場合、スタンバイパスからのI/O要求に応じたI/O処理と比較して、アクティブパスからのI/O要求に応じたI/O処理が概ね2倍の性能を発揮するようになる。なお、スタンバイパスからのI/O要求に応じたCM間通信処理に対しては、残り25%のリソースを割り当てると考える。
【0076】
リソース割り当て部231は、以上のようなリソース割り当て量とI/O負荷の検出値とに基づいて、CM201の通信ポートと接続先のHBAとの組み合わせによって表される伝送路ごとに、I/O処理の処理能力を算出する。本実施の形態では、1つの通信ポートでの処理能力の最大値を「100」とするので、処理能力をパーセントによって表す。
【0077】
図8の状態1では、アクティブパスだけからI/O要求が受信されるので、アクティブパスに含まれる伝送路の処理能力が100%と算出される。また、図8の状態2では、スタンバイパスだけからI/O要求が受信されるので、スタンバイパスに含まれる伝送路の処理能力が50%と算出される。
【0078】
一方、図8の状態3では、1つの通信ポートに対してアクティブパスの伝送路とスタンバイパスの伝送路の両方からI/O処理が受信される。この状態では、各伝送路に対するリソース割り当て量と伝送路ごとのI/O負荷とに基づいて、各伝送路の処理能力が算出される。例えば、通信ポートにアクティブパスおよびスタンバイパスの2つの伝送路が接続されている場合、各伝送路における処理能力は、(伝送路に対するリソース割り当て量)×(通信ポートにおけるI/O負荷全体に対する、伝送路におけるI/O負荷の比率)×2によって算出される。
【0079】
例えば、2つの伝送路におけるI/O負荷が同じ場合、各伝送路の処理能力はリソース割り当て量と同じになる。リソース割り当て量が「50%」であれば、50%×(1/2)×2=50%となる。また、アクティブパスの伝送路のI/O負荷とスタンバイパスの伝送路のI/O負荷との比が1:2の場合、前者の処理能力は50%×(1/3)×2=約33%となり、後者の処理能力は25%×(2/3)×2=約33%となる。
【0080】
このように、処理能力は、リソース割り当て量とI/O負荷の検出値とから算出される、伝送路を用いて実行可能なI/O処理量(I/O要求の処理数)を示す。また、処理能力は、伝送路の使用状況とI/O負荷とに基づいて割り当てられる、実行可能なI/O処理量ということもできる。
【0081】
以下、リソース割り当て部231の処理についてフローチャートを用いて説明する。
図9は、サーバ接続に応じたリソース割り当て処理を示すフローチャートの例である。
[ステップS11]RAID制御部230は、通信ポートにサーバのHBAが接続されたことを検出する。
【0082】
[ステップS12]リソース割り当て部231は、検出されたサーバがアクティブパスによって接続されたかを判定する。この判定は、アクセス元のサーバと、アクセス先のデータ領域と、アクティブパスおよびスタンバイパスに対応する通信ポートとの対応関係を示す情報(図示せず)を参照することで実行される。サーバがアクティブパスによって接続された場合、処理がステップS13に進められ、サーバがスタンバイパスによって接続された場合、処理がステップS14に進められる。
【0083】
[ステップS13]リソース割り当て部231は、検出されたサーバのHBAからのI/O要求に応じたI/O処理に対して、リソースを100%割り当てる。
[ステップS14]リソース割り当て部231は、検出されたサーバのHBAからのI/O要求に応じたI/O処理に対してリソースを50%割り当てるとともに、そのI/O処理に伴うCM間通信処理にリソースを50%割り当てる。
【0084】
以上のステップS13またはステップS14で割り当てられた、通信ポートとサーバのHBAとの組み合わせごとのリソース割り当て量は、RAID制御部230が参照するRAMなどの記憶域に設定されて、RAID制御部230に適用される。RAID制御部230はこれ以後、設定された処理能力の割り当て量に基づいて、受信したI/O要求に対するI/O処理を実行する。
【0085】
[ステップS15]リソース割り当て部231は、ステップS13またはステップS14で割り当てられた、通信ポートとサーバのHBAとの組み合わせごとのリソース割り当て量を、その組み合わせに対する処理能力の初期値として性能管理テーブル221の対応するレコードにそのまま登録する。
【0086】
図10図11は、I/O要求に応じたリソース割り当て処理を示すフローチャートの例である。図10図11に示すように、処理能力の割り当て量は通信ポートにおけるI/O要求の受信状況に応じて適宜変更される。
【0087】
[ステップS21]RAID制御部230は、通信ポートがサーバからのI/O要求を受信したことを検出する。
[ステップS22]リソース割り当て部231は、I/O要求によるアクセス先のデータ領域が、CM201の担当領域かを判定する。アクセス先のデータ領域がCM201の担当領域である場合、アクティブパスからI/O要求を受信しており、処理がステップS23に進められる。一方、アクセス先のデータ領域がCM201の担当領域でない場合(本実施の形態ではCM202の担当領域である場合)、スタンバイパスからI/O要求を受信しており、処理が図11のステップS31に進められる。
【0088】
[ステップS23]リソース割り当て部231は、現時刻から一定時間前の時刻までの期間に、該当通信ポート(ステップS21でI/O要求が受信された通信ポート)で受信されたI/O要求に応じたCM間通信が行われたかを判定する。CM間通信が行われた場合、処理がステップS25に進められ、CM間通信が行われていない場合、処理がステップS24に進められる。
【0089】
[ステップS24]ステップS23でNoと判定された場合、直近の一定時間では該当通信ポートがアクティブパスだけに使用されている。このため、リソース割り当て部231は、現サーバ(ステップS21でのI/O要求の送信元サーバ)からのI/O要求に応じたI/O処理に対してリソースを100%割り当てる。
【0090】
[ステップS25]ステップS23でYesと判定された場合、直近の一定時間では該当通信ポートがアクティブパスとスタンバイパスの両方に使用されている。このケースでは、リソース割り当て部231は、該当通信ポートをスタンバイパスとして使用している他のサーバからのI/O要求に応じたI/O処理に対して、リソースを25%割り当てる。また、リソース割り当て部231は、このI/O処理に伴うCM間通信処理に対してリソースを25%割り当てる。
【0091】
ステップS25における「他のサーバ」とは、ステップS21でのI/O要求の送信元サーバ(現サーバ)とは別のサーバである。例えば、図6のケースで該当通信ポートをCM#0のポート#0、現サーバをサーバ#0とした場合、他のサーバはサーバ#1となり、他のサーバのHBAはサーバ#1のHBA#0となる。
【0092】
[ステップS26]リソース割り当て部231は、現サーバからのI/O要求に応じたI/O処理に対してリソースを50%割り当てる。
ステップS24、ステップS25,S26、後述するステップS33、後述するステップS34,S35のいずれかで割り当てられたリソース割り当て量は、RAID制御部230が参照するRAMなどの記憶域に上書きして設定され、RAID制御部230に適用される。
【0093】
[ステップS27]リソース割り当て部231は、該当通信ポートでのI/O負荷(例えば、直近の一定時間におけるI/O要求の受信数)を、接続先のHBAごとに検出する。リソース割り当て部231は、該当通信ポートと接続先のHBAとの各組み合わせについて、現在のリソース割り当て量とI/O負荷の検出値とに基づいて処理能力を算出する。また、リソース割り当て部231は、処理能力とI/O負荷とに基づいてI/O要求に対する応答時間を算出する。リソース割り当て部231は、処理能力、I/O負荷および応答時間を、性能管理テーブル221のレコードのうち、I/O要求が受信された通信ポートと、接続先のHBAとの組み合わせに対応するレコードに対し、性能情報として上書きして登録する。
【0094】
[ステップS28]RAID制御部230は、更新されたリソースの割り当て量に基づいて、I/O要求に対するI/O処理を実行する。
以下、図11を用いて説明を続ける。
【0095】
[ステップS31]リソース割り当て部231は、現時刻から一定時間前の時刻までの期間に、該当通信ポートで受信されたI/O要求に応じたCM間通信が行われたかを判定する。CM間通信が行われた場合には、直近にステップS32以降の処理が実行されており、この処理による処理能力の割り当て量がそのまま適用されればよいので、処理が図10のステップS27に進められる。一方、CM間通信が行われていない場合、処理がステップS32に進められる。
【0096】
[ステップS32]リソース割り当て部231は、現時刻から一定時間前の時刻までの期間に、該当通信ポートにおいて他のサーバからのI/O要求が受信されたかを判定する。ステップS32における「他のサーバ」とは、ステップS21でのI/O要求の送信元サーバ(現サーバ)とは別のサーバであり、該当通信ポートをアクティブパスとして使用しているサーバである。他のサーバからのI/O要求が受信された場合、処理がステップS34に進められ、他のサーバからのI/O要求が受信されていない場合、処理がステップS33に進められる。
【0097】
[ステップS33]ステップS32でNoと判定された場合、直近の一定時間では、図8の状態2のように該当通信ポートがスタンバイパスとしてだけ使用されている。この場合、リソース割り当て部231は、現サーバからのI/O要求に応じたI/O処理に対してリソースを50%割り当てる。
【0098】
[ステップS34]ステップS32でYesと判定された場合、直近の一定時間では該当通信ポートがアクティブパスとスタンバイパスの両方に使用されている。このケースでは、リソース割り当て部231は、該当通信ポートをアクティブパスとして使用している他のサーバからのI/O要求に応じたI/O処理に対して、リソースを50%割り当てる。
【0099】
ステップS32で述べたように、ステップS34における「他のサーバ」とは、該当通信ポートをアクティブパスとして使用しているサーバである。例えば、図6のケースで該当通信ポートをCM#0のポート#0、現サーバをサーバ#1とした場合、他のサーバはサーバ#0となり、他のサーバのHBAはサーバ#0のHBA#0となる。
【0100】
[ステップS35]リソース割り当て部231は、現サーバからのI/O要求に応じたI/O処理に対してリソースを25%割り当てる。また、リソース割り当て部231は、このI/O処理に伴うCM間通信処理に対してリソースを25%割り当てる。この後、処理が図10のステップS27に進められる。
【0101】
以上の図10図11の処理により、CM201の各通信ポートについて、サーバ側の通信ポート(HBA)からのI/O要求に応じたI/O処理に対するリソースの割り当てが、CM201の通信ポートの使用状況に応じて適応的に制御される。また、リソースの割り当て量とI/O負荷の検出値とに基づいて、通信ポートとHBAとの組み合わせで表される伝送路ごとにI/O処理の処理能力が更新される。
【0102】
なお、図示しないが、性能管理テーブル221は、I/O要求の受信に関係なく、CM201の通信ポートごとにステップS27の性能情報更新処理を一定時間間隔で実行する。これにより、性能管理テーブル221の性能情報は定期的に更新される。
【0103】
また、上記の図8図11に関する記載ではCM201のリソース割り当て部231の処理について説明したが、CM202のリソース割り当て部231aも上記と同様の処理を実行する。ただし、リソース割り当て部231aはCM202の各通信ポートについて上記処理を実行する。
【0104】
図12は、CMの性能管理テーブルの構成例を示す図である。図12ではCM201の性能管理テーブル221を例示するが、CM202の性能管理テーブル221aも図12と同様のデータ構成を有する。
【0105】
図12に示すように、性能管理テーブル221には、サーバWWN(World Wide Name)とポート番号との組み合わせごとに、処理能力、I/O負荷、応答時間が対応付けて登録される。
【0106】
サーバWWNは、接続先のサーバの通信ポート(HBA)を識別するための番号である。ポート番号は、CM201が備える通信ポートの識別番号を示す。図12の例では、同じポート番号にそれぞれ2つのサーバWWNが対応付けられており、これは例えば、図5のように各通信ポートに異なるサーバのHBAが接続されるケースを示している。
【0107】
処理能力は、リソース割り当て量とI/O負荷とに基づいて算出される、対応するHBAからのI/O要求に応じたI/O処理に対する処理能力を示す。I/O負荷は、対応するHBAからのI/O要求によるI/O負荷の検出値を示す。応答時間は、処理能力とI/O負荷とに基づいて算出される、I/O要求に対する応答時間の推定値を示す。
【0108】
CM201のリソース割り当て部231は、サーバから性能情報の通知要求を受信すると、性能管理テーブル221に登録された処理能力、I/O負荷および応答時間をサーバに通知する。例えば図12において、サーバWWN「aaaa」のHBAからの通知要求をポート番号「0」の通信ポートが受信すると、サーバWWN「aaaa」およびポート番号「0」に対応付けられた処理能力「100%」、I/O負荷「100」、応答時間「10ms」が、サーバWWN「aaaa」のHBAに対して通知される。
【0109】
次に、サーバ側の処理について説明する。
まず、図13は、サーバの性能管理テーブルの構成例を示す図である。図13に示すように、性能管理テーブル111には、サーバWWNとポート番号との組み合わせごとに、パス種別、パス状態、処理能力、I/O負荷、応答時間が対応付けて登録される。また、サーバに複数のストレージ装置が接続されている場合には、図13の例のように、サーバWWNとポート番号に加えてさらに、ストレージ装置を識別するストレージ番号が組み合わされる。
【0110】
サーバWWNは、性能管理テーブル111を記憶する自サーバが備える通信ポート(HBA)を識別するための番号である。ポート番号は、接続先のCMの通信ポートの識別番号を示す。図13の例では、サーバ「aaaa」「bbbb」「cccc」「dddd」に対応付けられたポート番号「0」~「3」と、サーバ「eeee」「ffff」「gggg」「hhhh」に対応付けられたポート番号「0」~「3」とは、それぞれ異なるCMのポート番号を示している。
【0111】
パス種別は、サーバWWNが示すHBAからポート番号が示すCMの通信ポートへのアクセスパスが、アクティブパスとスタンバイパスのどちらとして使用されているかを示す。パス状態は、アクセスパスが使用可能な状態(Enable)か使用不能な状態(Disable)かを示す。
【0112】
処理能力、I/O負荷および応答時間の各項目には、対応するアクセスパスを介してCMから通知された情報が登録される。処理能力は、対応するアクセスパスを介したI/O要求に応じたI/O処理に対する処理能力を示す。I/O負荷は、対応するアクセスパスを介したI/O要求によるI/O負荷の検出値を示す。応答時間は、処理能力とI/O負荷とに基づいて算出された、I/O要求に対する応答時間の推定値を示す。
【0113】
サーバのパス制御部122は、サーバがCMと接続した際、およびその後の一定時間間隔で、接続先のCMの通信ポートごとに性能情報の通知要求を出力する。パス制御部122は、通知要求に応じて通知された性能情報を性能管理テーブル111に上書きして登録する。
【0114】
<第1構成例>
次に、第1構成例におけるサーバ100の処理について説明する。
図14は、正常時の状態の例を示す図である。図14では、アクティブパス内のすべての伝送路が正常に通信可能な状態になっている。この場合、サーバ100のパス制御部122は、データ領域211に対するI/O要求をアクティブパス内の各伝送路に均等に分配して送信する。
【0115】
また、図14のテーブル111aは、サーバ100が保持する性能管理テーブル111の情報のうち、性能情報を抜き出して記載したものである。前述のように、アクティブパスは、サーバ100のHBA#0~#3からそれぞれCM#0のポート#0~#3に到達する伝送路を含み、スタンバイパスは、サーバ100のHBA#4~#7からそれぞれCM#1のポート#0~#3に到達する伝送路を含む。初期状態では、アクティブパスの各伝送路に100%の処理能力が割り当てられ、スタンバイパスの各伝送路に50%の処理能力が割り当てられる。
【0116】
また、図14の例では、アクティブパスの各伝送路に100%の処理能力が割り当てられた状態で、I/O負荷(例えば、単位時間におけるI/O要求の発行数)を示す指標が「100」である場合、I/O要求に対する応答時間が10msになるものとする。10msは、応答時間の上限値(最高性能)であるものとする。
【0117】
図15は、アクティブパスに障害が発生した状態の第1の例を示す図である。この図15では例として、図14の状態から、サーバ100のHBA#0,#1からそれぞれCM#0のポート#0,#1に到達する2つの伝送路に障害が発生し、この伝送路が使用不能になったとする。この場合、サーバ100のパス制御部122は、障害発生前における性能情報に基づき、アクティブパス内の生存している残りの伝送路だけを使用してI/O要求を送信した場合と、それに加えてスタンバイパス内の伝送路も使用してI/O要求を送信した場合と両方についてのI/O性能(応答時間)を推定する。
【0118】
図15のテーブル111b1は、アクティブパス内の残りの伝送路だけを使用した場合の性能情報の推定値を示す。この場合、パス制御部122は、アクティブパス内の4つの伝送路を使用して送信していたI/O要求を、HBA#2,#3からの2つの伝送路に均等に分配する。この場合、残りの2つの伝送路それぞれにおけるI/O負荷が2倍になるため、応答時間も2倍になると推定される。すなわち、各伝送路のI/O負荷の指標は「200」となり、応答時間は20msとなる。
【0119】
一方、図15のテーブル111b2は、アクティブパス内の残りの伝送路に加えてスタンバイパスの伝送路も使用した場合の性能情報の推定値を示す。この場合、パス制御部122は、アクティブパス内の残りの伝送路とスタンバイパスの伝送路のそれぞれに対して、I/O性能(応答時間)が均等になるようにI/O要求を分配する。
【0120】
スタンバイパスの各伝送路には50%の処理能力が割り当てられているので、スタンバイパスの各伝送路におけるI/O負荷(I/O要求の発行数)がアクティブパスの各伝送路の1/2になるようにすれば、各伝送路の応答時間が均等になると推定される。この条件はテーブル111b2に示すように、アクティブパスの各伝送路のI/O負荷を「100」とし、スタンバイパスの各伝送路のI/O負荷を「50」とすることで満たされる。このとき、いずれの伝送路でも応答時間が10msになると推定される。
【0121】
ここで、アクティブパスでの応答時間の上限閾値(許容限界値)が20msに設定されているとする。この場合、アクティブパスの残りの伝送路だけを使用した場合でも、応答時間は上限閾値を超えない。このことから、パス制御部122は、スタンバイパスを使用する必要はないと判断し、データ領域211に対するI/O要求をアクティブパスの残りの伝送路に均等に分配して送信する。
【0122】
図16は、アクティブパスに障害が発生した状態の第2の例を示す図である。この図16では例として、図15でアクティブパス内の残りの伝送路だけを使用して通信が行われた状態から、さらにサーバ100のHBA#2からそれぞれCM#0のポート#2に到達する伝送路に障害が発生し、この伝送路が使用不能になったとする。この場合、サーバ100のパス制御部122は、障害発生前における性能情報に基づき、アクティブパス内の生存している残りの伝送路だけを使用してI/O要求を送信した場合と、それに加えてスタンバイパス内の伝送路も使用してI/O要求を送信した場合の両方についてのI/O性能(応答時間)を推定する。
【0123】
図16のテーブル111c1は、アクティブパス内の残りの伝送路だけを使用した場合の性能情報の推定値を示す。この場合、パス制御部122は、アクティブパス内の2つの伝送路を使用して送信していたI/O要求を、HBA#3からの1つの伝送路だけを使用して送信する。この場合、図15のテーブル111b1の状態と比較して残り1つの伝送路におけるI/O負荷が2倍になるため、応答時間も2倍になると推定される。すなわち、各伝送路のI/O負荷の指標は「400」となり、応答時間は40msとなって、上限閾値である20msを超えてしまう。
【0124】
一方、図16のテーブル111c2は、アクティブパス内の残りの伝送路に加えてスタンバイパスの伝送路も使用した場合の性能情報の推定値を示す。この場合、パス制御部122は、アクティブパス内の残りの伝送路とスタンバイパスの伝送路のそれぞれに対して、I/O性能(応答時間)が均等になるようにI/O要求を分配する。
【0125】
前述のように、スタンバイパスの各伝送路には50%の処理能力が割り当てられているので、スタンバイパスの各伝送路におけるI/O負荷がアクティブパスの各伝送路の1/2になるようにすれば、各伝送路の応答時間が均等になると推定される。この条件はテーブル111c2に示すように、アクティブパスの伝送路のI/O負荷を「133」とし、スタンバイパスの各伝送路のI/O負荷を「67」とすることで満たされる。このとき、いずれの伝送路でも応答時間が13msになると推定される。
【0126】
このように、アクティブパスの伝送路における応答時間は、アクティブパスの残りの伝送路だけを使用した場合と比較して短縮されるので、パス制御部122は、スタンバイパスを使用した方がよいと判断する。パス制御部122は、データ領域211に対するI/O要求を、アクティブパスの残り1つの伝送路のI/O負荷が「133」となり、スタンバイパスの各伝送路のI/O負荷が「67」となるように分配して送信する。
【0127】
図17は、アクティブパスに障害が発生した状態の第3の例を示す図である。上記の図14図16では、データ領域211に対するアクセスパス全体で合計「400」という比較的大きなI/O負荷がかかっていた。このような場合には、図16に示したようにアクティブパス内の多くの伝送路が使用不能になった場合、スタンバイパスを併用する必要性が高いと判定される。しかし、アクセスパス全体のI/O負荷がより小さい場合には、アクティブパス内の多くの伝送路が使用不能になっても、スタンバイパスを使用せずにアクティブパスの残りの伝送路だけを使用しても、I/O性能を許容値以上に保持することができる場合がある。
【0128】
図17ではテーブル111d1に示すように、アクティブパス内のすべての伝送路が正常であるとき、各伝送路のI/O負荷が「25」であったとする。この状態では、各伝送路での応答時間は最大性能に対応する10msとなる。この状態から、サーバ100のHBA#0~#2からそれぞれCM#0のポート#0~#2に到達する3つの伝送路に障害が発生し、この伝送路が使用不能になったとする。この場合、サーバ100のパス制御部122は、障害発生前における性能情報に基づき、アクティブパス内の生存している残り1つの伝送路だけを使用してI/O要求を送信した場合と、それに加えてスタンバイパス内の伝送路も使用してI/O要求を送信した場合と両方についてのI/O性能(応答時間)を推定する。
【0129】
図17のテーブル111d2は、アクティブパス内の残り1つの伝送路だけを使用した場合の性能情報の推定値を示す。この場合、パス制御部122は、アクティブパス内の4つの伝送路を使用して送信していたI/O要求を、HBA#3からの1つの伝送路だけを使用して送信する。この場合、テーブル111d1の状態と比較して残り1つの伝送路におけるI/O負荷が4倍の「100」になるが、この状態では応答時間は10msに維持され、上限閾値である20msを超えない。このため、パス制御部122は、スタンバイパスを使用する必要はないと判断し、データ領域211に対するI/O要求をアクティブパスの残り1つの伝送路だけを使用して送信する。
【0130】
以上のように、サーバは、アクティブパスの伝送路が使用不能になった場合には、アクティブパス内の残りの伝送路だけでなくスタンバイパスも使用することで、スタンバイパスを有効利用しつつ、I/O性能の低下を抑制することができる。ここで、スタンバイパスを使用するケースは、アクティブパス内の残りの伝送路だけを使用した場合に各伝送路のI/O負荷が上限閾値を超えた場合に限定される。このため、予備のアクセスパスであるスタンバイパスを必要性の高い場合にのみ使用して、I/O要求を送信することができる。また、アクティブパス内の残りの伝送路だけを使用する方法と、スタンバイパスも使用する方法の両方について伝送路のI/O負荷が推定され、I/O負荷が低くなる方法が選択される。これにより、I/O性能を改善できる場合のみスタンバイパスが使用されるようになり、スタンバイパスの無駄な使用を回避できる。
【0131】
このような処理により、伝送路の利用効率が向上し、システム全体のI/O性能をバランスよく維持することが可能になる。そして、このような効果を、アクセスパスの構成を変更することなく、パス選択制御用のソフトウェアを変更するだけで実現することができる。
【0132】
<第2構成例>
次に、第2構成例におけるサーバ#0,#1(サーバ100a,100b)の処理について説明する。
【0133】
図18は、正常時の状態の例を示す図である。図18では、サーバ#0,#1のいずれについてもアクティブパス内のすべての伝送路が正常に通信可能な状態になっている。この場合、サーバ#0のパス制御部122は、データ領域212に対するI/O要求を対応するアクティブパス内の各伝送路に均等に分配して送信する。また、サーバ#1のパス制御部122は、データ領域213に対するI/O要求を対応するアクティブパス内の各伝送路に均等に分配して送信する。
【0134】
また、図18のテーブル111eは、サーバ#0,#1が保持する性能管理テーブル111の情報のうち、性能情報を抜き出して記載したものである。前述のように、サーバ#0のアクティブパスは、サーバ#0のHBA#0,#1からそれぞれCM#0のポート#0,#1に到達する伝送路を含む。また、サーバ#0のスタンバイパスは、サーバ#0のHBA#2,#3からそれぞれCM#1のポート#0,#1に到達する伝送路を含む。一方、サーバ#1のアクティブパスは、サーバ#1のHBA#0,#1からそれぞれCM#1のポート#0,#1に到達する伝送路を含む。また、サーバ#1のスタンバイパスは、サーバ#1のHBA#2,#3からそれぞれCM#0のポート#0,#1に到達する伝送路を含む。初期状態では、アクティブパスの各伝送路に100%の処理能力が割り当てられ、スタンバイパスの各伝送路に50%の処理能力が割り当てられる。
【0135】
また、図18の例では、アクティブパスの各伝送路に100%の処理能力が割り当てられた状態で、I/O負荷を示す指標が「100」である場合、I/O要求に対する応答時間が10msになるものとする。10msは、応答時間の上限値(最高性能)であるものとする。
【0136】
図19は、アクティブパスに障害が発生した状態の第4の例を示す図である。この図19では例として、図18の状態から、サーバ#0のHBA#0からCM#0のポート#0に到達する伝送路に障害が発生し、この伝送路が使用不能になったとする。この場合、サーバ#0のパス制御部122は、障害発生前における性能情報に基づき、アクティブパス内の生存している残り1つの伝送路だけを使用してI/O要求を送信した場合と、それに加えてスタンバイパス内の伝送路も使用してI/O要求を送信した場合の両方についてのI/O性能(応答時間)を推定する。
【0137】
図19のテーブル111fは、サーバ#0のアクティブパス内の残り1つの伝送路だけを使用した場合の性能情報の推定値を示す。この場合、残り1つの伝送路におけるI/O負荷が2倍になるため、応答時間も2倍になると推定される。すなわち、残り1つの伝送路のI/O負荷の指標は「200」となり、応答時間は20msとなる。
【0138】
ここで、サーバ#0のアクティブパスでの応答時間の上限閾値(許容限界値)が20msに設定されているとする。この場合、テーブル111fに示すように、アクティブパスの残りの伝送路だけを使用した場合でも応答時間は上限閾値を超えない。このため、サーバ#0のパス制御部122は、スタンバイパスを使用する必要はないと判断し、データ領域212に対するI/O要求をアクティブパスの残り1つの伝送路に送信する。
【0139】
図20は、アクティブパスに障害が発生した状態の第5の例を示す図である。この図20では例として、図19でサーバ#0のアクティブパス内の残り1つの伝送路だけを使用して通信が行われた状態から、さらにサーバ#0のHBA#1からCM#0のポート#1に到達する伝送路に障害が発生し、この伝送路が使用不能になったとする。この場合、サーバ#0のパス制御部122は、アクティブパス内のすべての伝送路が使用不能であることから、データ領域212に対するI/O要求をスタンバイパスの各伝送路に均等に分配して送信する。このとき、スタンバイパスの各伝送路のI/O負荷がともに「100」となる。
【0140】
これにより、CM#1のポート#0,#1は、サーバ#1のアクティブパスだけでなく、サーバ#0のスタンバイパスにも使用される状態となる。すると、CM#1のリソース割り当て部231aによる処理能力の割り当ては次のように変化する。すなわち、サーバ#1のアクティブパスに100%の処理能力を割り当てた状態から、サーバ#1のアクティブパスに50%の処理能力を割り当て、サーバ#0のスタンバイパスに25%の処理能力を割り当てる状態に変化する。
【0141】
このような割り当て量の変化により、図20のテーブル111gに示すように、サーバ#0のスタンバイパス内の各伝送路における応答時間は80msとなる。また、サーバ#1のアクティブパス内の各伝送路における応答時間は20msとなり、I/O性能が低下する。
【0142】
サーバ#1のパス制御部122は、CM#1からの定期的な性能情報の取得により、上記のようにアクティブパスの各伝送路に対する処理能力の割り当て量が小さくなり、I/O性能が低下したことを認識する。ここで、サーバ#1のアクティブパスでの応答時間の上限閾値(許容限界値)が15msに設定されているとする。この場合、処理能力の割り当て量の縮小により、アクティブパス内の各伝送路における応答時間が上限閾値を超えた状態となる。サーバ#1のパス制御部122は、このことを判定すると、取得した変更後の性能情報に基づき、アクティブパスに加えてスタンバイパス内の伝送路も使用してI/O要求を送信した場合のI/O性能(応答時間)を推定する。
【0143】
図21は、アクティブパスとスタンバイパスとを併用した場合の性能情報の推定値を示す図である。CMからの定期的な性能情報の取得に応じてスタンバイパスも併用する場合、サーバ#1のパス制御部122は、スタンバイパスの各伝送路に処理能力の上限までI/O要求を分配する。
【0144】
図21のテーブル111h1に示すように、スタンバイパスの各伝送路には50%の処理能力が割り当てられているので、各伝送路のI/O負荷が「50」となるようにI/O要求を分配すれば、各伝送路での応答時間が最短の10msになると推定される。このとき、アクティブパスの各伝送路でのI/O負荷を「50」まで低下させることができ、これによって各伝送路での応答時間を上限閾値以下の10msに短縮することができる。したがって、サーバ#1のパス制御部122は、スタンバイパスも使用した方がよいと判断し、データ領域213に対するI/O要求を、アクティブパスおよびスタンバイパスの各伝送路のI/O負荷が「50」となるように分配して送信する。
【0145】
以上の第2構成例のように、CMの同一通信ポートがアクティブパスにもスタンバイパスにも使用されている場合、アクティブパスのすべての伝送路が生存している状態でも、スタンバイパスの使用状況によってアクティブパスのI/O性能が許容値より低下する場合がある。テーブル111h1に示したように、サーバは、アクティブパスがすべて生存している状態でも、I/O性能が許容値より低下した場合にはスタンバイパスも使用してI/O要求を送信することで、I/O性能を回復させることができる。
【0146】
ところで、CM#1のリソース割り当て部231aは、サーバ#1のアクティブパスにおけるI/O負荷が低下したことを検知すると、このアクティブパスの各伝送路での処理能力と、同じ通信ポートを使用するサーバ#0のスタンバイパスの各伝送路での処理能力の割り当て比率を再計算する。この再計算により、図21のテーブル111h2に示すように、サーバ#1のアクティブパスの各伝送路には33%の処理能力が割り当てられ、サーバ#0のスタンバイパスの各伝送路には33%の処理能力が割り当てられることになる。これにより、サーバ#0のスタンバイパスでの応答時間は60msに短縮され、I/O性能が高まる。
【0147】
このように、サーバ#1のアクティブパスでのI/O性能を回復させるために当該パスでのI/O負荷を小さくすると、結果的に、CM側で同じ通信パスを使用するサーバ#0のスタンバイパスでのI/O性能も向上させることができる場合がある。すなわち、伝送路が使用不能になった場合だけでなく、恒常的にI/O性能を監視し、著しく低下した場合にはスタンバイパスも利用してI/O要求を送信するようにすることで、伝送路の利用効率が向上し、システム全体のI/O性能をバランスよく維持することが可能になる。
【0148】
なお、テーブル111h2の状態ではサーバ#1のアクティブパスでの応答時間は15msに悪化する。この例では応答時間が上限閾値以下に収まっているが、仮に当該パスでの応答時間が上限閾値を超えた場合には、サーバ#1のパス制御部122は、更新された処理能力に基づいてI/O負荷の配分を見直す。このようにして個々の伝送路でのI/O性能が適宜最適化されていく。
【0149】
次に、サーバの処理についてフローチャートを用いて説明する。
図22は、障害発生時のパス選択処理を示すフローチャートの例である。
[ステップS41]サーバのパス制御部122は、HBAに接続する伝送路の障害発生を検出する。すると、ステップS42以降の処理が実行される。
【0150】
[ステップS42]パス制御部122は、アクティブパスに含まれる伝送路の中に生存している(Enableである)伝送路があるかを判定する。生存している伝送路がある場合、処理がステップS43に進められ、生存している伝送路がない場合、処理がステップS48に進められる。
【0151】
[ステップS43]パス制御部122は、性能管理テーブル111を参照し、アクティブパス内の生存している伝送路にI/O要求を均等に分配した場合(I/O負荷を均等にした場合)における各伝送路の応答時間Taを算出する。
【0152】
[ステップS44]パス制御部122は、算出された応答時間Taが、あらかじめ決められた上限閾値以下であるかを判定する。応答時間Taが上限閾値以下である場合、処理がステップS47に進められ、応答時間Taが上限閾値を超える場合、処理がステップS45に進められる。
【0153】
[ステップS45]パス制御部122は、性能管理テーブル111を参照し、アクティブパス内の生存している伝送路とスタンバイパス内の生存している伝送路のそれぞれにおける応答時間が均等になるように、I/O要求を分配した場合の各伝送路の応答時間Tbを算出する。
【0154】
[ステップS46]パス制御部122は、算出された応答時間Tbが応答時間Ta以下であるかを判定する。応答時間Tbが応答時間Ta以下である場合、処理がステップS47に進められ、応答時間Tbが応答時間Taより長い場合、処理がステップS48に進められる。
【0155】
[ステップS47]パス制御部122は、アクティブパス内の生存している伝送路のそれぞれに対して、I/O要求を均等に振り分ける。
[ステップS48]パス制御部122は、アクティブパス内の生存している伝送路とスタンバイパス内の生存している伝送路のそれぞれに対して、各伝送路での応答時間が均等になるようにI/O要求を振り分ける。
【0156】
図23は、性能情報取得時のパス選択処理を示すフローチャートの例である。図23の処理は、一定時間間隔で繰り返し実行される。
[ステップS51]サーバのパス制御部122は、1つのデータ領域に対応するアクティブパスおよびスタンバイパスの各伝送路についての性能情報を通知するように、各伝送路における接続先のCMに要求する。CMからはこの要求に応じて性能情報が通知され、パス制御部122は、この性能情報を取得すると、性能管理テーブル111に上書きして登録する。
【0157】
[ステップS52]パス制御部122は、アクティブパスに含まれる伝送路の中に生存している伝送路があるかを判定する。生存している伝送路がある場合、処理がステップS53に進められ、生存している伝送路がない場合、図23の処理が終了する。
【0158】
[ステップS53]パス制御部122は、アクティブパス内の生存している各伝送路のI/O負荷が過大かを判定する。具体的には、性能管理テーブル111に登録された該当伝送路のI/O負荷が所定の上限閾値を超える場合に、I/O負荷が過大と判定される。この上限閾値は、図22のステップS44で使用される値と同じでよい。I/O負荷が過大である場合、処理がステップS54に進められ、I/O負荷が過大でない場合、図23の処理が終了する。
【0159】
[ステップS54]パス制御部122は、アクティブパス内の生存している伝送路とスタンバイパス内の生存している伝送路のそれぞれに対してI/O要求を振り分ける。このとき、パス制御部122は、スタンバイパスの各伝送路に対して処理能力の上限までI/O要求が振り分けられるように、分配比率を調整する。
【0160】
なお、他の例として、ステップS54では、図22のステップS48と同様に、アクティブパス内の生存している伝送路とスタンバイパス内の生存している伝送路のそれぞれに対して、各伝送路での応答時間が均等になるようにI/O要求が振り分けられてもよい。
【0161】
なお、上記の各実施の形態に示した装置(例えば、情報処理装置10、サーバ100,100a,100b、CM201,202)の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、磁気テープなどがある。光ディスクには、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク(Blu-ray Disc:BD、登録商標)などがある。
【0162】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CDなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0163】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
【符号の説明】
【0164】
1a,1b,2a,2b パス
3a 通信負荷
3b 処理能力
10 情報処理装置
11 通信部
12 処理部
20 ストレージ装置
21 記憶領域
P1~P4,P11~P14 パス
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23