JP2021120827A5 - - Google Patents

Download PDF

Info

Publication number
JP2021120827A5
JP2021120827A5 JP2020014243A JP2020014243A JP2021120827A5 JP 2021120827 A5 JP2021120827 A5 JP 2021120827A5 JP 2020014243 A JP2020014243 A JP 2020014243A JP 2020014243 A JP2020014243 A JP 2020014243A JP 2021120827 A5 JP2021120827 A5 JP 2021120827A5
Authority
JP
Japan
Prior art keywords
processing device
survival
lan
processing
pair
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020014243A
Other languages
English (en)
Other versions
JP7328907B2 (ja
JP2021120827A (ja
Filing date
Publication date
Application filed filed Critical
Priority to JP2020014243A priority Critical patent/JP7328907B2/ja
Priority claimed from JP2020014243A external-priority patent/JP7328907B2/ja
Priority to TW109146413A priority patent/TWI784379B/zh
Priority to US17/137,091 priority patent/US11349705B2/en
Publication of JP2021120827A publication Critical patent/JP2021120827A/ja
Publication of JP2021120827A5 publication Critical patent/JP2021120827A5/ja
Application granted granted Critical
Publication of JP7328907B2 publication Critical patent/JP7328907B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、多重系システムの制御システム、制御方法に関する。
従来、多重系システムを構成する装置間、および経路の生存状態を監視し、異常検出時に縮退や系切り替えを行う技術がある。例えば、特許文献1では、複数の経路からの生存通知を基に障害部位を判定し、部位に応じて停止対象を決定している。
WO2018/037535号公報
特許文献1では、施設間を複数の経路で生存監視し、各施設が管理する生存情報を寄せ集め、ネットワーク障害と施設障害を区別して障害検出し、障害箇所に応じて適切な施設を停止させている。しかしながら、当該技術はクラウド環境を前提としており、短時間で経路と装置の障害を誤認識なく検出する方法については言及されていない。
本発明の一側面は、短時間で経路と装置の障害を誤認識なく検出することが可能な制御システム、制御方法を提供することを目的とする。
本発明の一態様にかかる制御システムは、多重系システムの制御システムであって、前記多重系システムは、ペアを構成する1対の処理装置を有した第1の系と、前記第1の系とは異なる処理装置であってペアを構成する1対の処理装置を有した第2の系とを有し、前記第1の系の1対の処理装置を直結する第1のペア間LAN、および前記第2の系の1対の処理装置を直結する第2のペア間LANと、前記第1の系の1対の処理装置のうちの一方の処理装置と前記第2の系の1対の処理装置のうちの一方の処理装置とを直結する第1の系間LAN、および前記第1の系の1対の処理装置のうちの他方の処理装置と前記第2の系の1対の処理装置のうちの他方の処理装置とを直結する第2の系間LANと、前記多重系システムに対して内部側に設けられた計算ノードからの処理結果を受信して所定の処理を行うために接続された内部LANであって、前記第1の系および前記第2の系の1対の処理装置のそれぞれを接続する前記内部LANと、前記計算ノードからの処理結果を、前記多重系システムに対して外部側に設けられた所定の端末に送信するために接続された外部LANであって、前記第1の系および前記第2の系の1対の処理装置のそれぞれを接続する前記外部LANと、を備え、前記第1の系および前記第2の系の各処理装置は、各処理装置を生存確認するための装置タイムアウトと、当該装置タイムアウトよりも長く設定された各LANを生存確認するための経路タイムアウトとに基づいて、前記各処理装置または前記各LANの障害を監視する生存監視部、を備えることを特徴とする制御システムとして構成される。
本発明の一態様によれば、短時間で経路と装置の障害を誤認識なく検出することができる。
代表的な多重系システムの構成図である。 図1における装置のハードウェア構成図である。 図1における装置のソフトウェア構成図である。 生存情報テーブルの一例を示す図である。 各LAN経由で送受信する生存情報を示す図である。 生存監視部の処理のフロー図である。 生存情報受信部の処理のフロー図である。 障害部位と障害時にとるアクションの関係を示す表の一例を示す図である。 リンクダウンによる電源断判定処理のフロー図である。 生存監視における生存情報テーブルの他の一例を示す図である。 生存監視部の処理の他のフロー図である。
以下、図面を参照して本発明の実施形態を説明する。以下の記載および図面は、本発明を説明するための例示であって、説明の明確化のため、適宜、省略および簡略化がなされている。本発明は、他の種々の形態でも実施する事が可能である。特に限定しない限り、各構成要素は単数でも複数でも構わない。
図面において示す各構成要素の位置、大きさ、形状、範囲などは、発明の理解を容易にするため、実際の位置、大きさ、形状、範囲などを表していない場合がある。このため、本発明は、必ずしも、図面に開示された位置、大きさ、形状、範囲などに限定されない。
以下の説明では、「テーブル」、「リスト」等の表現にて各種情報を説明することがあるが、各種情報は、これら以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために「XXテーブル」、「XXリスト」等を「XX情報」と呼ぶことがある。識別情報について説明する際に、「識別情報」、「識別子」、「名」、「ID」、「番号」等の表現を用いた場合、これらについてはお互いに置換が可能である。
同一あるいは同様な機能を有する構成要素が複数ある場合には、同一の符号に異なる添字を付して説明する場合がある。ただし、これらの複数の構成要素を区別する必要がない場合には、添字を省略して説明する場合がある。
また、以下の説明では、プログラムを実行して行う処理を説明する場合があるが、プログラムは、プロセッサ(例えばCPU(Central Processing Unit)、GPU(Graphics Processing Unit))によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)および/またはインターフェースデバイス(例えば通信ポート)等を用いながら行うため、処理の主体がプロセッサとされてもよい。同様に、プログラムを実行して行う処理の主体が、プロセッサを有するコントローラ、装置、システム、計算機、ノードであってもよい。プログラムを実行して行う処理の主体は、演算部であれば良く、特定の処理を行う専用回路(例えばFPGA(Field-Programmable Gate Array)やASIC(Application Specific Integrated Circuit))を含んでいてもよい。
プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバまたは計算機が読み取り可能な記憶メディアであってもよい。プログラムソースがプログラム配布サーバの場合、プログラム配布サーバはプロセッサと配布対象のプログラムを記憶する記憶資源を含み、プログラム配布サーバのプロセッサが配布対象のプログラムを他の計算機に配布してもよい。また、以下の説明において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
図1は、本実施例における多重系システムの制御システム1000の例を示す図である。図1に示すように、制御システム1000は、2系統に多重化されたシステムである主系システム100と従系システム110とを有している。以下では、4台の処理装置により制御システム1000が構成される場合を例示しているが、これに限定されず、より多くの台数の処理装置を有したシステムとして構成されてもよい。
主系システム100は、1対のペアを構成する処理装置101と処理装置102とを有し、両者を接続するペア間LAN(Local Area Network)103により接続され、これらの装置に電源を供給する電源系統107を有している。また、処理装置101および処理装置102のそれぞれは、制御システム1000に対して内部側のネットワークである内部LAN104に接続される。処理装置101および処理装置102のそれぞれは、内部LAN104に接続される多重化された計算ノードNから処理結果を受信し、受信したそれぞれの処理結果に対して多数決処理を行う。処理装置101および処理装置102のそれぞれは、多数決処理の結果を、ペアを組む装置間で互いに交換し、交換した多数決処理の結果と、自装置で行った多数決処理の結果とを照合する。そして、両者の間に不整合がなければ、マジョリティとなった計算ノードNからの処理結果を、制御システム1000に対して外部側に接続されたネットワークである外部LAN105を介して、外部装置である端末Tに送信する。
ペア間LAN103は、多数決処理の結果の交換、およびペアを構成する処理装置の強制停止に用いられる。系間LAN106は、他系の生存監視、強制停止、および電源断の検出に用いられる。強制停止は、一般的には、BMC(Baseboard Management Controller)を用いる方法や、特開2007-58708号公報に記載されているようなLXP(系切換え制御)を用いる方法がある。強制停止には、NMI(Non-Maskable Interrupt)の入力によるメモリダンプ採取や、ハードウェアリセット入力があり、特に前者は障害原因解析に必要な情報を残すことができるため有用である。
ペア間LAN103、系間LAN106は直結LANのため、通信負荷をかけても他のネットワークに影響を与えず、また、障害点が少ないため、比較的信頼性が高い構成となっている。以下に説明するように、ペア間で多数決処理の結果を照合するという特性上、障害時の縮退や系切り替えはペア単位で行う。例えば、処理装置102が自装置の障害を検出すれば、当該処理装置102と、そのペア装置である処理装置101とを停止させる。このとき、停止させた装置は主系100の装置であるため、従系110を新たな主系に遷移させる。同様の理由で、電源系統についても二重化され、主系システム100では、電源系統107を有している。以下では、各システムに1つの電源系統が設けられている前提で説明しているが、各装置に電源系統を設けてもよい。
系間LAN106は、他系のうち片方の処理装置(例えば、主系システム100の処理装置101と、従系システム110の処理装置111)との間でしか接続されていないが、縮退は必ずペアで行うというルール上、自装置が正常であればペアとなる処理装置も正常といえる。したがって、系内の各処理装置のそれぞれが、系間LAN106あるいは系間LAN116を用いて強制停止を行えば、ペアとなる他系の処理装置のそれぞれを停止させることができる。なお、図1では、内部LAN104、外部LAN105は、それぞれ一本ずつのネットワークとして構成されているが、多重化した構成としてもよい。
図2は、各処理装置のハードウェア構成の例を示す図である。図2に示すように、各処理装置は、PC(Personal Computer)やサーバといった、ハードウェアとしては一般的な情報処理装置から構成され、CPU201と、メモリ202と、記憶装置203と、通信装置204と、タイマ装置205とを有し、これらがバス206を介して接続されている。
CPU201は、ハードウェアとしては一般的なプロセッサであり、主として、メモリ202からプログラムを読み出して実行することにより、本システムにおける各種機能を実現する。
メモリ202は、ハードウェアとしては一般的な記憶媒体であり、主として、CPU201で実行されるプログラムや、プログラムの実行に必要な各種データを記憶する。
記憶装置203は、ハードウェアとしては一般的なディスクであり、主として、上記プログラムが実行して出力されるデータや、上記プログラムの入力となるデータをはじめ、本システムで用いられる各種データを記憶する。
通信装置204は、ハードウェアとしては一般的な通信機器であり、主として、ペア間LAN103、内部LAN104、外部LAN105、系間LAN106を介した処理装置との間で各種データを送受信する。
タイマ装置205は、ハードウェアとしては一般的なタイマであり、主として、処理装置の生存時刻やタイムアウトをカウントする。
図3は、各処理装置の機能的な構成例を示す図である。図3に示すように、各処理装置は、機能的には、生存監視部301と、生存情報受信部302と、障害検出部303と、多重系制御部304とを有して構成されている。
生存監視部301は、自装置や監視対象となる処理装置およびLANの生存を監視する処理部である。生存監視部301が行う具体的な処理については、図6を用いて後述する。
生存情報受信部302は、監視対象となる処理装置およびLANから生存情報を受信する処理部である。生存情報受信部302が行う具体的な処理については、図7を用いて後述する。
障害検出部303は、自装置のハードウェア障害、ソフトウェア障害を検出する処理部である。具体的には後述するが、処理装置の動作が継続不可能な障害が検出された場合、自系ペアを停止させる。
多重系制御部304は、障害部位に応じたアクションを実行する処理部である。自装置に障害が発生して停止させる際、当該自装置とペアとなる処理装置を停止させたり、障害が発生した処理装置が従系に属する処理装置である場合に、当該従系を主系に切り替える。多重系制御部304が行う具体的な処理については、図8を用いて後述する。
各処理装置が有する上記各部の機能は、例えば、CPU201が、メモリ202を構成するROM(Read Only Memory)からプログラムを読み出し、メモリ202を構成するRAM(Random access memory)に対して読み書きして処理を実行することにより実現される。上記プログラムは、USB(Universal Serial Bus)メモリ等の記憶媒体から読み出されたり、ネットワークを介した他のコンピュータからダウンロードする等して提供されてもよい。
図4は、各処理装置の記憶装置に記憶される生存情報テーブル401の例を示す図である。生存情報テーブル401は、監視対象となる各処理装置およびLANが生存していると判定するための条件を定めたテーブルである。図4では、一例として、処理装置101に記憶される生存情報テーブル401を示しているが、本システムを構成するすべての処理装置およびLANについて、同様に記憶される。
図4に示すように、生存情報テーブル401は、監視対象と、監視対象が生存していると判定するための時間的なカウント値である生存時刻と、監視対象を監視する周期を定めた監視周期と、監視対象に障害が発生したと判定するための閾値であるタイムアウトカウンタとが対応付けて記憶されている。図4では、例えば、自装置である処理装置101の生存時刻である現在のカウンタ値が「10」であることを示している。当該カウンタ値は、生存監視部301によりカウントされる。
また、処理装置101とペアとなる処理装置102については、当該処理装置102と、処理装置102と処理装置101との間のペア間LAN103、内部LAN104、外部LAN105のそれぞれについて、生存時刻である現在のカウンタ値が、それぞれ「8」、「8」、「5」、「5」であることを示している。さらに、これらの装置やLANを監視する周期は、それぞれ、「2」、「2」、「5」、「10」であることを示している。
後述するように、生存監視部301は、生存時刻を示すカウント値を1ずつカウントアップし、カウントアップした新たな生存時刻を含む生存情報を、自装置が生存している証として、所定の監視周期ごとに監視対象に送信する。例えば、自装置101は監視対象の装置102のペア間LAN103に対し、自装置101の生存時刻が「10」、「12」、「14」、・・・となるとき、当該生存時刻を含む生存情報を送信する。同様に内部LAN104に対しては、生存時刻が「10」、「15」、「20」、・・・となるとき、生存情報を送信する。
さらに、これらの装置やLANを監視するタイムアウトカウンタは、初期値が、それぞれ、「14」、「20」、「40」、「80」であり、現在値が、それぞれ、「12」、「18」、「35」、「75」であることを示している。後述するように、生存情報受信部302は、監視対象の処理装置またはLANについて新しい生存時刻の生存情報を受信したとき、対応するタイムアウトカウンタを初期値にリセットする。一方、生存監視部301は、監視対象のタイムアウトカウンタが「0」でないと判定された場合に、そのタイムアウトカウンタを「1」ずつカウントダウンする。つまり、生存監視部301は、最新の値に更新された新たな生存時刻を含む生存情報が受信されない場合には、時間が経過するほどタイムアウトカウンタの値を減じる。そして、その値が「0」に達すると、監視対象に障害が発生したとみなし、多重系制御部304により障害部位に応じたアクションが行われる。
なお、生存時刻は、タイマ装置205がモノトニックな時計であれば、実時間でも仮想的な時刻(例えば、一定周期で増えるカウンタ)であってもよい。また、後述するように、生存監視部301は、自装置の「生存時刻」を監視周期で随時更新し、更新した「生存時刻」を図5に示す生存情報に格納し、格納した生存情報を、各LANを介して他の処理装置に送信する。
図5は、各処理装置の記憶装置に記憶される生存情報501の例を示す図である。図5に示すように、生存情報501には、当該生存情報の送信元となる処理装置と、生存時刻である現在のカウンタ値とが対応付けて記憶されている。図5では、一例として、処理装置101が送信する生存情報501を示しているが、本システムを構成するすべての処理装置についても同様に送信される。
図5では、例えば、送信元である処理装置101と、当該処理装置101の生存情報テーブル401に記憶されている現時点の生存時刻「10」が記憶され、他の処理装置に送信される。
なお、図4に示した生存情報テーブル401において、監視対象となる外部LANについては、生存を監視するための通信によるネットワーク負荷の影響を抑えるため、監視周期を長めに設定することができる。また、生存情報テーブル401の各タイムアウトカウンタの値については、ペアとなる処理装置のタイムアウトカウンタの値よりも、ペアとなる処理装置と接続する各LANのタイムアウトカウンタの値を大きく設定し、他系の処理装置のタイムアウトカウンタの値よりも、他系の処理装置と接続する各LANのタイムアウトカウンタの値を大きく設定することで、LAN障害を装置障害と誤認識することを回避する。これにより、LAN障害か装置障害かに応じて適切なアクションをとることを可能とする。また、ペアとなる処理のタイムアウトカウンタの値よりも、他系の処理装置のタイムアウトカウンタの値を大きく設定し、ペア単位での障害検出と縮退および系の切り替え処理を優先する。後述するように、他系に属する処理装置の生存を監視するためのタイムアウトは、他系ペアを構成する各処理装置の強制停止を伴う。強制停止されると各種ログの保存など、障害解析に必要な情報を失う場合があり、このような状況を極力回避するため、ペア単位での縮退を優先する。このような制御により、少なくとも縮退ペアのうち正常な片方の装置については問題なくログの保存が可能である。
図6は、各処理装置の生存監視部301が行う生存監視処理の処理手順を示すフローチャートである。図6に示すように、生存監視部301は、自装置のタイマ装置205がカウントアップ(例えば、+1)した生存時刻を読み取り(S601)、S602~S608の各ステップを、監視対象となるそれぞれについて実行する。
生存監視部301は、S601でカウントアップした自装置の生存時刻が監視対象の監視周期の倍数となったか否かを判定する(S603)。例えば、図4に示した生存情報テーブル401において、処理装置101の生存時刻が「10」にカウントアップされた場合、監視対象となる処理装置102の監視周期「2」の倍数(5倍)になっていると判定する。
生存監視部301は、S601でカウントアップした自装置の生存時刻が監視対象の監視周期の倍数となったと判定した場合(S603;Yes)、監視対象に、カウントアップした自装置の生存情報(図5)を送信する(S604)。一方、生存監視部301は、S601でカウントアップした自装置の生存時刻が監視対象の監視周期の倍数となっていないと判定した場合(S603;No)、何もせずにS605に進む。
さらに、生存監視部301は、生存情報テーブル401に記憶された監視対象のタイムアウトカウンタの現在値が0であるか否かを判定する(S605)。生存監視部301は、生存情報テーブル401に記憶された監視対象のタイムアウトカウンタの現在値が0であると判定した場合(S605;Yes)、監視対象のタイムアウトを検出したと判断し、当該監視対象のタイムアウト処理(図8)を実行する(S606)。タイムアウト処理が実行されると、系の切り替えが行われる。
一方、生存監視部301は、生存情報テーブル401に記憶された監視対象のタイムアウトカウンタの現在値が0でないと判定した場合(S605;No)、監視対象のタイムアウトカウンタの値を、現在値からカウントダウン(例えば、-1)する(S607)。
生存監視部301は、各監視対象についてS602~S608の処理を実行すると、単位時刻となる次の生存時刻までの間、スリープ(ウェイト)する(S609)。S609の処理が終了すると、S601に戻り、以降の処理を繰り返し行う。
図7は、各処理装置の生存情報受信部302が行う生存情報受信処理の処理手順を示すフローチャートである。図7に示すように、生存情報受信部302は、受信した生存情報をもとに、監視対象となる処理装置およびLANに対応する生存情報テーブル401に記憶されたレコードを取得する(S701)。
生存情報受信部302は、取得したレコードに含まれる監視対象について、受信した生存情報に含まれる処理装置の生存時刻が生存情報テーブル401に記憶されている生存時刻より新しいか否かを判定し(S702)、受信した生存情報に含まれる処理装置の生存時刻が生存情報テーブル401に記憶されている生存時刻より新しいと判定した場合(S702;Yes)、監視対象に対応する処理装置のタイムアウトカウンタの現在値を初期値にセットするとともに、生存情報テーブル401に記憶されている当該監視対象の生存時刻を、受信した生存情報に含まれる生存時刻に更新する(S703)。一方、生存情報受信部302は、受信した生存情報に含まれる処理装置の生存時刻が生存情報テーブル401に記憶されている生存時刻より新しくないと判定した場合(S702;No)、何もせずにS704に進む。
さらに、生存情報受信部302は、取得したレコードに含まれる監視対象について、受信した生存情報に含まれる経路(LAN)の生存時刻が生存情報テーブル401に記憶されている生存時刻より新しいか否かを判定し(S704)、受信した生存情報に含まれるLANの生存時刻が生存情報テーブル401に記憶されている生存時刻より新しいと判定した場合(S704;Yes)、監視対象に対応するLANのタイムアウトカウンタの現在値を初期値にセットするとともに、生存情報テーブル401に記憶されている当該監視対象の生存時刻を、受信した生存情報に含まれる生存時刻に更新する(S705)。一方、生存情報受信部302は、受信した生存情報に含まれるLANの生存時刻が生存情報テーブル401に記憶されている生存時刻より新しくないと判定した場合(S704;No)、何もせずに本処理を終了する。
図8は、各処理装置の記憶装置に記憶される障害部位に応じたアクション判定表801の例を示す図である。図8に示すように、アクション判定表801は、障害部位と、当該部位の障害発生時に取るべきアクションとが対応付けて記憶されている。図8に示すLAN障害には、リンクダウン等で明示的に障害を検出した場合と、生存監視タイムアウトにより検出した場合の双方を含む。また、各LAN障害発生時のアクションは、LANの用途により異なるため、図8ではその一例を示している。
自装置である処理装置の多重系制御部304は、当該自装置の障害検出部303が自装置の障害部位を検出した場合、アクション判定表801の自装置レコード8011を参照し、障害部位である自装置に対応するアクションとして自系ペアを停止させる。例えば、自装置である処理装置101の障害検出部303が自装置の障害部位を検出した場合、当該処理装置101の多重系制御部304は、自系ペアを構成する処理装置102と処理装置101とを停止させる。
また、自装置である処理装置の多重系制御部304は、当該自装置とペアを構成する処理装置の障害部位を検出した場合、アクション判定表801のペア装置レコード8012を参照し、障害部位であるペア装置に対応するアクションとしてペア装置を強制停止させるとともに自装置を停止する。例えば、自装置である処理装置101の障害検出部303が、ペアとなる処理装置102のタイムアウトを検出した場合、当該処理装置101の多重系制御部304は、ペアとなる処理装置102を強制停止させ、自装置である処理装置101を自主停止させる。
また、自装置である処理装置の多重系制御部304は、当該自装置とペアを構成する処理装置との間のペア間LANの障害部位を検出した場合、アクション判定表801のペア装置レコード8012を参照し、障害部位であるペア間LANに対応するアクションとして自装置およびペアとなる処理装置を停止させる。例えば、自装置である処理装置101の障害検出部303またはペアとなる処理装置である処理装置102の障害検出部303が、両者間のペア間LAN103の障害を検出した場合、当該処理装置101およびペアとなる処理装置102の多重系制御部304は、それぞれ自装置を自主停止させる。
また、自装置である処理装置の多重系制御部304は、当該自装置とペアを構成する処理装置との間の内部LAN、外部LANの障害部位を検出した場合にも、上述したペア間LANに対応するアクションと同様に、自装置およびペアとなる処理装置を停止させる。
さらに、自装置である処理装置の多重系制御部304は、当該自装置とペアを構成する処理装置を含む系以外の系である他系の処理装置の障害部位を検出した場合、アクション判定表801の他系装置レコード8013を参照し、障害部位である他系装置に対応するアクションとして他系のペア装置を強制停止させる。例えば、従系の処理装置111または当該処理装置111とペアとなる処理装置112の障害検出部303が、主系のペアを構成する処理装置のうちの処理装置101のタイムアウトを検出した場合、従系の処理装置111の多重系制御部304は、主系の処理装置101を強制停止させる一方、従系の処理装置112の多重系制御部304は、主系の処理装置102を強制停止させる。
また、自装置である処理装置の多重系制御部304は、上記他系の処理装置との間の系間LANの障害部位を検出した場合、アクション判定表801の他系装置レコード8013を参照する。しかし、当該レコードには何も対処しないことを示す「-」が記憶されているため、当該障害に対する対処を行わない。例えば、系間LAN106で断線が発生し、主系の処理装置101と従系の処理装置111のいずれかの障害検出部303がリンクダウンを検出した場合、直ちに縮退や系の切り替えは行わない。その理由は、主系の処理装置101の生存監視部301が、従系の処理装置111の生存監視タイムアウトを検出した場合、上記断線に伴って主系の処理装置101から従系の処理装置111の強制停止が不可であり、例えば、系の切り替えをした場合には両系が主系となるリスクが生じうる。
このため、上記リンクダウンが検出された場合には、そのようなリスクを避けるため、主系の処理装置101の多重系制御部304は、自装置を自主停止させる。
この場合、従系ペアの片方の処理装置(例えば、処理装置112)が生存していれば、図4に示した生存情報テーブル401の設定により、上記片方の処理装置が先にペアとなる処理装置(例えば、処理装置111)の生存監視タイムアウトを検出し、ペア間LAN(例えば、ペア間LAN113)による強制停止を行う。したがって、上述した両系が主系となるリスクを避けるための自主停止が起こる確率は十分低いといえる。
また、自装置である処理装置の多重系制御部304は、上記他系の処理装置との間の内部LANの障害部位を検出した場合、アクション判定表801の他系装置レコード8013を参照し、障害部位である内部LANに対応するアクションとして他系のペア装置を強制停止または自主停止させる。例えば、主系の処理装置101の生存監視部301が、従系の処理装置111との間の内部LAN104の生存監視タイムアウトを検出した場合、従系のペア装置に任意のLAN経由(例えば、外部LAN105経由)で停止要求を出力し、当該停止要求に従って、従系のペアを構成する処理装置111および処理装置112を自主停止させる。あるいは、従系の処理装置111が主系の処理装置101との間の内部LAN104の生存監視タイムアウトを検出した場合、従系の処理装置111がペアを構成する処理装置112に対して停止要求を出すとともに、自装置を自主停止させる。
なお、自装置である処理装置の多重系制御部304は、上記他系の処理装置との間の外部LANの障害部位を検出した場合、アクション判定表801の他系装置レコード8013を参照する。しかし、当該レコードには何も対処しないことを示す「-」が記憶されているため、当該障害に対する対処を行わないが、上記内部LANの場合と同様の対処を行ってもよい。
このように、本システムでは、内部LANを用いて各処理装置の生存情報を互いに送受信することで、系切り替え時の処理の継続を可能にしているため、内部LANの障害時には、縮退/系切り替えの対象としている。また、系間LAN障害の場合、どちらの系も正常動作可能であるが、影響の少ない従系を停止させるようにしている。また、外部LANのように、各処理装置の動作に直接影響のないLAN障害については、縮退/系切り替えを実施しないように制御している。
なお、図8に示したアクション判定表801では、各LANは一本ずつである前提で説明しているが、それぞれのLANを多重化してもよい。例えば、内部LAN104が二重化されている場合、そのうち1系統のLANのみ障害が検出された場合でも、他の1系統のLANを用いることができるためアクションはとる必要はない。2系統のLANのいずれもが障害検出された場合に、図8に示したようなアクションをとればよい。
また、ペアとなる処理装置や他系の処理装置が自装置の障害を検出し、自主的に機能停止した場合、機能停止した旨を各LAN経由で通知する一方、ペアとなる処理装置や他系の処理装置の生存監視タイムアウトが検出された場合にはそのような通知がなく、無応答となる。この場合、完全に停止しているのか、一部の機能がまだ有効であるのか不明であるため、両系が主系となるスプリットブレインなどの誤動作を避けるため、図8に示したように強制停止してから系切り替えを行う。これとは逆に、自主的な機能停止の通知を受信している場合は、強制停止はしないように制御している。その理由は、強制停止をした場合にはOSまで停止してしまい、障害原因究明のための情報収集が難しくなる虞があるためである。
なお、任意のLAN経由で対象となる処理装置に停止要求を送信し、当該処理装置から機能を停止した旨の通知を受信するまで強制停止することを待ってもよい。これにより、無用な強制停止を回避できる場合がある。この場合には、上記対象となる処理装置が停止要求を受理できない状態であれば、上記機能を停止した旨の通知の受信待ち時間がタイムアウトしてから強制停止することになり、系切り替えまでの時間が延びるため、そのような状況が許容される場合には、当該制御を行ってもよい。
図9は、各処理装置の障害検出部303が系間LANのリンクダウンを検出して多重系制御部304が系を切り替えるリンクダウン検出処理の処理手順を示すフローチャートである。一般に、リンクダウンの検出には、数百msの時間がかかる。ここでは、他系の処理装置の生存監視タイムアウトよりリンクダウン検出時間は十分短いという前提のもと、早期に他系の処理装置の電源断を検出し、系切り替えを実施するものである。
図9に示すように、各処理装置の多重系制御部304は、障害検出部303により系間LANのリンクダウンが検出された時間の間、生存情報受信部302が他系の処理装置から生存情報を受信しているか否かを判定する(S901)。例えば、主系の処理装置101の多重系制御部304は、障害検出部303により系間LAN106のリンクダウンが検出された場合、当該リンクダウンが検出されている時間の間、生存情報受信部302が他系の処理装置111の生存情報を、系間LAN106以外の内部LAN104や外部LAN105を介して受信しているか否かを判定する。
そして、各処理装置の多重系制御部304は、障害検出部303により系間LANのリンクダウンが検出された時間の間、生存情報受信部302が他系の処理装置から生存情報を受信していると判定した場合(S901;Yes)、他のLANを介して生存情報を受信しているため、他系の処理装置の電源断であるとの判断を見送り(S903)、処理を終了する。例えば、主系の処理装置101の多重系制御部304は、障害検出部303により系間LAN106のリンクダウンが検出されている時間の間、生存情報受信部302が他系の処理装置111の生存情報を、内部LAN104や外部LAN105を介して受信していると判定した場合、当該処理装置111は生存しているため、電源断の判断を見送る。
一方、各処理装置の多重系制御部304は、障害検出部303により系間LANのリンクダウンが検出された時間の間、生存情報受信部302が他系の処理装置から生存情報を受信していないと判定した場合(S901;No)、当該他系の処理装置が電源断の状態であると判断し、系の切り替えを行い(S902)、処理を終了する。
なお、系間LANが複数ある場合や周期的にリンクダウンを検出された場合には、系間LANのリンクダウンが検出された時間のうち最も長い時間を基準として、生存情報受信部302が他系の処理装置から生存情報を受信しているか否かを判定することで、他系の処理装置の電源断の誤検出をより低下させることができる。つまり、リンクダウンが最も長い時間を基準として、その時間内に1つでも生存情報が受信できていれば、当該系間LANの接続先となる系の電源断ではないと判断することができるため、リンクダウンが短い時間を基準とした場合に比べて、精度よく電源断を検出することができる。
また、S903において他系の処理装置の電源断であるとの判断を見送った場合には、所定の期間経過後に再度本処理を実行し、当該装置の電源断が生じていないかをチェックしてもよい。実際に電源断が生じている場合には、いずれS901の「条件」(S901;No)が成立し、電源断と判断される一方、単なる系間LANの障害であれば、いずれ系間LANの生存監視タイムアウトを生存監視部301が検出するためである。上述の通り、他系の処理装置が電源断であると判定された場合、他系の処理装置の生存監視タイムアウトや強制停止を待たずに、S902において系の切り替えが可能となる。これにより、系の切り替え時間を短縮することができる。なお、図9では、リンクダウンが検出された場合を例示したが、これ以外にも、PoE(Power over Ether)により電源供給断を検出する場合も同様に適用することができる。
このように、多重系システムの制御システム1000において、多重系システムは、ペアを構成する1対の処理装置(例えば、処理装置101、処理装置102)を有した第1の系(例えば、主系システム100)と、第1の系とは異なる処理装置であってペアを構成する1対の処理装置(例えば、処理装置111、処理装置112)を有した第2の系(例えば、従系システム110)とを有し、第1の系の1対の処理装置を直結する第1のペア間LAN(例えば、ペア間LAN103)、および第2の系の1対の処理装置を直結する第2のペア間LAN(例えば、ペア間LAN113)と、第1の系の1対の処理装置のうちの一方の処理装置(例えば、処理装置101)と第2の系の1対の処理装置のうちの一方の処理装置(例えば、処理装置111)とを直結する第1の系間LAN(例えば、系間LAN106)、および第1の系の1対の処理装置のうちの他方の処理装置(例えば、処理装置102)と第2の系の1対の処理装置のうちの他方の処理装置(例えば、処理装置112)とを直結する第2の系間LAN(例えば、系間LAN116)と、多重系システムに対して内部側に設けられた計算ノード(例えば、計算ノードN)からの処理結果を受信して所定の処理(例えば、多数決処理)を行うために接続された内部LANであって、第1の系および第2の系の1対の処理装置のそれぞれを接続する内部LAN(例えば、内部LAN104)と、計算ノードからの処理結果を、多重系システムに対して外部側に設けられた所定の端末(例えば、端末T)に送信するために接続された外部LANであって、第1の系および第2の系の1対の処理装置のそれぞれを接続する外部LAN(例えば、外部LAN105)と、を備え、生存監視部301が、第1の系および第2の系の各処理装置は、各処理装置を生存確認するための装置タイムアウトと、当該装置タイムアウトよりも長く(値が大きく)設定された各LANを生存確認するための経路タイムアウトとに基づいて、各処理装置または各LANの障害を監視するので、短時間で経路と装置の障害を誤認識なく検出することができる。
また、第1の系および第2の系の各処理装置は、他の処理装置から、上記装置タイムアウトまたは上記経路タイムアウトを判定するための自装置の生存時刻を含む生存情報(例えば、生存情報501)を受信し、受信した当該生存情報に含まれる他の処理装置または各LANの生存時刻を最新の値に更新する生存情報受信部302を備え、生存監視部301が、自装置の生存時刻(例えば、生存情報テーブル401の生存時刻)を含む生存情報を、各LANを介して各処理装置に送信し、生存情報受信部302が受信した生存情報に含まれる他の処理装置または各LANの生存時刻が最新の値に更新されないことにより、障害の発生を判断するので、各処理装置は短時間かつ受動的に経路と装置の障害を誤認識なく検出することができる。
また、第1の系および第2の系における第1の系間LANで直結されたそれぞれの処理装置は、第1の系間LANのリンクダウンを検出する第1の障害検出部(例えば、障害検出部303)を備え、第1の系および第2の系における第2の系間LANで直結されたそれぞれの処理装置は、第2の系間LANのリンクダウンを検出する第2の障害検出部(例えば、障害検出部303)を備え、例えば、図9に示したように、多重系制御部304が、第1の障害検出部または第2の障害検出部によりリンクダウンが検出されている時間の間、生存情報受信部302が他系の処理装置の生存情報を、リンクダウンが検出されているLAN以外のLANを介して受信しているか否かを判定し、上記時間の間、上記生存情報を、リンクダウンが検出されているLAN以外のLANを介して受信していないと判定した場合、他系の処理装置が電源断の状態であると判断し、系を切り替えるので、電源断の誤検知を低下させることができる。
これまでの例では、リンクダウンを検出した場合に送信される生存情報は、リンクダウンを検出した時点で各処理装置が送信することとした。しかし、LANの通信状況によっては生存情報の送信タイミングや他のデータの通信が重なり、過大な負荷がかかる場合がある。そこで、以下では、LANにかかる負荷を考慮して生存情報を受信する例について説明する。
図10は、LANにかかる負荷を考慮した場合の生存情報テーブル1001の例を示す図である。図10に示すように、生存情報テーブル1001は、図4に示した生存情報テーブル401に対して、オフセットが追加されている。オフセットは、生存情報を異なるタイミングで送信するための時間差を示す情報である。例えば、リンクダウンの検出に300msかかり、生存情報を送信するパスとして5つのLANある場合を考える。この場合、リンクダウンの検出にかかる時間300msを5等分し、60msずつずらして、各処理装置から生存情報を送信する。すなわち、各LANの初回の生存情報の送信時刻はそれぞれ、0ms(オフセット0)、60ms(オフセット1)、120ms(オフセット2)、180ms(オフセット3)、240ms(オフセット4)となり、これ以降はLANごとの監視周期で生存情報が送信される。なお、本例では、リンクダウンの検出にかかる時間を均等に分ける場合を例示したが、各LANの通信状況に応じて案分してオフセットを定めてもよい。
図11は、図10で示した生存情報テーブル1001を用いて、各処理装置の生存監視部301が行う生存監視処理の処理手順を示すフローチャートである。図11では、生存情報を送信する際の判定ステップが図6とは異なるため、このステップについて説明し、他のステップは同一の符号を付してその説明を省略する。
S1101では、生存監視部301は、S601でカウントアップした自装置の生存時刻に上記オフセットを加えた値が監視対象の監視周期の倍数となったか否かを判定する(S1101)。生存監視部301は、S601でカウントアップした自装置の生存時刻に上記オフセットを加えた値が監視対象の監視周期の倍数となったと判定した場合(1101;Yes)、監視対象に、カウントアップした自装置の生存情報(図5)を送信する(S604)。一方、生存監視部301は、S601でカウントアップした自装置の生存時刻に上記オフセットを加えた値が監視対象の監視周期の倍数となっていないと判定した場合(S1101;No)、何もせずにS605に進む。
このように、生存監視部301が、自装置の生存時刻に生存情報を異なるタイミングで送信するための時間差を示すオフセットを加えた値に基づいて、生存情報を、各LANを介して各処理装置に送信するので、余計な通信負荷をかけることなく、系間LANの障害を他系の電源断と誤認識するリスクを低減する。すなわち、多少のパケットロストや送受信の遅延が発生した場合でも、系間LANのリンクダウン検出時間の間に任意のLANから生存情報を受信できる可能性を高めることができる。
1000 制御システム
101、102 処理装置(主系)
111、112 処理装置(従系)
103 ペア間LAN(主系)
113 ペア間LAN(従系)
107 電源系統(主系)
117 電源系統(従系)
104 内部LAN
105 外部LAN
106、107 系間LAN
301 生存監視部
302 生存情報受信部
303 障害検出部
304 多重系制御部
JP2020014243A 2020-01-31 2020-01-31 制御システム、制御方法 Active JP7328907B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2020014243A JP7328907B2 (ja) 2020-01-31 2020-01-31 制御システム、制御方法
TW109146413A TWI784379B (zh) 2020-01-31 2020-12-28 控制系統、控制方法
US17/137,091 US11349705B2 (en) 2020-01-31 2020-12-29 Control system and control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020014243A JP7328907B2 (ja) 2020-01-31 2020-01-31 制御システム、制御方法

Publications (3)

Publication Number Publication Date
JP2021120827A JP2021120827A (ja) 2021-08-19
JP2021120827A5 true JP2021120827A5 (ja) 2022-06-01
JP7328907B2 JP7328907B2 (ja) 2023-08-17

Family

ID=77062439

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020014243A Active JP7328907B2 (ja) 2020-01-31 2020-01-31 制御システム、制御方法

Country Status (3)

Country Link
US (1) US11349705B2 (ja)
JP (1) JP7328907B2 (ja)
TW (1) TWI784379B (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7328907B2 (ja) * 2020-01-31 2023-08-17 株式会社日立製作所 制御システム、制御方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5526358A (en) * 1994-08-19 1996-06-11 Peerlogic, Inc. Node management in scalable distributed computing enviroment
JPH10187638A (ja) * 1996-10-28 1998-07-21 Mitsubishi Electric Corp クラスタ制御システム
US6304546B1 (en) * 1996-12-19 2001-10-16 Cisco Technology, Inc. End-to-end bidirectional keep-alive using virtual circuits
JPH11353255A (ja) 1998-06-04 1999-12-24 Hitachi Ltd 異常部位検知方法
KR100694105B1 (ko) * 2005-04-25 2007-03-12 삼성전자주식회사 무선 메시 망에서 이동 스테이션 정보를 배포하는 방법 및장치
US20070273509A1 (en) * 2006-05-26 2007-11-29 Cooper Technologies Company System for controlling the operation of a lamp in multiple operational modes
JP5463738B2 (ja) * 2008-09-22 2014-04-09 沖電気工業株式会社 無線通信システム、アクセスポイント、コントローラ、ネットワーク管理装置及びアクセスポイントのネットワーク識別子設定方法
JP5503512B2 (ja) 2010-11-25 2014-05-28 株式会社日立製作所 計算機システムおよびその障害発生時制御方法
JP2012222656A (ja) * 2011-04-11 2012-11-12 Hitachi Ltd コンピュータネットワーク通信システムにおけるノードコンピュータ、ネットワーク切替方法およびプログラム
CN105849702A (zh) * 2013-12-25 2016-08-10 日本电气方案创新株式会社 集群系统,服务器设备,集群系统管理方法和计算机可读记录介质
US9936009B2 (en) * 2014-05-22 2018-04-03 Qualcomm Incorporated Systems and methods of operating a device of a data path group network
WO2018037535A1 (ja) * 2016-08-25 2018-03-01 富士通株式会社 生存管理プログラム、生存管理方法、および生存管理装置
US11119870B2 (en) * 2016-09-21 2021-09-14 Nec Corporation Calculator, cluster management system, method, and non-transitory computer readable medium
CA3039342A1 (en) * 2016-10-03 2018-04-12 View, Inc. Site monitoring system
CN109104351B (zh) * 2017-06-21 2020-08-25 比亚迪股份有限公司 列车网络节点和基于CANopen协议的列车网络节点监测方法
CN109104349B (zh) * 2017-06-21 2020-11-20 比亚迪股份有限公司 基于CANopen协议的列车网络数据传输方法、系统及其装置
DK3617887T3 (da) * 2018-08-27 2021-08-02 Ovh Fremgangsmåde og system til tilvejebringelse af serviceredundans mellem en masterserver og en slaveserver
JP7328907B2 (ja) * 2020-01-31 2023-08-17 株式会社日立製作所 制御システム、制御方法

Similar Documents

Publication Publication Date Title
US10560315B2 (en) Method and device for processing failure in at least one distributed cluster, and system
WO2018036148A1 (zh) 一种服务器集群系统
JP5733318B2 (ja) 計算機システム
US9189316B2 (en) Managing failover in clustered systems, after determining that a node has authority to make a decision on behalf of a sub-cluster
CN109496401B (zh) 一种业务接管方法、存储设备和业务接管装置
US20160036654A1 (en) Cluster system
CN104065569A (zh) 信息处理系统和设备及其控制方法以及数据传输设备
CN114265753A (zh) 消息队列的管理方法、管理系统和电子设备
KR101437735B1 (ko) 정보 처리 장치 및 동작 상태 감시 방법
CN107071189B (zh) 一种通讯设备物理接口的连接方法
JP2021120827A5 (ja)
JP7328907B2 (ja) 制御システム、制御方法
CN212541329U (zh) 基于国产龙芯平台的双冗余计算机设备
WO2024082471A1 (zh) 节点间链路状态监测方法和装置
JP5003313B2 (ja) ログ収集システム、ログ収集方法、および、ノード
JP6551111B2 (ja) 情報処理装置、ダウン判定方法、クラスタシステム、及びプログラム
JP2011023983A (ja) ネットワークノード
US10089200B2 (en) Computer apparatus and computer mechanism
US11954509B2 (en) Service continuation system and service continuation method between active and standby virtual servers
CN103150236B (zh) 面向进程失效错误的并行通信库状态自恢复方法
CN112367386A (zh) 基于Ignite的自动化运维方法、装置及计算机设备
CN113568710B (zh) 一种虚拟机高可用实现方法、装置和设备
JP3688217B2 (ja) マルチプロセッサ初期化/並行診断方法
CN111666231B (zh) 于丛集式系统中维持存储器共享方法
JP2002351855A (ja) 計算機異常処理システムおよび、計算機異常処理方法および、計算機で動作する計算機異常処理プログラムおよび、コンピュータにより読み取り可能な記録媒体に記録された計算機異常処置プログラム