説明

マルチノードシステム、ノード装置、ノード間クロスバスイッチ及び障害処理方法

【課題】 障害発生時におけるシステム全体の性能劣化を防止する。
【解決手段】 データ転送が行われているときに転送元あるいは転送先となる各ノード10〜12のいずれかにて障害が発生したときには、障害が発生したノードからノード間クロスバスイッチ14に対して、特定のデータパターンを有する障害コードが通知される。ノード間クロスバスイッチ14は、ロック制御部16が備えるロックテーブル161や入力制御部151〜153が備える転送先情報レジスタを参照することにより、障害が発生したノードとの間でデータ転送処理を実行している相手方のノードに対して、障害が発生したノードのノード番号を示した受信障害通知や送信障害通知を送出する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のノードがノード間クロスバスイッチを介して接続されたマルチノードシステムにおける障害発生時の処理方式に関する。
【背景技術】
【0002】
複数のプロセッサと共有メモリを備えて構成される電子計算機としてのノードを、更に複数接続したマルチノードシステムが知られている。マルチノードシステムは、複数のノードを接続してシステム全体の性能向上を図ることにより、例えば科学技術計算の分野などにおいて高まる計算性能の向上要求に対応している。こうしたマルチノードシステムの規模が小さい場合には、1つのノードにて障害が発生したときに他のノードへの障害伝播の因果関係を容易に特定することができる。
【0003】
例えば、従来のマルチノードシステムでは、転送相手となるノードに障害が発生したときに正常なノードの側で障害を検出するために、データ転送処理のタイムアウトを検出していた(例えば特許文献1)。この場合、正常なノードの側では、タイムアウトが検出されたときに転送相手のノードが障害で動作不能に陥ったと判断すると、実行中のデータ転送処理を廃棄するなどして次の処理に備えていた。
【特許文献1】特開平5−265985号公報
【0004】
また、複数のデータ処理ユニットが接続されるネットワーク装置において、同時に接続可能なルートを所定の優先順位に従って決定することで、その決定されたルートを提供するようにスイッチ回路を制御するプライオリティ回路の動作を、異常検出回路によりモニタして、プライオリティ回路の動作の異常を検出したときには、接続要求情報を出力するデータ処理ユニットに対して異常報告信号を出力するものが提案されている(例えば特許文献2)。
【特許文献2】特開平6−168218号公報
【0005】
さらに、複数の情報処理装置間のデータ通信を制御するデータ通信処理装置に障害が発生したときに、全ての情報処理装置に対して障害の発生を通知することで、情報処理装置からデータ通信装置に対してリセットを指示させて、障害の発生したデータ通信装置をリセットするものも提案されている(例えば特許文献3)。
【特許文献3】特開平8−44579号公報
【0006】
その他にも、データ転送処理において障害が検出ときに、転送先あるいは転送元のノードを変更してテストパタンを転送することにより、障害が発生した箇所を特定するものが提案されている(例えば特許文献4)。
【特許文献4】特開2000−242520
【発明の開示】
【発明が解決しようとする課題】
【0007】
計算性能の更なる向上要求により、マルチノードシステムでは、例えばノード数が著しく増大したり、クロスバスイッチが全ノード対全ノードのスイッチとなるなど、システム全体やHW(ハードウェア)自体の大規模化が進んでいる。そして、ノード数が増大したマルチノードシステムでは、あるノードに障害が発生したときに、他のノードへの障害伝播の因果関係の特定が複雑になる。
【0008】
そのため、特許文献1に記載の技術のようにデータ転送処理のタイムアウトが検出されたときであっても、タイムアウトが発生した原因が転送相手のノードに障害が発生したからなのか、ノード間に設けられたクロスバスイッチなどの転送経路にて障害が発生したからなのかといった、障害の発生箇所を、正常なノードの側から特定することが困難になる。
【0009】
このように障害の発生箇所を特定することが困難になれば、マルチノードシステムにおいて障害の発生箇所を切り分けることが困難になり、障害復旧に長い時間を要することになる。
【0010】
また、正常なノードの側では、データ転送処理のタイムアウトが検出されるまでは、次の処理に移行することができずに、処理が停止してしまう。そのため、データ転送処理のタイムアウトを検出することにより障害の発生を検出するようにした場合には、障害復旧に長い時間がかかり、マルチノードシステム全体の性能劣化の要因になるという問題があった。
【0011】
特許文献2や特許文献3に記載の技術では、ネットワーク装置やデータ通信処理装置の内部で障害が検出された場合についてのみ対応する処理が実行可能になるだけであり、複数のデータ処理ユニットや複数の情報処理装置にて障害が発生したときに、ネットワーク装置やデータ通信処理装置にてその障害の発生が検出できない場合には、適切な処置を施すことができなかった。加えて、特許文献3に記載の技術では、全ての情報処理装置に対して障害の発生を通知した後、情報処理装置からデータ通信装置に対するリセットの指示を出力させていたことから、データ通信装置にて障害が発生したときに、情報処理装置からのリセットの指示が集中してデータ通信装置に入力されることがあり、データ通信装置に過大な処理負担が掛かり、復旧処理が遅延する可能性があった。
【0012】
さらに、特許文献4に記載の技術によると、障害が検出されたときでもテストパタンを転送しなければ障害の発生箇所を特定することができない。そのため、復旧処理に要する時間を大幅に短縮することは困難であった。
【0013】
この発明は上記実状に鑑みてなされたものであり、迅速な復旧処理を可能にするとともに、障害箇所を容易に特定可能として、障害発生時におけるシステム全体の性能劣化を防止することができるマルチノードシステムを提供することを目的とする。
【課題を解決するための手段】
【0014】
上記目的を達成するために、この発明の第1の観点に係るマルチノードシステムは、
ノード間クロスバスイッチを介して複数のノードが接続されたマルチノードシステムであって、
前記複数のノードはそれぞれ、
ノード内で障害が発生したことを、前記ノード間クロスバスイッチに対して通知する障害通知手段と、
前記ノード間クロスバスイッチから障害通知を受信したときに、データ転送処理における転送相手との間で送受信される転送中のデータを破棄して次のデータ転送に備える障害制御手段と、
前記障害制御手段によって受信された障害通知に基づき、障害の発生箇所を特定する障害特定手段とを備え、
前記ノード間クロスバスイッチは、
前記複数のノードのそれぞれにおける前記障害通知手段からの通知を受けることにより、各ノードにて障害が発生したか否かを監視する障害監視手段と、
データ転送処理の実行中に前記障害監視手段により転送元あるいは転送先のノードにて障害が発生したとされたきに、転送元あるいは転送先のノードのうちで正常なノードに対して、障害が発生したノードのノード番号を示した障害通知を発行する通知発行手段とを備える、
ことを特徴とする。
【0015】
前記障害通知手段は、予め定められた特定のデータパターンを有する障害コードを前記ノード間クロスバスイッチに送ることにより、障害が発生したことを通知し、
前記通知発行手段は、
データ転送処理における転送元のノード番号が書き込まれるロックテーブルを含み、転送先のノードにて障害が発生したときに、前記ロックテーブルを参照することにより、転送元のノードに対して障害通知を発行する受信障害通知発行手段と、
データ転送処理における転送先のノード番号を格納する転送先情報レジスタを含み、転送元のノードにて障害が発生したときに、前記転送先情報レジスタを参照することにより、転送先のノードに対して障害通知を発行する送信障害通知発行手段とを備えることが望ましい。
【0016】
前記ノード間クロスバスイッチは、当該ノード間クロスバスイッチ内にて障害が発生したことを、前記複数のノードのそれぞれに対して通知するスイッチ障害通知手段を備えていてもよい。
【0017】
前記スイッチ障害通知手段は、予め定められた特定のパターンを有する障害コードを前記複数のノードのそれぞれに送ることにより、障害が発生したことを通知することが望ましい。
【0018】
この発明の第2の観点に係るノード装置は、
ノード間クロスバスイッチを介して他のノード装置と接続されることによりマルチノードシステムを構成するノード装置であって、
当該ノード装置内にて障害が発生したことを、前記ノード間クロスバスイッチに対して通知する障害通知手段と、
前記ノード間クロスバスイッチから障害通知を受信したときに、データ転送処理における転送相手となる他のノード装置との間で送受信される転送中のデータを破棄して次のデータ転送に備える障害制御手段と、
前記障害制御手段によって受信された障害通知に基づき、障害の発生箇所を特定する障害特定手段とを備える、
ことを特徴とする。
【0019】
前記障害通知手段は、予め定められた特定のデータパターンを有する障害コードを前記ノード間クロスバスイッチに送ることにより、障害が発生したことを通知することが望ましい。
【0020】
この発明の第3の観点に係るノード間クロスバスイッチは、
複数のノード装置と接続されてマルチノードシステムを構成するノード間クロスバスイッチであって、
前記複数のノード装置のそれぞれにおいて障害が発生したか否かを監視する障害監視手段と、
データ転送処理の実行中に前記障害監視手段により転送元あるいは転送先のノード装置にて障害が発生したとされたときに、転送元あるいは転送先のノード装置のうちで正常なノード装置に対して、障害が発生したノード装置のノード番号を示した障害通知を発行する通知発行手段と、
当該ノード間クロスバスイッチ内にて障害が発生したことを、前記複数のノード装置のそれぞれに対して通知するスイッチ障害通知手段とを備える、
ことを特徴とする。
【0021】
前記通知発行手段は、
データ転送処理における転送元のノード番号が書き込まれるロックテーブルを含み、転送先のノード装置にて障害が発生したときに、前記ロックテーブルを参照することにより、転送元のノード装置に対して障害通知を発行する受信障害通知発行手段と、
データ転送処理における転送先のノード番号を格納する転送先情報レジスタを含み、転送元のノード装置にて障害が発生したときに、前記転送先情報レジスタを参照することにより、転送先のノード装置に対して障害通知を発行する送信障害通知発行手段とを備えることが望ましい。
【0022】
この発明の第4の観点に係る障害処理方法は、
ノード間クロスバスイッチを介して複数のノードが接続されたマルチノードシステムにおける障害処理方法であって、
前記複数のノードのいずれかで障害が発生したことを、障害が発生したノードから前記ノード間クロスバスイッチに対して通知し、
前記複数のノードのいずれかが前記ノード間クロスバスイッチから障害通知を受信したときに、当該障害通知を受信したノードが、データ転送処理における転送相手との間で送受信される転送中のデータを破棄して次のデータ転送に備え、
前記ノード間クロスバスイッチから障害通知を受信したノードが、当該障害通知に基づき、障害の発生箇所を特定し、
前記ノード間クロスバスイッチは、
前記複数のノードのそれぞれにおいて障害が発生したか否かを監視し、
データ転送処理の実行中に転送元あるいは転送先のノードにて障害が発生したときに、転送元あるいは転送先のノードのうちで正常なノードに対して、障害が発生したノードのノード番号を示した障害通知を発行する、
ことを特徴とする。
【0023】
障害が発生したノードは、予め定められた特定のデータパターンを有する障害コードを前記ノード間クロスバスイッチに送ることにより、障害が発生したことを通知し、
前記ノード間クロスバスイッチは、
データ転送処理における転送元のノード番号をロックテーブルに書き込み、
データ転送処理における転送先のノード番号を転送先情報レジスタに格納し、
データ転送処理における転送先のノードにて障害が発生したときに、前記ロックテーブルを参照することにより、転送元のノードに対して障害通知を発行し、
データ転送処理における転送元のノードにて障害が発生したときに、前記転送先情報レジスタを参照することにより、転送先のノードに対して障害通知を発行することが望ましい。
【0024】
データ転送処理における転送先のノードにて障害が発生したときに、当該データ転送処理における転送元のノードが、前記ノード間クロスバスイッチに対して転送先のノードにおけるロックの解放を要求することが望ましい。
【発明の効果】
【0025】
本発明によれば、障害発生時に迅速な復旧処理が可能となり、障害の発生箇所も容易に特定することができる。これにより、障害が発生したときに、システム全体の性能劣化を防止することができる。
【発明を実施するための最良の形態】
【0026】
以下に、図面を参照して、この発明の実施の形態に係るマルチノードシステムについて詳細に説明する。図1は、この発明の一実施例となるマルチノードシステム1の構成例を示している。図1に示すマルチノードシステム1は、それぞれが「Node 0」、「Node 1」、…、「Node n」として特定される複数のノード10〜12と、ノード間クロスバスイッチ(IXS;Internode Crossbar Switch)14とを備えている。また、図1には、データ転送のためにノード間クロスバスイッチ14において出力側となるパス191〜193も示されている。
【0027】
複数のノード10〜12はそれぞれ、対応するノード間制御部101〜121のいずれかを有している。各ノード間制御部101〜121は、各ノード10〜12とノード間クロスバスイッチ14とを接続し、各ノード10〜12の間で行われるデータ転送処理における転送データの送受信や、回線交換方式によるノード間転送の制御を行う。
【0028】
各ノード10〜12は、例えば図2に示すようなノード21の構成を有している。図2に示すノード21は、複数のCPU(Central Processing Unit)22、23と、ノード間制御部24と、診断装置25と、共有メモリ26とを備えている。また、ノード21には、ノード間クロスバスイッチ14との間に配設されたパス27が接続されている。
【0029】
各CPU22、23は、共有メモリ26から読み出したプログラム命令を解釈して各種の処理を実行することができるプロセッサである。
【0030】
ノード間制御部24は、各ノード10〜12に対応して設けられたノード間制御部101〜121として機能する。図3は、ノード間制御部24の一構成例を示している。図3に示すように、ノード間制御部24は、リクエスト処理部30と、ノード間データ送受信部31と、メモリアクセス制御部33とを備えている。また、ノード間制御部24には、ノード間クロスバスイッチ14との間に配設されたパス27(図2)に含まれるデータ転送パス34や、診断装置25との間に配設されたパス35、共有メモリ26との間に配設されたパス36などが接続されている。
【0031】
リクエスト処理部30は、CPU22、23からのノード間転送命令を受信したときに、例えば図4(A)に示すようなロック獲得リクエストを発行することなどにより、ノード間転送のための転送パスを確保する制御を行う。また、リクエスト処理部30は、送出データのメモリロード制御や、受信データのメモリストア制御など、各種の制御を行う。こうしたリクエスト処理部30による制御は、ノード間データ送受信部31を介して行われる。
【0032】
ノード間データ送受信部31は、ノード間障害制御部32を備え、ノード21内で障害が発生したことを、ノード間クロスバスイッチ14に特定のデータパターンを発行することにより、通知する機能を有している。ここで、ノード間データ送受信部31からノード間クロスバスイッチ14への障害発生の通知は、データ転送パス34を用いることにより、新規のパスを設けないで行われる。
【0033】
ノード間障害制御部32は、ノード間クロスバスイッチ14から送られた転送相手の障害通知を受信したときに、その転送相手となる障害ノードとの転送データを廃棄し、次のデータ転送に備える機能を有している。また、ノード間障害制御部32は、障害通知で示された障害ノードの情報を、パス35を介して診断装置25に通知する。
【0034】
メモリアクセス制御部33は、パス36を介してノード間制御部24を共有メモリ26と接続する。メモリアクセス制御部33が共有メモリ26を経由してノード21内の各CPU22、23からのノード間転送命令を受信することにより、ノード間制御部24は起動することができる。
【0035】
診断装置25は、例えばノード間障害制御部32から通知された障害ノードの情報を読み取ることなどにより、障害の発生箇所を特定するための処理を実行する。
【0036】
共有メモリ26は、各CPU22、23、及びノード間制御部24によって共有され、例えば各CPU22、23によって実行可能なプログラム命令や、各CPU22、23における演算処理に用いられる演算データ、各CPU22、23における演算結果などを記憶する。また、共有メモリ26は、各CPU22、23とノード間制御部24との間で、例えばノード間転送命令などといった、各種の命令を送受信するためにも用いられる。
【0037】
図1に示すノード間クロスバスイッチ14は、ロック制御部16と、スイッチ17と、入力制御部151〜153と、出力制御部181〜183とを備えている。
【0038】
ロック制御部16は、回線交換方式によるデータ転送を行うために、転送バスの管理を行う。また、ロック制御部16は、各ノード10〜12における転送バスの状態を保持するロックテーブル161を備えている。ロック制御部16は、例えば図5に示すようなロック制御部40の構成を有している。図5に示すロック制御部40は、ロックテーブル制御部41と、受信ノード障害制御部42と、調停部43とを備えている。また、ロック制御部40には、スイッチ17との間に配設されたパス44、46や、入力制御部151〜153との間に配設された制御パス45などが接続されている。
【0039】
ロックテーブル制御部41は、スイッチ17からのロック獲得リクエストを受信したときに、ロック獲得状況を登録したロックテーブル161を参照し、ロック獲得先の転送パスがロック獲得中であるか否かを判定する。図6は、ロックテーブル制御部41によって参照されるロックテーブル161の一構成例を示している。
【0040】
図6に示すようなロックテーブルを参照することによりロック獲得先の転送パスがロック獲得中ではないと判定されたときに、ロックテーブル制御部41は、ロック獲得先と対応付けられたロックフラグをオン状態にセットする。このとき、ロックテーブル制御部41は、送信元情報などをロックテーブルに登録する。さらに、ロックテーブル制御部41は、各ノード10〜12のうちでロック獲得リクエストの発行元となったノードに対して、ロック獲得通知を発行する。ロックテーブル制御部41によって発行されたロック獲得通知は、調停部43を介してスイッチ17に送られる。スイッチ17では、ロックテーブル制御部41からのロック獲得通知を、各ノード10〜12のうちでロック獲得リクエストの発行元となったノードに対応する出力制御部181〜183のいずれかに転送することで、データ転送の開始を可能にする。
【0041】
図5に示す受信ノード障害制御部42は、ロック制御部16によって管理されている図6に示すようなロックテーブル161を参照して、データ受信側における障害を管理する。より詳細には、受信ノード障害制御部42は、後述する入力制御部50が備える障害監視部52から送られたノード障害情報を、制御パス45を介して取得する。このとき、受信ノード障害制御部42は、ロックテーブル161を参照して、入力制御部151〜153のうちでノード障害情報の取得元となった入力制御部に対応する各ノード10〜12のいずれかが、転送データの受信中であるか否かを判定する。
【0042】
ここで、図6に示すロックテーブル161では、ロック獲得の際に転送先となるノードのロックフラグがオン状態にセットされ、ロック解放の際には、そのロックフラグがリセットされてオフ状態となる。そのため、受信ノード障害制御部42は、入力制御部151〜153のいずれかからノード障害情報を取得すると、その入力制御部が接続されたノードに対応するロックフラグをロックテーブル161にて参照することにより、転送データの受信中であるか否かを判定することができる。
【0043】
このように受信ノード障害制御部42がロックテーブル161を参照したときに、対応するロックフラグがオン状態であれば、各ノード10〜12のうちでノード障害情報を送出したノードが転送データの受信中であると判断される。このとき、受信ノード障害制御部42は、ロックテーブル161において転送データの受信中であると判断したロックフラグと同一のノードに対応して設けられた送信元ノード情報を参照することにより、転送データの送信元となるノードを、各ノード10〜12のうちから特定する。こうして特定した送信元のノードに対して、受信ノード障害制御部42は、図4(B)に示すような受信障害通知を生成して発行する。
【0044】
調停部43は、例えばスイッチ17にて各ノード10〜12からのトランザクションが競合したときなどに、この競合を調停するための処理を実行する。
【0045】
スイッチ17は、各入力制御部151〜153からの制御情報あるいは転送データを所望のノードへと送出可能にする。
【0046】
入力制御部151〜153はそれぞれ、各ノード10〜12に対応して配置され、各ノード10〜12からの制御情報あるいは転送データを受信するための制御を行う。各入力制御部151〜153は、例えば図7に示すような入力制御部50の構成を有している。図7に示す入力制御部50は、リクエストバッファ51と、障害監視部52と、送信ノード障害制御部53と、調停部54とを備えている。また、入力制御部50には、各ノード10〜12のうちで対応するいずれかとの間に配設された接続パス55や、スイッチ17との間に配設されたパス56、ロック制御部16との間に配設されて制御パス45(図5)ともなるパス57などが接続されている。
【0047】
リクエストバッファ51は、各ノード10〜12から接続パス55を介して送信された制御情報を蓄積するためのものである。
【0048】
障害監視部52は、各ノード10〜12のうちで対応するもの(対応ノード)において発生する障害を監視する。そして、各ノード10〜12の対応ノードにて障害が発生したときには、その障害が発生した対応ノードから障害発生を示す特定パターンの障害コードを受信する。このとき、障害監視部52は、障害発生が検出された旨を、送信ノード障害制御部53に通知する。さらに、障害監視部52は、障害発生が検出された旨を、パス57を介してロック制御部16にも通知する。
【0049】
送信ノード障害制御部53は、ロック獲得中フラグと、転送先情報レジスタとを備えている。ロック獲得中フラグは、各ノード10〜12の対応ノードにてロックが獲得できたときに、オン状態にセットされる。その一方で、データ転送処理が終了したときには、ロックが解放されるとともにロック獲得中フラグがリセットされてオフ状態となる。また、送信ノード障害制御部53が備える転送先情報レジスタは、図4(A)に示すようなロック獲得リクエストを受信したときに、そのロック獲得リクエストで指定された送信先ノード番号を保持する。
【0050】
送信ノード障害制御部53は、障害監視部52から障害発生が検出された旨の通知を受けたときに、その障害が発生したノードと対応付けられたロック獲得中フラグを参照する。このとき、ロック獲得中フラグがオン状態であれば、転送先情報レジスタに保持されている送信先ノード番号を読み取り、各ノード10〜12のうちで転送データの送信先となるノードに対して、図4(C)に示すような送信障害通知を発行する。
【0051】
調停部54は、例えば各ノード10〜12のうちで入力制御部50が接続されたノードからスイッチ17へと入力するトランザクションが、他の入力制御部から入力されるトランザクションと競合したときなどに、この競合を調停するための処理を実行する。
【0052】
出力制御部181〜183はそれぞれ、各ノード10〜12に対応して配置され、スイッチ17から送られた制御情報や転送データを、対応する各ノード10〜12に送出するための制御を行う。
【0053】
次に、図1に示す構成を有するマルチノードシステム1の動作について説明する。このマルチノードシステム1では、回線交換方式により、各ノード10〜12の間で各種データのノード間転送が行われる。回線交換方式のノード間転送では、実際のデータ転送に先立ち、ノード間クロスバスイッチ14において、出力側のパス191〜193の確保(ロック獲得)が行われる。
【0054】
例えば、図1において「Node 0」として特定されるノード10が「Node 1」として特定されるノード11にデータ転送する場合、ノード10は、図4(A)に示すような形式のロック獲得リクエストを、ノード間クロスバスイッチ14に対して発行する。ノード間クロスバスイッチ14では、他のノードとの競合を調停し、ノード10がノード11にデータ転送を行うためにパス192を獲得できたときに、ロック獲得通知をノード10に対して返却する。ノード10は、ノード間クロスバスイッチ14からロック獲得通知の返却を受けたことを契機として、ノード11に対するデータ転送を開始する。
【0055】
このように、回線交換方式のノード間転送では、データ転送に先立ち図4(A)に示すような形式のロック獲得リクエストを発行することによって出力側のパス191〜193のいずれかを確保(ロック獲得)する。これにより、例えばノード間クロスバスイッチ14が備えるスイッチ17において他のノードとのデータパスの競合が発生することなく、データ転送を行うことが可能になる。
【0056】
図8は、一例として、「Node 0」として特定されるノード10から「Node 1」として特定されるノード11にデータを送るライト転送において、ノード10、ノード間クロスバスイッチ14、及びノード11の間で送受信される制御情報やデータの流れを示している。この場合、ノード10では、まず、ノード10が備える複数のCPU22、23のいずれかから、ノード間転送命令が発行され、共有メモリ26を経由してノード間制御部24に送られる。
【0057】
こうして、ノード10からは、転送パスを確保するために、図4(A)に示すような形式のロック獲得リクエスト(図8ではロック獲得要求)が、ノード間クロスバスイッチ14に対して発行される(P11)。ノード間クロスバスイッチ14は、ノード10から受けたロック獲得リクエストに応答して、ノード11にデータ転送を行うためのパス192を獲得できたときに、ロック獲得通知を、要求元ノードであるノード10に送る(P12)。
【0058】
ノード10では、ノード間クロスバスイッチ14からのロック獲得通知によりデータ転送の回線が確保できたことになり、データ転送を開始する(P13)。ノード10から送出される転送データのヘッダには、転送先ノード番号が付与されている。ノード間クロスバスイッチ14は、転送データのヘッダに示された転送先ノード番号によりスイッチ17のルーティングを行い、ノード11に対して転送データを送る(P14)。転送データを受信したノード11は、受信した旨をリプライとしてノード間クロスバスイッチ14に送り(P15)、このリプライがノード間クロスバスイッチ14から転送元ノードであるノード10へと送られる(P16)。複数の転送単位があるような場合には、このリプライを受信したことにより、ノード10では次の転送単位を送るためのハンドシェーク制御などが行われる。
【0059】
ノード11が最後の転送データを受信したときには、ノード間クロスバスイッチ14に対してロック解放要求を送ることにより(P17)、ノード11のロックを解放して次の転送に備えることを可能にする。ノード11からロック解放要求を受信したノード間クロスバスイッチ14では、図6に示すロックテーブル161のロックフラグや、ノード10に対応して設けられた入力制御部151が備えるロック獲得中フラグをリセットしてオフ状態とする。そして、正常にリセットが行われたときには、ロック解放通知が、ロック解放の要求元であるノード11に対して送られる(P18)。このときには、ノード11において次の転送のためにロックフラグがリセットされており、他のノードがロックを獲得できることになる。このようにして、一連のデータ転送処理が終了する。
【0060】
図9は、図8に示したデータ転送処理において、データの転送先(受信側)となるノード11にて障害が発生した場合を示している。図9に示すP21〜P24では、図8に示したP11〜P14と同様にして、ロック獲得リクエスト(図9ではロック獲得要求)によりノード11にデータ転送を行うためのパス192を獲得できたときにロック獲得通知がノード10に送られて、ノード10からノード間クロスバスイッチ14を介してノード11に対するデータ転送が開始される。
【0061】
ここで、図9に示すロック獲得要求(P21)によりノード間クロスバスイッチ14が備えるロック制御部16においてロックが獲得されたときには、図6に示すロックテーブル161において、ノード11に対応する部分に転送元ノード番号(図6では送信元ノード番号)であるノード10のノード番号が書き込まれる。また、このときには、ノード11に対応してロックテーブル161に設けられたロックフラグがオン状態にセットされる。
【0062】
この後、データ転送が行われているときにノード11で障害が発生した場合(図9のP25)、ノード11はノード間クロスバスイッチ14に対して、予め定められた特定のデータパターンを有する障害コードを通知する(P26)。ノード間クロスバスイッチ14では、ノード11に対応して設けられた入力制御部152がノード11からの障害コードを受信すると、図7に示す障害監視部52がこれを検出する。そして、障害監視部52は、障害発生が検出された旨を、ロック制御部16に通知する。
【0063】
障害監視部52からの通知を受けたロック制御部16は、ノード11から障害コードが送られたことに基づき、例えば図5に示す受信ノード障害制御部42が、ロックテーブル161においてノード11に対応する箇所を参照する。このとき、ロックテーブル161では、ノード11に対応して設けられたロックフラグがオン状態にセットされている。そのため、ロック制御部16は、ノード11がデータ受信中であると判断して、例えば図5に示す受信ノード障害制御部42が、ノード11に対応する部分に書き込まれた転送元ノード番号(図6では送信元ノード番号)を読み取る。
【0064】
この例では、ロックテーブル161におけるノード11に対応する部分に、転送元ノード番号としてノード10のノード番号が書き込まれている。そこで、ロック制御部16では、例えば図5に示す受信ノード障害制御部42が図4(B)に示すような形式の受信障害通知(図9では障害通知)を生成して、転送元ノードであるノード10へと送出する(P27)。このとき送出される受信障害通知では、障害ノード番号として、ノード11のノード番号が示されている。
【0065】
ノード間クロスバスイッチ14から受信障害通知を受けたノード10では、ノード11への仕掛かり中のデータ転送処理を中断し、所定の廃棄処理へと移行する(P28)。この廃棄処理が完了して次の転送が開始可能な状態になると、ノード11のロック解放通知を、ノード10がノード間クロスバスイッチ14に対して発行する(P29)。
【0066】
ここで、ロック解放通知は、転送先ノードであるノード11によって発行されるのが原則である。しかしながら、転送先ノードであるノード11にて障害が発生したためにロック解放通知を発行できないときには、例外的に、転送元ノードであるノード10が代わりにロック解放通知を発行して、転送先ノードであるノード11におけるロックの解放を要求する。これにより、ノード間クロスバスイッチ14では、図6に示すロックテーブル161にてノード11に対応して設けられたロックフラグをリセットしてオフ状態とすることができ、処理の矛盾を防止できる。
【0067】
ノード間クロスバスイッチ14から受信障害通知を受けたノード10では、転送先ノードであるノード11に障害が発生した旨の報告が、ノード10が備える診断装置25(図2)に対して行われる。これにより、転送元ノードであるノード10において、データ転送処理が中断された原因は、転送先ノードであるノード11にて障害が発生したためであることが、容易に特定可能となる。
【0068】
図10は、図8に示したデータ転送処理において、データの転送元(送信側)となるノード10にて障害が発生した場合を示している。図10に示すP31〜P34では、図8に示したP11〜P14と同様にして、ロック獲得リクエスト(図10ではロック獲得要求)によりノード11にデータ転送を行うためのパス192を獲得できたときにロック獲得通知がノード10に送られて、ノード10からノード間クロスバスイッチ14を介してノード11に対するデータ転送が開始される。
【0069】
ここで、図10に示すロック獲得要求(P31)によりノード間クロスバスイッチ14が備えるロック制御部16においてロックが獲得されたときには、ノード10に対応して設けられた入力制御部151の送信ノード障害制御部53(図7)において、転送先ノードとなるノード11のノード番号が、転送先情報レジスタに格納される。また、入力制御部151では、ノード10に対応して設けられたロック獲得中フラグがオン状態にセットされる。
【0070】
この後、データ転送が行われているときにノード10で障害が発生した場合(図10のP35)、ノード10はノード間クロスバスイッチ14に対して、予め定められた特定のデータパターンを有する障害コードを通知する(P36)。ノード間クロスバスイッチ14では、ノード10に対応して設けられた入力制御部151がノード10からの障害コードを受信すると、入力制御部151自身が備える送信ノード障害制御部53は、ロック獲得中フラグを参照する。
【0071】
このとき、ロック獲得中フラグがオン状態にセットされている。そのため、入力制御部151では、例えば図7に示す送信ノード障害制御部53により、データ転送中に転送元(送信側)であるノード10において障害が発生したと判断される。これに続いて、入力制御部151では、例えば送信ノード障害制御部53が、転送先情報レジスタに格納されている転送先ノードとなるノード11のノード番号を読み取る。そして、入力制御部151では、例えば送信ノード障害制御部53が図4(C)に示すような形式の送信障害通知(図10では障害通知)を生成して、転送先ノードであるノード11へと送出する(P37)。このとき送出される送信障害通知では、障害ノード番号として、入力制御部151の対応ノードであるノード10のノード番号が示されている。
【0072】
ノード間クロスバスイッチ14から送信障害通知を受けたノード11では、ノード10からのデータ受信を中断し、仕掛かりデータの廃棄処理へと移行する(P38)。この廃棄処理が完了して次の転送が開始可能な状態になると、ノード11のロック解放通知を、ノード11がノード間クロスバスイッチ14に対して発行する(P39)。
【0073】
ノード11からのロック解放通知を受けたノード間クロスバスイッチ14では、図6に示すロックテーブル161にてノード11に対応して設けられたロックフラグをリセットしてオフ状態とし、ノード11が次のデータ転送を受信可能な状態に設定する。また、ノード間クロスバスイッチ14から送信障害通知を受けたノード11では、転送元ノードであるノード10に障害が発生した旨の報告が、ノード11が備える診断装置25(図2)に対して行われる。これにより、転送先ノードであるノード11において、データ転送処理が中断された原因は、転送元ノードであるノード10にて障害が発生したためであることが、容易に特定可能となる。
【0074】
以上説明したように、この発明によれば、データ転送が行われているときに転送元(送信側)あるいは転送先(受信側)となる各ノード10〜12のいずれかにて障害が発生したときには、障害が発生したノードからノード間クロスバスイッチ14に対して、特定のデータパターンを有する障害コードが通知される。そして、ノード間クロスバスイッチ14は、ロック制御部16が備えるロックテーブル161や入力制御部151〜153が備える転送先情報レジスタを参照することにより、障害が発生したノードとの間でデータ転送処理を実行している相手方のノードを特定することができる。
【0075】
こうして特定された相手方のノードに対しては、図4(B)に示すような受信障害通知や、図4(C)に示すような送信障害通知が送られる。これにより、ノード間転送の際に障害が発生した場合には、正常なノードの側にて障害が発生したことを直ちに検出することができ、迅速に復旧処理を開始して、システム全体の性能劣化を防止することができる。
【0076】
また、正常なノードの側では、相手方のノードにて障害が発生した旨の報告が診断装置25に対して行われることにより、容易に障害箇所を特定して、障害箇所の切り分けを容易にすることにより、システム全体の性能劣化を防止することができる。
【0077】
この発明は上記実施の形態に限定されるものではなく、様々な変形及び応用が可能である。例えば、上記実施の形態では、各ノード10〜12のいずれかにて障害が発生した場合について説明したが、ノード間クロスバスイッチ14にて障害が発生した場合にも適用可能である。この場合、例えばノード間クロスバスイッチ14が備えるスイッチ17にて障害が発生したときに、各ノード10〜12に対応して設けられた出力制御部181〜183から、各ノード10〜12に対して特定のデータパターンを有する障害コードを通知する。これにより、各ノード10〜12では、ノード間クロスバスイッチ14で障害が発生したことを直ちに検出することができ、迅速に復旧処理を開始することができる。
【0078】
また、各ノード10〜12では、ノード間クロスバスイッチ14からの障害コードを受信したときに、ノード間クロスバスイッチ14にて障害が発生した旨の報告を、各ノード10〜12が備える診断装置25に対して行うようにすればよい。これにより、ノード間クロスバスイッチ14が障害発生箇所となっていることを、容易に特定することが可能になる。
【図面の簡単な説明】
【0079】
【図1】この発明の一実施例となるマルチノードシステムの構成例を示す図である。
【図2】ノードの構成例を示す図である。
【図3】ノード間制御部の構成例を示す図である。
【図4】ロック獲得リクエスト、受信障害通知、送信障害通知の構成例を示す図である。
【図5】ロック制御部の構成例を示す図である。
【図6】ロックテーブルの構成例を示す図である。
【図7】入力制御部の構成例を示す図である。
【図8】データ転送処理において送受信される制御情報やデータの流れを示す図である。
【図9】図8に示すデータ転送処理において転送先にて障害が発生した場合を示す図である。
【図10】図8に示すデータ転送処理において転送元に障害が発生した場合を示す図である。
【符号の説明】
【0080】
1 マルチノードシステム
10〜12、21 ノード
14 ノード間クロスバスイッチ
16 ロック制御部
17 スイッチ
22、23 CPU
24、101〜121 ノード間制御部
25 診断装置
26 共有メモリ
30 リクエスト処理部
31 ノード間データ送受信部
32 ノード間障害制御部
33 メモリアクセス制御部
34 データ転送パス
40 ロック制御部
41 ロックテーブル制御部
42 受信ノード障害制御部
43、54 調停部
50、151〜153 入力制御部
51 リクエストバッファ
52 障害監視部
53 送信ノード障害制御部
161 ロックテーブル
181〜183 出力制御部

【特許請求の範囲】
【請求項1】
ノード間クロスバスイッチを介して複数のノードが接続されたマルチノードシステムであって、
前記複数のノードはそれぞれ、
ノード内で障害が発生したことを、前記ノード間クロスバスイッチに対して通知する障害通知手段と、
前記ノード間クロスバスイッチから障害通知を受信したときに、データ転送処理における転送相手との間で送受信される転送中のデータを破棄して次のデータ転送に備える障害制御手段と、
前記障害制御手段によって受信された障害通知に基づき、障害の発生箇所を特定する障害特定手段とを備え、
前記ノード間クロスバスイッチは、
前記複数のノードのそれぞれにおける前記障害通知手段からの通知を受けることにより、各ノードにて障害が発生したか否かを監視する障害監視手段と、
データ転送処理の実行中に前記障害監視手段により転送元あるいは転送先のノードにて障害が発生したとされたきに、転送元あるいは転送先のノードのうちで正常なノードに対して、障害が発生したノードのノード番号を示した障害通知を発行する通知発行手段とを備える、
ことを特徴とするマルチノードシステム。
【請求項2】
前記障害通知手段は、予め定められた特定のデータパターンを有する障害コードを前記ノード間クロスバスイッチに送ることにより、障害が発生したことを通知し、
前記通知発行手段は、
データ転送処理における転送元のノード番号が書き込まれるロックテーブルを含み、転送先のノードにて障害が発生したときに、前記ロックテーブルを参照することにより、転送元のノードに対して障害通知を発行する受信障害通知発行手段と、
データ転送処理における転送先のノード番号を格納する転送先情報レジスタを含み、転送元のノードにて障害が発生したときに、前記転送先情報レジスタを参照することにより、転送先のノードに対して障害通知を発行する送信障害通知発行手段とを備える、
ことを特徴とする請求項1に記載のマルチノードシステム。
【請求項3】
前記ノード間クロスバスイッチは、当該ノード間クロスバスイッチ内にて障害が発生したことを、前記複数のノードのそれぞれに対して通知するスイッチ障害通知手段を備える、
ことを特徴とする請求項1に記載のマルチノードシステム。
【請求項4】
前記スイッチ障害通知手段は、予め定められた特定のパターンを有する障害コードを前記複数のノードのそれぞれに送ることにより、障害が発生したことを通知する、
ことを特徴とする請求項3に記載のマルチノードシステム。
【請求項5】
ノード間クロスバスイッチを介して他のノード装置と接続されることによりマルチノードシステムを構成するノード装置であって、
当該ノード装置内にて障害が発生したことを、前記ノード間クロスバスイッチに対して通知する障害通知手段と、
前記ノード間クロスバスイッチから障害通知を受信したときに、データ転送処理における転送相手となる他のノード装置との間で送受信される転送中のデータを破棄して次のデータ転送に備える障害制御手段と、
前記障害制御手段によって受信された障害通知に基づき、障害の発生箇所を特定する障害特定手段とを備える、
ことを特徴とするノード装置。
【請求項6】
前記障害通知手段は、予め定められた特定のデータパターンを有する障害コードを前記ノード間クロスバスイッチに送ることにより、障害が発生したことを通知する、
ことを特徴とする請求項5に記載のノード装置。
【請求項7】
複数のノード装置と接続されてマルチノードシステムを構成するノード間クロスバスイッチであって、
前記複数のノード装置のそれぞれにおいて障害が発生したか否かを監視する障害監視手段と、
データ転送処理の実行中に前記障害監視手段により転送元あるいは転送先のノード装置にて障害が発生したとされたときに、転送元あるいは転送先のノード装置のうちで正常なノード装置に対して、障害が発生したノード装置のノード番号を示した障害通知を発行する通知発行手段と、
当該ノード間クロスバスイッチ内にて障害が発生したことを、前記複数のノード装置のそれぞれに対して通知するスイッチ障害通知手段とを備える、
ことを特徴とするノード間クロスバスイッチ。
【請求項8】
前記通知発行手段は、
データ転送処理における転送元のノード番号が書き込まれるロックテーブルを含み、転送先のノード装置にて障害が発生したときに、前記ロックテーブルを参照することにより、転送元のノード装置に対して障害通知を発行する受信障害通知発行手段と、
データ転送処理における転送先のノード番号を格納する転送先情報レジスタを含み、転送元のノード装置にて障害が発生したときに、前記転送先情報レジスタを参照することにより、転送先のノード装置に対して障害通知を発行する送信障害通知発行手段とを備える、
ことを特徴とする請求項7に記載のノード間クロスバスイッチ。
【請求項9】
ノード間クロスバスイッチを介して複数のノードが接続されたマルチノードシステムにおける障害処理方法であって、
前記複数のノードのいずれかで障害が発生したことを、障害が発生したノードから前記ノード間クロスバスイッチに対して通知し、
前記複数のノードのいずれかが前記ノード間クロスバスイッチから障害通知を受信したときに、当該障害通知を受信したノードが、データ転送処理における転送相手との間で送受信される転送中のデータを破棄して次のデータ転送に備え、
前記ノード間クロスバスイッチから障害通知を受信したノードが、当該障害通知に基づき、障害の発生箇所を特定し、
前記ノード間クロスバスイッチは、
前記複数のノードのそれぞれにおいて障害が発生したか否かを監視し、
データ転送処理の実行中に転送元あるいは転送先のノードにて障害が発生したときに、転送元あるいは転送先のノードのうちで正常なノードに対して、障害が発生したノードのノード番号を示した障害通知を発行する、
ことを特徴とする障害処理方法。
【請求項10】
障害が発生したノードは、予め定められた特定のデータパターンを有する障害コードを前記ノード間クロスバスイッチに送ることにより、障害が発生したことを通知し、
前記ノード間クロスバスイッチは、
データ転送処理における転送元のノード番号をロックテーブルに書き込み、
データ転送処理における転送先のノード番号を転送先情報レジスタに格納し、
データ転送処理における転送先のノードにて障害が発生したときに、前記ロックテーブルを参照することにより、転送元のノードに対して障害通知を発行し、
データ転送処理における転送元のノードにて障害が発生したときに、前記転送先情報レジスタを参照することにより、転送先のノードに対して障害通知を発行する、
ことを特徴とする請求項9に記載の障害処理方法。
【請求項11】
データ転送処理における転送先のノードにて障害が発生したときに、当該データ転送処理における転送元のノードが、前記ノード間クロスバスイッチに対して転送先のノードにおけるロックの解放を要求する、
ことを特徴とする請求項9または10に記載の障害処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2006−178786(P2006−178786A)
【公開日】平成18年7月6日(2006.7.6)
【国際特許分類】
【出願番号】特願2004−372170(P2004−372170)
【出願日】平成16年12月22日(2004.12.22)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】