(57)【要約】【課題】情報処理装置において障害が発生してから他の情報処理装置が対処するまでの時間を短縮する。【解決手段】前記情報処理装置２０のそれぞれが、異常発生を検知する異常検知部２３と、前記異常発生が検知された情報処理装置２０におけるログ情報を収集するログ情報収集部２２１と、前記ログ情報収集部２２１による前記ログ情報の収集に優先して、前記異常発生が検知された情報処理装置２０を示す異常装置情報を作成する異常装置情報作成部２２３と、前記ログ情報収集部２２１による前記ログ情報の収集に優先して、前記異常装置情報作成部２２３が作成した前記異常装置情報を前記複数の情報処理装置２０のそれぞれに対して通知する異常装置情報通知部２１０ａと、を備える。【選択図】図１
2014182720.tif 000002
【特許請求の範囲】
【請求項１】
複数の情報処理装置を備えた情報処理システムであって、
前記情報処理装置のそれぞれが、
異常発生を検知する異常検知部と、
前記異常発生が検知された情報処理装置におけるログ情報を収集するログ情報収集部と、
前記ログ情報収集部による前記ログ情報の収集に優先して、前記異常発生が検知された情報処理装置を示す異常装置情報を作成する異常装置情報作成部と、
前記ログ情報収集部による前記ログ情報の収集に優先して、前記異常装置情報作成部が作成した前記異常装置情報を前記複数の情報処理装置のそれぞれに対して通知する異常装置情報通知部と、
を備えることを特徴とする、情報処理システム。
【請求項２】
前記複数の情報処理装置のそれぞれが、
前記異常装置情報が通知されると、上位アプリケーションに対して通知を行なう上位通知処理部
を備えることを特徴とする、請求項１に記載の情報処理システム。
【請求項３】
前記異常装置情報が通知されると、当該異常装置情報を前記複数の情報処理装置のそれぞれに転送する異常装置情報転送部を有する通信制御部を備え、
前記異常装置情報通知部が、前記異常装置情報を前記異常装置情報転送部に通知する
ことを特徴とする、請求項１又は２に記載の情報処理システム。
【請求項４】
前記異常装置情報通知部及び前記異常装置情報転送部が、それぞれ
前記異常装置情報を格納可能な状態管理情報記憶部を有するＦＰＧＡ（Field Programmable Gate Array）に備えられ、
前記情報処理装置のＦＰＧＡが、前記状態管理情報記憶部が更新されると、前記通信制御部のＦＰＧＡに対して前記状態管理情報記憶部に格納された前記異常装置情報を通知し、
前記通信制御部のＦＰＧＡが、前記状態管理情報記憶部が更新されると、前記複数の情報処理装置のＦＰＧＡに対してそれぞれ前記状態管理情報記憶部に格納された前記異常装置情報を一斉通知する
ことを特徴とする、請求項３に記載の情報処理システム。
【請求項５】
複数の情報処理装置と通信可能に接続される通信部と、
異常発生を検知する異常検知部と、
検知された異常に関するログ情報を収集するログ情報収集部と、
前記ログ情報収集部による前記ログ情報の収集に優先して、前記異常発生が検知された当該情報処理装置を示す異常装置情報を作成する異常装置情報作成部と、
前記ログ情報収集部による前記ログ情報の収集に優先して、前記異常装置情報作成部が作成した前記異常装置情報を前記通信部を介して前記複数の情報処理装置に対して通知する異常装置情報通知部と、
を備えることを特徴とする、情報処理装置。
【請求項６】
複数の情報処理装置を備えた情報処理システムにおける障害処理方法であって、
前記情報処理装置のいずれかが、
異常発生を検知し、
前記異常発生が検知された情報処理装置におけるログ情報を収集し、
前記ログ情報の収集に優先して、前記異常発生が検知された情報処理装置を示す異常装置情報を作成し、
前記ログ情報の収集に優先して、前記作成した前記異常装置情報を複数の情報処理装置のそれぞれに対して通知する
ことを特徴とする、障害処理方法。
【請求項７】
複数の情報処理装置を備えた情報処理システムにおいて、
前記複数の情報処理装置のうちいずれかの情報処理装置において異常発生を検知するステップと、
検知された異常に関するログ収集及びログ解析に優先して、前記複数の情報処理装置のそれぞれに対して前記異常発生が検知された情報処理装置を示す異常装置情報を通知するステップと、
を備えることを特徴とする、障害処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理装置及び障害処理方法に関する。
【背景技術】
【０００２】
基幹システムで運用されるサーバシステムでは高い可用性や柔軟なリソース（ハードウェア資源）の運用が要求される。このような高い可用性や柔軟なリソース運用を実現するための手法として、マルチノード（マルチドメイン，マルチパーティション）と呼ばれる機能が用いられている。
マルチノードシステムにおいては、システムのハードウェア資源を複数のノード（ドメイン，パーティション）に分け、それぞれのノード上でＯＳ（Operating System）を動作させる。又、マルチノードシステムにおいては、ノード間を密に連携し、複数のノードで一つのシステムを構成することもできる。
【０００３】
このような複数のノードを備えるマルチノードシステムにおいては、複数のノードのうち１つのノードをマスタノードとして、他のスレーブノードから情報収集を行なうことにより、システム内の監視や制御を統括する。システム内の監視や制御は、マスタノードとスレーブノードのボード内で動作するファーウェアにより行なわれている。
このようなマルチノードシステムにおいて、例えば、あるノードにおいて停電故障や経路故障等、何らかの障害が検知された場合には、そのノードだけをシステムダウン（部分縮退）させ、他のノードについては動作を続行させる。
【０００４】
従来のマルチノードシステムにおいては、いずれかのノードにおいて障害発生を検知すると、先ず、このノードにおいてログの収集を行なう。例えば、ファームウェアが、ハードウェアチップ内の故障情報を収集し、この収集したログをマスタノードに送信する。
マスタノードにおいては、収集したログの解析を行ない、各スレーブノードに対して、どのノードで異常が発生しノードダウンが生じているかを示す異常ノード情報を通知する。ノード間で連携するシステムにおいては、いずれのノードにおいてノードダウンが生じているかを把握する必要があるからである。
【０００５】
異常ノード情報を受信した各スレーブノードは、通知された異常ノード情報に基づき、当該スレーブノード上で動作する、ハイパーバイザやＯＳ，各種アプリケーション等の上位アプリケーションに通知を行なう。
上位アプリケーションにおいては、受け取った異常ノード情報に基づき、異常ノードの切り離し等のシステム構成の再構築を行なう。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】国際公開ＷＯ２００８／０９９４５３号パンフレット
【特許文献２】特開平１０−３３３９３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、ログ収集やログ解析には、それぞれ数十秒〜数分の時間を要する。従って、従来のマルチノードシステムにおいては、いずれかのノードにおいて何らかの障害が発生した場合に、各スレーブノードへ異常ノード情報が通知され上位アプリケーションがシステム構成の再構築を行なうまでに時間がかかるという課題がある。異常が検知されてから各ノードの上位アプリケーションへの通知は、できるだけ短時間で行なわれることが望ましい。
【０００８】
１つの側面では、本発明は、情報処理装置において異常が発生してから他の情報処理装置が対処するまでの時間を短縮することを目的とする。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の１つとして位置付けることができる。
【課題を解決するための手段】
【０００９】
このため、この情報処理システムは、複数の情報処理装置を備えた情報処理システムであって、前記情報処理装置のそれぞれが、異常発生を検知する異常検知部と、前記異常発生が検知された情報処理装置におけるログ情報を収集するログ情報収集部と、前記ログ情報収集部による前記ログ情報の収集に優先して、前記異常発生が検知された情報処理装置を示す異常装置情報を作成する異常装置情報作成部と、前記ログ情報収集部による前記ログ情報の収集に優先して、前記異常装置情報作成部が作成した前記異常装置情報を前記複数の情報処理装置のそれぞれに対して通知する異常装置情報通知部と、を備える。
【発明の効果】
【００１０】
開示の情報処理システムによれば、情報処理装置において異常が発生してから他の情報処理装置が対処するまでの時間を短縮することができる。
【図面の簡単な説明】
【００１１】
【図１】実施形態の一例としてのマルチノードシステムの機能構成を模式的に示す図である。
【図２】実施形態の一例としてのマルチノードシステムのハードウェア構成を模式的に示す図である。
【図３】実施形態の一例としてのマルチノードシステムのスレーブファームウェアの機能構成を模式的に示す図である。
【図４】実施形態の一例としてのマルチノードシステムのＦＰＧＡの機能構成を模式的に示す図である。
【図５】実施形態の一例としてのマルチノードシステムにおけるＣＮＴＬレジスタの構成を示す図である。
【図６】実施形態の一例としてのマルチノードシステムにおけるＳＴＡＴＵＳレジスタの構成を示す図である。
【図７】実施形態の一例としてのマルチノードシステムにおけるＩＮＴレジスタの構成を示す図である。
【図８】実施形態の一例としてのマルチノードシステムにおけるＭＡＳＫレジスタの構成を示す図である。
【図９】実施形態の一例としてのマルチノードシステムにおける障害処理を示すシーケンス図である。
【図１０】実施形態の一例としてのマルチノードシステムにおける障害処理を説明するための図である。
【図１１】実施形態の一例としてのマルチノードシステムの実装時における障害処理を説明するための図である。
【図１２】実施形態の一例としてのマルチノードシステムの実装時における障害処理を説明するための図である。
【図１３】実施形態の一例としてのマルチノードシステムの実装時における障害処理を説明するための図である。
【図１４】実施形態の一例としてのマルチノードシステムのスレーブファームウェアにおける障害処理を示すフローチャートである。
【図１５】実施形態の一例としてのマルチノードシステムのスレーブファームウェアにおける障害処理を示すフローチャートである。
【図１６】実施形態の一例としてのマルチノードシステムのスレーブファームウェアにおける障害処理を示すフローチャートである。
【図１７】実施形態の一例としてのマルチノードシステムのスレーブファームウェアにおける障害処理を示すフローチャートである。
【図１８】（ａ），（ｂ）は従来例としてのマルチノードシステムにおける障害処理と実施形態の一例としてのマルチノードシステムにおける障害処理とを比較するシーケンス図である。
【図１９】（ａ）は従来例としてのマルチノードシステムにおける障害処理に要する時間を説明する図であり、（ｂ）は実施形態の一例としてのマルチノードシステムにおける障害処理に要する時間を説明する図である。
【発明を実施するための形態】
【００１２】
〔Ａ〕一実施形態
以下、図面を参照して情報処理システム、情報処理装置及び障害処理方法に係る一実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形（実施形態及び各変形例を組み合わせる等）して実施することができる。
【００１３】
また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
〔Ａ−１〕システム構成
図１は実施形態の一例としてのマルチノードシステムの機能構成を模式的に示す図、図２は実施形態の一例としてのマルチノードシステムのハードウェア構成を模式的に示す図である。
【００１４】
本実施形態の一例におけるマルチノードシステム（情報処理システム）１は、図２に示すように、Cross-Bar Box（ＸＢＢ；通信制御装置、通信制御部）１０及び１以上のBuilding Block（ＢＢ；情報処理装置）２０−０〜２０−ｎ（ｎは０以上の整数）を備える。
ＢＢはハードウェア構成単位の一つであり、ノード（コンピュータノード）を構成する。
【００１５】
以下、ＢＢを示す符号としては、複数のＢＢのうち１つを特定する必要があるときには符号２０−０〜２０−ｎを用いるが、任意のＢＢを指すときには符号２０を用いる。
本マルチノードシステム１においては、ノード間を密に連携させ、複数のＢＢ２０で一つのシステムを構成する。また、本マルチノードシステム１において、ＸＢＢ１０はマスタ（master）ノードとして機能し、ＢＢ２０はスレーブ（slave）ノードとして機能する。具体的には、各ＢＢ２０が種々のソフトウェアを実行することにより各種処理を実施し、ＸＢＢ１０が各ＢＢ２０を連携させて一つのシステムを構築する。
【００１６】
各ＢＢ２０は、互いに同様の機能構成を備えている。また、各ＢＢ２０には、例えば図２に示すように、＃０〜＃ｎの番号がそれぞれ付されている。
以下、ＢＢ２０−０をＢＢ＃０と、ＢＢ２０−１をＢＢ＃１と、ＢＢ２０−ｎをＢＢ＃ｎという場合がある。
ＢＢ２０は、Field Programmable Gate Array（ＦＰＧＡ；通信部）２１、Service Processor（ＳＰ）２２０、Cpu Memory Unit（ＣＭＵ）２３０及びソフトウェア（上位アプリケーション）２４を備える。
【００１７】
ソフトウェア２４は、アプリ（Ａｐｐ）２４１及びHypervisor/Operating System（ＨＶ／ＯＳ）２４２を備える。
ＨＶはコンピュータの仮想化技術のひとつである仮想機械（バーチャルマシン）を実現するための制御プログラムであり、複数のＢＢ２０をまたいでＯＳ（仮想ＯＳ）を管理する。そして、アプリ２４１は、ＨＶ／ＯＳ２４２上で実行される。
【００１８】
ＣＭＵ２３０は、ＣＰＵ（Central Processing Unit）２３１を備える。
ＣＰＵ２３１は、種々の制御や演算を行なう処理装置であり、図示しないメモリに格納されたＯＳやプログラム（ソフトウェア２４）を実行することにより、種々の機能を実現する。
なお、ソフトウェア（上位アプリケーション，プログラム）２４は、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ  ＤＶＤ等），ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体から図示しないドライブ装置を介してプログラムを読み取って内部記録装置または外部記録装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供してもよい。
【００１９】
ソフトウェア（上位アプリケーション）２４は、コンピュータのマイクロプロセッサ（本実施形態ではＣＰＵ２３１）によって実行される。このとき、記録媒体に記録されたソフトウェア２４をコンピュータが読み取って実行してもよい。
なお、本実施形態において、コンピュータとは、ハードウェアとＯＳとを含む概念であり、ＯＳの制御の下で動作するハードウェアを意味している。又、ＯＳが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、ＣＰＵ等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえており、本実施形態においては、ＸＢＢ１０及びＢＢ２０がコンピュータとしての機能を有しているのである。
【００２０】
ＳＰ２２０は、ＢＢ２０の管理を行なう処理装置であり、例えば、ＢＢ２０内における異常監視を行ない、異常発生時に外部への通知やリカバリ処理等を行なう。ＳＰ２２０は、例えば図２に示すように、各ＢＢ２０に付されている＃０〜＃ｎに対応する番号が付されている。例えば、ＢＢ＃０は、＃０のＳＰ２２０を備える。
ＳＰ２２０は、スレーブファームウェア（ＦＷ）２２を備える。このＳＰ２２０は、図示しないプロセッサやメモリを備え、このプロセッサがプログラム（ファームウェア２２）を実行することにより、種々の機能が実現される。
【００２１】
なお、このスレーブファームウェア２２は、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ  ＤＶＤ等），ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体から図示しないドライブ装置を介してプログラムを読み取って内部記録装置または外部記録装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供してもよい。
【００２２】
スレーブファームウェア２２としての機能を実現する際には、図示しない内部記憶装置に格納されたプログラムがコンピュータのマイクロプロセッサ（本実施形態では図示しないプロセッサ）によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行してもよい。
図３は、実施形態の一例としてのマルチノードシステムのスレーブファームウェアの機能構成を模式的に示す図である。
【００２３】
スレーブファームウェア２２は、図３に示すように、異常箇所情報収集部２２１ａ、ログ収集部２２１ｂ、ログ情報送信部２２２、異常ノード情報作成部（異常装置情報作成部）２２３、ＦＰＧＡ制御部２２４、ＦＰＧＡ割り込み監視部２２５ａ、異常ノード読込処理部２２５ｂ、通知部２２５ｃ、異常監視部２２６及び異常箇所情報解析部２２７を備える。
【００２４】
異常監視部２２６は、図４を用いて後述する異常検知部２３による異常発生の割り込みを検出する。なお、異常発生したＢＢ２０がダウンしている場合には、上述した異常検知部２３による異常発生の検知をこの異常監視部２２６が行なうことがある。また、異常監視部２２６は、他のＢＢ２０において発生した異常を検知しても良い。
異常箇所情報収集部２２１ａは、異常監視部２２６による割り込みの検出により、異常が発生したＢＢ２０における異常箇所情報を収集する。具体的には、異常箇所情報収集部２２１ａは、図１５を用いて後述する異常箇所レジスタ２５１及び異常レベルレジスタ２５２の各レジスタ値を読み込むことにより、異常箇所情報を収集する。
【００２５】
異常箇所情報解析部２２７は、異常箇所情報収集部２２１ａが収集した異常箇所情報を解析する。具体的には、異常箇所情報解析部２２７は、図１５を用いて後述する異常箇所レジスタ２５１及び異常レベルレジスタ２５２の各レジスタ値に基づき、異常が発生しているＢＢ２０内の部品が重要部品であるかや、その異常のレベルが予め定めた基準以上であるかを解析する。
【００２６】
異常ノード情報作成部２２３は、異常箇所情報解析部２２７が解析した異常箇所情報に基づき、異常ノード情報（異常装置情報）を作成する。
ここで、異常ノード情報とは、図１５を用いて後述するように、マルチノードシステム１が備える各ＢＢ２０とこれらの異常状態とを対応づけた情報であり、どのＢＢ２０において異常が発生しているかを示す。
【００２７】
すなわち、異常箇所情報収集部２２１ａ及び異常箇所情報解析部２２７は、異常ノード情報作成部２２３が異常ノード情報を作成するために必要なログ情報である異常箇所情報のみをそれぞれ収集及び解析する。
ＦＰＧＡ制御部２２４は、異常ノード情報作成部２２３が作成した異常ノード情報をＦＰＧＡ２１に書き込む。具体的には、ＦＰＧＡ制御部２２４は、ＦＰＧＡ２１が備える送信制御レジスタ２１１（後述する図４参照）にレジスタ値として異常ノード情報を書き込む。
【００２８】
ログ収集部２２１ｂは、異常が発生したＢＢ２０における異常に関するログ情報を収集する。ログ収集部２２１ｂは、ハードウェアの異常情報に関する詳細情報（例えば、ＣＰＵ２３１内の何番目のコアの何番目のスレッドでどのような故障が発生したか）を収集する。
ログ情報送信部２２２は、ログ情報収集部２２１ｂが収集したログ情報をＸＢＢ１０へ送信する。
【００２９】
ＦＰＧＡ割り込み監視部２２５ａは、ＦＰＧＡ２１からの異常ノード情報の割り込みを検出し、この異常ノード情報を異常ノード読込処理部２２５ｂへ通知する。
異常ノード読込処理部２２５ｂは、ＦＰＧＡ割り込み監視部２２５ａによる割り込みの検出により、異常ノード情報を読み込む。具体的には、異常ノード読込処理部２２５ｂは、ＦＰＧＡ２１が備える受信制御レジスタ２１３（後述する図４参照）のレジスタ値を読み出す。
【００３０】
通知部２２５ｃは、異常ノード情報読込処理部２２５ｂが読み込んだ異常ノード情報をアプリ２４１やＨＶ／ＯＳ２４２等の上位アプリケーション２４へ通知する。
図４は、実施形態の一例としてのマルチノードシステムのＦＰＧＡの機能構成を模式的に示す図である。
ＦＰＧＡ２１は、任意に構成を設定できる集積回路であり、リアルタイム処理を行なうプロセッサである。このＦＰＧＡ２１は、図２に示すように、ＣＭＵ２３０とＳＰ２２０とに渡って備えられている。例えば、ＦＰＧＡ２１は複数のＦＰＧＡを備え、一部がＣＭＵ２３０に備えられ、一部がＳＰ２２０に備えられる。ＦＰＧＡ２１は、図４に示すように、異常検知部２３、異常ノード情報送受信機能部２１０及びＢＢ間データ送受信回路２１５を備える。
【００３１】
異常検知部２３は、ＦＰＧＡ２１のひとつの機能として実装される。ＦＰＧＡ２１と、監視対象であるハードウェア（ＣＰＵ２３１やメモリなどのＬＳＩ（Large Scale Integration）、電源ユニット、温度センサーなど）とは、ケーブルで接続されている。また、異常検知部２３はファーウェアに対して異常箇所レジスタ２５１及び異常レベルレジスタ２５２の各レジスタ値を公開しており、ファームウェアはそれらレジスタからの割り込みを監視している。監視対象ハードウェアで異常が発生した場合、異常検知部２３は、自ノード又は他ノードにおいて発生した異常を検知することにより、図１５を用いて後述するように異常箇所レジスタ２５１及び異常レベルレジスタ２５２の各レジスタ値を更新し、スレーブファームウェア２２に割り込みを入れる。この異常検知部２３は、自己診断機能を用いる等、既知の種々の手法で異常を検知する。異常には、ＣＰＵ２３１や図示しないメモリのエラーの他、停電故障や経路故障等も含まれる。
【００３２】
ＢＢ間データ送受信回路２１５は、他のＢＢ２０が備えるＦＰＧＡ２１及びＸＢＢ１０が備える後述するＦＰＧＡ１１と通信可能に接続するための回路である。このＢＢ間データ送受信回路２１５は、ＦＰＧＡ１１とＦＰＧＡ２１との間でデータの送受信を行なう。
異常ノード情報送受信機能部２１０は、自ノードとマスタノードとの間における異常ノード情報の送受信を仲介する。具体的には、異常ノード情報送受信機能部２１０は、ＦＰＧＡ制御部２２４によって送信制御レジスタ２１１に書き込まれた異常ノード情報をＸＢＢ１０の後述するＦＰＧＡ１１に送信し、又、このＦＰＧＡ１１から受信した異常ノード情報についてＦＰＧＡ割り込み監視部２２５ａに割り込みを入れる。
【００３３】
異常ノード情報送受信機能部２１０は、図４に示すように、送信制御（ＣＮＴＬ）レジスタ２１１、状態管理（ＳＴＡＴＵＳ）レジスタ２１２、受信制御（ＩＮＴ）レジスタ２１３及び受信マスク制御（ＭＡＳＫ）レジスタ２１４を備える。
図５は実施形態の一例としてのマルチノードシステムにおけるＣＮＴＬレジスタの構成を示す図、図６はそのＳＴＡＴＵＳレジスタの構成を示す図、図７はそのＩＮＴレジスタの構成を示す図、図８はそのＭＡＳＫレジスタの構成を示す図である。
【００３４】
以下、図５〜図８を参照しながら説明をする際には、ｎ＝１５すなわちマルチノードシステム１が１６個のＢＢ＃０〜ＢＢ＃１５を備える例について説明する。
ＣＮＴＬレジスタ２１１は、ＢＢ２０の異常検知時にＦＰＧＡ制御部２２４が書き込むレジスタである。このＣＮＴＬレジスタ２１１は、図５に示すようなＢＢ２０の数に応じたビット数（本例では１６ビット）を格納可能であり、各ビット（Bit）0〜15がＢＢ＃０〜＃１５にそれぞれ対応する。
【００３５】
図５の項Nameは、マルチノードシステム１が備える各ＢＢ２０の名前を示している。すなわち、本例におけるマルチノードシステム１は、ＢＢ＃０〜ＢＢ＃１５を備えており、これらがそれぞれBB0〜BB15で表されている。
そして、ＣＮＴＬレジスタ２１１においては、図５の項0/1に示すように、各ＢＢ２０（Bit）に対して“0”もしくは“1”が設定される。ＣＮＴＬレジスタ２１１には、レジスタ値の初期値として例えば“0”が全ビットに設定されている。ＦＰＧＡ制御部２２４は、異常が発生したノードに対応させて障害が発生したことを示す値“1”をライトする。例えば、ＢＢ＃３に異常が発生した場合には、ＢＢ＃３のＦＰＧＡ制御部２２４は、Bit 3に“1”をライトする。なお、ＢＢ２０の電源異常などにより他ノードへの異常ノード通知ができない場合には、他ノードのＦＰＧＡ制御部２２４が当該異常の発生したノードに対応するビットに“1”をライトする。例えば、ＢＢ＃２のＦＰＧＡ制御部２２４が、ＢＢ＃３に電源異常が発生した場合には、Bit 3に“1”をライトする。
【００３６】
ＳＴＡＴＵＳレジスタ２１２は、ＣＮＴＬレジスタ２１１に書き込まれた値がＦＰＧＡ２１によって書き込まれるレジスタである。このＳＴＡＴＵＳレジスタ２１２は、図６に示すようなＢＢ２０の数に応じたビット数（本例では１６ビット）を格納可能であり、各ビット（Bit）0〜15がＢＢ＃０〜＃１５にそれぞれ対応する。
図６のNameは、マルチノードシステム１が備える各ＢＢ２０の名前を示している。すなわち、本例におけるマルチノードシステム１が備えるＢＢ＃０〜ＢＢ＃１５がそれぞれBB0_STATUS〜BB15_STATUSで表されている。
【００３７】
そして、ＳＴＡＴＵＳレジスタ２１２においては、図６の項0/1に示すように、各ＢＢ２０（Bit）に対して“0”もしくは“1”が設定される。ＳＴＡＴＵＳレジスタ２１２には、レジスタ値の初期値として例えば“0”が全ビットに設定されている。例えば、ＦＰＧＡ制御部２２４がＣＮＴＬレジスタ２１１のBit 3に“1”をライトした場合には、ＦＰＧＡ２１は、ＳＴＡＴＵＳレジスタ２１２のBit 3に“1”をセットする。
【００３８】
マスタノードを含む他ノードとの間で送受信される異常ノード情報には、このＳＴＡＴＵＳレジスタ２１２のレジスタ値が含まれる。すなわち、ＳＴＡＴＵＳレジスタ２１２のレジスタ値が異常ノード情報として用いられる。そして、受信側ノードは、自ノードのＳＴＡＴＵＳレジスタ２１２のレジスタ値の対応するビットを更新する。具体的には、送信側のＳＴＡＴＵＳレジスタ２１２において“1”がセットされているビットについて、自ノードのＳＴＡＴＵＳレジスタ２１２のレジスタ値を更新して“1”をライトする。
【００３９】
ＩＮＴレジスタ２１３は、ＳＴＡＴＵＳレジスタ２１２において更新のあったビット（ＢＢ２０）を示すレジスタである。このＩＮＴレジスタ２１３は、図７に示すようなＢＢ２０の数に応じたビット数（本例では１６ビット）を格納可能であり、各ビット（Bit）0〜15がＢＢ＃０〜＃１５にそれぞれ対応する。
図７の項Nameは、マルチノードシステム１が備える各ＢＢ２０の名前を示している。すなわち、本例におけるマルチノードシステム１が備えるＢＢ＃０〜ＢＢ＃１５がそれぞれBB0_INT〜BB15_INTで表されている。
【００４０】
そして、ＩＮＴレジスタ２１３においては、図７の項0/1に示すように、各ＢＢ２０（Bit）に対して“0”もしくは“1”が設定される。ＩＮＴレジスタ２１３には、レジスタ値の初期値として例えば“0”が全ビットに設定されている。上述したようにＸＢＢ１０又はＢＢ２０が異常ノード情報を受信して自ノードのＳＴＡＴＵＳレジスタ２１２を更新した場合には、このＳＴＡＴＵＳレジスタ２１２において更新されたビットに対応する本ＩＮＴレジスタ２１３のビットが更新される。
【００４１】
そして、このＩＮＴレジスタ２１３のいずれかのビットにおいて“1”がセットされた場合には、異常ノード情報送受信機能部２１０は、ＦＰＧＡ割り込み監視部２２５ａに対して異常ノード情報の割り込みを入れる。
ＭＡＳＫレジスタ２１４は、異常の検知を無効化するために用いるレジスタである。異常の検知を行なわないノードがある場合には、例えばオペレータがこのＭＡＳＫレジスタ２１４において当該ノードに対応させて“0”を設定する。このＭＡＳＫレジスタ２１４は、図８に示すようなＢＢ２０の数に応じたビット数（本例では１６ビット）を格納可能であり、各ビット（Bit）0〜15がＢＢ＃０〜＃１５にそれぞれ対応する。
【００４２】
図８の項Nameは、マルチノードシステム１が備える各ＢＢ２０の名前を示している。すなわち、本例におけるマルチノードシステム１が備えるＢＢ＃０〜ＢＢ＃１５がそれぞれBB0_INT_MASK〜BB15_INT_MASKで表されている。
そして、ＭＡＳＫレジスタ２１４においては、図８の項0/1に示すように、各ＢＢ２０（Bit）に対して“0”もしくは“1”が設定される。ＭＡＳＫレジスタ２１４には、レジスタ値の初期値として例えば“0”が全ビットに設定されている。ＩＮＴレジスタ２１３においてレジスタ値が“1”に更新されたビットに対応する本ＭＡＳＫレジスタ２１４のビットが“0”の場合には、異常ノード情報送受信機能部２１０は、上述したようにＦＰＧＡ割り込み監視部２２５ａに対して異常ノード情報の割り込みを入れる。一方、ＩＮＴレジスタ２１３においてレジスタ値が“1”に更新されたビットに対応する本ＭＡＳＫレジスタ２１４のビットが“1”の場合には、異常ノード情報送受信機能部２１０は、ＦＰＧＡ割り込み監視部２２５ａに対して異常ノード情報の割り込みを入れずにマスクする。
【００４３】
なお、このＭＡＳＫレジスタ２１４の対応するビットの値が“1”であっても、ＩＮＴレジスタ２１３には“1”がセットされる。また、ＭＡＳＫレジスタ２１４の各ビットの値は、例えば、オペレータが任意に更新できる。
ＸＢＢ１０は、図２に示すように、ＦＰＧＡ１１，Cross-bar Service Processor（ＸＳＰ）１２０及びCross-Bar Unit（ＸＢＵ）１３０を備える。
【００４４】
ＸＢＵ１３０は、各ＢＢ２０が備えるＣＭＵ２３０を互いに通信可能に接続させる専用のハードウェアである。
ＸＳＰ１２０は、ＸＢＢ１０及び各ＢＢ２０の管理を行なう処理装置であり、例えば、各ＢＢ２０内における異常監視を行ない、異常発生時に外部への通知やリカバリ処理等を行なう。このＸＳＰ１２０は、マスタファームウェア（ＦＷ）１２を備える。ＸＳＰ１２０は、図示しないプロセッサやメモリを備え、このプロセッサがプログラムを実行することにより、マスタファームウェア１２としての機能が実現される。
【００４５】
なお、このマスタファームウェア１２としての機能を実現するためのプログラムは、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ  ＤＶＤ等），ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体から図示しないドライブ装置を介してプログラムを読み取って内部記録装置または外部記録装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供してもよい。
【００４６】
マスタファームウェア１２としての機能を実現する際には、図示しない内部記憶装置に格納されたプログラムがコンピュータのマイクロプロセッサ（本実施形態では図示しないプロセッサ）によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行してもよい。
マスタファームウェア１２は、図１に示すように後述するログ情報解析部１２１を備える。
【００４７】
ログ情報解析部１２１は、ＢＢ２０のログ情報送信部２２２が送信したログ情報を受信し、解析する。
ＦＰＧＡ１１は、異常検知部２３以外のＢＢ２０が備えるＦＰＧＡ２１と同様の機能構成を備える。すなわち、ＦＰＧＡ１１は、図４に示した異常検知部２３を除く、異常ノード情報送受信機能部１１０及びＢＢ間データ送受信回路２１５を備える。
【００４８】
ＸＢＢ１０においては、異常ノード情報送受信機能部１１０は、ＢＢ２０から受信した異常ノード情報を各ＢＢ２０へ転送（ブロードキャスト）する。この異常ノード情報送受信機能部１１０は、図４に示すように異常ノード情報送受信機能部２１０と同様の構成を備える。
本マルチノードシステム１では、図２中の破線に示すように、ＸＢＢ１０及び各ＢＢ２０がそれぞれ備えるＦＰＧＡ２１は、例えばＢＢ間専用バスで互いに通信可能に接続されている。ＸＢＢ１０が備えるマスタファームウェア１２及び各ＢＢ２０が備えるスレーブファームウェア２２は、例えばバス線で互いに通信可能に接続されている。ＸＢＢ１０が備えるＦＰＧＡ１１及びマスタファームウェア１２は、例えばバス線で通信可能に接続されている。ＢＢ２０が備えるＦＰＧＡ２１及びスレーブファームウェア２２は、例えばバス線で通信可能に接続されている。ＢＢ２０が備えるＦＰＧＡ２１及びＣＰＵ２３１は、例えばバス線で通信可能に接続されている。
【００４９】
図２〜図４を用いて上述した本マルチノードシステム１は、図１に示すようにその機能構成を模式的に示すことができる。
以下、図中において、既述の符号と同一の各符号は、既述の各符号と同様の部分を示しているので、その説明は省略する場合がある。
なお、図１において、ＸＢＢ１０のＦＰＧＡ１１中の異常ノード情報転送部（異常装置情報転送部）１１０は、図４に示した異常ノード情報送受信機能部１１０に相当する。ＢＢ２０のＦＰＧＡ２１中の異常ノード情報通知部（異常装置情報通知部）２１０ａ及び異常ノード情報受信部２１０ｂは、図４に示した異常ノード情報送受信機能部２１０に相当する。ＢＢ２０のファームウェア２２中のログ情報収集部２２１は図３に示した異常箇所情報収集部２２１ａ及びログ収集部２２１ｂに相当し、異常ノード情報通知制御部２２４はＦＰＧＡ制御部２２４に相当する。上位通知処理部２２５は、図３に示したＦＰＧＡ割り込み監視部２２５ａ、異常ノード読込処理部２２５ｂ及び通知部２２５ｃに相当する。〔Ａ−２〕動作
上述の如く構成された実施形態の一例としてのマルチノードシステム１における障害処理を、図１０を参照しながら、図９に示すシーケンス図（符号Ａ１０〜Ａ１５０）に従って説明する。
【００５０】
以下、図９及び図１０を参照しながら説明をする際には、ｎ＝２すなわちマルチノードシステム１が３つのＢＢ＃０〜ＢＢ＃２を備える例について説明する。
なお、図９において、ＨＶ２４２ａ及びＯＳ２４２ｂは図２に示したＨＶ／ＯＳ２４２に相当し、ＢＢ＃２が備える一部の機能構成の図示は簡単のため省略してある。
ＢＢ＃０において何らかの異常が発生し、ＢＢ＃０がダウン（ノードダウン）すると、ＢＢ＃０の異常検知部２３は、自ノードにおいて発生した異常を検知し、スレーブファームウェア２２に割り込みを入れる（符号Ａ１０参照）。
【００５１】
異常監視部２２６は、異常検知部２３による異常発生の割り込みを検出する（符号Ａ２０参照）。
異常箇所情報収集部２２１ａは、異常監視部２２６が割り込みを検出すると、異常が発生したＢＢ２０における異常箇所情報を収集する。異常箇所情報解析部２２７は、異常箇所情報収集部２２１ａが収集した異常箇所情報を解析する。異常ノード情報作成部２２３は、異常箇所情報解析部２２７が解析した異常箇所情報に基づき、異常ノード情報を作成する（符号Ａ３０参照）。
【００５２】
ＦＰＧＡ制御部２２４は、異常ノード情報作成部２２３が作成した異常ノード情報をＦＰＧＡ２１に書き込む（ＦＰＧＡキックする）（符号Ａ４０参照）。
異常ノード情報通知部２１０ａは、ＦＰＧＡ制御部２２４によって書き込まれた異常ノード情報をＸＢＢ１０へ送信する（符号Ａ５０参照）。
ＸＢＢ１０の異常ノード情報転送部１１０は、ＢＢ２０から受信した異常ノード情報を各ＢＢ２０へ一斉に転送（ブロードキャスト）する（符号Ａ６０参照）。
【００５３】
全てのＢＢ２０の異常ノード情報受信部２１０ｂは、異常ノード情報をＸＢＢ１０から受信する（符号Ａ７０参照）。
以下、ＢＢ＃１とＢＢ＃２とは同様の処理を行なうが、ここでは便宜上、図９及び図１０に示すようにＢＢ＃１での処理について説明する。
異常ノード情報受信部２１０ｂは、この受信した異常ノード情報についてＦＰＧＡ割り込み監視部２２５ａに割り込みを入れる（符号Ａ８０参照）。
【００５４】
ＦＰＧＡ割り込み監視部２２５ａは、ＦＰＧＡ２１からの異常ノード情報の割り込みを検出する（符号Ａ９０参照）。
異常ノード読込処理部２２５ｂはこの異常ノード情報を読み込み、通知部２２５ｃは異常ノード読込処理部２２５ｂが読み込んだ異常ノード情報をアプリ２４１やＨＶ２４２ａ、ＯＳ２４２ｂ等の上位アプリケーション２４へ通知する（符号Ａ１００参照）。
【００５５】
そして、アプリ２４１、ＨＶ２４２ａ及びＯＳ２４２ｂは、受信した異常ノード情報を基に、異常ノードを切り離す等のシステムの再構築をしてから、処理を再開する（符号Ａ１１０参照）。なお、このアプリ２４１、ＨＶ２４２ａ及びＯＳ２４２ｂによる処理は、種々の既知の手法で行なえるため、その詳細な説明は省略する。
一方、異常が発生したＢＢ＃０のログ収集部２２１ｂは、ステップＡ５０において異常ノード情報をＸＢＢ１０へ送信した後、異常に関するログ情報を収集する（符号Ａ１２０参照）。
【００５６】
ログ情報送信部２２２は、ログ情報収集部２２１ｂが収集したログ情報をＸＢＢ１０へ送信する（符号Ａ１３０参照）。
ＸＢＢ１０のログ情報解析部１２１は、ＢＢ２０のログ情報送信部２２２が送信したログ情報を受信し（符号Ａ１４０参照）、そのログ情報を解析する（符号Ａ１５０参照）。ログ情報解析部１２１による解析には、ハードウェアの異常情報に関する詳細情報（例えば、ＣＰＵ２３１内の何番目のコアの何番目のスレッドでどのような故障が発生したか）の作成がある。また、ログ情報解析部１２１は、解析した詳細情報をＸＢＢ１０内に備えられた図示しないメモリに格納しても良い。これにより、故障した部品が工場に戻った際に、調査に利用されることができる。
【００５７】
以上で、本マルチノードシステム１における障害処理が完了する。
このように、本マルチノードシステム１における障害処理では、異常箇所情報収集部２２１ａは、ログ情報の収集（符号Ａ１２０参照）から異常ノード情報の収集（符号Ａ３０参照）のみを分離して優先して行なう。また、異常箇所情報解析部２２７及び異常ノード情報作成部２２３は、ＸＢＢ１０によるログ情報の解析（符号Ａ１５０参照）から異常箇所情報の解析及び異常ノード情報の作成（符号Ａ３０参照）のみを分離して優先して行なう。そして、異常ノード情報通知部２１０ａは、異常ノード情報作成部２２３による異常ノード情報の作成後、ＸＢＢ１０に対して速やかにその異常ノード情報のみを通知する（符号Ａ５０参照）。
【００５８】
以下、実施形態の一例としてのマルチノードシステム１の実装時における障害処理を、図１１〜図１３を参照しながら説明する。
以下、図１１〜図１３を参照しながら説明をする際には、ｎ＝２すなわちマルチノードシステム１が３つのＢＢ＃０〜＃２を備える場合について説明する。
なお、図１１〜図１３に示す例においては、ＸＢＢ１０及びＢＢ２０がそれぞれ備える機能構成の一部の図示を簡単のために省略している。
【００５９】
図１１〜図１３に示すように、ＸＢＢ１０が備えるＦＰＧＡ１１及びマスタファームウェア１２には、＃００が番号としてそれぞれ付されている。同様に、ＢＢ＃０が備えるＦＰＧＡ２１及びスレーブファームウェア２２には＃０が、ＢＢ＃１が備えるＦＰＧＡ２１及びスレーブファームウェア２２には＃１が、ＢＢ＃２が備えるＦＰＧＡ２１及びスレーブファームウェア２２には＃２が、それぞれ番号として付されている。また、ＸＢＢ１０のポート＃０はＢＢ＃０のポート＃０に接続され、ＸＢＢ１０のポート＃１はＢＢ＃１のポート＃０に接続され、ＸＢＢ１０のポート＃２はＢＢ＃２のポート＃０に接続される。
【００６０】
以下、ＸＢＢ１０が備えるＦＰＧＡ１１及びマスタファームウェア１２を、それぞれＦＰＧＡ＃００及びＦＷ＃００という場合がある。また、以下、ＢＢ＃０〜ＢＢ＃２がそれぞれ備えるＦＰＧＡ２１及びスレーブファームウェア２２を、それぞれＦＰＧＡ＃０〜ＦＰＧＡ＃２及びＦＷ＃０〜ＦＷ＃２という場合がある。
ここでは、異常発生時におけるＦＰＧＡ１１，２１が備える各レジスタの更新手法について詳しく説明する。
【００６１】
図１１〜図１３に示す例においては、ＣＮＴＬレジスタ２１１、ＳＴＡＴＵＳレジスタ２１２及びＩＮＴレジスタ２１３は、ＢＢ＃０〜ＢＢ＃２に対応する少なくとも３ビットのレジスタ値をそれぞれ格納する。レジスタ値の下１桁目〜下３桁目は、各ＢＢ２０がそれぞれ備えるＦＷ＃０〜ＦＷ＃２の番号にそれぞれ対応するものとする。例えば、ＦＷ＃１が備えられるＢＢ＃１内で異常が発生した際には、このレジスタ値の下２桁目に“1”が立てられ、“0010”となる。このレジスタ値“0010”を１６進法で表すと“0x0002”となる。そして、ＦＰＧＡ１１，２１それぞれが備える各レジスタ値を、例えば、この１６進数で表すものとする。なお、この１６進数の上位２桁の“0x”は、１６進数であることを表している。
【００６２】
また、以下においては、ＣＮＴＬレジスタ２１１、ＳＴＡＴＵＳレジスタ２１２及びＩＮＴレジスタ２１３のｍビット目をCNTL[m]，STATUS[m]，INT[m]でそれぞれ表すものとする（ｍはマルチノードシステム１に備えられる各ＢＢ２０に対応する値であり、本実施形態の一例では０〜２の整数である）。
ＢＢ＃１で異常が発生すると、ＢＢ＃１の異常検知部２３は、異常を検出し（図１１の符号Ｂ１０参照）、ＦＷ＃１に割り込みを入れる。
【００６３】
ＦＷ＃１は、作成した異常ノード情報をＦＰＧＡ＃１のＣＮＴＬレジスタ２１１に書き込む（図１１の符号Ｂ２０参照）。具体的には、ＦＷ＃１は、CNTL[1]に“1”をライトする。図１１に示す例では、ＦＷ＃１が備えられるＢＢ＃１内で異常が発生したため、ＳＴＡＴＵＳレジスタ２１２には上述した１６進数“0x0002”がセットされる。一方、ＢＢ＃１以外の各ノードがそれぞれ備えるＳＴＡＴＵＳレジスタ２１２及びＩＮＴレジスタ２１３には、図１１に示すように、いずれのノードでも異常が発生していないことを示す初期値としての１６進数“0x0000”がセットされている。
【００６４】
ＦＰＧＡ＃１は、ＳＴＡＴＵＳレジスタ２１２を更新する。すなわち、ＦＰＧＡ＃１は、ＣＮＴＬレジスタ２１１の更新に基づき、STATUS[1]に“1”をセットする（図１１の符号Ｂ３０参照）。
ＦＰＧＡ＃１は、ＩＮＴレジスタ２１３を更新する。すなわち、ＦＰＧＡ＃１は、ＳＴＡＴＵＳレジスタ２１２の更新に基づき、INT[1]に“1”をセットする（図１１の符号Ｂ４０参照）。
【００６５】
ＦＰＧＡ＃１は、ＩＮＴレジスタ２１３の更新に基づき、ＦＷ＃１に対して割り込みを入れる（図１１の符号Ｂ５０参照）。
ＦＷ＃１は、割り込みの受信によりINT[1]を“0”クリアする（図１２の符号Ｂ６０参照）。
ＦＰＧＡ＃１は、CNTL[1]に“1”をライトされたことにより、ＢＢ間データ送受信回路２１５に対して異常ノード情報を付加したパケットの送信リクエストを発行する（図１２の符号Ｂ７０参照）。
【００６６】
ＢＢ＃１のＢＢ間データ送受信回路２１５は、異常ノード情報が付加されたパケットをＸＢＢ１０へ送信する（図１２の符号Ｂ８０参照）。図１２に示す例においては、ＢＢ＃１のポート＃０からＸＢＢ１０のポート＃１へパケットが送信される。
ＸＢＢ１０のＢＢ間データ送受信回路２１５は、異常ノード情報が付加されたパケットを受信する。ＦＰＧＡ＃００は、この異常ノード情報に基づいてＳＴＡＴＵＳレジスタ２１２を更新する（図１２の符号Ｂ９０参照）。すなわち、ＦＰＧＡ＃００は、STATUS[1]に“1”を書き込む。
【００６７】
ＦＰＧＡ＃００は、ＳＴＡＴＵＳレジスタ２１２の更新に基づき、INT[1]に“1”をセットする（図１２の符号Ｂ１００参照）。
ＦＰＧＡ＃００は、ＩＮＴレジスタ２１３の更新に基づき、ＦＷ＃００に対して割り込みを入れる（図１２の符号Ｂ１１０参照）。
ＦＷ＃００は、割り込みの受信によりINT[1]を“0”クリアする（図１３の符号Ｂ１２０参照）。
【００６８】
ＦＰＧＡ＃００は、ＢＢ＃１から異常ノード情報が付加されたパケットを受信したことにより、ＢＢ間データ送受信回路２１５に対してこの異常ノード情報を付加したパケットの送信リクエストを発行する（図１３の符号Ｂ１３０参照）。
ＸＢＢ１０のＢＢ間データ送受信回路２１５は、異常ノード情報が付加されたパケットを全てのＢＢ２０へ送信する（図１３の符号Ｂ１４０参照）。図１３に示す例においては、ＸＢＢ１０のポート＃０からＢＢ＃０のポート＃０へ、ＸＢＢ１０のポート＃１からＢＢ＃１のポート＃０へ、ＸＢＢ１０のポート＃２からＢＢ＃２のポート＃０へそれぞれパケットが送信される。
【００６９】
各ＢＢ２０のＢＢ間データ送受信回路２１５は、異常ノード情報が付加されたパケットを受信し、この受信した異常ノード情報でＳＴＡＴＵＳレジスタ２１２を書き換える。
ＢＢ＃１のＦＰＧＡ＃１は、ＳＴＡＴＵＳレジスタ２１２の値が変化しないので、ＩＮＴレジスタ２１３も変化しない（図１３の符号Ｂ１５０参照）。
一方、ＢＢ＃０のＦＰＧＡ＃０は、ＳＴＡＴＵＳレジスタ２１２のSTATUS[1]を“1”に書き換え（更新す）る（図１３の符号Ｂ１６０参照）。
【００７０】
ＦＰＧＡ＃０は、ＳＴＡＴＵＳレジスタ２１２の更新に基づき、ＩＮＴレジスタ２１３のINT[1]に“1”をセットする（図１３の符号Ｂ１７０参照）。
ＦＰＧＡ＃０は、ＩＮＴレジスタ２１３の更新に基づき、ＦＷ＃０に対して割り込みを入れる（図１３の符号Ｂ１８０参照）。なお、割り込みを受けたＦＷ＃０は、INT[1]を“0”クリアする。
【００７１】
また、図１３に示すように、ＢＢ＃２についても上述したＢＢ＃０と同様の処理（図１３の符号Ｂ１６０〜Ｂ１８０）を行なう。
以上で、本マルチノードシステム１の実装時における障害処理が完了する。
以下、実施形態の一例としてのマルチノードシステムのスレーブファームウェアにおける障害処理を、図１４〜図１７に示すフローチャート（ステップＣ１０〜ステップＣ１１０）に従って説明する。なお、図１５は図１４のステップＣ３０〜Ｃ５０の詳細を示すフローチャート（ステップＣ３１，Ｃ４１，Ｃ５１）、図１６は図１４のステップＣ６０の詳細を示すフローチャート（ステップＣ６１〜Ｃ６５）、図１７は図１４のステップＣ７０，Ｃ８０の詳細を示すフローチャート（ステップＣ７１〜Ｃ７３，Ｃ８１）である。
【００７２】
異常監視部２２６は、異常検知部２３による異常発生の割り込みを監視する（図１４のステップＣ１０）。
異常監視部２２６は、異常検知部２３による異常発生の割り込みを検出したか否かを判定する（図１４のステップＣ２０）。
異常監視部２２６が異常検知部２３による異常発生の割り込みを検出しない場合には（図１４のステップＣ２０のＮＯルート参照）、ステップＣ１０に戻り、異常発生の割り込みの監視を繰り返し行なう。
【００７３】
異常監視部２２６が異常検知部２３による異常発生の割り込みを検出した場合には（図１４のステップＣ２０のＹＥＳルート参照）、異常箇所情報収集部２２１ａは、異常が発生したＢＢ２０における異常箇所情報を収集する（図１４のステップＣ３０）。
異常箇所情報解析部２２７は、異常箇所情報収集部２２１ａが収集した異常箇所情報を解析する（図１４のステップＣ４０）。
【００７４】
異常ノード情報作成部２２３は、異常箇所情報解析部２２７が解析した異常箇所情報に基づき、異常ノード情報を作成する（図１４のステップＣ５０）。
ＦＰＧＡ制御部２２４は、異常ノード情報作成部２２３が作成した異常ノード情報をＦＰＧＡ２１に書き込む（図１４のステップＣ６０）。
ＦＰＧＡ割り込み監視部２２５ａは、ＦＰＧＡ２１からの異常ノード情報の割り込みを検出する（図１４のステップＣ７０）。
【００７５】
異常ノード読込処理部２２５ｂは、ＦＰＧＡ割り込み監視部２２５ａによる割り込みの検出により、異常ノード情報を読み込む（図１４のステップＣ８０）。
通知部２２５ｃは、異常ノード情報読込処理部２２５ｂが読み込んだ異常ノード情報を上位のアプリ２４１及びＨＶ／ＯＳ２４２へ通知する（図１４のステップＣ９０）。
一方、ログ収集部２２１ｂは、ステップＣ６０においてＦＰＧＡ制御部２２４が異常ノード情報をＦＰＧＡ２１に書き込んだ後、異常が発生したＢＢ２０における異常に関するログ情報を収集する（図１４のステップＣ１００）。なお、このログ情報の収集は、ＦＰＧＡ２１への書き込みと同時に行なっても良い。
【００７６】
ログ情報送信部２２２は、ログ情報収集部２２１ｂが収集したログ情報をＸＢＢ１０へ送信する（図１４のステップＣ１１０）。
以上で、本マルチノードシステム１における障害処理が完了する。
ステップＣ３０〜Ｃ５０における処理は、図１５のように詳細に示すことができる。
ステップＣ３０において、異常箇所情報収集部２２１ａは、ＢＢ２０が備える異常箇所レジスタ２５１及び異常レベルレジスタ２５２の値を読み込む（図１５のステップＣ３１）。異常箇所レジスタ２５１及び異常レベルレジスタ２５２の値は故障が発生していない状態では全てのbitに0が設定されている。異常発生時、異常箇所レジスタ２５１は、“ＣＰＵ”や“電源”等の予め異常箇所として監視される部品に対して“1”の値を格納する。図１５に示す例では、“ＣＰＵ”に対して異常箇所を示す“1”がセットされている。また、異常レベルレジスタ２５２は、異常発生時に、異常箇所レジスタ２５１に示される各部品に対して、それぞれ異常のレベル（重要度；“Alarm (A)”又は“Warning (W)”）を示す情報を格納する。図１５に示す例では、“ＣＰＵ”の異常レベルが“Alarm”であることを示す“1”がセットされている。このように、異常箇所レジスタ２５１に“1”が立つと、異常レベルレジスタ２５２にも“1”がセットされる。なお、異常レベルレジスタの“Alarm”及び“Warning”以外の欄は拡張用であり、例えば“Alarm”及び“Warning”以外の異常レベルを定義しても良い。
【００７７】
ステップＣ４０において、異常箇所情報解析部２２７は、異常箇所が重要部品（例えば、ＣＰＵや電源）で、且つ、異常レベルが“Alarm”であるか否かを判定する（図１５のステップＣ４１）。なお、この異常箇所情報解析部２２７による判定は一例に過ぎず、これに限定されるものではない。例えば、異常レベルが“Alarm”であるか否かのみを判定基準とすることもできる。また、重要部品であるか否かの判断基準も、予め設定することができる。
【００７８】
異常箇所が重要部品で、且つ、異常レベルが“Alarm”である場合には（図１５のステップＣ４１のＹＥＳルート参照）、ステップＣ５０において、異常ノード情報作成部２２３は、異常が発生したＢＢ２０の番号を示す異常ノード情報を設定する（図１５のステップＣ５１）。例えば、ＢＢ＃１で異常が発生した場合には、ＢＢ＃１を示すBit 1に“1”をセットする。
【００７９】
一方、異常箇所が重要部品で、且つ、異常レベルが“Alarm”でない場合には（図１５のステップＣ４１のＮＯルート参照）、図１６の後述するステップＣ６０に移行する。すなわち、異常が発生したＢＢ２０の番号を異常ノード情報に設定せずにＦＰＧＡ制御処理（図１４のステップＣ６０）に移行する。
ステップＣ６０における処理は、図１６のように詳細に示すことができる。
【００８０】
ステップＣ６０において、ＦＰＧＡ制御部２２４は、CNTL[x]に“1”を設定する（ｘは異常が発生したＢＢの番号）（図１６のステップＣ６１）。なお、異常箇所が重要部品で、且つ、異常レベルが“Alarm”でない場合には（図１５のステップＣ４１のＮＯルート参照）、異常が発生したＢＢ２０の番号を異常ノード情報に設定（図１５のステップＣ５１）していないため、ＦＰＧＡ制御部２２４は、ＣＮＴＬレジスタ２１１のいずれのビットにも“1”をセットしない。
【００８１】
ＦＰＧＡ割り込み監視部２２５ａは、ＦＰＧＡ２１においてINT[x]に“1”がセットされたことにより、割り込みを受ける（図１６のステップＣ６２）。
ＦＰＧＡ割り込み監視部２２５ａは、割り込みを受けたことにより、ＦＰＧＡ２１のINT[x]を“0”クリアする。
一方、ＢＢ２０のＦＰＧＡ２１は、ステップＣ６１の処理の後にステップＣ６２，Ｃ６３の処理と並行して、異常ノード情報を付加したパケットをＸＢＢ１０のＦＰＧＡ１１へ送信する（図１６のステップＣ６４）。
【００８２】
ＸＢＢ１０のＦＰＧＡ１１は、異常ノード情報を付加したパケットを全てのＢＢ２０のＦＰＧＡ２１へ転送する（図１６のステップＣ６５）。
ステップＣ７０，Ｃ８０における処理は、図１７のように詳細に示すことができる。
ステップＣ７０において、ＢＢ２０のＦＰＧＡ２１は、異常ノード情報が付加されたパケットをＸＢＢ１０のＦＰＧＡ１１から受信する（図１７のステップＣ７１）。
【００８３】
ＦＰＧＡ２１は、STATUS[x]の更新に基づきINT[x]をセット（更新）する（図１７のステップＣ７２）。
ＦＰＧＡ割り込み監視部２２５ａは、ＦＰＧＡ２１においてINT[x]に“1”がセットされたことにより、割り込みを受ける（図１７のステップＣ７３）。
ステップＣ８０において、異常ノード情報読込処理部２２５ｂは、ＦＰＧＡ２１からの割り込みから、異常ノード情報を取得する（図１７のステップＣ８１）。
【００８４】
〔Ａ−３〕効果
図１８（ａ），（ｂ）は従来例としてのマルチノードシステムにおける障害処理と実施形態の一例としてのマルチノードシステムにおける障害処理とを比較するシーケンス図である。また、図１９（ａ）は従来例としてのマルチノードシステムにおける障害処理に要する時間を説明する図であり、図１９（ｂ）は実施形態の一例としてのマルチノードシステムにおける障害処理に要する時間を説明する図である。
【００８５】
従来例としてのマルチノードシステムにおいては、図１８（ａ）に示すように、ＢＢは、異常が発生したＢＢにおける異常に関する全てのログ情報を収集し（図１８（ａ）の符号Ｄ１０参照）、そのログ情報をＸＢＢへ送信する。ＸＢＢは、ＢＢが送信したログ情報を受信し、そのログ情報を解析する（図１８（ａ）の符号Ｄ２０参照）。そして、この解析が完了してから、ＸＢＢは、各ＢＢに異常ノードを通知する。
【００８６】
一方、本実施形態の一例としてのマルチノードシステム１においては、図１８（ｂ）に示すように、ＢＢ２０は、異常が発生したＢＢ２０における異常箇所情報のみを先行して収集する（図１８（ｂ）の符号Ｅ１０参照）。また、ＢＢ２０は、収集した異常箇所情報のみを解析し（図１８（ｂ）の符号Ｅ２０参照）、解析した異常箇所情報に基づき異常ノード情報を作成し（図１８（ｂ）の符号Ｅ３０参照）、作成した異常ノード情報をＸＢＢ１０へ通知する。ＸＢＢ１０は、ＢＢ２０から受信した異常ノード情報を全てのＢＢ２０へ転送する。そして、ＢＢ２０は、異常ノード情報をＸＢＢ１０へ通知した後に、異常が発生したＢＢにおける異常に関する全てのログ情報を収集し（図１８（ｂ）の符号Ｅ４０参照）、そのログ情報をＸＢＢ１０へ送信する。ＸＢＢ１０は、ＢＢ２０が送信したログ情報を受信し、そのログ情報を解析する（図１８（ｂ）の符号Ｅ５０参照）。
【００８７】
すなわち、本実施形態の一例としてのマルチノードシステム１においては、ＢＢ２０は、従来例におけるログ収集処理（図１８（ａ）の符号Ｄ１０）で行なっていた異常箇所情報収集処理（図１８（ｂ）の符号Ｅ１０）と、従来例におけるログ解析処理（図１８（ａ）の符号Ｄ２０）で行なっていた異常箇所解析処理（図１８（ｂ）の符号Ｅ２０）及び異常ノード情報作成処理（図１８（ｂ）の符号Ｅ３０）をログ収集処理（図１８（ｂ）の符号Ｅ４０）よりも先に行なう。
【００８８】
言い換えれば、ＢＢ２０は、異常箇所情報収集、異常箇所情報解析及び異常ノード情報作成の各処理（図１８（ｂ）の符号Ｅ１０〜Ｅ３０）をログ収集処理（図１８（ｂ）の符号Ｅ４０）に優先して行なう。これにより、各ＢＢ２０においては、異常発生が検知されてから従来手法よりも短い時間で上位アプリケーション２４へ異常ノード情報を通知することができる。
【００８９】
以下、図１９（ａ），（ｂ）を参照しながら、上述した実施形態の一例としてのマルチノードシステム１による効果を説明する。
従来例としてのマルチノードシステムは、図１９（ａ）に示すように、ハードウェアとして、ＢＢ間汎用Local Area Network（ＬＡＮ）が備える。また、従来例としてのマルチノードシステムは、ソフトウェア又はファームウェアとして、汎用ＬＡＮドライバによる処理、Transmission Control Protocol/Internet Protocol（ＴＣＰ／ＩＰプロトコル）による処理、ファームウェアによる異常ノード情報の受信機能、ログ収集及びログ解析を備える。
【００９０】
一方、本実施形態の一例としてのマルチノードシステム１は、図１９（ｂ）に示すように、ハードウェアとして、ＢＢ間専用バス、ＦＰＧＡによる異常ノード情報の送受信機能及び専用ＦＰＧＡドライバを備える。また、本実施形態の一例としてのマルチノードシステム１は、ソフトウェア又はファームウェアとして、異常ノード情報作成、異常箇所情報収集、異常箇所情報解析、ログ収集及びログ解析を備える。
【００９１】
すなわち、従来例としてのマルチノードシステムではマスタファームウェアとスレーブファームウェアとの間のＴＣＰ／ＩＰ通信としてファームウェアで実装していた処理を、本実施形態の一例としてのマルチノードシステム１ではハードウェア及びそのドライバとして実装する（矢印Ａ参照）ことで、処理の高速化を実現する。また、従来例としてのマルチノードシステムではログ収集としてまとめて行なっている異常ノード情報の収集を、本実施形態の一例としてのマルチノードシステム１では異常ノード情報収集処理として先行して行なう（矢印Ｂ参照）。更に、従来例としてのマルチノードシステムではログ解析としてまとめて行なっている異常ノード情報の解析を、本実施形態の一例としてのマルチノードシステム１では異常ノード情報解析処理として先行して行なう（矢印Ｃ参照）。
【００９２】
このように、実施形態の一例としてのマルチノードシステム１によれば、ログ情報収集部２２１及び異常ノード情報作成部２２３が、それぞれ異常箇所情報の収集及び異常ノード情報の作成をログ収集に優先して行なう。これにより、図１９（ｂ）に示すように、異常ノード情報の特定完了までの時間を短縮することができる。また、マルチノードシステム１の運用停止時間を短縮することができる。具体的には、全てのＢＢ２０のアプリ２４１やＨＶ／ＯＳ２４２が異常ノード情報を特定するまでの時間を、数秒程度にすることができる。
【００９３】
また、異常ノード情報通知制御部２２４がＦＰＧＡ２１内に備えられたＣＮＴＬレジスタ２１１が格納する値を制御することにより、処理時間を短縮することができる。具体的には、異常ノード情報通知制御部２２４は、数マイクロ秒程度でＣＮＴＬレジスタ２１１を更新することができる。
更に、ＦＰＧＡ１１，２１内にそれぞれ備えられた異常ノード情報転送部１１０、異常ノード情報通知部２１０ａ及び異常ノード情報受信部２１０ｂが、専用のＢＢ間バスを介して異常ノード情報の送受信を行なうことにより、ノード間の通信速度を速くすることができる。具体的には、ＦＰＧＡ１１，２１は、ノード間の通信を数マイクロ秒程度で行なうことができる。
【００９４】
〔Ｂ〕その他
開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成及び各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
〔Ｃ〕付記
（付記１）
複数の情報処理装置を備えた情報処理システムであって、
前記情報処理装置のそれぞれが、
異常発生を検知する異常検知部と、
前記異常発生が検知された情報処理装置におけるログ情報を収集するログ情報収集部と、
前記ログ情報収集部による前記ログ情報の収集に優先して、前記異常発生が検知された情報処理装置を示す異常装置情報を作成する異常装置情報作成部と、
前記ログ情報収集部による前記ログ情報の収集に優先して、前記異常装置情報作成部が作成した前記異常装置情報を前記複数の情報処理装置のそれぞれに対して通知する異常装置情報通知部と、
を備えることを特徴とする、情報処理システム。
【００９５】
（付記２）
前記複数の情報処理装置のそれぞれが、
前記異常装置情報が通知されると、上位アプリケーションに対して通知を行なう上位通知処理部
を備えることを特徴とする、付記１に記載の情報処理システム。
【００９６】
（付記３）
前記異常装置情報が通知されると、当該異常装置情報を前記複数の情報処理装置のそれぞれに転送する異常装置情報転送部を有する通信制御部を備え、
前記異常装置情報通知部が、前記異常装置情報を前記異常装置情報転送部に通知する
ことを特徴とする、付記１又は２に記載の情報処理システム。
【００９７】
（付記４）
前記異常装置情報通知部及び前記異常装置情報転送部が、それぞれ
前記異常装置情報を格納可能な状態管理情報記憶部を有するＦＰＧＡ（Field Programmable Gate Array）に備えられ、
前記情報処理装置のＦＰＧＡが、前記状態管理情報記憶部が更新されると、前記通信制御部のＦＰＧＡに対して前記状態管理情報記憶部に格納された前記異常装置情報を通知し、
前記通信制御部のＦＰＧＡが、前記状態管理情報記憶部が更新されると、前記複数の情報処理装置のＦＰＧＡに対してそれぞれ前記状態管理情報記憶部に格納された前記異常装置情報を一斉通知する
ことを特徴とする、付記３に記載の情報処理システム。
【００９８】
（付記５）
複数の情報処理装置と通信可能に接続される通信部と、
異常発生を検知する異常検知部と、
検知された異常に関するログ情報を収集するログ情報収集部と、
前記ログ情報収集部による前記ログ情報の収集に優先して、前記異常発生が検知された当該情報処理装置を示す異常装置情報を作成する異常装置情報作成部と、
前記ログ情報収集部による前記ログ情報の収集に優先して、前記異常装置情報作成部が作成した前記異常装置情報を前記通信部を介して前記複数の情報処理装置に対して通知する異常装置情報通知部と、
を備えることを特徴とする、情報処理装置。
【００９９】
（付記６）
前記通信制御装置から前記異常装置情報が通知されると、上位アプリケーションに対して通知を行なう上位通知処理部
を備えることを特徴とする、付記５に記載の情報処理装置。
（付記７）
前記異常装置情報通知部が、
前記異常装置情報を格納可能な状態管理情報記憶部を有するＦＰＧＡ（Field Programmable Gate Array）に備えられ、
前記ＦＰＧＡが、前記状態管理情報記憶部が更新されると、前記通信制御装置が備えるＦＰＧＡに対して前記状態管理情報記憶部に格納された前記異常装置情報を通知する
ことを特徴とする、付記５又は６に記載の情報処理装置。
【０１００】
（付記８）
複数の情報処理装置を備えた情報処理システムにおける障害処理方法であって、
前記情報処理装置のいずれかが、
異常発生を検知し、
前記異常発生が検知された情報処理装置におけるログ情報を収集し、
前記ログ情報の収集に優先して、前記異常発生が検知された情報処理装置を示す異常装置情報を作成し、
前記ログ情報の収集に優先して、前記作成した前記異常装置情報を複数の情報処理装置のそれぞれに対して通知する
ことを特徴とする、障害処理方法。
【０１０１】
（付記９）
前記複数の情報処理装置のそれぞれが、
前記異常装置情報が通知されると、上位アプリケーションに対して通知を行なう
ことを特徴とする、付記８に記載の障害処理方法。
（付記１０）
前記異常装置情報が通知されると、前記異常装置情報を前記複数の情報処理装置のそれぞれに転送する通信制御部を備え、
前記異常装置情報を前記通信制御部に通知する
ことを特徴とする、付記８又は９に記載の障害処理方法。
【０１０２】
（付記１１）
前記情報処理装置が、当該情報処理装置が備える前記異常装置情報を格納可能な状態管理情報記憶部が更新されると、前記通信制御部に対して当該状態管理情報記憶部に格納された前記異常装置情報を通知し、
前記通信制御部が、当該通信制御部が備える前記異常装置情報を格納可能な状態管理情報記憶部が更新されると、前記複数の情報処理装置に対してそれぞれ当該状態管理情報記憶部に格納された前記異常装置情報を一斉通知する
ことを特徴とする、付記１０に記載の障害処理方法。
【０１０３】
（付記１２）
複数の情報処理装置を備えた情報処理システムにおいて、
前記複数の情報処理装置のうちいずれかの情報処理装置において異常発生を検知するステップと、
検知された異常に関するログ収集及びログ解析に優先して、前記複数の情報処理装置のそれぞれに対して前記異常発生が検知された情報処理装置を示す異常装置情報を通知するステップと、
を備えることを特徴とする、障害処理方法。
【符号の説明】
【０１０４】
１          マルチノードシステム（情報処理システム）
１０        ＸＢＢ（通信制御装置、通信制御部）
１１        ＦＰＧＡ
１１０      異常ノード情報送受信機能部（異常ノード情報転送部、異常装置情報転送部）
１２        マスタファームウェア
１２１      ログ情報解析部
１３０      ＸＢＵ
２０        ＢＢ（情報処理装置）
２１        ＦＰＧＡ（通信部）
２１０      異常ノード情報送受信機能部
２１０ａ    異常ノード情報通知部（異常装置情報通知部）
２１０ｂ    異常ノード情報受信部
２１１      ＣＮＴＬレジスタ
２１２      ＳＴＡＴＵＳレジスタ
２１３      ＩＮＴレジスタ
２１４      ＭＡＳＫレジスタ
２１５      ＢＢ間データ送受信回路
２２        スレーブファームウェア
２２１      ログ情報収集部
２２１ａ    異常箇所情報収集部
２２１ｂ    ログ収集部
２２２      ログ情報送信部
２２３      異常ノード情報作成部（異常装置情報通知部）
２２４      ＦＰＧＡ制御部（異常ノード情報通知制御部）
２２５      上位通知処理部
２２５ａ    ＦＰＧＡ割り込み監視部
２２５ｂ    異常ノード読込処理部
２２５ｃ    通知部
２２６      異常監視部
２２７      異常箇所情報解析部
２３        異常検知部
２３０      ＣＭＵ
２３１      ＣＰＵ
２４        ソフトウェア
２４１      アプリ
２４２      ＨＶ／ＯＳ
【図１】
2014182720.tif 000003
【図２】
2014182720.tif 000004
【図３】
2014182720.tif 000005
【図４】
2014182720.tif 000006
【図５】
2014182720.tif 000007
【図６】
2014182720.tif 000008
【図７】
2014182720.tif 000009
【図８】
2014182720.tif 000010
【図９】
2014182720.tif 000011
【図１０】
2014182720.tif 000012
【図１１】
2014182720.tif 000013
【図１２】
2014182720.tif 000014
【図１３】
2014182720.tif 000015
【図１４】
2014182720.tif 000016
【図１５】
2014182720.tif 000017
【図１６】
2014182720.tif 000018
【図１７】
2014182720.tif 000019
【図１８】
2014182720.tif 000020
【図１９】
2014182720.tif 000021