(57)【特許請求の範囲】
【請求項１】
複数のプロセッサを備えたコンピュータシステムにおいて、
前記複数のプロセッサのうちの一のプロセッサが、
他のプロセッサによる前記コンピュータシステムの起動および再起動を監視して、起動時および再起動時に行われる複数の所定の試験のうちのいずれかの試験で障害が発生したか否かを判断する起動監視手段と、
前記起動監視手段が、前記コンピュータシステムの起動時および再起動時に行われる複数の所定の試験のうちのいずれかの試験で障害が発生したと判断した場合に、障害に対して行う対処処理を行う障害解析手段とを含み、
前記コンピュータシステムの起動時および再起動時に行う複数の所定の試験の内容と、前記起動時に行われる複数の所定の試験のうち、障害が発生した試験を示すテストコードと、前記再起動時に障害が発生した試験に応じた障害に対して行う対処処理の内容を示す情報とを記憶する記憶手段を備え、
前記障害解析手段は、前記記憶手段が記憶している前記再起動時に障害が発生した試験に応じた障害に対して行う対処処理の内容を示す情報と、前記記憶手段が記憶しているテストコードと、前記再起動時に障害が発生した試験とに応じて障害に対して行う対処処理を行い、
前記障害解析手段は、前記起動監視手段がコンピュータシステムの起動時に行われる複数の所定の試験のうちのいずれかの試験で障害が発生したと判断した場合に、障害が発生した試験を示すテストコードを前記記憶手段に記憶させ、前記コンピュータシステムの起動を行ったプロセッサを切り離して、さらに他のプロセッサに前記コンピュータシステムを再起動させる
ことを特徴とするコンピュータシステム。
【請求項２】
記憶手段は、再起動時に発生した障害に対して行う対処処理を示す情報であって、前記再起動時に障害が発生した試験に応じて、コンピュータシステムが備えるプラットフォームに搭載されている複数のモジュールのうちのどのモジュールを切り離すのかを示す情報を予め記憶し、
障害解析手段は、起動監視手段が前記コンピュータシステムの再起動時に行われる複数の所定の試験のうちのいずれかの試験で障害が発生したと判断した場合において、前記記憶手段が記憶しているテストコードが示す起動時に障害が発生した試験と、前記再起動時に障害が発生した試験とが同じ試験である場合に、前記記憶手段が記憶している前記情報に従って、前記コンピュータシステムが備えるプラットフォームに搭載されている複数のモジュールのうちの前記再起動時に障害が発生した試験に応じたモジュールを切り離す処理を行う
請求項１記載のコンピュータシステム。
【請求項３】
一のプロセッサが含む障害解析手段は、コンピュータシステムが備えるプラットフォームに搭載されている複数のモジュールのうちの再起動時に障害が発生した試験に応じたモジュールを切り離す処理を行った後で、他のプロセッサにコンピュータシステムを再起動させる
請求項２記載のコンピュータシステム。
【請求項４】
障害解析手段は、起動監視手段がコンピュータシステムの再起動時に行う複数の所定の試験のうちのいずれかの試験で障害が発生したと判断した場合において、記憶手段が記憶しているテストコードが示す起動時に障害が発生した試験と、前記再起動時に障害が発生した試験とが異なる試験である場合に、前記再起動を行ったプロセッサに前記コンピュータシステムの動作を停止させる
請求項１から請求項３のうちいずれか１項記載のコンピュータシステム。
【請求項５】
複数のプロセッサを備えたコンピュータシステムの起動監視方法において、
前記複数のプロセッサのうちの一のプロセッサが、
他のプロセッサによる前記コンピュータシステムの起動および再起動を監視して、起動時および再起動時に行われる複数の所定の試験のうちのいずれかの試験で障害が発生したか否かを判断する起動監視ステップと、
前記起動監視ステップで、前記コンピュータシステムの起動時および再起動時に行われる複数の所定の試験のうちのいずれかの試験で障害が発生したと判断した場合に、障害に対して行う対処処理を行う障害解析ステップとを含み、
前記障害解析ステップで、前記一のプロセッサが、前記起動時に障害が発生した試験と、前記再起動時に障害が発生した試験と、記憶手段が記憶している前記再起動時に障害が発生した試験に応じた障害に対して行う対処処理の内容を示す情報とに応じて障害に対して行う対処処理を行い、
前記起動監視ステップで、コンピュータシステムの起動時に行われる複数の所定の試験のうちのいずれかの試験で障害が発生したと判断した場合に、前記障害解析ステップで、障害が発生した試験を示すテストコードを前記記憶手段に記憶させ、前記コンピュータシステムの起動を行ったプロセッサを切り離して、さらに他のプロセッサに前記コンピュータシステムを再起動させる
ことを特徴とする起動監視方法。
【請求項６】
一のプロセッサが、起動監視ステップでコンピュータシステムの再起動時に行われる複数の所定の試験のうちのいずれかの試験で障害が発生したと判断した場合であって、記憶手段が記憶しているテストコードが示す起動時に障害が発生した試験と、前記再起動時に障害が発生した試験とが同じ試験である場合に、前記記憶手段が記憶している再起動時に障害が発生した試験に応じて前記コンピュータシステムが備えるプラットフォームに搭載されている複数のモジュールのうちのどのモジュールを切り離すのかを示す情報に従って、前記一のプロセッサが、障害解析ステップで、前記コンピュータシステムが備えるプラットフォームに搭載されている複数のモジュールのうちの前記再起動時に障害が発生した試験に応じたモジュールを切り離す処理を行う
請求項５記載の起動監視方法。
【請求項７】
一のプロセッサが、障害解析ステップで、コンピュータシステムが備えるプラットフォームに搭載されている複数のモジュールのうちの再起動時に障害が発生した試験に応じたモジュールを切り離す処理を行った後で、他のプロセッサにコンピュータシステムを再起動させる
請求項６記載の起動監視方法。
【請求項８】
一のプロセッサが、起動監視ステップにおいて、コンピュータシステムの再起動時に行う複数の所定の試験のうちのいずれかの試験で障害が発生したと判断した場合であって、記憶手段が記憶しているテストコードが示す起動時に障害が発生した試験と、前記再起動時に障害が発生した試験とが異なる試験である場合に、前記一のプロセッサが、障害解析ステップで、前記再起動を行ったプロセッサに前記コンピュータシステムの動作を停止させる
請求項５から請求項７のうちいずれか１項記載の起動監視方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセッサを備えたコンピュータシステムおよび起動監視方法に関し、特に、起動時および再起動時の障害に対して行う対処処理を行うコンピュータシステムおよび起動監視方法に関する。
【背景技術】
【０００２】
複数のプロセッサを備えたコンピュータシステムでは、起動中に発生したストール障害（起動停止障害）の処理に、ストール監視手段によるウォッチドッグタイマ等の方法が用いられている。
【０００３】
具体的には、ストール監視手段は、ブートストラッププロセッサ（起動用プロセッサ。以下、ＢＳＰという。）のストール障害を検出した場合に、ＢＳＰが原因の障害であると判断して、ＢＳＰを切り離して再起動させるという障害処理を行う。
【０００４】
特許文献１には、複数のプロセッサを備えたコンピュータシステムにおいて、サービスプロセッサを用いて、起動時に発生したストール障害の原因がプロセッサであるのか、またはプラットフォームであるのかの判断を行う方法が記載されている。
【０００５】
【特許文献１】特開２００５−１８４６２号公報  （段落００１９〜００４３、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ストール障害が発生した場合に、コンピュータシステムが停止している時間を短くするために、障害に対して行う対処処理は迅速に行われることが好ましい。
【０００７】
そこで、本発明は、複数のプロセッサを備えたコンピュータシステムにおいて、起動時等の障害に対して行う対処処理を迅速に行うことができるコンピュータシステムおよび起動監視方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明によるコンピュータシステムは、複数のプロセッサを備えたコンピュータシステムであって、複数のプロセッサのうちの一のプロセッサが、他のプロセッサによるコンピュータシステムの起動および再起動を監視して、起動時および再起動時に行われる複数の所定の試験のうちのいずれかの試験で障害が発生したか否かを判断する起動監視手段と、起動監視手段が、コンピュータシステムの起動時および再起動時に行われる複数の所定の試験のうちのいずれかの試験で障害が発生したと判断した場合に、障害に対して行う対処処理を行う障害解析手段とを含み、コンピュータシステムの起動時および再起動時に行う複数の所定の試験の内容と、起動時に行われる複数の所定の試験のうち、障害が発生した試験を示すテストコードと、再起動時に障害が発生した試験に応じた障害に対して行う対処処理の内容を示す情報とを記憶する記憶手段を備え、障害解析手段は、記憶手段が記憶している再起動時に障害が発生した試験に応じた障害に対して行う対処処理の内容を示す情報と、記憶手段が記憶しているテストコードと、再起動時に障害が発生した試験とに応じて障害に対して行う対処処理を行い、障害解析手段は、起動監視手段がコンピュータシステムの起動時に行われる複数の所定の試験のうちのいずれかの試験で障害が発生したと判断した場合に、障害が発生した試験を示すテストコードを記憶手段に記憶させ、コンピュータシステムの起動を行ったプロセッサを切り離して、さらに他のプロセッサにコンピュータシステムを再起動させることを特徴とする。
【００１０】
記憶手段は、再起動時に発生した障害に対して行う対処処理を示す情報であって、再起動時に障害が発生した試験に応じて、コンピュータシステムが備えるプラットフォームに搭載されている複数のモジュールのうちのどのモジュールを切り離すのかを示す情報を予め記憶し、障害解析手段は、起動監視手段がコンピュータシステムの再起動時に行われる複数の所定の試験のうちのいずれかの試験で障害が発生したと判断した場合において、記憶手段が記憶しているテストコードが示す起動時に障害が発生した試験と、再起動時に障害が発生した試験とが同じ試験である場合に、記憶手段が記憶している情報に従って、コンピュータシステムが備えるプラットフォームに搭載されている複数のモジュールのうちの再起動時に障害が発生した試験に応じたモジュールを切り離す処理を行ってもよい。
【００１１】
一のプロセッサが含む障害解析手段は、コンピュータシステムが備えるプラットフォームに搭載されている複数のモジュールのうちの再起動時に障害が発生した試験に応じたモジュールを切り離す処理を行った後で、他のプロセッサにコンピュータシステムを再起動させてもよい。
【００１２】
障害解析手段は、起動監視手段がコンピュータシステムの再起動時に行う複数の所定の試験のうちのいずれかの試験で障害が発生したと判断した場合において、記憶手段が記憶しているテストコードが示す起動時に障害が発生した試験と、再起動時に障害が発生した試験とが異なる試験である場合に、再起動を行ったプロセッサにコンピュータシステムの動作を停止させてもよい。
【００１３】
本発明による起動監視方法は、複数のプロセッサを備えたコンピュータシステムの起動監視方法であって、複数のプロセッサのうちの一のプロセッサが、他のプロセッサによるコンピュータシステムの起動および再起動を監視して、起動時および再起動時に行われる複数の所定の試験のうちのいずれかの試験で障害が発生したか否かを判断する起動監視ステップと、起動監視ステップで、コンピュータシステムの起動時および再起動時に行われる複数の所定の試験のうちのいずれかの試験で障害が発生したと判断した場合に、障害に対して行う対処処理を行う障害解析ステップとを含み、障害解析ステップで、一のプロセッサが、起動時に障害が発生した試験と、再起動時に障害が発生した試験と、記憶手段が記憶している再起動時に障害が発生した試験に応じた障害に対して行う対処処理の内容を示す情報とに応じて障害に対して行う対処処理を行い、起動監視ステップで、コンピュータシステムの起動時に行われる複数の所定の試験のうちのいずれかの試験で障害が発生したと判断した場合に、障害解析ステップで、障害が発生した試験を示すテストコードを記憶手段に記憶させ、コンピュータシステムの起動を行ったプロセッサを切り離して、さらに他のプロセッサにコンピュータシステムを再起動させることを特徴とする。
【００１５】
一のプロセッサが、起動監視ステップでコンピュータシステムの再起動時に行われる複数の所定の試験のうち、いずれかの試験で障害が発生したと判断した場合であって、記憶手段が記憶しているテストコードが示す起動時に障害が発生した試験と、再起動時に障害が発生した試験とが同じ試験である場合に、記憶手段が記憶している再起動時に障害が発生した試験に応じてコンピュータシステムが備えるプラットフォームに搭載されている複数のモジュールのうちのどのモジュールを切り離すのかを示す情報に従って、一のプロセッサが、障害解析ステップで、コンピュータシステムが備えるプラットフォームに搭載されている複数のモジュールのうちの再起動時に障害が発生した試験に応じたモジュールを切り離す処理を行ってもよい。
【００１６】
一のプロセッサが、障害解析ステップで、コンピュータシステムが備えるプラットフォームに搭載されている複数のモジュールのうちの再起動時に障害が発生した試験に応じたモジュールを切り離す処理を行った後で、他のプロセッサにコンピュータシステムを再起動させてもよい。
【００１７】
一のプロセッサが、起動監視ステップにおいて、コンピュータシステムの再起動時に行う複数の所定の試験のうちのいずれかの試験で障害が発生したと判断した場合であって、記憶手段が記憶しているテストコードが示す起動時に障害が発生した試験と、再起動時に障害が発生した試験とが異なる試験である場合に、一のプロセッサが、障害解析ステップで、再起動を行ったプロセッサにコンピュータシステムの動作を停止させてもよい。
【発明の効果】
【００１９】
本発明によれば、障害解析手段が、起動時に障害が発生した試験と再起動時に障害が発生した試験とに応じた障害に対する対処処理を行うので、障害に対して行う対処処理を迅速に行うことができる。
【００２０】
起動時の試験で障害が発生した場合に、障害解析手段が、起動を行ったプロセッサを切り離して、他のプロセッサに再起動させるように構成されている場合には、プロセッサが原因の障害に対する対処処理を迅速に行うことができる。
【００２１】
起動および再起動を異なるプロセッサが行った場合であって、起動時および再起動時のいずれの場合でも同じ試験で障害が発生した場合、プロセッサ以外のモジュールが障害の原因であると考えられる。そのため、起動および再起動を異なるプロセッサが行い、いずれの場合でも同じ試験で障害が発生した場合に、障害解析手段が、コンピュータシステムが備えるプラットフォームに搭載されている複数のモジュールのうち、障害が発生した試験に応じたモジュールを切り離す処理を行うように構成されている場合には、プロセッサ以外のモジュールが障害の原因であった場合に、障害に対する対処処理を迅速に行うことができる。
【００２２】
そして、障害解析手段が、そのモジュールを切り離した後で、コンピュータシステムを再起動させるように構成されている場合には、コンピュータシステムが停止している時間を短くすることができる。
【００２３】
起動および再起動を異なるプロセッサが行った場合であって、起動時および再起動時に異なる試験で障害が発生した場合、障害の原因は複雑であると考えられる。そこで、起動および再起動を異なるプロセッサが行い、起動時および再起動時に異なる試験で障害が発生した場合に、障害解析手段が、コンピュータシステムの動作を停止させるように構成されている場合には、さらなる障害の発生を防ぐことができる。
【発明を実施するための最良の形態】
【００２４】
本発明の実施の形態について、図面を参照して説明する。図１は、本発明の実施の形態のコンピュータシステム１の構成例を示すブロック図である。
【００２５】
図１に示すコンピュータシステム１は、複数のプロセッサを備えるコンピュータシステムであって、コンピュータシステム１の起動を行う第１のプロセッサ１１、第１のプロセッサ１１によるコンピュータシステム１の起動時にストール障害が発生した場合に、再起動を行う第２のプロセッサ１２、第２のプロセッサ１２によるコンピュータシステム１の起動時にストール障害が発生した場合に、再起動を行う第３のプロセッサ１３、コンピュータシステム１の起動および再起動を監視するサービスプロセッサ２０、ＰＯＳＴ（Ｐｏｗｅｒ  Ｏｎ  Ｓｅｌｆ  Ｔｅｓｔ）の実行状況を表示するシステム状態表示部３０、情報を記憶する記憶部（記憶手段）４０を含む。
【００２６】
なお、図１に示すコンピュータシステム１は、第１のプロセッサ１１、第２のプロセッサ１２、第３のプロセッサ１３、およびサービスプロセッサ２０を有しているが、コンピュータシステム１が有するプロセッサの数は、４個に限定されない。つまり、コンピュータシステム１が、５個以上のプロセッサ（つまり、第５のプロセッサや第６のプロセッサ）を有していてもよい。
【００２７】
また、図１に示す例では、第３のプロセッサ１３と、サービスプロセッサ２０および記憶部４０との接続は図示されていないが、第２のプロセッサ１２によるコンピュータシステム１の起動時にストール障害が発生した場合等に備え、第３のプロセッサ１３は、サービスプロセッサ２０および記憶部４０と接続されている。
【００２８】
第１のプロセッサ１１、第２のプロセッサ１２および第３のプロセッサ１３は、コンピュータシステム１の起動後、コンピュータシステム１が搭載しているプログラムに従って動作する。
【００２９】
記憶部４０は、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ・Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）４１を記憶している。また、記憶部４０は、コンピュータシステム１の起動時および再起動時に行われる複数の所定の試験である各ＰＯＳＴの内容、ストール障害が発生したＰＯＳＴを示すＰＯＳＴコード、ストール障害が発生した疑いがあるモジュールを示す情報、およびストール障害が発生した後で行う処理を示す情報を記憶するＰＯＳＴタスク記憶部２４を含む。なお、ＰＯＳＴタスク記憶部２４は、各情報をテーブル形式で記憶してもよい。
【００３０】
ＰＯＳＴタスク記憶部２４が記憶しているストール障害が発生した後で行う処理を示す情報とは、例えば、ストール障害が発生したＰＯＳＴにもとづいて、障害が発生したことが疑われるプロセッサやモジュールを切り離して再起動を行うという処理を示す情報や、コンピュータシステム１の起動を停止するという処理を示す情報である。
【００３１】
具体的には、ＰＯＳＴタスク記憶部２４が記憶しているストール障害が発生した後で行う処理を示す情報は、例えば、再起動時に第１のＰＯＳＴでストール障害が発生した場合に、コンピュータシステム１が備えるモジュールＡを初期化させ、コンピュータシステム１の動作を停止させることを示す情報を含む。
【００３２】
また、ＰＯＳＴタスク記憶部２４が記憶しているストール障害が発生した後で行う処理を示す情報は、例えば、再起動時に第２のＰＯＳＴでストール障害が発生した場合に、コンピュータシステム１が備えるモジュールＢを初期化させ、モジュールＢをコンピュータシステム１から切り離させて第２のプロセッサ１２または第３のプロセッサ１３にコンピュータシステム１を再起動させることを示す情報を含む。
【００３３】
また、ＰＯＳＴタスク記憶部２４が記憶しているストール障害が発生した後で行う処理を示す情報は、例えば、再起動時に第３のＰＯＳＴでストール障害が発生した場合に、コンピュータシステム１が備えるモジュールＣを初期化させ、モジュールＣをコンピュータシステム１から切り離させて第２のプロセッサ１２または第３のプロセッサ１３にコンピュータシステム１を再起動させることを示す情報を含む。
【００３４】
なお、ＰＯＳＴとは、コンピュータシステム１の起動時および再起動時に、コンピュータシステム１に搭載されているメモリ、ハードディスク、キーボード等のハードウェアに異常があるか否かを調べるテストをいう。そして、コンピュータシステム１の起動時および再起動時には、複数の種類のＰＯＳＴ（例えば、第１のＰＯＳＴ、第２のＰＯＳＴおよび第３のＰＯＳＴ）が実行される。
【００３５】
サービスプロセッサ２０は、システム状態表示管理処理プログラム２１と、ストール監視処理プログラム２２と、障害解析処理プログラム２３とを搭載している。
【００３６】
システム状態表示管理処理プログラム２１は、サービスプロセッサ２０に、システム状態表示部３０へ、ＰＯＳＴの実行状況を示す情報を出力させるプログラムである。ストール監視処理プログラム２２は、サービスプロセッサ２０に、第１のプロセッサ１１、第２のプロセッサ１２または第３のプロセッサ１３が行っているコンピュータシステム１の起動処理および再起動処理を監視させるプログラムである。
【００３７】
具体的には、ストール監視処理プログラム２２は、サービスプロセッサ２０に、第１のプロセッサ１１、第２のプロセッサ１２または第３のプロセッサ１３が監視開始を要求する監視スタート通知を入力した場合に時間の計測を開始させ、所定の時間内（例えば、３０秒以内）に、監視終了を示す監視終了通知が入力されなかった場合に、第１のプロセッサ１１、第２のプロセッサ１２または第３のプロセッサ１３にストール障害が発生したと判断させる。
【００３８】
障害解析処理プログラム２３は、第１のプロセッサ１１、第２のプロセッサ１２または第３のプロセッサ１３によるコンピュータシステム１の起動時および再起動時にストール障害が発生した場合に、ＰＯＳＴタスク記憶部２４が記憶しているストール障害が発生した後で行う処理を示す情報に従って、サービスプロセッサ２０に、そのストール障害に対する対処処理を行わせるプログラムである。
【００３９】
例えば、障害解析処理プログラム２３は、第１のプロセッサ１１によるコンピュータシステム１の起動時にストール障害が発生した場合に、サービスプロセッサ２０に、第１のプロセッサ１１をコンピュータシステム１から切り離させて、第２のプロセッサ１２にコンピュータシステム１を再起動させる。
【００４０】
また、例えば、障害解析処理プログラム２３は、再起動時に第１のＰＯＳＴでストール障害が発生した場合に、サービスプロセッサ２０に、コンピュータシステム１が備えるモジュールＡを初期化させ、コンピュータシステム１の動作を停止させる。
【００４１】
また、例えば、障害解析処理プログラム２３は、再起動時に第２のＰＯＳＴでストール障害が発生した場合に、サービスプロセッサ２０に、コンピュータシステム１が備えるモジュールＢを初期化させ、モジュールＢをコンピュータシステム１から切り離させて第２のプロセッサ１２または第３のプロセッサ１３にコンピュータシステム１を再起動させる。
【００４２】
また、例えば、障害解析処理プログラム２３は、再起動時に第３のＰＯＳＴでストール障害が発生した場合に、サービスプロセッサ２０に、コンピュータシステム１が備えるモジュールＣを初期化させ、モジュールＣをコンピュータシステム１から切り離させて第２のプロセッサ１２または第３のプロセッサ１３にコンピュータシステム１を再起動させる。
【００４３】
なお、第２のＰＯＳＴまたは第３のＰＯＳＴでストール障害が発生した場合に初期化され、コンピュータシステム１から切り離される各モジュールは、例えば、コンピュータシステム１が備えるマザーボードに搭載された複数のＩ・Ｏコントローラモジュールのいずれかである。
【００４４】
第１のプロセッサ１１、第２のプロセッサ１２または第３のプロセッサ１３は、記憶部４０が記憶しているＢＩＯＳ４１を読み出して、コンピュータシステム１を起動させる。そして、第１のプロセッサ１１、第２のプロセッサ１２または第３のプロセッサ１３は、コンピュータシステム１の起動開始時および再起動開始時に、サービスプロセッサ２０へ監視開始を要求する監視スタート通知を出力する。
【００４５】
また、第１のプロセッサ１１、第２のプロセッサ１２または第３のプロセッサ１３は、コンピュータシステム１の起動および再起動終了時に、サービスプロセッサ２０へ監視終了を示す監視終了通知を出力する。
【００４６】
なお、起動監視手段は、例えば、コンピュータシステム１のサービスプロセッサ２０を動作させるストール監視プログラム２１によって実現される。障害解析手段は、例えば、コンピュータシステム１のサービスプロセッサ２０を動作させる障害解析処理プログラム２３によって実現される。
【００４７】
また、コンピュータシステム１は、サービスプロセッサ２０に、第１のプロセッサ１１または第２のプロセッサ１２によるコンピュータシステム１の起動および再起動を監視して、起動時および再起動時に行われる複数の所定の試験（ＰＯＳＴ）のうちのいずれかの試験で障害が発生したか否かを判断する起動監視処理と、起動監視処理で、コンピュータシステム１の起動時および再起動時に行われる複数の所定の試験のうちのいずれかの試験で障害が発生したと判断した場合に、障害に対して行う対処処理を行う障害解析処理とを実行させ、障害解析処理で、起動時に障害が発生した試験と、再起動時に障害が発生した試験と、記憶部４０のＰＯＳＴタスク記憶部２４が記憶している再起動時に障害が発生した試験に応じた障害に対して行う対処処理の内容を示す情報とに応じて障害に対して行う対処処理を行わせるための起動監視プログラムを搭載していてもよい。
【００４８】
次に、本発明の実施の形態のコンピュータシステム１の動作について、図面を参照して説明する。図２は、コンピュータシステム１を起動する際の動作を説明するシーケンス図である。
【００４９】
コンピュータシステム１に起動を指示する操作がなされると、第１のプロセッサ１１は、コンピュータシステム１の起動処理を開始し（ステップＳ１０１）、第２のプロセッサ１２は、初期化され、待機処理を行う（ステップＳ１０２）。
【００５０】
第１のプロセッサ１１は、サービスプロセッサ２０に、監視スタート通知を出力する（ステップＳ１０３）。監視スタート通知が入力されたサービスプロセッサ２０は、ストール監視処理プログラム２２を実行し、第１のプロセッサ１１の監視を開始する（ステップＳ１０４）。具体的には、サービスプロセッサ２０は、時間の計測を開始する。
【００５１】
第１のプロセッサ１１は、記憶部４０が記憶しているＢＩＯＳ４１を読み出して実行を開始し、記憶部４０が記憶しているＰＯＳＴの内容を読み出して、各ＰＯＳＴを実行する（ステップＳ１０５）。
【００５２】
第１のプロセッサ１１は、実行しているＰＯＳＴをサービスプロセッサ２０に通知する（ステップＳ１０６）。サービスプロセッサ２０は、システム状態表示管理プログラム２１を実行し、第１のプロセッサ１１が実行しているＰＯＳＴをシステム状態表示部３０に表示させる（ステップＳ１０７）。
【００５３】
第１のプロセッサ１１は、全ての所定のＰＯＳＴの実行が終了するまで、各ＰＯＳＴの実行と、実行しているＰＯＳＴの通知とを繰り返す（ステップＳ１０５、Ｓ１０６、Ｓ１０８のＮ）。
【００５４】
第１のプロセッサ１１は、全ての所定のＰＯＳＴの実行が終了した場合に（ステップＳ１０８のＹ）、監視終了通知をサービスプロセッサ２０に出力し（ステップＳ１０９）、コンピュータシステム１の起動を終了する（ステップＳ１１０）。
【００５５】
なお、監視終了通知は、全ての所定のＰＯＳＴの実行が終了した場合に出力されるのであって、いずれかのＰＯＳＴでストール障害が発生した場合には出力されないので、図２に示す例では、監視終了通知の出力の矢印を破線で示している。
【００５６】
サービスプロセッサ２０は、所定の時間が経過する前に（ステップＳ１１１のＮ）、監視終了通知が入力された場合に（ステップＳ１１２のＹ）、コンピュータシステム１の起動の監視を終了する（ステップＳ１１３）。
【００５７】
サービスプロセッサ２０は、監視終了通知が入力されることなく所定の時間が経過した場合に（ステップＳ１１１のＹ）、第１のプロセッサ１１を用いた起動時にストール障害が発生したことを検出する（ステップＳ１１４）。
【００５８】
サービスプロセッサ２０は、障害解析処理プログラム２３を実行し、ストール障害が発生したＰＯＳＴを示すＰＯＳＴコードを記憶部４０に記憶させる。また、サービスプロセッサ２０は、障害解析処理プログラム２３に従って、第１のプロセッサ１１をコンピュータシステム１から切り離して第２のプロセッサ１２を用いてコンピュータシステム１を再起動させる（ステップＳ１１５）。
【００５９】
次に、コンピュータシステム１を再起動する際の動作について説明する。図３は、本実施の形態におけるＰＯＳＴタスク記憶部２４が記憶している再起動時にストール障害が発生した場合に行われる処理を示す情報を示す説明図である。
【００６０】
図３に示す例では、障害解析処理プログラム２３は、再起動時に第１のＰＯＳＴでストール障害が発生した場合に、サービスプロセッサ２０に、コンピュータシステム１が備えるモジュールＡを初期化させて、コンピュータシステム１の動作を停止させることを示している。
【００６１】
また、図３に示す例では、障害解析処理プログラム２３は、再起動時に第２のＰＯＳＴでストール障害が発生した場合に、サービスプロセッサ２０に、コンピュータシステム１が備えるモジュールＢを初期化させ、モジュールＢをコンピュータシステム１から切り離して第１のプロセッサ１１、第２のプロセッサ１２または第３のプロセッサ１３にコンピュータシステム１を再起動させることを示している。
【００６２】
さらに、図３に示す例では、障害解析処理プログラム２３は、再起動時に第３のＰＯＳＴでストール障害が発生した場合に、サービスプロセッサ２０に、コンピュータシステム１が備えるモジュールＣを初期化させ、モジュールＣをコンピュータシステム１から切り離して第１のプロセッサ１１、第２のプロセッサ１２または第３のプロセッサ１３にコンピュータシステム１を再起動させることを示している。
【００６３】
図４は、コンピュータシステム１の再起動時に、起動時と同じＰＯＳＴでストール障害が発生した場合の動作を説明するシーケンス図である。
【００６４】
サービスプロセッサ２０が、第２のプロセッサ１２を用いてコンピュータシステム１を再起動させる場合に、第２のプロセッサ１２は、コンピュータシステム１の再起動処理を開始し（ステップＳ２０１）、第３のプロセッサ１３は、初期化され、待機処理を行う（ステップＳ２０２）。
【００６５】
第２のプロセッサ１２は、サービスプロセッサ２０に、監視スタート通知を出力する（ステップＳ２０３）。監視スタート通知が入力されたサービスプロセッサ２０は、ストール監視処理プログラム２２を実行し、第２のプロセッサ１２の監視を開始する（ステップＳ２０４）。具体的には、サービスプロセッサ２０は、時間の計測を開始する。
【００６６】
第２のプロセッサ１２は、記憶部４０が記憶しているＢＩＯＳ４１を読み出して実行を開始し、記憶部４０が記憶しているＰＯＳＴの内容を読み出して、各ＰＯＳＴを実行する（ステップＳ２０５）。
【００６７】
第２のプロセッサ１２は、実行しているＰＯＳＴをサービスプロセッサ２０に通知する（ステップＳ２０６）。サービスプロセッサ２０は、システム状態表示管理プログラム２１を実行し、第２のプロセッサ１２が実行しているＰＯＳＴをシステム状態表示部３０に表示させる（ステップＳ２０７）。
【００６８】
第２のプロセッサ１２は、全ての所定のＰＯＳＴの実行が終了するまで、各ＰＯＳＴの実行と、実行しているＰＯＳＴの通知とを繰り返す（ステップＳ２０５、Ｓ２０６、Ｓ２０８のＮ）。
【００６９】
第２のプロセッサ１２は、全ての所定のＰＯＳＴの実行が終了した場合に（ステップＳ２０８のＹ）、監視終了通知をサービスプロセッサ２０に出力し（ステップＳ２０９）、コンピュータシステム１の起動を終了する（ステップＳ２１０）。
【００７０】
なお、監視終了通知は、全ての所定のＰＯＳＴの実行が終了した場合に出力されるのであって、いずれかのＰＯＳＴでストール障害が発生した場合には出力されないので、図４に示す例では、監視終了通知の出力の矢印を破線で示している。
【００７１】
サービスプロセッサ２０は、所定の時間が経過する前に（ステップＳ２１１のＮ）、監視終了通知が入力された場合に（ステップＳ２１２のＹ）、コンピュータシステム１の起動の監視を終了する（ステップＳ２１３）。
【００７２】
サービスプロセッサ２０は、監視終了通知が入力されることなく所定の時間が経過した場合に（ステップＳ２１１のＹ）、第２のプロセッサ１２を用いた再起動時にストール障害が発生したことを検出する（ステップＳ２１４）。
【００７３】
サービスプロセッサ２０は、障害解析処理プログラム２３を実行し、第２のプロセッサ１２が実行しているＰＯＳＴと、記憶部４０が記憶しているＰＯＳＴコードとが合致するか否かを判断する（ステップＳ２１５）。また、サービスプロセッサ２０は、ストール障害が発生したＰＯＳＴを示すコードを記憶部４０に記憶させる。
【００７４】
図２に示すシーケンス図を用いて説明したコンピュータシステム１の起動時および図４に示すシーケンス図を用いて説明したコンピュータシステム１の再起動時において、同じＰＯＳＴを実行しているときにストール障害が発生した場合、ストール障害の原因はプロセッサではなく、ストール障害の発生時に実行していたＰＯＳＴに対応するモジュールがストール障害の原因であることが疑われる。
【００７５】
そこで、サービスプロセッサ２０は、第２のプロセッサ１２が実行していたＰＯＳＴと、記憶部４０が記憶しているＰＯＳＴコードとが合致していた場合に、プロセッサ以外の原因でストール障害が発生していると判断する。そして、サービスプロセッサ２０は、記憶部４０が記憶しているストール障害が発生した後で行う処理を示す情報を参照して、障害の発生箇所を特定し、その箇所を切り離して、第２のプロセッサ１２に、コンピュータシステム１を再起動させる。
【００７６】
具体的には、図２に示すシーケンス図を用いて説明したコンピュータシステム１の起動時および図４に示すシーケンス図を用いて説明したコンピュータシステム１の再起動時において、共に第２のＰＯＳＴを実行しているときにストール障害が発生した場合には、図３に示すように、サービスプロセッサ２０が、障害解析処理プログラム２３に従ってモジュールＢを初期化し、モジュールＢをコンピュータシステム１から切り離して第２のプロセッサ１２にコンピュータシステム１を再起動させる。
【００７７】
コンピュータシステム１を再起動させた結果、再起動に成功した場合には、ストール障害の原因がそのモジュールであることを特定することができる。
【００７８】
図５は、コンピュータシステム１の再起動時に、起動時と異なるＰＯＳＴでストール障害が発生した場合の動作を説明するシーケンス図である。
【００７９】
サービスプロセッサ２０が、第２のプロセッサ１２を用いてコンピュータシステム１を再起動させる場合に、第２のプロセッサ１２は、コンピュータシステム１の再起動処理を開始し（ステップＳ３０１）、第３のプロセッサ１３は、初期化され、待機処理を行う（ステップＳ３０２）。
【００８０】
第２のプロセッサ１２は、サービスプロセッサ２０に、監視スタート通知を出力する（ステップＳ３０３）。監視スタート通知が入力されたサービスプロセッサ２０は、ストール監視処理プログラム２２を実行し、第２のプロセッサ１２の監視を開始する（ステップＳ３０４）。具体的には、サービスプロセッサ２０は、時間の計測を開始する。
【００８１】
第２のプロセッサ１２は、記憶部４０が記憶しているＢＩＯＳ４１を読み出して実行を開始し、記憶部４０が記憶しているＰＯＳＴの内容を読み出して、各ＰＯＳＴを実行する（ステップＳ３０５）。
【００８２】
第２のプロセッサ１２は、実行しているＰＯＳＴをサービスプロセッサ２０に通知する（ステップＳ３０６）。サービスプロセッサ２０は、システム状態表示管理プログラム２１を実行し、第２のプロセッサ１２が実行しているＰＯＳＴをシステム状態表示部３０に表示させる（ステップＳ３０７）。
【００８３】
第２のプロセッサ１２は、全ての所定のＰＯＳＴの実行が終了するまで、各ＰＯＳＴの実行と、実行しているＰＯＳＴの通知とを繰り返す（ステップＳ３０５、Ｓ３０６、Ｓ３０８のＮ）。
【００８４】
第２のプロセッサ１２は、全ての所定のＰＯＳＴの実行が終了した場合に（ステップＳ３０８のＹ）、監視終了通知をサービスプロセッサ２０に出力し（ステップＳ３０９）、コンピュータシステム１の起動を終了する（ステップＳ３１０）。
【００８５】
なお、監視終了通知は、全ての所定のＰＯＳＴの実行が終了した場合に出力されるのであって、いずれかのＰＯＳＴでストール障害が発生した場合には出力されないので、図５に示す例では、監視終了通知の出力の矢印を破線で示している。
【００８６】
サービスプロセッサ２０は、所定の時間が経過する前に（ステップＳ３１１のＮ）、監視終了通知が入力された場合に（ステップＳ３１２のＹ）、コンピュータシステム１の起動の監視を終了する（ステップＳ３１３）。
【００８７】
サービスプロセッサ２０は、監視終了通知が入力されることなく所定の時間が経過した場合に（ステップＳ３１１のＹ）、第２のプロセッサ１２にストール障害が発生したことを検出する（ステップＳ３１４）。
【００８８】
サービスプロセッサ２０は、障害解析処理プログラム２３を実行し、第２のプロセッサ１２が実行しているＰＯＳＴと、記憶部４０が記憶しているＰＯＳＴコードとが合致するか否かを判断する（ステップＳ３１５）。また、サービスプロセッサ２０は、ストール障害が発生したＰＯＳＴを示すコードを記憶部４０に記憶させる。
【００８９】
そして、サービスプロセッサ２０は、第２のプロセッサ１２が実行しているＰＯＳＴと、記憶部４０が記憶しているＰＯＳＴコードとが合致していない場合に、プロセッサ以外の構成要素による複雑な原因でストール障害が発生していると判断する。そして、サービスプロセッサ２０は、コンピュータシステム１の運用が不可能であると判断してコンピュータシステム１の起動を中止させる。
【００９０】
なお、サービスプロセッサ２０は、所定の時間が経過する前に、監視終了通知が入力された場合に（図３に示すステップＳ２１１のＮおよびＳ２１２のＹ、図４に示すステップＳ３１１のＮおよびＳ３１２のＹ）、コンピュータシステム１の起動の監視を終了する（図３に示すステップＳ２１３および図４に示すステップＳ３１３）。
【００９１】
そして、サービスプロセッサ２０は、第１のプロセッサ１１を切り離した場合にストール障害が発生しなかったので、第１のプロセッサ１１がストール障害の発生原因であると特定する。
【００９２】
なお、図４に例示したシーケンス図を用いて説明した動作では、起動時にストール障害が発生したＰＯＳＴと、再起動時にストール障害が発生したＰＯＳＴとが同じであるので、ストール障害が発生したＰＯＳＴに応じた障害の対処処理を行っている。
【００９３】
一方、図５に例示したシーケンス図を用いて説明した動作では、起動時にストール障害が発生したＰＯＳＴと、再起動時にストール障害が発生したＰＯＳＴとが異なるので、コンピュータシステム１の運用が不可能であると判断してコンピュータシステム１の起動を中止させている。
【００９４】
従って、図４に例示したシーケンス図を用いて説明した動作と、図５に例示したシーケンス図を用いて説明した動作とは、起動時にストール障害が発生したＰＯＳＴと、再起動時にストール障害が発生したＰＯＳＴとが同じであるのか（図４に例示したシーケンス図を用いて説明した動作）、または異なるのか（図５に例示したシーケンス図を用いて説明した動作）によって異なっている。
【００９５】
本実施の形態によれば、サービスプロセッサ２０が、再起動の前後を通してコンピュータシステム１の起動を監視するので、ストール障害の発生原因を特定することができる。
【００９６】
具体的には、起動時にストール障害が発生したＰＯＳＴと、再起動時にストール障害が発生したＰＯＳＴとにもとづいて、コンピュータシステム１が備えるマザーボードに搭載されたモジュールを含むプラットフォームが原因でストール障害が発生しているのか、またはコンピュータシステム１が備えるプロセッサが原因でストール障害が発生しているのかを特定することができる。
【００９７】
さらに、起動時にストール障害が発生したＰＯＳＴと、再起動時にストール障害が発生したＰＯＳＴとが同じである場合には、ストール障害の発生原因の疑いがあるモジュール等を特定することができる。
【００９８】
そして、ストール障害の発生原因の疑いがあるモジュール等を切り離してコンピュータシステム１を再起動するので、コンピュータシステム１を継続して運用することができる。
【００９９】
また、本実施の形態によれば、ストール障害の発生原因を特定することができるので、保守性を向上させることができ、コンピュータシステム１が停止している時間を短縮させることができる。
【産業上の利用可能性】
【０１００】
本発明は、起動時に検出した障害箇所を特定するコンピュータシステムに適用することができる。また、障害箇所を自動的に縮退して再起動するコンピュータシステムに適用することができる。
【図面の簡単な説明】
【０１０１】
【図１】本発明の実施の形態のコンピュータシステムの構成例を示すブロック図である。
【図２】コンピュータシステムを起動する際の動作を説明するシーケンス図である。
【図３】再起動時にストール障害が発生した場合に行われる処理を示す情報を示す説明図である。
【図４】コンピュータシステムの再起動時に、起動時と同じＰＯＳＴでストール障害が発生した場合の動作を説明するシーケンス図である。
【図５】コンピュータシステムの再起動時に、起動時と異なるＰＯＳＴでストール障害が発生した場合の動作を説明するシーケンス図である。
【符号の説明】
【０１０２】
１    コンピュータシステム
１１  第１のプロセッサ
１２  第２のプロセッサ
１３  第３のプロセッサ
２０  サービスプロセッサ
２１  システム状態表示管理プログラム
２２  ストール監視プログラム
２３  障害解析処理プログラム
２４  ＰＯＳＴタスク記憶部
３０  システム状態表示部
４０  記憶部
４１  ＢＩＯＳ
【図１】
0004586750.tif 000002
【図２】
0004586750.tif 000003
【図３】
0004586750.tif 000004
【図４】
0004586750.tif 000005
【図５】
0004586750.tif 000006