JP7351129B2 - 情報処理装置および情報処理装置の制御プログラム - Google Patents

情報処理装置および情報処理装置の制御プログラム Download PDF

Info

Publication number
JP7351129B2
JP7351129B2 JP2019138029A JP2019138029A JP7351129B2 JP 7351129 B2 JP7351129 B2 JP 7351129B2 JP 2019138029 A JP2019138029 A JP 2019138029A JP 2019138029 A JP2019138029 A JP 2019138029A JP 7351129 B2 JP7351129 B2 JP 7351129B2
Authority
JP
Japan
Prior art keywords
error
component
unit
processor
replacement
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019138029A
Other languages
English (en)
Other versions
JP2021022144A (ja
Inventor
保 竹内
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2019138029A priority Critical patent/JP7351129B2/ja
Priority to US16/932,885 priority patent/US11422877B2/en
Publication of JP2021022144A publication Critical patent/JP2021022144A/ja
Application granted granted Critical
Publication of JP7351129B2 publication Critical patent/JP7351129B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)

Description

本発明は、情報処理装置および情報処理装置の制御プログラムに関する。
複数のプロセッサを有する情報処理装置において、プロセッサのエラーが発生した場合、エラーが発生したプロセッサを使用しないようにすることで、エラー発生後に、再度エラーが発生することが抑止される(例えば、特許文献1参照)。また、情報処理装置において、通常運用ファームウェアが正常に起動しない場合、修復用ファームウェアを起動することで、人手を介することなくファームウェアの修復が行われる(例えば、特許文献2参照)。
特開平3-182939号公報 特開2004-54616号公報
エラーが発生したプロセッサの使用を停止した場合、情報処理装置の処理性能は低下してしまう。また、例えば、電源が間欠的にショートすることに起因してプロセッサのエラーが発生する場合、プロセッサの使用を停止しても、エラーの原因は取り除かれない。
例えば、プロセッサをそれぞれ含む複数のコンポーネントと、複数のコンポーネントを管理する管理部とを有する情報処理装置において、故障したコンポーネントを他のコンポーネントに活***換するとする。この場合、管理部が実行するファームウェアとプロセッサが実行するオペレーティングシステム(以下、OSとも称する)とが、プロセッサからのエラー通知に基づいて互いに連携して活***換処理を実行する。
例えば、プロセッサからのエラー通知に基づいてOSが実行するリカバリ処理が成功せず、OSがハングアップした場合、ファームウェアとOSとの連携により活***換処理を実行することは困難である。しかしながら、ファームウェアは、プロセッサからのエラー通知に基づいてOSがハングアップした場合にも、OSがハングアップしたことを認識しないため、OSと連携して活***換処理を実行しようとする。そして、活***換処理は失敗する。OSに機能を追加することで、ファームウェアは、活***換処理を開始する前にOSが動作しているかを判定することができるが、情報処理装置のベンダがOSの機能を追加することは困難である。
1つの側面では、本発明は、OSに機能を追加することなくOSの動作状態を監視して、故障したコンポーネントを他のコンポーネントに活***換することを目的とする。
一つの観点によれば、プロセッサをそれぞれ含む複数のコンポーネントと、前記複数のコンポーネントを管理する管理部と、を有する情報処理装置であって、前記管理部は、前記プロセッサからエラー通知を受信した場合、エラー通知を出力した前記プロセッサに保持されたエラー情報を解析することで、エラーの原因となった部品を含む前記コンポーネントであるエラーコンポーネントを特定するエラー特定部と、前記エラーコンポーネントと活***換可能な他のコンポーネントが存在する場合、活***換の要求を発行し、前記エラーが前記活***換中に再度発生するエラーであることを判定した場合、前記エラーコンポーネントと活***換可能な他のコンポーネントが存在する場合にも、前記活***換の要求を発行しない交換判定部と、前記プロセッサにより実行されるオペレーティングシステムが生存しているかどうかを監視し、前記活***換の要求が発行された場合であって、前記オペレーティングシステムの生存が確認された場合、前記エラーコンポーネントの活性削除処理と前記他のコンポーネントの活性追加処理との指示を発行する生存監視処理部と、前記活性削除処理と前記活性追加処理との指示に基づいて、前記活性削除処理と前記活性追加処理とを開始する活***換処理部と、を有する。
1つの側面では、本発明は、OSに機能を追加することなくOSの動作状態を監視して、故障したコンポーネントを他のコンポーネントに活***換することができる。
一実施形態における情報処理装置の一例を示すブロック図である。 図1の管理部において、コンポーネントを活***換するための処理の一例を示すフロー図である。 図2のステップS6の処理の一例を示すフロー図である。 別の実施形態における情報処理装置の一例を示すブロック図である。 図4のOSのリカバリ処理部の処理の一例を示すフロー図である。 図4のファームウェアのエラー解析処理部の処理の一例を示すフロー図である。 図4のファームウェアの生存監視処理部の処理の一例を示すフロー図である。 別の実施形態における情報処理装置の一例を示すブロック図である。 別の実施形態における情報処理装置の一例を示すブロック図である。
以下、図面を用いて実施形態が説明される。
図1は、一実施形態における情報処理装置100の一例を示す。情報処理装置100は、プロセッサ2およびメモリ3をそれぞれ含む複数のコンポーネント1と、コンポーネント1を管理する管理部4とを有する。例えば、コンポーネント1は、システム基板の形態を有する。プロセッサ2は、CPU(Central Processing Unit)でもよく、CPU以外のプロセッサでもよい。例えば、プロセッサ2は、QPI(Quick Path Interconnect)またはUPI(Ultra Path Interconnect)により相互に接続される。プロセッサ2と管理部4とは管理バスを介して相互に接続される。
管理部4は、エラー特定部5、交換判定部6、生存監視処理部7および活***換処理部8を有する。管理部4は、ハードウェアで実現されてもよく、管理部4が有する図示しない管理プロセッサが実行する管理プログラムにより実現されてもよい。
エラー特定部5は、例えば、管理バスを介してプロセッサ2のいずれかからエラー通知を受信した場合、エラー通知を出力したプロセッサ2のステータスレジスタ等に保持されたエラー情報を読み出し、読み出したエラー情報を解析する。エラー特定部5は、エラー情報の解析結果に基づいて、エラーの原因となった部品を含むコンポーネント1であるエラーコンポーネント1を特定する。例えば、エラーコンポーネント1は、エラーコンポーネント1の識別番号またはエラーコンポーネント1に含まれるプロセッサ2の識別番号により識別される。
各プロセッサ2は、メモリ3のアクセスエラー、図示しないI/O(Input/Output)のアクセスエラー、または他のプロセッサ2との通信エラー等を検出した場合、検出したエラーを示すエラー情報をエラーステータスレジスタに格納する。そして、各プロセッサ2は、エラーピン等を介してエラー通知を管理部4に発行する。エラーの発生の原因は、エラーを検出したプロセッサ2を含むコンポーネント1内の部品の故障の場合と、エラーを検出したプロセッサ2に接続された他のコンポーネント1内の部品の故障の場合とがある。
なお、エラー通知は、各コンポーネント1のプロセッサ2により実行されるOSにも通知される。エラー通知を受信したOSは、エラー通知を出力したコンポーネント1のステータスレジスタ等に保持されたエラー情報を読み出し、読み出したエラー情報を解析する。そして、OSは、リカバリ処理を実行する。
リカバリ処理が成功した場合、OSは動作を継続し、ウォッチドッグタイマーコマンド等の生存監視通知を定期的に発行する。生存監視通知はOSが動作していることを示す。一方、リカバリ処理が失敗した場合、OSは、コンポーネント1の再起動処理を実行し、再起動されない場合、ハングアップする。OSがハングアンプした場合、生存監視通知の発行は停止される。
交換判定部6は、エラーコンポーネント1と交換可能な他のコンポーネント1が存在するかどうかを判定する。交換判定部6は、エラーコンポーネント1と交換可能な他のコンポーネント1が存在する場合、活***換の要求を発行する。ここで、活***換とは、電源が投入された状態で、コンポーネント1のいずれかを停止し、停止したコンポーネント1の代わりに、他のコンポーネント1を開始することを示す。活***換の処理は、管理部4とOSとが連携して実行する。
例えば、交換判定部6は、情報処理装置100に含まれる複数のエラーコンポーネント1のうち、エラーコンポーネント1と同様の構成のコンポーネント1であって、使用していないコンポーネント1が存在するかを判定する。交換判定部6は、管理バスを介して、使用していないコンポーネント1に含まれるプロセッサ2の仕様を示す仕様情報を取得し、取得した仕様情報とエラーコンポーネント1に含まれるプロセッサ2の仕様情報とを比較する。例えば、仕様情報は、プロセッサ2の型式および動作周波数の情報を含む。
そして、交換判定部6は、取得した仕様情報がエラーコンポーネント1に含まれるプロセッサの仕様情報と同じである場合、もしくは同等である場合、エラーコンポーネント1と交換可能な他のコンポーネント1が存在すると判定し、活***換の要求を発行する。管理バスを介して取得する使用していないプロセッサ2の仕様情報に基づいて、活性追加可能なコンポーネント1が存在するかどうかを判定することで、活***換後の情報処理装置100の処理性能を活***換前と同等にすることができる。これにより、活***換後に処理遅延等が発生することを抑止することができ、コンポーネント1の故障が情報処理装置100の処理に与える影響を最小限にすることができる。
生存監視処理部7は、OSの生存監視を行う。例えば、生存監視処理部7は、生存監視通知を受信する毎に図示しないタイマーをリセットする動作を繰り返す。生存監視処理部7は、エラーの発生に基づいてOSが実行したリカバリ処理が失敗し、OSが正常に動作しなくなったことをタイマーのタイムアウトにより検出する。なお、生存監視機能を有効または無効に切り替え可能な場合、生存監視機能は有効に設定される。
生存監視処理部7は、交換判定部6により活***換の要求が発行された場合であって、OSの生存が確認された場合、エラーコンポーネント1の活性削除処理と交換可能な他の前記コンポーネント1の活性追加処理との指示を発行する。一方、生存監視処理部7は、OSの生存を認識しない場合、交換判定部6により活***換の要求が発行された場合であっても、活性削除処理と活性追加処理との指示の発行を抑止する。これにより、OSが正常に動作していない場合、OSと管理部4とが連携して実行する活性削除処理と活性追加処理とが完了しない不具合を未然に抑止することができる。
活***換処理部8は、生存監視処理部7からの活性削除処理と活性追加処理との指示に基づいて、エラーコンポーネント1の活性削除処理と、使用していない他の前記コンポーネント1の活性追加処理とを開始する。この際、活***換処理部8は、OSと連携して活***換処理を実行する。活***換処理は、生存監視処理部7によりOSの生存が確認されたことに基づいて実行されるため、活***換処理を開始した後にOSと連携が取れなくなることはない。
なお、交換判定部6は、エラー特定部5が読み出したエラー情報の解析結果に基づいて、故障を含むと想定されるコンポーネント1を活***換することを判定した場合、エラーが活***換中に再度発生するかどうかを判定してもよい。すなわち、交換判定部6は、エラー通知の内容が、コンポーネント1の活***換によってはエラーが解消しない致命的なエラーであるかどうかを判定してもよい。交換判定部6は、致命的なエラーであることを判定した場合、エラーコンポーネント1と交換可能な他のコンポーネント1が存在する場合にも、活***換の要求を生存監視処理部7に発行しない。
以上により、コンポーネント1のいずれかの故障に基づいて、コンポーネント1の活***換を実行する場合、活***換が可能かどうかを管理部4により判定することができる。すなわち、活性削除するエラーコンポーネント1の特定と、活性追加の対象である使用していないコンポーネント1の有無の判定とを、管理部4により自動的に実行することができる。また、活***換中にエラーが再度発生するかどうかの判定を、管理部4により自動的に実行することができる。
これにより、情報処理装置100を使用するユーザ等が操作をすることなく、コンポーネント1の活***換を実行することができる。また、活***換を自動的に実行する仕組みを、OSの機能を変更することなく実現することができる。さらに、OSの生存監視機能を利用することで、OSが生存していないことによりコンポーネント1の活***換が完了しない不具合を、未然に抑止することができる。
図2は、図1の管理部4において、コンポーネント1を活***換するための処理の一例を示す。例えば、図2の処理は、管理部4が有する管理プロセッサが、活***換用の制御プログラムを実行することにより実現される。すなわち、図2は、情報処理装置100の制御プログラムの一例を示す。
まず、ステップS1において、エラー特定部5は、コンポーネント1からエラー通知を受信するまで待ち、エラー通知を受信した場合、処理をステップS2に移行する。ステップS2において、エラー特定部5は、エラー通知を出力したプロセッサ2のステータスレジスタ等に保持されたエラー情報を読み出し、読み出したエラー情報を解析し、エラーコンポーネント1を特定する。
次に、ステップS3において、交換判定部6は、エラーコンポーネント1と交換可能な他のコンポーネント1が存在するかどうかを判定する。エラーコンポーネント1と交換可能な他のコンポーネント1が存在する場合、処理はステップS4に移行され、エラーコンポーネント1と交換可能な他のコンポーネント1が存在しない場合、処理は終了する。
なお、交換判定部6は、コンポーネント1の活***換によってはエラーが解消しない致命的なエラーであることを判定した場合、エラーコンポーネント1と交換可能な他のコンポーネント1が存在する場合にも、処理を終了してもよい。ステップS4において、交換判定部6は、コンポーネント1の活***換の要求を生存監視処理部7に発行する。
次に、ステップS5において、生存監視処理部7は、OSが生存しているか否かを判定する。生存監視処理部7は、OSが生存している場合、処理をステップS6に移行し、OSが生存していない場合、処理を終了する。ステップS6において、生存監視処理部7は、活***換処理部8に活***換を指示する。
次に、ステップS7において、活***換処理部8は、生存監視処理部7からの活性削除処理と活性追加処理との指示に基づいて、エラーコンポーネント1の活性削除処理と、使用していない他の前記コンポーネント1の活性追加処理とを実行し、処理を終了する。活性削除処理と活性追加処理とは、OSとともに実行される。
図3は、図2のステップS6の処理の一例を示す。まず、ステップS61において、生存監視処理部7は、OSの生存監視で異常を検出した場合、処理をステップS62に移行し、OSの生存監視で異常を検出しない場合、処理をステップS63に移行する。
ステップS62において、生存監視処理部7は、OSが生存していないときに実行される異常検出時の処理を実行し、処理を終了する。例えば、異常検出時の処理として、プロセッサ2のリセットや、OSが使用しているメモリ領域に保持された情報をハードディスク等に転送するメモリダンプの取得等がある。
一方、OSの生存監視で異常を検出しない場合、ステップS63において、生存監視処理部7は、交換判定部6により活***換の要求が発行されたかどうかを判定する。生存監視処理部7は、活***換の要求が発行された場合、処理をステップS64に移行し、活***換の要求が発行されていない場合、処理をステップS61に戻す。ステップS64において、生存監視処理部7は、コンポーネント1の活***換を活***換処理部8に指示し、処理をステップS61に戻す。
以上、図1から図3に示す実施形態では、コンポーネント1のいずれかの故障に基づいて、活***換が可能かどうかを管理部4により判定し、人手を解することなく活***換を自動的に実行することができる。また、活***換を自動的に実行する仕組みを、OSの機能を変更することなく実現することができる。さらに、OSの生存監視機能を利用することで、OSが生存していないことによりコンポーネント1の活***換が完了しない不具合を、未然に抑止することができる。したがって、生存監視機能を有するOSであれば、OSの機能を変更することなく本実施形態の活***換機能を実現することができる。
また、活***換中にエラーが再度発生するかどうかを判定し、エラーが再度発生すると判定された場合、活***換の実行を抑止することができる。したがって、活***換後にエラーが再度発生して、情報処理装置100の運用の継続が困難になることを抑止することができ、情報処理装置100の安定稼働を実現することができる。
管理バスを介して使用していないプロセッサ2の仕様情報を取得することで、エラーコンポーネント1を、同等の性能を有するコンポーネント1に活***換することができる。これにより、活***換後に処理遅延等が発生することを抑止することができ、コンポーネント1の故障が情報処理装置100の処理に与える影響を最小限にすることができる。
図4は、別の実施形態における情報処理装置100Aの一例を示す。図1と同様の要素については、詳細な説明は省略する。例えば、図4に示す情報処理装置100Aは、汎用のCPUが搭載されるサーバである。
情報処理装置100Aは、複数のCPUユニット10と、少なくとも1つのIOユニット20とを有する。IOユニット20は、入出力ユニットの一例である。各CPUユニット10は、複数のCPU12と、各CPU12に接続された複数のメモリ14とを含む。例えば、CPUユニット10は、システム基板の形態を有する。例えば、メモリ14は、SDRAM(Synchronous Dynamic Random Access Memory)を有するメモリモジュールである。CPUユニット10は、コンポーネントの一例である。
IOユニット20は、IOコントローラ30、ビデオコントローラ32、LAN(Local Area Network)コントローラ34、ハードディスクコントローラ36、ハードディスク40、ROM(Read Only Memory)50およびサーバ管理装置60を有する。IOコントローラ30、ビデオコントローラ32、LANコントローラ34およびハードディスクコントローラ36は、入出力インタフェースの一例である。ROM50は、記憶装置の一例である。
IOコントローラ30は、入出力バスIOBUSを介して各CPU12と接続される。IOコントローラ30は、各CPU12と、ビデオコントローラ32、LANコントローラ34、ハードディスクコントローラ36、ROM50およびサービスプロセッサ62との間での情報の転送を制御する。図4では、1つのCPU12がIOコントローラ30に接続されているが、各CPU12は、任意のIOユニット20や図示しないPCI(Peripheral Component Interconnect)ユニットに接続可能である。なお、IOコントローラ30は、ビデオコントローラ32およびLANコントローラ34以外のコントローラが接続されてもよい。
ハードディスク40には、OS処理部42、リカバリ処理部44、活***換処理部46および生存監視処理部48として機能するOS41が記憶されている。OS41は、ハードディスク40からメモリ14に展開された後、CPU12により実行される。
OS処理部42は、既存の通常のOS41の処理を実行する。リカバリ処理部44は、CPU12からエラー通知を受信した場合、CPU12のエラーステータスレジスタの内容に基づいて、CPU12またはメモリ14等のエラーを解析し、リカバリ処理が可能な場合、リカバリ処理を実行する。OS41が実行するリカバリ処理部44の処理の例は、図5に示す。
活***換処理部46は、後述するファームウェア71の活***換処理部78およびBIOS(Basic Input Output System)の活***換処理部54と連携して活性追加処理および活性削除処理を実行する。例えば、活***換処理部46は、CPUユニット10の活性追加処理において、活***換処理部78または活***換処理部54から割り込みを受けた場合、活性追加するCPUユニット10のCPU12およびメモリ14を使用できるように設定する。
また、活***換処理部46は、CPUユニット10の活性削除処理において、活***換処理部78または活***換処理部54から割り込みを受けた場合、活性削除するCPUユニット10のCPU12およびメモリ14を使用しないように設定する。例えば、活***換処理部78または活***換処理部54からの割り込みは、IOコントローラ30を介してOS41を実行するCPU12に発行される。生存監視処理部48は、生存監視通知を定期的にファームウェア71に発行する。
ROM50には、BIOS処理部52および活***換処理部54として機能するBIOS51が記憶されている。BIOS51は、CPU12により実行される。なお、CPU12は、ROM50に記憶されているBIOS51を実行してもよく、ROM50からメモリ14に展開されたBIOS51を実行してもよい。BIOS処理部52は、既存の通常のBIOSの処理を実行する。活***換処理部54は、情報処理装置100を使用するユーザからの指示に基づいて、OS41の活***換処理部46と連携して活性追加処理および活性削除処理を実行する。
サーバ管理装置60は、サービスプロセッサ62、メモリ64およびROM70を有する。サービスプロセッサ62は、サーバ管理バスSMBUSを介して各CPU12に接続される。例えば、サービスプロセッサ62は、BMC(Baseboard Management Controller)であり、ROM70からメモリ64に展開されたファームウェア71を実行することで、CPUユニット10等を管理する。
ROM70には、サーバ管理処理部72、エラー解析処理部74、生存監視処理部76および活***換処理部78の機能を実現するファームウェア71が記憶されている。ROM70は、記憶装置の一例である。サーバ管理処理部72、エラー解析処理部74、生存監視処理部76および活***換処理部78は、管理部の一例である。エラー解析処理部74は、エラー特定部および交換判定部の一例である。
サーバ管理処理部72は、各CPUユニット10の電源の制御、温度情報等の取得、イベントの記録等のサーバ管理装置60として通常の処理を実行する。
エラー解析処理部74は、CPU12からエラー通知を受信した場合、エラーを解析して故障したCPUユニット10を特定し、活***換可能かどうかを判定する。また、エラー解析処理部74は、活***換可能な場合、生存監視処理部76に活***換の要求を発行する。エラー解析処理部74の処理の例は、図6に示す。
生存監視処理部76は、OS41の生存監視を実行し、OS41の生存が確認できずにタイムアウトが発生した場合、タイムアウト処理を実行する。また、生存監視処理部76は、エラー解析処理部74からの活***換の要求に基づいて、活***換が可能な場合、活***換処理部78に活***換を指示する。生存監視処理部76の処理の例は、図7に示す。
活***換処理部78は、生存監視処理部76からの活***換の指示に基づいて、OS41の活***換処理部46と連携して活***換の処理を実行する。例えば、活***換処理部78は、CPUユニット10の活性追加処理において、活性追加するCPUユニット10の電源を投入し、CPU12のリセットを解除することで、BIOS51の動作を開始させる。動作を開始したBIOS51は、CPU12とメモリ14を初期化する。
さらに、活***換処理部78は、動作中のCPUユニット10のCPU12が実行しているBIOS51に割り込みを発行し、BIOS51にCPU12の初期化を実行させる。これにより動作中のCPU12と活性追加するCPUユニット10のCPU12とが相互に接続される。この後、活***換処理部78は、OS41に割り込みを発行し、OS41にCPU12およびメモリ14を使用できるように設定させる。
一方、活***換処理部78は、CPUユニット10の活性削除処理において、OS41に割り込みを発行し、OS41に、活性削除するCPUユニット10のCPU12とメモリ14を使用させないようにする。BIOS51は、OS41への割り込みに基づいて、活性削除するCPUユニット10のCPU12と動作中のCPUユニット10のCPU12との間の接続を電気的に遮断し、活性削除するCPUユニット10の電源を遮断する。これにより、CPUユニット10が活性削除される。
図5は、図4のOS41のリカバリ処理部44の処理の一例を示す。図5に示す処理は、OS41がCPU12からエラー通知を受信したことに基づいて開始される。図5は、情報処理装置100AのOS41による制御プログラムの一例を示している。
まず、ステップS11において、リカバリ処理部44は、CPU12からエラー通知を受信した場合、エラー通知を発行したCPU12のエラーステータスレジスタからエラー情報を取得する。次に、ステップS12において、リカバリ処理部44は、取得したエラー情報に基づいて、CPU12またはメモリ14等で発生したエラー内容を解析し、CPUユニット10のリカバリが可能な場合、リカバリ処理を実行する。
次に、ステップS13において、リカバリ処理部44は、リカバリ処理が成功した場合、処理をステップS14に移行し、リカバリ処理が失敗した場合、処理をステップS15に移行する。ステップS14において、リカバリ処理部44は、OS処理部42にOS41の通常動作を継続させ、処理を終了する。なお、OS41の通常動作は、生存監視通知の定期的な発行処理を含む。生存監視通知は、ウォッチドッグタイマーコマンドにより行われてもよい。
ステップS15において、リカバリ処理部44は、CPUユニット10の再起動処理を実行し、再起動されない場合、OS41は、ハングアップ状態になる。OS41がハングアンプした場合、生存監視通知の発行は停止される。
なお、汎用のCPUが搭載されるサーバでは、CPUやメモリでエラーが発生しても、OSによるリカバリ処理が成功すると、情報処理装置を停止することなく、装置の動作継続が可能である。しかし、エラーが発生した部品は、ハードウェアの間欠故障が発生しているなど、同様のエラーが再度発生する可能性がある。このため、エラーの発生後、OSによるリカバリ処理が成功し、OSの動作が継続できたとしても、情報処理装置を継続して使用していると、再度、同様のエラーが発生する場合がある。
したがって、部品のエラーに基づいてOSによるリカバリ処理が成功した場合でも、エラーが発生した部品を継続して動作させることは、情報処理装置の安定運用の観点から好ましくない。この実施形態では、OSによるリカバリ処理に成功した後に、エラーが発生した部品を搭載するCPUユニット10を活性削除し、他のCPUユニット10を活性追加する処理を実行することで、エラーの再発生を事前に防ぐことができる。
例えば、この実施形態が適用される前の汎用のCPUを搭載した情報処理装置では、サーバ管理装置のファームウェアは、OSがエラーのリカバリ処理に成功したかどうかを判定しない。このため、リカバリ処理の成功に基づいてCPUユニット10の活性削除と活性追加とを実行することが困難である。リカバリ処理の成功に基づいてCPUユニット10の活性削除と活性追加とを実行するためには、OSとサーバ管理装置のファームウェアとに新たな機能を追加することで可能になる。
しかしながら、OSベンダの協力が得られない場合、情報処理装置のベンダとOSベンダとが連携して、リカバリ処理の成功に基づいてCPUユニット10の活性削除と活性追加とを実行する機能を実装することは困難である。そのため、この実施形態が適用される前の汎用のCPUを搭載した情報処理装置では、エラーの発生時に、情報処理装置の操作者が人手でエラー情報を確認し、エラー後の情報処理装置の状況等を確認する。そして、活性削除、活性追加をするかどうかと、活性削除、活性追加が可能かどうかを人手で判断し、手動で、活性削除、活性追加を実行している。
これに対して、本実施形態では、図6および図7で説明するように、OS41の機能変更や機能追加を行うことなく、エラーが発生したCPU12やメモリ14を含むCPUユニット10を、人手による操作なしに自動的に活性削除、活性追加することができる。すなわち、OSベンダと連携することなく、情報処理装置100Aにより、CPUユニット10を自動的に活性削除、活性追加する機能を実現することができる。さらに、生存監視の通知機能があるOSであれば、OSを問わずに本実施形態の機能を実現できる。
エラーが発生したCPU12やメモリ14を含むCPUユニット10を活***換することにより、情報処理装置100Aのリソース(CPU12やメモリ14など)を減らすことなく、情報処理装置100Aの動作を継続できる。また、エラーが発生したCPUユニット10を情報処理装置100から電気的に削除することにより、情報処理装置100Aの動作を継続したまま、CPUユニット10やCPUユニット10に搭載される故障部品を交換することができる。
図6は、図4のファームウェア71のエラー解析処理部74の処理の一例を示す。図6に示す処理は、CPU12からエラー通知を受信したことに基づいてエラー解析処理部74により開始される。図5は、情報処理装置100Aのファームウェア71による制御プログラムの一例を示している。
まず、ステップS21において、エラー解析処理部74は、CPU12からエラー通知を受信した場合、エラー通知を発行したCPU12のエラーステータスレジスタからエラー情報を取得する。次に、ステップS22において、エラー解析処理部74は、取得したエラー情報を解析し、故障部品(CPU12またはメモリ14等)を特定することで、活***換の対象の不良のCPUユニット10を特定する。不良のCPUユニット10は、エラーコンポーネントの一例である。
次に、ステップS23において、エラー解析処理部74は、解析したエラー内容を、情報処理装置100Aのユーザに開放しない内部ログや、ユーザに通知するシステムイベントログ(SEL)に登録する。
次に、ステップS24において、エラー解析処理部74は、エラー通知が、コンポーネント1の活***換によってはエラーが解消しない致命的なエラーであるかどうかを判定する。例えば、エラー解析処理部74は、CPUユニット10で発生したエラーが、電源やクロックのエラーなど、CPUユニット10の活***換中に再度発生するエラーである場合、致命的なエラーと判定する。エラー解析処理部74は、致命的なエラーと判定した場合、処理を終了し、致命的なエラーでないと判定した場合、処理をステップS25に移行する。
ステップS25において、エラー解析処理部74は、情報処理装置100に搭載されたCPUユニット10の構成管理テーブル等を参照し、使用していないCPUユニット10の情報を取得する。例えば、構成管理テーブル等は、メモリ64に保持されており、CPUユニット10に搭載されたCPU12等の部品の構成、仕様(性能や記憶容量等)が保持される。
次に、ステップS26において、エラー解析処理部74は、ステップS25で取得した使用していないCPUユニット10により活***換が可能かどうかを判定する。例えば、エラー解析処理部74は、故障の発生により活性削除するCPUユニット10の構成および仕様と同等の構成および仕様を有する使用していないCPUユニット10があるかどうかを判定する。活***換するためには、少なくともCPU12の種類が同じであることが好ましい。エラー解析処理部74は、活***換が可能な場合、処理をステップS27に移行し、活***換が困難な場合、処理を終了する。
ステップS27において、エラー解析処理部74は、生存監視処理部76に活***換を要求し、処理を終了する。すなわち、エラー解析処理部74は、不良のCPUユニット10を活性削除し、交換可能な他のCPUユニット10を活性追加することを生存監視処理部76に要求する。なお、CPUユニット10の活***換を自動的に行う機能を持たない情報処理装置のエラー解析処理部は、ステップS24、S25、S26、S27を処理する機能を持たない。
図7は、図4のファームウェア71の生存監視処理部76の処理の一例を示す。図7に示す処理は、情報処理装置100Aの起動時に開始される。図7は、情報処理装置100Aのファームウェア71による制御プログラムの一例を示している。図7に示す例では、生存監視処理部76は、図示しないウォッチドッグタイマーWDTを使用してOS41の生存監視を行う。
まず、ステップS31において、生存監視処理部76は、ウォッチドッグタイマーWDTの時間をセットし、ウォッチドッグタイマーWDTをスタートする。次に、ステップS32において、生存監視処理部76は、OS41からウォッチドッグタイマーコマンドを受信した場合、処理をステップS33に移行し、OS41からウォッチドッグタイマーコマンドを受信していない場合、処理をステップS36に移行する。ウォッチドッグタイマーコマンドは、タイマーリセットコマンドの一例であり、OS41が動作していることを示す。
例えば、OS41は、エラーを検出したCPU12から受信したエラー通知に基づいてリカバリ処理を実行し、リカバリ処理が成功した場合、ウォッチドッグタイマーコマンドを定期的に発行する。一方、OS41は、リカバリ処理が失敗した場合、再起動を繰り返し、あるいはハングアップするため、ウォッチドッグタイマーコマンドを発行しない。このため、生存監視処理部76は、ウォッチドッグタイマーWDTによるOS41の生存監視機能を利用することで、ウォッチドッグタイマーコマンドの受信により、リカバリ処理の成功を検出することができる。すなわち、既存のOS41の生存監視機能を利用することで、OS41を修正することなく、生存監視処理部76は、OS41が活***換処理を実施可能な状態にあることを検出することができる。
ステップS33において、生存監視処理部76は、ウォッチドッグタイマーWDTをリセットする。次に、ステップS34において、生存監視処理部76は、エラー解析処理部74から活***換の要求がある場合、処理をステップS35に移行し、エラー解析処理部74から活***換の要求がない場合、処理をステップS36に移行する。
ステップS35において、生存監視処理部76は、活***換の要求をクリアし、活***換処理部78に活***換を指示し、処理をステップS36に移行する。すなわち、生存監視処理部76は、不良のCPUユニット10の活性削除処理と交換可能な他のCPUユニット10の活性追加処理との指示を活***換処理部78に発行する。
ステップS36において、生存監視処理部76は、ウォッチドッグタイマーWDTがタイムアウトした場合、処理をステップS37に移行し、ウォッチドッグタイマーWDTがタイムアウトしていない場合、処理をステップS32に戻す。これにより、生存監視処理部76は、ウォッチドッグタイマーWDTの機能を利用して、OS41が生存している間、所定の周期で活***換の要求の有無を検出することができる。
ステップS37において、生存監視処理部76は、タイムアウト処理を実行し、処理を終了する。例えば、生存監視処理部76は、タイムアウトを発生させたCPUユニット10のリセットや、メモリダンプの取得を行う。
なお、CPUユニット10の活***換を自動的に行う機能を持たない情報処理装置の生存監視処理部は、ステップS34、S35を処理する機能を持たない。このため、ステップS33でウォッチドッグタイマーWDTがリセットされた後、処理はステップS36に移行される。このため、CPU12からのエラー通知に基づいてOSのリカバリ処理が成功したかどうかは、生存監視機能以外の機能により判定される。例えば、OSを修正し、リカバリ処理の成功/失敗をOSからBIOSに通知する場合、情報処理装置のベンダとOSのベンダとが連携して、BIOSとOSとを修正する。このため、OSのベンダの協力が得られない場合、活***換を自動的に行う機能の実現が困難となる。
以上、図4から図7に示す実施形態においても、図1から図3に示す実施形態と同様の効果を得ることができる。例えば、CPUユニット10のいずれかの故障に基づいて、活***換が可能かどうかをファームウェア71により判定し、活***換を自動的に実行することができる。また、活***換中にエラーが再度発生するかどうかを判定し、エラーが再度発生すると判定された場合、活***換の実行を抑止することができる。サーバ管理バスSMBUSを介して使用していないCPUユニット10のCPU情報を取得することで、故障したCPUユニット10を、同等の性能を有するCPUユニット10に活***換することができる。
さらに、この実施形態では、生存監視処理部76は、ウォッチドッグタイマーWDTの機能を利用して、OS41が生存している間、所定の周期で活***換の要求の有無を検出することができる。また、生存監視処理部76は、ウォッチドッグタイマーWDTによるOS41の生存監視機能を利用することで、ウォッチドッグタイマーコマンドの受信により、リカバリ処理の成功を検出することができる。すなわち、既存のOS41の生存監視機能を利用することで、OS41を修正することなく、生存監視処理部76は、OS41が活***換処理を実行可能な状態にあることを検出することができる。
図8は、別の実施形態における情報処理装置100Bの一例を示す。図4と同様の要素については、同じ符号を付し、詳細な説明は省略する。例えば、図8に示す情報処理装置100Bは、汎用のCPUが搭載されるサーバである。
この実施形態の情報処理装置100Bは、図4のIOユニット20の代わりにIOユニット20Bを有する。IOユニット20Bは、図4に示したサーバ管理装置60を持たず、エラー解析処理部74および生存監視処理部76の機能は、ROM50に記憶されるBIOS51により実現される。換言すれば、エラー解析処理部74および生存監視処理部76の機能は、CPU12が実行するBIOS51により実現される。また、BIOS51は、図4に示したBIOS51と同様に、BIOS処理部52および活***換処理部54を有する。但し、活***換処理部54は、図4のファームウェア71の活***換処理部78と同様の機能を有する。
CPU12からエラー通知を受信したことに基づいて、情報処理装置100Bが活***換を自動的に実行する動作は、BIOS51により実行されることを除き、図6および図7に示した動作と同様である。
以上、図8に示す実施形態では、図4に示したファームウェア71の機能が、BIOS51により実現される。このため、図1から図7に示した実施形態と同様に、CPUユニット10のいずれかの故障に基づいて、活***換が可能かどうかをBIOS51により自動的に判定し、活***換を自動的に実行することができる。
さらに、この実施形態では、IOユニット20Bに図4に示したサーバ管理装置60を設けることなく、活***換を自動的に実行することができる。これにより、IOユニット20Bの構成を、図4に示したIOユニット20の構成よりも簡易にすることができ、情報処理装置100Bのコストを削減することができる。
図9は、別の実施形態における情報処理装置100Cの一例を示す。図4と同様の要素については、同じ符号を付し、詳細な説明は省略する。例えば、図9に示す情報処理装置100Cは、汎用のCPUが搭載されるサーバである。
この実施形態の情報処理装置100Cは、図4に示した複数のCPUユニット10の代わりに複数のCPUユニット10Cを有し、図4に示したIOユニット20の代わりにIOユニット20Cを有する。また、情報処理装置100Cは、図4に示したサーバ管理装置60の代わりに装置管理部80Cを有する。
各CPUユニット10Cは、CPU12とIOコントローラ30との間にIOコントローラ16C(CPUインタフェース部)を有する。例えば、CPUユニット10Cは、システム基板の形態を有する。IOコントローラ16Cは、CPU12側の入出力バスIOBUSを介して各CPU12に接続され、IOユニット20C側の入出力バスIOBUSを介してIOコントローラ30に接続される。
ROM50Cは、IOコントローラ16Cを介して各CPU12に接続される。ROM50Cには、図4のROM50と同様に、BIOS51が記憶されている。また、各CPUユニット10Cは、サーバ管理バスSMBUSに接続されたサーバ管理部60Cを有する。
この実施形態の情報処理装置100Cは、情報処理装置100Cの管理を行う装置管理部80Cとは別に、活***換処理を行うサーバ管理部60Cを有する。そして、IOコントローラ30の一部の機能を実現するIOコントローラ16Cと、BIOS51を記憶するROM50Cと、サーバ管理部60Cとが各CPUユニット10Cに搭載される。CPUユニット10の活***換処理は、任意のCPUユニット10C(マスタ)上のサーバ管理部60Cにより実行される。各CPUユニット10Cのサーバ管理部60Cは、管理部の一例である。
サーバ管理部60Cは、図4に示したサーバ管理装置60と同様に、サービスプロセッサ62、メモリ64およびROM70Cを有する。ROM70Cに格納されたファームウェア71Cは、サーバ管理処理部72、エラー解析処理部74、生存監視処理部76、活***換処理部78および連携処理部79Cの機能を実現する。連携処理部79Cは、サーバ管理部60Cのファームウェア71Cの連携処理部79Cと連携して情報処理装置100Cを管理する。
サーバ管理処理部72、エラー解析処理部74、生存監視処理部76および活***換処理部78の機能は、図4に示したサーバ管理処理部72、エラー解析処理部74、生存監視処理部76および活***換処理部78の機能とそれぞれ同じである。
このため、図6および図7で説明した活***換処理は、各CPUユニット10Cのサーバ管理部60Cのサービスプロセッサ62が実行するファームウェア71Cにより実現される。活***換処理は、複数のCPUユニット10Cのうち、情報処理装置100Cの起動時に設定されるマスタCPUユニット10Cのサーバ管理部60Cにより実行される。
装置管理部80Cは、サービスプロセッサ82C、メモリ84CおよびROM90Cを有する。サービスプロセッサ82Cは、サーバ管理バスSMBUSを介して各CPU12および各サーバ管理部60Cに接続される。例えば、サービスプロセッサ82Cは、BMCであり、ROM90Cからメモリ84Cに展開されたファームウェア91Cを実行することで、CPUユニット10C等を管理する。ROM90Cに格納されたファームウェア91Cは、サーバ管理処理部92、活***換処理部98Cおよび連携処理部99Cの機能を実現する。
IOユニット20Cは、図4に示したサーバ管理装置60を持たず、エラー解析処理部74および生存監視処理部76の機能は、ROM70Cに記憶されるファームウェア71Cにより実現される。換言すれば、エラー解析処理部74および生存監視処理部76の機能は、サービスプロセッサ62が実行するファームウェア71Cにより実現される。
BIOS51は、図4のBIOSと同様に、BIOS処理部52および活***換処理部54を有する。但し、活***換処理部54は、図4のファームウェア71の活***換処理部78と同様の機能を有する。
以上、図9に示す実施形態では、図4に示したファームウェア71の機能が、各CPUユニット10Cに搭載されたサーバ管理部60Cのいずれかのファームウェア71Cにより実現される。このため、図1から図7に示した実施形態と同様に、CPUユニット10Cのいずれかの故障に基づいて、活***換が可能かどうかをBIOS51により自動的に判定し、活***換を自動的に実行することができる。
さらに、この実施形態では、IOユニット20Cに図4に示したサーバ管理装置60を設けることなく、活***換を自動的に実行することができる。これにより、IOユニット20Cの構成を、図4に示したIOユニット20の構成よりも簡易にすることができ、情報処理装置100Bのコストを削減することができる。
以上の図1から図9に示す実施形態に関し、さらに以下の付記を開示する。
(付記1)
プロセッサをそれぞれ含む複数のコンポーネントと、前記複数のコンポーネントを管理する管理部と、を有する情報処理装置であって、
前記管理部は、
前記プロセッサからエラー通知を受信した場合、エラー通知を出力した前記プロセッサに保持されたエラー情報を解析することで、エラーの原因となった部品を含む前記コンポーネントであるエラーコンポーネントを特定するエラー特定部と、
前記エラーコンポーネントと活***換可能な他のコンポーネントが存在する場合、活***換の要求を発行する交換判定部と、
情報処理装置により実行されるオペレーティングシステムが生存しているかどうかを監視し、前記活***換の要求が発行された場合であって、前記オペレーティングシステムの生存が確認された場合、前記エラーコンポーネントの活性削除処理と前記他のコンポーネントの活性追加処理との指示を発行する生存監視処理部と、
前記活性削除処理と前記活性追加処理との指示に基づいて、前記活性削除処理と前記活性追加処理とを開始する活***換処理部と、を有する情報処理装置。
(付記2)
前記交換判定部は、エラーが前記活***換中に再度発生することを判定した場合、前記エラーコンポーネントと活***換可能な他のコンポーネントが存在する場合にも、前記活***換の要求を発行しない、付記1に記載の情報処理装置。
(付記3)
前記生存監視処理部は、前記オペレーティングシステムの生存が確認されない場合、前記活***換の要求が発行された場合であっても、前記活性削除処理と前記活性追加処理の指示の発行を抑止する、付記1または付記2に記載の情報処理装置。
(付記4)
前記生存監視処理部は、前記オペレーティングシステムから周期的に発行されるタイマーリセットコマンドを受信した場合、タイマーをリセットすることで、前記オペレーティングシステムの生存を認識し、前記活***換の要求が発行された場合、前記タイマーのリセット後に前記活性削除処理と前記活性追加処理の指示を発行する、付記1ないし付記3のいずれか1項に記載の情報処理装置。
(付記5)
前記交換判定部は、前記管理部と複数の前記コンポーネントとを接続する管理バスを介して、未使用の前記コンポーネントに含まれる前記プロセッサの仕様情報を取得し、取得した仕様情報と前記エラーコンポーネントに含まれる前記プロセッサの仕様情報との比較に基づいて、活***換可能かどうかを判定する、付記1ないし付記4のいずれか1項に記載の情報処理装置。
(付記6)
管理バスを介して前記複数のコンポーネントの前記プロセッサに接続される管理プロセッサを有し、
前記管理部は、前記管理プロセッサが実行するファームウェアにより実現される、付記1ないし付記5のいずれか1項に記載の情報処理装置。
(付記7)
前記管理プロセッサは、前記複数のコンポーネントにそれぞれ搭載され、
前記管理部は、前記複数のコンポーネントのそれぞれに搭載された前記管理プロセッサのいずれかが実行するファームウェアにより実現される、付記6に記載の情報処理装置。
(付記8)
入出力バスを介して前記複数のコンポーネントの前記プロセッサに接続され、所定数のインタフェースと前記複数のコンポーネントの前記プロセッサにより実行されるファームウェアを記憶する記憶装置とを含む入出力ユニットを有し、
前記管理部は、前記プロセッサが実行するファームウェアにより実現される、付記1ないし付記5のいずれか1項に記載の情報処理装置。
(付記9)
プロセッサをそれぞれ含む複数のコンポーネントと、前記複数のコンポーネントを管理する管理部と、を有する情報処理装置の制御プログラムであって、
前記情報処理装置に、
前記プロセッサからエラー通知を受信した場合、エラー通知を出力した前記プロセッサに保持されたエラー情報を解析することで、エラーの原因となった部品を含む前記コンポーネントであるエラーコンポーネントを特定させ、
前記エラーコンポーネントと活***換可能な他のコンポーネントが存在する場合、活***換の要求を発行させ、
情報処理装置により実行されるオペレーティングシステムが生存しているかどうかを監視させ、
前記活***換の要求が発行された場合であって、前記オペレーティングシステムの生存が確認された場合、前記エラーコンポーネントの活性削除処理と前記他のコンポーネントの活性追加処理との指示を発行させ、
前記活性削除処理と前記活性追加処理との指示に基づいて、前記活性削除処理と前記活性追加処理とを開始させる、情報処理装置の制御プログラム。
(付記10)
エラーが前記活***換中に再度発生することを判定した場合、前記エラーコンポーネントと活***換可能な他のコンポーネントが存在する場合にも、前記活***換の要求を発行しない、付記9に記載の情報処理装置の制御プログラム。
(付記11)
前記オペレーティングシステムの生存が確認されない場合、前記活***換の要求が発行された場合であっても、前記活性削除処理と前記活性追加処理の指示の発行を抑止させる、付記9または付記10に記載の情報処理装置の制御プログラム。
(付記12)
前記オペレーティングシステムから周期的に発行されるタイマーリセットコマンドを受信した場合、タイマーをリセットすることで、前記オペレーティングシステムの生存を認識させ、
前記活***換の要求が発行された場合、前記タイマーのリセット後に前記活性削除処理と前記活性追加処理の指示を発行させる、付記9ないし付記11のいずれか1項に記載の情報処理装置の制御プログラム。
(付記13)
前記管理部と複数の前記コンポーネントとを接続する管理バスを介して、未使用の前記コンポーネントに含まれる前記プロセッサの仕様情報を取得させ、
取得した仕様情報と前記エラーコンポーネントに含まれる前記プロセッサの仕様情報との比較に基づいて、活***換可能かどうかを判定させる、付記9ないし付記12のいずれか1項に記載の情報処理装置の制御プログラム。
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
1 コンポーネント
2 プロセッサ
3 メモリ
4 管理部
5 エラー特定部
6 交換判定部
7 生存監視処理部
8 活***換処理部
10、10C CPUユニット
12 CPU
14 メモリ
20、20B IOユニット
41 OS
42 OS処理部
44 リカバリ処理部
46 活***換処理部
48 生存監視処理部
50 ROM
51 BIOS
52 BIOS処理部
54 活***換処理部
60 サーバ管理装置
60C サーバ管理部
62 サービスプロセッサ
64 メモリ
70、70C ROM
71、71C ファームウェア
72 サーバ管理処理部
74 エラー解析処理部
76 生存監視処理部
78 活***換処理部
100、100A、100B、100C 情報処理装置
IOBUS 入出力バス
SMBUS サーバ管理バス

Claims (11)

  1. プロセッサをそれぞれ含む複数のコンポーネントと、前記複数のコンポーネントを管理する管理部と、を有する情報処理装置であって、
    前記管理部は、
    前記プロセッサからエラー通知を受信した場合、エラー通知を出力した前記プロセッサに保持されたエラー情報を解析することで、エラーの原因となった部品を含む前記コンポーネントであるエラーコンポーネントを特定するエラー特定部と、
    前記エラーコンポーネントと活***換可能な他のコンポーネントが存在する場合、活***換の要求を発行し、前記エラーが前記活***換中に再度発生するエラーであることを判定した場合、前記エラーコンポーネントと活***換可能な他のコンポーネントが存在する場合にも、前記活***換の要求を発行しない交換判定部と、
    前記プロセッサにより実行されるオペレーティングシステムが生存しているかどうかを監視し、前記活***換の要求が発行された場合であって、前記オペレーティングシステムの生存が確認された場合、前記エラーコンポーネントの活性削除処理と前記他のコンポーネントの活性追加処理との指示を発行する生存監視処理部と、
    前記活性削除処理と前記活性追加処理との指示に基づいて、前記活性削除処理と前記活性追加処理とを開始する活***換処理部と、を有する情報処理装置。
  2. 前記生存監視処理部は、前記オペレーティングシステムの生存が確認されない場合、前記活***換の要求が発行された場合であっても、前記活性削除処理と前記活性追加処理の指示の発行を抑止する、請求項1に記載の情報処理装置。
  3. 前記生存監視処理部は、前記オペレーティングシステムから周期的に発行されるタイマーリセットコマンドを受信した場合、タイマーをリセットすることで、前記オペレーティングシステムの生存を認識し、前記活***換の要求が発行された場合、前記タイマーのリセット後に前記活性削除処理と前記活性追加処理の指示を発行する、請求項1または請求項2に記載の情報処理装置。
  4. 前記交換判定部は、前記管理部と複数の前記コンポーネントとを接続する管理バスを介して、未使用の前記コンポーネントに含まれる前記プロセッサの仕様情報を取得し、取得した仕様情報と前記エラーコンポーネントに含まれる前記プロセッサの仕様情報との比較に基づいて、活***換可能かどうかを判定する、請求項1ないし請求項3のいずれか1項に記載の情報処理装置。
  5. 管理バスを介して前記複数のコンポーネントの前記プロセッサに接続される管理プロセッサを有し、
    前記管理部は、前記管理プロセッサが実行するファームウェアにより実現される、請求項1ないし請求項4のいずれか1項に記載の情報処理装置。
  6. 前記管理プロセッサは、前記複数のコンポーネントにそれぞれ搭載され、
    前記管理部は、前記複数のコンポーネントのそれぞれに搭載された前記管理プロセッサのいずれかが実行するファームウェアにより実現される、請求項5に記載の情報処理装置。
  7. 入出力バスを介して前記複数のコンポーネントの前記プロセッサに接続され、所定数のインタフェースと前記複数のコンポーネントの前記プロセッサにより実行されるファームウェアを記憶する記憶装置とを含む入出力ユニットを有し、
    前記管理部は、前記プロセッサが実行するファームウェアにより実現される、請求項1ないし請求項4のいずれか1項に記載の情報処理装置。
  8. プロセッサをそれぞれ含む複数のコンポーネントと、管理バスを介して前記複数のコンポーネントの前記プロセッサに接続される管理プロセッサと、前記管理プロセッサが実行するファームウェアにより実現され、前記複数のコンポーネントを管理する管理部と、を有する情報処理装置であって、
    前記管理部は、
    前記プロセッサからエラー通知を受信した場合、エラー通知を出力した前記プロセッサに保持されたエラー情報を解析することで、エラーの原因となった部品を含む前記コンポーネントであるエラーコンポーネントを特定するエラー特定部と、
    前記エラーコンポーネントと活***換可能な他のコンポーネントが存在する場合、活***換の要求を発行する交換判定部と、
    前記プロセッサにより実行されるオペレーティングシステムが生存しているかどうかを監視し、前記活***換の要求が発行された場合であって、前記オペレーティングシステムの生存が確認された場合、前記エラーコンポーネントの活性削除処理と前記他のコンポーネントの活性追加処理との指示を発行する生存監視処理部と、
    前記活性削除処理と前記活性追加処理との指示に基づいて、前記活性削除処理と前記活性追加処理とを開始する活***換処理部と、を有する情報処理装置。
  9. 前記管理プロセッサは、前記複数のコンポーネントにそれぞれ搭載され、
    前記管理部は、前記複数のコンポーネントのそれぞれに搭載された前記管理プロセッサのいずれかが実行するファームウェアにより実現される、請求項8に記載の情報処理装置。
  10. プロセッサをそれぞれ含む複数のコンポーネントと、入出力バスを介して前記複数のコンポーネントの前記プロセッサに接続され、所定数のインタフェースと前記複数のコンポーネントの前記プロセッサにより実行されるファームウェアを記憶する記憶装置とを含む入出力ユニットと、前記プロセッサが実行するファームウェアにより実現され、前記複数のコンポーネントを管理する管理部と、を有する情報処理装置であって、
    前記管理部は、
    前記プロセッサからエラー通知を受信した場合、エラー通知を出力した前記プロセッサに保持されたエラー情報を解析することで、エラーの原因となった部品を含む前記コンポーネントであるエラーコンポーネントを特定するエラー特定部と、
    前記エラーコンポーネントと活***換可能な他のコンポーネントが存在する場合、活***換の要求を発行する交換判定部と、
    前記プロセッサにより実行されるオペレーティングシステムが生存しているかどうかを監視し、前記活***換の要求が発行された場合であって、前記オペレーティングシステムの生存が確認された場合、前記エラーコンポーネントの活性削除処理と前記他のコンポーネントの活性追加処理との指示を発行する生存監視処理部と、
    前記活性削除処理と前記活性追加処理との指示に基づいて、前記活性削除処理と前記活性追加処理とを開始する活***換処理部と、を有する情報処理装置。
  11. プロセッサをそれぞれ含む複数のコンポーネントと、前記複数のコンポーネントを管理する管理部と、を有する情報処理装置の制御プログラムであって、
    前記情報処理装置に、
    前記プロセッサからエラー通知を受信した場合、エラー通知を出力した前記プロセッサに保持されたエラー情報を解析することで、エラーの原因となった部品を含む前記コンポーネントであるエラーコンポーネントを特定させ、
    前記エラーコンポーネントと活***換可能な他のコンポーネントが存在する場合、活***換の要求を発行させ、前記エラーが前記活***換中に再度発生するエラーであることを判定した場合、前記エラーコンポーネントと活***換可能な他のコンポーネントが存在する場合にも、前記活***換の要求を発行させず、
    前記プロセッサにより実行されるオペレーティングシステムが生存しているかどうかを監視させ、
    前記活***換の要求が発行された場合であって、前記オペレーティングシステムの生存が確認された場合、前記エラーコンポーネントの活性削除処理と前記他のコンポーネントの活性追加処理との指示を発行させ、
    前記活性削除処理と前記活性追加処理との指示に基づいて、前記活性削除処理と前記活性追加処理とを開始させる、情報処理装置の制御プログラム。
JP2019138029A 2019-07-26 2019-07-26 情報処理装置および情報処理装置の制御プログラム Active JP7351129B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019138029A JP7351129B2 (ja) 2019-07-26 2019-07-26 情報処理装置および情報処理装置の制御プログラム
US16/932,885 US11422877B2 (en) 2019-07-26 2020-07-20 Information processing apparatus, method, and non-transitory computer-readable storage medium for storing control program of information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019138029A JP7351129B2 (ja) 2019-07-26 2019-07-26 情報処理装置および情報処理装置の制御プログラム

Publications (2)

Publication Number Publication Date
JP2021022144A JP2021022144A (ja) 2021-02-18
JP7351129B2 true JP7351129B2 (ja) 2023-09-27

Family

ID=74187575

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019138029A Active JP7351129B2 (ja) 2019-07-26 2019-07-26 情報処理装置および情報処理装置の制御プログラム

Country Status (2)

Country Link
US (1) US11422877B2 (ja)
JP (1) JP7351129B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6681282B1 (en) 2000-08-31 2004-01-20 Hewlett-Packard Development Company, L.P. Online control of a multiprocessor computer system
JP2012150699A (ja) 2011-01-20 2012-08-09 Nec Corp 故障検出装置、故障検出方法、及び、故障検出プログラム
JP2017224272A (ja) 2016-02-24 2017-12-21 廣達電腦股▲ふん▼有限公司 ハードウェア障害回復システム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5153881A (en) 1989-08-01 1992-10-06 Digital Equipment Corporation Method of handling errors in software
US6618805B1 (en) * 2000-06-30 2003-09-09 Sun Microsystems, Inc. System and method for simplifying and managing complex transactions in a distributed high-availability computer system
US6973517B1 (en) * 2000-08-31 2005-12-06 Hewlett-Packard Development Company, L.P. Partition formation using microprocessors in a multiprocessor computer system
JP2004054616A (ja) 2002-07-19 2004-02-19 Hitachi Ltd ファームウェア自動修復機能を有する情報処理装置
TWI621942B (zh) * 2015-01-16 2018-04-21 緯創資通股份有限公司 作業系統層次之工作階段容錯移轉方法以及使用該方法的系統
US10552270B2 (en) * 2016-12-22 2020-02-04 Intel Corporation Systems and methods for in-field core failover

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6681282B1 (en) 2000-08-31 2004-01-20 Hewlett-Packard Development Company, L.P. Online control of a multiprocessor computer system
JP2012150699A (ja) 2011-01-20 2012-08-09 Nec Corp 故障検出装置、故障検出方法、及び、故障検出プログラム
JP2017224272A (ja) 2016-02-24 2017-12-21 廣達電腦股▲ふん▼有限公司 ハードウェア障害回復システム

Also Published As

Publication number Publication date
US20210026726A1 (en) 2021-01-28
US11422877B2 (en) 2022-08-23
JP2021022144A (ja) 2021-02-18

Similar Documents

Publication Publication Date Title
US10229017B1 (en) Resetting fibre channel devices for failover in high availability backup systems
US9582373B2 (en) Methods and systems to hot-swap a virtual machine
US9026860B2 (en) Securing crash dump files
US7574627B2 (en) Memory dump method, memory dump program and computer system
US20100162043A1 (en) Method, Apparatus, and System for Restarting an Emulated Mainframe IOP
JP2004532442A5 (ja)
US20170147422A1 (en) External software fault detection system for distributed multi-cpu architecture
US20190073285A1 (en) Information processing device and information processing method
JP7002358B2 (ja) 情報処理システム、情報処理装置、情報処理装置のbios更新方法、及び情報処理装置のbios更新プログラム
US20130117518A1 (en) System controller, information processing system and method of saving and restoring data in the information processing system
CN112970002A (zh) 用于可配置错误处理的***
US9148479B1 (en) Systems and methods for efficiently determining the health of nodes within computer clusters
CN112199240A (zh) 一种节点故障时进行节点切换的方法及相关设备
CN114116280A (zh) 交互式bmc自恢复方法、***、终端及存储介质
JP5314731B2 (ja) データ処理装置間の基本入出力プログラムの同期化方法及びコンピュータシステム
US10416913B2 (en) Information processing device that monitors operation of storage utilizing specific device being connected to storage
US7996707B2 (en) Method to recover from ungrouped logical path failures
JP2017078998A (ja) 情報処理装置およびログ管理方法、並びにコンピュータ・プログラム
JP7351129B2 (ja) 情報処理装置および情報処理装置の制御プログラム
CN109358982B (zh) 硬盘自愈装置、方法以及硬盘
JP6828558B2 (ja) 管理装置、管理方法及び管理プログラム
JP6424134B2 (ja) 計算機システム及び計算機システムの制御方法
US11620199B1 (en) Method and system for detection of post routine deviation for a network device
US20130198377A1 (en) Control method, control system, information processing apparatus, and computer-readable non-transitory medium
US11797368B2 (en) Attributing errors to input/output peripheral drivers

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220407

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230308

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230328

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230516

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230815

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230828

R150 Certificate of patent or registration of utility model

Ref document number: 7351129

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150