(57)【要約】【課題】  コンピュータシステムも、パーティションもリセットすることを必要とせずに、コンピュータシステムのエージェントをリセットすること。【解決手段】本発明の方法は、（Ａ）第１のエージェントに向けられた第１のリセット信号を受信するステップと、（Ｂ）第２のエージェントが所定の一実行状態にあるかどうかを判定するステップを含み、該一実行状態は、前記第２のエージェントにリセットを要求せずに前記第１のエージェントに対してハードリセットを実行できる状態であり、（Ｃ）前記第２のエージェントが前記一実行状態と判定された場合に、前記第１のエージェントに対してハードリセットを実行するステップと、（Ｄ）前記第２のエージェントが、前記一実行状態にないと判定された場合、前記第１のエージェントに対してソフトリセットを実行するステップとを含む。  【選択図】図３
2004272899.tif 000002
【特許請求の範囲】
【請求項１】
第１のエージェントおよび第２のエージェントを含むコンピュータシステムにおいて、
（Ａ）前記第１のエージェントに向けられた第１のリセット信号を受信するステップと、
（Ｂ）前記第２のエージェントが所定の種類の実行状態のうちの一実行状態にあるかどうかを判定するステップを含み、該一実行状態は、前記第２のエージェントにリセットを要求せずに前記第１のエージェントに対してハードリセットを実行できる状態であり、
（Ｃ）前記第２のエージェントが前記一実行状態と判定された場合に、前記第１のエージェントに対してハードリセットを実行するステップと、
（Ｄ）前記第２のエージェントが、前記一実行状態にないと判定された場合、前記第１のエージェントに対してソフトリセットを実行するステップと、を含む方法。
【請求項２】
前記第２のエージェントは、前記コンピュータシステムの機能領域である請求項１に記載の方法。
【請求項３】
前記第１のエージェントは、複数のコンポーネントを備え、前記ステップ（Ｄ）は、
（Ｄ）（１）前記複数のコンポーネントのすべてよりも少ないコンポーネントをリセットするステップ、を含む請求項１に記載の方法。
【請求項４】
前記ステップ（Ｄ）は、前記第２のエージェントをリセットすることなく実行される、請求項３に記載の方法。
【請求項５】
エージェントおよび該エージェントに関連付けられた機能領域を含むコンピュータシステムにおける方法であって、
（Ａ）前記エージェントに向けられた第１のリセット信号を受信するステップと、
（Ｂ）前記機能領域が所定の種類の実行状態のうちの一実行状態にあるかどうかを判定するステップを含み、該一実行状態は、該機能領域にリセットを要求せずに前記第１のエージェントに対してハードリセットを実行できる状態であり、
（Ｃ）前記機能領域が、前記一実行状態にあると判定されると、前記エージェントに第２のリセット信号を伝送することにより、該エージェントに対してハードリセットを実行するステップと、
（Ｄ）前記機能領域が、前記一実行状態にないと判定されると、前記エージェントに割り込みを伝送することにより、該エージェントの複数のコンポーネントのすべてよりも少ないコンポーネントをリセットするステップと、を含む方法。
【請求項６】
第１のエージェントおよび第２のエージェントを含むコンピュータシステムにおける装置であって、
前記第１のエージェントに向けられた第１のリセット信号を受信する受信手段と、
前記第２のエージェントが所定の種類の実行状態のうちの一実行状態にあるかどうかを判定する判定手段を含み、該一実行状態は、該第２のエージェントのリセットを必要とせずに、前記第１のエージェントに対してハードリセットを実行できる状態であり、
前記第２のエージェントが、前記一実行状態にあると判定されると、前記第１のエージェントに対してハードリセットを実行するハードリセット手段と、
前記第２のエージェントが、前記一実行状態にないと判定されると、前記第１のエージェントに対してソフトリセットを実行するソフトリセット手段と、を備える装置。
【請求項７】
第１のエージェントおよび第２のエージェントを含むコンピュータシステムに使用されるリセットアーキテクチャであって、
前記第２のエージェントに接続されて、該第２のエージェントの実行状態を示す実行状態信号を供給する出力を備える実行状態識別部と、
多重分離装置であって、
少なくとも１つのリセット源に接続されたデータ入力と、
前記実行状態識別部の前記出力に接続された選択入力と、
前記第１のエージェントの割り込み入力に接続された割り込み出力と、
前記第１のエージェントのリセット入力に接続されたリセット出力と、
を備える多重分離装置と、を備え、
前記第１のエージェントは、前記リセット入力にリセット信号を受信したことに応答してハードリセットを実行する手段と、前記割り込み入力に割り込み信号を受信したことに応答してソフトリセットを実行する手段とを備える、リセットアーキテクチャ。
【請求項８】
機能領域および該機能領域に関連付けられたエージェントを含むコンピュータシステムにおける方法であって、
（Ａ）前記エージェントに向けられた第１のリセット信号を受信するステップと、
（Ｂ）前記第１のリセット信号に応答して、前記機能領域が第１の所定の種類の実行状態のうちの第１の実行状態にある間、前記エージェントに対してソフトリセットを実行するステップを含み、該第1の実行状態は、前記機能領域のリセットを必要とせずには前記エージェントに対してハードリセットを実行できない状態であり、
（Ｃ）前記機能領域が、前記エージェントに対してハードリセットを実行できる第２の所定の種類の実行状態のうちの第２の実行状態にある間、該機能領域のリセットを要求せずに前記エージェントに対してハードリセットを実行するステップと、を含む方法。
【請求項９】
機能領域および該機能領域に関連付けられたエージェントを含むコンピュータシステムにおける方法であって、
（Ａ）前記エージェントに向けられた第１のリセット信号を受信するステップと、
（Ｂ）前記第１のリセット信号に応答して、前記機能領域が、第１の所定の種類の実行状態のうちの第１の実行状態にある間、前記エージェントに割り込み信号を伝送することにより、前記機能領域をリセットせずに前記エージェントに対してソフトリセットを実行するステップを含み、前記第1の実行状態は、前記機能領域にリセットを要求せずには前記エージェントに対してハードリセットを実行できない状態であり、
（Ｃ）前記機能領域が第２の所定の種類の実行状態のうちの第２の実行状態かどうかを判定するステップを含み、該第２の実行状態は、前記機能領域にリセットを要求せずに前記エージェントに対してハードリセットを実行できる状態であり、
（Ｄ）前記機能領域が、前記第２の実行状態にある間、前記エージェントに第２のリセット信号を伝送することにより、前記エージェントに対してハードリセットを実行するステップと、を含む前記方法。
【請求項１０】
機能領域および該機能領域に関連付けられたエージェントを含むコンピュータシステムにおける装置であって、
前記エージェントに向けられた第１のリセット信号を受信する受信手段と、
前記機能領域が第１の所定の種類の実行状態のうちの第１の実行状態にある間、前記エージェントに対してソフトリセットを実行するソフトリセット手段を含み、該第１の実行状態は、前記機能領域にリセットを要求せずには前記エージェントに対してハードリセットを実行できない状態であり、
前記機能領域が第２の所定の種類の実行状態の第２の実行状態にある間、前記エージェントに対してハードリセットを実行するハードリセット手段を含み、該第２の実行状態は、該機能領域にリセットを要求せずに、前記エージェントに対してハードリセットを実行できる状態である、前記装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムのコンポーネントをリセットする技法に関し、詳細には、コンピュータシステムのオペレーションを混乱させることなく、コンピュータシステムのエージェントをリセットする技法に関する。
【背景技術】
【０００２】
すべてのコンピュータシステムは、ある種のリセットアーキテクチャを含む。コンピュータシステムのリセットアーキテクチャは、そのシステムのコンポーネントの一部または全部を初期状態にリセットする役割を有する。例えば、ユーザのハードウェアリセットボタンの押下に応答して、または、自動化されたソフトウェアリセット命令もしくはユーザが起動したソフトウェアリセット命令に応答して、コンピュータシステムがブートされる時に、リセットは起動され得る。例えば、コンピュータシステムがクラッシュすると、ユーザは、ハードウェアリセットボタンを押すことによりハードウェアリセットを起動することが必要となる場合があり、それによって、コンピュータシステムのメモリおよび他のコンポーネントは、再初期化されて、再び使用可能となる。多くの場合、コンピュータシステム内の多くのコンポーネントまたはすべてのコンポーネントは、同じリセット信号からリセットされ、それによって、システム全体は、所定の状態で起動することを確実にする。例えば、スタンドアロンのデスクトップコンピュータのリセットアーキテクチャは、通常、必要なすべてのコンポーネントのリセットを起動する単一のリセット信号を使用する。
【０００３】
より複雑なコンピュータシステムは、複数の自律的な装置、例えば、内蔵されたマイクロプロセッサ、システムプロセッサ、または複雑な論理回路の集合を含むことがある。本明細書では、これらの装置のそれぞれを「エージェント」と呼ぶことにする。これらのエージェントのそれぞれは、別個のリセット源を有することがある。「マルチエージェントシステム」という用語は、本明細書では、複数のエージェントを含む任意のコンピュータシステムについていう場合に使用される。
【０００４】
マルチエージェントのコンピュータシステムの一例は、分割可能サーバ（partitionable server）である。この分割可能サーバは、「統合体サーバ（consolidation server）」または「マルチパーティションコンピュータ（multi-partition computer）」とも呼ばれる。例えば、図１Ａを参照して、従来技術の分割可能サーバ１００の機能ブロック図が示されている。分割可能サーバ１００は、複数のパーティション（partition、機能領域）１０４ａ〜１０４ｃに論理的に細分される単一の物理的コンピュータシステムであり、複数のパーティション１０４ａ〜１０４ｃのそれぞれには、サーバのハードウェアリソースおよび／またはソフトウェアリソースの一部が割り当てられる。パーティション１０４ａ〜１０４ｃのそれぞれは、それ自身のオペレーティングシステムおよびソフトウェアアプリケーションを実行することができる。例えば、図１Ａに示すように、パーティション１０４ａ〜１０４ｃは、オペレーティングシステム１１４ａ〜１１４ｃをそれぞれ実行する。
【０００５】
より一般的には、パーティション１０４ａ〜１０４ｃのそれぞれは、個別のスタンドアロンコンピュータと機能的に同等となるように意図され、したがって、外部からは、個別のスタンドアロンコンピュータと区別がつかない。分割可能サーバは、いくつかの物理的なサーバを、複数のパーティションを有する１つの物理的なサーバに統合するのに使用されることがあるので、時に、「統合体サーバ」と呼ばれる。複数のパーティションのそれぞれは、当該パーティションが取って代わった物理的なサーバの機能を実行する。従来のデスクトップコンピュータまたはラップトップコンピュータは、マルチパーティションコンピュータのうち、パーティション数が１つである特別な場合とみなすことができる。
【０００６】
図１Ａに示す特定の例において、分割可能サーバ１００は、複数のエージェント１０８ａ〜１０８ｃも含む。パーティション１０４ａ〜１０４ｃは、主電源領域１０２の主システム電力により動作する一方、エージェント１０８ａ〜１０８ｃは、補助電源領域１０６の補助電力により動作する。これは、主電源領域１０２が電力を供給していない場合であっても、エージェント１０８ａ〜１０８ｃは、電力を受け続けることができることを意味する。図１Ａに示す例では、エージェント１０８ａ〜１０８ｃのそれぞれは、パーティション１０４ａ〜１０４ｃのうちの対応するパーティションを監視し、サポートする。パーティション１０４ａ〜１０４ｃおよびエージェント１０８ａ〜１０８ｃは、それぞれ、通信リンク１１２ａ〜１１２ｃを介して相互に通信する。
【０００７】
エージェント１０８ａ〜１０８ｃのそれぞれは、それ自身のリセット回路を含み、エージェント１０８ａ〜１０８ｃは、リセット信号線１１０ａ〜１１０ｃ上を伝送されるリセット信号によってそれぞれ独立してリセットすることができる。その結果、エージェント１０８ａ〜１０８ｃの一部は、パーティション１０４ａ〜１０４ｃのうちの対応するパーティションがまだ実行中に、リセットを進めることができる。場合によっては、エージェント１０８ａ〜１０８ｃの１つおよびパーティション１０４ａ〜１０４ｃのうちの対応するパーティションは、エージェントが予期せずリセットされた（例えば、リセットをトリガするウォッチドッグタイマまたはユーザの強制リセットの結果として）時に、相互に通信中の場合もある。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
マルチパーティションコンピュータ、例えば図１Ａに示す分割可能サーバ１００などでは、パーティション１０４ａ〜１０４ｃが分離され、かつ、独立であり、その結果、パーティション１０４ａ〜１０４ｃのうちの１つパーティションの障害（例えばオペレーティングシステムのクラッシュなど）が、パーティション１０４ａ〜１０４ｃのうちの他のパーティションの障害を引き起こさないようになっていることが非常に望ましい。この目標を達成することは、多くの点でシステム設計者にとって難しいものとなる可能性がある。特に、エージェント１０８ａ〜１０８ｃの１つをリセットする動作が、パーティション１０４ａ〜１０４ｃのうちの対応するパーティションまたはサーバ１００全体のリセットを必要とすることがないようにシステム１００を設計することは、難しいものとなる可能性がある。
【０００９】
ほとんど場合、エージェント１０８ａ〜１０８ｃのうちの１つのエージェントの予期されないリセットは、対応するパーティションのオペレーションも混乱させないし、サーバ１００のパーティション１０４ａ〜１０４ｃのうちの他のパーティションのオペレーションも混乱させない。実際には、分割可能サーバおよび他のマルチエージェントシステムは、通常、このようなイベントを優雅に処理するように設計される。しかしながら、ある特定の状況では、エージェント１０８ａ〜１０８ｃのうちの１つのエージェントの予期されないリセットにより、望ましくない影響が引き起こされることがある。例えばパーティション１０４ａ〜１０４ｃのうちの対応するパーティションのクラッシュが引き起こされたり、さらにはサーバ１００全体のクラッシュが引き起こされたりすることがある。通常、サーバ１００は、このようなクラッシュ後、サーバ１００全体の電源を落とし、続いて、サーバ１００全体に再び電源を投入することによってのみ、オペレーション状態に復帰することができる。これが、「ハードリセット」の一例である。完全なシステムクラッシュおよび再ブートは、特に、サーバ１００が数百、さらには数千の他のコンピュータシステムおよび周辺機器によって一定の接続のために依拠されている場合に、極めて望ましくない。
【００１０】
一例として、エージェント１０８ａおよび対応するパーティション１０４ａについて考察する。エージェント１０８ａの予期されないリセットによって、対応するパーティション１０４ａ（またはサーバ１００全体）のクラッシュが引き起こされるという一連の状況は、パーティション１０４ａが、ある実行状態の場合に発生する。その実行状態において、パーティション１０４ａ上で実行されているオペレーティングシステム１１４ａでは、エージェント１０８ａが通信リンク１１２ａを介した通信に常に利用可能であるということが前提となっている。このような一定の可用性があるものとして信頼され得るエージェントの例には、例えば、入出力（Ｉ／Ｏ）コントローラ、ハードディスクドライブコントローラ、ローカルエリアネットワーク（ＬＡＮ）コントローラ、管理可能性プロセッサ（manageability processor）、クロスバー回路、バスブリッジ、および冷却ファンなどのコンポーネントの監視および／または制御を行う回路が含まれる。オペレーティングシステム１１４ａが、通信リンク１１２ａを介してエージェント１０８ａとの通信を試み、エージェント１０８ａが応答しない（例えば、エージェント１０８ａがリセット中であるので）場合、オペレーティングシステム１１４ａは、クラッシュすることがあり、それによって、パーティション１０４ａは、リセットされるまで動作不能になる。
【００１１】
したがって、このような状況では、エージェント１０８ａをリセットすると、対応するパーティション１０４ａのクラッシュが引き起こされることがある。従ってエージェント１０８ａをリセットすることは安全でない。対応するエージェントをリセットすると、パーティションがクラッシュを引き起こす可能性があるか、または、確実に引き起こすというパーティションの実行状態を、本明細書では「安全でない実行状態」と呼ぶこととする。対応するエージェントをリセットしても、パーティションがクラッシュを引き起こす可能性もなく、また、確実に引き起こさないというパーティションの実行状態を、本明細書では「安全な実行状態」と呼ぶこととする。
【００１２】
例えば、パーティション１０４ａが、安全な実行状態にある場合には、エージェント１０８ａをリセットしても、パーティション１０４ａも他のパーティション１０４ｂ〜１０４ｃもクラッシュを引き起こさないので、従来の技法を使用して、エージェント１０８ａをリセットすることができる。一方、パーティション１０４ａが、安全でない実行状態にある場合には、異なるリセット方式を使用して、上述した望ましくない影響を回避しなければならない。
【００１３】
したがって、必要なものは、コンピュータシステムのエージェントをリセットする改良された技法である。
【課題を解決するための手段】
【００１４】
コンピュータシステムも、コンピュータシステムのパーティションもリセットすることを必要とせずに、コンピュータシステムのエージェントをリセットする技法が開示される。一実施の形態では、システムの各エージェントは、対応するパーティションに関連付けられる。エージェントに向けられたリセット信号は、リセットタイプセレクタに転送される。リセットタイプセレクタは、エージェントがリセットされると、そのエージェントに関連付けられたパーティションがクラッシュを引き起こすことになる実行状態（「安全でない実行状態」）にあるかどうかを判定する。パーティションが安全でない実行状態にある場合には、ソフトリセットがエージェントに対して実行される。そうでない場合には、ハードリセットがエージェントに対して実行される。ソフトリセットを実行しても、そのリセット信号の原動力となった問題が解決されない場合には、そのパーティションに対してハードリセットを実行する前に、パーティションを安全な実行状態に移行させることができる。
【００１５】
本発明の一態様では、第１のエージェントおよび第２のエージェントを含むコンピュータシステムに使用される方法が提供される。この方法は、（Ａ）前記第１のエージェントに向けられた第１のリセット信号を受信するステップと、（Ｂ）前記第２のエージェントが所定の種類の実行状態のうちの一実行状態にあるかどうかを判定するステップを含み、該一実行状態は、前記第２のエージェントにリセットを要求せずに前記第１のエージェントに対してハードリセットを実行できる状態であり、（Ｃ）前記第２のエージェントが前記一実行状態と判定された場合に、前記第１のエージェントに対してハードリセットを実行するステップと、（Ｄ）前記第２のエージェントが、前記一実行状態にないと判定された場合、前記第１のエージェントに対してソフトリセットを実行するステップと、を含む。このコンピュータシステムは、例えば、複数のパーティションを含むことができ、第２のエージェントは、例えば、その複数のパーティションの１つであってもよい。
【００１６】
本発明の別の態様では、エージェントおよび該エージェントに関連付けられたパーティションを含むコンピュータシステムに使用される方法が提供される。この方法は、（Ａ）前記エージェントに向けられた第１のリセット信号を受信するステップと、（Ｂ）前記機能領域が所定の種類の実行状態のうちの一実行状態にあるかどうかを判定するステップを含み、該一実行状態は、該機能領域にリセットを要求せずに前記第１のエージェントに対してハードリセットを実行できる状態であり、（Ｃ）前記機能領域が、前記一実行状態にあると判定されると、前記エージェントに第２のリセット信号を伝送することにより、該エージェントに対してハードリセットを実行するステップと、（Ｄ）前記機能領域が、前記一実行状態にないと判定されると、前記エージェントに割り込みを伝送することにより、該エージェントの複数のコンポーネントのすべてよりも少ないコンポーネントをリセットするステップと、を含む。ステップ（Ｄ）は、例えば、パーティションをリセットすることなく実行することができる。
【００１７】
本発明のさらに別の態様では、第１のエージェントおよび第２のエージェントを含むコンピュータシステムに使用される装置が提供される。この装置は、前記第１のエージェントに向けられた第１のリセット信号を受信する受信手段と、前記第２のエージェントが所定の種類の実行状態のうちの一実行状態にあるかどうかを判定する判定手段を含み、該一実行状態は、該第２のエージェントのリセットを必要とせずに、前記第１のエージェントに対してハードリセットを実行できる状態であり、前記第２のエージェントが、前記一実行状態にあると判定されると、前記第１のエージェントに対してハードリセットを実行するハードリセット手段と、前記第２のエージェントが、前記一実行状態にないと判定されると、前記第１のエージェントに対してソフトリセットを実行するソフトリセット手段とを備える。
【００１８】
本発明のさらに別の実施の形態では、第１のエージェントおよび第２のエージェントを含むコンピュータシステムに使用されるリセットアーキテクチャが提供される。このリセットアーキテクチャは、前記第２のエージェントに接続されて、該第２のエージェントの実行状態を示す実行状態信号を供給する出力を備える実行状態識別部と、多重分離装置であって、少なくとも１つのリセット源に接続されたデータ入力と、前記実行状態識別部の前記出力に接続された選択入力と、前記第１のエージェントの割り込み入力に接続された割り込み出力と、前記第１のエージェントのリセット入力に接続されたリセット出力と、を備える多重分離装置と、を備え、前記第１のエージェントは、前記リセット入力にリセット信号を受信したことに応答してハードリセットを実行する手段と、前記割り込み入力に割り込み信号を受信したことに応答してソフトリセットを実行する手段とを備える。
【００１９】
本発明の別の態様では、パーティションおよび該パーティションに関連付けられたエージェントを含むコンピュータシステムに使用される方法が提供される。この方法は、（Ａ）前記エージェントに向けられた第１のリセット信号を受信するステップと、（Ｂ）前記第１のリセット信号に応答して、前記機能領域が第１の所定の種類の実行状態のうちの第１の実行状態にある間、前記エージェントに対してソフトリセットを実行するステップを含み、該第1の実行状態は、前記機能領域のリセットを必要とせずには前記エージェントに対してハードリセットを実行できない状態であり、（Ｃ）前記機能領域が、前記エージェントに対してハードリセットを実行できる第２の所定の種類の実行状態のうちの第２の実行状態にある間、該機能領域のリセットを要求せずに前記エージェントに対してハードリセットを実行するステップとを含む。
【００２０】
本発明のさらに別の態様では、パーティションおよび該パーティションに関連付けられたエージェントを含むコンピュータシステムに使用される方法が提供される。この方法は、（Ａ）前記エージェントに向けられた第１のリセット信号を受信するステップと、（Ｂ）前記第１のリセット信号に応答して、前記機能領域が、第１の所定の種類の実行状態のうちの第１の実行状態にある間、前記エージェントに割り込み信号を伝送することにより、前記機能領域をリセットせずに前記エージェントに対してソフトリセットを実行するステップを含み、前記第1の実行状態は、前記機能領域にリセットを要求せずには前記エージェントに対してハードリセットを実行できない状態であり、（Ｃ）前記機能領域が第２の所定の種類の実行状態のうちの第２の実行状態かどうかを判定するステップを含み、該第２の実行状態は、前記機能領域にリセットを要求せずに前記エージェントに対してハードリセットを実行できる状態であり、（Ｄ）前記機能領域が、前記第２の実行状態にある間、前記エージェントに第２のリセット信号を伝送することにより、前記エージェントに対してハードリセットを実行するステップとを含む。
【００２１】
本発明のさらに別の態様では、パーティションおよび該パーティションに関連付けられたエージェントを含むコンピュータシステムに使用される装置が提供される。この装置は、前記エージェントに向けられた第１のリセット信号を受信する受信手段と、前記機能領域が第１の所定の種類の実行状態のうちの第１の実行状態にある間、前記エージェントに対してソフトリセットを実行するソフトリセット手段を含み、該第１の実行状態は、前記機能領域にリセットを要求せずには前記エージェントに対してハードリセットを実行できない状態であり、前記機能領域が第２の所定の種類の実行状態の第２の実行状態にある間、前記エージェントに対してハードリセットを実行するハードリセット手段を含み、該第２の実行状態は、該機能領域にリセットを要求せずに、前記エージェントに対してハードリセットを実行できる状態である。
【００２２】
本発明のさまざまな態様およびさまざまな実施の形態の他の特徴ならびに利点は、以下の説明および特許請求の範囲から明らかになる。
【発明を実施するための最良の形態】
【００２３】
コンピュータシステムも、コンピュータシステムのパーティションもリセットすることを必要とせずに、コンピュータシステムのエージェントをリセットする技法が開示される。一実施の形態では、システムの各エージェントは、対応するパーティションに関連付けられる。エージェントに向けられたリセット信号は、リセットタイプセレクタに転送される。リセットタイプセレクタは、エージェントがリセットされると、そのエージェントに関連付けられたパーティションがクラッシュを引き起こすことになる実行状態（「安全でない実行状態」）にあるかどうかを判定する。パーティションが安全でない実行状態にある場合には、ソフトリセットがエージェントに対して実行される。そうでない場合には、ハードリセットがエージェントに対して実行される。ソフトリセットを実行しても、そのリセット信号の原動力となった問題が解決されない場合には、そのパーティションに対してハードリセットを実行する前に、パーティションを安全な実行状態に移行させることができる。
【００２４】
本発明の一態様では、コンピュータシステムを再ブートする必要なく、コンピュータシステムのエージェントをリセットする技法が提供される。特に、マルチエージェントでマルチパーティションのコンピュータシステムにおけるエージェントを、そのエージェントに関連付けられたパーティションを再ブートする必要なくリセットする技法が提供される。
【００２５】
本発明の特定の実施の形態を説明する前に、コンピュータシステムのエージェントをリセットする従来技術の技法について説明する。図２を参照して、図１Ａの従来技術のサーバ１００に使用される従来技術のリセットアーキテクチャ２００が示されている。このリセットアーキテクチャ２００は、エージェント１０８ａのリセットを制御するために使用される。同じリセットアーキテクチャを、サーバ１００の他のエージェント１０８ｂ〜１０８ｃと共に使用することができる。
【００２６】
図２には、一例として、３つのリセット源２０２ａ〜２０２ｃが示されている。電力モニタ２０２ａは、補助電源領域１０６のエージェント１０８ａに供給されている電力を監視する。電力モニタ２０２ａが、供給電力が途切れたこと、または、供給電力のレベルが所定の閾レベル未満に降下したことを検知すると、電力モニタ２０２ａは、リセット信号線２０４ａにリセット信号を生成することができる。電力モニタを実施する技法は、当業者に既知である。
【００２７】
ユーザ２０２ｂは、例えば、サーバ１００のハードウェアリセットボタン（図示せず）を押すことにより、リセット信号線２０４ｂにリセット信号を生成することができる。ユーザ２０２ｂは、例えば、パーティション１０４ａで実行されているオペレーティングシステム１１４ａがクラッシュしたと判定した時にリセットボタンを押すことがある。また、ユーザ２０２ｂは、オペレーティングシステム１１４ａにソフトウェアリセットコマンドを発行することにより、間接的にリセット信号２０４ｂを生成することもできる。これに応答して、オペレーティングシステム１１４ａは、（例えば、パーティション１０４ａで実行されているすべてのソフトウェアアプリケーションプログラムを終了することにより）ソフトウェアシャットダウンシーケンスを実行することができ、次に、リセット信号線２０４ｂにリセット信号を生成することができる。
【００２８】
エージェント１０８ａが、所定の閾時間よりも長い間、アクティブでなかった場合には、ウォッチドッグタイマ２０２ｃが、リセット信号線２０４ｃにリセット信号を生成する。ウォッチドッグタイマ２０２ｃは、多くの方法で実施することができるが、一実施態様では、ウォッチドッグタイマ２０２ｃは、ゼロの値に初期化され、クロックサイクルごとにインクリメントされるタイマである。エージェント１０８ａは、ウォッチドッグタイマ２０２ｃを定期的にゼロにリセットするプロセッサ２１０を含むことができる。プロセッサ２１０がウォッチドッグタイマ２０２ｃをリセットする頻度は、エージェント１０８ａが正常に挙動している場合に、ウォッチドッグタイマ２０２ｃの値が、所定の特定の閾値に決して到達しないように選択される。ウォッチドッグタイマ２０２ｃの値が、この所定の閾値に到達すると、プロセッサ２１０は、クラッシュした可能性があるか、または、エージェント１０８ａがそれ以外の機能不良を起こしている可能性がある。タイマ２０２ｃが所定の閾値に到達した場合には、ウォッチドッグタイマ２０２ｃは、リセット信号線２０４ｃにリセット信号を生成する。
【００２９】
リセット信号線２０４ａ〜２０４ｃは、ＯＲゲート２０６の入力に接続され、ＯＲゲート２０６の出力は、リセット信号線１１０ａに接続される。エージェント１０８ａは、リセット信号線１１０ａにハイの論理値が検出されると、エージェント１０８ａをリセットするリセット回路（図示せず）を含む。その結果、リセット源２０２ａ〜２０２ｃのいずれかが、リセット信号線２０４ａ〜２０４ｃのいずれかにリセット信号を生成すると、エージェント１０８ａはリセットされることになる。エージェント１０８ａをリセットするのに必要な特定の内部回路は、エージェントごとに変化し得る。このようなリセット回路を実施する技法は、当業者に既知である。
【００３０】
図２に示すリセットアーキテクチャ２００に関する１つの問題は、対応するパーティション１０４ａが、安全でない実行状態（すなわち、エージェント１０８ａをリセットすることにより、パーティション１０４ａがクラッシュを引き起こす可能性があるか、または、確実にクラッシュを引き起こす実行状態）にあっても、リセット源２０２ａ〜２０２ｃのいずれかによって生成されたリセット信号に応答して、エージェント１０８ａのリセットが自動的に引き起こされるということである。その結果、リセット源２０２ａ〜２０２ｃの１つによって起動されたリセットは、このようなクラッシュが起こり得る警告も、このようなクラッシュに備える機会もユーザ２０２ｂに与えることなく、パーティション１０４ａや、さらにはサーバ１００全体をもクラッシュさせることがある。
【００３１】
図１Ｂを参照して、本発明の一実施の形態による分割可能サーバ１５０の機能ブロック図が示されている。従来技術の分割可能サーバ１００と同様に、分割可能サーバ１５０は、主電源領域１０２で動作するパーティション１０４ａ〜１０４ｃを含む。また、分割可能サーバ１５０は、エージェント１５８ａ〜１５８ｃも含む。エージェント１５８ａ〜１５８ｃは、それぞれ、通信リンク１１２ａ〜１１２ｃを介してパーティション１０４ａ〜１０４ｃと通信する。エージェント１５８ａ〜１５８ｃは、エージェント１０８ａ〜１０８ｃ（図１Ａ）と同様に、リセット信号線１６０ａ〜１６０ｃの信号によりリセットされる。さらに、エージェント１５８ａ〜１５８ｃは、それぞれ、割り込み信号線１６２ａ〜１６２ｃの割り込みも受信する。以下にさらに詳細に説明するように、ハードリセットは、リセット信号線１６０ａ〜１６０ｃにリセット信号を伝送することにより、エージェント１５８ａ〜１５８ｃに対して実行することができる一方、「ソフト」リセットは、割り込み信号線１６２ａ〜１６２ｃに適切な割り込み信号を伝送することにより、エージェント１５８ａ〜１５８ｃに対して実行することができる。
【００３２】
図３を参照して、例えば、本発明の一実施の形態によるエージェント１５８ａをリセットするリセットアーキテクチャ３００のブロック図が示されている。リセットアーキテクチャ３００は、他のエージェント１５８ｂ〜１５８ｃにも等しく適用することができる。従来技術のリセットアーキテクチャ２００（図２）のように、リセットアーキテクチャ３００は、ＯＲゲート２０６に接続されたリセット源２０２ａ〜２０２ｃを含む。しかしながら、ＯＲゲート２０６の出力３０８は、エージェント１５８ａに直接接続されるのではなく、リセットタイプセレクタ３０２に接続される。次にさらに詳細に説明するように、リセットタイプセレクタ３０２は、ＯＲゲート２０６の出力３０８からリセット信号を受信すると、エージェント１５８ａが、ハードリセットを実行すべきか、ソフトリセットを実行すべきかを、対応するパーティション１０４ａの現在の実行状態の特性に基づいて判定する。
【００３３】
図４を参照して、方法４００のフローチャートが示されている。この方法４００は、本発明の一実施の形態のリセットタイプセレクタ３０２によって実行され、ＯＲゲート２０６の出力３０８のリセット信号の伝送に応答して、エージェント１５８ａにより実行される動作を制御するものである。
【００３４】
方法４００は、次のように動作する。リセットタイプセレクタ３０２は、ＯＲゲート２０６の出力３０８のリセット信号４０２を受信する（ステップ４０２）。このリセット信号の受信に応答して、リセットタイプセレクタ３０２は、パーティション１０４ａが安全な実行状態にあるかどうかを判定する（ステップ４０４）。
【００３５】
リセットタイプセレクタ３０２は、パーティション１０４ａが安全な実行状態にあるかどうかを、さまざまな方法の任意のもので判定することができる。例えば、一実施の形態では、リセットアーキテクチャ３００は、実行状態識別部３１２を含む。この実行状態識別部３１２は、パーティション１０４ａに接続されて、パーティション１０４ａが安全な実行状態にあるのか、安全でない実行状態にあるのかを判定する。実行状態識別部３１２は、信号線３１４に実行状態信号を出力する。実行状態信号は、バイナリ信号とすることができる。この場合、実行状態信号線３１４の第１のバイナリ値は、パーティション１０４ａが安全な実行状態にあることを示すことができる一方、実行状態信号線３１４の第２のバイナリ値は、パーティション１０４ａが安全な実行状態にないことを示すことができる。実行状態信号３１４は、リセットタイプセレクタ３０２の選択制御入力３０４に提供することができる。したがって、リセットタイプセレクタ３０２は、信号線３０８がデータ入力であり、信号線３１４が選択（アドレス）入力であり、信号線１６０ａおよび１６２ａがデータ出力である多重分離装置の機能を含むことができるか、そうでない場合には、この多重分離装置の機能を実行することができる。
【００３６】
実行状態識別部３１２は、パーティション１０４ａが安全な実行状態にあるかどうかを、さまざまな方法の任意のもので判定することができる。例えば、一実施の形態では、実行状態識別部３１２は、オペレーティングシステム１１４ａがパーティション１０４ａで実行されているかどうかを判定する。オペレーティングシステム１１４ａがパーティション１０４ａで実行されている場合、実行状態識別部３１２は、パーティション１０４ａが安全な実行状態にないと判定する。逆に、オペレーティングシステム１１４ａがパーティション１０４ａで実行されていない場合、実行状態識別部は、パーティション１０４ａが安全な実行状態にあると判定する。実行状態識別部３１２は、パーティション１０４ａが安全な実行状態にあるかどうかを、他の判定基準に基づいて判定することができる。例えば、任意のソフトウェアアプリケーションプログラムがパーティション１０４ａで実行されているかどうか、パーティション１０４ａに任意のオープンネットワーク接続が存在するかどうか、または、パーティション１０４ａが通信リンク１１２ａを介してエージェント１５８ａと通信中であるかどうかによって、判定することができる。
【００３７】
リセットタイプセレクタ３０２は、パーティション１０４ａが安全な実行状態にあると判定すると（ステップ４０４）、リセット信号線１６０ａにリセット信号を出力する（ステップ４０６）。エージェント１５８ａは、リセット入力３０６ａにリセット信号を受信し、それに応答して、図２について上述したように、「ハードリセット」とも呼ばれる従来のリセットを実行する。エージェント１５８ａは、ウォッチドッグタイマ２０２ｃを定期的にリセットすることを含む機能を実行できるプロセッサ３１０を含む。エージェント１５８ａに対するハードリセットは、例えば、プロセッサ３１０と、エージェント１５８ａの他の必要なコンポーネントとをリセットすることができる。パーティション１０４ａは、安全な実行状態にあるので、エージェント１５８ａに対してハードリセットを実行することは、パーティション１０４ａのオペレーションも混乱させないし、残りのパーティション１０４ｂ〜１０４ｃのオペレーションも混乱させない。エージェント１５８ａは、そのリセットを完了すると、正常なオペレーション、および、通信リンク１１２ａを介したパーティション１０４ａとの正常な通信を再開することができる。
【００３８】
リセットタイプセレクタ３０２は、パーティション１０４ａが安全な実行状態にないと判定すると（ステップ４０４）、割り込み信号線１６２ａに割り込み信号を出力して、エージェント１５８ａの「ソフトリセット」を起動する（ステップ４０８）。図５を参照して、方法５００のフローチャートが示されている。この方法５００は、エージェント１５８ａによって実行され、本発明の一実施の形態のソフトリセットを実行するものである。方法５００は、例えば、図４に示す方法４００のステップ４０８を実施することができる。
【００３９】
エージェント１５８ａは、割り込み信号線１６２ａにおいてリセットタイプセレクタ３０２から割り込みを受信する（ステップ５０２）。この割り込みは、エージェント１５８ａにソフトリセットを実行するように指令するので、本明細書では「ソフトリセット」割り込みと呼ばれる。図３に示すように、一実施の形態では、エージェント１５８ａは、割り込み入力３０６ｂを備え、この割り込み入力において、エージェント１５８ａは、信号線１６２ａのソフトリセット割り込みを受信することができる。
【００４０】
エージェント１５８ａは、ソフトリセットを実行することにより、ソフトリセット割り込みを処理する。本明細書で使用されるように、「ソフトリセット」という用語は、エージェント１５８ａのリソースのすべてではなく、それより少ないリソースをリセットすることをいう。「リソース」という用語は、プロセッサおよびメモリのようなハードウェアリソースと、オペレーティングシステムおよびアプリケーションプログラムのようなソフトウェアリソースとの双方を含む。ソフトリセットを実行する技法の例については、以下にさらに詳細に説明する。
【００４１】
一実施の形態では、エージェント１５８ａは、所定の最低の優先順位から所定の最高の優先順位の範囲の優先順位を有する割り込みを処理するように構成される。リセットタイプセレクタ３０２により割り込み信号線１６２ａに生成された割り込みは、最高の割り込み優先順位を有することができる。その結果、エージェント１５８ａが割り込みを処理できないほど完全に無効にされていない限り、リセットタイプセレクタ３０２によって生成された割り込みは、エージェント１５８ａによって処理される他の任意の割り込み、および、エージェント１５８ａによって実行される他の任意のアクティビティに優先することが保証される。
【００４２】
本発明の一実施の形態では、エージェント１５８ａは、エージェント−パーティションインターフェース３１６およびバックアップインターフェースコントローラ３１８を含む。エージェント−パーティションインターフェース３１６は、パーティション１０４ａとエージェント１５８ａとの間の通信を仲介する。エージェント１５８ａの正常なオペレーション中では、プロセッサ３１０は、インターフェースコントローラの機能を実行して、エージェント−パーティションインターフェース３１６を通じてパーティション１０４ａと通信する一方、バックアップインターフェースコントローラ３１８は、休止状態にある。バックアップインターフェースコントローラ３１８は、例えば、ソフトウェア、ファームウェア、特注設計の回路、またはそれらの任意の組み合わせにより実施することができる。
【００４３】
一実施の形態では、バックアップインターフェースコントローラ３１８は、基本通信機能を実行して、エージェント−パーティションインターフェース３１６を通じてパーティション１０４ａと通信することができる。一実施の形態では、エージェント１５８ａは、割り込み入力３０６ａにおいてリセットタイプセレクタ３０２からソフトリセット割り込みを受信すると、プロセッサ３１０をリセットすることにより、その割り込みを処理する（ステップ５０４）。しかしながら、エージェント１５８ａは、例えばバックアップインターフェースコントローラ３１８などの他の内部コンポーネントをリセットしない。バックアップインターフェースコントローラ３１８は、プロセッサ３１０がリセットを開始すると、パーティション−エージェントインターフェース３１６の制御を引き継いで、エージェント１５８ａとパーティション１０４ａとの間の通信を制御する（ステップ５０６）。
【００４４】
本発明の一実施の形態では、バックアップインターフェースコントローラ３１８は、パーティション１０４ａのクラッシュを防止するのに必要な最小限の通信機能を実行することができる。例えば、プロセッサ３１０がリセット中である間に、パーティション１０４ａが、エージェント１５８ａにメッセージを伝送することにより、通信リンク１１２ａを介したエージェント１５８ａとの通信を開始した場合、バックアップインターフェースコントローラ３１８は、肯定応答メッセージ（ＡＣＫ）によって応答することができ、かつ／または、パーティション１０４ａが所定の時間を待ってからエージェント１５８ａとの通信の再開を試みるべきであることを示すメッセージによって応答することができる。当業者は、通信リンク１１２ａを介した通信に使用される特定の通信プロトコルに従って、このような通信をどのように実施するかをよく理解している。
【００４５】
バックアップインターフェースコントローラ３１８は、パーティション１０４ａによって開始された通信に応答することにより、適用可能な通信プロトコルの要件に準拠することができ、それによって、障害の発生を防止することができる。上述したように、オペレーティングシステム１１４ａは、例えば、エージェント１５８ａが通信リンク１１２ａを介した通信に常に利用可能であると予想するように設計され得る。パーティション１０４ａによって開始された通信が、所定の時間内にエージェント１５８ａによって応答されない場合、オペレーティングシステム１１４ａは、クラッシュすることがある。バックアップインターフェースコントローラ３１８は、エージェント１５８ａが自身のための実質的な通信に従事していないが、通信リンク１１２ａに物理的にまだ接続されており、クラッシュしていないことを示すメッセージによってオペレーティングシステム１１４ａに応答することにより、このようなクラッシュを避けることができる。
【００４６】
プロセッサ３１０は、リセットを終了すると（ステップ５０８）、バックアップインターフェースコントローラ３１８からインターフェース３１６の制御を取り戻すことができる（ステップ５１０）。ステップ６０２で受信されるリセット信号の生成を引き起こした問題が、プロセッサ３１０をリセットするプロセスによって解決されているものと仮定すると、プロセッサ３１０は、通信リンク１１２ａを介したパーティション１０４ａとの通信の制御を再開することができる。
【００４７】
要約すると、本発明の一実施の形態では、パーティション１０４ａが安全でない実行状態にある間にリセットタイプセレクタ３０２に伝送されるあらゆるリセット信号を、ハイレベルの割り込みに置き換えることができる。リセット信号ではないこの割り込みが、エージェント１５８ａに伝送される。これに応答して、エージェント１５８ａは、「ソフト」リセットを実行することができる。このソフトリセットにおいて、エージェント１５８ａは、ある特定のタスクまたはコンポーネント（例えばプロセッサ３１０など）を再ブートまたは再起動する。ただし、この再ブートまたは再起動は、エージェント１５８ａとの通信を試みる他のあらゆるコンポーネント（例えばパーティション１０４ａなど）に見えないように行われる。
【００４８】
さらに、図３および図４について先ほど説明した技法を使用すると、パーティション１０４ａ〜１０４ｃのいずれもクラッシュすることなく、かつ、個々のパーティション１０４ａ〜１０４ｃのいずれもリセットする必要なく、あるいはコンピュータシステム１５０全体もリセットする必要なく、エージェント１５８ａを（「ソフト」リセットを使用して）リセットすることができる。
【００４９】
状況によっては、ソフトリセットが、エージェント１５８ａを望ましくない状態から正常な動作状態に移行させるのに十分でないことがある。このような状態の一例として、エージェントの内部プロセッサ３１０が、何らかの理由により、エージェント−パーティションインターフェース３１６と通信できない状態がある。このような状況では、エージェント１５８ａは、ハードリセットを必要とし得る。以下では、サーバ１５０のユーザに、このようなハードリセットに備える機会を与えた後に、当該ユーザがこのようなハードリセットを起動できる技法の例について開示する。このようなハードリセットに備える機会としては、例えば、データを保存すること、および、実行中のソフトウェアアプリケーションをパーティション１０４ａから別のパーティション１０４ｂ〜１０４ｃの一方に転送することなどがある。その後、エージェント１５８ａ、および、場合によってはパーティション１０４ａ全体に対して、ハードリセット（すなわち、電源の切断および電源の投入）を実行することができ、エージェント１５８ａは、正しい初期状態で再起動することができる。このようなハードリセットは、パーティションで実行されているあらゆるソフトウェアプロセスを終了するが、これは、問題にしなくてよい。その理由は、ハードリセット時には、必要なあらゆるソフトウェアプロセスを、終了するかまたは別のパーティションに転送する機会、または、他の適切な動作を行う機会がユーザに与えられているからである。
【００５０】
図６を参照して、方法６００のフローチャートが示されている。この方法６００は、サーバ１５０によって実行されて、本発明の一実施の形態のエージェント１５８ａおよびパーティション１０４ａに対してハードリセットを実行するものである。方法６００は、ハードリセットが必要とされる一組の状況につながり得る一連のイベントと、このようなハードリセットを実行するために行われる動作との双方を示すように意図されている。
【００５１】
リセットアーキテクチャ３００は、リセット信号を受信する（ステップ６０２）。一例として、ユーザ２０２ｂ（図２）は、エージェント１５８ａが明らかにクラッシュしているか、または、それ以外で応答しないか、もしくは、最適でない挙動であることに気付いた後、サーバ１５０のハードウェアリセットボタンを押し、この時に、リセットアーキテクチャ３００は、ユーザ２０２ｂからのリセット信号をリセット信号線２０４ｂで受信するものと仮定する。例えば、ユーザ２０２ｂは、パーティション１０４ａがエージェント１５８ａと通信できないことに気付くことがある。ユーザ２０２ｂは、このような状況に気付くと、パーティション１０４ａが安全な実行状態にあるのか、安全でない実行状態にあるのかを判定するための容易に利用可能な方法を持たないことがある。それどころか、ユーザ２０２は、単に、エージェント１５８ａをリセットする必要があることを確認して、それに応じてハードウェアリセットボタンを押すだけである。
【００５２】
図１Ａについて上述した従来技術のシステムでは、このような動作は、パーティション１０４ａが安全でない実行状態にある場合、パーティション１０４ａまたはサーバ１００全体のクラッシュを引き起こすことがある。しかしながら、本発明のさまざまな実施の形態では、図４について上述したように、パーティション１０４ａが安全でない実行状態にある場合、エージェント１５８ａに対してソフトリセットを実行することにより、このようなクラッシュは回避される。一例として、パーティション１０４ａが安全でない実行状態にあり、したがって、ソフトリセットがエージェント１５８ａに対して実行されると仮定する（ステップ６０４）。
【００５３】
ソフトリセットが完了すると、エージェント１５８ａが正常な動作状態にあるかどうかの判定が行われる（ステップ６０６）。この判定は、例えば、エージェント１５８ａを監視する回路および／またはソフトウェアによって自動的に行うことができる。しかしながら、本発明の一実施の形態では、ユーザ２０２ｂが、ステップ６０６で実行される判定を行う。例えば、エージェントのソフトリセットが完了時に、パーティション１０４ａが、ソフトリセット前に示していたのと同じ最適でない挙動または他の最適でない挙動を示し続けている場合、ユーザ２０２ｂは、エージェント１５８ａが正常な動作状態にないと判定することができる。
【００５４】
エージェント１５８ａが正常な動作状態にあると判定されると（ステップ６０６）、方法６００は終了し、ユーザ２０２ｂは、リセットを追加して実行することなく、パーティション１０４ａを使用し続ける。
【００５５】
一方、エージェント１５８ａが、正常な動作状態にないと判定されると、パーティション１０４ａを安全な実行状態に移行させることができる（ステップ６０８）。上述したように、安全な実行状態の一例は、ソフトウェアプログラムがパーティション１０４ａで実行されていない実行状態である。自動的に（例えば、オペレーティングシステム１１４ａへのソフトウェアシャットダウンコマンドの発行により）またはユーザ２０２ｂによって、パーティション１０４ａを安全な実行状態に移行させることができる。ユーザ２０２ｂは、例えば、パーティション１０４ａで実行されているソフトウェアプログラムを他のパーティション１０４ｂ〜１０４ｃに転送することができる。このような転送を実行することにより、このようなソフトウェアプログラムは、中断なく、実行を継続することができる。その後、ユーザ２０２ｂは、ソフトウェアシャットダウンコマンドをオペレーティングシステム１１４ａに発行することにより、オペレーティングシステム１１４ａを終了することができ、それによって、パーティション１０４ａを安全な実行状態に移行させることができる。
【００５６】
その後、ユーザ２０２ｂは、例えば、ハードウェアリセットボタンを押すことにより、別のリセット信号をリセット信号線２０４ｂに生成することができる。このリセット信号が、リセットタイプセレクタ３０２によって受信されると（図４、ステップ４０２）、リセットタイプセレクタ３０２は、パーティション１０４ａが安全な実行状態にあると判定し（ステップ４０４）、リセット信号線１６０ａにリセット信号を出力する（ステップ４０６）。それによって、エージェント１５８ａのハードウェアリセットの実行が引き起こされる（図６、ステップ６１０）。パーティション１０４ａは安全な実行状態にあるので、このようなハードリセットは、パーティション１０４ａのクラッシュを引き起こさない。
【００５７】
本発明の利点として、以下の１つまたは２つ以上のものが挙げられる。
【００５８】
上述した技法を使用すると、コンピュータシステムのエージェントを、そのコンピュータシステムの対応するパーティションのクラッシュを引き起こすことなく、リセットすることができる。この機能は、決してクラッシュしないものと予想され、かつ、信頼されている高可用性システム、例えばサーバなどにとって極めて重要である。この機能は、１つのパーティションのクラッシュが他のパーティションのクラッシュを引き起こすことがあり、それによって、事実上、複数のサーバのクラッシュが同時に引きこされることがある分割可能サーバにとって、とりわけ、極めて重要である。
【００５９】
上述した技法の関連した利点は、対応するパーティションが、通常では、エージェントのリセットによりパーティションのクラッシュを引き起こす実行状態にある場合であっても、上述した技法によると、エージェントをリセットできることである。この機能は、ハードリセットではなく、ソフトリセットを使用して、エージェントをリセットすることにより可能にされる。この特徴は有益である。その理由は、対応するパーティションが安全でない実行状態にあり、かつ、ユーザが、そのパーティションを安全な実行状態に移行させることができない状況のもとでは、エージェントが無効にされるか、または、それ以外にリセットを必要とすることがあるからである。例えば、パーティションは、終了できない重要なソフトウェアアプリケーション、または、それ以外に中断できない重要なソフトウェアアプリケーション（例えば、サーバのソフトウェアなど）を実行していることがある。パーティションのクラッシュを引き起こすことなくソフトリセットを使用してエージェントをリセットできる機能により、パーティションのオペレーションを中断することなく、エージェントを正常な動作状態に戻すことができる。
【００６０】
上記に開示した技法の別の利点は、ソフトリセットが、常に、エージェントを正常な動作状態に戻すのに十分であるとは限らないという認識を、当該技法が反映しており、それにより、このような状況では、エージェントに対してハードリセットを実行することが許容されるということである。一方、ハードリセットが、エージェントに対して実行される場合であっても、本明細書に開示した技法によると、ユーザは、ハードリセットを実行する前に、まず、対応するパーティションを安全な実行状態に移行させることができる。それによって、パーティションのクラッシュおよび本明細書で説明した他の問題を避けることができる。
【００６１】
本明細書に開示したリセットアーキテクチャ３００の１つの利点は、当該リセットアーキテクチャ３００が、従来技術のリセットアーキテクチャ２００に対して内部変更を行うことにより実施でき、この内部変更が、ユーザ２０２ｂにも見えず、サーバ１５０の他のコンポーネントにも見えないように行われるということである。例えば、図３に示すように、リセット源２０２ａ〜２０２ｃは、リセットアーキテクチャ３００および従来技術のリセットアーキテクチャ２００（図２）の双方において同じようにＯＲゲート２０６に接続される。同様に、パーティション１０４ａは、リセットアーキテクチャ３００および従来技術のリセットアーキテクチャ２００の双方において同じように通信リンク１１２ａを介してエージェント１５８ａに接続される。その結果、本明細書に説明した実施の形態の特徴は、リセットアーキテクチャ３００内だけで実施することができる。すなわち、サーバ１５０の残りの部分を変更する必要なく、実施することができる。これは、リセットアーキテクチャ３００の設計および実施の双方を簡素化し、リセット源２０２ａ〜２０２ｃ（ユーザ２０２ｂを含む）が、従来技術のリセットアーキテクチャ２００とやり取りするのと同じように、リセットアーキテクチャ３００とやり取りすることを可能にする。例えば、ユーザ２０２ｂは、エージェント１５８ａがクラッシュしているか、または、それ以外でリセットを必要とすることに気付くと、従来技術と同じようにサーバ１５０のハードウェアリセットボタンを押すことができる。しかしながら、ユーザ２０２ｂに知られることなく、リセットアーキテクチャ３００は、ハードリセットではなく、ソフトリセットをエージェント１５８ａに対して自動的に実行することができる。リセットアーキテクチャ３００をこのように構成することにより、サーバ１５０のオペレーションは、ユーザの観点から簡素化され、変更されたサーバ１５０を利用するために受ける必要のある、ユーザ２０２ｂの再教育する量が削減される。
【００６２】
本発明について、特定の実施の形態の観点で上述してきたが、上記実施の形態は、例示として提供されたものにすぎず、本発明の範囲を限定するものでもなく、規定するものでもないことが理解されるべきである。他のさまざまな実施の形態も、以下のものが含まれるが、これらに限定されるものではなく、添付の特許請求項の範囲内で存在する。
【００６３】
「エージェント」という用語は、本明細書では、リセットすることができるコンピュータシステムのあらゆるコンポーネント（または、コンポーネントの組）をいうために使用される。コンピュータシステムの複数のエージェントは、単一のリセット源または複数のリセット源からリセットすることができる。エージェントには、例えば、プロセッサ、対応するパーティションを監視して、そのパーティションの状態についてのデータを当該パーティションに戻す管理プロセッサ、またはそれ以外の回路が含まれ得る。「エージェント」という用語は、ハードウェア、ファームウェア、ソフトウェア、またはそれらの任意の組み合わせの組を説明するために使用することができる。「エージェント」および「パーティション」という用語は、上記例では、互いに対照的に使用されているが、パーティション自体をエージェントとみなすことができる。したがって、マルチパーティションコンピュータシステムは、マルチエージェントコンピュータシステムの一例である。
【００６４】
図１Ｂに示すサーバ１５０は、１対１の対応で配置された３つのパーティション１０４ａ〜１０４ｃおよび３つのエージェント１５８ａ〜１５８ｃを含むが、これは、本発明を限定するものではない。それどころか、本明細書に開示した技法は、任意の個数のエージェントおよび／または任意の個数のパーティションを任意の構成で含むシステムに適用することができる。例えば、本明細書に開示した技法は、単一のパーティションのみを有するコンピュータシステムに適用することができる。さらに、本明細書に開示した技法は、パーティションおよびエージェントが通信リンクを介して互いに通信するコンピュータシステムに限定されるものではない。それどころか、他の構成も、本発明の範囲内に入る。例えば、本明細書に開示した技法は、エージェントがパーティション内に含まれるシステム、または、複数のエージェントが互いに接続されて通信するシステムに適用することができる。さらに、本明細書に開示した技法は、すべてのエージェントが単一の物理的なハウジング内に存在するコンピュータシステムに限定されるものではない。それどころか、本明細書に開示した技法は、１つまたは２つ以上のエージェントが、シリアル／パラレルケーブル、ネットワーク接続、または他の接続によってコンピュータシステムに接続されるコンピュータシステムに適用することができる。
【００６５】
システム１５０は、本明細書では「サーバ」として説明されるが、本明細書に開示した技法は、クライアント−サーバアーキテクチャで使用されるコンピュータシステムと共に使用することに限定されるものでもなく、それ以外にサーバとみなされるコンピュータシステムと共に使用することに限定されるものでもない。それどころか、本明細書に開示した技法は、あらゆる種類のコンピュータシステムに適用することができる。
【００６６】
上述した例では、ソフトリセットは、エージェント１５８ａのプロセッサ３１０をリセットすることにより、エージェント１５８ａに対して実行されるが、ソフトリセットは、本発明によると、それ以外の方法で実行することができる。一般に、ソフトリセットは、エージェントのコンポーネントの任意のサブセットをリセットすることを伴う。エージェントのコンポーネントは、さまざまな方法のいずれでもリセットすることができ、「リセット」という用語は、コンポーネントにハードウェアリセット信号を供給することにより、そのコンポーネントに対してハードリセットを実行することに限定されるものではない。それどころか、「リセット」という用語は、より包括的に、所定の初期状態にコンポーネントを移行させることをいう。例えば、デジタルメモリは、その内容をクリアすることによりリセットすることができるが、このリセットは、たとえ、その内容をクリアすることが、特定のハードウェアリセット信号をメモリに供給することを伴わず、メモリ内の特定のリセット回路を起動することを伴わない場合であっても行うことができる。
【００６７】
３つのリセット源２０２ａ〜２０２ｃについて上述したが、これは、本発明を限定するものではない。それどころか、任意の種類の任意の個数のリセット源が任意の組み合わせで存在できる。さらに、ＯＲゲート２０６は、一例として開示されているにすぎない。より包括的に、リセット源を任意の方法で組み合わせることができ、かつ／または、選択することができる。
【００６８】
本明細書で説明したエレメントおよびコンポーネントは、別のコンポーネントにさらに分割することもできるし、それらを共に結合して、同じ機能を実行する、より少ないコンポーネントを形成することもできる。例えば、ＯＲゲート、リセットタイプセレクタ３０２、および実行状態識別部３１２、またはそれらの任意のサブセットをさらに組み合わせて、同じ機能を実行する、より少ない個数のコンポーネントを形成することができる。同様に、パーティション−エージェントインターフェース３１６およびバックアップインターフェースコントローラ３１８を単一のコンポーネントに組み合わせることができる。
【００６９】
上述した技法は、例えば、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせにより実施することができる。例えば、リセットタイプセレクタ３０２、実行状態識別部３１２、バックアップインターフェースコントローラ３１８、およびパーティション−エージェントインターフェース３１６は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせにより実施することができる。上述した技法は、プログラミング可能なコンピュータで実行される１つまたは２つ以上のコンピュータプログラムにより実施することができる。このプログラミング可能なコンピュータは、プロセッサ、プロセッサによって読み出し可能な記憶媒体（例えば、揮発性メモリおよび不揮発性メモリ、ならびに／または記憶エレメントが含まれる）、少なくとも１つの入力装置、および少なくとも１つの出力装置を含む。プログラムコードを入力に適用し、入力装置を使用して入力し、上述した機能を実行して、出力を生成することができる。この出力は、１つまたは２つ以上の出力装置に供給することができる。
【００７０】
添付の特許請求の範囲の範囲内の各コンピュータプログラムは、任意のプログラミング言語、例えば、アセンブリ言語、機械語、ハイレベルの手続き的プログラミング言語、またはオブジェクト指向プログラミング言語により実施することができる。プログラミング言語は、例えば、コンパイル型のプログラミング言語であってもよいし、インタープリット型のプログラミング言語であってもよい。
【００７１】
このような各コンピュータプログラムは、コンピュータプロセッサによる実行用に、機械読み取り可能記憶装置に有形物として具体化されたコンピュータプログラム製品により実施することができる。本発明の方法のステップは、コンピュータ読み取り可能媒体上に有形物として具体化されたプログラムを実行するコンピュータプロセッサによって実行され、入力の動作および出力の生成を行うことにより、本発明の機能を実行することができる。適切なプロセッサには、一例として、汎用マイクロプロセッサおよび専用マイクロプロセッサの双方が含まれる。一般に、プロセッサは、読み出し専用メモリおよび／またはランダムアクセスメモリから命令およびデータを受け取る。コンピュータプログラムの命令を有形物として具体化するのに適した記憶装置には、例えば、あらゆる形態の不揮発性メモリが含まれ、半導体メモリ装置、磁気ディスク、光磁気ディスク、およびＣＤ−ＲＯＭといったものが含まれる。半導体メモリ装置には、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリ装置が含まれる。磁気ディスクとしては、例えば、内部ハードディスクおよびリムーバブルディスクがある。上記のいずれも、特別設計されたＡＳＩＣ（特定用途向け集積回路）によって補うこともできるし、そのＡＳＩＣに実装することもできる。また、コンピュータは、一般に、内部ディスク（図示せず）またはリムーバブルディスクのような記憶媒体からもプログラムおよびデータを受け取ることができる。これらのエレメントは、従来のデスクトップコンピュータまたはワークステーションコンピュータにも見られ、さらには、本明細書で説明した方法を実施するコンピュータプログラムを実行するのに適した他のコンピュータにも見られる。これらのコンピュータは、任意のデジタル印刷エンジンもしくはマーキングエンジン、表示モニタ、またはカラーもしくはグレイスケールのピクセルを紙、フィルム、表示スクリーン、もしくは他の出力媒体に生成できる他のラスタ出力装置と共に使用することができる。
【図面の簡単な説明】
【００７２】
【図１Ａ】従来技術の分割可能サーバの機能ブロック図。
【図１Ｂ】本発明の一実施の形態による分割可能サーバの機能ブロック図。
【図２】図１Ａのサーバに使用される従来技術のリセットアーキテクチャの機能ブロック図。
【図３】本発明の一実施の形態による図１Ｂのサーバに使用されるリセットアーキテクチャの機能ブロック図。
【図４】本発明の第１の実施の形態による図３のエージェントをリセットする方法のフローチャート。
【図５】本発明の一実施の形態による図３のエージェントに対してソフトリセットを実行する方法のフローチャート。
【図６】本発明の第２の実施の形態による図３のエージェントをリセットする方法のフローチャート。
【図１Ａ】
2004272899.tif 000003
【図１Ｂ】
2004272899.tif 000004
【図２】
2004272899.tif 000005
【図３】
2004272899.tif 000006
【図４】
2004272899.tif 000007
【図５】
2004272899.tif 000008
【図６】
2004272899.tif 000009