(57)【特許請求の範囲】
【請求項１】
ホストコンピュータとストレージデバイスとの間に設定される複数のアクセスパスと、
前記ストレージデバイス上に形成される論理ディスクごとに、前記論理ディスクに対する各前記アクセスパスの状態をそれぞれ管理するアクセスパス管理部と、
前記アクセスパスごとに、前記アクセスパスを用いてＩ／Ｏを実行したときのデータサイズおよび所要時間を蓄積し、所定の算出周期ごとに、前記蓄積した前記データサイズおよび前記所要時間を用いてＩ／Ｏ速度を算出するＩ／Ｏ速度算出部と、
前記アクセスパスの状態を更新する条件が成立したときに、前記アクセスパスの中から、前記アクセスパスの状態が利用可能な状態に設定されている前記アクセスパスを、前記論理ディスクへのＩ／Ｏに使用する前記アクセスパスの候補として選択するパス候補選択部と、
前記パス候補選択部により選択された前記アクセスパスに対応する前記Ｉ／Ｏ速度のうち、最速の値を用いて性能判定用閾値を算出し、前記Ｉ／Ｏ速度が前記性能判定用閾値よりも遅い前記アクセスパスを、前記候補から除外するパス候補除外部と、を備え、
前記アクセスパス管理部は、前記パス候補除外部による除外後に残った前記候補のうち、前記Ｉ／Ｏ速度の速い方から順に、予め設定された最大パス数に達するまで、前記アクセスパスの状態を前記論理ディスクへのＩ／Ｏに使用する状態に変更することで、前記アクセスパスの状態を更新する、
ことを特徴とするストレージシステム。
【請求項２】
前記アクセスパス管理部は、前記アクセスパスで障害が検知された場合に、当該障害が検知された前記アクセスパスに対応する前記アクセスパスの状態を、利用不可能な状態に変更する、
ことを特徴とする請求項１記載のストレージシステム。
【請求項３】
前記アクセスパスの状態を更新する条件として、利用可能な前記アクセスパスの数が増減されたこと、前記アクセスパスで障害が検知されたこと、前記アクセスパスが障害から復旧したこと、所定の更新周期が経過したこと、を含む、
ことを特徴とする請求項１または２記載のストレージシステム。
【請求項４】
前記Ｉ／Ｏは、Ｒｅａｄ−Ｉ／ＯおよびＷｒｉｔｅ−Ｉ／Ｏを含む、
ことを特徴とする請求項１〜３のいずれか１項に記載のストレージシステム。
【請求項５】
ホストコンピュータとストレージデバイスとの間に設定される複数のアクセスパスの状態を更新する方法であって、
前記ストレージデバイス上に形成される論理ディスクごとに、前記論理ディスクに対する各前記アクセスパスの状態をそれぞれ管理するステップと、
前記アクセスパスごとに、前記アクセスパスを用いてＩ／Ｏを実行したときのデータサイズおよび所要時間を蓄積し、所定の算出周期ごとに、前記蓄積した前記データサイズおよび前記所要時間を用いてＩ／Ｏ速度を算出するステップと、
前記アクセスパスの状態を更新する条件が成立したときに、前記アクセスパスの中から、前記アクセスパスの状態が利用可能な状態に設定されている前記アクセスパスを、前記論理ディスクへのＩ／Ｏに使用する前記アクセスパスの候補として選択するステップと、
前記選択された前記アクセスパスに対応する前記Ｉ／Ｏ速度のうち、最速の値を用いて性能判定用閾値を算出し、前記Ｉ／Ｏ速度が前記性能判定用閾値よりも遅い前記アクセスパスを、前記候補から除外するステップと、
前記除外後に残った前記候補のうち、前記Ｉ／Ｏ速度の速い方から順に、予め設定された最大パス数に達するまで、前記アクセスパスの状態を前記論理ディスクへのＩ／Ｏに使用する状態に変更することで、前記アクセスパスの状態を更新するステップと、
を含むことを特徴とするアクセスパス状態更新方法。
【請求項６】
請求項５に記載の各ステップをコンピュータに実行させるためのアクセスパス状態更新プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム、アクセスパス状態更新方法およびアクセスパス状態更新プログラムに関する。
【背景技術】
【０００２】
ストレージシステムでは、複数のアクセスパスを冗長化し、１つのアクセスパスに障害が発生しても他のアクセスパスに切り替えて通信することで、可用性を向上させることができる。また、複数のアクセスパスをＩ／Ｏに使用し、帯域を広く使用することで、Ｉ／Ｏを高速化させることができる。
【０００３】
下記特許文献１には、異なる特性を有するアクセスパスを用いてパスを冗長化するストレージシステムが開示されている。このシステムでは、平常時のＩ／ＯとしてＳＡＮ（Storage Area Network）を使用し、ＳＡＮに障害が発生したときにＬＡＮ（Local Area Network）を使用している。また、下記特許文献２には、性能情報と予め定義されたポリシーとに応じて、複数あるアクセスパスの中から使用するアクセスパスを決定するストレージシステムが開示されている。さらに、下記特許文献３には、アクセスパスの利用率や障害の発生に応じて、未使用のポートを有効化するためのライセンスキーを発行し、有効化したアクセスパスに切り替えるストレージシステムが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−３４８００５号公報
【特許文献２】特開２００７−２８７０６４号公報
【特許文献３】特開２００７−９４６８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記特許文献１のシステムでは、ＳＡＮを運用系、ＬＡＮを待機系に明確に分けており、どちらか一方にしかＩ／Ｏを発行しておらず、負荷状況については考慮されていない。上記特許文献２のシステムでは、定期的なアクセスパスの運用状態により、使用するアクセスパスを決定することはできるが、障害発生時の迅速な対応についてまでは考慮されていない。上記特許文献３のシステムでは、ライセンスを管理する管理サーバが必須となり、アクセスパスの有効化や無効化の処理も発生するため、構成が複雑になる。
【０００６】
本発明は、上述した課題を解決するためになされたものであり、簡易な構成で、負荷状況や障害の発生等に応じて、より効率的なアクセスパスに迅速に切り替えることができるストレージシステム、アクセスパス状態更新方法およびアクセスパス状態更新プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明のストレージシステムは、ホストコンピュータとストレージデバイスとの間に設定される複数のアクセスパスと、前記ストレージデバイス上に形成される論理ディスクごとに、前記論理ディスクに対する各前記アクセスパスの状態をそれぞれ管理するアクセスパス管理部と、前記アクセスパスごとに、前記アクセスパスを用いてＩ／Ｏを実行したときのデータサイズおよび所要時間を蓄積し、所定の算出周期ごとに、前記蓄積した前記データサイズおよび前記所要時間を用いてＩ／Ｏ速度を算出するＩ／Ｏ速度算出部と、前記アクセスパスの状態を更新する条件が成立したときに、前記アクセスパスの中から、前記アクセスパスの状態が利用可能な状態に設定されている前記アクセスパスを、前記論理ディスクへのＩ／Ｏに使用する前記アクセスパスの候補として選択するパス候補選択部と、前記パス候補選択部により選択された前記アクセスパスに対応する前記Ｉ／Ｏ速度のうち、最速の値を用いて性能判定用閾値を算出し、前記Ｉ／Ｏ速度が前記性能判定用閾値よりも遅い前記アクセスパスを、前記候補から除外するパス候補除外部と、を備え、前記アクセスパス管理部は、前記パス候補除外部による除外後に残った前記候補のうち、前記Ｉ／Ｏ速度の速い方から順に、予め設定された最大パス数に達するまで、前記アクセスパスの状態を前記論理ディスクへのＩ／Ｏに使用する状態に変更することで、前記アクセスパスの状態を更新する。
【０００８】
本発明のアクセスパス状態更新方法は、ホストコンピュータとストレージデバイスとの間に設定される複数のアクセスパスの状態を更新する方法であって、前記ストレージデバイス上に形成される論理ディスクごとに、前記論理ディスクに対する各前記アクセスパスの状態をそれぞれ管理するステップと、前記アクセスパスごとに、前記アクセスパスを用いてＩ／Ｏを実行したときのデータサイズおよび所要時間を蓄積し、所定の算出周期ごとに、前記蓄積した前記データサイズおよび前記所要時間を用いてＩ／Ｏ速度を算出するステップと、前記アクセスパスの状態を更新する条件が成立したときに、前記アクセスパスの中から、前記アクセスパスの状態が利用可能な状態に設定されている前記アクセスパスを、前記論理ディスクへのＩ／Ｏに使用する前記アクセスパスの候補として選択するステップと、前記選択された前記アクセスパスに対応する前記Ｉ／Ｏ速度のうち、最速の値を用いて性能判定用閾値を算出し、前記Ｉ／Ｏ速度が前記性能判定用閾値よりも遅い前記アクセスパスを、前記候補から除外するステップと、前記除外後に残った前記候補のうち、前記Ｉ／Ｏ速度の速い方から順に、予め設定された最大パス数に達するまで、前記アクセスパスの状態を前記論理ディスクへのＩ／Ｏに使用する状態に変更することで、前記アクセスパスの状態を更新するステップと、を含む。
【０００９】
本発明のアクセスパス状態更新プログラムは、上記アクセスパス状態更新方法に含まれる各ステップをコンピュータに実行させる。
【発明の効果】
【００１０】
本発明によれば、簡易な構成で、負荷状況や障害の発生等に応じて、より効率的なアクセスパスに迅速に切り替えることができる。
【図面の簡単な説明】
【００１１】
【図１】実施形態におけるストレージシステムの構成を例示するブロック図である。
【図２】アクセスパス負荷状況テーブルのデータ構成を例示する図である。
【図３】アクセスパス状態テーブルのデータ構成を例示する図である。
【図４】Ｉ／Ｏ負荷分散情報テーブルのデータ構成を例示する図である。
【図５】論理ディスクを認識したときの動作を説明するためのフローチャートである。
【図６】アクセスパス負荷状況テーブルのサイズ項目および所要時間項目を更新する際の動作を説明するためのフローチャートである。
【図７】アクセスパス負荷状況テーブルの速度項目を更新する際の動作を説明するためのフローチャートである。
【図８】アクセスパス状態テーブルのアクセスパスの状態項目を更新する際の動作を説明するためのフローチャートである。
【図９】アクセスパス状態テーブルのアクセスパスの状態項目を更新する際の動作を説明するためのフローチャートである。
【図１０】アクセスパス負荷状況テーブルに格納されているデータの一例である。
【図１１】アクセスパス状態テーブルに格納されているデータの一例である。
【図１２】Ｉ／Ｏ負荷分散情報テーブルに格納されているデータの一例である。
【図１３】アクセスパス状態テーブルに格納されているデータの一例である。
【図１４】アクセスパス状態テーブルに格納されているデータの一例である。
【図１５】アクセスパス状態テーブルに格納されているデータの一例である。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照して、本発明に係るストレージシステム、アクセスパス状態更新方法およびアクセスパス状態更新プログラムの好適な実施形態について説明する。
【００１３】
まず、図１を参照して、実施形態におけるストレージシステムの構成について説明する。図１に示すように、ストレージシステムは、ホストコンピュータ１と、一または複数の論理ディスク２１を形成するストレージデバイス２とを備える。ホストコンピュータ１およびストレージデバイス２は、それぞれ複数のポート１０およびポート２０を有する。ホストコンピュータ１およびストレージデバイス２は、それぞれポート１０およびポート２０を介してネットワークで接続されている。ポート１０とポート２０との間を接続する経路をアクセスパス３０と呼ぶ。
【００１４】
アクセスパス３０を実装する方法として、例えば、ＦＣ（Fiber Channel）ケーブルを使用し、ホストコンピュータ１に実装したＦＣ ＨＢＡ（Fiber Channel Host Bus Adapter）から、ＦＣスイッチを介し、ストレージデバイス２のＦＣポートにＦＣプロトコルで接続する方法や、ＩＰ（Internet Protocol）ネットワークで接続しｉＳＣＳＩ（internet Small Computer System Interface）プロトコルで接続する方法等を採用することができる。
【００１５】
アクセスパス３０を実装する際には複数の方法を採用してもよい。具体的には、あるアクセスパス３０はＦＣプロトコルで接続し、他のアクセスパス３０はｉＳＣＳＩプロトコルで接続することとしてもよい。
【００１６】
ここで、ホストコンピュータ１は、物理的には、例えば、ＣＰＵ（Central Processing Unit）と、記憶装置と、入出力インターフェースとを含んで構成される。記憶装置には、例えば、ＣＰＵで処理されるプログラムやデータを記憶するＲＯＭ（Read Only Memory）やＨＤＤ（Hard Disk Drive）、主として制御処理のための各種作業領域として使用されるＲＡＭ（Random Access Memory）等の要素が含まれる。これらの要素は、互いにバスを介して接続されている。ＣＰＵが、ＲＯＭに記憶されたプログラムを実行し、ＲＡＭに展開されたデータを処理することで、後述するホストコンピュータ１における各部の機能を実現することができる。
【００１７】
図１を参照して、ホストコンピュータ１の機能構成について説明する。ホストコンピュータ１は、機能的には、例えば、Ｉ／Ｏ速度算出部１２と、パス候補選択部１３と、パス候補除外部１４とを含むアクセスパス管理部１１を有する。ホストコンピュータ１は、各部が参照するアクセスパス負荷状況テーブル１５、アクセスパス状態テーブル１６およびＩ／Ｏ負荷分散情報テーブル１７を備える。
【００１８】
図２を参照して、アクセスパス負荷状況テーブル１５のデータ構成について説明する。アクセスパス負荷状況テーブルは、データ項目として、例えば、アクセスパス識別子項目、サイズ項目、所要時間項目および速度項目を有する。サイズ項目、所要時間項目および速度項目は、Ｒｅａｄ−Ｉ／ＯとＷｒｉｔｅ−Ｉ／Ｏとでそれぞれ設けられる。アクセスパス識別子項目は、アクセスパス３０を一意に特定する識別情報を格納する。サイズ項目は、所定間隔で発生するＲｅａｄ−Ｉ／ＯまたはＷｒｉｔｅ−Ｉ／Ｏにおけるデータサイズの累計値を格納する。所要時間項目は、所定間隔で発生するＲｅａｄ−Ｉ／ＯまたはＷｒｉｔｅ−Ｉ／Ｏの所要時間の累計時間を格納する。速度項目は、Ｒｅａｄ−Ｉ／ＯまたはＷｒｉｔｅ−Ｉ／Ｏの処理速度を格納する。アクセスパス負荷状況テーブル１５の初期状態は空のテーブルとなる。
【００１９】
図３を参照して、アクセスパス状態テーブル１６のデータ構成について説明する。アクセスパス状態テーブル１６は、データ項目として、例えば、論理ディスク識別子項目、アクセスパス識別子項目およびアクセスパス状態項目を有する。アクセスパス識別子項目およびアクセスパス状態項目は、アクセスパス３０ごとに設けられ、アクセスパスリストを構成する。論理ディスク識別子項目には、論理ディスク２１を一意に特定する識別情報が格納される。アクセスパス識別子項目は、アクセスパス３０を一意に特定する識別情報を格納する。アクセスパス状態項目は、アクセスパス３０の状態を格納する。アクセスパス３０の状態として、例えば、読み込みのみに使用する“Ｒｅａｄ”、書き込みのみに使用する“Ｗｒｉｔｅ”、読み込みおよび書き込みの両方に使用する“Ｒｅａｄ／Ｗｒｉｔｅ”、Ｉ／Ｏに使用していないが使用可能な状態の“Ｓｔａｎｄｂｙ”、障害が発生してＩ／Ｏに使用できない状態の“Ｆａｉｌｅｄ”を用いることができる。アクセスパス状態テーブル１６の初期状態は空のテーブルとなる。
【００２０】
図４を参照して、Ｉ／Ｏ負荷分散情報テーブル１７のデータ構成について説明する。Ｉ／Ｏ負荷分散情報テーブル１７は、データ項目として、例えば、Ｉ／Ｏ速度更新周期項目、Ｉ／Ｏ発行周期項目、最大パス項目および速度閾値項目を有する。最大パス項目および速度閾値項目は、Ｒｅａｄ−Ｉ／ＯとＷｒｉｔｅ−Ｉ／Ｏとでそれぞれ設けられる。Ｉ／Ｏ速度更新周期項目は、アクセスパス負荷状況テーブル１５の速度項目を更新する周期を格納する。Ｉ／Ｏ発行周期項目は、Ｉ／Ｏを発行する周期を格納する。最大パス項目は、Ｒｅａｄ−Ｉ／ＯまたはＷｒｉｔｅ−Ｉ／Ｏに使用可能なアクセスパス３０の最大数を格納する。速度閾値項目は、アクセスパス３０の候補を選択する際の性能判定用閾値を算出するための最速値に対する割合を格納する。Ｉ／Ｏ負荷分散情報テーブル１７の初期状態は、運用方針に応じた適切な値が予め各項目に設定されている。
【００２１】
図１に示すＩ／Ｏ速度算出部１２は、アクセスパス３０ごとに、アクセスパス３０を用いてＩ／Ｏを実行したときのデータサイズおよび所要時間をアクセスパス負荷状況テーブル１５に蓄積する。Ｉ／Ｏ速度算出部１２は、所定の算出周期ごとに、アクセスパス負荷状況テーブル１５のデータサイズおよび所要時間を用いてＩ／Ｏ速度を算出し、算出した速度をアクセスパス負荷状況テーブル１５に格納する。Ｉ／Ｏには、Ｒｅａｄ−Ｉ／ＯとＷｒｉｔｅ−Ｉ／Ｏとが含まれる。
【００２２】
パス候補選択部１３は、アクセスパス状態テーブル１６で管理するアクセスパスの状態を更新する条件が成立したときに、アクセスパス３０の中から、論理ディスク２１へのＩ／Ｏに使用するアクセスパス３０の候補を選択する。
【００２３】
アクセスパスの状態を更新する条件としては、例えば、使用可能なアクセスパス３０の数が増減したこと、アクセスパス３０で障害が検知されたこと、アクセスパス３０が障害から復旧したこと、Ｉ／Ｏ負荷分散情報テーブル１７のＩ／Ｏ速度更新周期が経過してＩ／Ｏ速度が更新されたこと、が該当する。
【００２４】
パス候補選択部１３は、アクセスパス３０の候補を選択する際に、アクセスパスの状態が利用可能な状態に設定されているアクセスパス３０を、候補として選択する。利用可能な状態としては、例えば、“Ｒｅａｄ”、“Ｗｒｉｔｅ”、“Ｒｅａｄ／Ｗｒｉｔｅ”、“Ｓｔａｎｄｂｙ”が該当する。一方、利用不可能な状態としては、例えば、“Ｆａｉｌｅｄ”が該当する。図３を参照して、具体的に説明する。
【００２５】
図３の論理ディスク識別子が“ＬＵＮ１”である論理ディスク２１へのアクセスパス候補は、アクセスパスの状態が“Ｆａｉｌｅｄ”である“パス４”を除く、“パス１”〜“パス３”となる。また、論理ディスク識別子が“ＬＵＮ２”である論理ディスク２１へのアクセスパス候補は、アクセスパスの状態が“Ｆａｉｌｅｄ”である“パス４”を除く、“パス１”〜“パス３”となる。
【００２６】
パス候補除外部１４は、パス候補選択部１３により選択されたアクセスパス３０に対応するＩ／Ｏ速度のうち、最速の値を用いて性能判定用閾値を算出し、Ｉ／Ｏ速度が性能判定用閾値よりも遅いアクセスパス３０を、上記候補から除外する。図２および図４を参照して、具体的に説明する。
【００２７】
図２のＲｅａｄ−Ｉ／Ｏの速度では、“パス１”の速度“８００ＭＢ／ｓｅｃ”が最速となる。図４のＲｅａｄ−Ｉ／Ｏの速度閾値は“６０％”である。この場合、パス候補除外部１４は、性能判定用閾値として、“８００ＭＢ／ｓｅｃ”×“０．６”＝“”４８０ＭＢ／ｓｅｃ”を算出する。図２の“パス１”〜“パス３”がアクセスパスの候補として選択されている場合に、パス候補除外部１４は、速度が“４８０ＭＢ／ｓｅｃ”よりも遅い、“パス３”を上記候補から除外する。
【００２８】
アクセスパス管理部１１は、アクセスパス状態テーブル１６を管理し、ホストコンピュータ１からストレージデバイス２の論理ディスク２１へのアクセスパス３０を管理する。アクセスパス管理部１１は、複数のアクセスパス３０にＩ／Ｏを発行することで、負荷分散を実現する。
【００２９】
アクセスパス管理部１１は、パス候補除外部１４による除外後に残った候補のうち、Ｉ／Ｏ速度の速い方から順に、予め設定された最大パス数に達するまで、アクセスパスの状態を論理ディスク２１へのＩ／Ｏに使用する状態に変更して更新する。図２〜図４を参照して、具体的に説明する。
【００３０】
例えば、論理ディスク識別子が“ＬＵＮ１”である論理ディスク２１へのＲｅａｄ−Ｉ／Ｏでのアクセスパス候補として残っているパスが“パス１”および“パス２”である場合について説明する。この場合、図２の速度は、“パス２”よりも“パス１”の方が速い。図４のＲｅａｄ−Ｉ／Ｏの最大パス数は“２”である。したがって、アクセスパス管理部１１は、図３の論理ディスク識別子“ＬＵＮ１”に対応して記憶される“パス１”のアクセスパス状態および“パス２”のアクセスパス状態を、“Ｒｅａｄ”に変更して更新する。
【００３１】
アクセスパス管理部１１は、アクセスパス３０で障害が検知された場合に、検知されたアクセスパス３０のアクセスパス識別子を用いてアクセスパス状態テーブル１６を参照し、当該アクセスパス識別子に対応するアクセスパス状態を、“Ｆａｉｌｅｄ”に変更する。これにより、他のアクセスパス３０にフェイルオーバすることが可能となり、アクセスパスを冗長化することが可能となる。
【００３２】
アクセスパス管理部１１は、アクセスパス３０で障害の復旧が検知された場合に、検知されたアクセスパス３０のアクセスパス識別子を用いてアクセスパス状態テーブル１６を参照し、当該アクセスパス識別子に対応するアクセスパス状態を、“Ｓｔａｎｄｂｙ”に変更する。
【００３３】
次に、ストレージシステムの動作について説明する。
【００３４】
図５を参照して、アクセスパス管理部１１が、論理ディスク２１を認識した際の動作について説明する。
【００３５】
最初に、アクセスパス管理部１１は、アクセスパス負荷状況テーブル１５に新たなエントリを追加し、論理ディスク２１を認識した際のアクセスパス３０のアクセスパス識別子をアクセスパス識別子項目に格納する（ステップＳ１０１）。
【００３６】
続いて、アクセスパス管理部１１は、認識した論理ディスク２１の論理ディスク識別子を用いて、アクセスパス状態テーブル１６から、当該論理ディスク識別子と一致する論理ディスク識別子を有するエントリを検索する（ステップＳ１０２）。この検索において、一致するエントリが存在しない場合（ステップＳ１０３；ＮＯ）に、アクセスパス管理部１１は、アクセスパス状態テーブル１６に新たなエントリを追加し、認識した論理ディスク２１の論理ディスク識別子を論理ディスク識別子項目に格納し、論理ディスク２１を認識した際のアクセスパス３０のアクセスパス識別子をアクセスパス識別子項目に格納し、“Ｓｔａｎｄｂｙ”をアクセスパス状態項目に格納する（ステップＳ１０４）。
【００３７】
一方、上記ステップＳ１０２の検索において、一致するエントリが存在した場合（ステップＳ１０２；ＹＥＳ）に、アクセスパス管理部１１は、上記ステップＳ１０１で格納したアクセスパス識別子が、一致したエントリに含まれるか否かを判定する（ステップＳ１０５）。この判定がＮＯである場合（ステップＳ１０５；ＮＯ）に、アクセスパス管理部１１は、一致したエントリのアクセスパスリストに、アクセスパス識別子項目とアクセス状態項目とを追加し、論理ディスク２１を認識した際のアクセスパス３０のアクセスパス識別子と、“Ｓｔａｎｄｂｙ”とをそれぞれに格納する（ステップＳ１０６）。
【００３８】
一方、上記ステップＳ１０５の判定において、上記アクセスパス識別子が一致したエントリに含まれると判定された場合（ステップＳ１０５；ＹＥＳ）に、アクセスパス管理部１１は、上記アクセスパス識別子に対応するアクセス状態項目を“Ｓｔａｎｄｂｙ”に変更する（ステップＳ１０７）。
【００３９】
図６を参照して、アクセスパス管理部１１が、アクセスパス負荷状況テーブル１５のサイズ項目および所要時間項目を更新する際の動作について説明する。
【００４０】
最初に、アクセスパス管理部１１は、アクセスパス状態テーブル１６で管理している論理ディスク２１に対するＩ／Ｏの発行要求を受けたときに、Ｉ／Ｏの発行先となるアクセスパス３０を決定する（ステップＳ２０１）。なお、アクセスパス３０を決定する際の詳細は後述する。
【００４１】
続いて、アクセスパス管理部１１は、Ｉ／Ｏ開始時刻を記録し、上記ステップＳ２０１で決定したアクセスパス３０にＩ／Ｏを発行する（ステップＳ２０２）。
【００４２】
続いて、アクセスパス管理部１１は、発行したＩ／Ｏの処理ステータスが成功であるか否かを判定する（ステップＳ２０３）。この判定がＮＯである場合（ステップＳ２０３；ＮＯ）に、アクセスパス管理部１１は、エラー処理を実行する（ステップＳ２０４）。ここで、エラー処理としては、例えば、同一のアクセスパス３０にＩ／Ｏをリトライする、発行先のアクセスパス３０に障害が発生したとみなし、このアクセスパス３０を閉塞して他のアクセスパス３０にＩ／Ｏを再送する、Ｉ／Ｏの発行要求元へエラーを返す等が該当する。
【００４３】
エラー処理の結果、Ｉ／Ｏを再発行する場合（ステップＳ２０５；ＹＥＳ）には、処理を上記ステップＳ２０１に移行する。Ｉ／Ｏを再発行しない場合（ステップＳ２０５；ＮＯ）には、本動作を終了する。
【００４４】
一方、上記ステップＳ２０３の判定で、処理ステータスが成功であると判定された場合（ステップＳ２０３；ＹＥＳ）に、アクセスパス管理部１１は、現時刻とＩ／Ｏ開始時刻との差からＩ／Ｏの所要時間を算出する（ステップＳ２０６）。
【００４５】
続いて、アクセスパス管理部１１は、アクセスパス負荷状況テーブル１５から、Ｉ／Ｏ発行先のアクセスパス３０のアクセスパス識別子と一致するエントリを抽出する（ステップＳ２０７）。
【００４６】
続いて、アクセスパス管理部１１は、発行したＩ／Ｏの種類をチェックする（ステップＳ２０８）。Ｉ／Ｏの種類が読み込みであると判明した場合に、アクセスパス管理部１１は、発行したＩ／Ｏのデータサイズを、上記ステップＳ２０６で抽出したエントリのＲｅａｄ−Ｉ／Ｏサイズに加算し、上記ステップＳ２０５で算出したＩ／Ｏの所要時間を、同エントリのＲｅａｄ−Ｉ／Ｏ所要時間に加算する（ステップＳ２０９）。
【００４７】
一方、上記ステップＳ２０８のチェックでＩ／Ｏの種類が書き込みであると判明した場合に、アクセスパス管理部１１は、発行したＩ／Ｏのデータサイズを、上記ステップＳ２０６で抽出したエントリのＷｒｉｔｅ−Ｉ／Ｏサイズに加算し、上記ステップＳ２０６で算出したＩ／Ｏの所要時間を、同エントリのＷｒｉｔｅ−Ｉ／Ｏ所要時間に加算する（ステップＳ２１０）。
【００４８】
一方、上記ステップＳ２０８のチェックでＩ／Ｏの種類が読み込みでも書き込みでもないと判明した場合には、本動作を終了する。
【００４９】
ここで、Ｉ／Ｏのサイズや所要時間を更新するためには、Ｉ／Ｏの発行要求が必要となる。したがって、Ｉ／Ｏに使用しないアクセスパスや、Ｉ／Ｏが発行されないアクセスパスは、Ｉ／Ｏのサイズや所要時間が更新されないこととなる。これを回避するために、アクセスパス管理部１１は、定期的に検査用のＩ／Ｏを発行する。具体的に、アクセスパス管理部１１は、Ｉ／Ｏ負荷分散情報テーブル１７のＩ／Ｏ発行周期ごとに、検査用の読み込みおよび書き込みのＩ／Ｏを発行する。これにより、全てのアクセスパスの負荷状況を定期的に更新することができる。
【００５０】
上記ステップＳ２０１で述べたアクセスパス３０の決定方法について、以下に説明する。
【００５１】
上記検査用のＩ／Ｏを発行するとき等のように、Ｉ／Ｏの発行先となるアクセスパスが指定されている場合には、その指定されているアクセスパスをＩ／Ｏに使用する。
【００５２】
一方、Ｉ／Ｏの発行先となるアクセスパスが指定されていない場合には、発行するＩ／Ｏが読み込みのＩ／Ｏであるのか、書き込みのＩ／Ｏであるのかを判定する。
【００５３】
発行するＩ／Ｏが読み込みのＩ／Ｏである場合には、アクセスパス状態テーブル１６から、Ｉ／Ｏの発行先となる論理ディスク２１の論理ディスク識別子と一致する論理ディスク識別子を有するエントリを抽出する。そして、抽出したエントリのアクセスパスリストから、アクセスパスの状態が“Ｒｅａｄ／Ｗｒｉｔｅ”または“Ｒｅａｄ”になっているアクセスパスを選択して、Ｉ／Ｏに使用する。
【００５４】
発行するＩ／Ｏが書き込みのＩ／Ｏである場合には、アクセスパス状態テーブル１６から、Ｉ／Ｏの発行先となる論理ディスク２１の論理ディスク識別子と一致する論理ディスク識別子を有するエントリを抽出する。そして、抽出したエントリのアクセスパスリストから、アクセスパスの状態が“Ｒｅａｄ／Ｗｒｉｔｅ”または“Ｗｒｉｔｅ”になっているアクセスパスを選択して、Ｉ／Ｏに使用する。
【００５５】
発行するＩ／Ｏが読み込みでも書き込みでもない場合には、上述した読み込みのＩ／Ｏと同様の方法で使用するアクセスパスを決定する。
【００５６】
使用するアクセスパスが複数ある場合には、それらの間で負荷分散を実施する。負荷分散の方式として、例えば、それぞれのアクセスパスに順番を付け、Ｉ／Ｏごとに順番に使用していくラウンドロビン方式等を用いることができる。
【００５７】
図７を参照して、アクセスパス管理部１１が、アクセスパス負荷状況テーブル１５の速度項目を更新する際の動作について説明する。アクセスパス管理部１１は、Ｉ／Ｏ負荷分散情報テーブル１７のＩ／Ｏ速度更新周期ごとに、本動作を実行する。また、アクセスパス管理部１１は、アクセスパス負荷状況テーブル１５の全てのエントリ、つまり全てのアクセスパス３０について、以下の各処理を繰り返し実行する。
【００５８】
最初に、アクセスパス管理部１１は、対象エントリのＲｅａｄ−Ｉ／Ｏの所要時間が０か否かを判定する（ステップＳ３０１）。この判定がＹＥＳである場合（ステップＳ３０１；ＹＥＳ）には、処理を後述するステップＳ３０３に移行する。
【００５９】
一方、上記ステップＳ３０１の判定でＲｅａｄ−Ｉ／Ｏの所要時間が０ではないと判定された場合（ステップＳ３０１；ＮＯ）に、アクセスパス管理部１１は、Ｒｅａｄ−Ｉ／ＯのサイズをＲｅａｄ−Ｉ／Ｏの所要時間で除算した値を、Ｒｅａｄ−Ｉ／Ｏの速度項目に格納して更新する（ステップＳ３０２）。
【００６０】
続いて、アクセスパス管理部１１は、対象エントリのＷｒｉｔｅ−Ｉ／Ｏの所要時間が０か否かを判定する（ステップＳ３０３）。この判定がＹＥＳである場合（ステップＳ３０３；ＹＥＳ）には、処理を後述するステップＳ３０５に移行する。
【００６１】
一方、上記ステップＳ３０３の判定でＷｒｉｔｅ−Ｉ／Ｏ所要時間が０ではないと判定された場合（ステップＳ３０３；ＮＯ）に、アクセスパス管理部１１は、Ｗｒｉｔｅ−Ｉ／ＯのサイズをＷｒｉｔｅ−Ｉ／Ｏの所要時間で除算した値を、Ｗｒｉｔｅ−Ｉ／Ｏの速度項目に格納して更新する（ステップＳ３０４）。
【００６２】
続いて、アクセスパス管理部１１は、対象エントリのＲｅａｄ−Ｉ／Ｏのサイズおよび所要時間、ならびにＷｒｉｔｅ−Ｉ／Ｏのサイズおよび所要時間を、それぞれ０にリセットして更新する（ステップＳ３０５）。
【００６３】
上述したステップＳ３０１〜Ｓ３０５までの処理を、アクセスパス負荷状況テーブル１５の全てのエントリについて繰り返すことで、Ｉ／Ｏ速度の更新が完了する。
【００６４】
図８および図９を参照して、アクセスパス管理部１１が、アクセスパス状態テーブル１６のアクセスパスの状態項目を更新する際の動作について説明する。アクセスパス管理部１１は、アクセスパスの状態を更新する条件が成立したときに、本動作を開始する。また、アクセスパス管理部１１は、アクセスパス状態テーブル１６の全てのエントリ、つまり全ての論理ディスク２１について、以下の各処理を繰り返し実行する。
【００６５】
最初に、アクセスパス管理部１１は、対象エントリのアクセスパスリストに登録されているアクセスパス３０のうち、アクセスパスの状態が“Ｆａｉｌｅｄ”以外の全てのアクセスパスを、Ｒｅａｄ−Ｉ／ＯおよびＷｒｉｔｅ−Ｉ／Ｏの候補としてそれぞれ選択する（ステップＳ４０１）。
【００６６】
続いて、アクセスパス管理部１１は、アクセスパス負荷状況テーブル１５から、上記ステップＳ４０１でＲｅａｄ−Ｉ／Ｏの候補として選択したアクセスパスのアクセスパス識別子と一致するアクセスパス識別子を有する全てのエントリを抽出する（ステップＳ４０２）。
【００６７】
続いて、アクセスパス管理部１１は、上記ステップＳ４０２で抽出した各エントリのＲｅａｄ−Ｉ／Ｏの速度を比較し、最速値を決定する（ステップＳ４０３）。
【００６８】
続いて、アクセスパス管理部１１は、上記ステップＳ４０３で決定した最速値に、Ｉ／Ｏ負荷分散情報テーブル１７のＲｅａｄ−Ｉ／Ｏの速度閾値を乗算して性能判定用閾値を算出する（ステップＳ４０４）。
【００６９】
続いて、アクセスパス管理部１１は、上記ステップＳ４０２で抽出した各エントリのＲｅａｄ−Ｉ／Ｏの速度の中に、上記ステップＳ４０４で算出した性能判定用閾値未満となる速度が存在する場合に、その速度に対応するアクセスパスをＲｅａｄ−Ｉ／Ｏの候補から除外する（ステップＳ４０５）。
【００７０】
続いて、アクセスパス管理部１１は、上記ステップＳ４０５の除外後に残っているＲｅａｄ−Ｉ／Ｏの候補数が、Ｉ／Ｏ負荷分散情報テーブル１７のＲｅａｄ−Ｉ／Ｏの最大パス数よりも多いか否かを判定する（ステップＳ４０６）。この判定がＮＯである場合（ステップＳ４０６；ＮＯ）には、処理を後述するステップＳ４０８に移行する。
【００７１】
一方、上記ステップＳ４０６の判定でＲｅａｄ−Ｉ／Ｏの候補数が最大パス数よりも多いと判定された場合（ステップＳ４０６；ＹＥＳ）に、アクセスパス管理部１１は、Ｒｅａｄ−Ｉ／Ｏの候補のうち、Ｒｅａｄ−Ｉ／Ｏの速度が速い方から数えて最大パス数分までを、Ｒｅａｄ−Ｉ／Ｏの候補として残し、残りをＲｅａｄ−Ｉ／Ｏの候補から除外する（ステップＳ４０７）。
【００７２】
続いて、アクセスパス管理部１１は、アクセスパス負荷状況テーブル１５から、上記ステップＳ４０１でＷｒｉｔｅ−Ｉ／Ｏの候補として選択したアクセスパスのアクセスパス識別子と一致するアクセスパス識別子を有する全てのエントリを抽出する（ステップＳ４０８）。
【００７３】
続いて、アクセスパス管理部１１は、上記ステップＳ４０８で抽出した各エントリのＷｒｉｔｅ−Ｉ／Ｏの速度を比較し、最速値を決定する（ステップＳ４０９）。
【００７４】
続いて、アクセスパス管理部１１は、上記ステップＳ４０９で決定した最速値に、Ｉ／Ｏ負荷分散情報テーブル１７のＷｒｉｔｅ−Ｉ／Ｏの速度閾値を乗算して性能判定用閾値を算出する（ステップＳ４１０）。
【００７５】
続いて、アクセスパス管理部１１は、上記ステップＳ４０８で抽出した各エントリのＷｒｉｔｅ−Ｉ／Ｏの速度の中に、上記ステップＳ４１０で算出した性能判定用閾値未満となる速度が存在する場合に、その速度に対応するアクセスパスをＷｒｉｔｅ−Ｉ／Ｏの候補から除外する（ステップＳ４１１）。
【００７６】
続いて、アクセスパス管理部１１は、上記ステップＳ４１１の除外後に残っているＷｒｉｔｅ−Ｉ／Ｏの候補数が、Ｉ／Ｏ負荷分散情報テーブル１７のＷｒｉｔｅ−Ｉ／Ｏの最大パス数よりも多いか否かを判定する（ステップＳ４１２）。この判定がＮＯである場合（ステップＳ４１２；ＮＯ）には、処理を後述するステップＳ４１４に移行する。
【００７７】
一方、上記ステップＳ４１２の判定でＷｒｉｔｅ−Ｉ／Ｏの候補数が最大パス数よりも多いと判定された場合（ステップＳ４１２；ＹＥＳ）に、アクセスパス管理部１１は、Ｗｒｉｔｅ−Ｉ／Ｏの候補のうち、Ｗｒｉｔｅ−Ｉ／Ｏの速度が速い方から数えて最大パス数分までを、Ｗｒｉｔｅ−Ｉ／Ｏの候補として残し、残りをＷｒｉｔｅ−Ｉ／Ｏの候補から除外する（ステップＳ４１３）。
【００７８】
続いて、アクセスパス管理部１１は、上記ステップＳ４０７で残っているＲｅａｄ−Ｉ／Ｏの候補と、上記ステップＳ４１３で残っているＷｒｉｔｅ−Ｉ／Ｏの候補とに基づいて、対象エントリのアクセスパスリストに登録されているアクセスパスの状態を更新する（ステップＳ４１４）。
【００７９】
更新後のアクセスパスの状態は、以下のようになる。
【００８０】
Ｒｅａｄ−Ｉ／ＯとＷｒｉｔｅ−Ｉ／Ｏとの双方に候補として選択されている場合には、その候補のアクセスパスの状態を、“Ｒｅａｄ／Ｗｒｉｔｅ”に更新する。
【００８１】
Ｒｅａｄ−Ｉ／Ｏにのみ候補として選択されている場合には、その候補のアクセスパスの状態を、“Ｒｅａｄ”に更新する。
【００８２】
Ｗｒｉｔｅ−Ｉ／Ｏにのみ候補として選択されている場合には、その候補のアクセスパスの状態を、“Ｗｒｉｔｅ”に更新する。
【００８３】
Ｒｅａｄ−Ｉ／ＯとＷｒｉｔｅ−Ｉ／Ｏのいずれにも候補として選択されていない場合には、そのアクセスパスの状態を、“Ｓｔａｎｄｂｙ”に更新する。
【００８４】
上述したステップＳ４０１〜Ｓ４１４までの処理を、アクセスパス状態テーブル１６の全てのエントリについて繰り返すことで、アクセスパスの状態の更新が完了する。
【００８５】
次に、図８および図９に示すアクセスパスの状態を更新する際の動作を、具体例を用いて説明する。
【００８６】
この動作例は、以下の前提で動作する。ホストコンピュータ１からストレージデバイス２へのアクセスパスは４本であり、それぞれのアクセスパス識別子は、“パス１”、“パス２”、“パス３”および“パス４”である。“パス１”および“パス２”のアクセスパスは、ホストコンピュータ１からストレージデバイス２に直接接続されており、“パス３”および“パス４”のアクセスパスは、共有のネットワークを介して接続されている。ストレージデバイス２は、論理ディスク識別子が“ＬＵＮ１”である論理ディスク２１を有する。
【００８７】
また、本動作開始時のアクセスパス負荷状況テーブル１５の内容を図１０に示し、アクセスパス状態テーブル１６の内容を図１１に示し、Ｉ／Ｏ負荷分散情報テーブル１７の内容を図１２に示す。
【００８８】
最初に、ステップＳ４０１で、Ｒｅａｄ−Ｉ／ＯおよびＷｒｉｔｅ−Ｉ／Ｏの候補が選択される。図１１のアクセスパス状態テーブル１６では、全てのアクセスパスの状態が“Ｆａｉｌｅｄ”以外であるため、“パス１”、“パス２”、“パス３”および“パス４”が、Ｒｅａｄ−Ｉ／ＯおよびＷｒｉｔｅ−Ｉ／Ｏの候補として選択される。
【００８９】
続いて、ステップＳ４０３で、Ｒｅａｄ−Ｉ／Ｏの最速値が決定される。図１０のアクセスパス負荷状況テーブル１５では、“パス１”の“１０００ＭＢ／ｓｅｃ”が最速値として決定される。
【００９０】
続いて、ステップＳ４０５で、Ｒｅａｄ−Ｉ／Ｏの候補から、Ｒｅａｄ−Ｉ／Ｏの性能判定用閾値未満のアクセスパスが除外される。図１２のＩ／Ｏ負荷分散情報テーブル１７では、Ｒｅａｄ−Ｉ／Ｏの速度閾値が“６０％”であり、最速値が“１０００ＭＢ／ｓｅｃ”であるため、性能判定用閾値は、“６００ＭＢ／ｓｅｃ”となる。図１０のアクセスパス負荷状況テーブル１５では、“パス３”および“パス４”の速度が、“６００ＭＢ／ｓｅｃ”未満となるため、Ｒｅａｄ−Ｉ／Ｏの候補から“パス３”および“パス４”が除外される。
【００９１】
続いて、ステップＳ４０６で、残っているＲｅａｄ−Ｉ／Ｏの候補数をチェックする。図１２のＩ／Ｏ負荷分散情報テーブル１７では、Ｒｅａｄ−Ｉ／Ｏの最大パス数が“２”であり、残っているＲｅａｄ−Ｉ／Ｏの候補数も“２”であるため、この場合には候補の絞り込みが行われない。
【００９２】
続いて、ステップＳ４０９で、Ｗｒｉｔｅ−Ｉ／Ｏの最速値が決定される。図１０のアクセスパス負荷状況テーブル１５では、“パス１”の“５００ＭＢ／ｓｅｃ”が最速値として決定される。
【００９３】
続いて、ステップＳ４１１で、Ｗｒｉｔｅ−Ｉ／Ｏの候補から、Ｗｒｉｔｅ−Ｉ／Ｏの性能判定用閾値未満のアクセスパスが除外される。図１２のＩ／Ｏ負荷分散情報テーブル１７では、Ｗｒｉｔｅ−Ｉ／Ｏの速度閾値が“５０％”であり、最速値が“５００ＭＢ／ｓｅｃ”であるため、性能判定用閾値は、“２５０ＭＢ／ｓｅｃ”となる。図１０のアクセスパス負荷状況テーブル１５では、“パス４”の速度が、“２５０ＭＢ／ｓｅｃ”未満となるため、Ｗｒｉｔｅ−Ｉ／Ｏの候補から“パス４”が除外される。
【００９４】
続いて、ステップＳ４１２で、残っているＷｒｉｔｅ−Ｉ／Ｏの候補数がチェックされる。図１２のＩ／Ｏ負荷分散情報テーブル１７では、Ｗｒｉｔｅ−Ｉ／Ｏの最大パス数が“２”であり、残っているＷｒｉｔｅ−Ｉ／Ｏの候補数は“３”であるため、この場合には候補の絞り込みが行われる。
【００９５】
続いて、ステップＳ４１３で、Ｗｒｉｔｅ−Ｉ／Ｏの速度が速い順に、Ｗｒｉｔｅ−Ｉ／Ｏの候補がＷｒｉｔｅ−Ｉ／Ｏの最大パス数に絞り込まれる。図１０のアクセスパス負荷状況テーブル１５では、Ｗｒｉｔｅ−Ｉ／Ｏの速度が速い順に、“パス１”、“パス２”、“パス３”となるため、“パス３”がＷｒｉｔｅ−Ｉ／Ｏの候補から除外される。この結果、“パス１”および“パス２”がＷｒｉｔｅ−Ｉ／Ｏの候補として残る。
【００９６】
続いて、ステップＳ４１４で、対象エントリのアクセスパスリストに登録されているアクセスパスの状態が更新される。この動作例では、Ｒｅａｄ−Ｉ／Ｏ、Ｗｒｉｔｅ−Ｉ／Ｏともに、“パス１”および“パス２”が候補となる。この場合の更新後のアクセスパス状態テーブル１６の内容を、図１３に示す。図１３に示すように、“パス１”および“パス２”のアクセスパスの状態が“Ｒｅａｄ／Ｗｒｉｔｅ”に更新され、“パス３”および“パス４”のアクセスパス状態が“Ｓｔａｎｄｂｙ”に更新される。
【００９７】
次に、図１３に示すアクセスパス状態テーブル１６の状態であるときに、“パス１”で障害が発生した場合について説明する。障害発生後のアクセスパス状態テーブル１６の内容を、図１４に示す。
【００９８】
図１４に示すように、“パス１”のアクセスパスの状態が“Ｆａｉｌｅｄ”に更新される。これにより、“パス１”は、Ｒｅａｄ−Ｉ／ＯおよびＷｒｉｔｅ−Ｉ／Ｏの候補から除外されることになる。
【００９９】
この場合には、Ｒｅａｄ−Ｉ／Ｏの速度の最速値が“８００ＭＢ／ｓｅｃ”となり、その“６０％”にあたる“４８０ＭＢ／ｓｅｃ”未満の速度となる、“パス３”および“パス４”がＲｅａｄ−Ｉ／Ｏの候補から除外される。これにより、Ｒｅａｄ−Ｉ／Ｏの候補は、“パス２”だけになる。
【０１００】
一方、Ｗｒｉｔｅ−Ｉ／Ｏの速度の最速値は“４００ＭＢ／ｓｅｃ”となり、その“５０％”にあたる“２００ＭＢ／ｓｅｃ”未満の速度となる“パス４”がＷｒｉｔｅ−Ｉ／Ｏの候補から除外される。これにより、Ｗｒｉｔｅ−Ｉ／Ｏの候補は、“パス２”および“パス３”になる。
【０１０１】
この場合の更新後のアクセスパス状態テーブル１６の内容を、図１５に示す。図１５に示すように、“パス１”のアクセスパスの状態が“Ｆａｉｌｅｄ”に更新され、“パス２”のアクセスパスの状態が“Ｒｅａｄ／Ｗｒｉｔｅ”に更新され、“パス３”のアクセスパスの状態が“Ｗｒｉｔｅ”に更新され、“パス４”のアクセスパス状態が“Ｓｔａｎｄｂｙ”に更新される。
【０１０２】
つまり、障害発生前には、Ｒｅａｄ−Ｉ／Ｏ、Ｗｒｉｔｅ−Ｉ／Ｏともに、“パス１”および“パス２”を使用していた状態が、障害発生後には、Ｒｅａｄ−Ｉ／Ｏが“パス２”のみを使用し、Ｗｒｉｔｅ−Ｉ／Ｏが“パス２”に加え、“パス３”も使用する状態に遷移する。
【０１０３】
上述したように、本実施形態におけるストレージシステムによれば、アクセスパス管理部１１がアクセスパスの負荷状況に基づいて、使用するアクセスパスを決定することができる。これにより、Ｉ／Ｏの負荷状況が異なる複数のアクセスパスを持つストレージシステムにおいて、速度に基づく性能特性を判断し、最大パス数や速度閾値に基づく負荷分散ポリシーに応じてＩ／Ｏに使用するアクセスパスを効率的に決定することができる。
【０１０４】
また、本実施形態におけるストレージシステムによれば、アクセスパス管理部１１がＩ／Ｏの速度に基づいて負荷状況を判断することができる。これにより、ストレージシステム外からアクセスパスの帯域を共有している場合であっても、負荷状況を判断することが可能となる。
【０１０５】
また、本実施形態におけるストレージシステムによれば、アクセスパス管理部１１が所定の間隔ごとやアクセスパスの状況が変化するたびに、アクセスパスの状態を更新することができる。これにより、アクセスパスの断線やＩ／Ｏ性能の低下が発生した場合であっても、適切なアクセスパスに切り替えることが可能となる。
【０１０６】
以上より、本実施形態におけるストレージシステムによれば、簡易な構成で、負荷状況や障害の発生等に応じて、より効率的なアクセスパスに迅速に切り替えることが可能となる。
【０１０７】
[変形例]
なお、上述した実施形態は、単なる例示に過ぎず、実施形態に明示していない種々の変形や技術の適用を排除するものではない。すなわち、本発明は、その趣旨を逸脱しない範囲で様々な形態に変形して実施することができる。
【０１０８】
例えば、上述した実施形態では、ストレージデバイスが１つである場合について説明しているが、これに限定されない。複数のストレージデバイスであっても本発明を適用することができる。この場合には、ストレージシステム内で一意のアクセスパス識別子および論理ディスク識別子を付与することで、上述した実施形態と同様に実現可能である。
【０１０９】
また、上述した実施形態では、ホストコンピュータが１つである場合について説明しているが、これに限定されない。複数のホストコンピュータであっても本発明を適用することができる。この場合には、それぞれのホストコンピュータのアクセスパス管理部が、自ホストコンピュータに接続されているアクセスパスを管理する。アクセスパス識別子がストレージシステム内で一意であれば、上述した実施形態と同様に実現可能である。
【０１１０】
さらに、上述した実施形態の一部または全部は、以下の付記のようにも記載され得る。ただし、本発明を以下に限定するものではない。
【０１１１】
（付記１）  ホストコンピュータとストレージデバイスとの間に設定される複数のアクセスパスと、前記ストレージデバイス上に形成される論理ディスクごとに、前記論理ディスクに対する各前記アクセスパスの状態をそれぞれ管理するアクセスパス管理部と、前記アクセスパスごとに、前記アクセスパスを用いてＩ／Ｏを実行したときのデータサイズおよび所要時間を蓄積し、所定の算出周期ごとに、前記蓄積した前記データサイズおよび前記所要時間を用いてＩ／Ｏ速度を算出するＩ／Ｏ速度算出部と、前記アクセスパスの状態を更新する条件が成立したときに、前記アクセスパスの中から、前記アクセスパスの状態が利用可能な状態に設定されている前記アクセスパスを、前記論理ディスクへのＩ／Ｏに使用する前記アクセスパスの候補として選択するパス候補選択部と、前記パス候補選択部により選択された前記アクセスパスに対応する前記Ｉ／Ｏ速度のうち、最速の値を用いて性能判定用閾値を算出し、前記Ｉ／Ｏ速度が前記性能判定用閾値よりも遅い前記アクセスパスを、前記候補から除外するパス候補除外部と、を備え、前記アクセスパス管理部は、前記パス候補除外部による除外後に残った前記候補のうち、前記Ｉ／Ｏ速度の速い方から順に、予め設定された最大パス数に達するまで、前記アクセスパスの状態を前記論理ディスクへのＩ／Ｏに使用する状態に変更することで、前記アクセスパスの状態を更新する、ことを特徴とするストレージシステム。
【０１１２】
（付記２）  前記アクセスパス管理部は、前記アクセスパスで障害が検知された場合に、当該障害が検知された前記アクセスパスに対応する前記アクセスパスの状態を、利用不可能な状態に変更する、ことを特徴とする付記１記載のストレージシステム。
【０１１３】
（付記３）  前記アクセスパスの状態を更新する条件として、利用可能な前記アクセスパスの数が増減されたこと、前記アクセスパスで障害が検知されたこと、前記アクセスパスが障害から復旧したこと、所定の更新周期が経過したこと、を含む、ことを特徴とする付記１または２記載のストレージシステム。
【０１１４】
（付記４）  前記Ｉ／Ｏは、Ｒｅａｄ−Ｉ／ＯおよびＷｒｉｔｅ−Ｉ／Ｏを含む、ことを特徴とする付記１〜３のいずれかに記載のストレージシステム。
【０１１５】
（付記５）  ホストコンピュータとストレージデバイスとの間に設定される複数のアクセスパスの状態を更新する方法であって、前記ストレージデバイス上に形成される論理ディスクごとに、前記論理ディスクに対する各前記アクセスパスの状態をそれぞれ管理するステップと、前記アクセスパスごとに、前記アクセスパスを用いてＩ／Ｏを実行したときのデータサイズおよび所要時間を蓄積し、所定の算出周期ごとに、前記蓄積した前記データサイズおよび前記所要時間を用いてＩ／Ｏ速度を算出するステップと、前記アクセスパスの状態を更新する条件が成立したときに、前記アクセスパスの中から、前記アクセスパスの状態が利用可能な状態に設定されている前記アクセスパスを、前記論理ディスクへのＩ／Ｏに使用する前記アクセスパスの候補として選択するステップと、前記選択された前記アクセスパスに対応する前記Ｉ／Ｏ速度のうち、最速の値を用いて性能判定用閾値を算出し、前記Ｉ／Ｏ速度が前記性能判定用閾値よりも遅い前記アクセスパスを、前記候補から除外するステップと、前記除外後に残った前記候補のうち、前記Ｉ／Ｏ速度の速い方から順に、予め設定された最大パス数に達するまで、前記アクセスパスの状態を前記論理ディスクへのＩ／Ｏに使用する状態に変更することで、前記アクセスパスの状態を更新するステップと、を含むことを特徴とするアクセスパス状態更新方法。
【０１１６】
（付記６）  付記５に記載の各ステップをコンピュータに実行させるためのアクセスパス状態更新プログラム。
【符号の説明】
【０１１７】
１…ホストコンピュータ、２…ストレージデバイス、１０…ポート、１１…アクセスパス管理部、１２…Ｉ／Ｏ速度算出部、１３…パス候補選択部、１４…パス候補除外部、１５…アクセスパス負荷状況テーブル、１６…アクセスパス状態テーブル、１７…Ｉ／Ｏ負荷分散情報テーブル、２０…ポート、２１…論理ディスク、３０…アクセスパス。
【図１】
0005668982.tif 000002
【図２】
0005668982.tif 000003
【図３】
0005668982.tif 000004
【図４】
0005668982.tif 000005
【図５】
0005668982.tif 000006
【図６】
0005668982.tif 000007
【図７】
0005668982.tif 000008
【図８】
0005668982.tif 000009
【図９】
0005668982.tif 000010
【図１０】
0005668982.tif 000011
【図１１】
0005668982.tif 000012
【図１２】
0005668982.tif 000013
【図１３】
0005668982.tif 000014
【図１４】
0005668982.tif 000015
【図１５】
0005668982.tif 000016