(57)【特許請求の範囲】
【請求項１】
第１の複数入出力パス内でハードウェア故障が発生するとき、第２の複数入出力パスを用いて、共用記憶システムの論理装置番号へのアクセスを提供する方法であって、
オペレーティング・システムのオープン・オプションをＳＣＳＩ持続予約コマンドにマップして、前記複数入出力パスの全てが前記共用記憶システムの前記論理装置番号に登録することを可能にし、且つ前記第２の複数入出力パスが前記共用記憶システムへの持続予約を獲得後、前記共用記憶システムの前記論理装置番号をアクセスすることを可能にする方法。
【請求項２】
前記オペレーティング・システムのオープン・オプションをＳＣＳＩ持続予約コマンドにマップして、前記複数入出力パスの全てが前記共用記憶システムの前記論理装置番号に登録することを可能にするステップが、１つの予約キーを用いて、第１のホストからの全てのパスを、前記共用記憶システムの前記論理装置番号に登録するステップを含む、請求項１記載の方法。
【請求項３】
前記オペレーティング・システムのオープン・オプションをＳＣＳＩ持続予約コマンドにマップするステップが、持続予約及び予約キーに関する情報を獲得するステップを更に含む、請求項１記載の方法。
【請求項４】
前記持続予約及び予約キーに関する情報を獲得するステップが、キー読出しサービス・アクション及び予約読出しサービス・アクションを含む予約コマンドを使用するステップを更に含む、請求項３記載の方法。
【請求項５】
前記オペレーティング・システムのオープン・オプションをＳＣＳＩ持続予約コマンドにマップするステップが、前記共用記憶システムの前記論理装置番号にアクションを開始する持続予約出力コマンドを発行するステップを更に含む、請求項１記載の方法。
【請求項６】
前記共用記憶システムの前記論理装置番号にアクションを開始する持続予約出力コマンドが、登録、予約、解除、クリア、プリエンプト、登録及び既存キーの無視、及び打ち切り付きプリエンプトを含むグループから選択されるサービス・アクションを更に含む、請求項５記載の方法。
【請求項７】
前記登録サービス・アクションが追加オプション及び削除オプションを含む、請求項６記載の方法。
【請求項８】
前記追加オプションが、
構成時に各パスを登録するステップと、
最初の登録試行が成功であったか否かを判断するステップと、
オープン時に、全てのパスの登録を再度登録により行い、既存のキーを無視するステップと、
失敗の発生後、引き継ぎホストにより強制オープンを発行し、打ち切り付きプリエンプト・サービス・オプションのための持続予約出力コマンドにより、プリエンプト予約キーに合致する全ての登録キーをクリアするステップと、
前記第１または第２の登録試行が成功の場合、前記パスの状態を真にセットするステップと
を更に含む、請求項７記載の方法。
【請求項９】
前記削除オプションが、
前記パスが持続予約を有するか否かを判断するステップと、
前記パスが持続予約を有すると判断される場合、解除サービス・オプションをセットされた状態で持続予約を発行するステップと、
前記パスが持続予約を有さないと判断される場合、予約を解除するステップと
を更に含む、請求項７記載の方法。
【請求項１０】
前記予約サービス・アクションが、
コマンド・パラメータがセットされているか否かを調査することにより、前記第１のホストが前記共用記憶システムの前記論理装置番号に予約を行う必要があるか否かを決定するステップと、
前記コマンド・パラメータがセットされていない場合、予約要求をデフォルト指定し、いずれのイニシエータも前記共用記憶システムの前記論理装置番号を予約していない場合、前記共用記憶システムの前記論理装置番号に持続予約を実行するステップと、
前記コマンド・パラメータがセットされている場合、当該コマンド・パラメータを実行するステップと
を含む、請求項６記載の方法。
【請求項１１】
前記コマンド・パラメータが強制オープン・オプションであり、前記強制オープン・オプションが、現予約キーが前記第１のホストの予約キーに合致しない場合、前記第１のホストに現予約キーを読出し、待機タスクをプリエンプトし、打ち切るように指示する、請求項１０記載の方法。
【請求項１２】
前記コマンド・パラメータを未予約にセットすることにより、ＳＣＳＩ−２予約を阻止するステップと、
前記強制オープン・コマンドが成功裡に完了するか否かを判断するステップと、
前記強制オープン・コマンドが成功裡に完了する場合、前記第１のホストの予約フラグを持続予約を行ったパス指標にセットし、ＳＣＳＩ−２未予約オプションがセットされた全てのパスをオープンするステップと、
前記強制オープン・コマンドが成功裡に完了しない場合、エラー・コードを発行するステップと
を更に含む、請求項１１記載の方法。
【請求項１３】
前記コマンド・パラメータが保存予約オプションであり、前記保存予約が前記第１のホストに対して、現予約キーを読出し、キーが返却されるか否かを判断し、前記キーが返却されない場合、前記論理装置番号がイニシエータにより予約されないように設定し、持続予約を行うように指示する、請求項１０記載の方法。
【請求項１４】
前記保存予約オプションが前記第１のホストに対して、返却キーが第１のホストの予約キーに合致するか否かを判断し、前記返却キーが前記第１のホストの予約キーに合致しない場合、エラー・コードを発行するように指示し、前記返却キーが前記第１のホストの予約キーに合致する場合、ＳＣＳＩ−２未予約オプションがセットされた全てのパスをオープンし、予約フラグを持続予約を行ったパス指標にセットし、保存予約を真にセットし、クローズ時に保存予約フィールドをチェックすることにより、持続予約が解除されるべきか否かを判断するように指示する、請求項１３記載の方法。
【請求項１５】
前記コマンド・パラメータが未予約オプションであり、前記未予約オプションが前記第１のホストに対して、現予約キーを読出し、キーが返却されるか否かを判断し、前記論理装置番号がイニシエータにより予約されないように設定し、ホストからのオリジナル・コマンド・パラメータにより、全てのパスをオープンするように指示する、請求項１０記載の方法。
【請求項１６】
前記未予約オプションが前記第１のホストに対して、返却キーが前記第１のホストの予約キーに合致するか否かを判断し、前記返却キーが前記第１のホストの前記予約キーに合致しない場合、エラー・コードを発行するように指示し、前記返却キーが前記第１のホストの前記予約キーに合致する場合、解除のための持続予約出力を発行するように指示する、請求項１５記載の方法。
【請求項１７】
前記コマンド・パラメータがデフォルト予約オプションであり、前記デフォルト予約オプションが前記第１のホストに対して、全てのパスをチェックし、任意のパスが未登録か否かを判断し、全ての未登録パスを登録し、成功裡に登録されないパスを無視し、予約キーを返却及び読出し、返却される予約キーが前記第１のホストの予約キーに合致しない場合、エラー・コードを発行し、ＳＣＳＩ−２未予約にセットされた全ての登録済みパスをオープンするように指示する、請求項１０記載の方法。
【請求項１８】
前記デフォルト予約オプションが前記第１のホストに対して、キーが返却されない場合、登録済みパスを選択し、選択された前記登録済みパスに対して持続予約を発行し、持続予約が成功しない場合、前記パスを無視し、持続予約が成功の場合、予約フィールドに予約を行ったパス指標をマークし、前記コマンド・パラメータがＳＣＳＩ−２未予約にセットされた全ての登録済みパスをオープンするように指示する、請求項１７記載の方法。
【請求項１９】
前記コマンド・パラメータが単一のオプションであり、前記単一のオプションが前記第１のホストに対して、全てのパスをチェックし、任意のパスが未登録か否かを判断し、全ての未登録のパスを登録し、成功裡に登録されないパスを無視し、予約キーを返却及び読出し、返却される予約キーが前記第１のホストの予約キーに合致しない場合、エラー・コードを発行し、未予約をセットされた全ての登録済みパスをオープンするように指示する、請求項１０記載の方法。
【請求項２０】
キーが返却されない場合、単一のオプションが前記第１のホストに対して、登録済みパスを選択し、選択された前記登録済みパスの持続予約を発行し、持続予約が成功しない場合、前記パスを無視し、持続予約が成功の場合、予約フィールドに予約を行ったパス指標をマークし、前記コマンド・パラメータが未予約にセットされた全ての登録済みパスをオープンするように指示する、請求項１９記載の方法。
【請求項２１】
前記解除サービス・アクションが、
保存予約フラグがセットされた未予約の全てのパスをクローズするステップと、
保存予約フラグがセットされたパスをオープンするステップと、
前記解除サービス・アクションがセットされた持続予約出力コマンドを発行し、パスの持続予約を解除するステップと
を含む、請求項６記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は一般に、ＳＣＳＩまたはＦＣＰ（ファイバ・チャネル・プロトコル）ホスト装置により、記憶アレイをアクセスすることに関し、特に、非並行クラスタリング環境において、ＳＣＳＩ−３持続予約を用いてマルチパスＩ／Ｏを提供する方法及び装置に関する。
【０００２】
【従来の技術】
ディスク・ドライブ・システムはここ数年の間に、サイズ及び精巧さの両方の面で、著しく成長した。これらのシステムは一般に、複雑なマルチタスク・ディスク・ドライブ制御装置により制御される多くの大容量ディスク・ドライブ・ユニットを含む。大規模ディスク・ドライブ・システムは一般に、多数のホスト・コンピュータからコマンドを受信し、非常に多数のディスク・ドライブ大容量記憶要素を制御する。各大容量記憶ユニットは数ギガビットを越えるデータを記憶することができる。
【０００３】
ＳＣＳＩ（small computer system interface）は、コンピュータ及び他の入出力装置を相互接続するために次第に普及した通信プロトコル規格である。ＳＣＳＩの最初のバージョン（ＳＣＳＩ−１）は、ＡＮＳＩ  Ｘ３．１３１−１９８６で述べられている。ＳＣＳＩ規格はドライブ・スピード及び容量が増加するにつれ、改訂されてきたが、特定の制限が依然存在する。
【０００４】
ＳＣＳＩプロトコルによれば、ホスト装置（例えばワークステーション）及びターゲット装置（例えばハード・ディスク・ドライブ）が、デイジ・チェーンにより単一バスに接続される。バス上の各装置は、ホストまたはターゲットを問わず、固有のＩＤ番号を割当てられる。バスに接続される装置の数は使用可能な固有ＩＤ番号の数により制限される。例えば、ＳＣＳＩ−１プロトコルの下では、８個の装置だけがＳＣＳＩバスに接続可能である。ＳＣＳＩプロトコルの後のバージョンは１６個の装置を規定し、将来のバージョンは間違えなく、より多くの装置を１つのＳＣＳＩバスに接続可能にするであろう。
【０００５】
１つのＳＣＳＩバスに接続可能な装置の数を制限することに加え、ＳＣＳＩプロトコルは特定のターゲット番号を通じてアクセス可能な論理装置（例えば個々のドライブ）の数を制限する。例えばＳＣＳＩ−１規格によれば、ターゲット装置当たりの論理装置の数は８個に制限される。従って、特定のターゲット（例えばディスク・アレイ）は８個の論理装置（ディスク・ドライブ）へのアクセスを提供でき、ターゲット番号及び論理装置番号が、ＳＣＳＩシステム上の特定の記憶装置を一意に識別する。ＳＣＳＩ−３仕様は更に機能を改善し、高速シリアル伝送インタフェースに対応するために設計された。そのために、ＳＣＳＩは論理的に効果的に"階層化"された。この階層化は、ソフトウェア・インタフェースを比較的未変更のまま、ファイバ・チャネルやＳＳＡ（Serial Storage Architecture）などのシリアル相互接続にもとづく、新たな物理相互接続方式に対応する。
【０００６】
特定のターゲット記憶装置をアクセスできるホストの数を増加するために、複数のＳＣＳＩバスがマルチレベル・ツリー構造において一緒に接続され、ルーティング装置がデータ及びコマンドをレベル間で受け渡しした。こうしたマルチレベル・ネットワークでは、ホストが２レベル以上離れた装置をアクセスするとき、性能遅延が生じる。更に前述の制限により、現ＳＣＳＩシステムは、非常に多数の記憶装置への並列アクセスを提供する現記憶アレイにより提供される利点を利用することができない。例えば、記憶装置の数は、ＳＣＳＩシステム上で使用可能なターゲット番号及び論理装置番号の有効数を越えるかもしれない。更に、各ＳＣＳＩバスが１つのホストだけにより同時に使用され、同一のＳＣＳＩバス上の任意の２つのホストによる記憶アレイへの並列アクセスを阻止するかもしれない。マルチレベル・システムの異なるレベル上のホストは、記憶アレイ上の異なる装置を並列にアクセスできる。しかしながら、こうした並列アクセスはレベルを相互接続するルータの複雑度及びコストを増加させる。
【０００７】
コンピュータ利用の普及は、コンピュータ・システムのデータを記憶する柔軟で、高い可用性を有するシステムに対する需要を増加させた。多くの企業は複数のホスト・コンピュータ・システムを有し、これらには独立に機能するか、ネットワークを通じて接続されるパーソナル・コンピュータ及びワークステーションが含まれる。複数のホスト・システムが複数の記憶システムの共通のプールをアクセスでき、データが全てのホスト・システムによりアクセスされることが望ましい。こうした構成は、任意の１つのホスト・システムにより使用可能なデータの総量を増加させる。また、作業負荷がホスト間で共用され、システム全体が任意のあるホストの故障から保護される。
【０００８】
システムの複雑度が増すと、ディスク・ドライブまたは制御装置レベルにおける中断故障の発生が益々問題となる。結果的に、システムの信頼性がより高くなり、故障間の平均時間が増加し続けることになる。それにも関わらず、たとえ問題が数時間の内に比較的迅速に解決されたとしても、ディスク・ドライブ・システムが"ダウン"する、すなわちオフラインとなることが、ユーザにとって非常に不都合となり得る。結果の損失時間はシステム・スループット性能だけではなく、ユーザ・アプリケーション性能にも悪影響を及ぼす。更に、ユーザは故障したのが物理ディスク・ドライブか、それともその制御装置かに関与しないので、概してユーザ問題を生じるのは、システムの不都合及び故障である。
【０００９】
従って、ハードウェア故障を保護するための冗長パスを設け、データ・アクセスに関する性能及び高可用性を保証することが望ましい。複数のホストが複数のコンピュータ・システムをアクセスすることを可能にする従来の解決策は、ホスト・アダプタ・カードと、外部ディスク制御装置と、標準ネットワーク通信システムとの組み合わせを使用する。
【００１０】
多くのディスク・ドライブ・システムは前述のＳＣＳＩバスなどの標準化バスに頼ることにより、ホスト・コンピュータを制御装置に接続したり、制御装置とディスク・ドライブ要素とを接続したりする。従って、バスに接続されるディスク・ドライブ制御装置が故障すると、ホスト・コンピュータから見て、システム全体が故障し、前述のように、ユーザにとって受け入れることのできない結果を招く。
【００１１】
この問題を解決するために、冗長操作を有するディスク・ドライブ制御装置が、ＳＣＳＩバスに接続される少なくとも２つのＳＣＳＩアダプタの間に設けられる。また、少なくとも１つのホスト・コンピュータがＳＣＳＩバスに接続されてもよい。ＳＣＳＩバス・アダプタの１つが故障すると、故障の検出に際してバスに接続される他のＳＣＳＩアダプタが、故障したＳＣＳＩアダプタによりサービスされる装置のために引き継ぐ。
【００１２】
こうしたネットワークでは、サーバが高可用性のクラスタ・マルチプロセッシングを提供するためにリンクされる。サーバのクラスタ化はデータへの並列アクセスを可能にし、このことがビジネスに不可欠なアプリケーションにとって要求される冗長性及び故障回復力を提供する支援をする。高可用性クラスタ・マルチプロセッシングは、非並行モードで動作する間、ＳＣＳＩの予約／解除を用いて、ディスク記憶装置へのアクセスを制御する。非並行モードでは、１つのクラスタ・ノードだけが論理ボリューム内のデータをアクセスし得る。高可用性クラスタ・マルチプロセッシングは、ハードウェアまたはソフトウェア故障により、このデータへのアクセスを別のクラスタ・ノードへフェールオーバする方法を提供する。しかしながら、可能であれば、記憶システムへのアクセスを提供する一方で、ノード・フェールオーバを防止することが望ましい。
【００１３】
【発明が解決しようとする課題】
以上から、非並行クラスタリング環境において、マルチパスＩ／Ｏを提供する方法及び装置が待望される。
【００１４】
【課題を解決するための手段】
前述の従来技術の制限を克服するために、また本明細書の読後に明らかとなる他の制限を克服するために、本発明は非並行クラスタリング環境において、マルチパスＩ／Ｏを提供する方法及び装置を開示する。
【００１５】
本発明はＳＣＳＩ−３持続予約コマンドを用いて、複数パスを通じて論理ボリュームへの共用非並行アクセスを提供することにより、前述の問題を解決する。
【００１６】
本発明の原理に従う方法は、オペレーティング・システムのオープン・オプションをＳＣＳＩ持続予約コマンドにマップすることにより、複数パスの全てを共用記憶システムの論理装置番号に登録することを可能にし、第２の複数パスが共用記憶システムへの持続予約を獲得後、共用記憶システムの論理装置番号をアクセスすることを可能にする。
【００１７】
本発明の原理に従う方法の他の実施例には、代替のまたは任意的な追加の態様が含まれる。本発明のこうした１態様は、オペレーティング・システムのオープン・オプションをＳＣＳＩ持続予約コマンドにマップすることにより、複数パスの全てが共用記憶システムの論理装置番号に登録することを可能にするステップが、更に１つの予約キーを用いて、第１のホストからの全てのパスを、共用記憶システムの論理装置番号に登録するステップを含む。
【００１８】
本発明の別の態様は、オペレーティング・システムのオープン・オプションをＳＣＳＩ持続予約コマンドにマップするステップが、更に持続予約及び予約キーに関する情報を獲得するステップを含む。
【００１９】
本発明の別の態様では、持続予約及び予約キーに関する情報を獲得するステップが、更に予約コマンドを使用するステップを含む。
【００２０】
本発明の別の態様では、予約コマンドがキー読出しサービス・アクション及び予約読出しサービス・アクションを含む。
【００２１】
本発明の別の態様では、オペレーティング・システムのオープン・オプションをＳＣＳＩ持続予約コマンドにマップするステップが、更に、共用記憶システムの論理装置番号にアクションを開始する持続予約出力コマンドを発行するステップを含む。
【００２２】
本発明の別の態様では、共用記憶システムの論理装置番号とアクションを開始する持続予約出力コマンドが、更に、登録、予約、解除、クリア、プリエンプト、登録及び既存機の無視、及び打ち切り付きプリエンプトを含むグループから選択されるサービス・アクションを含む。
【００２３】
本発明の別の態様では、登録サービス・アクションが追加及び削除オプションを含む。
【００２４】
本発明の別の態様では、本発明の別の態様では、追加オプションが更に、構成時に各パスを登録するステップと、最初の登録試行が成功であったか否かを判断するステップと、最初の登録試行が成功でなかった場合、第２の登録試行を試行するステップと、第２の登録試行が不成功の場合、パスの状態をデッド（dead）とセットするステップと、パスがデッドにセットされた状態を有するとき、当該パスを無視するステップと、第１または第２の登録試行が成功の場合、パスの状態を真にセットするステップとを含む。
【００２５】
本発明の別の態様では、削除オプションが更に、パスが持続予約を有するか否かを判断するステップと、パスが持続予約を有すると判断される場合、解除サービス・オプションをセットされた状態で持続予約を発行するステップと、パスが持続予約を有さないと判断される場合、予約を解除するステップとを含む。
【００２６】
本発明の別の態様では、予約サービス・アクションが、コマンド・パラメータがセットされているか否かを調査することにより、装置が共用記憶システムの論理装置番号に予約を行う必要があるか否かを決定するステップと、コマンド・パラメータがセットされていない場合、予約要求をデフォルト指定し、いずれのイニシエータも共用記憶装置の論理装置番号を予約していない場合、共用記憶装置の論理装置番号に持続予約を実行するステップと、コマンド・パラメータがセットされている場合、当該コマンド・パラメータを実行するステップとを含む。
【００２７】
本発明の別の態様では、コマンド・パラメータが強制オープン・オプションである。ここで強制オープン・オプションは、現予約キーが装置の予約キーに合致しない場合、装置に現予約キーを読出し、待機タスクをプリエンプトし、打ち切るように指示する。
【００２８】
本発明の別の態様では、本方法は更に、コマンド・パラメータを未予約にセットすることにより、ＳＣＳＩ−２予約を阻止するステップと、強制オープン・コマンドが成功裡に完了するか否かを判断するステップと、強制オープン・コマンドが成功裡に完了する場合、装置の予約フラグを持続予約を行ったパス指標にセットし、ＳＣＳＩ−２未予約オプションがセットされた全てのパスをオープンするステップと、強制オープン・コマンドが成功裡に完了しない場合、エラー・コードを発行するステップとを含む。
【００２９】
本発明の別の態様では、コマンド・パラメータが保存予約オプションであり、保存予約は装置に対して、現予約キーを読出し、キーが返却されるか否かを判断し、キーが返却されない場合、論理装置番号がイニシエータにより予約されないように設定し、持続予約を行うように指示する。
【００３０】
本発明の別の態様では、保存予約オプションが装置に対して、返却キーが装置の予約キーに合致するか否かを判断し、返却キーが装置の予約キーに合致しない場合、エラー・コードを発行するように指示し、返却キーが装置の予約キーに合致する場合には、ＳＣＳＩ−２未予約オプションがセットされた全てのパスをオープンし、予約フラグを持続予約を行ったパス指標にセットし、保存予約を真にセットし、クローズ時に保存予約フィールドをチェックすることにより、持続予約が解除されるべきか否かを判断するように指示する。
【００３１】
本発明の別の態様では、コマンド・パラメータが未予約オプションであり、未予約オプションは装置に対して、現予約キーを読出し、キーが返却されるか否かを判断し、論理装置番号がイニシエータにより予約されないように設定し、ホストからのオリジナル・コマンド・パラメータにより、全てのパスをオープンするように指示する。
【００３２】
本発明の別の態様では、未予約オプションが装置に対して、返却キーが装置の予約キーに合致するか否かを判断し、返却キーが装置の予約キーに合致しない場合、エラー・コードを発行するように指示し、返却キーが装置の予約キーに合致する場合には、解除のための持続予約出力を発行するように指示する。
【００３３】
本発明の別の態様では、コマンド・パラメータがデフォルト予約オプションであり、デフォルト予約オプションは装置に対して、全てのパスをチェックし、任意のパスが未登録か否かを判断し、全ての未登録パスを登録し、成功裡に登録されないパスを無視し、予約キーを返却及び読出し、返却される予約キーが装置の予約キーに合致しない場合、エラー・コードを発行し、ＳＣＳＩ−２未予約にセットされた全ての登録済みパスをオープンするように指示する。
【００３４】
本発明の別の態様では、デフォルト予約オプションが装置に対して、キーが返却されない場合、登録済みパスを選択し、選択された登録済みパスに対して持続予約を発行し、持続予約が成功しない場合、そのパスを無視し、持続予約が成功の場合、予約フィールドに予約を行ったパス指標をマークし、コマンド・パラメータがＳＣＳＩ−２未予約にセットされた全ての登録済みパスをオープンするように指示する。
【００３５】
本発明の別の態様では、コマンド・パラメータが単一のオプションであり、単一のオプションが装置に対して、全てのパスをチェックし、任意のパスが未登録か否かを判断し、全ての未登録のパスを登録し、成功裡に登録されないパスを無視し、予約キーを返却及び読出し、返却される予約キーが装置の予約キーに合致しない場合、エラー・コードを発行し、未予約をセットされた全ての登録済みパスをオープンするように指示する。
【００３６】
本発明の別の態様では、キーが返却されない場合、単一のオプションが装置に対して、登録済みパスを選択し、選択された登録済みパスの持続予約を発行し、持続予約が成功しない場合、そのパスを無視し、持続予約が成功の場合、予約フィールドに予約を行ったパス指標をマークし、コマンド・パラメータが未予約にセットされた全ての登録済みパスをオープンするように指示する。
【００３７】
本発明の別の態様では、解除サービス・アクションが、保存予約オプションがセットされた未予約の全てのパスをクローズするステップと、保存予約フラグがセットされたパスをオープンするステップと、解除サービス・アクションがセットされた持続予約出力コマンドを発行し、パスの持続予約を解除するステップとを含む。
【００３８】
本発明の別の実施例では、共用記憶システムにより、ＳＣＳＩ持続予約コマンドをサポートする方法が提供される。この方法は予約キーを処理して、登録済みホストを識別するステップと、持続予約コマンドを処理して、ホストによるアクセスを制御するステップとを含む。
【００３９】
本発明の別の態様では、持続予約コマンドの処理が、複数パスの全てを共用記憶システムの論理装置番号に登録することを可能にする。
【００４０】
本発明の別の態様では、この方法は更に、１つの予約キーを用いて、第１のホストからの全てのパスを、共用記憶システムの論理装置番号に登録するステップを含む。
【００４１】
本発明の別の態様では、予約キーの処理が、持続予約及び予約キーに関する情報を獲得するステップを含む。
【００４２】
本発明の別の態様では、持続予約及び予約キーに関する情報を獲得するステップが、更に予約コマンドを使用するステップを含む。
【００４３】
本発明の別の態様では、予約コマンドがキー読出しサービス・アクション及び予約読出しサービス・アクションを含む。
【００４４】
本発明の別の態様では、持続予約コマンドの処理が、共用記憶システムの論理装置番号にアクションを開始する持続予約出力コマンドを発行するステップを含む。
【００４５】
本発明の別の態様では、共用記憶システムの論理装置番号にアクションを開始する持続予約出力コマンドが、登録、予約、解除、クリア、プリエンプト、登録及び既存キーの無視、及び打ち切り付きプリエンプトを含むグループから選択されるサービス・アクションを含む。
【００４６】
本発明の別の実施例では、オペレーティング・システムのオープン・オプションをＳＣＳＩ持続予約コマンドにマップするドライバが提供される。このドライバは、予約キーを処理して登録済みホストを識別し、また持続予約コマンドを処理して、ホストによるアクセスを制御するように構成される。
【００４７】
本発明の別の態様では、ドライバが複数パスの全てを共用記憶システムの論理装置番号に登録することを可能にすることにより、持続予約コマンドを処理する。
【００４８】
本発明の別の態様では、ドライバが１つの予約キーを用いて、第１のホストからの全てのパスを、共用記憶システムの論理装置番号に登録する。
【００４９】
本発明の別の態様では、ドライバが持続予約及び予約キーに関する情報を獲得することにより、予約キーを処理する。
【００５０】
本発明の別の態様では、ドライバが予約コマンドを使用することにより、持続予約及び予約キーに関する情報を獲得する。
【００５１】
本発明の別の態様では、予約コマンドがキー読出しサービス・アクション及び予約読出しサービス・アクションを含む。
【００５２】
本発明の別の態様では、ドライバが、共用記憶システムの論理装置番号にアクションを開始する持続予約出力コマンドを発行することにより、持続予約コマンドを処理する。
【００５３】
本発明の別の態様では、共用記憶システムの論理装置番号とアクションを開始する持続予約出力コマンドが、登録、予約、解除、クリア、プリエンプト、及び打ち切り付きプリエンプトを含むグループから選択されるサービス・アクションを含む。
【００５４】
【発明の実施の形態】
典型的な実施例の以下の説明では、その一部を形成する添付の図面が参照され、そこでは本発明が実施される特定の実施例が例証として示される。しかしながら、本発明の範囲から逸れることなく、構造的変化が加えられ得ることから、他の実施例についても利用可能であることが理解されよう。
【００５５】
本発明は非並行クラスタリング環境において、マルチパスＩ／Ｏを提供する方法及び装置を提供する。マルチパスを介する論理ボリュームへの共用非並行アクセスが、ＳＣＳＩ−３持続予約コマンドを用いることにより提供される。
【００５６】
図１は、本発明の環境を示すブロック図１００である。図１において、ＬＵＮ（論理装置番号）により示される記憶システムは、複数の論理ホストによりアクセスされる。図１では、２つのホスト１１０、１１２が示されるが、当業者であれば分かるように、本発明は２つのホストだけが記憶システムをアクセスする環境に制限されるものではない。
【００５７】
所有者ホスト１１０及びフェールオーバ・ホスト１１２は、ＬＵＮ０  １３０をアクセスする少なくとも２つのパス１２０を含む。所有者ホスト１１０及びフェールオーバ・ホスト１１２は、ＬＵＮ０  １３０に登録される。しかしながら、ＬＵＮ０が所有者ホスト１１０のキーであるキーＡを有するように示されるように、所有者ホスト１１０はＬＵＮ０への排他的アクセスを有する。
【００５８】
ＳＣＳＩ予約／解除は、非並行モードで動作するとき、ディスク記憶装置へのアクセスを制御する。非並行モードでは、所有者ホスト１１０だけがＬＵＮ０  １３０内のデータへのアクセスを有する。ハードウェアまたはソフトウェア障害が発生する場合、フェールオーバ・ホスト１１２がＬＵＮ０  １３０上のデータをアクセスできるように、フェールオーバ・アクセスが発生し得る。しかしながら、できればノード・フェールオーバを防止することが望ましい。各ノード１１０、１１２は共用記憶装置への複数のＩ／Ｏパス１２０を有するので、個々のＩ／Ｏパス内のハードウェアが故障するとき、Ｉ／Ｏトラフィックは代替パスにスイッチされ得る。このことはより破壊的なノード・フェールオーバを実行する必要性を除去する。
【００５９】
図２は、オープン・オプションを適切なＳＣＳＩ−３持続予約コマンドにマップし、共用記憶装置へのアクセスを制御するオペレーティング・システム内の擬似デバイス・ドライバ２００を示す。本発明によれば、新たなデバイス・ドライバがオペレーティング・システム内に導入され、これは単一の共用装置２４０への複数パスの全てに対する、単一の擬似デバイス２１０を提供する。図２では、オープン・オプションを適切なＳＣＳＩ−３持続予約コマンドにマップすることにより、パス選択及びパス再試行を提供する擬似デバイス・ドライバ２１０が提供される。擬似デバイス・ドライバ２１０は論理ボリュームへの共用非並行アクセスを提供し、装置への複数パス・アクセスを提供する。このことは装置パスへのＩ／Ｏ負荷平衡の追加の利点を提供し、Ｉ／Ｏエラーが単一の装置パス上で発生するとき、ノードがノード・フェールオーバを実行するのを防止するために、パス・フェールオーバが使用されるようにする。擬似デバイス・ドライバ２１０はオペレーティング・システム要求２１２を、ＳＣＳＩディスク・ドライバ２１４が処理できる要求に変換する。ＳＣＳＩディスク・ドライバ２１４は入出力（Ｉ／Ｏ）要求をコマンド・ディスクリプタ・ブロック（ＣＤＢ）に変換する。ＳＣＳＩディスク・ドライバ２１４はアダプタ・ドライバ２２０を呼び出し、ＣＤＢがアダプタ・ドライバ２２０に提供されて、Ｉ／Ｏ要求がＬＵＮ２４０に渡される。ホストはオペレーティング・システム構成を通じて擬似ディスク・ドライバ２１０をバイパスしてもよい。このように、ディスクＩ／Ｏ要求２５０が、ＳＣＳＩ予約／解除を提供することなく処理され、ＬＵＮ２４０への複数パスの１つが故障しても、フェールオーバ無しに、ディスク記憶装置へのアクセスが提供される。
【００６０】
共用ＬＵＮ問題を示すブロック図３００である。ホストは、複数のＬＵＮ３２０をアクセスする複数のアダプタ３１０を認識する。しかしながら、アダプタ３３０は実際には、単一のＬＵＮ３４０にマップされる。
【００６１】
従って、本発明によれば、擬似デバイス・ドライバ内のＳＣＳＩ−３持続予約コマンドが、ＬＵＮへの単一パス構成と、ＬＵＮへの複数のパス構成の両方のサポートを考慮する。単一パス構成では、ＬＵＮに対する予約／解除機能がＳＣＳＩ−２正規予約／解除コマンドにより、システム・ディスク・ドライバ・レベルで実装される。
【００６２】
このコマンドをマルチパス構成環境において実装するためには、あるホスト上のＬＵＮへの全てのパスが同一の予約キーの下で、ＬＵＮに登録されなければならず、１つのパスだけがオープン時に"排他アクセス、登録者専用"の予約タイプにより、ＬＵＮに持続予約を行う必要がある。他のホストからのＬＵＮへの全てのパスはいつでもＬＵＮに登録できるが、このＬＵＮをアクセスする前に、ＬＵＮに対して持続予約を取ることを要求される。この予約タイプでは、ＬＵＮに登録されるあるホスト上の全てのパスが、このＬＵＮを共用及びアクセスできる。この擬似デバイス・ドライバが、ＳＣＳＩ−３持続予約コマンドをサポートしない記憶サブシステムに適用される場合、擬似デバイス・ドライバは記憶サブシステムの複数パス構成により、単一パス機能に自動的に切り替わる。
【００６３】
ＳＣＳＩ−３持続予約は２つのコマンドをサポートする。１つは持続予約入力であり、このコマンドは、ＬＵＮ上で活動状態の持続予約及び予約キーに関する情報を獲得するために使用される。持続予約入力コマンドによりサポートされる２つのサービス・アクションは、"キー読出し"及び"予約読出し"である。別のコマンドは持続予約出力であり、このコマンドは、ＬＵＮへの登録、ＬＵＮへの予約、ＬＵＮへの予約解除、他のイニシエータのＬＵＮの予約のプリエンプト、及びＬＵＮからの全ての予約キー及び持続予約のクリアのために使用される。持続予約出力コマンドによりサポートされる７つのサービス・アクションは、"登録"、"予約"、"解除"、"クリア"、"プリエンプト"、"登録及び既存キーの無視"、及び"打ち切り付きプリエンプト"である。
【００６４】
図４は、本発明のフローチャート４００である。最初に、オペレーティング・システムのオープン・オプションが、ＳＣＳＩ持続予約コマンドにマップされ、複数パスの全てが共用記憶システムに登録されるようにする（ステップ４１０）。次に、第２の複数パスが共用システムへの持続予約を獲得後、共用記憶システムをアクセスすることを許可される（ステップ４２０）。第１のホストからの全てのパスは、単一の予約キーを用いて共用記憶システムに登録される（図１参照）。持続予約及び予約キーに関する情報がホストにより獲得されてもよい。予約コマンドが、持続予約及び予約キーに関する情報を獲得するために使用される。予約コマンドは、キー読出しサービス・アクション及び予約読出しサービス・アクションを含む。持続予約出力コマンドは、共用記憶システムとのアクションを開始するために発行される。持続予約出力コマンドは、登録、予約、解除、クリア、プリエンプト、及び打ち切り付きプリエンプトを含むグループから選択されるサービス・アクションを含む。予約サービス・アクションは、追加オプション及び削除オプションを含む。
【００６５】
図５は、ＬＵＮに登録する追加オプションのフローチャートである。構成時、各アンダパス（underpath）がＬＵＮに登録される（ステップ５１０）。登録が成功か否かが判断される（ステップ５１２）。パスが成功裡に登録されると（分岐５４０）、その"登録済み"フィールドが真にセットされる（ステップ５５０）。成功裡に登録されない場合（分岐５１４）、その"登録済み"フィールドが偽にセットされる（ステップ５１６）。オープン時、全てのパスが再度、"登録及び既存キーの無視"により登録される（ステップ５２０）。失敗が発生後、引き継ぎホストが"強制オープン"を発行し、これがＳＤＤに"打ち切り付きプリエンプト・"サービス・オプションのための持続予約出力コマンドを発行するように指示する（ステップ５２２）。このコマンドは次に、プリエンプト済み予約キーに合致する全ての登録キーをクリアする。
【００６６】
図６は、パスをＬＵＮから登録解除する削除オプションのフローチャート６００である。パスが除去されるとき、そのパスの全ての登録済みアンダパスが、ＬＵＮからの登録解除のためのアクションを要求する。パスが削除される前に、持続予約がＬＵＮから解除されることが要求される（ステップ６１０）。パス予約済みがチェックされる（ステップ６２０）。フラグが−１の代わりにアンダパス指標にセットされる場合（分岐６２２）、デバイス・クローズ呼び出し時に、そのＬＵＮへの予約が解除されていない（ステップ６２４）。この状況は、パスが保存予約フラグがセットされた状態でオープンされた場合だけ発生し、デバイス・クローズ呼び出し時に予約が解除されない（ステップ６２６）。この場合、以前に予約を行ったアンダパスが、解除サービス・アクションのための持続予約出力を発行し、ＬＵＮから予約を解除する（ステップ６２８）。一方、判断ステップ６２０で、フラグがアンダパス指標にセットされていない場合（分岐６４０）、デバイス・クローズ呼び出し時に、そのＬＵＮへの予約が解除済みである（ステップ６５０）。
【００６７】
図７は、ＬＵＮへの予約のフローチャートである。パスがそれが接続されるＬＵＮに予約を行う必要があるか否かが、オペレーティング・システムの論理ボリューム・マネージャ・ドライバ７１０などの、上位レベル呼び出し元により決定される（ステップ７１０）。デバイス・オープン・オプションの"ext"パラメータが調査される（ステップ７２０）。"ext"パラメータがセットされている場合（分岐７４０）、それらは予約の要求を示す（ステップ７５０）。この"ext"パラメータの有効オプション値を次に示す。
SC-FORCED-OPEN：装置予約競合ステータスを遵守しない。
SC-RETAIN-RESERVATION：クローズ時に装置を解除しない。
SC-NO-RESERVE：その装置へのオープン・サブルーチン呼び出しの間に、装置の予約を阻止し、複数ホストによる装置の共用を可能にする。
SC-SINGLE：選択装置を排他アクセス・モードに設定する。
【００６８】
前記オプションのいずれもセットされていない場合（分岐７２２）、デバイス・オープン・サブルーチンが予約要求にデフォルト指定する（ステップ７２４）。このＬＵＮを予約したイニシエータがまだ存在しない場合、装置は持続予約をＬＵＮに実行する（ステップ７２６）。次のフローチャートは、これらのオプションの各々がＳＣＳＩ−３持続予約コマンドにより実行される様子を示す。
【００６９】
図８は、強制オープン・オプションのフローチャート８００である。強制オープン・オプションがセットされた状態で、デバイス・オープン・サブルーチンが呼び出されると（ステップ８１０）、装置は現持続予約キーを読出そうとする（ステップ８２０）。キーが返却される場合、装置は最初に、予約キーがそのキーに合致するか否かをチェックする（ステップ８３０）。合致する場合（分岐８３０）、装置は何も実行しない。なぜなら、ＬＵＮが装置により予約されているからである。キーが返却され、それがこの装置の予約キーに合致しない場合（分岐８３２）、この予約キーがプリエンプトされ、その待機タスクが打ち切られる（ステップ８４０）。このＬＵＮの予約はこの装置によりスチールされ、未予約パラメータをセットすることにより予約が阻止される（ステップ８５０）。このコマンドが成功裡に完了したか否かが判断される（ステップ８５２）。このコマンドが成功裡に完了しない場合（分岐８５４）、エラー・コードが発行される（ステップ８５６）。このコマンドが成功裡に完了する場合（ステップ８５８）、装置の予約フラグが、この予約を行ったアンダパス指標にセットされる（ステップ８６０）。全ての登録済みアンダパスは、オペレーティング・システムのディスク・ドライバ・オープン・ルーチンにおいて、"ext"パラメータのSC-NO-RESERVEオプションがセットされた状態でオープンされる（ステップ８７０）。ＬＵＮは、ＬＵＮに登録された装置の全てのアンダパスによりアクセスされ、共用され得る。
【００７０】
図９は、保存予約オープン・オプションのフローチャート９００である。デバイス・オープン・サブルーチンがこのオプションをセットされた状態で呼び出されるとき（ステップ９１０）、装置は現持続予約キーを読出す（ステップ９２０）。キーが返却されるか否かが判断される（ステップ９３０）。返却される予約キーが存在しない場合（分岐９８０）、これはＬＵＮがいずれのイニシエータによっても予約されないことを意味し（ステップ９８２）、装置がＬＵＮに持続予約を行う（ステップ９８４）。次に、予約が成功か否かが判断される（ステップ９８６）。この予約コマンドが失敗の場合（分岐９９０）、システム・ドライバはオープン呼び出しを失敗し、呼び出し側にＸＸＸエラー・コードを返却する（ステップ９９２）。この予約コマンドが成功裡に完了する場合（分岐９８８）、全ての登録済みアンダパスがSC-NO-RESERVEオプションをセットされた状態でオープンされる（ステップ９４２）。
【００７１】
返却される予約キーが存在する場合（分岐９３２）、キーが装置の予約キーに合致するか否かが判断される（ステップ９３４）。合致しない場合（分岐９３６）、ドライバはオープン呼び出しの失敗をＸＸＸエラー・コードを呼び出し側に返却する（ステップ９３８）。返却キーがこの装置の予約キーに合致する場合（ステップ９４０）、全てのアンダパスがSC-NO-RESERVEオプションをセットされた状態でオープンされる（ステップ９４２）。
【００７２】
全てのアンダパスがＳＣＳＩ−２予約オプションをセットされた状態でオープンされる場合（ステップ９４２）、ＬＵＮがＬＵＮに登録されたこの装置の全てのアンダパスによりアクセスされ、共用される。装置の予約フラグが、この予約を行ったアンダパス指標にセットされる（ステップ９５０）。保存予約フィールドが真にセットされる（ステップ９６０）。このフィールドがデバイス・クローズ呼び出し時にチェックされ、持続予約が解除されるべきか否かが判断される（ステップ９７０）。
【００７３】
図１０は、未予約オプションのフローチャート１０００である。デバイス・オープン・サブルーチンがこのオプションをセットされた状態で呼び出されるとき（ステップ１０１０）、装置は現持続予約キーを読出す（ステップ１０２０）。このプロシージャを実行するために、全てのアンダパスが"登録及び既存キーを無視"により登録され、全てのアンダパスがＬＵＮに登録されていることを確認する。ＬＵＮに登録されなかったアンダパスが存在する場合、そのアンダパスが登録サービス・アクションのための持続予約出力コマンドを発行する。再度この再試行に失敗すると、このアンダパスは無視され、残りのオペレーションをスキップされる。次に、登録済みのアンダパスが選択されて、予約読出しサービス・アクションのための持続予約入力コマンドを発行し、現持続予約キーを獲得する。
【００７４】
キーが返却されるか否かが判断される（ステップ１０３０）。返却される予約キーが存在しない場合（分岐１０８０）、ＬＵＮはいずれのイニシエータによっても予約されない（ステップ１０８２）。呼び出し側からオペレーティング・システム・ディスク・ドライバ・オープン・ルーチンに渡されるオリジナル"ext"パラメータにより、装置がその全てのアンダパスをオープンする（ステップ１０８４）。
【００７５】
現持続予約キーが返却される場合（分岐１０３２）、それが装置の予約キーに合致するか否かが判断される（ステップ１０３４）。合致する場合（分岐１０４０）、解除サービス・アクションのための持続予約コマンドが発行され、ＬＵＮへの持続予約を解除する（ステップ１０４２）。合致しない場合（分岐１０３６）、システム・ドライバはオープン呼び出しを失敗し、呼び出し側にＸＸＸエラー・コードを返却する（ステップ１０３８）。
【００７６】
図１１は、デフォルト予約オープン・オプションのフローチャート１１００である。デバイス・オープン・サブルーチンが、前記列挙されたいずれのオプションもセットされずに呼び出される場合、オープンは予約要求をデフォルト指定される。全てのアンダパスが、それらが既に構成フェーズにおいて登録済みか否かに関わらずＬＵＮに登録される（ステップ１１１０）。アンダパスが"登録及び既存キーの無視"サービス・アクションのための持続予約出力コマンドを発行する。装置は予約読出しのための持続予約入力コマンドを発行し、現持続予約キーを獲得する（ステップ１１３０）。キーが返却されるか否かが判断される（ステップ１１３２）。キーが返却される場合（分岐１１３３）、キーが装置の予約キーに合致するか否かが判断される（ステップ１１３４）。それ自身の予約キーに合致しない場合（分岐１１３６）、ドライバはオープン呼び出しを失敗し、呼び出し側にＥＩＯエラー・コードを返却する（ステップ１１３８）。返却される持続予約キーが装置の予約キーに合致する場合（分岐１１４０）、全ての登録済みアンダパスが、"ext"パラメータのSC-NO-RESERVEオプションをセットされた状態でオープンされる（ステップ１１４２）。持続予約キーが返却されない場合（分岐１１４４）、登録済みアンダパスが選択される（ステップ１１５０）。予約サービス・アクションのための持続予約出力コマンドが発行され、ＬＵＮに持続予約を行う（ステップ１１５２）。コマンドが成功裡に完了したか否かが判断される（ステップ１１５４）。成功の場合（分岐１１６０）、装置は予約フィールドにＬＵＮに予約を行ったアンダパス指標をマークする（ステップ１１７０）。全ての登録済みアンダパスが、"ext"パラメータがSC-NO-RESERVEオプションにセットされた状態でオープンされる（ステップ１１８０）。予約コマンドが失敗の場合（分岐１１５６）、ドライバはオープン呼び出しを失敗し、呼び出し側にＥＩＯエラー・コードを返却する（ステップ１１５８）。
【００７７】
図１２は、ＬＵＮからの解除のフローチャート１２００である。デバイス・クローズ・ルーチンが呼び出されるとき、保存予約フラグが真にセットされているとき以外は、接続されるＬＵＮへのその持続予約が解除されるべきである。具体的には、解除サービス・アクションのための持続予約出力コマンドが、予約を行い、依然その予約を保持するアンダパスにより発行されなければならない。この条件が合致しない場合、要求が無視され、良好ステータスが返却される。
【００７８】
このプロシージャを実行するため、ドライバは最初に装置の全てのアンダパスをクローズし（ステップ１２１０）、次に予約を保持するアンダパスをオープンする（ステップ１２２０）。解除サービス・アクションのための持続予約出力コマンドが発行され、ＬＵＮへの持続予約を解除する（ステップ１２３０）。
【００７９】
本発明の典型的な実施例の前述の説明は例証として提供されたものであり、本発明をここで開示された正確な形態に制限するものではない。前述の教示を鑑み、多くの変更及び変形が可能であろう。
【００８０】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００８１】
（１）第１の複数入出力パス内でハードウェア故障が発生するとき、第２の複数入出力パスを用いて、共用記憶システムの論理装置番号へのアクセスを提供する方法であって、
オペレーティング・システムのオープン・オプションをＳＣＳＩ持続予約コマンドにマップし、前記複数パスの全てが前記共用記憶システムの前記論理装置番号に登録することを可能にし、前記第２の複数パスが前記共用記憶システムへの持続予約を獲得後、前記共用記憶システムの前記論理装置番号をアクセスすることを可能にする方法。
（２）前記オペレーティング・システムのオープン・オプションをＳＣＳＩ持続予約コマンドにマップし、前記複数パスの全てが前記共用記憶システムの前記論理装置番号に登録することを可能にするステップが、１つの予約キーを用いて、第１のホストからの全てのパスを、前記共用記憶システムの前記論理装置番号に登録するステップを含む、前記（２）記載の方法。
（３）前記オペレーティング・システムのオープン・オプションをＳＣＳＩ持続予約コマンドにマップするステップが、持続予約及び予約キーに関する情報を獲得するステップを含む、前記（１）記載の方法。
（４）前記持続予約及び予約キーに関する情報を獲得するステップが、予約コマンドを使用するステップを含む、前記（３）記載の方法。
（５）前記予約コマンドがキー読出しサービス・アクション及び予約読出しサービス・アクションを含む、前記（４）記載の方法。
（６）前記オペレーティング・システムのオープン・オプションをＳＣＳＩ持続予約コマンドにマップするステップが、前記共用記憶システムの前記論理装置番号にアクションを開始する持続予約出力コマンドを発行するステップを含む、前記（１）記載の方法。
（７）前記共用記憶システムの前記論理装置番号にアクションを開始する持続予約出力コマンドが、登録、予約、解除、クリア、プリエンプト、登録及び既存キーの無視、及び打ち切り付きプリエンプトを含むグループから選択されるサービス・アクションを含む、前記（６）記載の方法。
（８）前記登録サービス・アクションが追加及び削除オプションを含む、前記（７）記載の方法。
（９）前記追加オプションが、
構成時に各パスを登録するステップと、
最初の登録試行が成功であったか否かを判断するステップと、
オープン時に、全てのパスの登録を再度登録により行い、既存のキーを無視するステップと、
失敗の発生後、引き継ぎホストにより強制オープンを発行し、打ち切り付きプリエンプト・サービス・オプションのための持続予約出力コマンドにより、プリエンプト予約キーに合致する全ての登録キーをクリアするステップと、
前記第１または第２の登録試行が成功の場合、前記パスの状態を真にセットするステップと
を含む、前記（７）記載の方法。
（１０）前記削除オプションが、
前記パスが持続予約を有するか否かを判断するステップと、
前記パスが持続予約を有すると判断される場合、解除サービス・オプションをセットされた状態で持続予約を発行するステップと、
前記パスが持続予約を有さないと判断される場合、予約を解除するステップと
を含む、前記（７）記載の方法。
（１１）前記予約サービス・アクションが、
コマンド・パラメータがセットされているか否かを調査することにより、装置が前記共用記憶システムの前記論理装置番号に予約を行う必要があるか否かを決定するステップと、
前記コマンド・パラメータがセットされていない場合、予約要求をデフォルト指定し、いずれのイニシエータも前記共用記憶装置の前記論理装置番号を予約していない場合、前記共用記憶装置の前記論理装置番号に持続予約を実行するステップと、
前記コマンド・パラメータがセットされている場合、当該コマンド・パラメータを実行するステップと
を含む、前記（７）記載の方法。
（１２）前記コマンド・パラメータが強制オープン・オプションであり、前記強制オープン・オプションが、現予約キーが前記装置の予約キーに合致しない場合、前記装置に現予約キーを読出し、待機タスクをプリエンプトし、打ち切るように指示する、前記（１１）記載の方法。
（１３）前記コマンド・パラメータを未予約にセットすることにより、ＳＣＳＩ−２予約を阻止するステップと、
前記強制オープン・コマンドが成功裡に完了するか否かを判断するステップと、
前記強制オープン・コマンドが成功裡に完了する場合、前記装置の予約フラグを持続予約を行ったパス指標にセットし、ＳＣＳＩ−２未予約オプションがセットされた全てのパスをオープンするステップと、
前記強制オープン・コマンドが成功裡に完了しない場合、エラー・コードを発行するステップと
を含む、前記（１２）記載の方法。
（１４）前記コマンド・パラメータが保存予約オプションであり、前記保存予約が前記装置に対して、現予約キーを読出し、キーが返却されるか否かを判断し、前記キーが返却されない場合、前記論理装置番号がイニシエータにより予約されないように設定し、持続予約を行うように指示する、前記（１１）記載の方法。
（１５）前記保存予約オプションが前記装置に対して、返却キーが前記装置の予約キーに合致するか否かを判断し、前記返却キーが前記装置の予約キーに合致しない場合、エラー・コードを発行するように指示し、前記返却キーが前記装置の予約キーに合致する場合、ＳＣＳＩ−２未予約オプションがセットされた全てのパスをオープンし、予約フラグを持続予約を行ったパス指標にセットし、保存予約を真にセットし、クローズ時に保存予約フィールドをチェックすることにより、持続予約が解除されるべきか否かを判断するように指示する、前記（１４）記載の方法。
（１６）前記コマンド・パラメータが未予約オプションであり、前記未予約オプションが前記装置に対して、現予約キーを読出し、キーが返却されるか否かを判断し、前記論理装置番号がイニシエータにより予約されないように設定し、ホストからのオリジナル・コマンド・パラメータにより、全てのパスをオープンするように指示する、前記（１１）記載の方法。
（１７）前記未予約オプションが前記装置に対して、返却キーが前記装置の予約キーに合致するか否かを判断し、前記返却キーが前記装置の前記予約キーに合致しない場合、エラー・コードを発行するように指示し、前記返却キーが前記装置の前記予約キーに合致する場合、解除のための持続予約出力を発行するように指示する、前記（１６）記載の方法。
（１８）前記コマンド・パラメータがデフォルト予約オプションであり、前記デフォルト予約オプションが前記装置に対して、全てのパスをチェックし、任意のパスが未登録か否かを判断し、全ての未登録パスを登録し、成功裡に登録されないパスを無視し、予約キーを返却及び読出し、返却される予約キーが前記装置の予約キーに合致しない場合、エラー・コードを発行し、ＳＣＳＩ−２未予約にセットされた全ての登録済みパスをオープンするように指示する、前記（１１）記載の方法。
（１９）前記デフォルト予約オプションが前記装置に対して、キーが返却されない場合、登録済みパスを選択し、選択された前記登録済みパスに対して持続予約を発行し、持続予約が成功しない場合、前記パスを無視し、持続予約が成功の場合、予約フィールドに予約を行ったパス指標をマークし、前記コマンド・パラメータがＳＣＳＩ−２未予約にセットされた全ての登録済みパスをオープンするように指示する、前記（１８）記載の方法。
（２０）前記コマンド・パラメータが単一のオプションであり、前記単一のオプションが前記装置に対して、全てのパスをチェックし、任意のパスが未登録か否かを判断し、全ての未登録のパスを登録し、成功裡に登録されないパスを無視し、予約キーを返却及び読出し、返却される予約キーが前記装置の予約キーに合致しない場合、エラー・コードを発行し、未予約をセットされた全ての登録済みパスをオープンするように指示する、前記（１１）記載の方法。
（２１）キーが返却されない場合、単一のオプションが前記装置に対して、登録済みパスを選択し、選択された前記登録済みパスの持続予約を発行し、持続予約が成功しない場合、前記パスを無視し、持続予約が成功の場合、予約フィールドに予約を行ったパス指標をマークし、前記コマンド・パラメータが未予約にセットされた全ての登録済みパスをオープンするように指示する、前記（２０）記載の方法。
（２２）前記解除サービス・アクションが、
保存予約フラグがセットされた未予約の全てのパスをクローズするステップと、
保存予約フラグがセットされたパスをオープンするステップと、
前記解除サービス・アクションがセットされた持続予約出力コマンドを発行し、パスの持続予約を解除するステップと
を含む、前記（７）記載の方法。
（２３）共用記憶システムにより、ＳＣＳＩ持続予約コマンドをサポートする方法であって、
予約キーを処理して、登録済みホストを識別するステップと、
持続予約コマンドを処理して、ホストによるアクセスを制御するステップと
を含む、方法。
（２４）前記持続予約コマンドの処理が、複数パスの全てを前記共用記憶システムの論理装置番号に登録することを可能にする、前記（２３）記載の方法。
（２５）１つの予約キーを用いて、第１のホストからの全てのパスを、前記共用記憶システムの論理装置番号に登録するステップを含む、前記（２４）記載の方法。
（２６）前記予約キーの処理が、持続予約及び予約キーに関する情報を獲得するステップを含む、前記（２３）記載の方法。
（２７）前記持続予約及び予約キーに関する情報を獲得するステップが、予約コマンドを使用するステップを含む、前記（２６）記載の方法。
（２８）前記予約コマンドがキー読出しサービス・アクション及び予約読出しサービス・アクションを含む、前記（２７）記載の方法。
（２９）前記持続予約コマンドの処理が、前記共用記憶システムの前記論理装置番号にアクションを開始する持続予約出力コマンドを発行するステップを含む、前記（２３）記載の方法。
（３０）前記共用記憶システムの前記論理装置番号にアクションを開始する持続予約出力コマンドが、登録、予約、解除、クリア、プリエンプト、登録及び既存キーの無視、及び打ち切り付きプリエンプトを含むグループから選択されるサービス・アクションを含む、前記（２９）記載の方法。
（３１）オペレーティング・システムのオープン・オプションをＳＣＳＩ持続予約コマンドにマップするドライバであって、予約キーを処理して登録済みホストを識別し、また持続予約コマンドを処理して、ホストによるアクセスを制御するように構成されるドライバ。
（３２）複数パスの全てを共用記憶システムの論理装置番号に登録可能にすることにより、持続予約コマンドを処理する、前記（３１）記載のドライバ。
（３３）１つの予約キーを用いて、第１のホストからの全てのパスを、前記共用記憶システムの前記論理装置番号に登録する、前記（３２）記載のドライバ。
（３４）持続予約及び予約キーに関する情報を獲得することにより、前記予約キーを処理する、前記（３１）記載のドライバ。
（３５）予約コマンドを使用することにより、前記持続予約及び予約キーに関する情報を獲得する、前記（３４）記載のドライバ。
（３６）前記予約コマンドがキー読出しサービス・アクション及び予約読出しサービス・アクションを含む、前記（３５）記載のドライバ。
（３７）前記共用記憶システムの前記論理装置番号にアクションを開始する持続予約出力コマンドを発行することにより、前記持続予約コマンドを処理する、前記（３１）記載のドライバ。
（３８）前記共用記憶システムの前記論理装置番号にアクションを開始する前記持続予約出力コマンドが、登録、予約、解除、クリア、プリエンプト、登録及び既存キーの無視、及び打ち切り付きプリエンプトを含むグループから選択されるサービス・アクションを含む、前記（３７）記載のドライバ。
【図面の簡単な説明】
【図１】本発明の環境を示すブロック図である。
【図２】オープン・オプションを適切なＳＣＳＩ−３持続予約コマンドにマップし、共用記憶装置へのアクセスを制御するオペレーティング・システム内の擬似ドライバを示す図である。
【図３】共用ＬＵＮ問題を示すブロック図である。
【図４】本発明のフローチャートである。
【図５】ＬＵＮに登録する追加オプションのフローチャートである。
【図６】パスをＬＵＮから登録解除する削除オプションのフローチャートである。
【図７】ＬＵＮへの予約のフローチャートである。
【図８】強制オープン・オプションのフローチャートである。
【図９】保存予約オープン・オプションのフローチャートである。
【図１０】未予約オプションのフローチャートである。
【図１１】デフォルト予約オープン・オプションのフローチャートである。
【図１２】ＬＵＮからの解除のフローチャートである。
【符号の説明】
１１０  所有者ホスト
１１２  フェールオーバ・ホスト
１２０  パス
１３０  ＬＵＮ０
２００  擬似デバイス・ドライバ
２１０  擬似デバイス
２１２  オペレーティング・システム要求
２１４  ＳＣＳＩディスク・ドライバ
２２０  アダプタ・ドライバ
２４０  共用装置
３１０、３３０  アダプタ
３２０、３４０  ＬＵＮ
７１０  論理ボリューム・マネージャ・ドライバ
【図１】
0003659342.tif 000002
【図２】
0003659342.tif 000003
【図３】
0003659342.tif 000004
【図４】
0003659342.tif 000005
【図５】
0003659342.tif 000006
【図６】
0003659342.tif 000007
【図７】
0003659342.tif 000008
【図８】
0003659342.tif 000009
【図９】
0003659342.tif 000010
【図１０】
0003659342.tif 000011
【図１１】
0003659342.tif 000012
【図１２】
0003659342.tif 000013