(57)【要約】【課題】ストレージシステムのＩ／Ｏポートの使用帯域を監視し、複数のＩ／Ｏポートの使用帯域で一定以上の使用帯域の差が生じた際に各Ｉ／Ｏポートの使用帯域が均一になるようにストレージシステムに接続しているホスト計算機をリダイレクトする。【解決手段】  ストレージシステム１のコントローラ１６又は管理計算機１００がストレージシステム１の各Ｉ／Ｏポート１５の使用帯域と、各Ｉ／Ｏポート１５に接続している各ホスト計算機２の使用帯域とを監視し、使用帯域が最大のＩ／Ｏポート１５から最小のＩ／Ｏポートへ、Ｉ／Ｏポートの使用帯域の差分に近い使用帯域のホスト計算機２をリダイレクトする。【選択図】    図１
2008083939.tif 000002
【特許請求の範囲】
【請求項１】
複数のホスト計算機と、前記複数のホスト計算機に接続するための複数のポートを有しストレージネットワークを介して前記複数のホスト計算機にボリュームを提供する少なくとも一つのストレージシステムとを有する計算機システムであって、
前記ストレージシステムは、
前記複数のポート間の負荷の差を監視するポート負荷監視部と、
前記複数のホスト計算機と前記ストレージシステムとの間の接続パスの負荷を監視するパス負荷監視部と、
前記複数のポート間の負荷の差が所定値以上になると、前記複数のポートのうち最も負荷の高いポートに接続している前記ホスト計算機を識別する識別部と、
前記識別した少なくとも一つの前記ホスト計算機と前記ストレージシステムとの間の接続を切断する接続制御部と、
前記ストレージシステムとの接続を切断された前記ホスト計算機が前記ストレージシステムへ再接続要求を送信してきたときに、前記複数のポートのうち最も負荷の低いポートにリダイレクトする指示を、前記再接続要求をしてきた前記ホスト計算機に送信する送信部と、
を備える計算機システム。
【請求項２】
請求項１に記載の計算機システムであって、
前記識別部は、前記複数のポートのうち最も負荷の高いポートと最も負荷の低いポートとの平均負荷を算出し、前記最も負荷の低いポート又は前記最も負荷の高いポートの負荷と前記平均負荷との差分負荷を算出し、前記複数のホスト計算機のうち前記ポートに加える負荷が前記差分負荷に最も近い前記ホスト計算機を選択する、計算機システム。
【請求項３】
請求項１又は請求項２に記載の計算機システムであって、
前記ストレージシステムは、前記識別した前記ホスト計算機を前記最も負荷の低いポートへ移行したときの前記複数のポート間の負荷の差を算出し、前記識別した前記ホスト計算機を前記最も負荷の低いポートへ移行したときの前記複数のポート間の負荷の差が所定値以上の場合に前記ホスト計算機を識別する処理を実行する、計算機システム。
【請求項４】
複数のホスト計算機と、前記複数のホスト計算機に接続するための複数のポートを有しストレージネットワークを介して前記複数のホスト計算機にボリュームを提供する少なくとも一つのストレージシステムと、前記複数のホスト計算機と前記ストレージシステムとのそれぞれに管理ネットワークを介して接続する管理計算機とを有する計算機システムであって、
前記管理計算機は、
前記複数のポート間の負荷の差を監視するポート負荷監視部と、
前記複数のポートに接続している前記ホスト計算機が前記ポートに加えている負荷を監視するホスト負荷監視部と、
前記複数のポート間の負荷の差が所定値以上になると、前記複数のポートのうち最も負荷の高いポートに接続している前記ホスト計算機を識別する識別部と、
前記識別した少なくとも一つの前記ホスト計算機に対し、前記複数のポートのうち最も負荷の低いポートに再接続する指示を送信する送信部と、
を備え、
前記ホスト計算機は、前記管理計算機による再接続指示にて指定された前記ポートへ再接続する、計算機システム。
【請求項５】
請求項４に記載の計算機システムであって、
前記識別部は、前記複数のポートのうち最も負荷の高いポートと、最も負荷の低いポートとの平均負荷を算出し、前記最も負荷の低いポート又は前記最も負荷の高いポートの負荷と、前記平均負荷との差分負荷を算出し、前記複数のホスト計算機のうち前記ポートに加える負荷が前記差分負荷に最も近い前記ホスト計算機を選択する、計算機システム。
【請求項６】
請求項４又は請求項５に記載の計算機システムであって、
前記管理計算機は、前記識別した前記ホスト計算機を前記最も負荷の低いポートへ移行したときの前記複数のポート間の負荷の差を算出し、前記識別した前記ホスト計算機を前記最も負荷の低いポートへ移行したときの前記複数のポート間の負荷の差が所定値以上の場合に前記ホスト計算機を識別するステップを再度実行する、計算機システム。
【請求項７】
請求項４乃至請求項６のうち何れか１項に記載の計算機システムであって、
前記ホスト計算機は、前記管理計算機が送信する再接続指示により指定される前記ストレージシステムの前記ポートへ再接続した後に、それまでに前記ホスト計算機が使用していた前記ポートへのアクセスが終了するときに、前記それまでに使用していたポートと前記ホスト計算機との接続を切断する、計算機システム。
【請求項８】
複数のホスト計算機と、前記複数のホスト計算機に接続するための複数のポートを有しストレージネットワークを介して前記複数のホスト計算機にボリュームを提供する少なくとも一つのストレージシステムとを有する計算機システムにおける動的ポート割当方法であって、
前記複数のポート間の負荷の差を前記ストレージシステムが監視するステップと、
前記複数のホスト計算機と前記ストレージシステムとの間の接続パスの負荷を前記ストレージシステムが監視するステップと、
前記複数のポート間の負荷の差が所定値以上になると、前記複数のポートのうち最も負荷の高いポートに接続している前記ホスト計算機を前記ストレージシステムが識別するステップと、
前記識別した少なくとも一つの前記ホスト計算機と前記ストレージシステムとの間の接続を前記ストレージシステムが切断するステップと、
前記ストレージシステムとの接続を切断された前記ホスト計算機が前記ストレージシステムへ再接続要求を送信してきたときに、前記複数のポートのうち最も負荷の低いポートにリダイレクトする指示を、前記再接続要求をしてきた前記ホスト計算機に前記ストレージシステムが送信するステップと、
を備える動的ポート割当方法。
【請求項９】
請求項８に記載の動的ポート割当方法であって、
前記ホスト計算機を識別するステップは、
前記複数のポートのうち最も負荷の高いポートと最も負荷の低いポートとの平均負荷を算出するステップと、
前記最も負荷の低いポート又は前記最も負荷の高いポートの負荷と前記平均負荷との差分負荷を算出するステップと、
前記複数のホスト計算機のうち前記ポートに加える負荷が前記差分負荷に最も近い前記ホスト計算機を選択するステップと、
を含む動的ポート割当方法。
【請求項１０】
請求項８又は請求項９に記載の動的ポート割当方法であって、
前記識別した前記ホスト計算機を前記最も負荷の低いポートへ移行したときの前記複数のポート間の負荷の差を算出するステップと、
前記識別した前記ホスト計算機を前記最も負荷の低いポートへ移行したときの前記複数のポート間の負荷の差が所定値以上の場合に前記ホスト計算機を識別するステップを再度実行するステップと、
を更に備える動的ポート割当方法。
【請求項１１】
複数のホスト計算機と、前記複数のホスト計算機に接続するための複数のポートを有しストレージネットワークを介して前記複数のホスト計算機にボリュームを提供する少なくとも一つのストレージシステムと、前記複数のホスト計算機と前記ストレージシステムとのそれぞれに管理ネットワークを介して接続する管理計算機とを有する計算機システムにおける動的ポート割当方法であって、
前記管理計算機が前記複数のポート間の負荷の差を監視するステップと、
前記複数のポートに接続している前記ホスト計算機が前記ポートに加えている負荷を前記管理計算機が監視するステップと、
前記複数のポート間の負荷の差が所定値以上になると、前記複数のポートのうち最も負荷の高いポートに接続している前記ホスト計算機を前記管理計算機が識別するステップと、
前記識別した少なくとも一つの前記ホスト計算機に対し、前記複数のポートのうち最も負荷の低いポートに再接続する指示を前記管理計算機が送信するステップと、
前記管理計算機による再接続指示にて指定された前記ポートへ前記ホスト計算機が再接続するステップと、
を備える動的ポート割当方法。
【請求項１２】
請求項１１に記載の動的ポート割当方法であって、
前記ホスト計算機を識別するステップは、
前記複数のポートのうち最も負荷の高いポートと、最も負荷の低いポートとの平均負荷を算出するステップと、
前記最も負荷の低いポート又は前記最も負荷の高いポートの負荷と、前記平均負荷との差分負荷を算出するステップと、
前記複数のホスト計算機のうち前記ポートに加える負荷が前記差分負荷に最も近い前記ホスト計算機を選択するステップと、
を含む動的ポート割当方法。
【請求項１３】
請求項１０又は請求項１１に記載の動的ポート割当方法であって、
前記識別した前記ホスト計算機を前記最も負荷の低いポートへ移行したときの前記複数のポート間の負荷の差を算出するステップと、
前記識別した前記ホスト計算機を前記最も負荷の低いポートへ移行したときの前記複数のポート間の負荷の差が所定値以上の場合に前記ホスト計算機を識別するステップを再度実行するステップと、
を更に備える動的ポート割当方法。
【請求項１４】
請求項１０乃至請求項１３のうち何れか１項に記載の動的ポート割当方法であって、
前記ホスト計算機が再接続するステップは、
前記管理計算機が送信する再接続指示により指定される前記ストレージシステムの前記ポートへ前記ホスト計算機が再接続した後に、それまでに前記ホスト計算機が使用していた前記ポートへのアクセスが終了するときに、前記それまでに使用していたポートと前記ホスト計算機との接続を切断するステップ、
を含む動的ポート割当方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はホスト計算機が接続するストレージシステムのポートを動的に割当てる方法及びシステムに関する。
【背景技術】
【０００２】
ディスクアレイ装置に代表されるストレージシステムは、ストレージシステム内のディスク装置の記憶域を論理的に分割し、これをボリュームとしてホスト計算機に提供する。ストレージシステムとホスト計算機とをそれぞれネットワークに接続し、ストレージシステムが有するボリュームをホスト計算機に提供するストレージエリアネットワーク（ＳＡＮ）が広く普及している。
【０００３】
ＳＡＮでは、ＳＣＳＩコマンドをネットワークプロトコルにカプセル化して通信をすることで、ホスト計算機が、ストレージシステム内のボリュームにアクセスする。例えば、ｉＳＣＳＩでは、ＳＣＳＩコマンドをＩＰネットワーク用にカプセル化している。ｉＳＣＳＩは、ＳＣＳＩコマンドをホスト計算機上で動作するｉＳＣＳＩイニシエータと、ストレージシステム上で動作するｉＳＣＳＩターゲット間でＩＰコネクションを確立し、ＩＰコネクション上で、ホスト計算機がストレージシステムにアクセスするための通信を制御する。ｉＳＣＳＩでは、このＩＰコネクションをｉＳＣＳＩセッションと称する。このｉＳＣＳＩセッションは、ｉＳＣＳＩイニシエータがｉＳＣＳＩターゲットにログインすることで確立する。
【０００４】
このようなＳＡＮにおいては、複数のホスト計算機がストレージシステムの同一のポートを介して、ｉＳＣＳＩセッションに接続し、ボリュームにアクセスする。このため、あるホスト計算機によるボリュームへのアクセス負荷が高くなった際に、ストレージシステムの同一のポートに接続する他のホスト計算機によるボリュームへのアクセス性能が大幅に低下するという問題がある。
【０００５】
ｉＳＣＳＩでは、ホスト計算機(ｉＳＣＳＩイニシエータ)がストレージシステム(ｉＳＣＳＩターゲット)へログインする際に、ストレージシステムがホスト計算機に接続先のポートの識別情報を通知し、ホスト計算機がそのポートに接続する、リダイレクトと称される方法が提供されている。リダイレクトの機能を応用すれば、複数のポートを有するストレージシステムにおいて、各ポートに接続するホスト計算機の台数を均等化することができる。
【０００６】
また、特開２００６−４００２６公報では、ホスト計算機が、ストレージシステムの複数のポートに接続し、ホスト計算機が各ポートの通信状態を監視することで、負荷の低いポートを使用してストレージシステムへアクセスする方法が開示されている。これにより、ホスト計算機がストレージシステムにアクセスするときのアクセス性能の低下を抑制できる。
【特許文献１】特開２００６−４００２６公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
計算機システムが大規模化し、ＳＡＮに接続するホスト計算機が大幅に増加した環境において、特開２００６−４００２６公報の方法により各ホスト計算機が接続パスを切替えると、大量のホスト計算機が同時に同一のポートへ接続パスを切替える事態が生じ得るので、かかる事態が発生すると、切替え先の接続パスの負荷が増加し、再度接続パスを切替えなければならない事態が発生するという問題がある。
【０００８】
また、特開２００６−４００２６公報の方法では、ストレージシステムの各ポートに接続するホストの台数を均等化することが可能であるが、各ホスト計算機がストレージシステムに与える負荷が分からないため、各ポートの負荷が不均一になる問題がある。
【０００９】
そこで、本発明は、このような問題を解決し、ストレージシステムのポート間の負荷を均一化し、負荷が高くなっていたポートに接続しているホスト計算機のアクセス性能の低下抑止することを課題とする。
【課題を解決するための手段】
【００１０】
上記の課題を解決するため、本発明の第一の観点による計算機システムは、複数のホスト計算機と、複数のホスト計算機に接続するための複数のポートを有しストレージネットワークを介して複数のホスト計算機にボリュームを提供する少なくとも一つのストレージシステムとを有する。ストレージシステムは、複数のポート間の負荷の差を監視し、複数のホスト計算機とストレージシステムとの間の接続パスの負荷を監視し、複数のポート間の負荷の差が所定値以上になると、複数のポートのうち最も負荷の高いポートに接続しているホスト計算機を識別し、識別した少なくとも一つのホスト計算機とストレージシステムとの間の接続を切断し、ストレージシステムとの接続を切断されたホスト計算機がストレージシステムへ再接続要求を送信してきたときに、複数のポートのうち最も負荷の低いポートにリダイレクトする指示を、再接続要求をしてきたホスト計算機に送信する。
【００１１】
かかる構成によれば、ストレージシステムの複数のポートの負荷を監視し、負荷の高いポートから低いポートへセッションを移動することが可能であるため、ポート間の負荷を均一化し、負荷が高くなっていたポートに接続しているホスト計算機のアクセス性能の大幅な低下を防止できる効果がある。
【００１２】
ここで、ストレージシステムは、複数のポートのうち最も負荷の高いポートと最も負荷の低いポートとの平均負荷を算出し、最も負荷の低いポート又は最も負荷の高いポートの負荷と平均負荷との差分負荷を算出し、複数のホスト計算機のうちポートに加える負荷が差分負荷に最も近いホスト計算機を選択する。
【００１３】
ストレージシステムは、識別したホスト計算機を最も負荷の低いポートへ移行したときの複数のポート間の負荷の差を算出し、識別したホスト計算機を最も負荷の低いポートへ移行したときの複数のポート間の負荷の差が所定値以上の場合にホスト計算機を識別する処理を実行する。
【００１４】
本発明の第二の観点による計算機システムは、複数のホスト計算機と、複数のホスト計算機に接続するための複数のポートを有しストレージネットワークを介して複数のホスト計算機にボリュームを提供する少なくとも一つのストレージシステムと、複数のホスト計算機とストレージシステムとのそれぞれに管理ネットワークを介して接続する管理計算機とを有する。管理計算機は、複数のポート間の負荷の差を監視し、複数のポートに接続しているホスト計算機がポートに加えている負荷を監視し、複数のポート間の負荷の差が所定値以上になると、複数のポートのうち最も負荷の高いポートに接続しているホスト計算機を識別し、識別した少なくとも一つのホスト計算機に対し、複数のポートのうち最も負荷の低いポートに再接続する指示を送信する。ホスト計算機は、管理計算機による再接続指示にて指定されたポートへ再接続する。
【００１５】
かかる構成によれば、ストレージシステムの複数のポートの負荷を監視し、負荷の高いポートから低いポートへセッションを移動することが可能であるため、ポート間の負荷を均一化し、負荷が高くなっていたポートに接続しているホスト計算機のアクセス性能の大幅な低下を防止できる効果がある。
【００１６】
ここで、管理計算機は、複数のポートのうち最も負荷の高いポートと、最も負荷の低いポートとの平均負荷を算出し、最も負荷の低いポート又は最も負荷の高いポートの負荷と、平均負荷との差分負荷を算出し、複数のホスト計算機のうちポートに加える負荷が差分負荷に最も近いホスト計算機を選択する。
【００１７】
管理計算機は、識別したホスト計算機を最も負荷の低いポートへ移行したときの複数のポート間の負荷の差を算出し、識別したホスト計算機を最も負荷の低いポートへ移行したときの複数のポート間の負荷の差が所定値以上の場合にホスト計算機を識別する処理を再度実行する。
【００１８】
ホスト計算機は、管理計算機が送信する再接続指示により指定されるストレージシステムのポートへ再接続した後にそれまでにホスト計算機が使用していたポートへのアクセスが終了するときに、それまでに使用していたポートとホスト計算機との接続を切断する。
【発明の効果】
【００１９】
本発明によれば、ストレージシステムの複数のポートの負荷を監視し、負荷の高いポートから低いポートへセッションを移動することが可能であるため、ポート間の負荷を均一化し、負荷が高くなっていたポートに接続しているホスト計算機のアクセス性能の大幅な低下を防止できる効果がある。
【００２０】
また、ホスト計算機が接続するストレージシステムのポートを自動的に割当てることになるため、ホスト計算機を接続するストレージシステムのポートの割当設計及び割当設定が不要となり、管理者の負担を軽減できる効果がある。
【発明を実施するための最良の形態】
【００２１】
［実施例１］
【００２２】
図１は本発明の実施例１に係わる計算機システムのシステム構成を示す。本実施例に係わる計算機システムは、複数のホスト計算機２と、ストレジーネトワーク３を介してホスト計算機２に接続する少なくとも１台のストレージシステム１を有する。ここで、ストレージシステム１は、図示するように、個別の装置であっても構わないし、或いは１台のストレージシステムを論理分割してなる仮想的なストレージシステムであっても構わない。
【００２３】
ホスト計算機２は、ストレージネットワーク３を介して、ストレージシステム３が提供するボリュームにアクセスする。ホスト計算機２は、メモリ４と、ＣＰＵ５と、ストレージネットワーク４に接続するためのＩ／Ｏポート６と、メモリ４、ＣＰＵ５、及びＩ／Ｏポート６を接続する内部バス１０を有する。メモリ４には、ストレージネットワーク３の通信プロトコルで通信するための通信制御処理プログラム１２と、ストレージシステム３へのアクセス制御を行うイニシエータ１１が格納されている他、オペレーティングシステム（図示せず）やストレージシステム１に格納しているデータにアクセスするためのアプリケーションプログラム（図示せず）が格納さている。ＣＰＵ５は、これらのプログラムを実行し、ストレージシステム１が提供するボリュームにアクセスする。
【００２４】
図２は本実施例に係わるストレージシステム１のシステム構成を示す。ストレージシステム１はストレージネットワーク３を管理するための管理ポート１４と、ストレージネットワーク３に接続するための少なくとも二つのＩ／Ｏポート１５と、ストレージシステム１内の制御を行うコントローラ１６と、コントローラ１６が用いるプログラムメモリ１７と、少なくとも一つのボリューム１９を提供する少なくとも一つのディスク装置１８と、を有する。
【００２５】
プログラムメモリ１７には、ストレージシステム１の各Ｉ／Ｏポート１５の性能情報を保持するポート性能情報テーブル３０と、各Ｉ／Ｏポート１５に接続しているホスト計算機２とストレージシステム１との間の論理的なセッション毎の性能情報を保持するセッション性能情報テーブル４０と、セッションのリダイレクト先ポートを選択する際に使用するリダイレクトポートテーブル５０と、リダイレクトするセッションを選択する際に使用するリダイレクトセッションテーブル６０と、セッションのリダイレクトを開始するための条件として、複数のＩ／Ｏポート１５間の性能差の閾値を保持する切替え閾値７０を格納している。
【００２６】
尚、ディスク装置１８は、ＦＣ（Fibre Channel）ディスクドライブ、ＳＡＴＡ（Serial Advanced Technology Attachment）ディスクドライブ、ＰＡＴＡ（Parallel Advanced Technology Attachment）ディスクドライブ、ＦＡＴＡ（Fibre Attached Technology Adapted）ディスクドライブ、ＳＣＳＩ（Small Computer System Interface）ディスクドライブ等の各種ディスクドライブであるが、ボリューム１９を提供するストレージデバイスとして、ディスク装置１８の他にフラッシュメモリ等を用いてもよい。
【００２７】
図３はポート性能情報テーブル３０のテーブル構造を示す。ポート性能情報テーブル３０は、ボリューム１９にアクセスするために使用するストレージシステム１のＩ／Ｏポート１５の識別情報を登録するためのフィールド３１と、Ｉ／Ｏポート１５の帯域を登録するためのフィールド３２と、Ｉ／Ｏポート１５にて使用されている帯域を登録するためのフィールド３３と、Ｉ／Ｏポート１５に設定しているＩＰアドレスを登録するためのフィールド３４と、を有する。
【００２８】
例えば、“ポート１”という識別情報により識別されるＩ／Ｏポート１５に関する情報をみると、対応可能帯域は“１０００”、使用されている帯域は“４００”、当てられているＩＰアドレスは“１９２．１６８．２０．１００”であることが分かる。ストレージシステム１のコントローラ１６は、各Ｉ／Ｏポートの使用帯域を監視し、逐次、このポート性能情報テーブル３０を更新する。
【００２９】
図４はセッション性能情報テーブル４０のテーブル構造を示す。セッション性能情報テーブル４０は、ボリューム１９にアクセスするために使用するストレージシステム１のＩ／Ｏポート１５の識別情報を登録するためのフィールド４１と、Ｉ／Ｏポート１５を介して接続するホスト計算機２とストレージシステム１との間の論理的なセッションの識別情報を登録するためのフィールド４２と、フィールド４２に登録されている識別情報により識別されるセッションを使用してストレージシステム１に接続しているホスト計算機２のＩ／Ｏポート６に割当てられているＩＰアドレスを登録するためのフィールド４３と、フィールド４１に登録されている識別情報により識別されるＩ／Ｏポート１５の使用帯域の内、フィールド４２に登録されている識別情報により識別されるセッションが使用している帯域を登録するためのフィールド４４と、を有している。
【００３０】
例えば、“ポート１”という識別情報により識別されるＩ／Ｏポート１５には、識別情報“Ｓ１”と“Ｓ２”とにより識別される二つのセッションが接続されており、識別情報“Ｓ１”により識別されるセッションは、ＩＰアドレス“１９２．１６８．３０．１０”が割当てられているＩ／Ｏポート６を有するホスト計算機２によって使用されており、Ｉ／Ｏポート１５の帯域のうち“１００”が使用されていることが分かる。
【００３１】
図５はリダイレクトポートテーブル５０のテーブル構造を示す。リダイレクトポートテーブル５０は、ストレージシステム１のＩ／Ｏポート１５の識別情報を登録するためのフィールド５１と、Ｉ／Ｏポート１５の対応可能帯域を登録するためのフィールド５２と、リダイレクト処理を実施した後のＩ／Ｏポート１５の使用帯域を登録するためのフィールド５３と、Ｉ／Ｏポート１５に割当てられているＩＰアドレスを登録するためのフィールド５４と、を有している。
【００３２】
例えば、“ポート１”という識別情報により識別されるＩ／Ｏポート１５の対応可能帯域は“１０００”であり、リダイレクト後に使用される帯域は“４００”であり、“１９２．１６８．２０．１００”というＩＰアドレスが割当てられていることが分かる。
【００３３】
図６はリダイレクトセッションテーブル６０のテーブル構造を示している。リダイレクトセッションテーブル６０は、セッションをリダイレクトする先のＩ／Ｏポート１５の識別情報を登録するフィールド６１と、リダイレクトするセッションの識別情報を登録するフィールド６２と、フィールド６２に登録されている識別情報により識別されるセッションを使用してストレージシステム１に接続しているホスト計算機２のＩ／Ｏポート６に割当てられているＩＰアドレスを登録するためのフィールド６３と、フィールド６２に登録されている識別情報により識別されるセッションが使用している帯域を登録するためのフィールド６４と、フィールド６２に登録されている識別情報により識別されるセッションが現在接続しているＩ／Ｏポート１５の識別情報を登録するためのフィールド６５と、を有する。
【００３４】
例えば、“Ｓ１”という識別情報により識別されるセッションは、現在、“ポート１”という識別情報により識別されるＩ／Ｏポート１５に接続されており、“１９２．１６８．３０．１０”というＩＰアドレスが割り当てられているＩ／Ｏポート６を有するホスト計算機２によって使用されており、Ｉ／Ｏポート１５の帯域のうち“１００”を使用しており、ポート２”という識別情報により識別されるＩ／Ｏポート１５にリダイレクトすることが示されている。
【００３５】
図７は切替え閾値７０の登録内容例を示している。ストレージシステム１のコントローラ１６は、Ｉ／Ｏポート１５間の性能差が切替え閾値７０を超えた場合に、セッションのリダイレクト処理を実施する。
【００３６】
次に、図８乃至図１１を用いて、ストレージシステム１のコントローラ１６が本実施例に係わる動的ポート割当方法を実行する手順を説明する。
【００３７】
図８はストレージシステム１のコントローラ１６がストレージシステム１の動的ポート割当方法を実行するための処理フローを示している。
コントローラ１６は、ポート性能情報テーブル３０内のエントリを一つ取得し、リダイレクトポートテーブル５０に登録する（ステップ１００１）。具体的には、フィールド３１の情報をフィールド５１に、フィールド３２の情報をフィールド５２に、フィールド３３の情報をフィールド５３に、フィールド３４の情報をフィールド５４に登録する。
【００３８】
次に、コントローラ１６は、ポート性能情報テーブル３０から全てのエントリに関する情報を取得した否かを確認する（ステップ１００２）。全てのエントリに関する情報を取得している場合（ステップ１００２；ＹＥＳ）、コントローラ１６は、ステップ１００３に遷移し、そうでない場合は（ステップ１００２；ＮＯ）、コントローラ１６は、再度、ステップ１００１を実行し、ポート性能情報テーブル３０内の次のエントリを取得する。
【００３９】
コントローラ１６は、リダイレクトポートテーブル５０内の全エントリのフィールド５３を参照し、最大のリダイレクト後帯域と最小のリダイレクト後帯域の差分を算出する（ステップ１００３）。図５に示す例では、最大のリダイレクト後帯域は、ポートnのリダイレクト後の帯域が“８００”であり、最小のリダイレクト後帯域はポート１の“４００”であるので、その差分は“４００”となる。
【００４０】
次に、コントローラ１６は、ステップ１００３にて算出したポート使用帯域の最大差分が切り替え閾値７０より大きいか否かを確認し（ステップ１００４）、大きい場合には（ステップ１００４；ＹＥＳ）、ステップ１００５に遷移し、小さい場合には（ステップ１００４；ＮＯ）、ステップ１００６に遷移する。
【００４１】
コントローラ１６は、ステップ１００５では、リダイレクトするセッションを選択し、その後、セッションをリダイレクトした後のポート使用帯域の最大差分を再度算出する（ステップ１００３）。そして、コントローラ１６は、再度、ステップ１００４を実行する。ステップ１００５の処理の詳細については、後述する。
【００４２】
一方、コントローラ１６は、ステップ１００６では、リダイレクトセッションテーブル６０のエントリの有無を確認することにより、リダイレクトするセッションの有無を判定する。リダイレクトするセッションが無い場合（ステップ１００６：ＮＯ）、コントローラ１６は、処理を終了する。リダイレクトするセッションがある場合（ステップ１００６；ＹＥＳ）、コントローラ１６は、セッションをリダイレクトして（ステップ１００７）、処理を終了する。ステップ１００７の処理の詳細については、後述する。
【００４３】
次に、図９を参照して、リダイレクトするセッションを選択する処理（図８：ステップ１００５）について説明する。
コントローラ１６は、リダイレクトポートテーブル５０を参照し、Ｉ／Ｏポート１５の最大使用帯域と最小使用帯域との平均帯域（Avg）を算出する（ステップ１１０１）。例えば、図５に示す例では、ポートｎの使用帯域が“８００”であり、ポート１の使用帯域が“４００”であるので、この二つの平均帯域（Avg）は“６００”となる。
【００４４】
次に、コントローラ１６は、Ｉ／Ｏポート１５の使用帯域の最大使用帯域と平均帯域（Avg）との差分を差分(ｄ０)に代入する（ステップ１１０２）。図５に示す例では、ポートｎの使用帯域“８００”と平均帯域“６００”の差分“２００”が差分(ｄ０)に代入される。コントローラ１６は、ステップ１１０２にて算出した差分（ｄ０）を差分（ｄ１）に代入する（ステップ１１０３）。
【００４５】
次に、コントローラ１６は、セッション性能情報テーブル４０から、最大使用帯域のＩ／Ｏポート１５に接続しているセッションに対応するエントリを一つ取得し（ステップ１１０４）、差分（ｄ０）とステップ１１０４で取得したエントリのフィールド４４の値との差分（ｄ２）を算出する（ステップ１１０５）。
【００４６】
次に、コントローラ１６は、差分（ｄ１）と差分（ｄ２）とを比較し（ステップ１１０６）、差分（ｄ１）の方が小さい場合（ステップ１１０６；ＮＯ）、ステップ１１０９に遷移し、差分（ｄ２）の方が小さい場合（ステップ１１０６；ＹＥＳ）、ステップ１１０７に遷移する。
【００４７】
コントローラ１６は、ステップ１１０７では、差分（ｄ１）を差分（ｄ２）に代入し、ステップ１１０５にて取得したセッションをリダイレクトするセッションの候補として保持する（ステップ１１０８）。
【００４８】
次に、コントローラ１６は、セッション性能情報テーブル４０の、最大使用帯域のＩ／Ｏポート１５に接続している全てのセッションに対するエントリに対して、ステップ１１０４からステップ１１０８の処理を実行したかを確認し（ステップ１１０９）、全てのセッションについて実行している場合（ステップ１１０９；ＹＥＳ）、ステップ１１１０に遷移し、一部のセッションについて実行してない場合（ステップ１１０９；ＮＯ）、ステップ１１０４に遷移する。
【００４９】
コントローラ１６は、ステップ１１０８にてリダイレクトする候補のセッションとして選択したセッションに対応するセッション性能情報テーブル４０のエントリの内容をリダイレクトセッションテーブル６０に記録する（ステップ１１１０）。具体的には、フィールド４１の情報をフィールド６５に登録し、フィールド４２の情報をフィールド６２に登録し、フィールド４３の情報をフィールド６３に登録し、フィールド４４の情報をフィールド６４に登録する。また、フィールド６１には、最小使用帯域のＩ／Ｏポート１５の識別情報を登録する。
以上の処理を経て、リダイレクトするセッションの選択処理が完了する。
【００５０】
次に、図１０及び図１１を用いて、セッションをリダイレクトする処理（図８：ステップ１１０７）の処理の詳細について説明する。
図１０はリダイレクトするセッションを切断する処理フローを示す。
コントローラ１６は、リダイレクトセッションテーブル６０のエントリを一つ取得し（ステップ１２０１）、そのエントリが示すセッションを切断する（ステップ１２０２）。
【００５１】
次に、コントローラ１６は、リダイレクトセッションテーブル６０の全てのエントリに対応するセッションを切断したかを確認し（ステップ１２０３）、全てのセッションの切断が完了したら（ステップ１２０３；ＹＥＳ）、処理を終了し、一部のセッションの切断が完了していない場合には（ステップ１２０３：ＮＯ）、ステップ１２０１に戻る。
【００５２】
図１１は、セッションを切断されたホスト計算機２から再接続要求を受信した際に、リダイレクト指示をホスト計算機２に送信する処理フローを示す。
コントローラ１６は、ホスト計算機２からログインコマンドを受信する（ステップ１２０４）。
【００５３】
次に、コントローラ１６は、リダイレクトセッションテーブルから、ログイン要求に含まれるホスト計算機２のＩ／Ｏポート６のＩＰアドレスと、ホスト計算機２がログインするストレージシステム１のＩ／Ｏポート１５のＩＰアドレスが割当てられているＩ／Ｏポートの識別情報とを含むエントリを検索する（ステップ１２０５）。
【００５４】
次に、コントローラ１６は、Ｓ１２０５にてエントリを取得できたか否か、即ち、ログインコマンドを送信したホスト計算機２がリダイレクトする対象か否かを判定する（ステップ１２０６）。ステップ１２０６の判定の結果、リダイレクトする必要がある場合（ステップ１２０６；ＹＥＳ）、コントローラ１６は、ステップ１２０７に遷移し、リダイレクトする必要が無い場合（ステップ１２０６；ＮＯ）、ｉＳＣＳＩの仕様通りにセッションを確立し（ステップ１２０９）、処理を終了する。
【００５５】
コントローラ１６は、ステップ１２０７では、ｉＳＣＳＩ仕様のリダイレクトコマンドを、ログインコマンドを送信したホスト計算機２に送信する。そして、コントローラ１６は、ステップ１２０５にて取得したエントリを、リダイレクトセッションテーブル６０から削除し（ステップ１２０８）、処理を終了する。
【００５６】
尚、ログインコマンドと，リダイレクトコマンドと，セッションの切断の処理は，「RFC-3347 Small Computer Systems Interface protocol over the Internet (ｉＳＣＳＩ) Requirements and Design ConsideratＩ／Ｏns」IETF 2002の仕様に基づく。
【００５７】
以上、説明したように、本発明の実施例１では、ストレージシステム１のコントローラ１６が、ストレージシステム１の各Ｉ／Ｏポート１５の使用帯域を監視し、使用帯域の高いポートに接続しているホスト計算機２を、使用帯域の低いポートへ、移行する。このため、ストレージシステム１の複数のＩ／Ｏポート１５の使用帯域を均等化できる効果がある。
【００５８】
また、1台のホスト計算機２が大量にＩ／Ｏポートの帯域を消費した際に、同一のＩ／Ｏポート１５に接続する他のホスト計算機２のストレージシステム１が提供するボリューム１９へのアクセス性能の大幅な低下を防止することができる。
【００５９】
また、ホスト計算機２が接続するストレージシステム１のＩ／Ｏポート１５をそのポートの負荷に応じて、自動的に選択するため、ホスト計算機２を接続するストレージシステム１のＩ／Ｏポートの割当設計と設定不要になり、管理者の負担を軽減できる効果もある。
［実施例２］
【００６０】
図１２は本発明の実施例２に係わる計算機システムのシステム構成を示す。図１に示す符号と同一符号のデバイスは同一のデバイスであることを示す。以下の説明では、実施例１と実施例２との主な相違点について説明する。
【００６１】
管理計算機１００は、管理ネットワーク３００を介して、ストレージシステム１へ接続し、ストレージネットワーク３を介して、ホスト計算機２に接続する。また、ホスト計算機２のメモリ４上では、エージェントプログラム５００が動作している。エージェントプログラム５００の詳細については、後述する。ストレージシステム１は、図示しない管理ポートを介して、管理用ネットワーク３００に接続する。
【００６２】
尚、ストレージネットワーク３と管理ネットワーク３００とは、一つのネットワークであっても構わないが、本実施例では、便宜上二つに分けている。また、本実施例に係わるストレージシステム１のシステム構成は、実施例１に係わるストレージシステム１のシステム構成とほぼ同一であるが、本実施例に係わるストレージシステム１のプログラムメモリは、ポート性能情報テーブル３０とセッション性能情報テーブル４０のみを格納しており、リダイレクトポートテーブル５０、リダイレクトセッションテーブル６０、切替え閾値７０を格納しない点において実施例１とは異なる。
【００６３】
図１３は管理計算機１００のシステム構成を示す。管理計算機１００は、ストレージネットワーク３に接続するためのＩ／Ｏポート１０２と、表示装置１０７に各種情報を出力するための出力装置１０３と、キーボード１０８からの入力情報を処理する入力装置１０４と、ＣＰＵ１０５と、ＣＰＵ１０５のワークエリアとして機能するメモリ１０６と、管理ネットワーク３００に接続するための管理ポート１２０と、Ｉ／Ｏポート１０２、出力装置１０３、入力装置１０４、ＣＰＵ１０５、メモリ１０６、及び管理ポート１２０を相互に接続する内部バス１０１を備える。
【００６４】
メモリ１０６には、オペレーティングシステム（図示せず）と、管理ネットワーク３００やストレージエリアネットワーク３における通信プロトコルを制御する通信制御プログラム１０９と、本実施例に係わる動的ポート割当方法を実行する動的ポート割当プログラム１１０と、ストレージ管理テーブル９０と、リダイレクトポートテーブル５０と、リダイレクトセッションテーブル６０とが格納されている。
【００６５】
尚、リダイレクトポートテーブル５０とリダイレクトセッションテーブル６０の形式及び用途は、実施例１のものと同様であるのである。
【００６６】
動的ポート割当プログラム１１０は、ストレージシステム１のＩ／Ｏポート１５の性能を監視するポート性能監視プログラム１１１と、リダイレクトするセッションとＩ／Ｏポート１５を選択するポート決定プログラム１１２と、ホスト計算機２で動作するエージェントプログラム５００へ接続するＩ／Ｏポート１５を変更する旨を通知するポート変更通知プログラム１１３により構成される。
【００６７】
図１４はストレージ管理テーブル９０のテーブル構造を示す。ストレージ管理テーブル９０は、ストレージシステム１の識別情報を登録するフィールド９１と、フィールド９１に登録されている識別情報により識別されるストレージシステム１の管理ポート１４のＩＰアドレスを登録するフィールド９２と、フィールド９１に登録されている識別情報により識別されるストレージシステム１において、セッションのリダイレクトを開始するＩ／Ｏポート１５間の使用帯域の差の閾値を登録するフィールド９３と、フィールド９１に登録されている識別情報により識別されるストレージシステム１が有するＩ／Ｏポート１５の数を登録するためのフィールド９４と、を有している。
【００６８】
例えば、“Storage00”により識別されるストレージシステム１は、管理ポート１４のＩＰアドレスが“１９２．１６８．１．１００”であり、セッションのリダイレクトを開始するためのＩ／Ｏポート１５間の使用帯域の差が“１００”であり、４つのＩ／Ｏポート１５を有していることが示されている。
【００６９】
次に、図１５乃至図２２を参照しながら、管理計算機１００上の動的ポート割当プログラム１１０が実行する、本実施例に係わる動的ポート割当方法の処理手順について説明する。
図１５は動的ポート割当プログラム１１０が、リダイレクトするセッションを特定し、セッションのリダイレクトを実行する処理フローを示す。
動的ポート割当プログラム１１０は、ストレージ管理テーブル９０のエントリを一つ参照し（ステップ３００１）、参照したエントリに対応するストレージシステム１に対して送信する、ポート性能取得コマンド２００を作成する（ステップ３００２）。
【００７０】
図２０（Ａ）は、ポート性能取得コマンド２００のフォーマットを示す。ポート性能取得コマンド２００は、その内容がポート性能取得コマンドであることを示すフィールド２０１と、性能を取得するＩ／Ｏポート１５の識別情報を示すフィールド２０２とを含む。
【００７１】
動的ポート割当プログラム１１０は、ステップ３００２では、ステップ３００１で参照したエントリのフィールド９４からストレージシステム１のＩ／Ｏポート１５の数を取得し、そのＩ／Ｏポート１５の識別情報を、ポート性能取得コマンドのフィールド２０２に代入する。例えば、フィールド９４の値が４の場合、Ｉ／Ｏポート１５の識別情報は、“ポート１”と、“ポート２”と、“ポート３”と、“ポート４”とを含む。
【００７２】
次に、動的ポート割当プログラム１１０は、ステップ３００２にて作成したポート性能取得コマンドを、ステップ３００１にて参照したエントリのフィールド９２が示す、ストレージシステム１の管理ポート１４のＩＰアドレスへ送信する（ステップ３００３）。
【００７３】
次に、動的ポート割当プログラム１１０は、ステップ３００３にてストレージシステム１へ送信したポート性能取得コマンド２００に対する応答であるポート性能応答データ２１０をストレージシステム１から取得する（ステップ３００４）。
【００７４】
図２０（Ｂ）はポート性能応答データ２１０のフォーマットを示す。ポート性能応答データ２１０は、その内容が、ポート性能応答データ２１０であることを示すフィールド２１１と、ポート性能応答データ２１０にその情報を格納するＩ／Ｏポート１５の識別情報（例えばポート番号など）を登録するフィールド２１２と、フィールド２１１が示すＩ／Ｏポート１５に割当てられているＩＰアドレスを示すフィールド２１３と、フィールド２１１が示すＩ／Ｏポート１５の帯域を示すフィールド２１４と、フィールド２１１が示すＩ／Ｏポート１５の使用帯域を示すフィールド２１５で構成する。これにより、動的ポート割当プログラム１１０は、フィールド２１２が示すＩ／Ｏポート１５の使用帯域とそのＩ／Ｏポート１５に設定されているＩＰアドレスを取得する。
【００７５】
動的ポート割当プログラム１１０は、ストレージシステム１から取得したポート性能応答データ２１０の内容をリダイレクトポートテーブル５０に登録する（ステップ３００４）。具体的には、フィールド２１２の値をフィールド５１に登録し、フィールド２１３の値をフィールド５４に登録し、フィールド２１４の値をフィールド５２に登録し、フィールド２１４の値をフィールド５３に登録する。
【００７６】
次に、動的ポート割当プログラム１１０は、ステップ３００１にて参照したストレージ管理テーブル９０内のエントリのうちストレージシステム１が有する全てのＩ／Ｏポート１５について、ステップ３００２〜ステップ３００４の処理を実行したか否かを確認する（ステップ３００５）。全てＩ／Ｏポート１５についてステップ３００２〜ステップ３００４の処理が完了している場合（ステップ３００５；ＹＥＳ）、動的ポート割当プログラム１１０は、ステップ３００６に遷移し、一部のＩ／Ｏポート１５についてステップ３００２〜ステップ３００４の処理が完了してない場合（ステップ３００５；ＮＯ）、残りのＩ／Ｏポート１５についてステップ３００２〜ステップ３００４の処理を実行する。
【００７７】
動的ポート割当プログラム１１０は、ステップ３００６では、リダイレクトポートテーブル５０内の全エントリのフィールド５３を参照し、最大のリダイレクト後帯域と最小のリダイレクト後帯域の差分を算出する。図５に示す例では、最大のリダイレクト後帯域はポートnの“８００”であり、最小のリダイレクト後帯域はポート１の“４００”であるので、差分は“４００”となる。
【００７８】
次に、動的ポート割当プログラム１１０は、ステップ３００６にて算出した最大のポート使用帯域の差分が、ストレージ管理テーブル９０内のフィールド９３の値より大きいか否かを確認し（ステップ３００７）、大きい場合は（ステップ３００７；ＹＥＳ）、ステップ３００８に遷移し、小さい場合は（ステップ３００７；ＮＯ）、ステップ３００９に遷移する。
【００７９】
動的ポート割当プログラム１１０は、ステップ３００８では、リダイレクトするセッションを選択する。この処理の詳細は、後述する。動的ポート割当プログラム１１０は、リダイレクトするセッションを選択した後、セッションをリダイレクトした後の、最大のポート使用帯域の差分を再度算出し（ステップ３００６）、その後、テップ３００７を実行する。
【００８０】
動的ポート割当プログラム１１０は、ステップ３００９では、リダイレクトセッションテーブル６０内のエントリの有無を確認することにより、リダイレクトするセッションの有無を確認する。リダイレクトするセッションが無い場合（ステップ３００９；ＮＯ）、動的ポート割当プログラム１１０は、ステップ３０１１に遷移し、リダイレクトするセッションがある場合（ステップ３００９；ＹＥＳ）、動的ポート割当プログラム１１０は、セッションリダイレクト処理を実行し（ステップ３０１０）、ステップ３０１１に遷移する。セッションリダイレクト処理（ステップ３０１０）の詳細については、後述する。
【００８１】
動的ポート割当プログラム１１０は、ステップ３０１１では、全てのストレージシステム１について、ステップ３００１〜ステップ３０１０の処理を実行したか否かを判定する。全てのストレージシステム１について、ステップ３００１〜ステップ３０１０の処理を実行した場合には（ステップ３０１１；ＹＥＳ）、処理を終了し、一部のストレージシステム１についてステップ３００１〜ステップ３０１０の処理を実行してない場合には（ステップ３０１１；ＮＯ）、ステップ３００１〜ステップ３０１０の処理を再度実行する。
【００８２】
図１６は動的ポート割当プログラム１１０が、リダイレクトするセッションを特定する処理フロー（図１５：ステップ３００８）を示す。
動的ポート割当プログラム１１０は、リダイレクトポートテーブル５０を参照し、Ｉ／Ｏポート１５の最大使用帯域と最小使用帯域の平均帯域（Avg）を算出する（ステップ３００１）。例えば、図５に示す例では、ポートｎの使用帯域が“８００”であり、ポート１の使用帯域が“４００”であるので、この二つの平均帯域（Avg）は“６００”となる。
【００８３】
次に、動的ポート割当プログラム１１０は、Ｉ／Ｏポート１５の使用帯域の最大使用帯域と平均帯域(Avg)を差分(ｄ０)に代入する（ステップ３１０２）。図５に示す例では、ポートｎの使用帯域“８００”と平均帯域“６００”の差分“２００”が差分(ｄ０)に代入される。
【００８４】
次に、動的ポート割当プログラム１１０は、ステップ３１０２にて算出した差分（ｄ０）を、差分（ｄ１）に代入する（ステップ３１０３）。
【００８５】
次に、動的ポート割当プログラム１１０は、最大使用帯域のＩ／Ｏポート１５に接続しているセッション数を取得するためのセッション数取得コマンド２２０を作成し、これをストレージシステム１に対して送信する（ステップ３１０４）。
【００８６】
図２１（Ａ）は、セッション数取得コマンド２２０のフォーマットを示す。セッション数取得コマンド２２０は、コマンドがセッション数取得コマンド２２０であることを示すフィールド２２１と、セッション数を取得するＩ／Ｏポート１５の識別情報（例えばポート番号）を登録するフィールド２２２を含む。
【００８７】
動的ポート割当プログラム１１０は、ステップ３１０４では、フィールド２２２に、最大使用帯域のＩ／Ｏポート１５の識別情報を設定する。
【００８８】
次に、動的ポート割当プログラム１１０は、ストレージシステム１がセッション数取得コマンド２２０の応答データとして送信するセッション数通知データ２３０を取得する（ステップ３１０５）。
【００８９】
図２１（Ｂ）はセッション数通知データ２３０のフォーマットを示す。セッション数通知データ２３０は、データがセッション数通知データ２３０であることを示すフィールド２３１と、セッション数取得コマンド２２０のフィールド２２２で指定されたＩ／Ｏポート１５に接続しているセッション数を示すフィールド２３２を含む。
【００９０】
動的ポート割当プログラム１１０は、ステップ３１０５にて取得したセッション数と同数の分だけ、ステップ３１０６〜ステップ３１１１の処理を繰り返し実行する。
【００９１】
動的ポート割当プログラム１１０は、最大使用帯域のＩ／Ｏポート１５に接続している全セッションの内、一つのセッションが使用している帯域を取得するセッション性能取得コマンド２４０を作成し、ストレージシステム１へ送信する（ステップ３１０６）。
【００９２】
図２１（Ｃ）は、セッション性能取得コマンド２４０のフォーマットを示す。セッション性能取得コマンド２４０は、コマンドがセッション性能取得コマンドであることを示すフィールド２４１と、使用帯域を取得するセッションが接続しているＩ／Ｏポート１５の識別情報（例えばポート番号）を示すフィールド２４２と、使用帯域を取得するセッションの番号を示すフィールド２４３とを含む。
【００９３】
尚、フィールド２４３内のセッションの番号は、１からステップ３１０５で取得したセッション数までの整数で表される。例えば、ステップ３１０５で取得したセッション数が３の場合、セッションの番号は“１”，“２”，“３”となる。動的ポート割当プログラム１１０は、ステップ３１０６では、このセッション番号の内、フィールド２４３に一つ設定する。
【００９４】
次に、動的ポート割当プログラム１１０は、ストレージシステム１がセッション性能取得コマンド２４０の応答データとして送信する、セッション性能応答データ２５０を取得する（ステップ３１０７）。
【００９５】
図２１（Ｄ）は、セッション性能応答データ２５０のフォーマットを示す。セッション性能応答データ２５０は、応答データがセッション性能応答データ２５０であることを示すフィールド２５１と、セッション性能応答データ２５０にその情報を格納するセッションが接続しているＩ／Ｏポート１５の識別情報（例えばポート番号）を示すフィールド２５２と、セッション性能取得コマンド２４０のフィールド２４３にて指定されたセッションの番号に対応するセッションＩＤを示すフィールド２５３と、フィールド２５３のセッションＩＤのセッションの使用帯域を示すフィールド２５４と、フィールド２５３のセッションＩＤのセッションでストレージシステム１に接続しているホスト計算機のＩ／Ｏポート６のＩＰアドレスを示すフィールド２５５を含む。
【００９６】
次に、動的ポート割当プログラム１１０は、差分（ｄ０）と、ステップ３１０７にて取得したセッション性能通知データ２５０内のフィールド２５４の値との差分（ｄ２）を算出する（ステップ３１０８）。
【００９７】
次に、動的ポート割当プログラム１１０は、差分（ｄ１）と差分（ｄ２）とを比較し（ステップ３１０９）、差分（ｄ１）の方が小さい場合（ステップ３１０９；ＮＯ）、ステップ３１１２に遷移し、差分（ｄ２）の方が小さい場合（ステップ３１０９；ＹＥＳ）、ステップ３１１０とステップ３１１１を実行した後にステップ３１１２へ遷移する。
【００９８】
動的ポート割当プログラム１１０は、差分（ｄ１）を差分（ｄ２）に代入し（ステップ３１１０）、その後、ステップ３１０７で取得したセッション性能通知データ２４０をリダイレクトするセッションの候補に関する情報として保持する（ステップ３１１１）。
【００９９】
動的ポート割当プログラム１１０は、ステップ３１１２では、ステップ３１０５にて取得したセッション数の同数の分だけ、ステップ３１０６からステップ３１１１の処理を実行したかを確認する（ステップ３１１２）。全てのセッションについて、ステップ３１０６〜ステップ３１１１の処理を完了している場合（ステップ３１１２；ＹＥＳ）、動的ポート割当プログラム１１０は、ステップ３１１３に遷移し、一部のセッションについて、ステップ３１０６〜ステップ３１１１の処理を完了してない場合（ステップ３１１２；ＮＯ）、動的ポート割当プログラム１１０は、残りのセッションについて、ステップ３１０６の処理を実行する。
【０１００】
動的ポート割当プログラム１１０は、ステップ３１１３では、ステップ３１１１にてリダイレクトする候補のセッションとして選択したセッション性能通知データ４０の内容をリダイレクトセッションテーブル６０に記録する。具体的には、フィールド２５２の情報をフィールド６５に登録し、フィールド２５３の情報をフィールド６２に登録し、フィールド２５５の情報をフィールド６３に登録し、フィールド２５４の情報をフィールド６４に登録する。また、フィールド６１には最小使用帯域のＩ／Ｏポート１５の識別情報を登録する。
以上の処理を経て、リダイレクトするセッションの選択処理が完了する。
【０１０１】
図１７は動的ポート割当プログラム１００がホスト計算機２にリダイレクト指示を通知する処理フロー（図１５：ステップ３０１０）を示す。
動的ポート割当プログラム１１０は、リダイレクトセッションテーブル６０内の一つのエントリを取得し（ステップ３２０１）、ホスト計算機２に送信するリダイレクトコマンド２６０を作成する（ステップ３２０２）。
【０１０２】
図２２（Ａ）はリダイレクトコマンド２６０のフォーマットを示す。リダイレクトコマンド２６０は、コマンドがリダイレクトコマンド２６０であることを示すフィールド２６１と、リダイレクトするセッションのセッションＩＤを登録するためのフィールド２６２と、リダイレクト先のＩ／Ｏポート１５のＩＰアドレスを示すフィールド２６３を含む。
【０１０３】
動的ポート割当プログラム１１０は、ステップ３２０２では、リダイレクトセッションテーブル６０内のフィールド６２の値をフィールド２６２に設定し、リダイレクトポートテーブル５０内のフィールド５１のＩ／Ｏポート１５の識別情報が、リダイレクトテーブル６０内のフィールド６１が示す識別情報と一致するエントリのフィールド５４の値をフィールド２６３に設定する。
【０１０４】
次に、動的ポート割当プログラム１１０は、ステップ３２０２にて作成したリダイレクトコマンド２６０を、リダイレクトコマンドを作成する際に参照したリダイレクトセッションテーブル６０内のエントリのフィールド６３のＩＰアドレス、即ち、セッションをリダイレクトするホスト計算機２のＩ／Ｏポート６のＩＰアドレス宛に送信する（ステップ３２０３）。
【０１０５】
次に、動的ポート割当プログラム１１０は、ステップ３２０３にて送信したリダイレクトコマンド２６０の応答データであるリダイレクトコマンド受信応答２７０を受信する（ステップ３２０４）。
【０１０６】
図２２（Ｂ）はリダイレクトコマンド受信応答２７０のフォーマットを示す。リダイレクト受信応答２７０は、リダイレクトコマンド２６０を受信したことを示すフィールド２７１を含む。
【０１０７】
次に、動的ポート割当プログラム１１０は、リダイレクトセッションテーブル６０の全てのエントリについて、ステップ３２０１〜ステップ３２０４の処理を実行されたか否かを確認する（ステップ３２０５）。全てのエントリについて、ステップ３２０１〜ステップ３２０４の処理が実行された場合（ステップ３２０５；ＹＥＳ）、動的ポート割当プログラム１１０は、リダイレクトセッションテーブル６０の全エントリを削除し（ステップ３２０６）、処理を終了する。一方、一部のエントリについて、ステップ３２０１〜ステップ３２０４の処理が実行されてない場合（ステップ３２０５；ＮＯ）、動的ポート割当プログラム１１０は、残りのエントリについてステップ３２０１〜ステップ３２０４を実行する。
【０１０８】
図１８はストレージシステム１のコントローラ１６が動的ポート割当プログラム１１０から各種コマンドを受信した際の処理フローを示す。
コントローラ１６は、管理計算機１からコマンドを受信する（ステップ１３０１）。
【０１０９】
コントローラ１６は、コマンドの種別を判定する（ステップ１３０２）。コマンド種別の判定の結果、受信したコマンドがポート性能取得コマンド２００の場合、コントローラ１６は、ステップ１３１１に遷移する。受信したコマンドがセッション数取得コマンド２２０の場合、コントローラ１６は、ステップ１３２１に遷移する。受信したコマンドがセッション性能取得コマンド２４０の場合、コントローラ１６は、ステップ１３３１に遷移する。
【０１１０】
コントローラ１６は、ステップ１３１１では、ポート性能取得コマンド２００のフィールド２０２の識別情報に対応するＩ／Ｏポート１５のポート性能情報テーブル３０のエントリを取得する。具体的には、フィールド３１の値がフィールド２０２の識別情報と一致するエントリを取得する。
【０１１１】
次に、コントローラ１６は、ステップ１３１１にて取得したポート性能情報３０のエントリの内容に基づいて、ポート性能応答データ２１０を作成する（ステップ１３１２）。具体的には、フィールド３１の値をフィールド２１２に設定し、フィールド３４の値をフィールド２１３に設定し、フィールド３２の値をフィールド２１４に設定し、フィールド３３の値をフィールド２１５に設定する。
【０１１２】
次に、コントローラ１６は、ステップ１３１２にて作成したポート性能通知データ２１０を、ステップ１３０１にて受信したコマンドを送信してきた管理計算機１へ送信し（ステップ１３１３）、処理を終了する。
【０１１３】
コントローラ１６は、ステップ１３２１では、セッション数取得コマンド２２０のフィールド２２２の識別情報に対応するＩ／Ｏポート１５に接続されているセッション数を、セッション性能情報テーブル４０から求める。具体的には、セッション性能情報テーブル４０のフィールド４１の値がセッション数取得コマンド２２０のフィールド２２２の値と一致するエントリ数を求める。
【０１１４】
次に、コントローラ１６は、ステップ１３２１にて求めたセッション数を管理計算機１に通知するためのセッション数通知データ２３０を作成する（ステップ１３２２）。具体的には、セッション数通知データ２３０のフィールド２３２に、ステップ１３２１で求めたセッション数を設定する。
【０１１５】
次に、コントローラ１６は、ステップ１３２２にて作成したセッション数通知データ２３０を、ステップ１３０１にて受信したコマンドを送信してきた管理計算機１へ送信し（ステップ１３２３）、処理を終了する。
【０１１６】
コントローラ１６は、ステップ１３３１では、セッション性能取得コマンド２４０のフィールド２４２の識別情報に対応するＩ／Ｏポート１５に接続している、フィールド２４３の番号のセッションのセッション性能情報テーブル４０のエントリを取得する。具体的には、セッション性能情報テーブル４０のフィールド４１の値が、セッション性能取得コマンド２４０のフィールド２４２の値と一致するエントリの、フィールド２４３の番号のエントリを取得する。例えば、フィールド２４３の値が“２”の場合、２番目のエントリを取得する。
【０１１７】
次に、コントローラ１６は、ステップ１３３１にて取得したセッション性能情報テーブル４０のエントリの内容に基づいて、セッション性能通知データ２５０を作成する（ステップ１３３２）。具体的には、セッション性能情報テーブル４０のフィールド４１の値を、セッション性能通知データ２５０のフィールド２５２に設定し、フィールド４２の値をフィールド２５３に設定し、フィールド４４の値をフィールド２５４に設定し、フィールド４３の値をフィールド２５５に設定する。
【０１１８】
次に、コントローラ１６は、ステップ１３３２にて作成したセッション性能通知データ２５０を、ステップ１３０１で受信したコマンドを送信してきた管理計算機１へ送信し（ステップ１３３３）、処理を終了する。
【０１１９】
図１９はホスト計算機２のエージェントプログラム５００が動的ポート割当プログラム１１０からリダイレクトコマンドを受信した際の処理フローを示す。
エージェントプログラム５００は、管理計算機１００からリダイレクトコマンド２６０を受信し（ステップ２００１）、そのコマンドを受信したことを示すリダイレクトコマンド受信応答２７０を管理計算機１００へ送信する。
【０１２０】
エージェントプログラム５００は、ステップ２００１にて受信したリダイレクトコマンド２６０内のフィールド２６３のＩＰアドレスに対して、ログインを実行し（ステップ２００２）、セッションを確立する。
【０１２１】
次に、エージェントプログラム５００は、ステップ２００１にて受信したリダイレクトコマンド２６０内のフィールド２６２のセッションＩＤのセッションでストレージシステム１へのアクセス処理が実行されているか否かを確認する（ステップ２００３）。アクセス処理が実行されている場合（ステップ２００３；ＹＥＳ）、再度、ステップ２００３に戻る。アクセス処理が実行されてない場合（ステップ２０３；ＮＯ）、エージェントプログラム５００は、フィールド２６２のセッションＩＤのセッションを切断し（ステップ２００４）、処理を終了する。
【０１２２】
尚、ログイン処理と，セッションの切断の処理は、「RFC-3347 Small Computer Systems Interface protocol over the Internet (ｉＳＣＳＩ) Requirements and Design ConsideratＩ／Ｏns」IETF 2002の仕様に基づく。
【０１２３】
以上説明したように、本発明の実施例２によれば、管理計算機１００がストレージシステム１の各Ｉ／Ｏポート１５の使用帯域を監視し、使用帯域の高いポートに接続しているホスト計算機２を、使用帯域の低いポートへ、移行する。このため、ストレージシステム１の複数のＩ／Ｏポート１５の使用帯域を均等化できる効果がある。
【０１２４】
また、1台のホスト計算機２が大量にＩ／Ｏポートの帯域を消費した際に、同一のＩ／Ｏポート１５に接続する他のホスト計算機２のストレージシステム１が提供するボリューム１９へのアクセス性能の大幅な低下を防止することができる。
【０１２５】
また、ホスト計算機２が接続するストレージシステム１のＩ／Ｏポート１５をそのポートの負荷に応じて、自動的に選択するため、ホスト計算機２を接続するストレージシステム１のＩ／Ｏポートの割当設計と設定不要になり、管理者の負担を軽減できる効果もある。
【図面の簡単な説明】
【０１２６】
【図１】実施例１に係わる計算機システムのシステム構成図である。
【図２】実施例１に係わるストレージシステムのシステム構成図である。
【図３】ポート性能情報テーブルのテーブル構造を示す説明図である。
【図４】セッション性能情報テーブルのテーブル構造を示す説明図である。
【図５】リダイレクトポートテーブルのテーブル構造を示す説明図である。
【図６】リダイレクトセッションテーブルのテーブル構造を示す説明図である。
【図７】切替え閾値の登録内容の説明図である。
【図８】セッションをリダイレクトする処理フローを示すフローチャートである。
【図９】リダイレクトするセッションを特定する処理フローを示すフローチャートである。
【図１０】リダイレクトするセッションを切断する処理フローを示すフローチャートである。
【図１１】再接続してきたホスト計算機にリダイレクト先のＩ／Ｏポートのアドレスを通知する処理フローを示すフローチャートである。
【図１２】実施例２に係わる計算機システムのシステム構成図である。
【図１３】管理計算機のシステム構成図である。
【図１４】ストレージ管理テーブルのテーブル構造を示す説明図である。
【図１５】動的ポート割当プログラムが、リダイレクトするセッションを特定し、セッションのリダイレクトを実行する処理フローを示すフローチャートである。
【図１６】動的ポート割当プログラムが、リダイレクトするセッションを特定する処理フローを示すフローチャートである。
【図１７】動的ポート割当プログラムが、ホスト計算機にリダイレクト指示を通知する処理フローを示すフローチャートである。
【図１８】ストレージシステムのコントローラが、動的ポート割当プログラムから各種コマンドを受信した際の処理フローを示すフローチャートである。
【図１９】ホスト計算機のエージェントプログラムが動的ポート割当プログラムからリダイレクトコマンドを受信した際の処理フローを示すフローチャートである。
【図２０】ポート性能取得コマンドとポート性能通知データのフォーマットを示す説明図である。
【図２１】セッション数取得コマンドとセッション数通知データとセッション性能取得コマンドとセッション性能通知データのフォーマットを示す説明図である。
【図２２】リダイレクトコマンドとリダイレクトコマンド受信応答のフォーマットを示す説明図である。
【符号の説明】
【０１２７】
１…ストレージシステム
２…ホスト計算機
３…ストレージネットワーク
４，１０６…メモリ
５，１０５…ＣＰＵ
６，１５，１０２…Ｉ／Ｏポート
１０，１０１…内部バス
１１…イニシエータ
１２，１０９…通信制御処理プログラム
１４，１２０…管理ポート
１６…コントローラ
１７…プログラムメモリ
１８…ディスク装置
１９…ボリューム
３０…ポート性能情報テーブル
４０…セッション性能情報テーブル
５０…リダイレクトポートテーブル
６０…リダイレクトセッションテーブル
７０…切替え閾値
９０…ストレージ管理テーブル
１００…管理計算機
１０３…出力装置
１０４…入力装置
１０７…表示装置
１０８…キーボード
１１０…動的ポート割当プログラム
１１１…ポート性能監視処理
１１２…ポート決定処理
１１３…ポート変更通知処理
２００…ポート性能取得コマンド
２１０…ポート性能通知データ
２２０…セッション数取得コマンド
２３０…セッション数通知データ
２４０…セッション性能取得コマンド
２５０…セッション性能通知データ
２６０…リダイレクトコマンド
２７０…リダイレクトコマンド受信応答
３００…管理用ネットワーク
５００…エージェントプログラム
【図１】
2008083939.tif 000003
【図２】
2008083939.tif 000004
【図３】
2008083939.tif 000005
【図４】
2008083939.tif 000006
【図５】
2008083939.tif 000007
【図６】
2008083939.tif 000008
【図７】
2008083939.tif 000009
【図８】
2008083939.tif 000010
【図９】
2008083939.tif 000011
【図１０】
2008083939.tif 000012
【図１１】
2008083939.tif 000013
【図１２】
2008083939.tif 000014
【図１３】
2008083939.tif 000015
【図１４】
2008083939.tif 000016
【図１５】
2008083939.tif 000017
【図１６】
2008083939.tif 000018
【図１７】
2008083939.tif 000019
【図１８】
2008083939.tif 000020
【図１９】
2008083939.tif 000021
【図２０】
2008083939.tif 000022
【図２１】
2008083939.tif 000023
【図２２】
2008083939.tif 000024