(57)【要約】【課題】マルチノードコンピュータシステムにおける障害発生ノードの切り離し処理において、正常な運用ノードへの影響を抑えること。【解決手段】マルチノードコンピュータシステムは、複数のノードと、ノード間のデータ転送を制御するノード間接続装置とを備える。各ノードは、障害が発生した場合に、切り離し要求コードをノード間接続装置へ送信する。ノード間接続装置は、コード検出手段と、変換手段とを備える。コード検出手段は、障害発生ノードから送信された切り離し要求コードを検出する。変換手段は、切り離し要求コードの検出後に送信元ノードから受け取る障害発生ノードへの命令を、その送信元ノードへの応答に変換する。【選択図】図３
2010186365.tif 000002
【特許請求の範囲】
【請求項１】
複数のノードと、
前記複数のノードに接続され、前記複数のノード間のデータ転送を制御するノード間接続装置と
を備え、
前記複数のノードの各々は、障害が発生した場合に、切り離し要求コードを前記ノード間接続装置へ送信し、
前記ノード間接続装置は、
前記複数のノードのうち障害発生ノードから送信された前記切り離し要求コードを検出するコード検出手段と、
前記切り離し要求コードの検出後に送信元ノードから受け取る前記障害発生ノードへの命令を、前記送信元ノードへの応答に変換する変換手段と
を備える
マルチノードコンピュータシステム。
【請求項２】
請求項１に記載のマルチノードコンピュータシステムであって、
前記ノード間接続装置は、更に、コード送信手段を備え、
前記切り離し要求コードが検出された場合、前記コード送信手段は、前記切り離し要求コードに対する切り離し応答コードを前記障害発生ノードへ送信する
マルチノードコンピュータシステム。
【請求項３】
請求項２に記載のマルチノードコンピュータシステムであって、
前記コード送信手段は、前記切り離し要求コードの検出前に受け取った前記障害発生ノードへの命令が全て前記障害発生ノードへ転送された後に、前記切り離し応答コードを前記障害発生ノードへ送信する
マルチノードコンピュータシステム。
【請求項４】
請求項３に記載のマルチノードコンピュータシステムであって、
前記ノード間接続装置は、更に、前記障害発生ノードに出力される命令の残存状況を監視する監視手段を備え、
前記切り離し要求コードが検出され、且つ、前記障害発生ノードに出力される前記命令が無くなった場合、前記コード送信手段は、前記切り離し応答コードを前記障害発生ノードへ送信する
マルチノードコンピュータシステム。
【請求項５】
請求項１乃至４のいずれか一項に記載のマルチノードコンピュータシステムであって、
前記ノード間接続装置は、更に、
前記複数のノードのそれぞれからデータを受け取る複数の入力バッファと、
前記複数のノードのそれぞれへデータを出力する複数の出力バッファと、
受け取るデータを前記複数の出力バッファのうち対応するものへ振り分けるクロスバースイッチと
を備え、
前記変換手段は、前記複数の入力バッファと前記クロスバースイッチとの間に介在し、前記複数の入力バッファからデータを受け取り、
前記切り離し要求コードの検出後に前記障害発生ノードへの前記命令を受け取った場合、前記変換手段は、前記障害発生ノードへの前記命令を前記送信元ノードへの前記応答に変換し、前記送信元ノードへの前記応答を前記クロスバースイッチへ出力し、
それ以外の場合、前記変換手段は、前記複数の入力バッファから受け取るデータをそのまま前記クロスバースイッチへ出力する
マルチノードコンピュータシステム。
【請求項６】
マルチノードコンピュータシステムにおいて複数のノード間のデータ転送を制御するノード間接続装置であって、
前記複数のノードの各々は、障害が発生した場合に、切り離し要求コードを前記ノード間接続装置へ送信し、
前記ノード間接続装置は、
前記複数のノードのうち障害発生ノードから送信された前記切り離し要求コードを検出するコード検出手段と、
前記切り離し要求コードの検出後に送信元ノードから受け取る前記障害発生ノードへの命令を、前記送信元ノードへの応答に変換する変換手段と
を備える
ノード間接続装置。
【請求項７】
請求項６に記載のノード間接続装置であって、
更に、コード送信手段を備え、
前記切り離し要求コードが検出された場合、前記コード送信手段は、前記切り離し要求コードに対する切り離し応答コードを前記障害発生ノードへ送信する
ノード間接続装置。
【請求項８】
請求項７に記載のノード間接続装置であって、
前記コード送信手段は、前記切り離し要求コードの検出前に受け取った前記障害発生ノードへの命令が全て前記障害発生ノードへ転送された後に、前記切り離し応答コードを前記障害発生ノードへ送信する
ノード間接続装置。
【請求項９】
請求項６乃至８のいずれか一項に記載のノード間接続装置であって、
更に、
前記複数のノードのそれぞれからデータを受け取る複数の入力バッファと、
前記複数のノードのそれぞれへデータを出力する複数の出力バッファと、
受け取るデータを前記複数の出力バッファのうち対応するものへ振り分けるクロスバースイッチと
を備え、
前記変換手段は、前記複数の入力バッファと前記クロスバースイッチとの間に介在し、前記複数の入力バッファからデータを受け取り、
前記切り離し要求コードの検出後に前記障害発生ノードへの前記命令を受け取った場合、前記変換手段は、前記障害発生ノードへの前記命令を前記送信元ノードへの前記応答に変換し、前記送信元ノードへの前記応答を前記クロスバースイッチへ出力し、
それ以外の場合、前記変換手段は、前記複数の入力バッファから受け取るデータをそのまま前記クロスバースイッチへ出力する
ノード間接続装置。
【請求項１０】
マルチノードコンピュータシステムにおけるノード切り離し方法であって、
前記マルチノードコンピュータシステムは、複数のノード間のデータ転送を制御するノード間接続装置を備え、
前記ノード切り離し方法は、
前記複数のノードのうち障害発生ノードから前記ノード間接続装置へ、切り離し要求コードを送信するステップと、
前記ノード間接続装置において、前記切り離し要求コードを検出するステップと、
前記切り離し要求コードの検出後に、前記ノード間接続装置が送信元ノードから受け取る前記障害発生ノードへの命令を、前記送信元ノードへの応答に変換するステップと、
前記切り離し要求コードに対する切り離し応答コードを、前記ノード間接続装置から前記障害発生ノードへ送信するステップと、
前記障害発生ノードが前記切り離し応答コードを受信した後に、前記障害発生ノードを切り離すステップと
を含む
ノード切り離し方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチノードコンピュータシステム、ノード間接続装置、及びノード切り離し方法に関する。
【背景技術】
【０００２】
複数のノードとノード間接続装置（IXS: Internode crossbar Switch）とを備えるマルチノードコンピュータシステムが知られている。ノード間接続装置は、それら複数のノードに接続され、ノード間のデータ転送を制御する。マルチノードコンピュータシステムに関連する技術として、次のものが知られている。
【０００３】
特許文献１には、マルチノードコンピュータシステムにおける障害箇所を絞り込み、障害発生装置の切り離しを必要最小限に抑えるための技術が開示されている。具体的には、ノード間の通信経路を設定するクロスバースイッチを備えたマルチノードコンピュータシステムにおいて、ノード間でデータ転送中のネットワーク障害が検出される。続いて、検出されたネットワーク障害の属性が収集される。そして、収集された属性により、クロスバースイッチに対して、上記データ転送の転送元から他のノードへテストパタンを送出するための指示が行われる。
【０００４】
特許文献２には、マルチノードコンピュータシステムにおけるリンク処理方法が開示されている。当該技術によれば、特殊コードを使用したリンク処理と呼ばれるシーケンスが実施され、それにより、ノードとノード間接続装置との間の接続が確立される。各ノードは、ノード間接続装置毎に「リンク処理開始」特殊コードを生成し、それを対応するノード間接続装置に送信する。ノード間接続装置は、ノード毎に受信した「リンク処理開始」特殊コードをチェックする。チェック結果が正常であれば、ノード間接続装置は、「リンク処理開始受信」特殊コードを生成し、それを対応するノードに送信する。ノードは、ノード間接続装置毎に受信した「リンク処理開始受信」特殊コードをチェックする。チェック結果が正常であれば、当該ノードと対応するノード間接続装置との間でリンクが確立される。
【０００５】
特許文献３には、マルチノードコンピュータシステムにおける障害発生時にシステム全体の性能劣化を防止するための技術が開示されている。各ノードは、障害通知手段と、障害制御手段と、障害特定手段とを備える。障害通知手段は、障害が発生したことを、ノード間クロスバースイッチに対して通知する。障害制御手段は、ノード間クロスバースイッチから障害通知を受信したときに、データ転送処理における転送相手との間で送受信される転送中のデータを破棄して次のデータ転送にそなえる。障害特定手段は、障害制御手段によって受信された障害通知に基づき、障害の発生箇所を特定する。ノード間クロスバースイッチは、障害監視手段と、通知発行手段とを備える。障害監視手段は、各ノードの障害通知手段からの通知を受けることにより、各ノードにて障害が発生したか否かを監視する。通知発行手段は、データ転送処理の実行中に障害監視手段により転送元あるいは転送先のノードにて障害が発生したとされたときに、転送元あるいは転送先のノードのうちで正常なノードに対して、障害が発生したノードのノード番号を示した障害通知を発行する。
【０００６】
特許文献４には、複数のノードが、多重化された複数のノード間クロスバースイッチを介して相互に接続されたマルチノードコンピュータシステムが開示されている。運用系のノード間クロスバースイッチに障害が発生した場合、待機系のノード間クロスバースイッチが運用系に切替えられる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０００−２４２５２０号公報
【特許文献２】特開２００４−０５６３４１号公報
【特許文献３】特開２００６−１７８７８６号公報
【特許文献４】特開２００７−２３３７７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
マルチノードコンピュータシステムにおいて、あるノードで障害が発生した場合を考える。その場合、その障害発生ノードの復旧を行うために、当該ノードを一旦マルチノードコンピュータシステムから切り離す必要がある。このとき、他の正常な運用ノードになるべく影響を与えないようにノード切り離しを行うことが望ましい。しかしながら、例えば上記特許文献３によれば、障害発生ノードから正常な運用ノードに向けて、障害発生通知が発行される。このことは、正常な運用ノードに余計な負荷をかけてしまう。
【０００９】
本発明の１つの目的は、マルチノードコンピュータシステムにおけるノード切り離し処理に有用な技術を提供することにある。
【課題を解決するための手段】
【００１０】
本発明の１つの観点において、マルチノードコンピュータシステムが提供される。そのマルチノードコンピュータシステムは、複数のノードとノード間接続装置とを備える。ノード間接続装置は、複数のノードに接続され、複数のノード間のデータ転送を制御する。複数のノードの各々は、障害が発生した場合に、切り離し要求コードをノード間接続装置へ送信する。ノード間接続装置は、コード検出手段と、変換手段とを備える。コード検出手段は、複数のノードのうち障害発生ノードから送信された切り離し要求コードを検出する。変換手段は、切り離し要求コードの検出後に送信元ノードから受け取る障害発生ノードへの命令を、その送信元ノードへの応答に変換する。
【００１１】
本発明の他の観点において、ノード間接続装置が提供される。ノード間接続装置は、マルチノードコンピュータシステムにおいて複数のノード間のデータ転送を制御する。複数のノードの各々は、障害が発生した場合に、切り離し要求コードをノード間接続装置へ送信する。ノード間接続装置は、コード検出手段と、変換手段とを備える。コード検出手段は、複数のノードのうち障害発生ノードから送信された切り離し要求コードを検出する。変換手段は、切り離し要求コードの検出後に送信元ノードから受け取る障害発生ノードへの命令を、その送信元ノードへの応答に変換する。
【００１２】
本発明の更に他の観点において、マルチノードコンピュータシステムにおけるノード切り離し方法が提供される。マルチノードコンピュータシステムは、複数のノード間のデータ転送を制御するノード間接続装置を備える。ノード切り離し方法は、（Ａ）複数のノードのうち障害発生ノードからノード間接続装置へ、切り離し要求コードを送信するステップと、（Ｂ）ノード間接続装置において、切り離し要求コードを検出するステップと、（Ｃ）切り離し要求コードの検出後に、ノード間接続装置が送信元ノードから受け取る障害発生ノードへの命令を、送信元ノードへの応答に変換するステップと、（Ｄ）切り離し要求コードに対する切り離し応答コードを、ノード間接続装置から障害発生ノードへ送信するステップと、（Ｅ）障害発生ノードが切り離し応答コードを受信した後に、障害発生ノードを切り離すステップと、を含む。
【発明の効果】
【００１３】
本発明によれば、マルチノードコンピュータシステムにおける障害発生ノードの切り離し処理において、正常な運用ノードへの影響を抑えることが可能となる。
【図面の簡単な説明】
【００１４】
【図１】図１は、本発明の実施の形態に係るマルチノードコンピュータシステムの構成の一例を示すブロック図である。
【図２】図２は、本発明の実施の形態に係るマルチノードコンピュータシステムの構成の他の例を示すブロック図である。
【図３】図３は、本発明の実施の形態に係るノード間接続装置の構成例を示すブロック図である。
【図４】図４は、本発明の実施の形態に係るマルチノードコンピュータシステムにおけるノード切り離し処理を示すフローチャートである。
【図５】図５は、本発明の実施の形態に係るノード切り離し処理を説明するための概念図である。
【図６】図６は、比較例を示す概念図である。
【発明を実施するための形態】
【００１５】
添付図面を参照して、本発明の実施の形態を説明する。
【００１６】
１．マルチノードコンピュータシステム
図１及び図２は、本実施の形態に係るマルチノードコンピュータシステム１の構成例を示している。マルチノードコンピュータシステム１は、複数のノードＮＤと、少なくとも１つのノード間接続装置ＩＸＳを備えている。ノード間接続装置ＩＸＳは、複数のノードＮＤに接続されており、それら複数のノードＮＤ間のデータ転送を制御する。
【００１７】
各ノードＮＤは、１以上のＣＰＵ（Central Processing Unit）とＭＭＵ（Main Memory Unit）を備えた単独でも動作可能なコンピュータシステムである。図１の例では、各ノードＮＤはＲＣＵ（Remote Control Unit）を更に備えており、そのＲＣＵを介してノード間接続装置ＩＸＳに接続されている。図２の例では、ＲＣＵは各ＣＰＵの中に設けられており、また、１つのノードＮＤ内のＣＰＵの数と同じだけノード間接続装置ＩＸＳが設けられている。そして、１つのノードＮＤ内のそれぞれのＣＰＵが、それぞれ異なるノード間接続装置ＩＸＳに直接接続されている。
【００１８】
ノードＮＤとノード間接続装置ＩＸＳとは、「レーン」と呼ばれる単位で接続されている。性能向上および障害発生時の冗長性を確保するために、複数レーン接続が採用されることが多い。例えば、図２で示されるように、ＲＣＵを内蔵したＣＰＵ毎に別々のノード間接続装置ＩＸＳと接続することにより、４レーン接続が実現される。
【００１９】
以上に説明されたマルチノードコンピュータシステム１では、ノードＮＤとノード間接続装置ＩＸＳとの間の接続に必要な信号線数を削減するために、シリアル伝送により通信が行われる。また、ノードＮＤとノード間接続装置ＩＸＳとの間で接続確立や障害通知等を行うために、通常のデータ伝送とは異なる「特殊コード」が使用される。ここで、使用される特殊コードとは、シリアル伝送で一般的に使用されている「Ｋキャラクタ」と呼ばれるコードであり、当業者によく知られている。
【００２０】
マルチノードコンピュータシステム１において、あるノードＮＤで障害が発生した場合を考える（そのノードＮＤは、以下「障害発生ノード」と参照される）。その場合、その障害発生ノードの復旧を行うために、当該ノードを一旦マルチノードコンピュータシステム１から切り離す必要がある。この場合にも、特殊コードが用いられる。特に、本実施の形態では、障害発生ノードは、切り離しを要求する特殊コードをノード間接続装置ＩＸＳに送信する。その切り離しを要求する特殊コードは、以下「切り離し要求コードＣＲＥＱ」と参照される。また、ノード間接続装置ＩＸＳは、切り離し要求コードＣＲＥＱを受信すると、それに応答する特殊コードを障害発生ノードに返信する。その切り離し要求コードＣＲＥＱに対する応答としての特殊コードは、以下「切り離し応答コードＣＲＥＳ」と参照される。
【００２１】
すなわち、本実施の形態では、各ノードＮＤは、障害が発生した場合に、切り離し要求コードＣＲＥＱをノード間接続装置ＩＸＳに送信する。ノード間接続装置ＩＸＳは、切り離し要求コードＣＲＥＱを受け取ると、所定の処理を実行した後に、切り離し応答コードＣＲＥＳを障害発生ノードに送信する。そして、障害発生ノードによる切り離し応答コードＣＲＥＳの受信をもって、その障害発生ノードは切り離し可能であると判断される。
【００２２】
２．ノード間接続装置
図３は、本実施の形態に係るノード間接続装置ＩＸＳの構成例を示している。ノード間接続装置ＩＸＳは、入力手段１０、出力手段２０、クロスバースイッチ３０、コード検出手段４０、変換手段５０、監視手段６０、及びコード送信手段７０を備えている。以下、ノード間接続装置ＩＸＳが３つのノードＮＤ１〜ＮＤ３に接続されている場合を考える。
【００２３】
入力手段１０は、ノードＮＤ１〜ＮＤ３に接続されており、ノードＮＤ１〜ＮＤ３のそれぞれからデータ（命令や応答）を受け取る。より詳細には、入力手段１０は、ノードＮＤ１〜ＮＤ３のそれぞれに接続された入力バッファ１０−１〜１０−３を含んでいる。つまり、ノード毎に入力バッファが個別に用意されている。各入力バッファ１０−ｉ（ｉ＝１〜３）は、ノードＮＤｉからデータを受け取り、そのデータを格納する。そして、入力バッファ１０−ｉは、受け取ったデータを、変換手段５０を通してクロスバースイッチ３０へ転送する。
【００２４】
出力手段２０は、ノードＮＤ１〜ＮＤ３に接続されており、ノードＮＤ１〜ＮＤ３のそれぞれへデータ（命令や応答）を出力する。より詳細には、出力手段２０は、ノードＮＤ１〜ＮＤ３のそれぞれに接続された出力バッファ２０−１〜２０−３を含んでいる。つまり、ノード毎に出力バッファが個別に用意されている。各出力バッファ２０−ｉ（ｉ＝１〜３）は、それぞれ、ノードＮＤｉに出力されるデータを受け取り、そのデータを格納する。そして、出力バッファ２０−ｉは、格納されているデータをノードＮＤｉへ順次出力する。
【００２５】
クロスバースイッチ３０は、各ノードからのデータ（命令や応答）を目的のノードへ振り分けるための、３×３の大きさのスイッチである。より詳細には、クロスバースイッチ３０は、入力手段１０（入力バッファ１０−１〜１０−３）と出力手段２０（出力バッファ２０−１〜２０−３）との間に設けられている。そして、クロスバースイッチ３０は、入力側から受け取るデータを、出力バッファ２０−１〜２０−３のうち対応するものへ出力する（振り分ける）。
【００２６】
このように、ノード間接続装置ＩＸＳは、入力手段１０、出力手段２０、及びクロスバースイッチ３０を用いることにより、複数のノードＮＤ１〜ＮＤ３間のデータ転送を制御することができる。その一方、本実施の形態に係るノード間接続装置ＩＸＳは、上述の通り、障害発生ノードから「切り離し要求コードＣＲＥＱ」を受け取る。その場合、ノード間接続装置ＩＸＳは、特殊な処理を実行する。その特殊な処理を実行するために、コード検出手段４０、変換手段５０、監視手段６０、及びコード送信手段７０が設けられている。
【００２７】
コード検出手段４０は、障害発生ノードから送信される切り離し要求コードＣＲＥＱを検出（認識）する。より詳細には、コード検出手段４０は、ノードＮＤ１〜ＮＤ３のそれぞれに接続された特殊コード検出回路４０−１〜４０−３を含んでいる。つまり、ノード毎に特殊コード検出回路が個別に用意されている。特殊コード検出回路４０−ｉ（ｉ＝１〜３）は、ノードＮＤｉからノード間接続装置ＩＸＳに切り離し要求コードＣＲＥＱが送信された場合に、その切り離し要求コードＣＲＥＱを検出する。切り離し要求コードＣＲＥＱを検出すると、特殊コード検出回路４０−ｉは、切り離し要求コードＣＲＥＱの受信を示す「切り離し要求受信通知」を生成する。切り離し要求受信通知は、障害発生ノードを識別するための情報を含んでいる。そして、特殊コード検出回路４０−ｉは、その切り離し要求受信通知を、後述される変換回路５０−１〜５０−３の全てと特殊コード送信回路７０−ｉに送信する。
【００２８】
本実施の形態では、コード検出手段４０による切り離し要求コードＣＲＥＱの検出後、障害発生ノードに向けて発行された命令をノード間接続装置ＩＸＳが受信しても、その命令は障害発生ノードには転送されない。その代わり、その命令に対する応答が生成され、当該命令の送信元ノードにその応答が返送される。そのために、変換手段５０が設けられている。変換手段５０は、切り離し要求コードＣＲＥＱの検出後にノード間接続装置ＩＸＳが障害発生ノードへの命令を受信した場合、その命令を、当該命令の送信元ノードへの応答に変換する。そして、その応答は、出力手段２０から送信元ノードへ返信される。これにより、障害発生ノードに新たな命令が転送されることと、送信元ノードにおいてタイムアウトが発生することが防止される。尚、変換手段５０によって生成される上記応答には、ノード間接続装置ＩＸＳにて差し替えが行われたことがわかるような情報が付加される。
【００２９】
より詳細には、図３に示されるように、変換手段５０は、入力バッファ１０−１〜１０−３のそれぞれとクロスバースイッチ３０との間に接続された変換回路５０−１〜５０−３を含んでいる。つまり、ノード毎に変換回路が個別に用意されている。変換回路５０−ｉ（ｉ＝１〜３）は、ノードＮＤｉ（送信元ノード）から送信されたデータを、入力バッファ１０−ｉを通して受け取る。また、上述の通り、特殊コード検出回路４０−ｉは、切り離し要求コードＣＲＥＱを検出すると、切り離し要求受信通知を変換回路５０−１〜５０−３の全てに送信する。従って、ノードＮＤ１〜ＮＤ３のいずれか（障害発生ノード）が切り離し要求コードＣＲＥＱを発行すれば、変換回路５０−ｉは、障害発生ノードの識別情報を含む切り離し要求受信通知を受け取る。
【００３０】
変換回路５０−ｉが、コード検出手段４０から「切り離し要求受信通知」を受け取り、且つ、「障害発生ノードへの命令」を入力バッファ１０−ｉから受け取った場合を考える。その場合、変換回路５０−ｉは、当該受け取った命令を「送信元ノードＮＤｉへの応答」に変換し、得られた応答をクロスバースイッチ３０に出力する。それ以外の場合、変換回路５０−ｉは、入力バッファ１０−ｉから受け取ったデータ（命令や応答）をそのままクロスバースイッチ３０に転送する。
【００３１】
このように、本実施の形態では、変換手段５０（変換回路５０−１〜５０−３）が、入力バッファ１０−１〜１０−３とクロスバースイッチ３０との間に介在している。変換手段５０は、入力バッファ１０−１〜１０−３からデータを受け取り、必要に応じて変換処理を行う。具体的には、切り離し要求コードＣＲＥＱの検出後に障害発生ノードへの命令を受け取った場合、変換手段５０は、受け取った命令を送信元ノードへの応答に変換し、その応答をクロスバースイッチ３０へ出力する。それ以外の場合、変換手段５０は、入力バッファ１０−１〜１０−３から受け取るデータを、そのままクロスバースイッチ３０へ出力する。このようにして、切り離し要求コードＣＲＥＱの検出後に新たに受け取る障害発生ノードへの命令が、障害発生ノードへ転送されることが防止される。
【００３２】
尚、「障害発生ノードへの命令」がクロスバースイッチ３０を抜けて出力バッファ２０−ｉに格納された後に、その命令を「送信元ノードへの応答」に変換することも考えられる。但し、その場合は、得られた「送信元ノードへの応答」を、再度クロスバースイッチ３０に通す必要がある。そのためには、出力バッファ２０−ｉから入力バッファ１０−ｉに向けてデータを戻す信号線を設ける必要がある。しかしながら、一般的に、出力バッファと入力バッファとはＬＳＩチップ上で離れて配置されており、多ビットの信号線を引き回すのは得策ではない。この観点から言えば、図３に示されたように、変換手段５０が入力バッファ１０−１〜１０−３とクロスバースイッチ３０との間に介在していることが好適である。
【００３３】
その一方、切り離し要求コードＣＲＥＱの検出時に、「障害発生ノードへの命令」が既に出力手段２０に格納されている場合もあり得る。本実施の形態では、既に出力手段２０に格納されている「障害発生ノードへの命令」は全て障害発生ノードに送信される。その送信処理の完了を監視するために、監視手段６０が設けられている。すなわち、監視手段６０は、障害発生ノードに出力される命令の残存状況を監視する。
【００３４】
より詳細には、監視手段６０は、出力バッファ２０−１〜２０−３のそれぞれに接続された監視回路６０−１〜６０−３を含んでいる。つまり、ノード毎に監視回路が個別に用意されている。監視回路６０−ｉ（ｉ＝１〜３）は、出力バッファ２０−ｉに格納されているデータ（命令や応答）が全て出力バッファ２０−ｉからノードＮＤｉへ送信されたかどうかを監視する。出力バッファ２０−ｉが空になると、監視回路６０−ｉは、送信完了を示す「完了通知」を、後述される特殊コード送信回路７０−ｉに送信する。
【００３５】
コード送信手段７０は、コード検出手段４０によって「切り離し要求コードＣＲＥＱ」が検出された場合、それに応答して「切り離し応答コードＣＲＥＳ」を障害発生ノードへ送信する。そのために、コード送信手段７０は、コード検出手段４０から上述の「切り離し要求受信通知」を受け取る。
【００３６】
また、上述の通り、障害発生ノードに出力される命令が、切り離し要求コードＣＲＥＱの検出時に既に出力手段２０に格納されている場合もあり得る。その場合は、それら命令が全て障害発生ノードへ送信されて出力手段２０から無くなった後に、切り離し応答コードＣＲＥＳが発行されることが好適である。つまり、コード送信手段７０は、切り離し要求コードＣＲＥＱの検出前に受け取った障害発生ノードへの命令が全て障害発生ノードへ転送された後に、切り離し応答コードＣＲＥＳを障害発生ノードへ送信する。そのために、コード送信手段７０は、監視手段６０から上述の「完了通知」を受け取る。切り離し要求受信通知と完了通知の両方を受け取った場合に、コード送信手段７０は、切り離し応答コードＣＲＥＳを障害発生ノードへ送信する。
【００３７】
より詳細には、コード送信手段７０は、ノードＮＤ１〜ＮＤ３のそれぞれに接続された特殊コード送信回路７０−１〜７０−３を含んでいる。つまり、ノード毎に特殊コード送信回路が個別に用意されている。また、特殊コード送信回路７０−ｉ（ｉ＝１〜３）は、特殊コード検出回路４０−ｉと監視回路６０−ｉにも接続されている。よって、特殊コード送信回路７０−ｉは、特殊コード検出回路４０−ｉから「切り離し要求受信通知」を受け取り、監視回路６０−ｉから「完了通知」をそれぞれ受け取ることができる。特殊コード送信回路７０−ｉが特殊コード検出回路４０−ｉから「切り離し要求受信通知」を受け取る場合は、ノードＮＤｉが障害発生ノードである場合に相当する。両方の通知を受け取ると、特殊コード検出回路４０−ｉは、切り離し応答コードＣＲＥＳをノードＮＤｉ、すなわち障害発生ノードに送信する。
【００３８】
３．処理例
次に、ノード切り離し時の処理例を説明する。図４は、ノード切り離し処理を示すフローチャートである。図５は、ノード切り離し処理を説明するための概念図である。例として、ノードＮＤ２がノードＮＤ１に対する命令を発行し、また、ノードＮＤ１が障害発生ノードとなる場合を考える。また、マルチノードコンピュータシステム１は、図２で示されたような複数レーン構成を有しているとする。
【００３９】
ステップＳ１００：
ノードＮＤ１にて障害が発生すると、ノードＮＤ１は、ノード間接続装置ＩＸＳに切り離し要求コードＣＲＥＱを送信する。
【００４０】
ステップＳ２００：
ノード間接続装置ＩＸＳがノードＮＤ１から切り離し要求コードＣＲＥＱを受け取ると、特殊コード検出回路４０−１が、その切り離し要求コードＣＲＥＱを検出（認識）する。そして、特殊コード検出回路４０−１は、切り離し要求受信通知を、変換回路５０−１〜５０−３の全てと特殊コード送信回路７０−１に送信する。その切り離し要求受信通知は、ノードＮＤ１を識別するための情報を含んでいる。
【００４１】
ステップＳ３００：
ステップＳ２００の後、ノードＮＤ２（送信元ノード）は、「ノードＮＤ１への命令」をノード間接続装置ＩＸＳに送信する。ノードＮＤ２につながる入力バッファ１０−２は、その命令を受け取り、変換回路５０−２に出力する。変換回路５０−２は、ノードＮＤ１の識別情報を含む切り離し要求受信通知を既に受け取っている。従って、変換回路５０−２は、受け取った「ノードＮＤ１への命令」を、「ノードＮＤ２（送信元ノード）への応答」に変換する。そして、変換回路５０−２は、「ノードＮＤ２への応答」をクロスバースイッチ３０に出力する。クロスバースイッチ３０は、「ノードＮＤ２への応答」を、対応する出力バッファ２０−２に出力する。出力バッファ２０−２は、受け取った応答をノードＮＤ２に送信する。このように、ステップＳ２００以降、障害発生ノードであるノードＮＤ１に新たな命令が転送されることが防止される。
【００４２】
ステップＳ４００：
その一方で、ステップＳ２００の前に、ノード間接続装置ＩＸＳがノードＮＤ２から「ノードＮＤ１への命令」を受け取っている場合もあり得る。その「ノードＮＤ１への命令」は、クロスバースイッチ３０を通って出力バッファ２０−１に格納される。ステップＳ２００の段階で出力バッファ２０−１に既に格納されている命令は、全てノードＮＤ１に送信される。そして、出力バッファ２０−１が空になるまで、ノード間接続装置ＩＸＳは切り離し応答コードＣＲＥＳを発行しない。すなわち、ノード間接続装置ＩＸＳは、既に出力バッファ２０−１に格納されている命令の送信完了を待つ。
【００４３】
出力バッファ２０−１に格納されている命令は、ノードＮＤ１に送信される。ノードＮＤ１は、ノードＮＤ２からの命令を受け取ると、送信元ノードＮＤ２への応答をノード間接続装置ＩＸＳに送信する。ノード間接続装置ＩＸＳは、受け取った応答をノードＮＤ２へ転送する。このようにして、送信元ノードＮＤ２は、ノードＮＤ１に命令を送信した後、ノードＮＤ１から応答を受け取る。よって、ノードＮＤ２における命令タイムアウトの発生が抑制される。
【００４４】
ステップＳ５００：
監視回路６０−１は、出力バッファ２０−１における命令の残存状況を監視する。出力バッファ２０−１が空になると、監視回路６０−１は、「完了通知」を特殊コード送信回路７０−１に送信する。特殊コード送信回路７０−１は、ステップＳ２００において既に「切り離し要求受信通知」を受け取っている。従って、特殊コード送信回路７０−１は、切り離し応答コードＣＲＥＳをノードＮＤ１に送信する。
【００４５】
ステップＳ６００：
ノードＮＤ１が切り離し応答コードＣＲＥＳを受信した後、ノードＮＤ１（障害発生ノード）は、マルチノードコンピュータシステム１から切り離される。
【００４６】
４．比較例
図６は、ノード切り離し処理の比較例を示している。ここでは、図２で示された複数レーン構成において、あるノードのあるＣＰＵにて障害が発生した場合を考える。
【００４７】
障害発生ノードは、障害が発生したＣＰＵに接続されているレーンを用いて、ノード間接続装置ＩＸＳに障害発生を通知する。障害発生ノードから障害通知を受け取ったノード間接続装置ＩＸＳは、更に、障害発生ノード以外の運用ノードにも障害発生を通知する。これにより、障害が発生したＣＰＵに接続されているレーンを切り離すことができるようになる。上記障害通知を受け取った運用ノードは、障害発生ノードに対して発行した命令に対する応答が返却されずにタイムアウトを検出したとしても、そのタイムアウトの原因は自ノードではなく障害発生ノードにあると判断することができる。よって、当該運用ノードは、タイムアウトが発生した命令を異常終了させ、処理を継続することができる。
【００４８】
また、障害発生ノードの復旧を行うためには、その障害発生ノードをシステムから完全に切り離す必要がある。すなわち、障害が発生したＣＰＵ以外のＣＰＵに接続されているレーンも全て切り離すことが必要である。従って、障害発生ノードは、障害が発生したＣＰＵ以外のＣＰＵにて「擬似障害」を発生させる。それ以降は同様である。結果として、障害発生ノードに接続されている全てのレーンを切り離すことができるようになる。
【００４９】
しかしながら、図６で示された比較例では、次のような問題点がある。
【００５０】
障害発生ノードを切り離すために、正常な運用ノードに障害発生を通知しておく必要がある。そのため、正常な運用ノードにかかる負荷が増大する。特に、障害発生ノードにおいて「擬似障害」も生成される場合、本来的に余計な障害通知も正常な運用ノードに送信される。レーン数が増えるに従い、その通知数は更に増加してしまう。これらのことは、運用ノードの性能の観点から好ましくない。
【００５１】
また、障害発生ノードの復旧作業中、運用ノードが障害発生ノードに対する命令を発行した場合、応答が返却されず、タイムアウトが発生してしまう。このことも好ましくない。
【００５２】
更に、障害発生ノードにおいて「擬似障害」も生成される場合、障害解析時に、真の障害か擬似障害かを判定する必要がある。特に、レーン数が増えるにつれて、擬似障害の数も増加するため、障害の解析性が悪化する。
【００５３】
５．効果
本実施の形態によれば、図５で示されたように、障害発生ノード以外の運用ノードに対して障害発生を通知する必要はない。それは、切り離し要求コードＣＲＥＱの検出後、変換手段５０が、「障害発生ノードへの命令」を「送信元ノードへの応答」に変換するからである。変換手段５０により得られた「送信元ノードへの応答」は、ノード間接続装置ＩＸＳから送信元ノードへ返信される。これにより、障害発生ノードに新たな命令が転送されることと、送信元ノードにおいてタイムアウトが発生することが防止される。言い換えれば、障害発生ノード以外の運用ノードに対して障害発生を通知しなくても、問題は発生しない。レーン数に拘わらず、障害発生を運用ノードに通知する必要がないため、運用ノードにかかる負荷が軽減される。すなわち、本実施の形態によれば、障害発生ノードの切り離し処理において、正常な運用ノードへの影響を抑えることが可能となる。
【００５４】
また、障害発生ノードに出力される命令が、切り離し要求コードＣＲＥＱの検出時に既に出力手段２０に格納されている場合もあり得る。その場合は、それら命令が全て障害発生ノードへ送信されて出力手段２０から無くなるまで、切り離し応答コードＣＲＥＳは発行されない。障害発生ノードへ命令が送信されると、その障害発生ノードから送信元ノードへ応答が返される。よって、送信元ノードにおいてタイムアウトが発生しない。本実施の形態では、ノード間接続装置ＩＸＳが、運用ノードからの命令に対する応答の返却を保証していると言える。
【００５５】
更に、本実施の形態によれば、障害発生ノードにおいて「擬似障害」を発生させる必要がない。従って、擬似障害の生成に起因する全ての問題点は、解消される。
【００５６】
以上、本発明の実施の形態が添付の図面を参照することにより説明された。但し、本発明は、上述の実施の形態に限定されず、要旨を逸脱しない範囲で当業者により適宜変更され得る。
【符号の説明】
【００５７】
１    マルチノードコンピュータシステム
１０                  入力手段
１０−１〜１０−３    入力バッファ
２０                  出力手段
２０−１〜２０−３    出力バッファ
３０                  クロスバースイッチ
４０                  コード検出手段
４０−１〜４０−３    特殊コード検出回路
５０                  変換手段
５０−１〜５０−３    変換回路
６０                  監視手段
６０−１〜６０−３    監視回路
７０                  コード送信手段
７０−１〜７０−３    特殊コード送信回路
ＮＤ    ノード
ＩＸＳ    ノード間接続装置
ＣＲＥＱ  切り離し要求コード
ＣＲＥＳ  切り離し応答コード
【図１】
2010186365.tif 000003
【図２】
2010186365.tif 000004
【図３】
2010186365.tif 000005
【図４】
2010186365.tif 000006
【図５】
2010186365.tif 000007
【図６】
2010186365.tif 000008