(57)【特許請求の範囲】
【請求項１】
パケット処理障害を障害ドメイン内に抑制して処理する分割コンピュータシステムであって、
少なくとも１つのドメインによって動的に共有される少なくとも１つの割り当てリソースの状態を格納するリソース定義テーブルを含み、各リソースは割り当てられているドメインを識別するドメインＩＤと関連づけられており、
リソース定義テーブルへの書き込み及び読み出しアクセス権を有するシステムマネージャ、を含み、
システムマネージャは、
システムにパケット処理障害があると、各ドメインの各ノードによる新しいトランザクションを受け入れない休止状態に入ること、
タイムアウト時間経過後、リソース定義テーブル中の割り当てリソースを識別すること、
リソース定義テーブル中の割り当てリソースに関連するドメインを障害ドメインと識別すること、
リソース定義テーブル中でそれに関連する割り当てリソースを持たないとして、少なくとも１つの障害のないドメインを識別すること、
障害のないドメインのために休止状態を終えること、
リソース定義テーブル中の障害ドメインに関連する割り当てリソースを割り当て解除すること、そして
システムを再初期化することによりデッドロックされたドメイン中のハードウェア状態を選択的にリセットすること、ができる、コンピュータシステム。
【請求項２】
システムマネージャが、リソース定義テーブルに示されるリソースの状態を変えることにより障害ドメインに関連する割り当てリソースを割り当て解除を行うことを更に含む、請求項１に記載のシステム。
【請求項３】
リソース定義テーブルの各リソースが、リソースが割り当てられているかどうかを示す特定値を有する有効ビットと関連づけられている、請求項１に記載のシステム。
【請求項４】
有効ビットが０であると、前記特定値がリソースが割り当てられたことを示す、請求項３に記載のシステム。
【請求項５】
有効ビットが１であると、前記特定値がリソースが割り当てられたことを示す、請求項３に記載のシステム。
【請求項６】
少なくとも２つのドメインに分割され、各ドメインが複数のコンピュータノードを有するコンピュータシステムにおける、パケット処理障害を障害ドメイン内に抑制して処理する方法であって、
システムマネージャは、システムのパケット処理障害に対応して、各ノードによる新しいトランザクションを受け入れない休止状態に入ること、
システムマネージャは、タイムアウト時間経過後リソース定義テーブル中の割り当てリソースを識別すること、
システムマネージャは、リソース定義テーブル中の割り当てリソースに関連するドメインを障害ドメインと識別すること、
システムマネージャは、リソース定義テーブル中でそれに関連する割り当てリソースを有さないとして、少なくとも１つの障害のないドメインを識別すること、
システムマネージャは、休止状態を終了すること、及び
システムマネージャは、リソース定義テーブルの障害リソースと関連する割り当てリソースの割り当て解除をすること、を含む方法。
【請求項７】
システムマネージャにより障害ドメインをリセットするステップを更に含む、請求項６に記載の方法。
【請求項８】
障害ドメインをリセットするステップは、システムマネージャにより障害ドメインの状態を変化させることを更に含む、請求項６に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般にコンピュータシステムのドメインへの区画の分割に関し、特に共有リソースを有する分割コンピュータシステムにおける障害の抑制及びエラー処理に関する。
【０００２】
【従来の技術】
マルチノード・コンピュータ・システムは、しばしばドメインに分割され、各ドメインが独自にアドレス空間を有する独立した機械として機能する。分割することで、コンピュータシステムのリソースを異なるタスクに効果的に割り当てることができる。分割されたコンピュータシステムにおけるドメインは、動的にリソースを共有し得る。ドメイン内でパケット処理の決定的な障害が生じた場合は、システムで処理を継続することができない。その結果、共有リソース全体が中間状態に置かれる。システム内の障害ドメインをリセットし、再起動するためには、共有リソース全体をリセットしなければならない。たとえ他のドメインが障害なく動作していても、全てのドメインをリセットしなければならない。
【０００３】
分割されたシステムにおけるエラー抑制及び復旧の解決法の１つは、各ドメインに専用のリソースを使用し、あるドメインで障害が起きた場合でも障害の起きていないドメインは影響を受けないようにすることである。しかし、分割されたシステムにおいて、各ドメインに専用リソースを使用してエラー抑制及び復旧を行うには、共有リソースを使用する場合よりも多くのリソースを必要とする。なぜなら、リソース量は、システムの全ドメインの最大要求に対応しなければならないからである。
【０００４】
【発明が解決しようとする課題】
従って、システムが障害ドメインにエラーを含んでいても、他の障害のないドメインは影響を受けないような機構を提供することが望まれる。
【０００５】
本発明は、相互接続によって結合された複数のコンピュータノードを有する論理的に分割されたコンピュータシステムにおける、障害抑制及びエラー処理のためのシステム及び方法である。
【０００６】
【課題を解決するための手段】
システムは、幾つかの或いは全てのドメインによって動的に共有される少なくとも１つのリソースを含む。リソース定義テーブルは各リソースの状態に関する情報、例えばリソースがドメインに割り当てられているかどうか、を格納する。リソース定義テーブルはリソースとそのリソースが割り当てられているドメインとの間の関連も管理する。
【０００７】
システムは、リソース定義テーブルに読み出し及び書き込みのアクセス権を有するシステムマネージャを更に含む。ドメインにパケット処理障害が起きた場合、システムマネージャはシステムを休止状態にすることにより、システムの新たなパケットの開始を強制的に一時延期する。システムマネージャは共有リソースのステータス情報を監視する。例えば、中間状態におかれている割り当てリソースを識別する。リソース定義テーブルに格納されるドメイン識別子を利用して、システムマネージャはその割り当てリソースに関連する障害ドメインも検出する。システムマネージャは関連するリソースがリソース定義テーブルにない１つ或いはそれ以上の障害のないドメインの検出も行う。その後、システムマネージャは障害のないドメインの休止状態を終了し、障害のないドメインは動作を再開し、これによりエラーを障害ドメイン内に抑制する。その後、システムマネージャは障害ドメイン内のエラーを処理する。例えば、他のドメインが将来使用するために割り当てられたリソースの割り当てを解除し、障害ドメインをリセットする。この結果、障害は障害ドメイン内に抑制され、障害のないドメインはリセットされることなく継続して動作する。
【０００８】
【発明の実施の形態】
図１を参照すると、複数のドメインに分割されたマルチノード・コンピュータ・システム１００のブロック線図が示されている。図１に示される各ドメイン１３１、１３５及び１３７は複数のノード、即ち中央制御装置（ＣＰＵ）ノード１０５、メモリノード１１０及び入力／出力（Ｉ／Ｏ）ノード１１５を含み、相互接続１２０を介して接続されている。ＣＰＵノード１０５は従来の処理装置、例えばインテル又はインテル対応のＰｅｎｔｉｕｍTMクラス又はそれ以上のプロセッサ、サンのＳＰＡＲＣTMクラス又はそれ以上のプロセッサ、或いはＩＢＭ／モトローラのＰｏｗｅｒＰＣTMクラス又はそれ以上のプロセッサである。Ｉ／Ｏノード１１５は従来のＩ／Ｏシステム、例えば記憶装置、入力装置、周辺装置等である。メモリノード１１０は従来のメモリシステム、例えば動的ランダムアクセスメモリシステム、静的ランダムアクセスメモリシステム等である。各ノードは別々のコンピュータチップ、コンピュータ基盤或いは独立型ユニットで実施してもよい。ＣＰＵノード１０５、メモリノード１１０及びＩ／Ｏノード１１５はパケットを使用し、相互接続１２０を介して互いに通信する。相互接続１２０は、例えば、従来のグローバル相互接続でもよく、またはルータを含む。各ドメイン１３１、１３５及び１３７は各ローカルドメインの状態を制御するローカルドメインレジスタを有する。一例としてドメインレジスタ１４５を図１に示す。各ローカルドメインレジスタは、好ましくは、制御レジスタ、ステータスレジスタ、エラー記録レジスタ（図示しない）等の様々な異なる型のローカルレジスタを含む。
【０００９】
システム１００は、システム１００内の少なくとも１つのドメインによって動的に使用される１つ又はそれ以上の共有リソース１３０を更に含む。システム１００はリソース定義テーブル１５５を更に含み、リソースの状態及びリソースとそのリソースが割り当てられるドメインとの関係を、たとえそのリソースがそのドメインにすでに割り当てられていなくても、格納する。リソース定義テーブル１５５をアドレス復号論理を含むレジスタ配列として実現し、エントリの読み出し又は書き込みを許可する。リソース定義テーブル１５５は別々の読み出し、書き込みポートを有する静的ＲＡＭ配列で実現されてもよい。リソース定義テーブル１５５は図２から５に関連づけて、以下により詳しく述べる。
【００１０】
システム１００は、相互接続１２０と接続され、システムマネージャ１４０と呼ばれる外部エージェントを更に含む。好ましい実施態様においては、システムマネージャ１４０はリソース定義テーブル１５５へ読み出し及び書き込みアクセス権を有する。これは、システムマネージャ１４０が中間状態に置かれている割り当てリソースを識別するのに有効である。ドメインＩＤを利用することにより、システムマネージャ１４０はその割り当てリソースに関連する障害ドメインを識別する。システムマネージャ１４０はシステム１００内の全ドメインのリストと障害ドメインのリストを管理する。これにより、システムマネージャ１４０はリソース定義テーブル１５５において関連リソースを持たない、障害のないドメインを識別することができる。
【００１１】
システムマネージャ１４０は１つ或いはそれ以上のローカルドメインレジスタ、例えばドメインレジスタ１４５に対し読み取り及び書き込みアクセス権を有する。この権利により、システムマネージャ１４０は、再設定プロセスの一部としてドメイン１３１、１３５及び１３７を休止させる等、各個別ドメインの状態を監視及び制御することができる。ドメイン内にハードウエア障害が生じた場合、相互接続１２０がデッドロックされるためドメインがデッドロックされる。従来のコンピュータシステムにおいては、リソースがドメイン間で共有されているため、デッドロックされたドメインが他のドメインの動作にエラーを起こす可能性がある。システムマネージャ１４０はローカルドメインレジスタ、例えばレジスタ１４５、に対して書き込み及び読み出しアクセス権を有するので、デッドロックされたドメインのドメイン状態をリセットすることができる。システムマネージャ１４０は、あらゆる個別ドメイン上で動作するハードウエアやソフトウエアから独立して動作する。従って、コンピュータシステム１００内のどの個別ドメインのハードウエア又はソフトウエア障害の影響も受けない。システムマネージャ１４０はハードウエア、ソフトウエア、ファームウエア及びこれらの組み合わせで実現されて良い。システムマネージャ１４０はシステム管理者（図示しない）用の制御インタフェイス（図示しない）を有するシステムコントローラ（図示しない）の一部であっても良い。
【００１２】
図２を参照すると、システム１００における未処理トランザクションの状態を常に把握しているリソース定義テーブル１５５が示されている。図２に示されるリソース定義テーブル１５５は８エントリを含む。リソース定義テーブル１５５は幾つのエントリを含んでもよいことに留意すべきである。パケットがノードから相互接続１２０に送られるときに、各共有リソースエントリ４０はドメインに割り当てられる。共有リソースエントリ４０の状態情報は、更なる処理が実行された場合には更新される。共有リソースエントリ４０は一連のパケット処理が完了すると、割り当て解除される。リソース定義テーブル１５５は好ましくは有効ビット１０、ドメインＩＤ２０及びリソースエントリ３０のフィールドを含む。有効ビットフィールド１０は、特定の値を有し、リソースがドメインに割り当てられたかどうかを示す。本発明のある実施態様では、リソースが割り当てられている場合には有効ビットフィールド１０は「１」であり、リソースが割り当て解除された場合には有効ビットフィールド１０は「０」である。ドメインＩＤフィールド２０はリソースが割り当てられたドメインを識別する。ドメインＩＤ２０があるので、システム１００はリソースとそれに対応するドメインの関係を管理することができ、そのため、システム１００内に障害が生じた場合にシステムマネージャ１４０は１つあるいはそれ以上の障害のないドメインを識別することができる。図２に示すように、リソース０及び１はドメイン０に割り当てられ、リソース２はドメイン３に割り当てられ、リソース４及び７はドメイン２に割り当てられる。
【００１３】
図３は、リソース定義テーブル１５５のリソース割り当て解除プロセスを示す。例えば、リソース４は一連のパケット処理が完了したときに割り当て解除される。そして、リソース４に対する有効ビットフィールド１０は１から０へクリアされる。ドメインＩＤフィールド２０は、リソース４がドメイン２へ割り当てられた時の値を保持していることに留意すべきである。この情報は、リソース４をどのドメインが前回使ったかを識別するのに有効である。
【００１４】
図４は、割り当てのためのリソース選択プロセスを示す。割り当て用にリソースを選択するために、優先符号器（図示しない）はリソース定義テーブル１５５内の全リソースの有効ビット１０を復号化し、最も番号の小さい、未使用リソースを選択する。図４では、リソース３が、最小番号の割り当てられていないリソースである。リソース３はパケットがノード、例えばＣＰＵノード１０５、から相互接続１２０へ送られたときに割り当てられ、パケット処理の状態を保持する。共有リソースの状態情報は、更なる処理が実行された場合に更新される。
【００１５】
図５に示すように、リソース定義テーブル１５５はドメイン１によるリソース３の割り当てをたどっている。ドメインがリソースを割り当てると、そのドメインまたはシステムマネージャ１４０のみがそのリソースの修正又は割り当て解除を許可される。図示する例では、ドメイン１又はシステムマネージャ１４０のみがリソース３の修正又は割り当て解除を許可される。これにより、システム１００はリソース分離を維持できる。リソース分離は、リソース定義テーブル１５５へアクセスした全メッセージのドメインＩＤをチェックすることによって実現する。あるメッセージが、修正しようとしているリソースのドメインＩＤフィールド２０内のドメインＩＤと異なるドメインから発せられている場合は、エラー状態を意味し、それは記録され、システムマネージャ１４０に報告されなければならない。
【００１６】
図６は、共有リソースを有し論理的に分割されたシステムにおけるエラー抑制及び復旧の方法を示すフローチャートである。プロセスは、パケット処理障害がドメイン内で生じ、そのドメインがデッドロックされた時に開始１０する。システムマネージャ１４０はシステム１００内の全ドメインの全ノードを休止２０し、新たなトランザクションを受け入れず、全ドメイン内の全未処理トランザクションは完了まで動作する。
【００１７】
システムマネージャ１４０は、システム１００を「休止」状態にするのに、好ましくは「バスロック」と呼ばれる機構を使用する。これは、ノード、例えばＣＰＵノード１０５、が分割されたシステム内の全リソースをロックする必要があるときに発行される。システムマネージャ１４０はロック取得要求を全ドメインの各ノードへ一斉送信する。要求を受け取ったシステム１００の各ノードは、システム１００への新たなプロセッサ要求の発行を中止する。各ノードは、システム１００からそのノードへのあらゆる未処理要求へ十分なリソースを保証してその未処理要求を完了させ、全未処理要求への返答が受信されるのを待つ。その後、ロック取得要求に対して生成された返答が各ノードによりシステムマネージャ１４０へ送信される。全ノードからの返答が受信されると、システム１００は全未処理要求を排出し、「休止」状態に入る。
【００１８】
パケット処理エラーにより要求が完了できなかった場合、その特定のノードからはロック取得要求への返答が受信されない。この状況は、単にシステムマネージャ１４０のタイムアウトによって検出される。タイムアウト時間が終わると、システムマネージャ１４０はリソース定義テーブル１５５を調査３０し、中間状態にある割り当てリソースを識別する。ドメインＩＤを使用して、システムマネージャ１４０はその割り当てリソースに関連する障害ドメインを検出４０する。また、リソース定義テーブル内で割り当てリソースを有さない１つ或いはそれ以上の障害のないドメインの検出５０も行う。例えば、図２に示されるように、ドメイン０は関連するドメインを持たない障害のないドメインである。システムマネージャ１４０は障害のないドメインを識別すると、そのドメインの休止状態を終了する。例えば、システムマネージャ１４０はロック開放要求を全ドメインの全ノードに発行し、相互接続１２０へ新たな要求の発行を継続できるようにする。これにより、システムマネージャ１４０は障害を障害ドメイン内に抑制することができ、障害のないドメインは再起動しなくてもよい。
【００１９】
その後、システムマネージャ１４０は障害ドメイン内のエラーを処理する。例えば、障害ドメインに関連するリソースの割り当て解除７０を行い、他の障害のないドメインがそのリソースを利用できるようにする。このように、図３において、ドメイン２がリソース４を割り当てられた障害ドメインであった場合、システムマネージャ１４０はリソース４を割り当て解除し、リソース定義テーブル１５５の有効ビットフィールド１０をクリアし、有効ビットフィールド１０の値を「１」から「０」に変えることにより、そのリソースは他の障害のないドメインが使えるようにする。ドメインＩＤフィールド２０はリソース４が割り当てられた時の値を保持していることに留意すべきである。システムマネージャ１４０は、この情報を使って、ドメイン「２」が前回リソース４を使用したことを識別する。
【００２０】
【発明の効果】
本発明の好ましい実施態様によれば、チャネル１６５はシステムマネージャ１４０がシステムを再初期化又は再起動することにより、デッドロックされたドメイン内のハードウエア状態を選択的にリセット８０するのに有効である。障害ドメインがリセットされると、プロセスは終了９０する。結果として、障害は障害ドメイン内に抑制され、障害のないドメインはリセットされることなく動作を継続し、障害ドメインはリセットされる。
【００２１】
付記
（付記１）  パケット処理障害を障害ドメイン内に抑制して処理する分割コンピュータシステムであって、
少なくとも１つのドメインによって動的に共有される少なくとも１つの割り当てリソースの状態を格納するリソース定義テーブルを含み、各リソースは割り当てられているドメインを識別するドメインＩＤと関連づけられおり、
リソース定義ファイルへの書き込み及び読み出しアクセス権を有し、ドメインＩＤを使用して割り当てリソースとその割り当てリソースに関連する障害ドメインを識別できるシステムマネージャ、を含むコンピュータシステム。
（付記２）  相互接続を介して接続される複数のコンピュータノードを更に有し、システムマネージャは更に各ドメインの各ノードを休止状態にできる付記１に記載のシステム。
（付記３）  システムマネージャが少なくとも１つ障害のないドメインを識別し、その少なくとも１つの障害のないドメインの休止状態を終えることを更に含む、付記２に記載のシステム。
（付記４）  システムマネージャが、リソース定義テーブルに示されるリソースの状態を変えることにより障害ドメインに関連する割り当てリソースを割り当て解除を行うことを更に含む、付記１に記載のシステム。
（付記５）  リソース定義テーブルの各リソースが、リソースが割り当てられているかどうかを示す特定値を有する有効ビットと関連づけられている、付記１に記載のシステム。
（付記６）有効ビットが０であると、前記特定値がリソースが割り当てられたことを示す、付記５に記載のシステム。
（付記７）有効ビットが１であると、前記特定値がリソースが割り当てられたことを示す、付記５に記載のシステム。
（付記８）少なくとも２つのドメインに分割され、各ドメインが複数のコンピュータノードを有するコンピュータシステムにおける、パケット処理障害を障害ドメイン内に抑制して処理する方法であって、
システムのパケット処理障害に対応して各ドメインの各ノードを休止状態に入れること、
リソース定義テーブルの割り当てリソースを識別すること、
リソース定義テーブルの割り当てリソースに関連する障害ドメインを識別すること、
リソース定義テーブルで割り当てリソースを有さない少なくとも１つの障害のないドメインを識別すること、
障害のないドメインの休止状態を終了すること、及び
リソース定義テーブルの障害リソースと関連する割り当てリソースの割り当て解除をすること、を含む方法。
（付記９）  障害ドメインをリセットするステップを更に含む、付記８に記載の方法。
（付記１０）  障害ドメインをリセットするステップが、障害ドメインの状態を変えることを更に含む、付記８に記載の方法。
（付記１１）  休止状態に入れるステップが、各ドメインの各ノードにロック取得要求を発行することを含む、付記８に記載の方法。
（付記１２）  休止状態を終了するステップが、各ドメインの各ノードにロック開放要求を発行することを含む、付記８に記載の方法。
（付記１３）  コンピュータノードがＣＰＵノードである、付記２に記載のシステム。
（付記１４）  コンピュータノードがＩ／Ｏノードである、付記２に記載のシステム。
（付記１５）  コンピュータノードがメモリノードである、付記２に記載のシステム。
（付記１６）  システムマネージャがハードウエアで実現される、付記１に記載のシステム。
（付記１７）  システムマネージャがソフトウエアで実現される、付記１に記載のシステム。
（付記１８）  システムマネージャがシステム外部のコンピュータにあるソフトウエアによって実現される、付記１に記載のシステム。
【図面の簡単な説明】
【図１】本発明のマルチノード・コンピュータ・システムの全体のアーキテクチャのブロック線図である。
【図２】図１の実施態様によるリソース定義テーブルのブロック線図である。
【図３】図２のリソース定義テーブル内のリソース割り当て解除プロセスを示すブロック線図である。
【図４】図２のリソース定義テーブル内の最小番号リソースを割り当てるよう選択するプロセスを示すブロック線図である。
【図５】ドメイン１によるリソース３の割り当てをたどるリソース定義テーブルを示すブロック線図である。
【図６】図１の実施態様によって実行される方法のフローチャートである。
【図１】
0004213415.tif 000002
【図２】
0004213415.tif 000003
【図３】
0004213415.tif 000004
【図４】
0004213415.tif 000005
【図５】
0004213415.tif 000006
【図６】
0004213415.tif 000007