(57)【特許請求の範囲】
【請求項１】
Ｉ／Ｏデバイスを接続するホストバスアダプタ（ＨＢＡ）を通して、該Ｉ／Ｏデバイスとの間でデータ通信する計算機システムであって、
該ＨＢＡとして、省電力化機能であるＰＣＩ ＰＭ 機能を備えた第１のＰＣＩ／ＰＣＩeバス用拡張カードを搭載した運用系パスを形成する第１のＨＢＡと、該ＰＣＩ ＰＭ 機能を備えた第２のＰＣＩ／ＰＣＩeバス用拡張カードを搭載した待機系パスを形成する第２のＨＢＡと、
該第１のＨＢＡ及び第２のＨＢＡを制御する制御部を有し、
該制御部は、当初、該第１のＨＢＡの第１のＰＣＩ／ＰＣＩeバス用拡張カードをアクティブ状態に、かつ該第２のＨＢＡの第２のＰＣＩ／ＰＣＩeバス用拡張カードを省電力状態に制御し、
該運用系パスに障害が発生した場合、該制御部は、該第１のＨＢＡに対して運用系パスに対する通信回復処理を行い、更に、該第２のＨＢＡの第２のＰＣＩ／ＰＣＩeバス用拡張カードに対して省電力状態からアクティブ状態に変更するように制御し、
該通信回復処理が不成功の場合、該制御部は、該第２のＨＢＡの第２のＰＣＩ／ＰＣＩeバス用拡張カードを用いて該Ｉ／Ｏデバイスと通信するように制御することを特徴とする計算機システム。
【請求項２】
前記計算機システムは、ＳＣＳIコマンドを用いて該Ｉ／Ｏデバイスとの間でデータ通信するホスト計算機を有し、
前記制御部は、前記運用系パスに対する前記通信回復処理の制御と、前記待機系パスに対する前記省電力状態からアクティブ状態に変更する制御とを並行して行うことを特徴とする請求項１の計算機システム。
【請求項３】
前記制御部は、該運用系パスの障害を検知した時、前記運用系パスに対する通信回復処理としてＴａｓｋ Ｍａｎａｇｅｍｅｎｔ要求と、前記待機系パス上の該第２のＨＢＡの起動を並行的に実行し、前記運用系パスに対するＴａｓｋ Ｍａｎａｇｅｍｅｎｔ要求が成功しなかった場合に、該第２のＨＢＡを介して該Ｉ／Ｏデバイスに対してＳＣＳIコマンドを用いて通信することを特徴とする請求項１又は２の計算機システム。
【請求項４】
前記制御部は、前記運用系パスにおける前記第１のＨＢＡの第１のＰＣＩ／ＰＣＩeバス用拡張カードのＰＭ Ｓｔａｔｅを、前記アクティブ状態であるＤ０＿Ａｃｔｉｖｅに設定し、前記待機系パスにおける前記第２のＨＢＡの該第２のＰＣＩ／ＰＣＩeバス用拡張カードのＰＭ Ｓｔａｔｅを、前記省電力状態であるＤ３＿ｈｏｔに設定し、
該制御部は、該運用系パスの該第１のＨＢＡの第１のＰＣＩ／ＰＣＩeバス用拡張カードを介して該Ｉ／Ｏデバイスと通信し、
該運用系パスを用いた該ＳＣＳIコマンドの通信において不具合があった場合、該制御部は、該運用系パスに対する該通信回復処理と、前記待機系パスの該第２のＨＢＡのＰＭ Ｓｔａｔｅを、前記アクティブ状態であるＤ０＿Ａｃｔｉｖｅに変更する制御を並行して行い、
該運用系パスに対する通信回復処理が不成功の場合、該制御部は、該第２のＨＢＡの第２のＰＣＩ／ＰＣＩeバス用拡張カードを用いて、該Ｉ／Ｏデバイスと通信することを特徴とする請求項２又は３の計算機システム。
【請求項５】
該運用系パスを用いた該ＳＣＳIコマンドの通信において不具合があった場合、該制御部は、該運用系パスに対する該通信回復処理と、前記待機系パスの該第２のＨＢＡのＰＭ Ｓｔａｔｅを、前記アクティブ状態であるＤ０＿Ａｃｔｉｖｅに変更する処理を並行して行い、
該運用系パスに対する通信回復処理が成功した場合、該制御部は、前記第２のＨＢＡの該第２のＰＣＩ／ＰＣＩeバス用拡張カードに設定されたＰＭ Ｓｔａｔｅを、該Ｄ０＿Ａｃｔｉｖｅから、前記省電力状態であるＤ３＿ｈｏｔに変更し、
更に、該制御部は該第１のＨＢＡの第１のＰＣＩ／ＰＣＩeバス用拡張カードを用いて、該Ｉ／ＯデバイスとＳＣＳＩコマンドを用いた通信をする
ことを特徴とする請求項４の計算機システム。
【請求項６】
Ｉ／Ｏデバイスを接続するホストバスアダプタ（ＨＢＡ）を通して、該Ｉ／Ｏデバイスとの間でＳＣＳIコマンドを用いてデータ通信するホスト計算機におけるＨＢＡ制御方法であって、
該ＨＢＡとして、省電力化機能であるＰＣＩ ＰＭ 機能を備えた第１のＰＣＩ／ＰＣＩeバス用拡張カードを搭載した運用系パスを形成する第１のＨＢＡと、該ＰＣＩ ＰＭ 機能を備えた第２のＰＣＩ／ＰＣＩeバス用拡張カードを搭載した待機系パスを形成する第２のＨＢＡと、該第１のＨＢＡ及び第２のＨＢＡを制御する制御部を有し、
該制御部は、当初、該第１のＨＢＡの第１のＰＣＩ／ＰＣＩeバス用拡張カードをアクティブ状態に、かつ該第２のＨＢＡの第２のＰＣＩ／ＰＣＩeバス用拡張カードを省電力状態に制御するステップと、
該運用系パスに障害が発生した場合、該制御部は、該第１のＨＢＡに対して運用系パスに対する通信回復処理を行い、更に、該第２のＨＢＡの第２のＰＣＩ／ＰＣＩeバス用拡張カードに対して省電力状態からアクティブ状態に変更するように制御するステップと、
該通信回復処理が不成功の場合、該制御部は、該第２のＨＢＡの第２のＰＣＩ／ＰＣＩeバス用拡張カードを用いて該Ｉ／Ｏデバイスと通信するように制御するステップと
を行うことを特徴とするＨＢＡ制御方法。
【請求項７】
前記制御部は、該運用系パスの障害を検知した時、前記運用系パスに対する通信回復処理としてＴａｓｋ Ｍａｎａｇｅｍｅｎｔ要求と、前記待機系パス上の該第２のＨＢＡの起動を並行的に実行し、前記運用系パスに対するＴａｓｋ Ｍａｎａｇｅｍｅｎｔ要求が成功しなかった場合に、該第２のＨＢＡを介して該Ｉ／Ｏデバイスに対してＳＣＳIコマンドを用いて通信することを特徴とする請求項６のＨＢＡ制御方法。
【請求項８】
前記制御部は、前記運用系パスにおける前記第１のＨＢＡの第１のＰＣＩ／ＰＣＩeバス用拡張カードのＰＭ Ｓｔａｔｅを、前記アクティブ状態であるＤ０＿Ａｃｔｉｖｅに設定し、
前記待機系パスにおける前記第２のＨＢＡの該第２のＰＣＩ／ＰＣＩeバス用拡張カードのＰＭ Ｓｔａｔｅを、前記省電力状態であるＤ３＿ｈｏｔに設定し、
該制御部は、該運用系パスの該第１のＨＢＡの第１のＰＣＩ／ＰＣＩeバス用拡張カードを介して該Ｉ／Ｏデバイスと通信し、
該運用系パスを用いた該ＳＣＳIコマンドの通信において不具合があった場合、該制御部は、該運用系パスに対する該通信回復制御と、前記待機系パスの該第２のＨＢＡのＰＭ Ｓｔａｔｅを、前記アクティブ状態であるＤ０＿Ａｃｔｉｖｅに変更する制御を並行して行い、
該運用系パスに対する通信回復処理が不成功の場合、該制御部は、該第２のＨＢＡの第２のＰＣＩ／ＰＣＩeバス用拡張カードを用いて、該Ｉ／Ｏデバイスと通信することを特徴とする請求項６又は７のＨＢＡ制御方法。
【請求項９】
該運用系パスを用いた該ＳＣＳIコマンドの通信において不具合があった場合、該制御部は、該運用系パスに対する該通信回復処理と、前記待機系パスの該第２のＨＢＡのＰＭ Ｓｔａｔｅを、前記アクティブ状態であるＤ０＿Ａｃｔｉｖｅに変更する処理を並行して行い、
該運用系パスに対する通信回復処理が成功した場合、該制御部は、前記第２のＨＢＡの該第２のＰＣＩ／ＰＣＩeバス用拡張カードに設定されたＰＭ Ｓｔａｔｅを、該Ｄ０＿Ａｃｔｉｖｅから、前記省電力状態であるＤ３＿ｈｏｔに変更し、
更に、該制御部は該第１のＨＢＡの第１のＰＣＩ／ＰＣＩeバス用拡張カードを用いて、該Ｉ／ＯデバイスとＳＣＳＩコマンドを用いた通信をする
ことを特徴とする請求項８のＨＢＡ制御方法。
【請求項１０】
前記第１及び２のＨＢＡのＰＭ Ｓｔａｔｅの変更は、前記第１及び第２のＰＣＩ／ＰＣＩeバス用拡張カードに搭載されたメモリ上に形成されたＰＣＩ ＣＦＧ空間のレジスタ（ＰＭＣＳＲ）を書き換えることにより行うことを特徴とする請求項８又は９のＨＢＡ制御方法。
【請求項１１】
Ｉ／Ｏデバイスを接続するホストバスアダプタ（ＨＢＡ）として、省電力化機能であるＰＣＩ ＰＭ 機能を備えた第１のＰＣＩ／ＰＣＩeバス用拡張カードを搭載した運用系パスを形成する第１のＨＢＡと、該ＰＣＩ ＰＭ 機能を備えた第２のＰＣＩ／ＰＣＩeバス用拡張カードを搭載した待機系パスを形成する第２のＨＢＡとを有し、該第１のＨＢＡ又は第２のＨＢＡを通して該Ｉ／Ｏデバイスとの間でＳＣＳIコマンドを用いてデータ通信するホスト計算機上で実行される、該第１のＨＢＡ及び第２のＨＢＡを制御するためのホストバスアダプタドライバとして機能するプログラムであって、
該ホストバスアダプタドライバは、当初、該第１のＨＢＡの第１のＰＣＩ／ＰＣＩeバス用拡張カードをアクティブ状態に、かつ該第２のＨＢＡの第２のＰＣＩ／ＰＣＩeバス用拡張カードを省電力状態に制御し、
該ホストバスアダプタドライバは、該運用系パスに障害が発生した場合、該第１のＨＢＡに対して運用系パスに対する通信回復処理を行い、更に、該第２のＨＢＡの第２のＰＣＩ／ＰＣＩeバス用拡張カードに対して省電力状態からアクティブ状態に変更するように制御し、
該ホストバスアダプタドライバは、該通信回復処理が不成功の場合、該第２のＨＢＡの第２のＰＣＩ／ＰＣＩeバス用拡張カードを用いて該Ｉ／Ｏデバイスと通信するように制御することを特徴とするホストバスアダプタドライバ用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システム、ホストバスアダプタ制御方法及びそのプログラムに係り、特に、ホスト計算機とＩ／Ｏデバイスの間を、ＰＣＩ／ＰＣＩeバス用拡張カードを搭載したホストバスアダプタを用いた冗長化したパスで接続した計算機システムにおける、待機系のホストバスアダプタに搭載したＰＣＩ／ＰＣＩeバス用拡張カードの省電力制御に関する。
【背景技術】
【０００２】
ミッションクリティカルな計算機システムでは、信頼性を向上させる目的で、ストレージシステム等のＩ／Ｏデバイスへの入出力経路を多重化（冗長化）することが行われている。また、最近の計算機システムでは、ホスト計算機とＩ／Ｏデバイスを、ＰＣＩ／ＰＣＩeバス用拡張カードを用いて接続したシステムも実用化されている。入出力経路の多重化に関して、例えば、特許文献１及び特許文献２には、ストレージシステムとの入出力経路を多重化することで、入出力性能を向上させ、また障害発生時に正常な論理パスを選択してストレージシステム上の論理ユニットにアクセスすることが開示されている。
【０００３】
また近年、計算機システムの入出力経路にあるホストバスアダプタ（以下ＨＢＡという）の高速化が進んでいる。この高速化は入出力経路を冗長化することで実現可能であるが、一方で要求される入出力性能を過剰に達成してしまう事態が生じる。このような場合、省電力化の観点からは、要求される入出力性能を達成するために必要最低限な入出力経路（運用パス）にある装置のみを動作させ、過剰な入出力経路（待機パス）にある装置を停止することが望ましい。
【０００４】
しかし、停止中の装置を起動する場合、例えばホストバスアダプタにおいては、停止状態から通信可能な状態になるまで、数秒〜数十秒の起動時間を要する。そのため、ミッションクリティカルな計算機システムでは、待機パスにある装置を停止する手法は適用できない。ミッションクリティカルな計算機システムでは、運用パスを用いた通信が不可となった場合、待機パスで即座に通信継続されることが求められており、数秒〜数十秒の起動時間を許容できない。
【０００５】
待機系パスの省電力制御に関して、特許文献３には、複数のパスに接続する各々のＨＢＡに対する電力供給を制御する電力供給制御部を備え、再発行したＩ／Ｏに対してエラーの発生が検知されたら待機系と現用系のパスを切り替えて、電力供給制御部によってタイムアウトの通知を受けた際に待機系のＨＢＡに対する電力供給を停止するコンピュータシステムが開示されている。
更に、特許文献４には、ＰＣＩ ＰＭ（Power Management）機能を用いて、ＰＣＩ／ＰＣＩeバスに接続された装置の消費電力を低減する技術が開示されている。
また、非特許文献１には、ＰＣＩ／ＰＣＩeバス用拡張カードを対象とした省電力化機能であるＰＭ機能（Power Management機能）が規定されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−１８５０９３号公報
【特許文献２】特開２００７−２６５２４３号公報
【特許文献３】特開２０１０−１９８３５３号公報
【特許文献４】特開２００９−２８９１９３号公報
【非特許文献】
【０００７】
【非特許文献１】PCI Bus Power Management Interface Specification Rev.1.2 March 3， 2004
【非特許文献２】Working Draft American National Standard Project T10/1683−D Rev.6 23 May 2006
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献３の技術は、ＨＢＡに対する電力供給を制御する電力供給制御部によって待機パスの省電力制御を行っている。しかし、実用化されているコンピュータシステムには、この種の電力供給制御部を備えていないものも多く存在しており、即この技術を適用するには難しい。とりわけ、特許文献３には、ＰＣＩ ＰＭ機能を備えたＰＣＩ／ＰＣＩeバス用拡張カードを用いた計算機システムにおける待機系パスの省電力制御を如何に行うかについて示唆が無い。
【０００９】
また、特許文献４には、ＰＣＩ ＰＭ機能を用いて、ＰＣＩ／ＰＣＩeバスに接続された装置の消費電力を低減する技術が提案されている。しかし、ＰＣＩ／ＰＣＩeバスに接続されたＨＢＡが冗長化された計算機システムに如何に適用されるについては示唆が無い。
【００１０】
そこで、本発明の目的は、ＰＣＩ ＰＭ機能を備えたＰＣＩ／ＰＣＩeバス用拡張カードを用いてＩ／Ｏデバイスに対する入出力経路が多重に形成された計算機システムにおける、待機系パスの省電力化を図ることにある。
より具体的に言えば、運用系パスに障害が発生した場合、省電力状態にある待機系パスを用いて直ちにＳＣＳＩ通信を開始するように制御することにある。
【課題を解決するための手段】
【００１１】
本発明に係る計算機システムは、好ましくは、Ｉ／Ｏデバイスを接続するホストバスアダプタ（ＨＢＡ）を通して、該Ｉ／Ｏデバイスとの間でデータ通信する計算機システムであって、
該ＨＢＡとして、省電力化機能であるＰＣＩ ＰＭ 機能を備えた第１のＰＣＩ／ＰＣＩeバス用拡張カードを搭載した運用系パスを形成する第１のＨＢＡと、該ＰＣＩ ＰＭ 機能を備えた第２のＰＣＩ／ＰＣＩeバス用拡張カードを搭載した待機系パスを形成する第２のＨＢＡと、該第１のＨＢＡ及び第２のＨＢＡを制御する制御部を有し、
該制御部は、当初、該第１のＨＢＡの第１のＰＣＩ／ＰＣＩeバス用拡張カードをアクティブ状態に、かつ該第２のＨＢＡの第２のＰＣＩ／ＰＣＩeバス用拡張カードを省電力状態に制御し、
該運用系パスに障害が発生した場合、該制御部は、該第１のＨＢＡに対して運用系パスに対する通信回復処理を行い、更に、該第２のＨＢＡの第２のＰＣＩ／ＰＣＩeバス用拡張カードに対して省電力状態からアクティブ状態に変更するように制御し、
該通信回復処理が不成功の場合、該制御部は、該第２のＨＢＡの第２のＰＣＩ／ＰＣＩeバス用拡張カードを用いて該Ｉ／Ｏデバイスと通信するように制御することを特徴とする計算機システムとして構成される。
【００１２】
好ましい例では、前記計算機システムは、ＳＣＳIコマンドを用いて該Ｉ／Ｏデバイスとの間でデータ通信するホスト計算機を有し、前記制御部は、前記運用系パスに対する前記通信回復処理の制御と、前記待機系パスに対する前記省電力状態からアクティブ状態に変更する制御とを並行して行う。
また、好ましくは、前記制御部は、該運用系パスの障害を検知した時、前記運用系パスに対する通信回復処理としてＴａｓｋ Ｍａｎａｇｅｍｅｎｔ要求と、前記待機系パス上の該第２のＨＢＡの起動を並行的に実行し、前記運用系パスに対するＴａｓｋ Ｍａｎａｇｅｍｅｎｔ要求が成功しなかった場合に、該第２のＨＢＡを介して該Ｉ／Ｏデバイスに対してＳＣＳIコマンドを用いて通信する。
【００１３】
また、好ましくは、前記制御部は、前記運用系パスにおける前記第１のＨＢＡの第１のＰＣＩ／ＰＣＩeバス用拡張カードのＰＭ ＳｔａｔｅをＤ０＿Ａｃｔｉｖｅに設定し、
前記待機系パスにおける前記第２のＨＢＡの該第２のＰＣＩ／ＰＣＩeバス用拡張カードのＰＭ ＳｔａｔｅをＤ３＿ｈｏｔに設定し、
該制御部は、該運用系パスの該第１のＨＢＡの第１のＰＣＩ／ＰＣＩeバス用拡張カードを介して該Ｉ／Ｏデバイスと通信し、
該運用系パスを用いた該ＳＣＳIコマンドの通信において不具合があった場合、該制御部は、該運用系パスに対する該通信回復制御と、前記待機系パスの該第２のＨＢＡのＰＭ ＳｔａｔｅをＤ０＿Ａｃｔｉｖｅに変更する制御を並行して行い、
該運用系パスに対する通信回復処理が不成功の場合、該制御部は、該第２のＨＢＡの第２のＰＣＩ／ＰＣＩeバス用拡張カードを用いて、該Ｉ／Ｏデバイスと通信する。
【００１４】
また、好ましくは、該運用系パスを用いた該ＳＣＳIコマンドの通信において不具合があった場合、該制御部は、該運用系パスに対する該通信回復処理と、前記待機系パスの該第２のＨＢＡのＰＭ ＳｔａｔｅをＤ０＿Ａｃｔｉｖｅに変更する処理を並行して行い、
該運用系パスに対する通信回復処理が成功した場合、該制御部は、前記第２のＨＢＡの該第２のＰＣＩ／ＰＣＩeバス用拡張カードに設定されたＰＭ Ｓｔａｔｅを、Ｄ０＿ＡｃｔｉｖｅからＤ３＿ｈｏｔに変更し、
更に、該制御部は該第１のＨＢＡの第１のＰＣＩ／ＰＣＩeバス用拡張カードを用いて、該Ｉ／ＯデバイスとＳＣＳＩコマンドを用いた通信をする。
【００１５】
本発明に係るＨＢＡ制御方法は、好ましくは、Ｉ／Ｏデバイスを接続するホストバスアダプタ（ＨＢＡ）を通して、該Ｉ／Ｏデバイスとの間でＳＣＳIコマンドを用いてデータ通信するホスト計算機におけるＨＢＡ制御方法であって、
該ＨＢＡとして、省電力化機能であるＰＣＩ ＰＭ 機能を備えた第１のＰＣＩ／ＰＣＩeバス用拡張カードを搭載した運用系パスを形成する第１のＨＢＡと、該ＰＣＩ ＰＭ 機能を備えた第２のＰＣＩ／ＰＣＩeバス用拡張カードを搭載した待機系パスを形成する第２のＨＢＡと、該第１のＨＢＡ及び第２のＨＢＡを制御する制御部を有し、
該制御部は、当初、該第１のＨＢＡの第１のＰＣＩ／ＰＣＩeバス用拡張カードをアクティブ状態に、かつ該第２のＨＢＡの第２のＰＣＩ／ＰＣＩeバス用拡張カードを省電力状態に制御するステップと、
該運用系パスに障害が発生した場合、該制御部は、該第１のＨＢＡに対して運用系パスに対する通信回復処理を行い、更に、該第２のＨＢＡの第２のＰＣＩ／ＰＣＩeバス用拡張カードに対して省電力状態からアクティブ状態に変更するように制御するステップと、
該通信回復処理が不成功の場合、該制御部は、該第２のＨＢＡの第２のＰＣＩ／ＰＣＩeバス用拡張カードを用いて該Ｉ／Ｏデバイスと通信するように制御するステップとを行うことを特徴とするＨＢＡ制御方法として構成される。
【００１６】
好ましい例では、前記制御部は、該運用系パスの障害を検知した時、前記運用系パスに対する通信回復処理としてＴａｓｋ Ｍａｎａｇｅｍｅｎｔ要求と、前記待機系パス上の該第２のＨＢＡの起動を並行的に実行し、前記運用系パスに対するＴａｓｋ Ｍａｎａｇｅｍｅｎｔ要求が成功しなかった場合に、該第２のＨＢＡを介して該Ｉ／Ｏデバイスに対してＳＣＳIコマンドを用いて通信する。
また、好ましくは、前記制御部は、前記運用系パスにおける前記第１のＨＢＡの第１のＰＣＩ／ＰＣＩeバス用拡張カードのＰＭ ＳｔａｔｅをＤ０＿Ａｃｔｉｖｅに設定し、
前記待機系パスにおける前記第２のＨＢＡの該第２のＰＣＩ／ＰＣＩeバス用拡張カードのＰＭ ＳｔａｔｅをＤ３＿ｈｏｔに設定し、
該制御部は、該運用系パスの該第１のＨＢＡの第１のＰＣＩ／ＰＣＩeバス用拡張カードを介して該Ｉ／Ｏデバイスと通信し、
該運用系パスを用いた該ＳＣＳIコマンドの通信において不具合があった場合、該制御部は、該運用系パスに対する該通信回復制御と、前記待機系パスの該第２のＨＢＡのＰＭ ＳｔａｔｅをＤ０＿Ａｃｔｉｖｅに変更する制御を並行して行い、
該運用系パスに対する通信回復処理が不成功の場合、該制御部は、該第２のＨＢＡの第２のＰＣＩ／ＰＣＩeバス用拡張カードを用いて、該Ｉ／Ｏデバイスと通信する。
【００１７】
また、好ましくは、該運用系パスを用いた該ＳＣＳIコマンドの通信において不具合があった場合、該制御部は、該運用系パスに対する該通信回復処理と、前記待機系パスの該第２のＨＢＡのＰＭ ＳｔａｔｅをＤ０＿Ａｃｔｉｖｅに変更する処理を並行して行い、
該運用系パスに対する通信回復処理が成功した場合、該制御部は、前記第２のＨＢＡの該第２のＰＣＩ／ＰＣＩeバス用拡張カードに設定されたＰＭ Ｓｔａｔｅを、Ｄ０＿ＡｃｔｉｖｅからＤ３＿ｈｏｔに変更し、
更に、該制御部は該第１のＨＢＡの第１のＰＣＩ／ＰＣＩeバス用拡張カードを用いて、該Ｉ／ＯデバイスとＳＣＳＩコマンドを用いた通信をする。
また、好ましくは、前記第１及び２のＨＢＡのＰＭ Ｓｔａｔｅの変更は、前記第１及び第２のＰＣＩ／ＰＣＩeバス用拡張カードに搭載されたメモリ上に形成されたＰＣＩ ＣＦＧ空間のレジスタ（ＰＭＣＳＲ）を書き換えることにより行う。
【００１８】
本発明に係るホストバスアダプタドライバ用プログラムは、好ましくは、Ｉ／Ｏデバイスを接続するホストバスアダプタ（ＨＢＡ）として、省電力化機能であるＰＣＩ ＰＭ 機能を備えた第１のＰＣＩ／ＰＣＩeバス用拡張カードを搭載した運用系パスを形成する第１のＨＢＡと、該ＰＣＩ ＰＭ 機能を備えた第２のＰＣＩ／ＰＣＩeバス用拡張カードを搭載した待機系パスを形成する第２のＨＢＡとを有し、該第１のＨＢＡ又は第２のＨＢＡを通して該Ｉ／Ｏデバイスとの間でＳＣＳIコマンドを用いてデータ通信するホスト計算機上で実行される、該第１ＨＢＡ及び第２のＨＢＡを制御するためのホストバスアダプタドライバとして機能するプログラムであって、
該ホストバスアダプタドライバは、当初、該第１のＨＢＡの第１のＰＣＩ／ＰＣＩeバス用拡張カードをアクティブ状態に、かつ該第２のＨＢＡの第２のＰＣＩ／ＰＣＩeバス用拡張カードを省電力状態に制御し、
該ホストバスアダプタドライバは、該運用系パスに障害が発生した場合、該第１のＨＢＡに対して運用系パスに対する通信回復処理を行い、更に、該第２のＨＢＡの第２のＰＣＩ／ＰＣＩeバス用拡張カードに対して省電力状態からアクティブ状態に変更するように制御し、
該ホストバスアダプタドライバは、該通信回復処理が不成功の場合、該第２のＨＢＡの第２のＰＣＩ／ＰＣＩeバス用拡張カードを用いて該Ｉ／Ｏデバイスと通信するように制御することを特徴とするホストバスアダプタドライバ用プログラムとして構成される。
【発明の効果】
【００１９】
本発明によれば、ＰＣＩ ＰＭ機能を備えたＰＣＩ／ＰＣＩeバス用拡張カードを用いてＩ／Ｏデバイスに対する入出力経路が多重に形成された計算機システムにおいて、ＰＣＩ ＰＭ機能を用いて待機パスの省電力化を実現することができる。より具体的には、運用系パスに障害が発生した場合、省電力状態にある待機系パスを用いて直ちにＳＣＳＩ通信を開始するように制御することが可能である。
【図面の簡単な説明】
【００２０】
【図１】一実施例における計算機システムの構成例を示す図。
【図２】ＰＣＩ機能電力状態遷移を示す図。
【図３】ＰＣＩ ＣＦＧ空間の概略を示す図。
【図４】一実施例におけるＨＢＡドライバによるＨＢＡのコマンド処理及び電力制御動作（制御動作１）を示すシーケンス図。
【図５】一実施例におけるＨＢＡドライバによるＨＢＡのコマンド処理及び電力制御動作（制御動作２）を示すシーケンス図。
【発明を実施するための形態】
【００２１】
以下、図面を用いて本発明の好ましい実施例を説明する。
図１は、一実施例による計算機システムの構成例を示す。
ホスト計算機１０は、複数のホストバスアダプタ（ＨＢＡという）１０６，１０７によって、多重系（冗長系）を構成する入出力経路１１３，１１４を介して、Ｉ／Ｏデバイスであるストレージシステム１１の各ポート１１１，１１２に接続している。入出力経路１１３が運用パス、入出力経路１１４が待機系パスを形成する。ホスト計算機１０は、通常時はＨＢＡ（運用系）１０６を使用して、ストレージシステム１１に形成された論理ユニット１１５をアクセスすることができる。運用系に異常が発生した時には、ＨＢＡ（待機系）１０７に切り替えられて、待機系入出力経路１１４及びポート１１２を介してストレージシステム１１の論理ユニット１１５をアクセスできる。本実施例において、２つのＨＢＡ１０６，１０７は、それぞれＰＣＩ ＰＭ Ｃａｐａｂｉｌｉｔｙを備えたＰＣＩ／ＰＣＩeバス用拡張カードによって構成される。ＨＢＡ１０６、１０７は（図示しないが）主に、プログラムを実行してデータの転送制御を行うプロセッサと、種々のデータや制御用のプログラムを格納するメモリを搭載したＬＳＩと、ＨＢＡの全体制御を行うファームウェアと、ポートとの間でデータの送受信を行う光モジュール、等を搭載して構成される。図中、１０８、１０９はＰＭ Ｓｔａｔｅを示す。
【００２２】
ホスト計算機１０のハードウェア構成は図示していないが、ＯＳ（Operating System）を起動すると共にアプリケーションプログラム１０１を実行するプロセッサと、種々のプログラムやデータを格納するメモリを備えている。ホスト計算機１０は、ホストバスアダプタ（ＨＢＡ）ドライバ１０２を適用する。
ＨＢＡドライバ１０２は、このプロセッサで実行されて諸機能を実現するプログラムであり、その内部機能として、アダプタドライバ共通部１０３と、アダプタ制御用インスタンス１０４と、アダプタ制御用インスタンス１０５を有する。アダプタ制御用インスタンス１０４はＨＢＡ１０６の制御を担当し、アダプタ制御用インスタンス１０５はＨＢＡ１０７の制御を担当する。アダプタドライバ共通部１０３は、アダプタ制御用インスタンス１０４、１０５をそれぞれ独立的に制御してデータ通信を制御し、また運用系のアダプタ制御用インスタンス１０４を待機系のアダプタ制御用インスタンス１０５に切り替える制御を行う。
【００２３】
本実施例において、ホスト計算機１０とＩ／Ｏデバイスとの間は、ＳＣＳI規格に従ったデータ通信が行われる。例えば、非特許文献２に記載のようなＳＣＳＩアーキテクチャモデル４に基づく。アプリケーションプログラム１０１が、ストレージシステム１１の論理ユニット１１５に対してＳＣＳＩデータ通信する時、ＨＢＡドライバ１０２内にあるアダプタドライバ共通部１０３は、ＨＢＡ１０６を経由する入出力経路１１３を用いてＳＣＳＩコマンドを送信する。運用系のＨＢＡ１０６で無応答（即ちデータ通信障害）が発生しない限り、待機系のＨＢＡ１０７を経由するＳＣＳＩ通信は行われない。
【００２４】
図２は、PCI Bus Power Management Interface Specification（非特許文献１，page45）によるＰＣＩ機能電力状態遷移（PCI Function Power Management State Transitions）を示す。
本発明の実施例では、この遷移図のＤ０ Unitialized、Ｄ０Active、Ｄ３hotの３つの状態間で遷移させながら、待機系パスの省電力制御を行うものである。Ｄ３hot状態は、ＨＢＡ内の例えば接続バス回路や電源管理回路に電源が供給され、マイクロプロセッサやメモリを実装したＬＳＩは停止状態で電源を遮断できる状態である。
【００２５】
図３は、ＰＣＩ ＣＦＧ空間の略図を示す。なお、これはPCI Bus Power Management Interface Specification（非特許文献１,page21-24）に記載されている。
ＰＣＩ ＣＦＧ空間は、ＨＢＡ１０６、１０７の各メモリ内に形成される。ＨＢＡ１０６、１０７のＰＣＩ ＣＦＧ空間３００には、Power Management Capability ＩＤ３０１と、Power Management Control／Status Register（ＰＭＣＳＲ）３０２が有る。ＰＭＣＳＲ３０２はパワー状態ビット情報を記憶し、パワー状態ビット情報を書き換えることで、Ｄ０ Unitialized、Ｄ０Active、Ｄ３hotの３状態を遷移させることができる。即ち、アダプタ制御用インスタンス１０４は、ＨＢＡ１０６のＰＭＣＳＲ３０２を書き換えることで、ＨＢＡ１０６のＰＣＩ ＰＭ Ｓｔａｔｅ１０８を切り替える。同様に、アダプタ制御用インスタンス１０５は、ＨＢＡ１０７のＰＭＣＳＲ３０２を書き換えて、ＰＣＩ ＰＭ Ｓｔａｔｅ１０９を切り替える。本実施例におけるＰＣＩ ＰＭ Ｓｔａｔｅの状態遷移は、図２に示す通りである。
【００２６】
ホスト計算機１０を起動した時、アダプタ制御用インスタンス１０４は、ＨＢＡ１０６のＰＣＩ ＰＭ Ｓｔａｔｅ１０８を「Ｄ０＿Ａｃｔｉｖｅ」に設定し、アダプタ制御用インスタンス１０５は、ＨＢＡ１０７のＰＣＩ ＰＭ Ｓｔａｔｅ１０９を「Ｄ３＿ｈｏｔ」に設定するように制御する。即ち、ＨＢＡ１０７は、ＰＭＣＳＲ３０２に「ｂ１１」を書き込むことで、ＰＣＩ ＰＭ Ｓｔａｔｅ１０９を「Ｄ３＿ｈｏｔ」に設定してウォームスタンバイ状態にする。この時のＨＢＡ１０７は、ＨＢＡ１０６の「Ｄ０＿Ａｃｔｉｖｅ」状態と比べて、一部の機能が停止するので、電力消費が低減される。具体的に、本例におけるＨＢＡ１０６、１０７では、ＰＣＩ ＰＭ Ｓｔａｔｅ１０９を「Ｄ３＿ｈｏｔ」にすることで、ＦＵＮＣＴＩＯＮが停止し、通信用の光モジュールがオフし、ＤＭＡ転送機能が停止し、フレーム送受信機能が停止する。これによって省電力が図れる。
【００２７】
次に、図４及び図５を参照して、ＨＢＡドライバによるＨＢＡのコマンド処理及び電力制御動作について説明する。
初期状態において、ＨＢＡ１０６のＰＭ Ｓｔａｔｅ１０８は「Ｄ０Active」、ＨＢＡ１０７のＰＭ Ｓｔａｔｅ１０９は「Ｄ３hot」に設定されている。そのように、ＰＣＩ ＣＦＧ空間３００のＰＭＣＳＲ３０２には、それぞれのパワー状態ビット情報が登録されているとする。また、運用系のアダプタ制御用インスタンス１０４は、ＨＢＡ１０６へ発行したコマンドや要求に対する応答を時間（タイムアウト）監視するためのソフトウェアのタイマーを持っているとする。
【００２８】
さて、図４において、アプリケーションプログラム１０１から、ストレージシステム１１０の論理ユニット１１５に対してＳＣＳＩ通信を試みたとする。この時、ＨＢＡドライバ１０２のアダプタドライバ共通部１０３は、アダプタ制御用インスタンス１０４に対してＳＣＳＩコマンド送信要求を出す（Ｓ４００）。
アダプタ制御用インスタンス１０４は、ＳＣＳＩコマンド送信要求を受けると、ＨＢＡ１０６に対してＳＣＳＩコマンドを送信する（Ｓ４０１）。ＳＣＳＩコマンドを送信した後に、ＨＢＡ１０６で無応答（即ち障害発生した）とする（Ｓ４０２）。この場合、アダプタ制御用インスタンス１０４は、ＳＣＳＩコマンド応答待ちタイマタイムアウトを検出して（Ｓ４０３）、その旨をアダプタドライバ共通部１０３に通知する。
【００２９】
アダプタ制御用インスタンス１０４は、ＳＣＳＩコマンド応答待ちタイマタイムアウトを検出した場合（Ｓ４０３）、ＨＢＡ１０８と論理ユニット１１５間の通信を回復させる目的で、ＨＢＡ１０８にＴａｓｋ Ｍａｎａｇｅｍｅｎｔ要求を出す（Ｓ４０７）。ここで、ＳＣＳＩアーキテクチャによるＴａｓｋ Ｍａｎａｇｅｍｅｎｔ要求及びその関連処理については、ＳＣＳＩ Architecture Model 4（非特許文献２、page24−25，94）で記載されている。
Ｔａｓｋ Ｍａｎａｇｅｍｅｎｔ要求を出した後に、ＨＢＡ１０８で無応答が発生した場合（Ｓ４０８）、アダプタ制御用インスタンス１０４はＴａｓｋ Ｍａｎａｇｅｍｅｎｔ応答待ちタイマタイムアウトを検出して、その旨をアダプタドライバ共通部１０３に通知する（Ｓ４１０）。
【００３０】
アダプタドライバ共通部１０３は、ＨＢＡ１０８からＳＣＳＩコマンド応答待ちタイマタイムアウトの通知（Ｓ４０３）を受けた場合、アダプタ制御用インスタンス１０５に対してアダプタ初期化要求を出す（Ｓ４０４）。アダプタ制御用インスタンス１０５はアダプタ初期化要求を受けると、ＨＢＡ１０７でＳＣＳＩ通信をするための前準備として、ＨＢＡ１０７のＰＭＣＳＲ３０２にパワー状態ビット情報「ｂ００」を書き込む。そして、アダプタ制御用インスタンス１０５はＨＢＡ１０７へＰＭ Ｓｔａｔｅ変更を出すと（Ｓ４０６）、ＨＢＡ１０７はＰＣＩ ＰＭ Ｓｔａｔｅ１０９を「Ｄ０＿Ｕｎｉｎｉｔｉａｌｉｚｅｄ」に変更する（Ｓ４２１）。その後、アダプタの初期化を実施することで（Ｓ４１１）、「Ｄ０＿Ａｃｔｉｖｅ」状態に移行する（Ｓ４２２）。このようにして、ＨＢＡ１０７は、前準備の処理（Ｓ４０６及びＳ４１１）の後に、論理ユニット１１５との間でＳＣＳＩ通信が可能な状態になる。
【００３１】
アダプタドライバ共通部１０３は、アダプタ制御用インスタンス１０４からＴａｓｋ Ｍａｎａｇｅｍｅｎｔ応答待ちタイマタイムアウト（Ｓ４１０）を通知されると（即ちＨＢＡ１０６を含む運用系のパスがダウンした時）、アダプタ制御用インスタンス１０５に対してＳＣＳＩコマンド送信要求を出す（Ｓ４１２）。アダプタ制御用インスタンス１０５は、ＳＣＳＩコマンド送信要求（Ｓ４１２）を受けた時、ＨＢＡ１０７に対してＳＣＳＩコマンド送信を実施する（Ｓ４１３）。即ち、待機系パスのＨＢＡ１０７によって、ストレージシステム１１の論理ユニット１１５に対してＳＣＳＩコマンドによるアクセスが行われる。
【００３２】
本実施例によれば、アダプタ制御用インスタンス１０４が発行するＳＣＳＩコマンド（Ｓ４０１）に対して、ＨＢＡ１０６から応答が返って来なかった場合（Ｓ４０３）、アダプタドライバ共通部１０３は、直ちにアダプタ制御用インスタンス１０５にアダプタ初期化要求を発行して（Ｓ４０４）、ＨＢＡ１０７のＰＣＩ ＰＭ Ｓｔａｔｅを「Ｄ０＿Ｕｎｉｎｉｔｉａｌｉｚｅｄ」に変更する（Ｓ４２１）ように指示しておき、更に、アダプタ制御用インスタンス１０４が実施するＴａｓｋ Ｍａｎａｇｅｍｅｎｔ関連処理（Ｓ４０７、S４１０）と、アダプタ制御用インスタンス１０５が実施する前準備（Ｓ４０６、Ｓ４１１）を並行的に実行することで（点線で示すＳ４０５の期間）、アダプタ制御用インスタンス１０４がＴａｓｋ Ｍａｎａｇｅｍｅｎｔ応答待ちタイマタイムアウト（Ｓ４１０）を検知した後に直ちに、ＨＢＡ１０７においてストレージシステム１１とＳＣＳＩ通信（Ｓ４１２、２１３）を行うことができる。この制御動作により、ＨＢＡ１０７を含む待機系パスによるＳＣＳＩ通信の立ち上げを直ちに行うことが可能となる。
【００３３】
以上、図４の例は、ＨＢＡ１０６で障害が発生したために（Ｓ４０８）、アダプタ制御用インスタンス１０４が発行したＴａｓｋ Ｍａｎａｇｅｍｅｎｔ要求に対するＴａｓｋ Ｍａｎａｇｅｍｅｎｔタイムアウト応答(Ｓ４１０）が返ってきた場合の制御動作である。
これに対して、図５の例は、ＨＢＡ１０６で障害が検知されずに、アダプタ制御用インスタンス１０４が発行したＴａｓｋ Ｍａｎａｇｅｍｅｎｔ要求に対してＴａｓｋ Ｍａｎａｇｅｍｅｎｔ成功した場合の制御動作である。
【００３４】
図５において、アダプタ制御用インスタンス１０４は、Ｔａｓｋ Ｍａｎａｇｅｍｅｎｔ要求に対するＴａｓｋ Ｍａｎａｇｅｍｅｎｔ応答を受け取った場合（Ｓ５１０）、アダプタドライバ共通部１３０に対して、Ｔａｓｋ Ｍａｎａｇｅｍｅｎｔ成功を伝える（Ｓ５１１）。
アダプタドライバ共通部１０３は、Ｔａｓｋ Ｍａｎａｇｅｍｅｎｔ成功を受け取った場合、アダプタ制御用インスタンス１０６に対して、アダプタスタンバイ要求を発行する（Ｓ５１２）。その後、アダプタドライバ共通部１０３は、正常な状態のＨＢＡ１０６に対してＳＣＳＩ通信を試みる。即ち、アダプタドライバ共通部１０３はアダプタ制御用インスタンス１０４に対してＳＣＳＩコマンド送信要求を発行し、アダプタ制御用インスタンス１０４はＨＢＡ１０６に対してＳＣＳＩコマンドを送信する（Ｓ５１５）。
【００３５】
アダプタ制御用インスタンス１０６は、アダプタスタンバイ要求を受け取ると、ＨＢＡ１０７に対して、ＰＭ Ｓｔａｔｅ変更を行う（Ｓ５１３）。具体的には、ＨＢＡ１０７のＰＭＣＳＲ３０２に「ｂ１１」を書き込むことで、ＰＣＩ ＰＭ ＳｔａｔｅをＤ３＿ｈｏｔ（１０９）に設定して（Ｓ４２３）、ウォームスタンバイ状態にする。
以上のように、本実施例によれば、アダプタ制御用インスタンス１０４が、Ｔａｓｋ Ｍａｎａｇｅｍｅｎｔ要求に対するＴａｓｋ Ｍａｎａｇｅｍｅｎｔ応答を受信した場合、ＨＢＡ１０７を、再びウォームスタンバイ状態に出来るため、省電力化を継続することができる。
【符号の説明】
【００３６】
１０：ホスト計算機            １０１：アプリケーションプログラム
１０２：ＨＢＡドライバ        １０３：アダプタドライバ共通部
１０４、１０５：アダプタ制御用インスタンス    １０６、１０７：ＨＢＡ
１０８、１０９：ＰＭ Ｓｔａｔｅ    １１：ストレージシステム
１１１、１１２：ポート        １１３、１１４：入出力経路
１１５：論理ユニット          ３００：ＰＣＩ ＣＦＧ空間
３０１：Power Management Capability ＩＤ    ３０２：ＰＭＣＳＲ
【図１】
0005422611.tif 000002
【図２】
0005422611.tif 000003
【図３】
0005422611.tif 000004
【図４】
0005422611.tif 000005
【図５】
0005422611.tif 000006