(57)【要約】  該システムにおいて障害が発生した場合、第１処理部および第２処理部とそれぞれ第１の経路および第２の経路を介して接続された装置（２０，３０，３１，３２，８０，８１）が保持する障害情報を、第１の経路を介して取得する第１取得部（１２）と、第１取得部によって障害情報が取得できない場合に、障害情報を、第２の経路を介して取得する第２取得部（４１）と、第２取得部によって取得された障害情報に基づいて、障害原因箇所を推定する第２障害箇所推定部（４２）と、第２障害箇所推定部により推定された障害箇所を使用している主体を特定する特定部（１６）と、特定部により特定された主体を終了させる、終了部（１７）と、をそなえる。
2012029147.tif 000002
【特許請求の範囲】
【請求項１】
第１処理部と、第２処理部と、第１処理部と第１の経路を介して接続され、第２処理部と第２の経路を介して接続される装置とをそなえたシステムであって、
該第１処理部が、
該システムにおいて障害が発生した場合、前記装置が保持する障害情報を、該第１の経路を介して取得する第１取得部と、
該第１取得部によって該障害情報を前記装置から取得できない場合に、該障害情報が取得できない状態を示す無応答情報を該第２処理部に通知する第１通知部と、をそなえ、
該第２処理部が、
該第１通知部から該無応答情報の通知があった場合に、該障害情報を、該第２の経路を介して前記装置から取得する第２取得部と、
該第２取得部が取得した障害情報に基づいて、障害原因箇所を推定する第２障害箇所推定部と、
該第２障害箇所推定部により推定された障害箇所を、該第１処理部に通知する第２通知部と、をそなえるとともに、
さらに、該第１処理部が、
該第２障害箇所推定部により推定された障害箇所を使用している主体を特定する特定部と、
該特定部により特定された主体を終了させる、終了部と、をそなえたことを特徴とするシステム。
【請求項２】
該装置を複数そなえ、
該複数の装置同士が、該第１処理部を上位として、該第１の経路を介して多段に接続され、
該第２取得部が、該第１取得部によって取得できなかった障害情報を、該第２の経路を介して取得することを特徴とする請求項１記載のシステム。
【請求項３】
該第１通知部は、該第１取得部によって取得できなかった障害情報の格納位置を示す位置情報を該第２処理部に通知し、
該第２取得部は、該位置情報に基づいて、該第１取得部によって取得できなかった障害情報を取得することを特徴とする請求項２記載のシステム。
【請求項４】
該位置情報は、該第１取得部によって取得できなかった障害情報のうち、最上位の装置が保持する障害情報の格納位置を示し、
該第２取得部は、該位置情報に基づいて、該最上位の装置が保持する障害情報および該最上位の装置の下位に接続された装置が保持する障害情報を取得することを特徴とする請求項３記載のシステム。
【請求項５】
該第２障害箇所推定部によって推定された障害原因箇所（以下、第２障害原因箇所という）と、該第２障害原因箇所の障害情報と、に基づいて、システム障害情報を生成する生成部をそなえたことを特徴とする請求項４記載のシステム。
【請求項６】
該第１処理部が、
該第１取得部が取得した障害情報に基づいて、障害原因箇所を推定する第１障害箇所推定部と、
該第１障害箇所推定部によって推定された障害原因箇所（以下、第１障害原因箇所という）、および、該第１障害原因箇所の障害情報を、該第２処理部に通知する第３通知部と、をそなえ、
該生成部は、該第３通知部により通知された第１障害原因箇所と、該第１障害原因箇所の障害情報と、該第２障害原因箇所と、該第２障害原因箇所の障害情報と、該無応答情報と、該位置情報とに基づいて、システム障害情報を生成することを特徴とする請求項５記載のシステム。
【請求項７】
該第１通知部は、所定時間、該第１取得部が障害情報を取得できない場合に、該無応答情報を該第２処理部に通知することを特徴とする請求項１記載のシステム。
【請求項８】
第１処理部と、第２処理部とをそなえたシステムにおける障害処理方法であって、
第１処理部が、該システムにおいて障害が発生した場合、該第１処理部および該第２処理部とそれぞれ第１の経路および第２の経路を介して接続された装置が保持する障害情報を、該第１の経路を介して取得する第１取得ステップと、
該第１取得ステップによって障害情報が取得できない場合に、該装置が無応答である旨を示す無応答情報を第１処理部が該第２処理部に通知する第１通知ステップと、
該第１通知ステップによって該無応答情報の通知があった場合に、第２処理部が、該第２の経路を介して障害情報を装置から取得する第２取得ステップと、
該第２取得ステップによって取得された障害情報に基づいて、第２処理部が障害原因箇所を推定する第２障害箇所推定ステップと、
第２処理部が、該第２障害箇所推定ステップにより推定された障害箇所を、該第１処理部に通知する第２通知ステップと、
第１処理部が、該第２障害箇所推定ステップにより推定された障害箇所を使用している主体を特定する特定ステップと、
該特定ステップにより特定された主体を終了させる終了ステップと、をそなえたことを特徴とする障害処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムおよび障害処理方法に関する。
【背景技術】
【０００２】
システム内において障害が発生した場合に、システムにそなえられるＲＡＭ（Random Access Memory）から障害情報を読み出し、解析を行なう技術が知られている。また、障害情報を解析することで、障害原因箇所を推定する方法（Fault Location）が知られている。
障害原因箇所を推定する方法を、図９を用いて説明する。図９は従来のシステムのハードウェア構成を示す図である。ここで、システム２００は、CPU（Central Processing Unit）２１０，チップセット２２０，PCI（Peripheral Component Interconnect）-Expressスイッチ（以下、単にスイッチという場合がある）２３０−２３５およびPCI-Card２４０をそなえる。スイッチ２３０は、スイッチ２３１およびスイッチ２３２とPCI-Expressバスを介して通信可能に接続され、スイッチ２３３は、スイッチ２３４およびスイッチ２３５とPCI-Expressバスを介して相互に接続されている。さらに、チップセット２２０は、スイッチ２３０およびスイッチ２３３とPCI-Expressバスを介して通信可能に接続されている。また、スイッチ２３１，２３２，２３４，２３５のそれぞれに、PCI-Expressバスを介してPCI-Card２４０が接続されている。【０００３】
上記のように構成されたシステム２００において、例えば、スイッチ２３２において障害が発生すると、チップセット２２０がCPU２１０に対して割り込みを行なうことによって障害の発生を通知する。CPU２１０は、このチップセット２２０からの割り込みを受けることで、システム２００内で障害が発生したことを検知する。そして、CPU２１０は、障害が発生したことを検知すると、PCI-Expressバスを介して、チップセット２２０，スイッチ２３０−２３５およびPCI-Card２４０がそれぞれそなえるレジスタを読み出し、障害の要因を解析し、障害の原因箇所を推定する。【０００４】
しかしながら、PCI-Expressバスのリンク切れやPCI-Express送受信バッファのハング等の種々の理由によって、レジスタの読み出しができない状態（Master Abort）が発生する場合がある。図１０は、レジスタの読み出しができない場合を説明するための図である。
図１０に示すように、例えば、チップセット２２０とスイッチ２３０との間のPCI-Expressバスがリンク切れを起こしている場合、CPU２１０は、スイッチ２３０−２３２や、スイッチ２３１，２３２に接続されているPCI-Card２４０がそれぞれそなえるレジスタの読み出しができなくなる。【０００５】
したがって、具体的に障害の原因箇所を推定することができず、例えば、障害を解消するためには、スイッチ２３０−２３２およびスイッチ２３１，２３２に接続されているPCI-Card２４０の全ての部品の交換が必要となる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平０５−２８２１６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
すなわち、Master Abort発生時には、具体的に障害の原因箇所を推定することができないという問題点があった。
本件は、Master Abort発生時においても、高精度に障害の原因箇所を推定することを目的の一つとする。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本件の他の目的の1つとして位置付けることができる。
【課題を解決するための手段】
【０００８】
本システムは、第１処理部と、第２処理部と、第１処理部と第１の経路を介して接続され、第２処理部と第２の経路を介して接続される装置とをそなえたシステムであって、該第１処理部が、該システムにおいて障害が発生した場合、前記装置が保持する障害情報を、該第１の経路を介して取得する第１取得部と、該第１取得部によって該障害情報を前記装置から取得できない場合に、該障害情報が取得できない状態を示す無応答情報を該第２処理部に通知する第１通知部と、をそなえ、該第２処理部が、該第１通知部から該無応答情報の通知があった場合に、該障害情報を、該第２の経路を介して前記装置から取得する第２取得部と、該第２取得部が取得した障害情報に基づいて、障害原因箇所を推定する第２障害箇所推定部と、該第２障害箇所推定部により推定された障害箇所を、該第１処理部に通知する第２通知部と、をそなえるとともに、さらに、該第１処理部が、該第２障害箇所推定部により推定された障害箇所を使用している主体を特定する特定部と、該特定部により特定された主体を終了させる、終了部と、をそなえる。【０００９】
また、本障害処理方法は、第１処理部と、第２処理部とをそなえたシステムにおける障害処理方法であって、第１処理部が、該システムにおいて障害が発生した場合、該第１処理部および該第２処理部とそれぞれ第１の経路および第２の経路を介して接続された装置が保持する障害情報を、該第１の経路を介して取得する第１取得ステップと、該第１取得ステップによって障害情報が取得できない場合に、該装置が無応答である旨を示す無応答情報を第１処理部が該第２処理部に通知する第１通知ステップと、該第１通知ステップによって該無応答情報の通知があった場合に、第２処理部が、該第２の経路を介して障害情報を装置から取得する第２取得ステップと、該第２取得ステップによって取得された障害情報に基づいて、第２処理部が障害原因箇所を推定する第２障害箇所推定ステップと、第２処理部が、該第２障害箇所推定ステップにより推定された障害箇所を、該第１処理部に通知する第２通知ステップと、第１処理部が、該第２障害箇所推定ステップにより推定された障害箇所を使用している主体を特定する特定ステップと、該特定ステップにより特定された主体を終了させる、終了ステップと、をそなえる。
【発明の効果】
【００１０】
本システムおよび障害処理方法によれば、Master Abort発生時においても、高精度に障害の原因箇所を推定することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】実施形態の一例にかかるシステムの構成を示す図である。
【図２】実施形態の一例にかかるシステムの詳細なハードウェア構成を示す図である。
【図３】実施形態の一例にかかるスイッチの構成を示す図である。
【図４】実施形態の一例にかかる割当部の動作を説明するための図である。
【図５】実施形態の一例にかかる障害検出装置の動作を説明するためのフローチャートである。
【図６】実施形態の一例にかかるSMI割り込みを説明するための図である。
【図７】実施形態の一例にかかるMCの動作を説明するための図である。
【図８】実施形態の一例にかかるシステム障害情報を示す図である。
【図９】従来のシステムのハードウェア構成を示す図である。
【図１０】従来のシステムにおいてレジスタの読み出しができない場合を説明するための図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照して本発明のシステムおよび障害処理方法に係る実施の形態を説明する。
図１は、実施形態の一例に係るシステムの構成を示す図である。図２は、実施形態の一例に係るシステムの詳細なハードウェア構成を示す図である。システム１は、第１記憶部２，第２記憶部３，CPU１０，チップセット２０，PCI-Expressスイッチ３０−３２，MC（Micro Controller）４０，PCI-Expressバス５０−５４，I2C（Inter-Integrated Circuit）バス６０，複数のPCI-Card８０および複数のPCI-Card８１をそなえている。ここで、システム１は、例えば、IO（Input/Output）サブシステムである。
【００１３】
CPU１０とチップセット２０とは、例えばQPI（Quick Path Interconnect）バス５５を介して通信可能に接続されている。チップセット２０は、PCI-Expressバス５０を介してスイッチ３０と通信可能に接続されている。また、スイッチ３０は、PCI-Expressバス５１，５２を介して、スイッチ３１，３２とそれぞれ通信可能に接続されている。さらに、スイッチ３１は、複数（図１に示す例では４つ）のPCI-Card８０と、それぞれPCI-Expressバス５３を介して通信可能に接続されている。また、スイッチ３２は、複数（図１に示す例では４つ）のPCI-Card８１と、それぞれPCI-Expressバス５４を介して通信可能に接続されている。CPU１０，チップセット２０，PCI-Expressスイッチ３０−３２およびPCI-Card８０，８１は、CPU１０を最上位、PCI-Card８０，８１を最下位として、QPIバス５５およびPCI-Expressバス５０−５４（第１の経路の一例）を介して多段に接続されている。
【００１４】
また、スイッチ３０−３２は、I2Cバス６０を介して、MC４０と通信可能に接続されている。なお、第１記憶部２は、CPU１０と通信可能に接続され、第２記憶部３はMC４０と通信可能に接続されている。さらに、MC４０とチップセット２０とは、LAN（Local Area Network）を介して通信可能に接続されている。
スイッチ３０−３２のそれぞれは、回線やパケットの交換（スイッチング）機能を持った通信装置である。スイッチ３０−３２のそれぞれは、例えば、PCI-Expressバスによって接続された複数のポートをそなえ、所定のポートにおいて受信した情報を、任意のポートから出力する。
【００１５】
図３は、本実施形態の一例としてのスイッチ３０の構成を示す図である。図３に示すように、スイッチ３０は、例えば、複数（図３に示す例では３つ）のポートをそなえ、ポートごとにPCIコンフィグレーションレジスタ（以下、単にコンフィグレーションレジスタという場合がある）３３をそなえる。ここで、複数のポートそれぞれは、障害が発生した場合、障害を検出して、コンフィグレーションレジスタ３３に障害情報を記録する。より具体的には、コンフィグレーションレジスタ３３の一部であるAER（Advance Error Reporting）レジスタに障害情報を記録する。ここで、障害情報とは、障害の内容を示す情報であり、例えば、ポートに接続されているPCI-Expressバスのリンク切れが発生した場合には、AERレジスタに、Surprise Down Errorが記録される。なお、このAERレジスタに記録される障害情報としては、既知の情報を使用することができる。
【００１６】
また、複数のポートそれぞれは、障害を検出した場合に、Fatal-Error Messageパケットをチップセット２０のIOハブ２１（後述）宛てに送信する。なお、このFatal-Error Messageパケットは、PCI-Expressの規格書に定義されており、その詳細な説明は省略する。
スイッチ３１，３２についても、スイッチ３０と同様の構成を有するものであり、その詳細な説明は省略する。なお、図１に示す例では、スイッチ３１，３２は、５つ以上のポートをそれぞれそなえる。スイッチ３１がそなえる複数のポートそれぞれは、障害を検出した場合に、Fatal-Error Messageパケットを、スイッチ３０経由で、チップセット２０のIOハブ２１宛てに送信する。具体的には、スイッチ３１がそなえる複数のポートそれぞれは、障害を検出した場合、Fatal-Error Messageパケットをスイッチ３０送信し、Fatal-Error Messageパケット受信したスイッチ３０がIOハブ２１に受信したFatal-Error Messageパケットを送信する。
【００１７】
同様に、スイッチ３２がそなえる複数のポートそれぞれは、障害を検出した場合に、Fatal-Error Messageパケットを、スイッチ３０経由で、チップセット２０のIOハブ２１宛てに送信する。具体的には、スイッチ３２がそなえる複数のポートそれぞれは、障害を検出した場合、Fatal-Error Messageパケットをスイッチ３０送信し、Fatal-Error Messageパケット受信したスイッチ３０がIOハブ２１に受信したFatal-Error Messageパケットを送信する。
【００１８】
なお、例えば、ポートがそなえる処理回路が、所定のファームウェアを実行することで、障害を検出する機能や、AERレジスタに障害情報を記録する機能や、Fatal-Error Messageパケットを送信する機能を実現する。
チップセット２０は、CPU１０とスイッチ３０とを接続する回路であり、例えば、QPIをPCI-Expressに変換する処理を行なう。具体的には、図２に示すように、チップセット２０は、IOハブ２１，サウスブリッジ２２およびBMC（Baseboard Management Controller）２３をそなえる。なお、IOハブ２１とサウスブリッジ２２とは、例えば、ESI（Enterprise Southbridge Interface）バスを介して相互に通信可能に接続される。さらに、サウスブリッジ２２とBMC２３とは、例えば、LPC（Low Pin Count）バスを介して相互に通信可能に接続される。また、BMC２３は、LANを介してMC４０と相互に通信可能に接続されている。さらに、IOハブ２１は、I2C６０を介してBMC２３と相互に通信可能に接続されている。
【００１９】
IOハブ２１は、QPIをPCI-Expressに変換するLSI（Large Scale Integrated）である。また、IOハブ２１は、Fatal-Error Messageパケットを下位の装置、つまりスイッチ３０やIOハブ２１自身から受信するとCPU１０に対して、例えば、SMI（System Management Interrupt）割り込みを発行する。なお、IOハブ２１は、Root Complexをそなえる。Root ComplexはCPU１０をスイッチ３０等のIOデバイスと接続するためのチップセットであり、QPIをPCI-Expressに変換する。このRoot Complexは、少なくとも１以上のポートをそなえるとともに、スイッチ３０−３２と同様にコンフィグレーションレジスタ３３をそなえる。なお、Root Complexは、PCI-Expressの最も上位に位置する装置である。
【００２０】
IOハブ２１がそなえるポートは、障害が発生した場合、障害を検出して、コンフィグレーションレジスタ３３に障害情報を記録する。より具体的には、コンフィグレーションレジスタ３３の一部であるAERレジスタに障害情報を記録する。IOハブ２１がそなえるポートは、障害を検出した場合に、Fatal-Error MessageパケットをIOハブ２１宛てに送信する。IOハブ２１は、自己の障害ポートからFatal-Error Messageパケットを受信すると、スイッチ３０等からFatal-Error Messageパケットを受信した時と同様に、SMI割り込みをCPU１０に対して発行する。
【００２１】
なお、例えば、IOハブ２１がそなえるポートの処理回路が、所定のファームウェアを実行することで、障害を検出する機能や、AERレジスタに障害情報を記録する機能や、Fatal-Error Messageパケットを送信する機能を実現する。
サウスブリッジ２２は、例えば、LPCバス上のデバイスを制御する。BMC２３は、例えば、CPU１０の状態を監視するなど、システム１におけるハードウェアエラーを監視する。
【００２２】
PCI-Card８０，８１のそれぞれは、PCIの規格に従って作成された種々の機能を提供する拡張カードであり、例えば、ネットワークカードやサウンドカードである。また、PCI-Card８０，８１のそれぞれは、少なくとも１以上のポートをそなえるとともに、スイッチ３０−３２と同様にコンフィグレーションレジスタ３３を（ポート毎に）そなえる。PCI-Card８０，８１のそれぞれがそなえるポートは、障害が発生した場合、障害を検出して、コンフィグレーションレジスタ３３に障害情報を記録する。より具体的には、コンフィグレーションレジスタ３３の一部であるAERレジスタに障害情報を記録する。PCI-Card８０，８１のそれぞれがそなえるポートは、障害を検出した場合に、Fatal-Error Messageパケットを、接続されているスイッチ３１／３２およびスイッチ３０を介して、IOハブ２１宛てに送信する。具体的には、PCI-Card８０がそなえるポートは、障害を検出した場合に、Fatal-Error Messageパケットを、接続されているスイッチ３２に送信する。そして、スイッチ３２は受信したFatal-Error Messageパケットをスイッチ３０に転送し、スイッチ３０は、IOハブ２１にスイッチ３２から転送されたFatal-Error MessageパケットをIOハブ２１に更に転送する。また、PCI-Card８１がそなえるポートは、障害を検出した場合に、Fatal-Error Messageパケットを、接続されているスイッチ３１に送信する。そして、スイッチ３１は受信したFatal-Error Messageパケットをスイッチ３０に転送し、スイッチ３０は、IOハブ２１にスイッチ３２から転送されたFatal-Error MessageパケットをIOハブ２１に更に転送する。
【００２３】
なお、例えば、PCI-Card８０，８１のそれぞれのポートがそなえる処理回路が、所定のファームウェアを実行することで、障害を検出する機能や、AERレジスタに障害情報を記録する機能や、Fatal-Error Messageパケットを送信する機能を実現する。
第１記憶部２は、例えば、ROM（Read Only Memory）であり、各種の情報を記憶する。具体的には、第１記憶部２はBIOSを記憶する。
【００２４】
第２記憶部３は、例えば、ROMであり、各種の情報を記憶する。具体的には、第２記憶部３は、システム管理ファームを記憶する。
CPU１０は、例えば、第１記憶部２に記憶されたBIOSや図示しない補助記憶装置（内蔵HDD（Hard Disk Drive）や外付けのストレージシステム）に記憶されたOSや各種アプリケーションプログラムを実行することにより種々の演算や制御を行ない、各種機能を実現する処理装置である。CPU１０は、第１処理部として機能する。
【００２５】
例えば、CPU１０は、BIOSを実行することにより、図１に示すように、バス番号割当部１１，第１取得部１２，第１通知部１３，第１障害箇所推定部１４および依頼部１５として機能する。また、例えば、CPU１０は、OSを実行することにより、図１に示すように、判断部１６，終了部１７およびリセット指示部１８として機能する。なお、第１取得部１２，第１通知部１３，第１障害箇所推定部１４および依頼部１５としての機能のうち１以上の機能をOSに持たせてもよいし、判断部１６，終了部１７およびリセット指示部１８として機能のうち１以上の機能をBIOSに持たせてもよい。
【００２６】
バス番号割当部１１は、例えば、システム１の起動時に、システム１がそなえる、IOハブ２１内部のPCI-Expressバス（図示省略），PCI-Expressバス５０−５４および各スイッチ３０−３２内のPCI-Expressバスに対して、それぞれを識別するためのバス番号を割り当てる。バス番号の割当はPCIのバス割り当て規則に従い行なわれる。ここで、IOハブ２１内部のPCI-Expressバス，QPIバス５５，PCI-Expressバス５０−５４および各スイッチ３０−３２内のPCI-Expressバスは、第１の経路の一例に相当する。すなわち、バス番号割当部１１は、第１の経路に対してバス番号を割り当てる。
【００２７】
図４は、システム１に対して、バス番号割当部１１によってバス番号が割り当てられた状態の一例を示す図である。図４中、丸付き数字はバス番号を表す。PCI-Expressバス５０，５２，５１に対して、バス番号割当部１１によってそれぞれバス番号１，３，９が割り当てられ、４本のPCI-Expressバス５４には、それぞれバス番号５−８が、４本のPCI-Expressバス５３には、それぞれバス番号１１−１４がバス番号割当部１１によって割り当てられる。さらに、スイッチ３０，３２，３１のポートを接続するPCI-Expressバスには、それぞれバス番号２，４，１０がバス番号割当部１１によって割り当てられる。また、IOハブ内部のPCI-Expressバスには、バス番号割当部１１によってバス番号0が割り当てられる。
【００２８】
第１取得部１２は、IOハブ２１からSMI（System Management Interrupt）割り込みを受けた場合、システム１内にそなえられた各AERレジスタから障害情報をそれぞれ読み出す。第１取得部１２によるAERレジスタの読み出しは、CPU１０とチップセット２０とを接続するQPIバス５５，PCI-Expressバス５０−５４およびスイッチ３０−３２のポートを接続するPCI-Expressバスを介して行なわれる。ここで、第１取得部１２は、例えば、IOハブ２１，スイッチ３０−３２およびPCI-Card８０，８１のコンフィグレーションレジスタ３３のAERレジスタの値（内容）を読み出し、取得する。すなわち、第１取得部１２は、障害情報を、第１の経路を介して取得する第１取得部として機能する。
【００２９】
なお、第１取得部１２が所定時間AERレジスタの内容を読み出せない場合には、IOハブ２１は、Master Abortが発生している旨を示す情報をCPU１０に対し出力する。言い換えれば、Master Abortが発生した場合には、第１取得部１２は、IOハブ２１からMaster Abortが発生していることを示す情報を取得して、Master Abortの発生を検知する。なお、Master Abortとは、例えば、PCI-Expressバスに接続された装置の不具合やPCI-Expressバスのリンク切れなどの様々な障害や、PCI-Expressバスに装置が未実装のため、コンフィグレーションレジスタ３３の読み出しができない状態を指す。
【００３０】
ここで、Master Abortが発生している旨を示す情報とは、例えば、全て”１”である４byteのデータである。なお、IOハブ２１は、例えば、自身がそなえるタイマを用いることで所定時間が経過したか否かを判断することができる。
Master Abortが発生した場合には、第１取得部１２は、AERレジスタの読み出しを中止するとともに、Master Abortが発生したバス番号を、例えば、CPU１０がそなえるレジスタに記録する。ここで、Master Abortが発生したバス番号とは、第１取得部１２がMaster Abortを検知する際に、第１取得部１２がAERレジスタの読み出しに使用するバス番号である。言い換えれば、Master Abortが発生したバス番号とは、第１取得部１２が情報を読み出すことができなかったAERレジスタの上位側に接続されたバスの番号である。
【００３１】
第１通知部１３は、Master Abortが発生している旨を示す情報を第１取得部１２が取得した場合、Master Abortが発生した旨（無応答情報）およびMaster Abortが発生した場所を示す情報をMC４０（第２処理部の一例）に通知する。具体的には、第１通知部１３は、例えば、Master Abortが発生したことを示すフラグおよびMaster Abortが発生したバス番号（位置情報）をIOハブ２１，ESIハブ，サウスブリッジ２２，LPCハブおよびBMC２３を介してMC４０に通知する。この第１通知部１３からMC４０への通知は、例えば、IPMI（Intelligent Platform Management Interface）通信を用いて行なわれる。
【００３２】
第１障害箇所推定部１４は、例えば、第１取得部１２が取得したAERレジスタの内容に基づいて、障害原因箇所を推定する。具体的には、第１障害箇所推定部１４は、AERレジスタから障害が発生した旨を示す情報、例えば、Surprise Down Errorを第１取得部２１が取得した場合には、Surprise Down Errorが記録されていたシステム１内の箇所（エラー情報を格納していたレジスタと対応）を障害原因箇所として推定する。さらに、第１障害箇所推定部１４は、Master Abortの発生により、第１取得部１２がAERレジスタの内容を取得できなかった装置も障害原因箇所として推定する。
【００３３】
なお、第１障害箇所推定部１４は、既知の種々の手法を用いて実現可能であり、その詳細な説明は省略する。
依頼部１５は、例えば、MC４０に対して、後述するシステム障害情報の生成を依頼する。具体的には、依頼部１５は、MC４０に対して、第１障害箇所推定部１４が推定した障害原因箇所および当該障害原因箇所から第１取得部１２が取得したAERレジスタの内容を通知する。依頼部１５は、障害箇所とＡＥＲレジスタ内容との通知と同時または略同時に、MC４０に対して後述するシステム障害情報の生成を依頼する。すなわち、依頼部１５は、第１障害箇所推定部１２が推定した障害原因箇所および当該障害原因箇所のAERレジスタの内容を、MC４０に対して通知する第３通知部として機能する。
【００３４】
なお、依頼部１５による通知および依頼は、例えば、IOハブ２１，ESIハブ，サウスブリッジ２２，LPCハブおよびBMC２３を介して行なわれる。また、この依頼部１５からMC４０への通知および依頼は、例えば、IPMI通信を用いて行なわれる
さらに、依頼部１５は、例えば、MC４０に対してシステム障害情報の生成を依頼するとともに、CPU１０に対して、NMI（Non-Maskable Interrupt）割り込みを行なう。ここで、NMI割り込みとは、ソフトウェアから禁止不可能な割り込みである。
【００３５】
判断部１６は、例えば、NMI割り込みおよび後述する第２通知部４３からの通知を受けると、第２障害箇所推定部４２が推定する障害原因箇所に基づいて、障害箇所を切り離すことが可能か否かを判断する。また、Master Abortが発生しなかった場合には、判断部１６は、第１障害箇所推定部１４が推定した障害原因箇所に基づいて、障害箇所を切り離す（同上）ことが可能か否かを判断する。ここで、障害箇所を切り離すとは、システム１の動作を継続させたまま（システム１のリセットを行なうことなく）、アプリケーション等が障害原因箇所を使用しない状態にすることをいう。
【００３６】
具体的には、例えば、判断部１６は、第２障害箇所推定部４２または第１障害箇所推定部１４が推定した障害原因箇所を使用するアプリケーション等の主体を特定する。そして、判断部１６は、例えば、システム１において動作する全てのアプリケーション等の主体が第２障害箇所推定部４２または第１障害箇所推定部１４によって推定された障害原因箇所を使用していなければ、障害箇所を切り離すことが可能であると判断する。なお、障害箇所を切り離すことが可能と判断された場合には、後述する終了部１７によって、例えば、第２障害箇所推定部４２または第１障害箇所推定部１４によって推定された障害原因箇所を使用するアプリケーションや仮想マシンが終了させられる。言い換えれば、判断部１６は、システム１において動作する全ての主体のうち一部のみが第２障害箇所推定部４２または第１障害箇所推定部１４によって推定された障害原因箇所を使用している場合には、障害箇所を切り離すことが可能であると判断する。
【００３７】
一方、システム１において動作する全てのアプリケーション等の主体が第２障害箇所推定部４２または第１障害箇所推定部１４によって推定される障害原因箇所を使用していれば、障害箇所を切り離すことが不可能と判断する。
ここで、「主体」とは、例えば、アプリケーションや仮想マシンや、これらのアプリケーションや仮想マシンが用いているハードウェア資源である。すなわち、判断部１６は、障害箇所を使用している主体を特定する特定部として機能する。
【００３８】
なお、OSは、システム１内で動作しているアプリケーションや仮想マシン等を把握しているため、第２障害箇所推定部４２または第１障害箇所推定部１４によって推定された障害原因箇所を使用するアプリケーションや仮想マシン等を、このOSの機能を用いて特定することができる。
終了部１７は、判断部１６によって、障害箇所を切り離すことが可能と判断された場合に、例えば、第２障害箇所推定部４２または第１障害箇所推定部１４によって推定された障害原因箇所を使用するアプリケーションや仮想マシンを終了させる。
【００３９】
例えば、図１において、PCI-Card８０をアプリケーションＡが使用しており、PCI-Card８１をアプリケーションＢが使用しているときに、PCI-Card８０が接続されたスイッチ３１が故障した場合には、終了部１７はアプリケーションＡを終了させる。これによって、システム１を停止させることなく、アプリケーションＢは動作可能となる。
リセット指示部１８は、例えば、MC４０に対して、システム１のリセットを行なうよう指示する。例えば、具体的には、リセット指示部１８はMC４０がそなえるレジスタにリセットフラグを書き込むことでリセットの指示を行なう。
【００４０】
MC４０は、例えば、第２記憶部３に記憶されたシステム管理ファームを実行することにより種々の演算や制御を行ない、これにより、各種機能を実現する処理装置である。
例えば、MC４０は、システム管理ファームを実行することにより、第２取得部４１，第２障害箇所推定部４２，第２通知部４３，生成部４４およびリセット部４５として機能する。
【００４１】
第２取得部４１は、例えば、第１通知部１３から、Master Abortが発生した旨およびMaster Abortが発生したバス番号の通知を受けると、I2Cバス６０（第２の経路の一例）を介して、AERレジスタの内容を読み出す。具体的には、第２取得部４１は、IOハブ２１，スイッチ３０−３２およびPCI-Card８０，８１のそれぞれがそなえるコンフィグレーションレジスタ３３のAERレジスタのうち、第１取得部１２が取得できなかったAERレジスタの内容を読み出す。すなわち、第２取得部４１は、障害情報を、第２の経路を介して取得する第２取得部として機能する。
【００４２】
具体的には、第２取得部４１は、Master Abortが発生したバス番号より下位にあるAERレジスタを読み出す。
ここで、割当部１１によるバス番号の割当は、ＰＣＩのバス割り当て規則に従うため、MC４０は、どのようにバス番号が割当てられるかを把握することができる。さらに、I2Cアドレスはシステム１内の装置に固定的に割当てられ、MC４０は、システム１内の装置の位置を把握しているため、MC４０は、システム１内の装置の位置と、I2Cアドレスとの対応付けを把握している。したがって、第２取得部４１は、バス番号とI2Cアドレスとを対応付けることが可能であり、バス番号に基づいて、システム１内の装置の位置を特定することができる。すなわち、第２取得部４１は、バス番号に基づいて、読み出すべきAERレジスタを特定することができる。
【００４３】
第２障害箇所推定部４２は、例えば、第２取得部４１が取得したAERレジスタの内容に基づいて、障害原因箇所を推定する。具体的には、第２障害箇所推定部４２は、AERレジスタから、障害が発生した旨を示す情報、例えば、IOハブ２１，スイッチ３０−３２およびPCI-Card８０，８１等の各装置の内部での訂正不可能なエラーを示すInternal Uncorrectable Errorを第２取得部４１が取得した場合には、Internal Uncorrectable Errorが記録されていたシステム１内の箇所を障害原因箇所として推定する。
【００４４】
なお、第２障害箇所推定部４２は既知の種々の手法を用いて実現可能であり、その詳細な説明は省略する。
第２通知部４３は、例えば、第２障害箇所推定部４２によって推定された障害原因箇所および／または第２障害箇所推定部４２によって推定された障害原因箇所のAERレジスタの内容を、CPU１０に通知する。この第２通知部４３からCPU１０への通知は、例えば、IPMI通信を用いて行なわれる。
【００４５】
生成部４４は、例えば、システム障害情報を生成し、第２記憶部３に記録する。ここで、システム障害情報とは、システム１の管理者が参照することで、障害原因箇所を把握できる情報であり、少なくとも障害原因箇所を示す情報を含む。具体的には、生成部４４は、第１障害箇所推定部１４，第２障害箇所推定部４２のそれぞれにより推定された障害原因箇所と、これらの障害原因箇所から取得した障害情報と、Master Abortが発生した箇所とを組み合わせてシステム障害情報を生成する。なお、第１障害箇所推定部１４により推定された障害原因箇所、および、この障害原因箇所から取得した障害情報は、依頼部１５から生成部４４に通知され、Master Abortが発生した箇所を示すバス番号は、第１通知部１３により生成部４４に通知される。
【００４６】
なお、生成部４４は、第２障害箇所推定部４２により推定された障害原因箇所、および、この障害原因箇所から取得した障害情報のみに基づいてシステム障害情報を生成してもよい。
また、生成部４４は、Master Abortが発生しなかった場合には、例えば、依頼部１５から通知される情報に基づいて、システム障害情報を生成する。
【００４７】
リセット部４５は、例えば、リセット指示部１８からの指示を受けると、システム１をリセットする。
なお、上述した判断部１６，終了部１７，リセット指示部１８としての機能を実現するためのプログラム（OS）は、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ  ＤＶＤ等），ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
【００４８】
また、BIOSは、第１記憶部２中に、工場出荷時に書き込まれて製品出荷されることとしてもよい。さらに、システム管理ファームも、第２記憶部３中に、工場出荷時に書き込まれて製品出荷されることとしてもよい。
バス番号割当部１１，第１取得部１２，第１通知部１３，第１障害箇所推定部１４，依頼部１５，判断部１６，終了部１７，リセット指示部１８としての機能を実現する際には、内部記憶装置（本実施形態では第１記憶部２等）に格納されたプログラム(BIOS)と補助記憶装置（内蔵HDDや外付けストレージシステム等）に格納されたプログラム(OS)がコンピュータのマイクロプロセッサによって実行される。このとき、補助記憶装置に格納されたプログラムは、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
【００４９】
さらに、第２取得部４１，第２障害箇所推定部４２，第２通知部４３，生成部４４およびリセット部４５としての機能を実現する際には、内部記憶装置（本実施形態では第２記憶部３等）に格納されたプログラムがコンピュータのマイクロプロセッサによって実行される。
なお、本実施形態において、コンピュータとは、ハードウェアとオペレーティングシステムとを含む概念であり、オペレーティングシステムの制御の下で動作するハードウェアを意味している。又、オペレーティングシステムが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、CPU等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえており、本実施形態においては、システム１がCPU１０をそなえたコンピュータとしての機能を有するとともに、システム１がMC４０をそなえたコンピュータとしての機能を有しているのである。
【００５０】
図５は、上述の如く構成された、実施形態の一例としてのシステム１の動作を示すフローチャートである。
まず、システム１内において何らかのエラーが生じると、エラーが生じた装置（例えば、スイッチ３２）が、Fatal-Error MessageパケットをIOハブ２１宛てに送信する。そして、IOハブ２１は、Fatal-Error Messageパケット受信すると、CPU１０に対してSMI割り込みを発行する。
【００５１】
CPU１０がSMIを検出すると（ステップＡ１）、第１取得部１２は、QPIバス５５，PCI-Expressバス５０−５４等を介して、システム１内の各装置がそなえるコンフィグレーションレジスタ３３のAERレジスタの内容を読み出す（ステップＡ３）。第１取得部１２がAERレジスタの読み出し動作を行なうごとに、第１取得部１２は、Master Abortが発生している旨を示す情報を取得したか否かにより、Master Abortが発生しているか否かを判断する（ステップＡ４）。Master Abortが発生していないと判断された場合（ステップＡ４のＮｏルート参照）、再びステップＡ２に戻る（ステップＡ５）これらのステップＡ３およびステップＡ４の処理が、Master Abortが発生していないと判断される限り（ステップＡ４のＮｏルート参照）、システム１内のコンフィグレーションレジスタ３３の数（n）だけ繰り返し行なわれる（ステップＡ２〜Ａ５参照）。但し、第１取得部１２がMaster Abortが発生している旨を示す情報を取得した場合（ステップＡ４のＹｅｓルート参照）には、第１取得部１２は、AERレジスタの読み出しを中止し、Master Abortが発生しているバス番号を、例えば、CPU１０がそなえるレジスタに格納する。そして、第１通知部１３は、Master Abortが発生した旨およびMaster Abortが発生したバス番号を、例えば、IPMI通信によってMC４０に通知する（ステップＡ６）。また、第１障害箇所推定部１４は、ステップＡ３で取得したAERレジスタの内容に基づいて、障害原因箇所の推定を行なう（ステップＡ７）。
【００５２】
次に、依頼部１５が、第１障害箇所推定部１４により推定された障害原因箇所、および、第１障害箇所推定部１４により推定された障害原因箇所から第１取得部１２が取得したAERレジスタの内容を、例えば、IPMI通信によってMC４０に通知する。依頼部１５は、この通知と同時に、システム障害情報の生成をMC４０に対して依頼する（ステップＡ８）。
【００５３】
一方、ステップＡ６にて、Master Abortが発生した旨およびMaster Abortが発生しているバス番号が通知されたMC４０の第２取得部４１が、I2Cバス６０を用いて、Master Abortが発生したバス番号より下位にあるAERレジスタを読み出す（ステップＡ１０）。このステップＡ９の処理が、Master Abortが発生したバス番号より下位にあるコンフィグレーションレジスタ３３の数（m）だけ繰り返し行なわれる（ステップＡ９〜Ａ１１参照）。第２取得部４１がMaster Abortが発生したバス番号より下位にある全ての装置のAERレジスタを読み出すと、第２障害箇所推定部４２は、読み出されたAERレジスタの内容に基づいて、障害原因箇所を推定する（ステップＡ１２）。次に、生成部４４は、システム障害情報を生成する（ステップＡ１３）。具体的には、ステップＡ６において第１通知部１３から通知された情報と、ステップＡ８において依頼部１５から通知された情報と、ステップＡ１２において推定した障害箇所にかかるAERレジスタの内容とに基づいて、生成部４４はシステム障害情報を生成し、例えば、第２記憶部３に記録する。また、MC４０は、生成部４４が生成したシステム障害情報を、図示しない表示部に表示することもできる。
【００５４】
第２通知部４３は、第２障害箇所推定部４２によって推定された障害原因箇所を、例えば、IPMI通信を用いてCPU１０に通知する（ステップＡ１４）。判断部１６は、第２通知部４３によって通知された第２障害箇所推定部４２によって推定された障害原因箇所に基づいて、障害箇所を切り離すことが可能か否かを判断する（ステップＡ１５）。
【００５５】
障害箇所を切り離すことが可能ならば（ステップＡ１５のＹｅｓルート参照）、終了部１７は、判断部１６によって特定された、第２障害箇所推定部４２によって推定された障害箇所が使用するアプリケーションや仮想マシンを終了させる（ステップＡ１６）。なお、障害箇所を切り離すことが可能でない場合には（ステップＡ１５のＮｏルート参照）、リセット指示部１８は、例えば、MC４０に対して、システム１のリセットを行なうよう指示し、リセット部４５は、システム１のリセットを行なう（ステップＡ１７）。
【００５６】
なお、第１取得部１２がMaster Abortが発生している旨を示す情報を取得しなかった場合（ステップＡ４のＮｏルート参照）には、上述したステップＡ７，Ａ８の処理が行なわれた後、判断部１６によって、第１障害箇所推定部１４により推定された障害原因箇所に基づいて、障害箇所を切り離すことが可能か否かが判断される（ステップＡ１５）。そして、障害箇所を切り離すことが可能ならば（ステップＡ１５のＹｅｓルート参照）、終了部１７は、判断部１６によって特定された第１障害箇所推定部１４により推定された障害箇所が使用するアプリケーションや仮想マシンを終了させる（ステップＡ１６）。なお、障害箇所を切り離すことが可能でない場合には（ステップＡ１５のＮｏルート参照）、上述のステップＡ１７の処理が行なわれる。また、Master Abortが発生しなかった場合、ステップＡ８において依頼部１５から通知された情報に基づいて、生成部４４はステップＡ１３においてシステム障害情報を生成し、例えば、第２記憶部３に記録する。なお、Master Abortが発生しなかった場合、ステップＡ１４の処理は行なわれない。
【００５７】
次に、一例として、システム１において、スイッチ３２の内部エラーが原因で、スイッチ３０とスイッチ３２との間のPCI-Expressバス５２のリンク切れが発生した場合の動作について説明する。なお、前提として、バス番号割当部１１によって、バス番号が割り当てられているものとする。
図６は、IOハブ２１が、CPU１０に対してSMI割り込みを発生することを説明するための図である。なお、図６中、スイッチ３１については、図示を省略している。
【００５８】
図６に示すように、スイッチ３０とスイッチ３２との間のPCI-Expressバス５２のリンク切れが発生すると、スイッチ３０のport１は、PCI-Expressバス５２のリンク切れを検出し、コンフィグレーションレジスタ３３のAERレジスタに、例えば、Surprise Down Errorを記録する。さらに、スイッチ３０のport1は、Fatal-Error MessageパケットをIOハブ２１宛てに送信する。Fatal-Error Messageパケットを受信したIOハブ２１は、CPU１０に対してSMI割り込みを行なう。CPU１０がSMI割り込みを検出することで、第１取得部１２が起動する。
【００５９】
第１取得部１２は、IOハブ２１，スイッチ３０，３１およびPCI-Card８０内のＡＥＲレジスタを読み出すことはできる。しかし、スイッチ３０とスイッチ３２との間のPCI-Expressバス５２のリンク切れが発生しているため、スイッチ３２およびスイッチ３２の下位側にあるPCI-Card８１内のAERレジスタを読み出すことはできない。すなわち、PCI-Expressバス５２を介して、スイッチ３２内のＡＥＲレジスタを読み出そうとする際に、第１取得部１２は、Master Abortが発生していることを示す情報を取得する。そして、第１取得部１２は、Master Abortが発生したバス番号として、バス番号３をCPU１０がそなえるレジスタに記録する。
【００６０】
次に、第１通知部１３が、Master Abortが発生している旨およびバス番号３をMC４０に対して通知する。
また、第１取得部１２はAERレジスタの読み出しを中止し、第１障害箇所推定部１４は、第１取得部１２が取得したAERレジスタの内容に基づいて、障害原因箇所の推定を行なう。ここでは、スイッチ３０のport１に対応するAERレジスタに記録されているSurprise Down Errorに基づいて、スイッチ３０のport１およびスイッチ３０の下位に接続されているスイッチ３２およびPCI-Card８１を障害原因箇所として推定する。次に、依頼部１５が、スイッチ３０のAERレジスタの内容、および、障害原因箇所としてスイッチ３０，スイッチ３２およびPCI-Card８１をMC４０に通知する。なお、依頼部１５は、この通知と同時に、システム障害情報の生成をMC４０に対して依頼する。また、依頼部１５は、MC４０に対して、第１障害箇所推定部１４が障害原因箇所であると推定した箇所のうち、最上位の箇所のみを通知することとしてもよい。すなわち、依頼部１５は、MC４０に対して、障害原因箇所としてスイッチ３０およびスイッチ３０のAERレジスタの内容のみを通知することとしてもよい。
【００６１】
一方、第１通知部１３から通知を受け取ったMC４０では、第２取得部が、バス番号に基づいて、バス番号３の下位に接続されている装置のAERレジスタを読み出す。ここでは、スイッチ３２内のAERレジスタおよびPCI-Card８１内のAERレジスタを読み出す。
ここで、図７に示すように、スイッチ３２のport2に対応するコンフィグレーションレジスタ３３のＡＥＲレジスタに、例えば、Internal Uncorrectable Errorが記録されている場合について考えると、第２取得部４１が、このAERレジスタの内容を読み出す。そして、第２障害箇所推定部４２が、この第２取得部４１に読み出されたAERレジスタの内容に基づいて、障害原因箇所をスイッチ３２のport2であると推定する。
【００６２】
そして、生成部４４は、例えば、図８に示すようなシステム障害情報を生成し、第２記憶部３に記録する。図８に例示するシステム障害情報は、障害原因箇所（Source）に対して、障害の内容（Description）および障害原因箇所が属するユニット（Unit）が対応付けられている。さらに、図８に例示するシステム障害情報は、障害原因箇所（Source）に対して、第１取得部１２または第２取得部４１が障害の内容を取得した日時（Date/Time）および障害であることを示す情報（Severity），が対応付けられている。
【００６３】
具体的には、第１障害箇所推定部１４によって障害原因箇所として推定された箇所のうち、最上位の箇所であるスイッチ３０のport1に対して、スイッチ３０のport１のAERレジスタの内容が対応付けられている。さらに、図８に示すシステム障害情報は、スイッチ３０のport１に対して、スイッチ３０のport1の属するユニットと、AERレジスタが第１取得部１２に取得された日時と、Severityとが対応付けられている。スイッチ３０のport１の属するユニットと、AERレジスタが第１取得部１２に取得された日時と、Severityとは、第１取得部１２より生成される情報であり、依頼部１５によりMC４０に対して通知される。
【００６４】
さらに、図８に示すシステム障害情報は、第１通知部１３によって通知されたMaster Abortが発生したバス番号に基づいて求められたスイッチ３２のport０に対して、第１通知部１３によって通知されたMaster Abortである旨が対応付けられている。また、図８に示すシステム障害情報は、スイッチ３２のport０に対して、スイッチ３２のport０の属するユニットと、第１取得部１２がMaster Abortが発生していることを示す情報を取得した日時と、Severityとが対応付けられている。スイッチ３２のport０の属するユニットと、第１取得部１２がMaster Abortが発生していることを示す情報を取得した日時と、Severityとは、第１取得部１２より生成される情報であり、第１通知部１３によりMC４０に対して通知される。
【００６５】
さらに、図８に示すシステム障害情報は、第２障害箇所推定部４２によって障害原因箇所として推定されたスイッチ３２のport２に対して、スイッチ３２のport２のAERレジスタの内容が対応付けられている。さらに、図８に示すシステム障害情報は、スイッチ３２のport２に対して、スイッチ３２のport２の属するユニットと、AERレジスタが第２取得部４１に取得された日時と、Severityとが対応付けられている。スイッチ３２のport２の属するユニットと、AERレジスタが第２取得部４２に取得された日時と、Severityとは、第２取得部４２より生成される情報である。
【００６６】
また、第２通知部４３は、第２障害箇所推定部４２によって推定された障害原因箇所であるスイッチ３２のport２およびこの障害箇所のAERレジスタの内容であるInternal Uncorrectable ErrorをCPU１０に通知する。判断部１６が、スイッチ３２のport２のInternal Uncorrectable Errorによる障害箇所を切り離すことが可能ではないと判断する場合には、リセット指示部１８は、例えば、MC４０に対して、システム１のリセットを行なうよう指示する。そして、リセット部４５は、システム１のリセットを行なう。
【００６７】
一方、判断部１６は、スイッチ３２のport２のInternal Uncorrectable Errorによる障害箇所を切り離すことが可能であると判断する場合には、終了部１７が、第２障害箇所推定部４２によって推定された障害箇所を使用するアプリケーションや仮想マシン等を終了させる。例えば、スイッチ３２の下位に接続されている全てのPCI-Card８１を、アプリケーションＢが使用していると判断部１６により特定された場合には、終了部１７が、アプリケーションＢを終了させる。
【００６８】
このように、実施形態の一例にかかるシステム１によれば、Master Abort発生時においても、確実かつ高精度に障害の原因箇所を推定することができる。
さらに、判断部１６が、第２障害箇所推定部４２によって推定された障害原因箇所に基づいて、障害箇所を切り離すことが可能か否かを判断するため、Master Abort発生時においても、システム１を、できるだけリセットを行なわずに運用することができる。
【００６９】
また、システム１の管理者は、生成部４４によって生成されたシステム障害情報を参照することで、容易に障害の要因と、この要因によって発生した副次的な障害を判断することができる。
なお、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
【００７０】
例えば、本実施形態の一例においては、スイッチ３０は、３つのポートをそなえるが、これに限定されるものではなく、スイッチ３０は、任意のポート数をそなえる。スイッチ３１，３２についてもスイッチ３０と同様に本実施形態の一例に限定されるものではなく、任意のポート数をそなえる。
また、本実施形態の一例では、PCI-Expressについて記載しているが、これに限定されるものではなく、PCIやPCI-Xに対しても適用可能である。
【００７１】
さらに、本実施形態の一例では、システム１は、３つのスイッチ３０−３２をそなえているが、これに限定されるものではない。例えば、システム１は、２以下または４以上のスイッチをそなえてもよい。
また、本実施形態の一例では、システム１は、８つのPCI-Card８０，８１をそなえているがこれに限定されるものではない。例えば、システム１は、７以下または９以上PCI-Cardをそなえてもよい。
【００７２】
さらに、例えば、本実施形態の一例においては、第１記憶部２は、CPU１０に接続されているが、これに限定されるものではない。例えば、第１記憶部２は、IOハブ２１に接続されていてもよい。また、第１記憶部がCPU１０に接続されている場合に、IOハブ２１に接続された他の記憶部をそなえ、この他の記憶部にBIOSを記憶してもよい。
また、本実施形態の一例においては、Master Abort発生しているか否かに関わらず、判断部１６が、システム１から障害箇所を切り離すことが可能か否かを判断しているが、これに限定されるものではない。例えば、Master Abort発生しなかった場合のみ、判断部１６は、システム１から障害箇所を切り離すことが可能か否かを判断することとしてもよく、この場合、第２通知部４３は、CPU１０に対して情報を通知しない。
【００７３】
さらに、本実施形態の一例においては、判断部１６は、第２障害箇所推定部４２または第１障害箇所推定部１４によって推定される障害原因箇所に基づいて、障害箇所を切り離すことが可能か否かを判断しているが、これに限定されるものではない。例えば、第２障害箇所推定部４２または第１障害箇所推定部１４によって推定される障害原因箇所と当該障害原因箇所のAERレジスタの内容とに基づいて、障害箇所を切り離すことが可能か否かを判断してもよい。この場合、システム１は、例えば、切り離すことが可能な障害箇所か否か基準となる情報を、第１記憶部２に予めそなえている。そして、判断部１６は、例えば、この情報と、第２障害箇所推定部４２または第１障害箇所推定部１４によって推定された障害原因箇所および当該箇所のAERレジスタの内容とを比較することで、障害箇所を切り離すことが可能か否かを判断する。第１障害箇所推定部１４によって推定された障害原因箇所のAERレジスタの内容についても同様である。また、同様に、第２障害箇所推定部４２または第１障害箇所推定部１４によって推定される障害原因箇所のAERレジスタの内容に基づいて、障害箇所を切り離すことが可能か否かを判断してもよい。
【００７４】
上述した開示により本実施形態を当業者によって実施・製造することが可能である。
【符号の説明】
【００７５】
１    システム
２    第１記憶部
３    第２記憶部
１０    CPU
１１    バス番号割当部
１２    第１取得部
１３    第１通知部
１４    第１障害箇所推定部
１５    依頼部
１６    判断部
１７    終了部
１８    リセット指示部
２０    チップセット
２１    IOハブ
２２    サウスブリッジ
２３    BMC
３０，３１，３２    スイッチ
３３    コンフィグレーションレジスタ
４０    MC
５０，５１，５２，５３，５４    PCI-Expressバス
５５    QPIバス
６０    I2Cバス
８０，８１    PCI-Card
【図１】
2012029147.tif 000003
【図２】
2012029147.tif 000004
【図３】
2012029147.tif 000005
【図４】
2012029147.tif 000006
【図５】
2012029147.tif 000007
【図６】
2012029147.tif 000008
【図７】
2012029147.tif 000009
【図８】
2012029147.tif 000010
【図９】
2012029147.tif 000011
【図１０】
2012029147.tif 000012
【手続補正書】
【提出日】平成25年3月22日(2013.3.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１処理部と、第２処理部と、第１処理部と第１の経路を介して接続され、第２処理部と第２の経路を介して接続される装置とをそなえたシステムであって、
該第１処理部が、
該システムにおいて障害が発生した場合、前記装置が保持する障害情報を、該第１の経路を介して取得する第１取得部と、
該第１取得部によって該障害情報を前記装置から取得できない場合に、該障害情報が取得できない状態を示す無応答情報を該第２処理部に通知する第１通知部と、をそなえ、
該第２処理部が、
該第１通知部から該無応答情報の通知があった場合に、該障害情報を、該第２の経路を介して前記装置から取得する第２取得部と、
該第２取得部が取得した障害情報に基づいて、障害原因箇所を推定する第２障害箇所推定部と、
該第２障害箇所推定部により推定された障害箇所を、該第１処理部に通知する第２通知部と、をそなえるとともに、
さらに、該第１処理部が、
該第２障害箇所推定部により推定された障害箇所を使用している主体を特定する特定部と、
該特定部により特定された主体を終了させる、終了部と、をそなえたことを特徴とするシステム。
【請求項２】
該装置を複数そなえ、
該複数の装置同士が、該第１処理部を上位として、該第１の経路を介して多段に接続され、
該第２取得部が、該第１取得部によって取得できなかった障害情報を、該第２の経路を介して取得することを特徴とする請求項１記載のシステム。
【請求項３】
該第１通知部は、該第１取得部によって取得できなかった障害情報の格納位置を示す位置情報を該第２処理部に通知し、
該第２取得部は、該位置情報に基づいて、該第１取得部によって取得できなかった障害情報を取得することを特徴とする請求項２記載のシステム。
【請求項４】
該位置情報は、該第１取得部によって取得できなかった障害情報のうち、最上位の装置が保持する障害情報の格納位置を示し、
該第２取得部は、該位置情報に基づいて、該最上位の装置が保持する障害情報および該最上位の装置の下位に接続された装置が保持する障害情報を取得することを特徴とする請求項３記載のシステム。
【請求項５】
該第２障害箇所推定部によって推定された障害原因箇所（以下、第２障害原因箇所という）と、該第２障害原因箇所の障害情報と、に基づいて、システム障害情報を生成する生成部をそなえたことを特徴とする請求項４記載のシステム。
【請求項６】
該第１処理部が、
該第１取得部が取得した障害情報に基づいて、障害原因箇所を推定する第１障害箇所推定部と、
該第１障害箇所推定部によって推定された障害原因箇所（以下、第１障害原因箇所という）、および、該第１障害原因箇所の障害情報を、該第２処理部に通知する第３通知部と、をそなえ、
該生成部は、該第３通知部により通知された第１障害原因箇所と、該第１障害原因箇所の障害情報と、該第２障害原因箇所と、該第２障害原因箇所の障害情報と、該無応答情報と、該位置情報とに基づいて、システム障害情報を生成することを特徴とする請求項５記載のシステム。
【請求項７】
第１処理部と、第２処理部とをそなえたシステムにおける障害処理方法であって、
第１処理部が、該システムにおいて障害が発生した場合、該第１処理部および該第２処理部とそれぞれ第１の経路および第２の経路を介して接続された装置が保持する障害情報を、該第１の経路を介して取得する第１取得ステップと、
該第１取得ステップによって障害情報が取得できない場合に、該装置が無応答である旨を示す無応答情報を第１処理部が該第２処理部に通知する第１通知ステップと、
該第１通知ステップによって該無応答情報の通知があった場合に、第２処理部が、該第２の経路を介して障害情報を装置から取得する第２取得ステップと、
該第２取得ステップによって取得された障害情報に基づいて、第２処理部が障害原因箇所を推定する第２障害箇所推定ステップと、
第２処理部が、該第２障害箇所推定ステップにより推定された障害箇所を、該第１処理部に通知する第２通知ステップと、
第１処理部が、該第２障害箇所推定ステップにより推定された障害箇所を使用している主体を特定する特定ステップと、
該特定ステップにより特定された主体を終了させる終了ステップと、をそなえたことを特徴とする障害処理方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００３２
【補正方法】変更
【補正の内容】
【００３２】
第１障害箇所推定部１４は、例えば、第１取得部１２が取得したAERレジスタの内容に基づいて、障害原因箇所を推定する。具体的には、第１障害箇所推定部１４は、AERレジスタから障害が発生した旨を示す情報、例えば、Surprise Down Errorを第１取得部１２が取得した場合には、Surprise Down Errorが記録されていたシステム１内の箇所（エラー情報を格納していたレジスタと対応）を障害原因箇所として推定する。さらに、第１障害箇所推定部１４は、Master Abortの発生により、第１取得部１２がAERレジスタの内容を取得できなかった装置も障害原因箇所として推定する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００３３
【補正方法】変更
【補正の内容】
【００３３】
なお、第１障害箇所推定部１４は、既知の種々の手法を用いて実現可能であり、その詳細な説明は省略する。
依頼部１５は、例えば、MC４０に対して、後述するシステム障害情報の生成を依頼する。具体的には、依頼部１５は、MC４０に対して、第１障害箇所推定部１４が推定した障害原因箇所および当該障害原因箇所から第１取得部１２が取得したAERレジスタの内容を通知する。依頼部１５は、障害箇所とＡＥＲレジスタ内容との通知と同時または略同時に、MC４０に対して後述するシステム障害情報の生成を依頼する。すなわち、依頼部１５は、第１障害箇所推定部１４が推定した障害原因箇所および当該障害原因箇所のAERレジスタの内容を、MC４０に対して通知する第３通知部として機能する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００６１
【補正方法】変更
【補正の内容】
【００６１】
一方、第１通知部１３から通知を受け取ったMC４０では、第２取得部４１が、バス番号に基づいて、バス番号３の下位に接続されている装置のAERレジスタを読み出す。ここでは、スイッチ３２内のAERレジスタおよびPCI-Card８１内のAERレジスタを読み出す。
ここで、図７に示すように、スイッチ３２のport2に対応するコンフィグレーションレジスタ３３のＡＥＲレジスタに、例えば、Internal Uncorrectable Errorが記録されている場合について考えると、第２取得部４１が、このAERレジスタの内容を読み出す。そして、第２障害箇所推定部４２が、この第２取得部４１に読み出されたAERレジスタの内容に基づいて、障害原因箇所をスイッチ３２のport2であると推定する。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００６５
【補正方法】変更
【補正の内容】
【００６５】
さらに、図８に示すシステム障害情報は、第２障害箇所推定部４２によって障害原因箇所として推定されたスイッチ３２のport２に対して、スイッチ３２のport２のAERレジスタの内容が対応付けられている。さらに、図８に示すシステム障害情報は、スイッチ３２のport２に対して、スイッチ３２のport２の属するユニットと、AERレジスタが第２取得部４１に取得された日時と、Severityとが対応付けられている。スイッチ３２のport２の属するユニットと、AERレジスタが第２取得部４１に取得された日時と、Severityとは、第２取得部４１より生成される情報である。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００７４
【補正方法】変更
【補正の内容】
【００７４】
上述した開示により本実施形態を当業者によって実施・製造することが可能である。
以上の実施形態に関し、さらに以下の付記を開示する。
（付記１）
第１処理部と、第２処理部と、第１処理部と第１の経路を介して接続され、第２処理部と第２の経路を介して接続される装置とをそなえたシステムであって、
該第１処理部が、
該システムにおいて障害が発生した場合、前記装置が保持する障害情報を、該第１の経路を介して取得する第１取得部と、
該第１取得部によって該障害情報を前記装置から取得できない場合に、該障害情報が取得できない状態を示す無応答情報を該第２処理部に通知する第１通知部と、をそなえ、
該第２処理部が、
該第１通知部から該無応答情報の通知があった場合に、該障害情報を、該第２の経路を介して前記装置から取得する第２取得部と、
該第２取得部が取得した障害情報に基づいて、障害原因箇所を推定する第２障害箇所推定部と、
該第２障害箇所推定部により推定された障害箇所を、該第１処理部に通知する第２通知部と、をそなえるとともに、
さらに、該第１処理部が、
該第２障害箇所推定部により推定された障害箇所を使用している主体を特定する特定部と、
該特定部により特定された主体を終了させる、終了部と、をそなえたことを特徴とするシステム。
（付記２）
該装置を複数そなえ、
該複数の装置同士が、該第１処理部を上位として、該第１の経路を介して多段に接続され、
該第２取得部が、該第１取得部によって取得できなかった障害情報を、該第２の経路を介して取得することを特徴とする付記１記載のシステム。
（付記３）
該第１通知部は、該第１取得部によって取得できなかった障害情報の格納位置を示す位置情報を該第２処理部に通知し、
該第２取得部は、該位置情報に基づいて、該第１取得部によって取得できなかった障害情報を取得することを特徴とする付記２記載のシステム。
（付記４）
該位置情報は、該第１取得部によって取得できなかった障害情報のうち、最上位の装置が保持する障害情報の格納位置を示し、
該第２取得部は、該位置情報に基づいて、該最上位の装置が保持する障害情報および該最上位の装置の下位に接続された装置が保持する障害情報を取得することを特徴とする付記３記載のシステム。
（付記５）
該第２障害箇所推定部によって推定された障害原因箇所（以下、第２障害原因箇所という）と、該第２障害原因箇所の障害情報と、に基づいて、システム障害情報を生成する生成部をそなえたことを特徴とする付記４記載のシステム。
（付記６）
該第１処理部が、
該第１取得部が取得した障害情報に基づいて、障害原因箇所を推定する第１障害箇所推定部と、
該第１障害箇所推定部によって推定された障害原因箇所（以下、第１障害原因箇所という）、および、該第１障害原因箇所の障害情報を、該第２処理部に通知する第３通知部と、をそなえ、
該生成部は、該第３通知部により通知された第１障害原因箇所と、該第１障害原因箇所の障害情報と、該第２障害原因箇所と、該第２障害原因箇所の障害情報と、該無応答情報と、該位置情報とに基づいて、システム障害情報を生成することを特徴とする付記５記載のシステム。
（付記７）
該第１通知部は、所定時間、該第１取得部が障害情報を取得できない場合に、該無応答情報を該第２処理部に通知することを特徴とする付記１記載のシステム。
（付記８）
第１処理部と、第２処理部とをそなえたシステムにおける障害処理方法であって、
第１処理部が、該システムにおいて障害が発生した場合、該第１処理部および該第２処理部とそれぞれ第１の経路および第２の経路を介して接続された装置が保持する障害情報を、該第１の経路を介して取得する第１取得ステップと、
該第１取得ステップによって障害情報が取得できない場合に、該装置が無応答である旨を示す無応答情報を第１処理部が該第２処理部に通知する第１通知ステップと、
該第１通知ステップによって該無応答情報の通知があった場合に、第２処理部が、該第２の経路を介して障害情報を装置から取得する第２取得ステップと、
該第２取得ステップによって取得された障害情報に基づいて、第２処理部が障害原因箇所を推定する第２障害箇所推定ステップと、
第２処理部が、該第２障害箇所推定ステップにより推定された障害箇所を、該第１処理部に通知する第２通知ステップと、
第１処理部が、該第２障害箇所推定ステップにより推定された障害箇所を使用している主体を特定する特定ステップと、
該特定ステップにより特定された主体を終了させる終了ステップと、をそなえたことを特徴とする障害処理方法。
【国際調査報告】
2012029147.tif 000013
2012029147.tif 000014