説明

通信装置、障害検出方法および障害検出プログラム

【課題】障害箇所を絞り込むことを課題とする。
【解決手段】FBカードは、通信の障害を検出する。また、FBカードは、カードの内部に設けられた、各処理を実行する処理部位ごとに、処理部位を通過したメッセージの数を計数する。また、FBカードは、障害が検出された場合に、計数された各処理部位のメッセージの数を比較する。そして、FBカードは、比較した結果において、各処理部位を通過したメッセージの数に差異が生じている場合に、カードの内部を障害箇所と特定し、メッセージの数に差異が生じていない場合に、カードの外部を障害箇所と特定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信装置、障害検出方法および障害検出プログラムに関する。
【背景技術】
【0002】
従来、通信装置間で通信障害が発生した場合に、予備の通信経路に切り替えたり、迂回経路を選択したりすることで、接続先装置との通信路を確保することが行われている。このような手法では、障害を復旧させないで放置することになるので、予備の経路が存在しなくなった状態で通信障害が発生した場合には、経路切替も迂回経路選択もできず通信ができなくなる。
【0003】
一方で、現在のように通信網が発達し、接続先装置までに複数の装置を経由するネットワークでは、障害箇所が自装置、接続先装置、通信経路、他の場所のいずれなのかを特定するのが難しい。このため、障害を検出した装置が、接続先装置に対して再起動などの復旧制御を実施する技術が知られている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2007−49336号公報
【特許文献2】特開平07−250125号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来技術では、障害箇所が不確かな状態で復旧作業を実施するので、復旧作業によって障害が悪化する場合もあるという問題がある。なお、この問題は、通信装置に限ったものではなく、シャーシに搭載されて、信号送信部や信号受信部を実行する中継カードについても同様に存在する。
【0006】
例えば、障害の原因が自装置である場合でも、接続先装置に復旧制御を実施するので、復旧作業を実施し続けても障害が継続し、復旧作業が障害の原因を特定する阻害要因になる恐れもある。また、正常に動作する接続先装置に繰り返して復旧作業を実施するので、接続先装置の障害を誘発し、却って障害を悪化させることも起こり得る。
【0007】
開示の技術は、上記に鑑みてなされたものであって、障害箇所を絞り込むことができる通信装置、障害検出方法および障害検出プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
本願の開示する通信装置は、一つの態様において、通信の障害を検出する検出部と、装置の内部に設けられた、各処理を実行する処理部位ごとに、前記処理部位を通過したメッセージの数を計数する計数部とを有する。通信装置は、前記検出部によって障害が検出された場合に、前記計数部によって計数された各処理部位のメッセージの数を比較する比較部を有する。通信装置は、前記比較部が比較した結果において、各処理部位を通過したメッセージの数に差異が生じている場合に、前記装置の内部を障害箇所と特定し、前記メッセージの数に差異が生じていない場合に、前記装置の外部を障害箇所と特定する特定部を有する。
【発明の効果】
【0009】
本願の開示する通信装置、障害検出方法および障害検出プログラムの一つの態様によれば、障害箇所を絞り込むことができるという効果を奏する。
【図面の簡単な説明】
【0010】
【図1】図1は、実施例1に係る制御装置の構成例を示す図である。
【図2】図2は、実施例1に係るFBカードのハードウェア構成例を示す図である。
【図3】図3は、実施例1に係るFBカードの機能ブロックを示す図である。
【図4】図4は、信号種別テーブルに記憶される情報の例を示す図である。
【図5】図5は、通過数テーブルに記憶される情報の例を示す図である。
【図6】図6は、ポート設定テーブルに記憶される情報の例を示す図である。
【図7】図7は、カード内で送受信されるメッセージの例を示す図である。
【図8】図8は、実施例1に係るFBカードが実行する処理シーケンスを示す図である。
【図9】図9は、実施例1に係るFBカードが実行する障害箇所特定処理を示すフローチャートである。
【図10】図10は、通知信号を用いた障害検出の処理シーケンスを示す図である。
【図11】図11は、要求信号の送信処理を用いた障害検出の処理シーケンスを示す図である。
【図12】図12は、障害特定プログラムを実行するコンピュータのハードウェア構成の例を示す図である。
【発明を実施するための形態】
【0011】
以下に、本願の開示する通信装置、障害検出方法および障害検出プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例1】
【0012】
[全体構成]
図1は、実施例1に係る制御装置の構成例を示す図である。図1に示すように、制御装置1は、管理装置2とシャーシ3とを有する装置であり、例えば基地局制御装置(RNC:Radio Network Controller)などの装置である。また、シャーシ3は、FB(Function Block)カード10とFBカード30とがSW(Switch)カード5を介して接続される。なお、ここで示したシャーシの数、カードの種別、FBカードやSWカードの数は、あくまで例示であり、図示したものに限定されるものではない。
【0013】
管理装置2は、制御装置1で実行される処理を司る管理装置であり、SWカード5を介して、FBカード10とFBカード30各々に接続される。例えば、管理装置2は、管理者の指示操作を受け付けて、FBカード10やFBカード30に対して、電源制御、データ処理の開始や終了制御などの処理を実行する。
【0014】
SWカード5は、各カードの接続経路を含むスイッチング情報等を保持し、FBカード10、FBカード30、管理装置2各々を相互に接続する。図1の例では、SWカード5は、FBカード10とFBカード30との間を2経路で接続し、経路を冗長化している。
【0015】
FBカード10とFBカード30は、通信装置の一例であり、データを他のカード等に送信したり受信したりする。図1の例では、FBカード10とFBカード30とは、2つの物理ポートで接続される。例えば、FBカード10は、他のカード等から受信したデータを接続先のFBカード30に出力したり、変調処理を実行する他のカード等に出力する。なお、各FBカードの接続先は、図示したようにFBカードに限ったものではなく、例えば変調を実行するカード、コーティングを実行するカード、無線端末にデータを送信するカード等であってもよい。
【0016】
このようなFBカード10またはFBカード30は、通信の障害を検出する。また、FBカード10またはFBカード30は、カードの内部に設けられた、各処理を実行する処理部位ごとに、処理部位を通過したメッセージの数を計数する。また、FBカード10またはFBカード30は、障害が検出された場合に、計数された各処理部位のメッセージの数を比較する。そして、FBカード10またはFBカード30は、比較した結果において、各処理部位を通過したメッセージの数に差異が生じている場合に、カードの内部を障害箇所と特定し、メッセージの数に差異が生じていない場合に、カードの外部を障害箇所と特定する。
【0017】
このように、FBカード10またはFBカード30は、対向装置との間で障害が発生した場合に、自カード内でメッセージが正常に送受信されているかを判定することができる。この結果、FBカード10またはFBカード30は、障害箇所がカード内かカード外かを特定することができる。したがって、障害箇所を絞り込むことができる。
【0018】
[FBカードのハードウェア構成]
図2は、実施例1に係るFBカードのハードウェア構成例を示す図である。なお、図1に示したFBカード10とFBカード30とは同様の構成を有するので、ハードウェア構成および機能ブロック図については、FBカード10を例にして説明する。
【0019】
図2に示すように、FBカード10は、コネクタ10aとPHY(Physical Layer)10bとPHY10cとコネクタ10dとPHY10eとを有する。さらに、FBカード10は、FPGA(Field-Programmable Gate Array)11とネットワークプロセッサ12とメモリ13とメモリコントローラ14とCPU(Central Processing Unit)15とを有する。なお、ここで示したハードウェアはあくまで例示であり、図示するハードウェア以外のハードウェアを有していてもよい。
【0020】
コネクタ10aは、FBカード10のバックサイドに設けられたイーサコネクタなどであり、他のFBカードや管理装置2との間を接続するケーブルと繋がれる。PHY10bとPHY10cとは、コネクタ10aとFPGA11との間を接続する回路などのハードウェアであり、コネクタ10aとFPGA11との間でやり取りされる通信を物理層レベルで制御する。
【0021】
コネクタ10dは、FBカード10のフロントサイドに設けられたイーサコネクタなどであり、FBカード10を操作するコンピュータ装置などと接続するケーブル等と繋がれる。PHY10eは、コネクタ10dとメモリコントローラ14との間を接続する回路などのハードウェアであり、コネクタ10dとメモリコントローラ14との間でやり取りされる通信を物理層レベルで制御する。
【0022】
FPGA11は、MAC(Media Access Control)11aとMAC11bとスイッチ11cとを有し、これらによって、データ転送をスイッチングする集積回路である。MAC11aは、PHY10bとスイッチ11cとの間を接続する回路などのハードウェアであり、PHY10bとスイッチ11cとの間でやり取りされる通信をデータリンク層レベルで制御する。同様に、MAC11bは、PHY10cとスイッチ11cとの間を接続する回路などのハードウェアであり、PHY10cとスイッチ11cとの間でやり取りされる通信をデータリンク層レベルで制御する。
【0023】
スイッチ11cは、MAC11aとネットワークプロセッサ12との間を接続するスイッチング回路であり、同様に、MAC11bとネットワークプロセッサ12との間を接続するスイッチング回路である。スイッチ11cは、ネットワークプロセッサ12から入力されたパケットなどのメッセージを、宛先が接続されるMAC11aまたはMAC11bに出力する。また、スイッチ11cは、MAC11aまたはMAC11bから入力されたパケットなどのメッセージをネットワークプロセッサ12に出力する。
【0024】
ネットワークプロセッサ12は、パケット転送などパケット処理に特化したプロセッサなどの電子回路であり、FPGA11とメモリコントローラ14との間のパケット転送を制御する。メモリ13は、FBカード10が実行する各処理で用いられるデータやプログラム等を記憶する記憶装置である。
【0025】
メモリコントローラ14は、メモリ13へのデータの書き込みやメモリ13からのデータの読み出しを制御する集積回路などである。メモリコントローラ14は、ネットワークプロセッサ12とメモリ13との間のデータ書き込みまたはデータ読み出しを制御する。同様に、メモリコントローラ14は、CPU15とメモリ13との間のデータ書き込みまたはデータ読み出しを制御する。同様に、メモリコントローラ14は、コネクタ10dに接続される装置とメモリ13との間のデータ書き込みまたはデータ読み出しを制御する。
【0026】
CPU15は、内部メモリ等を有し、FBカード全体の制御を司る電子回路である。CPU15は、通信の障害の検出、障害箇所の特定、障害箇所の復旧制御等の各処理を実行する。
【0027】
[FBカードの機能ブロック図]
図3は、実施例1に係るFBカードの機能ブロックを示す図である。図3に示すように、FBカード10は、信号種別テーブル20aと通過数テーブル20bとポート設定テーブル20cとを有する。また、FBカード10は、送受信処理部21と計数部22と信号種別判定部23と確認管理部24と障害検出部25と比較部26と特定部27と復旧制御部28とを有する。
【0028】
信号種別テーブル20aと通過数テーブル20bとポート設定テーブル20cとは、例えばメモリ13に設けられる。送受信処理部21と計数部22と信号種別判定部23と確認管理部24と障害検出部25と比較部26と特定部27と復旧制御部28とは、CPU15が実行する処理部である。
【0029】
信号種別テーブル20aは、信号種別ごとに設定されたタイマ値を記憶するテーブルである。ここで記憶される情報は、管理者等によって更新される。図4は、信号種別テーブルに記憶される情報の例を示す図である。図4に示すように、信号種別テーブル20aは、「MsgID、信号種別、応答/確認待ちタイマ値、障害検出待ちタイマ値」を対応付けて記憶する。
【0030】
ここで記憶される「MsgID」は、メッセージの種別を識別する識別子であり、FBカード間等で送受信されるメッセージに含まれる。「信号種別」は、MsgIDによって特定されるメッセージの種別である。「応答/確認待ちタイマ値」は、通常のメッセージ送信で用いられるタイマ値であり、メッセージを送信してから応答を受信するまでのタイマ値である。「障害検出待ちタイマ値」は、再送信号待ちタイマと同等の用途で用いられるタイマ値であり、応答メッセージを送信してから当該応答の再送を要求されるまでのタイマ値である。
【0031】
図4の場合、「MsgID」が「1029」である要求メッセージを送信してから「400ms」経過するまでに、当該要求メッセージの応答を受信しなかった場合に、障害と判定されることを示す。また、「MsgID」が「1030」である応答メッセージを送信してから「600ms」経過するまでに、送信した応答メッセージの再送要求を受信した場合に、障害と判定されることを示す。また、「MsgID」が「1033」である定期報告メッセージは、「8640000ms」間隔で受信しなかった場合に、障害と判定されることを示す。
【0032】
通過数テーブル20bは、計数部22によって計数された処理部位ごとのメッセージ通過数を記憶するテーブルである。ここで記憶される情報は、計数部22によって更新される。図5は、通過数テーブルに記憶される情報の例を示す図である。図5に示すように、通過数テーブル20bは、処理部位ごとに「UDP(User Datagram Protocol)ポート番号、通過数」を対応付けて記憶する。ここで記憶される「UDPポート番号」は、通過したメッセージが使用するポート番号であり、メッセージから取得することができる。「通過数」は、通過したメッセージの数である。また、通過数テーブル20bは、結線情報や予め設定されたメッセージの送受信経路にしたがって、処理部位の接続順にテーブルを設けてもよい。
【0033】
図5の場合、CPU15、メモリコントローラ14、ネットワークプロセッサ12の順に結線されており、各処理部位についてメッセージの通過数が計数されていることを示す。例えば、CPU15については、UDPポート番号「1024」を「42」個のメッセージが通過し、UDPポート番号「1025」を「35」個のメッセージが通過したことを示す。また、CPU15について、UDPポート番号「1026」を「29」個のメッセージが通過し、UDPポート番号「1040」を「42」個のメッセージが通過したことを示す。
【0034】
ポート設定テーブル20cは、UDPポート番号と処理機能との対応付けを記憶するテーブルである。ここで記憶される情報は、管理者等によって設定される。図6は、ポート設定テーブルに記憶される情報の例を示す図である。図6に示すように、ポート設定テーブル20cは、「UDPポート番号、処理機能部名」を対応付けて記憶する。ここで記憶される「UDPポート番号」は、メッセージが使用するUDPのポート番号を示す。「処理機能部名」は、メッセージを送受信する機能や処理を示す。
【0035】
図6の場合、UDPポート番号「1024」を使用するメッセージは、PFIF(Plat Form interface)でやり取りされる同期処理において必要なメッセージであることを示す。同様に、UDPポート番号「1040」を使用するメッセージは、配下カード間またはMate間でやり取りされる転送メッセージであることを示す。なお、Mateとは、例えば冗長構成をとるものであり、片系がN系、他方がE系で、どちらかがACT系(ACTIVEに運用している系)で、STBY系(Standbyしている退避系)を指す。例えば、Mate間でのやりとりとは、ACT系とSTBY系との間でのデータのやりとりである。
【0036】
送受信処理部21は、他のカード等からメッセージを受信したり、他のカードにメッセージを送信したりする処理部である。例えば、送受信処理部21は、メッセージを受信した場合に、受信したメッセージを信号種別判定部23に出力する。また、送受信処理部21は、信号種別判定部23から指示されたメッセージを指示された宛先に送信する。
【0037】
計数部22は、FBカード10内部に設けられた、各処理を実行する処理部位ごとに、処理部位を通過したメッセージの数を計数する処理部である。例えば、計数部22は、送受信処理部21を介して、FBカード10内の各ハードウェアまたはCPU15が実行する各処理機能を監視し、通過したメッセージを計数する。
【0038】
ここで、FBカード10内で通過するメッセージの例を説明する。図7は、カード内で送受信されるメッセージの例を示す図である。図7に示すように、メッセージは、「送信元情報、送信先情報、送信元アドレス、送信先アドレス、送信元UDPポート番号、送信先UDPポート番号、送信元物理ポート番号、送信先物理ポート番号、メッセージ番号」などを有する。
【0039】
例えば、「送信元情報」は、メッセージを送信したカードを特定する情報であり、マシン名やカード名などである。「送信先情報」は、メッセージの送信先であるカードを特定する情報であり、マシン名やカード名などである。「送信元アドレス」は、メッセージを送信したカードのアドレス情報であり、「送信先アドレス」は、メッセージの送信先であるカードのアドレス情報である。なお、アドレス情報としては、IP(Internet Protocol)アドレスやMACアドレスを用いることができる。
【0040】
「送信元UDPポート番号」および「送信先UDPポート番号」は、送信元の装置によって指定されたポート番号であり、メッセージの送受信において使用するUDPポート番号である。「送信元物理ポート番号」および「送信先物理ポート番号」は、送信元の装置によって指定された送信経路となる物理ポート番号であり、メッセージが使用する物理的なインタフェースの番号である。「メッセージ番号」は、図4の「MsgID」に該当し、メッセージの種別を識別する識別子である。
【0041】
通過数を計数する一例を挙げると、計数部22は、CPU15を監視し、図7に示すフォーマットで記述されたメッセージがCPU15から出力された場合、「送信元UDPポート番号」または「送信先UDPポート番号」からUDPポート番号を抽出する。そして、計数部22は、通過数テーブル20bが保持するテーブルのうちCPU15に対応付けられたテーブルにおいて、抽出された「UDPポート番号」の通過数をインクリメントする。
【0042】
図3に戻り、信号種別判定部23は、送受信処理部21が受信したメッセージの種別を判定して確認管理部24に通知する処理部である。また、信号種別判定部23は、送受信処理部21が送信したメッセージの種別を判定して確認管理部24に通知する処理部である。
【0043】
例えば、信号種別判定部23は、送受信処理部21から受信メッセージが入力された場合に、受信メッセージに含まれる「メッセージ番号」を抽出する。そして、信号種別判定部23は、抽出した「メッセージ番号」に対応する「信号種別」を信号種別テーブル20aから特定して、確認管理部24に通知する。一例を挙げると、信号種別判定部23は、受信メッセージから「メッセージ番号」として「1029」を抽出した場合、「1029」に対応する「要求」を受信メッセージの信号種別として、確認管理部24に通知する。
【0044】
また、信号種別判定部23は、送受信処理部21からメッセージが送信される場合に、送信メッセージに含まれる「メッセージ番号」を抽出する。そして、信号種別判定部23は、抽出した「メッセージ番号」に対応する「信号種別」を信号種別テーブル20aから特定して、確認管理部24に通知する。一例を挙げると、信号種別判定部23は、送信メッセージから「メッセージ番号」として「1030」を抽出した場合、「1030」に対応する「応答」を受信メッセージの信号種別として、確認管理部24に通知する。
【0045】
確認管理部24は、信号種別判定部23から通知された信号種別に対応するタイマを起動させる処理部である。例えば、確認管理部24は、信号種別判定部23から「信号種別」が「要求」であることを通知された場合にタイマを起動させる。そして、確認管理部24は、タイマを起動させたことや、起動させたタイマの信号種別、起動時間等を障害検出部25に通知する。また、確認管理部24は、正常にメッセージが送受信された場合や障害検出部25等によって指示された場合に、タイマを初期化する。
【0046】
障害検出部25は、通信の障害を検出する処理部である。例えば、障害検出部25は、確認管理部24によってタイマが起動されてから、設定されるタイマ値に到達するまでの間に所定のメッセージを受信できない場合に、障害が発生したと検出する。
【0047】
一例を挙げると、障害検出部25は、確認管理部24から「信号種別=要求」に対応するタイマを起動させたことが通知されたとする。この場合、障害検出部25は、信号種別判定部23から確認管理部24に対して要求メッセージの応答が受信されたことが通知された時点のタイマの値を特定する。つまり、障害検出部25は、送受信処理部21によって要求メッセージが受信された時点のタイマ値を特定する。そして、障害検出部25は、特定したタイマの値が「信号種別=要求」のタイマ値「400ms」未満である場合に、正常にメッセージが送受信されたとして、タイマをリセットする。一方、障害検出部25は、特定したタイマの値が「信号種別=要求」のタイマ値「400ms」以上である場合に、障害が発生したと検出して比較部26に通知する。
【0048】
別例を挙げると、障害検出部25は、確認管理部24から「信号種別=応答」に対応するタイマを起動させたことが通知されたとする。この場合、障害検出部25は、「信号種別=応答」のタイマ値「600ms」経過前に、信号種別判定部23から確認管理部24に対して応答メッセージの再送要求が受信されたことが通知された場合に、障害が発生したと検出して比較部26に通知する。つまり、障害検出部25は、タイマ値「600ms」経過前に再送要求を受信すると障害が発生したと検出する。
【0049】
比較部26は、障害検出部25によって障害が検出された場合に、計数部22によって計数された各処理部位のメッセージの数を比較する処理部である。例えば、比較部26は、通過数テーブル20bを参照し、各処理部位ごとに計数された通過数を比較する。
【0050】
図5の場合、比較部26は、CPU15のテーブルに記憶される各UDPポート番号の通過数とメモリコントローラ14のテーブルに記憶される各UDPポート番号の通過数とを比較する。同様に、比較部26は、メモリコントローラ14のテーブルに記憶される各UDPポート番号の通過数とネットワークプロセッサ12のテーブルに記憶される各UDPポート番号の通過数とを比較する。同様に、比較部26は、CPU15のテーブルに記憶される各UDPポート番号の通過数とネットワークプロセッサ12のテーブルに記憶される各UDPポート番号の通過数とを比較する。そして、比較部26は、比較結果を特定部27に出力する。
【0051】
特定部27は、比較部26が比較した結果において、各処理部位を通過したメッセージの数に差異が生じている場合に、FBカード10の内部を障害箇所と特定する処理部である。また、特定部27は、メッセージの数に差異が生じていない場合に、FBカード10の外部を障害箇所と特定する処理部である。特定部27は、特定した障害情報を復旧制御部28に出力する。
【0052】
例えば図5の場合、特定部27は、CPU15においてUDPポート番号「1040」を通過した数が「42」であり、メモリコントローラ14においてUDPポート番号「1040」を通過した数が「0」であることから、通過数に差異が生じていると判定する。この場合、特定部27は、CPU15とメモリコントローラ14の間の経路、または、メモリコントローラ14に障害が発生していると特定する。さらに、特定部27は、ポート設定テーブル20cを参照し、障害を検出したUDPポート番号「1040」に対応する処理機能が「配下カード間またはMate間の転送メッセージ」であることを特定する。一方、特定部27は、各処理部位を通過したメッセージの数に差異が生じていない場合には、FBカード10に接続される経路またはFBカード10の接続先であるFBカード30に障害が発生していると特定する。
【0053】
復旧制御部28は、特定部27によって特定された障害の要因となった処理部位、または、FBカード10に接続される接続先の装置に対して、復旧制御を実行する処理部である。例えば、復旧制御部28は、特定部27から障害箇所がメモリコントローラ14であると通知された場合、メモリコントローラ14に対して、リセット処理、再起動処理、予め定められた復旧コマンドなどの処理を実行する。同様に、復旧制御部28は、特定部27から障害箇所がFBカード30であると通知された場合、FBカード30に対して、リセット処理、再起動処理、予め定められた復旧コマンドなどの処理を実行する。
【0054】
また、復旧制御部28は、特定部27から障害が発生している機能が「配下カード間またはMate間の転送メッセージ」であることと通知されたとする。この場合、復旧制御部28は、CPU15に対して、この機能を提供するアプリケーションの再起動を要求することもできる。つまり、復旧制御部28は、CPU15が実行する処理単位で復旧制御を実行することもできる。
【0055】
[処理の流れ]
次に、図8と図9とを用いて、実施例1に係るFBカード10が実行する処理の流れを説明する。ここでは、FBカード10とFBカード30との間の通信を例にして、全体的な処理シーケンスと障害箇所特定処理について説明する。
【0056】
(全体的な処理シーケンス)
図8は、実施例1に係るFBカードが実行する処理シーケンスを示す図である。図8に示すように、FBカード30は、信号種別が「要求」であるメッセージをFBカード10に送信する(S101とS102)。
【0057】
FBカード10の送受信処理部21は、信号種別が「要求」であるメッセージを受信する(S103)。続いて、信号種別判定部23が受信メッセージの信号種別が「要求」であることを特定し、送受信処理部21は、「要求」に対応するメッセージとして、信号種別が「応答」であるメッセージをFBカード30に送信する(S104とS105)。
【0058】
そして、FBカード10の確認管理部24は、信号種別テーブル20aを参照し、信号種別判定部23が特定した送信メッセージの信号種別である「応答」に対応したタイマを起動させる(S106)。この場合、タイマ値は「600ms」となる。
【0059】
その後、タイマ値経過前に、FBカード30は、信号種別が「要求」であるメッセージをFBカード10に再送する(S107とS108)。FBカード10の信号種別判定部23は、送受信処理部21によって受信されたメッセージの信号種別が「要求」であることを特定する(S109)。
【0060】
そして、FBカード10の障害検出部25は、タイマ値「600ms」の経過前に、応答信号を送信したはずの要求信号の再送を受信したことから、障害が発生したと検出する(S110)。そして、障害検出部25が確認管理部24にタイマのリセット指示を送信し、確認管理部24は、タイマをリセットする(S111)。なお、タイマのリセットは、図示したタイミングに限ったものではなく、障害箇所が特定された後や復旧後であってもよい。
【0061】
続いて、FBカード10の比較部26および特定部27は、障害箇所特定処理を実行して障害箇所を特定する(S112)。そして、復旧制御部28は、特定された障害箇所に復旧制御を実行する(S113)。このとき、復旧制御部28は、必要に応じて、FBカード30に対しても復旧制御を実行する(S114)。
【0062】
その後、復旧制御によって障害が復旧すると、FBカード10の送受信処理部21は、FBカード10とFBカード30を接続する物理ポートから疎通報告を実行して、接続状態が正常であることを確認する(S115とS116)。また、FBカード30は、FBカード10から正常に疎通報告を受信したことを示す疎通報告確認をFBカード10に送信する(S117とS118)。このようにして、各FBカードは、疎通が確認できる。
【0063】
(障害箇所特定処理)
図9は、実施例1に係るFBカードが実行する障害箇所特定処理を示すフローチャートである。この処理は、図8のS112で実行される。
【0064】
図9に示すように、FBカード10の計数部22は、FBカード10内の各ハードウェアまたはCPU15が実行する各処理機能を監視し、処理部位ごとに、入力されるメッセージを抽出する(S201)。続いて、計数部22は、入力されるメッセージが抽出された場合(S202肯定)、処理部位ごとに、出力されるメッセージを抽出する(S203)。そして、計数部22は、入力メッセージも出力メッセージも検出された処理部位について(S204肯定)、当該処理部位の通過数をカウントアップする(S205)。
【0065】
一方、計数部22は、入力メッセージまたは出力メッセージが検出されなかった処理部位について(S202否定またはS204否定)、通過数をカウントアップすることなく、S205を実行する。なお、図9では、S201からS205の計数処理を実行した後に、S206からS210の障害検出処理を実行する例を図示したがこれに限定されるものではない。例えば、計数処理と障害検出処理とを非同期で実行してもよい。
【0066】
その後、障害検出部25が障害を検出すると(S206肯定)、比較部26は、通過数テーブル20bを参照し、各処理部位の通過数を比較する(S207)。そして、特定部27は、比較結果に基づいて通過数に差異があると判定した場合(S208肯定)、比較結果に基づいて障害箇所の処理部位を特定する(S209)。一方、特定部27は、比較結果に基づいて通過数に差異がないと判定した場合(S208否定)、障害箇所を外部と特定する(S210)。
【0067】
[効果]
このように、FBカード10は、FBカード30との間でやり取りされるメッセージの信号種別に基づいてタイマを設定し、設定したタイマを用いて障害を検出することができる。つまり、FBカード10は、信号種別を用いて、FBカード30との間でシーケンスが続かない場合に、障害を検出することができる。また、FBカード10は、カード内の処理部位を通過したメッセージを計数することで、障害箇所がカード内かカード外かを特定することができる。さらに、FBカード10は、障害が発生した処理部位や機能までも特定することができる。したがって、FBカード10は、障害箇所を絞り込むことができ、復旧制御にかかるリスクも軽減することができる。
【0068】
また、自カード障害での故障部位の特定化が高められ、障害が発生しても他からその発生有無が判断できない障害であるサイレント障害の検出と復旧が可能となる。また、誤った相手側経路への制御が減ることにより、回線上の信号送受信号が減り、回線使用効率が高まる。また、上位装置との通信が一時確保できていなくても、障害復旧制御が可能である。また、地震時など遠隔地における障害が発生した場合でも、最低限度の回線が確保でき、サービス提供が可能となる。
【実施例2】
【0069】
次に、図10と図11とを用いて、FBカード10が実行する障害検出の別例を説明する。図10では、通知信号を受信した例、図11では、要求信号を送信した例で、障害を検出する手法を説明する。
【0070】
(通知信号)
図10は、通知信号を用いた障害検出の処理シーケンスを示す図である。図10に示すように、FBカード30は、信号種別が「通知」であるメッセージをFBカード10に送信する(S301とS302)。
【0071】
FBカード10の送受信処理部21は、信号種別が「通知」であるメッセージを受信する(S303)。続いて、信号種別判定部23が受信メッセージの信号種別が「通知」であることを特定し、送受信処理部21は、「通知」に対応するメッセージとして、信号種別が「確認」であるメッセージをFBカード30に送信する(S304とS305)。
【0072】
そして、FBカード10の確認管理部24は、信号種別テーブル20aを参照し、信号種別判定部23が特定した送信メッセージの信号種別である「確認」に対応したタイマを起動させる(S306)。この場合、タイマ値は「200ms」となる。
【0073】
その後、FBカード10は、タイマ値を経過するまで障害検出等の処理を保留する(S307)。この間に、FBカード10は、FBカード30から、信号種別が「通知」であるメッセージの再送を受信したとする(S308からS310)。すなわち、FBカード30は、FBカード10から確認信号を受信できていないとする。
【0074】
そして、タイマ値経過後、FBカード10の障害検出部25は、タイマ値「200ms」の経過前に、確認信号を送信したはずの通知信号の再送を受信したことから、障害が発生したと検出する(S311)。その後、FBカード10またはFBカード30が実行するS312からS319までの処理は、図8で説明したS111からS118までの処理と同様なので、説明を省略する。
【0075】
(要求信号)
図11は、要求信号の送信処理を用いた障害検出の処理シーケンスを示す図である。図11に示すように、FBカード10の送受信処理部21は、信号種別が「要求」であるメッセージをFBカード30に送信する(S401とS402)。
【0076】
続いて、FBカード10の確認管理部24は、信号種別テーブル20aを参照し、信号種別判定部23が特定した送信メッセージの信号種別である「要求」に対応したタイマを起動させる(S403)。この場合、タイマ値は「400ms」となる。その後、FBカード10は、タイマ値が経過するまでに、FBカード30から「応答」を受信していないとする(S404)。
【0077】
すると、タイマ経過後、FBカード10の障害検出部25は、タイマ値「400ms」の経過前に、応答信号を受信していないことから、障害が発生したと検出する(S405)。その後、FBカード10またはFBカード30が実行するS406からS413までの処理は、図8で説明したS111からS118までの処理と同様なので、説明を省略する。
【0078】
(その他の手法)
また、上記した例以外にも様々な信号種別を用いて障害を検出することができる。例えば、FBカード10は、FBカード30から定期的に送信される定期報告を用いることもできる。この場合、FBカード10は、定期報告を8640000ms間隔で受信しなかった場合に、障害が発生したと検出することもできる。
【0079】
別の手法では、FBカード10の比較部26は、通過数テーブル20bに記憶される処理部位ごとの通過数を定期的に比較し、通過数に差異が生じているという比較結果が得られた時点で、障害発生を検出することもできる。このように、FBカード10は、信号種別からだけでなく、自装置内のメッセージの通過状況からも障害を検出することができる。したがって、FBカード10は、タイマに左右されることもなく、内部障害を迅速に検出することができる。
【実施例3】
【0080】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
【0081】
(適用装置)
上記実施例では、FBカードを例にして説明したが、本願はこれに限定されるものではなく、例えばサーバや基地局などの通信装置にも適用することができる。例えば、一般的なアプリケーションサーバなどに図3と同様の機能を設けることで、他のサーバやクライアントとの通信における障害時に、障害箇所を絞り込むことができる。
【0082】
(信号種別)
上記実施例で例示した信号種別、MsgID、タイマ値、ポート番号等はあくまで例示であり、上記実施例に限定されるものではなく、管理者等が任意に設定することができる。また、設定内容をポート設定テーブルに格納することで、上記実施例と同様の処理を実行することができる。また、上記実施例では、メッセージや信号といった表現で説明したが、これらに限定されるものではなく、パケットやフレームなど装置間でやり取りされる様々なデータに適用することができる。
【0083】
(復旧制御)
上記実施例では、復旧制御として再起動やリセットを実行する例を説明したが、これに限定されるものではない。例えば、FBカード10は、自カードの上位装置にあたる管理装置2に対して、障害発生を報告してもよい。この際、FBカード10は、特定した障害箇所や機能等を通知することもできる。他には、FBカード10は、フロントサイドに接続されるディスプレイ等に障害内容を表示させてもよく、管理者等にメール等で通知することもできる。
【0084】
(システム)
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0085】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、確認管理部24が、障害検出部25、比較部26、特定部27が実行する各処理を実行するなどしてもよい。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0086】
(プログラム)
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。
【0087】
図12は、障害特定プログラムを実行するコンピュータのハードウェア構成の例を示す図である。図12に示すように、コンピュータ100は、CPU102、入力装置103、出力装置104、通信インタフェース105、媒体読取装置106、HDD(Hard Disk Drive)107、RAM(Random Access Memory)108を有する。また、図12に示した各部は、バス101で相互に接続される。
【0088】
入力装置103は、マウスやキーボードであり、出力装置104は、ディスプレイなどであり、通信インタフェース105は、NICなどのインタフェースである。HDD107は、障害特定プログラム107aとともに、図4から図6に示した各テーブル等を記憶する。記録媒体の例としてHDD107を例に挙げたが、ROM(Read Only Memory)、RAM、CD−ROM等の他のコンピュータ読み取り可能な記録媒体に各種プログラムを格納しておき、コンピュータに読み取らせることとしてもよい。なお、記録媒体を遠隔地に配置し、コンピュータが、その記憶媒体にアクセスすることでプログラムを取得して利用してもよい。また、その際、取得したプログラムをそのコンピュータ自身の記録媒体に格納して用いてもよい。
【0089】
CPU102は、障害特定プログラム107aを読み出してRAM108に展開することで、図3等で説明した各機能を実行する障害特定プロセス108aを動作させる。すなわち、障害特定プロセス108aは、図3に記載した送受信処理部21と計数部22と信号種別判定部23と確認管理部24と障害検出部25と比較部26と特定部27と復旧制御部28と同様の機能を実行する。このようにコンピュータ100は、プログラムを読み出して実行することで障害特定方法を実行する情報処理装置として動作する。
【0090】
また、コンピュータ100は、媒体読取装置106によって記録媒体から障害特定プログラムを読み出し、読み出された障害特定プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、コンピュータ100によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【符号の説明】
【0091】
1 制御装置
2 管理装置
3 シャーシ
5 SWカード
10、30 FBカード
10a、10d コネクタ
10b、10c、10e PHY
11 FPGA
11a、11b MAC
11c スイッチ
12 ネットワークプロセッサ
13 メモリ
14 メモリコントローラ
15 CPU
20a 信号種別テーブル
20b 通過数テーブル
20c ポート設定テーブル
21 送受信処理部
22 計数部
23 信号種別判定部
24 確認管理部
25 障害検出部
26 比較部
27 特定部
28 復旧制御部

【特許請求の範囲】
【請求項1】
通信の障害を検出する検出部と、
装置の内部に設けられた、各処理を実行する処理部位ごとに、前記処理部位を通過したメッセージの数を計数する計数部と、
前記検出部によって障害が検出された場合に、前記計数部によって計数された各処理部位のメッセージの数を比較する比較部と、
前記比較部が比較した結果において、各処理部位を通過したメッセージの数に差異が生じている場合に、前記装置の内部を障害箇所と特定し、前記メッセージの数に差異が生じていない場合に、前記装置の外部を障害箇所と特定する特定部と
を有することを特徴とする通信装置。
【請求項2】
前記検出部は、前記装置に接続される接続先の装置に送信したメッセージの信号種別に対応する所定時間内に、前記接続先の装置から前記メッセージに対する応答を受信しなかった場合、または、前記接続先の装置から前記メッセージの再送要求を受信した場合に、前記通信の障害が発生したと検出することを特徴とする請求項1に記載の通信装置。
【請求項3】
前記比較部は、定期的に前記処理部位ごとのメッセージの数を比較し、
前記特定部は、前記各処理部位を通過したメッセージの数に差異が生じている比較結果が得られた場合に、前記装置の内部を障害箇所と特定することを特徴とする請求項1に記載の通信装置。
【請求項4】
前記特定部は、前記装置の内部を障害箇所と特定した場合、前記装置の内部の結線情報または前記メッセージの送受信経路を用いて、前記障害の要因となった処理部位を特定することを特徴とする請求項1に記載の通信装置。
【請求項5】
前記特定部によって特定された前記障害の要因となった処理部位、または、前記装置に接続される接続先の装置に対して、復旧制御を実行する復旧制御部をさらに有することを特徴とする請求項4に記載の通信装置。
【請求項6】
コンピュータが、
通信の障害を検出し、
前記コンピュータの内部に設けられた、各処理を実行する処理部位ごとに、前記処理部位を通過したメッセージの数を計数し、
障害を検出した場合に、計数した各処理部位のメッセージの数を比較し、
比較した結果において、各処理部位を通過したメッセージの数に差異が生じている場合に、前記コンピュータの内部を障害箇所と特定し、前記メッセージの数に差異が生じていない場合に、前記コンピュータの外部を障害箇所と特定する
処理を含んだことを特徴とする障害検出方法。
【請求項7】
コンピュータに、
通信の障害を検出し、
前記コンピュータの内部に設けられた、各処理を実行する処理部位ごとに、前記処理部位を通過したメッセージの数を計数し、
障害を検出した場合に、計数した各処理部位のメッセージの数を比較し、
比較した結果において、各処理部位を通過したメッセージの数に差異が生じている場合に、前記コンピュータの内部を障害箇所と特定し、前記メッセージの数に差異が生じていない場合に、前記コンピュータの外部を障害箇所と特定する
処理を実行させることを特徴とする障害検出プログラム。

【図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

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2013−102308(P2013−102308A)
【公開日】平成25年5月23日(2013.5.23)
【国際特許分類】
【出願番号】特願2011−244025(P2011−244025)
【出願日】平成23年11月7日(2011.11.7)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】