(57)【要約】      （修正有）【課題】対をなすアクティブ−パッシッブ・リソース・コントローラを有するマルチリクエスタ・ストレージ・システムにおいて、潜在的なＬＵＮスラッシングを防止する。【解決手段】アービトレータ・コンポーネントは、２つの入出力リクエスタの各々が、対をなすアクティブ−パッシッブ・リソース・コントローラに対してどのようなアクセスをもつかを検出し、両方のリクエスタがアクセスをもつ場合、対をなすリソース・コントローラの一方のみを選択し、１つもしくは両方のリクエスタが一方のコントローラに対してアクセスをもつ場合、その一方のみを選択し、各々のリクエスタがそれぞれ異なるコントローラに対してアクセスをもつ場合、一方のコントローラに対する入出力を無効にする。あるいは、入出力は有効にするが、一方のリクエスタの、どちらのコントローラをアクティブなコントローラとして選択するかの決定への参加を無効にする。【選択図】図２
2004185609.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも２つの入出力リクエスタの各々にあり、対をなすアクティブ−パッシッブ・リソース・コントローラのどちらをアクティブなリソース・コントローラに指定するかを決定するためのアービトレーションに参加するように動作可能なアービトレータ・コンポーネントであって、
前記少なくとも２つの入出力リクエスタの各々が、前記対をなすアクティブ−パッシッブ・リソース・コントローラの両方に対する有効なアクセスをもつことが検出されたことに応答して、前記少なくとも２つの入出力リクエスタの各々にある前記アービトレータ・コンポーネントが、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方を選択してアクティブなリソース・コントローラに指定するように動作可能であり、
前記少なくとも２つの入出力リクエスタの一方が、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方のみに対する有効なアクセスをもつことが検出されたことに応答して、前記少なくとも２つの入出力リクエスタの各々にある前記アービトレータ・コンポーネントが、前記対をなすアクティブ−パッシッブ・リソース・コントローラの前記一方のみを選択してアクティブなリソース・コントローラに指定するように動作可能であり、
前記少なくとも２つの入出力リクエスタの各々が、前記対をなすアクティブ−パッシッブ・リソース・コントローラのそれぞれ異なる一方のみに対する有効なアクセスをもつことが検出されたことに応答して、前記少なくとも２つの入出力リクエスタの各々にある前記アービトレータ・コンポーネントが、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方を選択してアクティブなリソース・コントローラに指定するように動作可能であるとともに、
アクティブなリソース・コントローラに指定された前記対をなすアクティブ−パッシッブ・リソース・コントローラの前記一方に対する有効なアクセスをもつ前記少なくとも２つの入出力リクエスタの１つのみからの入出力リクエストを有効にすることと、
アクティブなリソース・コントローラに指定された前記対をなすアクティブ−パッシッブ・リソース・コントローラの前記一方に対する有効なアクセスをもつ前記少なくとも２つの入出力リクエスタの１つのみからの、前記対をなすアクティブ−パッシッブ・リソース・コントローラのパッシッブなコントローラをアクティブに切り替えるためのリクエストを有効にすることとの少なくとも一方を実行するように動作可能である、アービトレータ・コンポーネント。
【請求項２】
前記対をなすアクティブ−パッシッブ・リソース・コントローラが、ストレージ・コントローラを含む、請求項１に記載のアービトレータ・コンポーネント。
【請求項３】
前記対をなすアクティブ−パッシッブ・リソース・コントローラが、ＳＡＮ内のストレージ・コントローラを含む、請求項１に記載のアービトレータ・コンポーネント。
【請求項４】
前記対をなすアクティブ−パッシッブ・リソース・コントローラが、ＳＡＮベースのストレージ仮想化環境内のストレージ・コントローラを含む、請求項１に記載のアービトレータ・コンポーネント。
【請求項５】
前記対をなすアクティブ−パッシッブ・リソース・コントローラが、ストレージ・タンク・システム内のストレージ・コントローラを含む、請求項１に記載のアービトレータ・コンポーネント。
【請求項６】
前記対をなすアクティブ−パッシッブ・リソース・コントローラが、ＲＡＩＤストレージ・コントローラを含む、請求項１に記載のアービトレータ・コンポーネント。
【請求項７】
前記対をなすアクティブ−パッシッブ・リソース・コントローラが、複数の論理ユニットを制御し、前記少なくとも２つの入出力リクエスタの各々が、前記対をなすアクティブ−パッシッブ・リソース・コントローラの両方にある複数の論理ユニットに対する有効なアクセスをもつことが検出されたことに応答して、前記アービトレータ・コンポーネントが、負荷均衡アルゴリズムに基づき、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方を選択して、前記複数の論理ユニットの各々のためのアクティブなリソース・コントローラに指定するように動作可能である、請求項１に記載のアービトレータ・コンポーネント。
【請求項８】
少なくとも２つの入出力リクエスタと、
前記入出力リクエスタに対してリソースを論理ユニットとして提示するように動作可能な対をなすアクティブ−パッシッブ・リソース・コントローラと、
前記少なくとも２つの入出力リクエスタの各々にあり、前記リソース・コントローラの１つもしくは両方に対する有効なアクセスを検出するように動作可能な検出コンポーネントと、
前記少なくとも２つの入出力リクエスタの各々にあり、前記少なくとも２つの入出力リクエスタの少なくとも他の１つへアクセス状態を通知するように動作可能な通信コンポーネントと、
前記少なくとも２つの入出力リクエスタの各々にあり、前記対をなすアクティブ−パッシッブ・リソース・コントローラのどちらをアクティブなリソース・コントローラに指定するかを決定するためのアービトレーションに参加するように動作可能なアービトレータ・コンポーネントとを含む情報処理システムであって、
前記少なくとも２つの入出力リクエスタの各々が、前記対をなすアクティブ−パッシッブ・リソース・コントローラの両方に対する有効なアクセスをもつことが検出されたことに応答して、前記少なくとも２つの入出力リクエスタの各々にある前記アービトレータ・コンポーネントが、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方を選択してアクティブなリソース・コントローラに指定するように動作可能であり、
前記少なくとも２つの入出力リクエスタの一方が、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方のみに対する有効なアクセスをもつことが検出されたことに応答して、前記少なくとも２つの入出力リクエスタの各々にある前記アービトレータ・コンポーネントが、前記対をなすアクティブ−パッシッブ・リソース・コントローラの前記一方のみを選択してアクティブなリソース・コントローラに指定するように動作可能であり、
前記少なくとも２つの入出力リクエスタの各々が、前記対をなすアクティブ−パッシッブ・リソース・コントローラのそれぞれ異なる一方のみに対する有効なアクセスをもつことが検出されたことに応答して、前記少なくとも２つの入出力リクエスタの各々にある前記アービトレータ・コンポーネントが、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方を選択してアクティブなリソース・コントローラに指定するように動作可能であるとともに、
アクティブなリソース・コントローラに指定された前記対をなすアクティブ−パッシッブ・リソース・コントローラの前記一方に対する有効なアクセスをもつ前記少なくとも２つの入出力リクエスタの１つのみからの入出力リクエストを有効にすることと、
アクティブなリソース・コントローラに指定された前記対をなすアクティブ−パッシッブ・リソース・コントローラの前記一方に対する有効なアクセスをもつ前記少なくとも２つの入出力リクエスタの１つのみからの、前記対をなすアクティブ−パッシッブ・リソース・コントローラのパッシッブなコントローラをアクティブに切り替えるためのリクエストを有効にすることとの少なくとも一方を実行するように動作可能である、情報処理システム。
【請求項９】
対をなすアクティブ−パッシッブ・リソース・コントローラのどちらをアクティブなリソース・コントローラに指定するかを決定するためのアービトレーションに参加するステップを含み、さらに、
前記少なくとも２つの入出力リクエスタの各々が、前記対をなすアクティブ−パッシッブ・リソース・コントローラの両方に対する有効なアクセスをもつことが検出されたことに応答して、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方を選択してアクティブなリソース・コントローラに指定するステップと、
前記少なくとも２つの入出力リクエスタの一方が、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方のみに対する有効なアクセスをもつことが検出されたことに応答して、前記対をなすアクティブ−パッシッブ・リソース・コントローラの前記一方のみを選択してアクティブなリソース・コントローラに指定するステップと、
前記少なくとも２つの入出力リクエスタの各々が、前記対をなすアクティブ−パッシッブ・リソース・コントローラのそれぞれ異なる一方のみに対する有効なアクセスをもつことが検出されたことに応答して、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方を選択してアクティブなリソース・コントローラに指定するとともに、
アクティブなリソース・コントローラに指定された前記対をなすアクティブ−パッシッブ・リソース・コントローラの前記一方に対する有効なアクセスをもつ前記少なくとも２つの入出力リクエスタの１つのみからの入出力リクエストを有効にすることと、
アクティブなリソース・コントローラに指定された前記対をなすアクティブ−パッシッブ・リソース・コントローラの前記一方に対する有効なアクセスをもつ前記少なくとも２つの入出力リクエスタの１つのみからの、前記対をなすアクティブ−パッシッブ・リソース・コントローラのパッシッブなコントローラをアクティブに切り替えるためのリクエストを有効にすることとの少なくとも一方を実行するステップとを含む情報処理のための方法。
【請求項１０】
少なくとも２つの入出力リクエスタを提供するステップと、
前記入出力リクエスタに対してリソースを論理ユニットとして提示するステップと、
前記少なくとも２つの入出力リクエスタの各々において、対をなすアクティブ−パッシッブ・リソース・コントローラの１つもしくは両方に対する有効なアクセスを検出するステップと、
前記少なくとも２つの入出力リクエスタの少なくとも他の１つへアクセス状態を通知するステップと、
前記対をなすアクティブ−パッシッブ・リソース・コントローラのどちらをアクティブなリソース・コントローラに指定するかを決定するためのアービトレータに参加するステップとを含み、さらに、
前記少なくとも２つの入出力リクエスタの各々が、前記対をなすアクティブ−パッシッブ・リソース・コントローラの両方に対する有効なアクセスをもつことが検出されたことに応答して、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方を選択してアクティブなリソース・コントローラに指定するステップと、
前記少なくとも２つの入出力リクエスタの一方が、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方のみに対する有効なアクセスをもつことが検出されたことに応答して、前記対をなすアクティブ−パッシッブ・リソース・コントローラの前記一方のみを選択してアクティブなリソース・コントローラに指定するステップと、
前記少なくとも２つの入出力リクエスタの各々が、前記対をなすアクティブ−パッシッブ・リソース・コントローラのそれぞれ異なる一方のみに対する有効なアクセスをもつことが検出されたことに応答して、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方を選択してアクティブなリソース・コントローラに指定するとともに、
アクティブなリソース・コントローラに指定された前記対をなすアクティブ−パッシッブ・リソース・コントローラの前記一方に対する有効なアクセスをもつ前記少なくとも２つの入出力リクエスタの１つのみからの入出力リクエストを有効にすることと、
アクティブなリソース・コントローラに指定された前記対をなすアクティブ−パッシッブ・リソース・コントローラの前記一方に対する有効なアクセスをもつ前記少なくとも２つの入出力リクエスタの１つのみからの、前記対をなすアクティブ−パッシッブ・リソース・コントローラのパッシッブなコントローラをアクティブに切り替えるためのリクエストを有効にすることとの少なくとも一方を実行するステップとを含む情報処理のための方法。
【請求項１１】
コンピュータにより可読なストレージ媒体中で有形に実施されるコンピュータ・プログラムであって、コンピュータ・システムにロードされてその上で実行された場合に、
対をなすアクティブ−パッシッブ・リソース・コントローラのどちらをアクティブなリソース・コントローラに指定するかを決定するためのアービトレータに参加するステップと、さらに、
前記少なくとも２つの入出力リクエスタの各々が、前記対をなすアクティブ−パッシッブ・リソース・コントローラの両方に対する有効なアクセスをもつことが検出されたことに応答して、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方を選択してアクティブなリソース・コントローラに指定するステップと、
前記少なくとも２つの入出力リクエスタの一方が、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方のみに対する有効なアクセスをもつことが検出されたことに応答して、前記対をなすアクティブ−パッシッブ・リソース・コントローラの前記一方のみを選択してアクティブなリソース・コントローラに指定するステップと、
前記少なくとも２つの入出力リクエスタの各々が、前記対をなすアクティブ−パッシッブ・リソース・コントローラのそれぞれ異なる一方のみに対する有効なアクセスをもつことが検出されたことに応答して、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方を選択してアクティブなリソース・コントローラに指定するとともに、
アクティブなリソース・コントローラに指定された前記対をなすアクティブ−パッシッブ・リソース・コントローラの前記一方に対する有効なアクセスをもつ前記少なくとも２つの入出力リクエスタのその１つのみからの入出力リクエストを有効にすることと、
アクティブなリソース・コントローラに指定された前記対をなすアクティブ−パッシッブ・リソース・コントローラの前記一方に対する有効なアクセスをもつ前記少なくとも２つの入出力リクエスタのその１つのみからの、前記対をなすアクティブ−パッシッブ・リソース・コントローラのパッシッブなコントローラをアクティブに切り替えるためのリクエストを有効にすることとの少なくとも一方を実行するステップとを、前記コンピュータ・システムに実行させるコンピュータ・プログラム・コード手段を含むコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチリクエスタ・コンピュータ・システムの分野に関し、より詳細には、潜在的な論理ユニットのスラッシングを検出し、予防策または改善策を事前に適用するための入出力リクエスタ間の調整に関する。
【背景技術】
【０００２】
リソースを制御するためのコントローラ・システムを設けることは、一般にコンピューティング分野において周知であり、多くのコンピュータ・システムでは、そのようなコントローラは、処理の負荷を均衡させる手段として、またはコントローラの障害に備えて一定レベルの冗長性を提供するための切替え可能な対として提供される。そうしたシステムではたいてい、リソースは、物理的表現ではなく論理的表現により、ホスト・アプリケーションおよびシステム・ソフトウェアに提示される。例えば、ストレージ・コントローラは、おそらくディスク面の使用を最適化するために、またはおそらくデータのシークに要する時間を最適化するために、ユーザには「実」ディスク・ドライブとして見えるものを表すデータを複数のディスクの表面に分散した形で配置するように、ストレージ・ディスクを制御できる。ユーザ・プログラムには、１つのディスクで構成された論理ユニット（例えば、通常のパーソナル・コンピュータのユーザ固有の「Ｃドライブ」）として提示されるので、この分散状態はユーザには見えない。このようなリソース・コントローラ・システムの１つの例は、論理ユニットすなわちＬＵＮの形でディスク・ストレージを入出力リクエスタに提示する、対をなすストレージ・コントローラを含むシステムである。
【０００３】
たいていのＲＡＩＤ（独立ディスク冗長アレイ）コントローラは対で動作し、その各々が、両者が共用するストレージから作られる、ＲＡＩＤアレイ（またはＲＡＩＤアレイのパーティション）の同一セットのイメージを提示する。対をなすＲＡＩＤコントローラの一方が障害を起こしても、リクエスタは依然、他方のコントローラを介してＲＡＩＤアレイにアクセスできる。したがって、単一点障害（single point of failure）は起らない。このようなＲＡＩＤコントローラの実装は、２つのカテゴリーに分けることができる。いくつかのＲＡＩＤコントローラは「アクティブ（稼動中）−アクティブ（稼動中）」に分類され、対をなすコントローラのどちらを介しても、パフォーマンスを低下あるいは実質的に低下させることなく、同一のＲＡＩＤアレイに同時にアクセスすることができる。残りのＲＡＩＤコントローラは「アクティブ（稼動中）−パッシッブ（休止中）」に分類され、ある時点において、一方のコントローラのみが特定のＲＡＩＤアレイ（ときにはＲＡＩＤアレイのパーティション）にアクセスすることができる。「アクティブ−パッシッブ」コントローラには、アクティブなコントローラを変更するために特定のコマンド・シーケンスを発行する必要があるものもあり、また、どのコントローラが入出力リクエストを受信したかによって、アクティブ・コントローラを自動的に切り替えようとするものもある。
【０００４】
単一のリクエスタ・システムが、対をなす「アクティブ−パッシッブ」コントローラによって提示されるストレージにアクセスできるようにすることは、比較的容易である。同一のストレージを提示しているアクティブ・コントローラとパッシッブ・コントローラがあることを検出し、これらのコントローラを単一のストレージ装置またはＬＵＮとしてリクエスタに提示する、リクエスタ・システムで使用できるソフトウェアには数多くの実装が存在する。このソフトウェアはまた、アクティブ・コントローラを介した入出力リクエストを完了させる過程で問題が生じたときに、これを検出し、もう一方のコントローラをアクティブにするために必要なタスクを実行するようにする責任をもつ。すなわち、リクエスタ・システム上で実行されるより高いレベルのソフトウェアまで入出力リクエストを実質的にフェイル・バックすることなく、自動的にフェイル・オーバを行って、もう一方のコントローラを使用するようにする。
【０００５】
しかし、複数のリクエスタ・システムが対をなす「アクティブ−パッシッブ」コントローラにより提示されるストレージを共用する場合、さらなる問題が生じる。すなわち、どのコントローラがアクティブであるかについて、すべてのリクエスタが合意しなければならず、アクティブ・コントローラを変更する場合には、すべてのリクエスタが連携しなければならない。もしリクエスタがこれを行わないと、その場合には「ＬＵＮスラッシング」と呼ばれることのある状態が生じる。この状態においては、異なるリクエスタが異なるコントローラを対のうちのアクティブ・コントローラにしようとする。その結果、アクティブ・コントローラの役割が繰り返し切り替わることになり、アクティブ・コントローラの切替えに要する時間は通常、入出力リクエストを処理する時間よりも数桁長いので、コントローラが入出力を処理することのできる速度が極端に低下する。ＬＵＮスラッシングというこの結果は、ストレージ・エリア・ネットワーク（以降、「ＳＡＮ」と略記する）など、特に大規模かつ複雑な企業レベルのストレージ・システムにおいて、深刻なパフォーマンス上の問題を提起する場合がある。
【０００６】
最近まで、複数のリクエスタが同一ストレージに直接アクセスする必要はなかった。したがって、この問題に対する取り組みはこれまでなされてこなかった。しかし、（IBM Storage Tankなどの）新しい直接アクセス共有ファイル・システム、（IBM 2145 Total StorageVirtualization Engineなどの）クラスタ化ストレージ装置、およびその他のＳＡＮベースの仮想化ソリューションが、ますます一般的になっており、ストレージに対するマルチリクエスタ・アクセスの必要性が浮上してきた。
【０００７】
ＬＵＮスラッシングの問題を完全に回避するための１つの方法は、「アクティブ−アクティブ」ＲＡＩＤコントローラを実装することである。しかし、これは「アクティブ−パッシッブ」コントローラを製造することよりも難しく、またＳＡＮベースの仮想化ソリューションを既存の「アクティブ−パッシッブ」ＲＡＩＤコントローラとともに働かせることができなくなる。
【０００８】
複数のリクエスタにストレージへのアクセスを許すシステム内でＬＵＮスラッシングの問題を回避する別の方法は、１つのリクエスタのみに特定のＬＵＮまたはＲＡＩＤアレイへの直接アクセスを許し、他のリクエスタからのすべての入出力リクエストをそのリクエスタに転送することである。これは実質的に、ＮＦＳなどのネットワーク・ファイル・システムが行っていることである。しかし、他のリクエスタからの入出力リクエストをその単一のリクエスタに転送することには、パフォーマンス上の著しい不都合がある。やはり、これもＳＡＮベースの仮想化システムにおいては有効ではない。
【０００９】
第３の可能性は、ＲＡＩＤコントローラ自体に、どのコントローラがアクティブであり、どのコントローラがパッシッブであるかを制御させることである。この実装の不都合な点は、両方のＲＡＩＤコントローラが動作可能であるが、ＳＡＮレベルの問題のためにすべてのリクエスタが両方のＲＡＩＤコントローラと通信できるとは限らない場合、コントローラはどのコントローラがアクティブであるかについて誤った判断をする可能性があり、したがって、単一点障害を招くことがありうることである。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
したがって、対をなすアクティブ／パッシッブ・ストレージ・コントローラを備えるマルチリクエスタ・ストレージ・システムにおいては、それだけには限らないが特にＳＡＮベースのストレージ仮想化システムにおいては、潜在的なＬＵＮスラッシングを検出し、事前に改善策を適用する手段を提供する方法、装置、およびコンピュータ・プログラムを有することが望ましい。
【課題を解決するための手段】
【００１１】
したがって、本発明は、第１の態様として、少なくとも２つの入出力リクエスタの各々にあり、対をなすアクティブ−パッシッブ・リソース・コントローラのどちらをアクティブなリソース・コントローラに指定するかを決定するためのアービトレーションに参加するように動作可能なアービトレータ・コンポーネントを提供する。このコンポーネントでは、前記少なくとも２つの入出力リクエスタの各々が、前記対をなすアクティブ−パッシッブ・リソース・コントローラの両方に対する有効なアクセスをもつことが検出されたことに応答して、少なくとも２つの入出力リクエスタの各々にある前記アービトレータ・コンポーネントが、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方を選択してアクティブなリソース・コントローラに指定するように動作可能であり、前記少なくとも２つの入出力リクエスタの一方が、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方のみに対する有効なアクセスをもつことが検出されたことに応答して、少なくとも２つの入出力リクエスタの各々にある前記アービトレータ・コンポーネントが、前記対をなすアクティブ−パッシッブ・リソース・コントローラの前記一方のみを選択してアクティブなリソース・コントローラに指定するように動作可能であり、前記少なくとも２つの入出力リクエスタの各々が、前記対をなすアクティブ−パッシッブ・リソース・コントローラのそれぞれ異なる一方のみに対する有効なアクセスをもつことが検出されたことに応答して、少なくとも２つの入出力リクエスタの各々にある前記アービトレータ・コンポーネントが、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方を選択してアクティブなリソース・コントローラに指定するように動作可能であるとともに、アクティブなリソース・コントローラに指定された前記対をなすアクティブ−パッシッブ・リソース・コントローラの前記一方に対する有効なアクセスをもつ前記少なくとも２つの入出力リクエスタの１つのみからの入出力リクエストを有効にすることと、アクティブなリソース・コントローラに指定された前記対をなすアクティブ−パッシッブ・リソース・コントローラの前記一方に対する有効なアクセスをもつ前記少なくとも２つの入出力リクエスタの１つのみからの、前記対をなすアクティブ−パッシッブ・リソース・コントローラのパッシッブなコントローラをアクティブに切り替えるためのリクエストを有効にすることとの少なくとも一方を実行するように動作可能である。
【００１２】
好ましくは、前記対をなすアクティブ−パッシッブ・リソース・コントローラは、ストレージ・コントローラを含む。
【００１３】
好ましくは、前記対をなすアクティブ−パッシッブ・リソース・コントローラは、ＳＡＮ内にストレージ・コントローラを含む。
【００１４】
好ましくは、前記対をなすアクティブ−パッシッブ・リソース・コントローラは、ＳＡＮベースのストレージ仮想化環境内にストレージ・コントローラを含む。
【００１５】
好ましくは、前記対をなすアクティブ−パッシッブ・リソース・コントローラは、ストレージ・タンク・システム内にストレージ・コントローラを含む。
【００１６】
好ましくは、前記対をなすアクティブ−パッシッブ・リソース・コントローラは、ＲＡＩＤストレージ・コントローラを含む。
【００１７】
好ましくは、前記対をなすアクティブ−パッシッブ・リソース・コントローラが、複数の論理ユニットを制御し、前記少なくとも２つの入出力リクエスタの各々が、前記対をなすアクティブ−パッシッブ・リソース・コントローラの両方にある複数の論理ユニットに対する有効なアクセスをもつことが検出されたことに応答して、前記アービトレータ・コンポーネントが、負荷均衡アルゴリズムに基づき、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方を選択して、前記複数の論理ユニットの各々のためのアクティブなリソース・コントローラに指定するように動作可能である。
【００１８】
本発明は、第２の態様として、少なくとも２つの入出力リクエスタと、前記入出力リクエスタに対してリソースを論理ユニットとして提示するように動作可能な対をなすアクティブ−パッシッブ・リソース・コントローラと、前記少なくとも２つの入出力リクエスタの各々にあり、前記リソース・コントローラの１つもしくは両方に対する有効なアクセスを検出するように動作可能な検出コンポーネントと、前記少なくとも２つの入出力リクエスタの各々にあり、前記少なくとも２つの入出力リクエスタの少なくとも他の１つへアクセス状態を通知するように動作可能な通信コンポーネントと、前記少なくとも２つの入出力リクエスタの各々にあり、前記対をなすアクティブ−パッシッブ・リソース・コントローラのどちらをアクティブなリソース・コントローラに指定するかを決定するためのアービトレーションに参加するように動作可能なアービトレータ・コンポーネントとを含む情報処理システムを提供する。このシステムでは、前記少なくとも２つの入出力リクエスタの各々が、前記対をなすアクティブ−パッシッブ・リソース・コントローラの両方に対する有効なアクセスをもつことが検出されたことに応答して、前記少なくとも２つの入出力リクエスタの各々にある前記アービトレータ・コンポーネントが、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方を選択してアクティブなリソース・コントローラに指定するように動作可能であり、前記少なくとも２つの入出力リクエスタの一方が、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方のみに対する有効なアクセスをもつことが検出されたことに応答して、前記少なくとも２つの入出力リクエスタの各々にある前記アービトレータ・コンポーネントが、前記対をなすアクティブ−パッシッブ・リソース・コントローラの前記一方のみを選択してアクティブなリソース・コントローラに指定するように動作可能であり、前記少なくとも２つの入出力リクエスタの各々が、前記対をなすアクティブ−パッシッブ・リソース・コントローラのそれぞれ異なる一方のみに対する有効なアクセスをもつことが検出されたことに応答して、前記少なくとも２つの入出力リクエスタの各々にある前記アービトレータ・コンポーネントが、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方を選択してアクティブなリソース・コントローラに指定するように動作可能であるとともに、アクティブなリソース・コントローラに指定された前記対をなすアクティブ−パッシッブ・リソース・コントローラの前記一方に対する有効なアクセスをもつ前記少なくとも２つの入出力リクエスタの１つのみからの入出力リクエストを有効にすることと、アクティブなリソース・コントローラに指定された前記対をなすアクティブ−パッシッブ・リソース・コントローラの前記一方に対する有効なアクセスをもつ前記少なくとも２つの入出力リクエスタの１つのみからの、前記対をなすアクティブ−パッシッブ・リソース・コントローラのパッシッブなコントローラをアクティブに切り替えるためのリクエストを有効にすることとの少なくとも一方を実行するように動作可能である。
【００１９】
第３の態様として、本発明は、対をなすアクティブ−パッシッブ・リソース・コントローラのどちらをアクティブなリソース・コントローラに指定するかを決定するためのアービトレーションに参加するステップを含み、さらに、前記少なくとも２つの入出力リクエスタの各々が、前記対をなすアクティブ−パッシッブ・リソース・コントローラの両方に対する有効なアクセスをもつことが検出されたことに応答して、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方を選択してアクティブなリソース・コントローラに指定するステップと、前記少なくとも２つの入出力リクエスタの一方が、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方のみに対する有効なアクセスをもつことが検出されたことに応答して、前記対をなすアクティブ−パッシッブ・リソース・コントローラの前記一方のみを選択してアクティブなリソース・コントローラに指定するステップと、前記少なくとも２つの入出力リクエスタの各々が、前記対をなすアクティブ−パッシッブ・リソース・コントローラのそれぞれ異なる一方のみに対する有効なアクセスをもつことが検出されたことに応答して、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方を選択してアクティブなリソース・コントローラに指定するとともに、アクティブなリソース・コントローラに指定された前記対をなすアクティブ−パッシッブ・リソース・コントローラの前記一方に対する有効なアクセスをもつ前記少なくとも２つの入出力リクエスタの１つのみからの入出力リクエストを有効にすることと、アクティブなリソース・コントローラに指定された前記対をなすアクティブ−パッシッブ・リソース・コントローラの前記一方に対する有効なアクセスをもつ前記少なくとも２つの入出力リクエスタの１つのみからの、前記対をなすアクティブ−パッシッブ・リソース・コントローラのパッシッブなコントローラをアクティブに切り替えるためのリクエストを有効にすることとの少なくとも一方を実行するステップとを含む情報処理のための方法を提供する。
【００２０】
第４の態様として、本発明は、少なくとも２つの入出力リクエスタを提供するステップと、前記入出力リクエスタに対してリソースを論理ユニットとして提示するステップと、前記少なくとも２つの入出力リクエスタの各々において、対をなすアクティブ−パッシッブ・リソース・コントローラの１つもしくは両方に対する有効なアクセスを検出するステップと、前記少なくとも２つの入出力リクエスタの少なくとも他の１つへアクセス状態を通知するステップと、前記対をなすアクティブ−パッシッブ・リソース・コントローラのどちらをアクティブなリソース・コントローラに指定するかを決定するためのアービトレーションに参加するステップを含み、さらに、前記少なくとも２つの入出力リクエスタの各々が、前記対をなすアクティブ−パッシッブ・リソース・コントローラの両方に対する有効なアクセスをもつことが検出されたことに応答して、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方を選択してアクティブなリソース・コントローラに指定するステップと、前記少なくとも２つの入出力リクエスタの一方が、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方のみに対する有効なアクセスをもつことが検出されたことに応答して、前記対をなすアクティブ−パッシッブ・リソース・コントローラの前記一方のみを選択してアクティブなリソース・コントローラに指定するステップと、前記少なくとも２つの入出力リクエスタの各々が、前記対をなすアクティブ−パッシッブ・リソース・コントローラのそれぞれ異なる一方のみに対する有効なアクセスをもつことが検出されたことに応答して、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方を選択してアクティブなリソース・コントローラに指定するとともに、アクティブなリソース・コントローラに指定された前記対をなすアクティブ−パッシッブ・リソース・コントローラの前記一方に対する有効なアクセスをもつ前記少なくとも２つの入出力リクエスタの１つのみからの入出力リクエストを有効にすることと、アクティブなリソース・コントローラに指定された前記対をなすアクティブ−パッシッブ・リソース・コントローラの前記一方に対する有効なアクセスをもつ前記少なくとも２つの入出力リクエスタの１つのみからの、前記対をなすアクティブ−パッシッブ・リソース・コントローラのパッシッブなコントローラをアクティブに切り替えるためのリクエストを有効にすることとの少なくとも一方を実行するステップとを含む情報処理のための方法を提供する。
【００２１】
第５の態様として、本発明は、コンピュータ・プログラム・コード手段を含む、コンピュータにより可読なストレージ媒体中で有形に実施されるコンピュータ・プログラム製品を提供する。このコンピュータ・プログラム・コード手段は、コンピュータ・システムにロードされてその上で実行された場合に、対をなすアクティブ−パッシッブ・リソース・コントローラのどちらをアクティブなリソース・コントローラに指定するかを決定するためのアービトレーションに参加するステップを含み、さらに、前記少なくとも２つの入出力リクエスタの各々が、前記対をなすアクティブ−パッシッブ・リソース・コントローラの両方に対する有効なアクセスをもつことが検出されたことに応答して、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方を選択してアクティブなリソース・コントローラに指定するステップと、前記少なくとも２つの入出力リクエスタの一方が、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方のみに対する有効なアクセスをもつことが検出されたことに応答して、前記対をなすアクティブ−パッシッブ・リソース・コントローラの前記一方のみを選択してアクティブなリソース・コントローラに指定するステップと、前記少なくとも２つの入出力リクエスタの各々が、前記対をなすアクティブ−パッシッブ・リソース・コントローラのそれぞれ異なる一方のみに対する有効なアクセスをもつことが検出されたことに応答して、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方を選択してアクティブなリソース・コントローラに指定するとともに、アクティブなリソース・コントローラに指定された前記対をなすアクティブ−パッシッブ・リソース・コントローラの前記一方に対する有効なアクセスをもつ前記少なくとも２つの入出力リクエスタのその１つのみからの入出力リクエストを有効にすることと、アクティブなリソース・コントローラに指定された前記対をなすアクティブ−パッシッブ・リソース・コントローラの前記一方に対する有効なアクセスをもつ前記少なくとも２つの入出力リクエスタのその１つのみからの、前記対をなすアクティブ−パッシッブ・リソース・コントローラのパッシッブなコントローラをアクティブに切り替えるためのリクエストを有効にすることとの少なくとも一方を実行するステップとを、前記コンピュータ・システムに実行させる。
【００２２】
本発明の実施形態が対処する問題は、潜在的なＬＵＮスラッシングを検出し、ＬＵＮスラッシングを防止または改善するための方策を事前に適用しながら、複数のリクエスト発行ホスト（または入出力リクエストを発行する他のシステム）が、対をなす「アクティブ−パッシッブ」リソース・コントローラによって提示されるストレージまたはその他のリソースを共用できるようにする問題である。
【００２３】
次に、本発明の好ましい実施形態を、添付の図面を参照しながら、例としてのみ説明する。
【発明を実施するための最良の形態】
【００２４】
本発明の好ましい実施形態による装置の配置が、図１に示されている。
【００２５】
図１には、１対のリクエスタ１０２、１０４が示されており、同一のストレージを表すＬＵＮ１０８、１１０をアクセス・パス１１８を介して提示するように動作可能なソフトウェア１０６に接続されている。ＬＵＮは独立した存在ではなく、コントローラがリクエスタに提示するストレージ、この場合は同一のストレージの諸表現にすぎないことに留意されたい。図１には、利用可能なアクセス・パスがすべて示されているが、これからわかるように、リクエスタ１０２、１０４はＬＵＮ１０８、１１０のいずれにもアクセスできる。以下で述べるように、必ずしも常にそうではない。
【００２６】
リソース１１６を制御するための対をなすアクティブ−パッシッブ・リソース・コントローラを形成するコントローラ１１２、１１４によって、ＬＵＮ１０８、１１０がソフトウェア１０６に提示され、さらに、リクエスタ１０２、１０４に提示される。本明細書で説明する例示的な実施形態では、リソース１１６はＲＡＩＤアレイまたはＲＡＩＤアレイのパーティションである。
【００２７】
本発明の好ましい実施形態では、リクエスタ１０２、１０４（ホスト、あるいは入出力を開始することができるその他のシステムであってよい）が互いに通信できることが必要となるが、これは任意の従来のネットワークまたはクラスタ化技術（その多くの例が当技術分野において周知である）を使用することによって可能となる。リクエスタ１０２、１０４が初期化されるとき、対をなすＲＡＩＤコントローラ１１２、１１４の両方と通信できるかどうかを決定し、次にこの情報を、対をなすＲＡＩＤコントローラ１１２、１１４を使用している他のリクエスタ・システムに通知しなければならない。そうすることで、リクエスタ１０２、１０４は、以下のようにしてすべてのリクエスタから収集した情報に基づく全体的な決定を行うことができる。
【００２８】
対をなすＲＡＩＤコントローラを使用しているリクエスタ１０２、１０４の両方が、両方のコントローラ１１２、１１４と通信できる場合、リクエスタは、どのコントローラをアクティブなコントローラにするかについて全体的な決定を下すことができ、すべてのリクエスタは、そのコントローラに入出力リクエストを発行することができる。また別の好ましいかもしれない有利な特徴は、対をなすＲＡＩＤコントローラが複数のＲＡＩＤアレイまたはＬＵＮを提示する場合、いくつかのＬＵＮ用に一方のコントローラをアクティブにし、残りのＬＵＮ用に他方のコントローラをアクティブにするよう全体的な決定を下すことができ、そうすることで、コントローラ間の入出力にかかる作業負荷を均衡させることができることである。
【００２９】
リクエスタ１０２、１０４の一方または両方がコントローラ１１２、１１４の一方と通信できない場合、あるいはその他の何らかの理由で、コントローラの一方または両方が入出力リクエストを処理できない場合、リクエスタはそのコントローラを使用しないよう全体的な決定を下すことができる。
【００３０】
リクエスタ１０２、１０４の一方がＲＡＩＤコントローラ１１２、１１４の一方と通信できず、リクエスタ１０２、１０４の他方がＲＡＩＤコントローラ１１２、１１４の他方と通信できない場合、リクエスタは、ＬＵＮスラッシングを発生させずに、特定のＲＡＩＤアレイまたはＬＵＮを使用することはできない。この場合、最も単純な解決策は、一方のリクエスタに対してアクセスを拒否することであるが、ＬＵＮスラッシングの発生を許容可能な最低限に抑えながら、両方のリクエスタにストレージの使用を認める代替策を実装することも可能である。例えば、一方のリクエスタには、ストレージへのアクセスは許すが、どちらのコントローラをアクティブにするかに関する決定に影響を及ぼすことはさせないようにできる。
【００３１】
稼動中、ＲＡＩＤコントローラ１１２、１１４が障害を起こすか、またはその他の何らかの理由で、リクエスタ１０２、１０４が特定のコントローラに入出力リクエストを発行できない場合、リクエスタは、リクエスタ同士でどのコントローラを使用するか再評価するよう要求することができる。再評価の結果、アクティブなコントローラを切り替えることに決まった場合、切替えに先立って、そのコントローラへのすべての入出力リクエストを休止させることが重要である。休止させることにより、アクティブなコントローラを変更するときに、パッシッブな状態になったコントローラに対してさらなる入出力が発行されないようになり、それによって、切替え期間中にＬＵＮスラッシングが発生することが回避される。
【００３２】
同様に、ＲＡＩＤコントローラの両方と通信できなかったリクエスタが、その後（おそらく何らかのサービス・アクションのために）、あるＲＡＩＤコントローラと通信できると判断した場合にも、その旨を通知して、どのコントローラをアクティブなコントローラとして使用するかリクエスタ同士で再評価が行えるようにすべきである。
【００３３】
リクエスタ１０２、１０４が他方のリクエスタと通信できない場合、あるいは３つ以上のリクエスタを含むシステムにおいて、リクエスタ１０２、１０４が対をなすＲＡＩＤコントローラを共用する他の大多数のリクエスタと通信できない場合、リクエスタはどのコントローラがアクティブなコントローラに選ばれているかを知ることができない。この場合も、最も単純な解決策は、そのリクエスタによるストレージへのアクセスを拒否することである。しかし、別の実装では、そのリクエスタにストレージの使用は許すが、どちらのコントローラをアクティブにするかに影響を及ぼすことはさせないようにすることもできる。
【００３４】
次に図２に移ると、少なくとも２つの入出力リクエスタを有するシステムにおいて、潜在的な論理ユニットのスラッシングを検出し、事前に改善するための方法が示されている。
【００３５】
プロセスは開始ステップ２００から始まる。このステップは、システムの初期化、あるいは、例えばリクエスタまたはコントローラのステータスの変化などに起因する再初期化のときに相当する。
【００３６】
ステップ２０２では、コントローラ１１２、１１４が、入出力リクエスタ１０２、１０４にリソースを論理ユニットとして提示する。
【００３７】
ステップ２０４では、入出力リクエスタの各々が、リソース・コントローラの一方または両方に対する有効なアクセスをもつかどうかを検出する。
【００３８】
ステップ２０６では、入出力リクエスタの各々が、そのアクセス状態を他の入出力リクエスタに通知する。
【００３９】
ステップ２０８では、入出力リクエスタの各々が、対をなすアクティブ−パッシッブ・リソース・コントローラのどちらをアクティブなリソース・コントローラに指定するかを決定するためのアービトレーションに参加する。アービトレーションの結果は、試験ステップ２１０、２１４、２１８で決まる。
【００４０】
ステップ２１０では、入出力リクエスタの各々が、対をなすアクティブ−パッシッブ・リソース・コントローラの両方に対する有効なアクセスをもつ場合、入出力リクエスタは、ステップ２１２で、対をなすアクティブ−パッシッブ・リソース・コントローラの一方を選択して、アクティブなリソース・コントローラに指定する。
【００４１】
ステップ２１４では、入出力リクエスタの一方または両方が、対をなすアクティブ−パッシッブ・リソース・コントローラの一方のみに対する有効なアクセスをもつ場合、入出力リクエスタは、ステップ２１６で、対をなすアクティブ−パッシッブ・リソース・コントローラのその一方のみを選択して、アクティブなリソース・コントローラに指定する。
【００４２】
ステップ２１８では、入出力リクエスタの各々が、対をなすアクティブ−パッシッブ・リソース・コントローラのそれぞれ異なる一方のみに対する有効なアクセスをもつ場合、入出力リクエスタは、ステップ２２０で、対をなすアクティブ−パッシッブ・リソース・コントローラの一方を選択して、アクティブなリソース・コントローラに指定し、さらに以下の少なくとも一方を実行する。
１．ステップ２２２では、アクティブなリソース・コントローラに指定されたリソース・コントローラに対する有効なアクセスをもつ入出力リクエスタからの入出力リクエストのみを有効にする。
２．ステップ２２４では、アクティブなリソース・コントローラに指定されたリソース・コントローラに対する有効なアクセスをもつ入出力リクエスタからの、パッシッブなリソース・コントローラをアクティブに切り替えるためのリクエストのみを有効にする。
【００４３】
処理はステップ２２８へと進み、ステップ２２８では、上述したアービトレーションおよび選択ステップの後の正常時処理を継続することができ、アービトレーションおよび選択ステップが有効な結果を出力しなかった場合は、エラー時処理を行うこともできる。このようなエラー時処理は当技術分野において周知であり、ここでは説明は不要である。
【００４４】
本発明の好ましい実施形態で必要なリクエスタ間のメッセージの受け渡しは、リクエスタが互いに通信できるようにするための、当技術分野において周知のネットワークまたはクラスタ化技法の１つを用いて実装することができる。そのようなクラスタ化技法がこの目的に適していることは、当業者には明らかであろう。したがって、ここではクラスタ化技法の詳細な説明は不要である。
【００４５】
上述した方法は、適切なハードウェアまたはソフトウェア、もしくは両方の組合せにより実施できるが、最も一般的には、１つもしくは複数のプロセッサ（図示せず）上で動作するソフトウェアにより実施でき、そのソフトウェアは、磁気または光コンピュータ・ディスクなど適切なデータ記憶媒体（図示せず）に記憶させたコンピュータ・プログラム要素として提供できることが理解できるであろう。データ転送用チャネルも同様に、すべての種類の記憶媒体、および有線信号媒体や無線信号媒体などの信号伝送媒体を含むことができる。
【００４６】
本発明は、コンピュータ・システムで使用するコンピュータ・プログラム製品として適切に実施することができる。そのような実施には、コンピュータにより可読な一連の命令が含まれる。命令は、コンピュータ可読媒体、例えば、ディスケット、ＣＤ−ＲＯＭ、ＲＯＭ、ハードディスクなどの有形な媒体上に格納され、あるいは光通信線またはアナログ通信線を含むがそれだけには限定されない有形な媒体上を、またはマイクロ波、赤外線、その他の伝送技法を含むがそれだけには限定されない無線技法を用いた無形の媒体上を、モデムまたはその他のインタフェイス装置を介して、コンピュータ・システムに転送される。コンピュータにより可読な一連の命令は、本明細書ですでに説明した機能のすべてまたは一部を実施する。
【００４７】
そのようなコンピュータにより可読な命令は、多くのコンピュータ・アーキテクチャまたはオペレーティング・システムで使用するために様々なプログラミング言語で記述できることが、当業者には理解できるであろう。さらに、そのような命令は、半導体、磁気、光を含むがそれだけには限定されない、現在または将来の任意のメモリ技術を用いて保存でき、また光、赤外線、マイクロ波を含むがそれだけには限定されない、現在または将来の任意の通信技術を用いて伝送することができる。そのようなコンピュータ・プログラム製品は、印刷または電子文書が添付された着脱可能媒体、例えば、コンピュータ・システムにプリロードされる、システムＲＯＭまたは固定ディスク上のシュリンクラップされたソフトウェアとして配布でき、あるいはサーバや、インターネットまたはワールド・ワイド・ウェブなどのネットワーク上の電子掲示板から配布できることが企図されている。
【００４８】
上述した実施形態に対する様々な変更が当業者に明白なことは理解できるであろう。
【００４９】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００５０】
（１）少なくとも２つの入出力リクエスタの各々にあり、対をなすアクティブ−パッシッブ・リソース・コントローラのどちらをアクティブなリソース・コントローラに指定するかを決定するためのアービトレーションに参加するように動作可能なアービトレータ・コンポーネントであって、
前記少なくとも２つの入出力リクエスタの各々が、前記対をなすアクティブ−パッシッブ・リソース・コントローラの両方に対する有効なアクセスをもつことが検出されたことに応答して、前記少なくとも２つの入出力リクエスタの各々にある前記アービトレータ・コンポーネントが、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方を選択してアクティブなリソース・コントローラに指定するように動作可能であり、
前記少なくとも２つの入出力リクエスタの一方が、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方のみに対する有効なアクセスをもつことが検出されたことに応答して、前記少なくとも２つの入出力リクエスタの各々にある前記アービトレータ・コンポーネントが、前記対をなすアクティブ−パッシッブ・リソース・コントローラの前記一方のみを選択してアクティブなリソース・コントローラに指定するように動作可能であり、
前記少なくとも２つの入出力リクエスタの各々が、前記対をなすアクティブ−パッシッブ・リソース・コントローラのそれぞれ異なる一方のみに対する有効なアクセスをもつことが検出されたことに応答して、前記少なくとも２つの入出力リクエスタの各々にある前記アービトレータ・コンポーネントが、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方を選択してアクティブなリソース・コントローラに指定するように動作可能であるとともに、
アクティブなリソース・コントローラに指定された前記対をなすアクティブ−パッシッブ・リソース・コントローラの前記一方に対する有効なアクセスをもつ前記少なくとも２つの入出力リクエスタの１つのみからの入出力リクエストを有効にすることと、
アクティブなリソース・コントローラに指定された前記対をなすアクティブ−パッシッブ・リソース・コントローラの前記一方に対する有効なアクセスをもつ前記少なくとも２つの入出力リクエスタの１つのみからの、前記対をなすアクティブ−パッシッブ・リソース・コントローラのパッシッブなコントローラをアクティブに切り替えるためのリクエストを有効にすることとの少なくとも一方を実行するように動作可能である、アービトレータ・コンポーネント。
（２）前記対をなすアクティブ−パッシッブ・リソース・コントローラが、ストレージ・コントローラを含む、上記（１）に記載のアービトレータ・コンポーネント。
（３）前記対をなすアクティブ−パッシッブ・リソース・コントローラが、ＳＡＮ内のストレージ・コントローラを含む、上記（１）に記載のアービトレータ・コンポーネント。
（４）前記対をなすアクティブ−パッシッブ・リソース・コントローラが、ＳＡＮベースのストレージ仮想化環境内のストレージ・コントローラを含む、上記（１）に記載のアービトレータ・コンポーネント。
（５）前記対をなすアクティブ−パッシッブ・リソース・コントローラが、ストレージ・タンク・システム内のストレージ・コントローラを含む、上記（１）に記載のアービトレータ・コンポーネント。
（６）前記対をなすアクティブ−パッシッブ・リソース・コントローラが、ＲＡＩＤストレージ・コントローラを含む、上記（１）に記載のアービトレータ・コンポーネント。
（７）前記対をなすアクティブ−パッシッブ・リソース・コントローラが、複数の論理ユニットを制御し、前記少なくとも２つの入出力リクエスタの各々が、前記対をなすアクティブ−パッシッブ・リソース・コントローラの両方にある複数の論理ユニットに対する有効なアクセスをもつことが検出されたことに応答して、前記アービトレータ・コンポーネントが、負荷均衡アルゴリズムに基づき、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方を選択して、前記複数の論理ユニットの各々のためのアクティブなリソース・コントローラに指定するように動作可能である、上記（１）に記載のアービトレータ・コンポーネント。
（８）少なくとも２つの入出力リクエスタと、
前記入出力リクエスタに対してリソースを論理ユニットとして提示するように動作可能な対をなすアクティブ−パッシッブ・リソース・コントローラと、
前記少なくとも２つの入出力リクエスタの各々にあり、前記リソース・コントローラの１つもしくは両方に対する有効なアクセスを検出するように動作可能な検出コンポーネントと、
前記少なくとも２つの入出力リクエスタの各々にあり、前記少なくとも２つの入出力リクエスタの少なくとも他の１つへアクセス状態を通知するように動作可能な通信コンポーネントと、
前記少なくとも２つの入出力リクエスタの各々にあり、前記対をなすアクティブ−パッシッブ・リソース・コントローラのどちらをアクティブなリソース・コントローラに指定するかを決定するためのアービトレーションに参加するように動作可能なアービトレータ・コンポーネントとを含む情報処理システムであって、
前記少なくとも２つの入出力リクエスタの各々が、前記対をなすアクティブ−パッシッブ・リソース・コントローラの両方に対する有効なアクセスをもつことが検出されたことに応答して、前記少なくとも２つの入出力リクエスタの各々にある前記アービトレータ・コンポーネントが、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方を選択してアクティブなリソース・コントローラに指定するように動作可能であり、
前記少なくとも２つの入出力リクエスタの一方が、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方のみに対する有効なアクセスをもつことが検出されたことに応答して、前記少なくとも２つの入出力リクエスタの各々にある前記アービトレータ・コンポーネントが、前記対をなすアクティブ−パッシッブ・リソース・コントローラの前記一方のみを選択してアクティブなリソース・コントローラに指定するように動作可能であり、
前記少なくとも２つの入出力リクエスタの各々が、前記対をなすアクティブ−パッシッブ・リソース・コントローラのそれぞれ異なる一方のみに対する有効なアクセスをもつことが検出されたことに応答して、前記少なくとも２つの入出力リクエスタの各々にある前記アービトレータ・コンポーネントが、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方を選択してアクティブなリソース・コントローラに指定するように動作可能であるとともに、
アクティブなリソース・コントローラに指定された前記対をなすアクティブ−パッシッブ・リソース・コントローラの前記一方に対する有効なアクセスをもつ前記少なくとも２つの入出力リクエスタの１つのみからの入出力リクエストを有効にすることと、
アクティブなリソース・コントローラに指定された前記対をなすアクティブ−パッシッブ・リソース・コントローラの前記一方に対する有効なアクセスをもつ前記少なくとも２つの入出力リクエスタの１つのみからの、前記対をなすアクティブ−パッシッブ・リソース・コントローラのパッシッブなコントローラをアクティブに切り替えるためのリクエストを有効にすることとの少なくとも一方を実行するように動作可能である、情報処理システム。
（９）対をなすアクティブ−パッシッブ・リソース・コントローラのどちらをアクティブなリソース・コントローラに指定するかを決定するためのアービトレーションに参加するステップを含み、さらに、
前記少なくとも２つの入出力リクエスタの各々が、前記対をなすアクティブ−パッシッブ・リソース・コントローラの両方に対する有効なアクセスをもつことが検出されたことに応答して、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方を選択してアクティブなリソース・コントローラに指定するステップと、
前記少なくとも２つの入出力リクエスタの一方が、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方のみに対する有効なアクセスをもつことが検出されたことに応答して、前記対をなすアクティブ−パッシッブ・リソース・コントローラの前記一方のみを選択してアクティブなリソース・コントローラに指定するステップと、
前記少なくとも２つの入出力リクエスタの各々が、前記対をなすアクティブ−パッシッブ・リソース・コントローラのそれぞれ異なる一方のみに対する有効なアクセスをもつことが検出されたことに応答して、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方を選択してアクティブなリソース・コントローラに指定するとともに、
アクティブなリソース・コントローラに指定された前記対をなすアクティブ−パッシッブ・リソース・コントローラの前記一方に対する有効なアクセスをもつ前記少なくとも２つの入出力リクエスタの１つのみからの入出力リクエストを有効にすることと、
アクティブなリソース・コントローラに指定された前記対をなすアクティブ−パッシッブ・リソース・コントローラの前記一方に対する有効なアクセスをもつ前記少なくとも２つの入出力リクエスタの１つのみからの、前記対をなすアクティブ−パッシッブ・リソース・コントローラのパッシッブなコントローラをアクティブに切り替えるためのリクエストを有効にすることとの少なくとも一方を実行するステップとを含む情報処理のための方法。
（１０）少なくとも２つの入出力リクエスタを提供するステップと、
前記入出力リクエスタに対してリソースを論理ユニットとして提示するステップと、
前記少なくとも２つの入出力リクエスタの各々において、対をなすアクティブ−パッシッブ・リソース・コントローラの１つもしくは両方に対する有効なアクセスを検出するステップと、
前記少なくとも２つの入出力リクエスタの少なくとも他の１つへアクセス状態を通知するステップと、
前記対をなすアクティブ−パッシッブ・リソース・コントローラのどちらをアクティブなリソース・コントローラに指定するかを決定するためのアービトレータに参加するステップとを含み、さらに、
前記少なくとも２つの入出力リクエスタの各々が、前記対をなすアクティブ−パッシッブ・リソース・コントローラの両方に対する有効なアクセスをもつことが検出されたことに応答して、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方を選択してアクティブなリソース・コントローラに指定するステップと、
前記少なくとも２つの入出力リクエスタの一方が、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方のみに対する有効なアクセスをもつことが検出されたことに応答して、前記対をなすアクティブ−パッシッブ・リソース・コントローラの前記一方のみを選択してアクティブなリソース・コントローラに指定するステップと、
前記少なくとも２つの入出力リクエスタの各々が、前記対をなすアクティブ−パッシッブ・リソース・コントローラのそれぞれ異なる一方のみに対する有効なアクセスをもつことが検出されたことに応答して、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方を選択してアクティブなリソース・コントローラに指定するとともに、
アクティブなリソース・コントローラに指定された前記対をなすアクティブ−パッシッブ・リソース・コントローラの前記一方に対する有効なアクセスをもつ前記少なくとも２つの入出力リクエスタの１つのみからの入出力リクエストを有効にすることと、
アクティブなリソース・コントローラに指定された前記対をなすアクティブ−パッシッブ・リソース・コントローラの前記一方に対する有効なアクセスをもつ前記少なくとも２つの入出力リクエスタの１つのみからの、前記対をなすアクティブ−パッシッブ・リソース・コントローラのパッシッブなコントローラをアクティブに切り替えるためのリクエストを有効にすることとの少なくとも一方を実行するステップとを含む情報処理のための方法。
（１１）コンピュータにより可読なストレージ媒体中で有形に実施されるコンピュータ・プログラムであって、コンピュータ・システムにロードされてその上で実行された場合に、
対をなすアクティブ−パッシッブ・リソース・コントローラのどちらをアクティブなリソース・コントローラに指定するかを決定するためのアービトレータに参加するステップと、さらに、
前記少なくとも２つの入出力リクエスタの各々が、前記対をなすアクティブ−パッシッブ・リソース・コントローラの両方に対する有効なアクセスをもつことが検出されたことに応答して、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方を選択してアクティブなリソース・コントローラに指定するステップと、
前記少なくとも２つの入出力リクエスタの一方が、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方のみに対する有効なアクセスをもつことが検出されたことに応答して、前記対をなすアクティブ−パッシッブ・リソース・コントローラの前記一方のみを選択してアクティブなリソース・コントローラに指定するステップと、
前記少なくとも２つの入出力リクエスタの各々が、前記対をなすアクティブ−パッシッブ・リソース・コントローラのそれぞれ異なる一方のみに対する有効なアクセスをもつことが検出されたことに応答して、前記対をなすアクティブ−パッシッブ・リソース・コントローラの一方を選択してアクティブなリソース・コントローラに指定するとともに、
アクティブなリソース・コントローラに指定された前記対をなすアクティブ−パッシッブ・リソース・コントローラの前記一方に対する有効なアクセスをもつ前記少なくとも２つの入出力リクエスタのその１つのみからの入出力リクエストを有効にすることと、
アクティブなリソース・コントローラに指定された前記対をなすアクティブ−パッシッブ・リソース・コントローラの前記一方に対する有効なアクセスをもつ前記少なくとも２つの入出力リクエスタのその１つのみからの、前記対をなすアクティブ−パッシッブ・リソース・コントローラのパッシッブなコントローラをアクティブに切り替えるためのリクエストを有効にすることとの少なくとも一方を実行するステップとを、前記コンピュータ・システムに実行させるコンピュータ・プログラム・コード手段を含むコンピュータ・プログラム。
【図面の簡単な説明】
【００５１】
【図１】本発明の好ましい実施形態による装置の配置を示すブロック図である。
【図２】本発明の好ましい実施形態による方法の諸ステップを示すフローチャートである。
【符号の説明】
【００５２】
１０２  リクエスタ
１０４  リクエスタ
１０６  ソフトウェア
１０８  ＬＵＮ
１１０  ＬＵＮ
１１２  コントローラ
１１４  コントローラ
１１６  リソース
１１８  アクセス・パス
【図１】
2004185609.tif 000003
【図２】
2004185609.tif 000004