(57)【特許請求の範囲】
【請求項１】
マルチパスコンピュータ構成でデバイスのクリティカル性を判断する方法であって、
プラットフォーム階層を表す有向非巡回グラフをトラバースするステップと、
前記デバイスの取り外しにより影響を受ける前記有向非巡回グラフ内のパスを判断するステップと、
影響を受ける各アクセスパスに対応するデバイスを判断するステップと、
すべてのアクセスパスを失うデバイスを判断するステップと、
少なくとも前記すべてのアクセスパスを失う前記デバイスのシステム内での使用のされ方を判断するステップと
を含み、
前記システムでの前記デバイスの前記使用のされ方は、前記有向非巡回グラフのノードに記憶される属性から判断され、
前記属性は、前記デバイスがブートデバイスであるか否か、および、前記デバイスがクォーラムディスクであるか否かのうちの少なくとも一方を含む
方法。
【請求項２】
デバイスクリティカル性メッセージを生成すること
を含む、
請求項１に記載の方法。
【請求項３】
前記すべてのアクセスパスを失う前記デバイスの前記使われ方がユーザレベルプロセスに影響する場合、
アプリケーションレベルクリティカル性及び／又はユーザアプリケーションのデータへのアクセスが失われることを報告することを含む、
請求項２に記載の方法。
【請求項４】
前記有向非巡回グラフはオペレーティングシステムにより保持される、
請求項１に記載の方法。
【請求項５】
マルチパスコンピュータ構成でホットプラグ取り外し操作を実行する方法であって、
請求項１に記載の方法を用いて、取り外されるデバイスのクリティカル性を判断すること
を含む方法。
【請求項６】
前記デバイスが前記アクセスパスを失わないかを判断することと、
性能の低下があり得ることをユーザに警告して前記ホットプラグ操作を許可することと
を含む請求項５に記載の方法。
【請求項７】
プラットフォーム階層を表す有向非巡回グラフデータ構造と、
前記有向非巡回グラフをトラバースして、デバイスの取り外しにより影響を受ける前記有向非巡回グラフ内のパスを判断する制御装置（arrangement）と
を備え、
前記制御装置は、
影響を受ける各アクセスパスに対応するデバイスを判断し、
すべてのアクセスパスを失うデバイスを判断し、
少なくとも前記すべてのアクセスパスを失う前記デバイスの前記システム内での使用のされ方を判断し、
前記システムでの前記デバイスの前記使用のされ方は、前記有向非巡回グラフのノードに記憶される属性から判断され、
前記属性は、前記デバイスがブートデバイスであるか否か、および、前記デバイスがクォーラムディスクであるか否かのうちの少なくとも一方を含む
コンピュータシステム。
【請求項８】
前記制御装置は、
デバイスクリティカル性メッセージを生成するように構成される
請求項７に記載のコンピュータシステム。
【請求項９】
前記すべてのアクセスパスを失う前記デバイスの前記使われ方がユーザレベルプロセスに影響する場合、
前記制御装置は、
アプリケーションレベルクリティカル性及び／又はユーザアプリケーションのデータへのアクセスが失われることを報告する、
請求項８に記載のコンピュータシステム。
【請求項１０】
前記有向非巡回グラフを保持するオペレーティングシステムを備える、
請求項７に記載のコンピュータシステム。
【請求項１１】
前記制御装置が、取り外される前記デバイスのクリティカル性を判断するように動作可能である、ホットプラグ取り外し機能を有する拡張バスを備える、
請求項７に記載のコンピュータシステム。
【請求項１２】
前記コンピュータシステムはクラスタである、
請求項７に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施の形態は、コンピュータ構成においてデバイスのクリティカル性を判断する方法及びシステムに関する。
【背景技術】
【０００２】
近年のコンピューティングシステムは、例えば、メインフレーム、ミニコンピュータ、ワークステーション、サーバ、パーソナルコンピュータ、インターネット端末、ノートブック、及び組み込み(embedded)システムを含む多くの形態で見られる。典型的なコンピュータシステムは、プロセッサ、関連(associated)メモリ、（通常、システム基盤上に）制御ロジック、並びに入力及び／又は出力（Ｉ／Ｏ）をシステムに提供するいくつかの周辺デバイスを備える。多くの場合、コンピュータシステム基板は拡張プリント回路基板を受けて、コンピュータシステムの能力を増大させ、拡張バスを通して周辺デバイスに接続する。
【０００３】
一般に、コンピュータシステムは、通信バス上に複数の拡張スロットを備えて、アドインカードを使用して外部周辺デバイスへのアクセスを提供する。アドインカードは、コンピュータシステムの機能を拡張し、例えば、ネットワークインタフェースカード、グラフィックスカード、ストレージコントローラ等とすることができる。多くの場合、通信バス及びインタフェースのアーキテクチャ(architecture)及び機能は、コンピュータ業界全体を通して規格化されて、複数の装置ベンダーがコンピュータシステムに外部周辺デバイスを提供できるようにしている。このような１つの標準は、PCI Special Interest Groupにより策定されたＰＣＩホットプラグ仕様改訂版１．０及び１．１であり、参照によりその全体を本明細書に援用する。ＰＣＩホットプラグ仕様は、コンピュータシステムの稼働中に、アドインカードをコンピュータシステムのＰＣＩバスの拡張スロットに着脱するプロセスの主要な側面(aspect)のいくつかを規定する。
【０００４】
ＰＣＩホットプラグ仕様は、コンピュータシステムを再起動することなくアドインカードの挿抜等のホットプラグイベントを受け入れるコンピュータシステム等のハードウェアプラットフォームを記述する。通常、ホットプラグイベントは、コンピュータシステムのホットプラグコントローラにより制御される。コンピュータシステム内のホットプラグイベントドライバが、ホットプラグコントローラに対するホットプラグイベントを処理する。PCI Special Interest Groupは、ＰＣＩ標準ホットプラグコントローラ及びサブシステム仕様改訂版１．０（以下、「コントローラ仕様」と呼ぶ）においてホットプラグコントローラの規格も規定しており、これも参照によりその全体を本明細書に援用する。コントローラ仕様は、ハードウェアプラットフォームとのホットプラグイベントの汎用インタフェースを規定する。
【０００５】
デバイスをコンピュータシステムにオンラインでホットプラグする(hot-plugging)ことの主な側面の１つは、システム上のこのような動作の影響を解析することである。このような解析は、ホットプラグにより、デバイスが取り外されるか、又はコンピュータシステムがデバイス群を利用できなくなる場合に特に重要である。この動作をクリティカルリソース解析（ＣＲＡ）と呼ぶ。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、コンピュータ構成においてデバイスのクリティカル性を判断するための方法及びシステムを提供する。
【課題を解決するための手段】
【０００７】
本発明の一形態は、マルチパスコンピュータ構成でデバイスのクリティカル性を判断する方法であって、プラットフォーム階層を表す有向非巡回グラフをトラバースするステップと、前記デバイスの取り外しにより影響を受ける前記有向非巡回グラフ内のパスを判断するステップとを含む方法である。
【０００８】
これより、本発明の実施形態を単に例として、添付図面を参照して説明する。図面において、同じ参照符号の呼称が全体を通して同様の要素を表す。
【発明を実施するための最良の形態】
【０００９】
好ましい実施形態（複数可）の以下の説明は、単に例示的な性質のものであり、本発明、応用例、又は用途を制限する意図は決してない。さらに、コンピューティング装置の「メモリ」は、メモリの種類がさらに指定されない場合、任意の適当な種類の一次記憶装置又は二次記憶装置を含み得る。一次記憶装置の例として、キャッシュメモリ、ランダムアクセスメモリ、及び読み取り専用メモリが挙げられる。二次記憶装置の例として、ハードディスク、フロッピー（登録商標）ディスク、ＣＤ−ＲＯＭ、及びＤＣ−ＲＷが挙げられる。当業者は、所与の用途に特定の種類の一次記憶装置又は二次記憶装置が適当であるか否かを判断するために、メモリが書き込み可能でなければならないか、それとも読み取り可能である必要があるだけであるかを考慮する。
【００１０】
有向非巡回グラフ（ＤＡＧ）を使用して、影響を受けるデバイスへの潜在的なマルチパスを含むプラットフォーム階層を表すことにより、マルチパスコンピュータ構成でのホットプラグ操作に関するデバイスのクリティカル性を判断する方法、システム、及びコンピュータプログラムを記載する。
【００１１】
以下にＤＡＧと略すこともある有向非巡回グラフは、有向巡回のない有向グラフである。ＤＡＧでは、任意の所与の頂点ｖについて、ｖから出てｖで終わる空ではない有向パス(non empty directed path)は存在しない。有向非巡回グラフは、以下のようなモデルに現れる。そのモデルでは、頂点がその頂点自体へのパスを有することに意味がなく、例えば、エッジｕ−−＞ｖは、頂点ｖが頂点ｕの部分であることを示す場合、このようなパスは、頂点ｕがその頂点自体の一部であることを示し、これは起こりそうもない。
【００１２】
有向非巡回グラフは、その頂点の半順序に対応することができる。ＤＡＧの２つの所与の頂点ｕ及びｖについて、ｕ＝ｖ又はｕ＜ｖは、グラフ内に頂点ｕから頂点ｖへの有向パスがある場合、まさに半順序にある。しかし、多くの異なる有向非巡回グラフが同じ半順序をこのようにして表すことができる。これらのグラフの中で、エッジの数が最小のものは推移簡約にあり、エッジの数が最大のものは推移閉包にある。ＤＡＧでは、始点(source)は入ってくるエッジのない頂点である。同様に、終点(sink)は出て行くエッジのない頂点である。有限ＤＡＧは、少なくとも１つの始点及び少なくとも１つの終点を有する。ＤＡＧの長さは、最長有向パスの長さ（エッジ数）である。有向非巡回グラフの典型的な構造を図５に示す。
【００１３】
図１は、高可用性コンピュータ構成を示す。高可用性構成は、周辺デバイス１０２に接続するための２つのホストバスアダプタＨＢＡ１  １０４及びＨＢＡ２  １０３を備えることができるコンピュータシステム１０１から成ることができ、周辺デバイス１０２は、ホストバスアダプタにアクセスされるメモリデバイス又はメモリデバイス群であることができる。このようなコンピュータシステムは、コンピューティング環境の要件に応じて任意の数のホストバスアダプタから成り得る。同様に、周辺デバイス１０２は、単一のデバイス及び／又はデバイス群を含んでもよい。コンピュータにおける周辺デバイス１０２は、例えば、ＰＣＩ(Peripheral Component Interconnect)バスを介してマザーボードに接続することができる。
【００１４】
図１に示すようなマルチパスコンピュータ構成では、デバイス１０２等のデバイスに、ＨＢＡ１  １０４又はＨＢＡ２  １０３等のホストバスアダプタを介して１つより多い規定のパスでアクセスすることができる。これらのデバイスパス、すなわちこれらを介してデバイスがホストバスアダプタに接続されるパスは、有向非巡回グラフの形態で表すことができる。より複雑なこのようなコンピュータシステムの構成要素階層を、図２に一例として有向非巡回グラフの形態で示す。
【００１５】
図２を参照すると、ＰＣＩバスを介してコンピュータシステムに接続される３つのデバイスがある。これらのデバイスはＰＣＩデバイス及び／又は周辺デバイスと呼ぶこともできる。
【００１６】
起動プロセス中、システムファームウェアは、各デバイスのＰＣＩ構成空間を調べて、システムリソースを割り当てることができる。ＰＣＩ仕様によれば、各デバイスは、機能するために、最高で６つのメモリ空間領域又はＩ／Ｏポート空間を要求することができる。典型的なシステムでは、オペレーティングシステムは、スタートアップ時に１１本のＰＣＩバスに問い合わせて、存在するデバイス及びこのような各デバイスが要求するシステムリソース（メモリ、割り込み線等）をリストする。次に、オペレーティングシステムは、リソースを割り当て、特定のデバイスに割り当てられたリソースについてデバイスに通知することができる。
【００１７】
図２に示すコンピュータ構成は、例として、３つのホストバスアダプタ（ｈ１、ｈ２、及びｈ３）及びホストバスアダプタに接続された５つのデバイス（ｄ１、ｄ２、ｄ３、ｄ４、及びｄ５）を含む。デバイスは、８つのデバイスパスＰ１、Ｐ２、Ｐ３、Ｐ４、Ｐ５、Ｐ６、Ｐ７、及びＰ８を介してホストバスアダプタに接続される。例えば、デバイスｄ１は、２つのパスＰ１及びＰ２を通してホストバスアダプタに接続される。同様に、デバイスｄ２は、パスＰ４及びＰ５を通して接続される。デバイスには、接続された任意のデバイスパスを通してホストバスアダプタによりアクセスすることができる。
【００１８】
ＤＡＧデータ構造の形態のシステム階層は、オペレーティングシステムにより保持され、開始時に作成される。この構造は、例えば、デバイスへのパス数、デバイスがブートデバイスであるか、それともクォーラムディスクであるか、又は後述するようにデバイスのクリティカル性を判断する際に有用であり得る他の情報等のコンピュータシステムの各構成要素に関連する特定の属性を各ノードに含むことができる。コンピュータシステムの完全な構成要素階層には、ユーザ空間又はカーネル空間からアクセス可能であり得る。
【００１９】
ホットプラグ操作により、ホットプラグデバイスをコンピュータシステムに着脱することができる。通常、このようなシステムでは、ホットプラグデバイスをコンピュータシステムから取り外すために、ユーザはホットプラグデバイスに配置された注意ボタンを押し、これによりホットプラグデバイスを取り外すホットプラグ操作が開始される。ホットプラグ操作が完了すると、指示がユーザに対して表示されて（例えば、光又は音により）、ホットプラグ操作が完了したことを示すことができる。次に、ユーザは、ホットプラグデバイスをコンピュータシステムの特定のスロットから取り外すことができる。ホットプラグ操作は、デバイスのクリティカル性を判断することを含み得る。
【００２０】
ホットプラグデバイスをコンピュータシステムに追加するには、通常、ユーザはホットプラグデバイスをシステムのオープンスロットに挿入し、ホットプラグデバイスの注意ボタンを押し、これにより、ホットプラグデバイスを追加するホットプラグ操作が開始される。ホットプラグ操作が完了すると、指示がユーザに対して表示されて（例えば、光又は音により）、ホットプラグ操作が完了し、ホットプラグデバイスのコンピュータシステムへの追加が成功したことを示すことができる。
【００２１】
デバイスのクリティカル性を判断するために実行される全体的なステップを図３に示す。ここに示すシステムでは、ホットプラグ操作のデバイスクリティカル性は、プラットフォーム階層を表す有向非巡回グラフに対してサブツリートラバースを実行して、ホストバスアダプタ群の潜在的に影響を受けるデバイスパスを判断することにより判断される（ステップ３０１）。次に、影響を受けるデバイスパスから、影響を受けるデバイスが判断され（ステップ３０２）、次に、すべてのアクセスパスを失う、影響を受けるすべてのデバイスについて、影響を受けるデバイスのシステム内での使われ方が判断される（ステップ３０３）。次に、デバイスクリティカル性メッセージを生成することができる（ステップ３０４）。
【００２２】
これより、図４を参照してこれらのステップをより詳細に説明する。
【００２３】
図４に示すように、方法は、コンピュータシステム内のホストバスアダプタの数を求めることから開始する。すべての周辺デバイスの階層が、コンピュータ構成内で求められる（４０１）。上述したように、ホットプラグ操作イベントでは、デバイスがコンピュータシステムに追加されるか、又はコンピュータシステムから取り外される。ホットプラグ操作がシステムで発生した場合、操作のクリティカル性を解析する要求が受け取られる。ホットプラグ要求を受け取った後、ホットプラグ操作により影響を受けるデバイスパスが見つけ出される（４０２）。上記４０２で見つけ出された影響を受けるデバイスパスに対して、影響を受けるすべてのデバイスがリストされる（４０３）。ステップ４０３においてリストされたデバイスは、ホストバスアダプタの取り外しによりアクセスパスを失うことになるデバイスである。ホットプラグ操作後、デバイスは構成に応じていくつか又はすべてのアクセスパスを失うことになる可能性がある。影響を受ける各デバイス（４０３）について、方法は、ホットプラグ操作後にデバイスが利用できる残りのパス数（パスカウント）をチェックする（４０６）。ホットプラグ操作を実行した後のデバイスのパスカウント（４０６）がゼロではない場合、すなわち、ホットプラグ操作後でも、デバイスがすべてのアクセスパスを失うわけではない場合、方法は、起こり得る性能損失及び／又は性能低下をシステム管理者に報告する（４０８）。この場合、ホットプラグを許可することができる。ホットプラグ操作後のデバイスのパスカウントがゼロの場合、方法は、影響を受けるデバイスとしてリストされたデバイスがシステム機能（４０７）及び／又はユーザレベルプロセス（４０９）にとってクリティカルであるか否かをチェックする。デバイスが構成要素階層内に使用属性を有する場合、ホットプラグ操作がシステムの完全性を損なうことになり得ることを報告する（４０８）。システムでのデバイスの使われ方がユーザレベルプロセス及びユーザアプリケーションのデータへのアクセスの損失に影響し得る場合、アプリケーションレベルクリティカル性が報告される（４１０）。
【００２４】
上記方法は、密に結合されたクラスタに対してクラスタワイドデバイスの可用性解析を実行するように拡張することができる。クラスタウェアオペレーティングシステムは、クラスタの他のメンバを通してのアクセス可能性を反映するように、構成要素階層内のデバイスのパス及びパスカウントを更新する。コンピューティングデバイスのうちの１つでのホットプラグ操作が、そのコンピューティングシステムからデバイスへのアクセスが失われることに繋がる場合でも、デバイスへのトラフィックを、システムにまだ接続されている別のコンピューティングシステムにルーティングすることができるため、やはり操作を許可することができ、本明細書において説明したデバイスのクリティカル性を判断する方法がこれを判断することができるようにする。
【００２５】
さらに、オペレーティングシステムが構成要素階層のノードに記憶されている特定の属性を調べることにより、システムの機能に関するデバイスのクリティカル性を直接的で単純な方法により判断することができる。デバイスがブートデバイスである場合、構成要素階層内のノードはこれを示す属性を有し得る。クリティカルリソース解析方法は、既知の属性をチェックして、システムが適宜機能することに対して、デバイスがクリティカルであるか否かをチェックすることができ、それにより、デバイスのクリティカル性を判断するプロセスが加速化される。クォーラムディスクを使用するクラスタの場合、クォーラムディスクデバイスは、クラスタが適宜機能するためのクリティカル性を示す属性を有し得る。クリティカルリソース解析方法が、このチェックを最後のステップとして実行する。したがって、クリティカルリソース解析を実行するために本明細書において説明した方法をさらに高速且つより効率的にすることができる。
【００２６】
コンピュータシステムの構成要素の使用属性を設定するメカニズムを拡張して、ユーザレベルプロセスに使用可能にすることができる。各プロセスがデバイスを使用する場合、プロセス識別子（ＩＤ）をそのデバイスを使用するプロセスのリストに追加する使用属性になる。許可されると、単に構成要素の使用属性を調べることで、プロセスレベルの影響を判断することができる。
【００２７】
マルチコンピュータシステムでのホットプラグ操作に対するデバイスクリティカル性を判断するために提案されている方法は、構成要素階層を使用してデバイスへのマルチパスの可用性を判断することもできる。デバイスが少なくとも１つのパスを通してコンピュータシステムにアクセス可能な状態である限り、デバイスへの他のパスに影響する構成要素に対するホットプラグ操作を許可することができる。この解析は、構成要素階層、及びオペレーティングシステムにより保持されるデバイスに関連する属性をトラバースすることにより実行することができる。
【００２８】
一例として、マルチパスコンピュータ構成でのホットプラグ操作でのデバイスクリティカル性を判断する上述した方法を、図２に示す構成に関連して説明する。図２の構成は、３つのＨＢＡ（ｈ１、ｈ２、及びｈ３）及び５つのデバイス（ｄ１、ｄ２、ｄ３、ｄ４、及びｄ５）で構成される。デバイスは、８つのデバイスパスＰ１、Ｐ２、Ｐ３、Ｐ４、Ｐ５、Ｐ６、Ｐ７、及びＰ８を介してＨＢＡに接続される。図２では、仮にホットバスアダプタｈ２がホットプラグ操作を通して取り外される場合、本明細書において提案される技法は、
１．ｐ２、ｐ５、及びｐ６がｈ２の取り外しにより影響を受けるパスであると判断する。
２．上記パスにより、デバイスｄ１、ｄ３、及びｄ４がアクセスパスのうちの１つを失うことになる。このため、
ａ．ｄ１は、代替パスｐ１を通してシステムにアクセス可能な状態を保ち、且つ
ｂ．ｄ３は、代替パスｐ４を通してシステムにアクセス可能な状態を保ち、且つ
ｃ．ｄ４は、代替パスｐ７を通してシステムにアクセス可能な状態を保つ。
【００２９】
したがって、この場合、デバイスへのパスのうちの１つが失われることにより性能が低下する可能性があることをユーザに警告して、ホットプラグ操作を許可することができる。
【００３０】
ＤＡＧをトラバースすることによりマルチパスコンピュータ構成でのホットプラグ操作のデバイスクリティカル性を判断するために提案される方法は、デバイスのクリティカル性を判断する効率的な方法を提供する。
【００３１】
本技法の上記変形はいずれも適した汎用コンピュータをプログラムすることにより実施することができる。プログラミングは、コンピュータ可読であり、コンピュータにより実行可能であり上述した動作を実行させる命令プログラムを符号化したプログラム記憶デバイスの使用を通して実現することができる。プログラム記憶デバイスは、例えば、１つ又は複数のフロッピー（登録商標）ディスク、ＣＤ  ＲＯＭ若しくは他の光ディスク、磁気テープ、読み取り専用チップ（ＲＯＭ）の形態、及び当該技術分野において既知の他の形態、又は後に開発される他の形態をとることができる。命令プログラムは、「オブジェクトコード」、すなわちコンピュータが多少なりとも直接実行可能なバイナリ形態であってもよく、実行前にコンパイル又は解釈が必要な「ソースコード」であってもよく、又は部分的にコンパイルされたコード等の或る中間形態であってもよい。プログラム記憶デバイス及び命令の符号化の厳密な形態は、ここでは重要ではない。
【００３２】
上記説明では、本発明の実施形態の完全な理解を提供するために様々な特定の詳細を提供した。しかし、本発明の図示の実施形態の上記説明は、網羅的であろうとする意図、すなわち本発明を開示された厳密な形態に限定する意図はない。１つ又は複数の特定の詳細な記述なしに、又は他の方法、構成要素等を使用して本発明を実施できることを当業者は認識しよう。また場合によっては、既知の構造又は動作については、本発明の態様を曖昧にしないように詳細に図示又は説明していない。本発明の特定の実施形態又は本発明の例を、例示を目的として本明細書において説明しているが、当業者が認識するように、各種の均等な変更が本発明の範囲内で可能である。
【００３３】
こういった変更は、上記詳細な説明に鑑みて本発明に行うことができる。添付の特許請求の範囲で使用される用語は、本発明を本明細書及び特許請求の範囲に開示された特定の実施形態に限定するものとして解釈されるべきではない。むしろ、本発明の範囲は、特許請求の範囲の解釈の確立された原則に従って解釈されるべきである添付の特許請求の範囲により決定されるべきである。
【００３４】
本明細書に含まれるフローチャートは、必ずしも単一のホットプラグイベントでの実行を表しているわけではなく、むしろ、いくつかの場合では、複数のホットプラグ操作で行われている調整された一連のステップ、イベント、又はプロセスを表すことができる。さらに、本明細書において、フローチャートは、図面に明示的に表されるステップの間に他のイベント、ステップ、又はプロセスが発生し得ないことを暗に示すものとして解釈されるべきではない。
【図面の簡単な説明】
【００３５】
【図１】高可用性コンピュータ構成を示す概略図である。
【図２】有向非巡回グラフの形態の構成要素階層を示す概略図である。
【図３】本技法のステップを示す流れ図である。
【図４】有向非巡回グラフを用いた高可用性クラスタのクリティカルリソース解析に関わるステップを示す流れ図である。
【図５】有向非巡回グラフの一般的な形態を示す図である。
【符号の説明】
【００３６】
１０１・・・コンピュータシステム
１０２・・・デバイス（ディスク）
１０３・・・ＨＢＡ２
１０４・・・ＨＢＡ１
【図１】
0004726915.tif 000002
【図２】
0004726915.tif 000003
【図３】
0004726915.tif 000004
【図４】
0004726915.tif 000005
【図５】
0004726915.tif 000006