JP7422492B2 - 冗長システム及びデータ同期方法 - Google Patents

冗長システム及びデータ同期方法 Download PDF

Info

Publication number
JP7422492B2
JP7422492B2 JP2019097811A JP2019097811A JP7422492B2 JP 7422492 B2 JP7422492 B2 JP 7422492B2 JP 2019097811 A JP2019097811 A JP 2019097811A JP 2019097811 A JP2019097811 A JP 2019097811A JP 7422492 B2 JP7422492 B2 JP 7422492B2
Authority
JP
Japan
Prior art keywords
controller
database
abnormality
controllers
occurred
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.)
Active
Application number
JP2019097811A
Other languages
English (en)
Other versions
JP2020194217A (ja
Inventor
庸平 新海
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Azbil Corp
Original Assignee
Azbil Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Azbil Corp filed Critical Azbil Corp
Priority to JP2019097811A priority Critical patent/JP7422492B2/ja
Publication of JP2020194217A publication Critical patent/JP2020194217A/ja
Application granted granted Critical
Publication of JP7422492B2 publication Critical patent/JP7422492B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Hardware Redundancy (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

この発明は、冗長システムを構成する複数のコントローラ間でデータを同期させる技術に関する。
従来、プラントなどのプロセス制御に用いるプロセス制御システムにおいて、高信頼性を要求される場合には、複数のコントローラを設ける冗長構造をもつ構成が用いられている。このように、コントローラを多重化してシステムを冗長させることで、システムはより安定した運用を行える。このような冗長構造をもつ従来のプラント制御システムは、例えば、現用系として稼働する第1のコントローラと、待機系として稼働する第2のコントローラを備え、第1のコントローラに異常が発生すると、待機系だった第2のコントローラを現用系に切り替える。
ところで、このような冗長システムにおいて、現用系のノードが複数存在する状態を「スプリットブレイン」という。一般的に、冗長システムでは、現用系のノードと待機系のノードとを繋ぐネットワークが障害等により遮断され、現用系のノードと待機系のノードとが独立して動作する場合にスプリットブレインとなる。
スプリットブレインでは、現用系のノードと待機系のノードとが独立して動作するため、それぞれのノードで異なるデータを保持することとなる。したがって、この状態でシステムがスプリットブレインから復旧すると、現用系のノードと待機系のノードとの間でデータの整合性が取れない状態となる。そこで、現用系のノードと待機系のノードとの間でデータの差異が生じないように、システムをスプリットブレインから復旧させる技術が提案されている。
例えば、特許文献1に記載された遠隔クラスタシステムでは、スプリットブレインから復旧する際、現用系のノード(プライマリサーバ)が、通信遮断中に自サーバで更新された差分データを待機系のノード(セカンダリサーバ)に送信する。セカンダリサーバは、プライマリサーバから受信した差分データと、通信遮断中に自サーバで更新された差分データとをマージして、プライマリサーバに送信する送信データと、自サーバに反映させる反映データとを作成する。そして、セカンダリサーバは、反映データを自サーバに反映させるとともに、送信データをプライマリサーバに送信する。プライマリサーバは、セカンダリサーバから送られた送信データを自サーバに反映させる。この遠隔クラスタシステムは、このようにして、双方のサーバで保持するデータに差異が生じないようにシステムをスプリットブレインから復旧させる。
特開2006-146299号公報
ところで、スプリットブレインは、ビル等の施設内に設置されている複数の監視対象機器を監視する施設監視システムにおいても発生することがある。例えば、施設監視システムは、一般的に現用系と待機系の2台のコントローラによる二重化構成とされるが、双方のコントローラを繋ぐネットワークが障害等により遮断するとスプリットブレインとなる。この場合、現用系のコントローラと待機系のコントローラとは、独立して動作するため、それぞれのコントローラで異なるデータを保持することとなる。ところが、従来の施設監視システムでは、スプリットブレインから復旧するとき、両コントローラの間でデータの整合性を取るための処理は行われておらず、改善が求められていた。
また、特許文献1に記載の遠隔クラスタシステムでは、プライマリサーバとセカンダリサーバのそれぞれが保持するデータに異常があるかどうかの確認は行っていない。したがって、仮にプライマリサーバの保持するデータに何らかの異常があった場合、当該異常のあるデータがセカンダリサーバに同期されて、システムがダウンするなどの不具合が発生するおそれがあった。
この発明は、上記のような課題を解決するためになされたもので、スプリットブレインからの復旧時に、複数のコントローラ間で異常なデータが同期されることによる不具合の発生を回避しつつデータの整合性を保つことを目的としている。
この発明に係る冗長システムは、複数のコントローラを含んで構成され、各コントローラは、自機が現用系の場合に、自機のデータベースに異常が発生しているか否かを判断する判断部と、自機が現用系の場合に、冗長システムを構成する2台以上のコントローラが現用系となったか否かを検知する検知部と、検知部が、2台以上のコントローラが現用系となったことを検知し、かつ、判断部が、自機のデータベースに異常が発生していると判断した場合に、自機を再起動して待機系とする起動部と、検知部が、2台以上のコントローラが現用系となっていないことを検知し、かつ、判断部が、自機のデータベースに異常が発生していないと判断した場合に、自機のデータベースに保持するデータを待機系のコントローラに同期させる同期部と、判断部がデータベースに異常が発生していないと判断した場合に、異常が発生していない旨を他のコントローラに通知する通知部と、を備え、起動部は、検知部が、2台以上のコントローラが現用系となったことを検知し、かつ、判断部が、データベースに異常が発生していないと判断した場合であっても、通知部による通知を受信し、当該通知元のコントローラのデータベースに保持しているデータ数よりも、自機のデータベースに保持しているデータ数が少ない場合には、自機を再起動して待機系とすることを特徴とする。
この発明によれば、上記のように構成したので、スプリットブレインからの復旧時に、複数のコントローラ間で異常なデータが同期されることによる不具合の発生を回避しつつデータの整合性を保つことができる。
実施の形態1に係る冗長システム(二重化システム)の構成例を示す図である。 実施の形態1におけるコントローラのSSDに記憶されるデータのイメージを示す図である。 図3Aは、実施の形態1における現用系のコントローラの構成例を示す図であり、図3Bは、実施の形態1における待機系のコントローラの構成例を示す図である。 実施の形態1に係る二重化システムにおいて、スプリットブレインが発生した場合の動作例を示すフローチャートである。 実施の形態1に係る二重化システムにおいて、スプリットブレインが発生した場合の動作例を示すタイミングチャートである。 実施の形態1におけるコントローラが自機のデータベースに異常が発生しているか否かを判断する処理の流れを示すフローチャートである。
以下、この発明の実施の形態について図面を参照しながら詳細に説明する。
実施の形態1.
図1は、この発明の実施の形態1に係る冗長システムの構成例を示している。冗長システム1は、複数(ここでは2台)のコントローラ10(10A、10B)と、複数の監視ポイント200と、不図示の監視装置とを含んで構成されている。コントローラ10A、10Bと、各監視ポイント200と、監視装置とは、システムバス150を介して相互に通信可能に接続されている。ここでは、コントローラが2台で構成されているため、冗長システム1を二重化システム1として説明する。しかしながら、コントローラの台数は必ずしも2台でなくともよく、いずれか1台のコントローラが現用系(アクティブ)として稼働できる構成であれば、3台以上であってもよい。
二重化システム1は、二重化機能を備えている。二重化機能は、2台のコントローラ10A、10Bで監視ポイント200の監視、制御を行う機能である。すなわち、二重化システム1は、通常時はコントローラ10Aを現用系、コントローラ10Bを待機系(スタンバイ)として稼働させ、現用系のコントローラ10Aが監視ポイント200の監視、制御、及びデータの収集等の処理を行う。コントローラ10Aは、データベース25Aが構築されたSSD(Solid State Drive)20Aを備えており、コントローラ10Aは、監視ポイント200から収集したデータを、SSD20A内のデータベース25Aに格納する。
また、二重化機能は、データベースの同期も管理する。例えば、二重化システム1では、現用系のコントローラ10Aが起動した状態で、待機系のコントローラ10Bが起動すると、待機系のコントローラ10Bは、現用系のコントローラ10Aに対し、データベース25Aのコピーを要求する。この要求を受け付けたコントローラ10Aは、コントローラ10Bに対し、データベース25Aのコピーを送信する。コントローラ10Bは、コントローラ10Aからデータベース25Aのコピーを受信すると、当該コピーを用いて、自機が備えるSSD20B内にデータベース25Bを構築する。
その後、コントローラ10Aは、データベース25Aの更新を完了する度に、当該データベース25Aを更新したデータのコピーをコントローラ10Bに送信する。コントローラ10Bは、コントローラ10Aから受信した更新データのコピーをデータベース25Bに書き込み、データベース25Bの更新を完了する。このようにして、二重化システム1は、データベース25A、25Bの同期を行う。
また、二重化システム1は、現用系のコントローラ10Aに障害などの問題が発生した場合、待機系のコントローラ10Bを現用系に切り替える。現用系に切り替わったコントローラ10Bは、監視ポイント200の監視、制御、及びデータの収集等の処理を継続し、監視ポイント200から収集したデータを、SSD20B内のデータベース25Bに格納する。
なお、実施の形態1では、コントローラ10A、10Bは、図2に示すように、データベース25A、25Bに格納されるデータのほかに、データベース25A、25Bには格納されないが他方のコントローラとの間で同期するデータ26A、26Bを、SSD20A、SSD20Bに記憶している。
<コントローラ10A、10Bの構成例>
次に、コントローラ10A、10Bの構成例について、図3を参照して説明する。図3Aは、コントローラ10Aの構成例を示し、図3Bは、コントローラ10Bの構成例を示している。
図3Aに示すように、コントローラ10Aは、SSD(Solid State Drive)20A、及びCPU(Central Processing Unit)30Aを備えている。SSD20Aには、前述したデータベース25Aが構築されている。
CPU30Aは、予めSSD20Aに記憶されている所定のプログラムを実行することにより、判断部31A、検知部32A、起動部33A、通知部34A、及び同期部35Aとして機能する。
判断部31Aは、自機(コントローラ10A)が現用系の場合に、自機のデータベース25Aに異常が発生しているか否かを判断する。例えば、判断部31Aは、自機のデータベース25Aに対して所定の信号(例えばPing)を送信し、所定時間(例えば1分)以内に応答があればデータベース25Aに接続できた(正常)と判断する。一方、判断部31Aは、所定時間以内に応答がなければ、データベース25Aに異常が発生したと判断する。判断部31Aは、少なくともコントローラ10Aが現用系として起動するときに、データベース25AにPingを送信してデータベース25Aの異常判断を実行する。
検知部32Aは、自機(コントローラ10A)が現用系の場合に、二重化システム1を構成する2台のコントローラの双方が現用系となったか否か、すなわちスプリットブレインとなったか否かを検知する。例えば、検知部32Aは、コントローラ10Bと信号を送受信し合うことで互いの稼働状態を随時監視し、自機(コントローラ10A)が現用系として稼働している際に、コントローラ10Bが待機系から現用系に切り替わった場合に、スプリットブレインを検知する。検知部32Aがスプリットブレインを検知する具体例については後述する。
起動部33Aは、前述の検知部32Aが、2台のコントローラの双方が現用系となったこと(スプリットブレイン)を検知し、かつ、前述の判断部31Aが自機(コントローラ10A)のデータベース25Aに異常が発生していると判断した場合に、自機を再起動して現用系から待機系に切り替える。
また、起動部33Aは、検知部32Aにより、2台のコントローラの双方が現用系となったことを検知し、かつ、判断部31Aにより、データベース25Aに異常が発生していないと判断した場合であっても、コントローラ10Bの後述する通知部34Bによる通知を受信し、当該通知元のコントローラ10Bとの間で自機の優先度が低い場合には、自機を再起動して待機系とする。
なお、優先度とは、どのコントローラを現用系として優先的に稼働させるかを示す度合いを示すものであり、優先度が他のコントローラより低い場合、そのコントローラは現用系から待機系に切り替わる。優先度は、ユーザ(管理者)が各コントローラに予め設定しておけばよい。
通知部34Aは、判断部31Aによりデータベース25Aに異常が発生していないと判断した場合に、異常が発生していない旨を他のコントローラ(ここではコントローラ10B)に通知する。
同期部35Aは、判断部31Aにより、自機のデータベース25Aに異常が発生していないと判断し、かつ、検知部32Aにより、2台以上のコントローラが現用系となっていないことを検知した場合に、自機が保持するデータを待機系のコントローラに同期させる。
次に、コントローラ10Bの構成例について、図3Bを参照して説明する。図3Bに示すように、コントローラ10Bは、SSD(Solid State Drive)20B、及びCPU(Central Processing Unit)30Bを備えている。SSD20Bには、前述したデータベース25Bが構築されている。
CPU30Bは、予めSSD20Bに記憶されている所定のプログラムを実行することにより、判断部31B、検知部32B、起動部33B、通知部34B、及び同期部35Bとして機能する。なお、判断部31B、検知部32B、起動部33B、通知部34B、及び同期部35Bの各部の機能は、前述した判断部31A、検知部32A、起動部33A、通知部34A、及び同期部35Aと基本的に同じであるため、ここではその説明を省略する。
<二重化システム1の動作例>
次に、実施の形態1に係る二重化システム1において、スプリットブレインが発生した場合の動作例について、図4のフローチャート、図5のタイミングチャートに基づき説明する。ここでは、具体例として、コントローラ10Aの電源がOFFであり、コントローラ10Bが現用系として稼働している状態からの動作例を説明する。また、ここでは、現用系として稼働しているコントローラ10Bのデータベース25Bは、判断部31Bにより既に正常であると判断されているものとする。
また、ここでは、図4において、コントローラ10Aを単に「A系」と記載し、コントローラ10Bを単に「B系」と記載する。また、図5において、かっこ付きの数字は図4のフローチャートにおけるステップ番号に対応し、「A」はコントローラが現用系であることを示し、「S」はコントローラが待機系であることを示す。
まず、二重化システム1は、コントローラ10Aを待機系として起動する(ステップST11)。
次に、コントローラ10Aは、現用系として稼働しているコントローラ10Bに対し、コントローラ10Bが保持しているデータ(データベース25B、及び同期するデータ26B(不図示))のコピーを要求する。この要求を受け付けたコントローラ10Bは、自機の保持するデータのコピーをコントローラ10Aに送信し、コントローラ10Bの保持するデータをコントローラ10Aのデータに同期する(ステップST12)。
ここで、この同期中に、コントローラ10Aとコントローラ10Bとを接続するネットワークが障害等により切断したとする。すると、二重化システム1は、同期処理が中断され、コントローラ10Aのデータベース25Aには、同期途中の不完全なデータが残される(ステップST13)。なお、図5において、データベース25Aの表示を一部破線としているのは、データベース25Aに不完全なデータが残されていることを示している。
次に、二重化システム1は、ネットワークが切断したことに伴い、コントローラ10Aを独立して動作させるべく、コントローラ10Aの電源を一旦OFFにし、コントローラ10Aを現用系として起動する(ステップST14)。このとき、コントローラ10Aは、自機のデータベース25Aに異常が発生しているか否かを判断する。この場合の処理について、図6のフローチャートを参照して説明する。
図6は、コントローラ10Aが自機のデータベース25Aに異常が発生しているか否かを判断する処理の流れを示すフローチャートである。まず、コントローラ10Aは、起動を開始すると(ステップST41)、データベース25Aの立ち上げを開始する(ステップST42)。そして、コントローラ10Aは、判断部31Aにより、データベース25Aに対してPingを送信する(ステップST43)。
次に、判断部31Aは、データベース25Aから所定時間(例えば1分)以内に応答があるか否かを確認する(ステップST44)。その結果、データベース25Aから所定時間以内に応答があれば(ステップST44;YES)、判断部31Aは、データベース25Aが正常に立ち上がったと判断する(ステップST45)。そして、コントローラ10Aは起動を正常に完了する(ステップST46)。
一方、データベース25Aから所定時間以内に応答がなければ(ステップST44;NO)、判断部31Aは、データベース25Aに異常が発生していると判断する(ステップST47)。この場合、コントローラ10Aはエラー状態となって起動を停止する(ステップST48)。
図4、図5の例では、二重化システム1は、同期処理の途中でネットワークが切断したため、コントローラ10Aのデータベース25Aには、同期途中の不完全なデータが残されている。したがって、判断部31Aは、送信したPingに対するデータベース25Aからの応答を得ることができず、データベース25Aに異常が発生していると判断する。その結果、コントローラ10Aは、エラー状態となって起動を停止する(ステップST15)。
その後、二重化システム1では、切断していたネットワークが復旧する(ステップST16)。これにより、二重化システム1は、コントローラ10Aとコントローラ10Bとの間の通信が再開する。
その後、二重化システム1では、コントローラ10Aの検知部32Aがスプリットブレインを検知する。同様に、コントローラ10Bの検知部32Bもスプリットブレインを検知する(ステップST17)。
次に、コントローラ10Aは、コントローラ10Bに対し、通信により、自機のデータベース25Aに異常が発生していることを通知する。これにより、コントローラ10Bは、コントローラ10Aのデータベース25Aに異常が発生していることを検知する(ステップST18)。なお、このステップST18の処理は、必ずしも実行されなくともよいが、コントローラ10Bが確実にデータベース25Aの異常を検知するために実行されるのが望ましい。
その後、コントローラ10Aは、起動部33Aにより、自機を待機系として再起動する(ステップST19)。
次いで、コントローラ10Bは、コントローラ10Aが待機系となったため、検知部32Bにより、2台のコントローラが現用系となっていないこと、すなわちスプリットブレインではないことを検知する(ステップST20)。そして、コントローラ10Bは、同期部35Bにより、コントローラ10Bの保持するデータ(データベース25B、及び同期するデータ26B)をコントローラ10Aの保持するデータ(データベース25A、及び同期するデータ26A)に上書きすることで、コントローラ10Bの保持するデータを
コントローラ10Aに同期させる(ステップST21)。これにより、二重化システム1は、コントローラ10Aとコントローラ10Bとの間でデータの整合性が保たれ、正常に二重化された状態に復旧する。
なお、上記の例では、二重化システム1は、ステップST14において、判断部31Aがデータベース25Aに異常が発生していると判断した後に、ステップST17において、検知部32A、32Bがスプリットブレインを検知した。しかしながら、二重化システム1は、検知部32A、32Bによるスプリットブレインの検知を実行した後に、判断部31Aがデータベース25Aに異常が発生していると判断してもよく、あるいはこれらの処理を並行して実行してもよい。
また、上記の例では、コントローラ10Aの電源がOFFとなっており、コントローラ10Bが現用系として稼働している状態からの動作例を説明した。しかしながら、これとは逆に、コントローラ10Aが現用系として稼働し、コントローラ10Bの電源がOFFである場合でも、各コントローラは上記と同様の流れでスプリットブレインからの復旧及びデータの同期を行えばよい。
このように、二重化システム1では、スプリットブレインからシステムを復旧する際、コントローラ10A、10Bのデータベース25A、25Bに異常が発生しているか否かの判断を行い、データベースに異常が発生していると判断された場合、そのコントローラ(ここではコントローラ10A)を再起動して現用系から待機系に切り替える。そして、二重化システム1は、待機系に切り替わったコントローラ10Aの保持しているデータを破棄し、現用系として稼働を継続しているコントローラ10Bのデータを、待機系に切り替わったコントローラ10Aに同期するように構成した。
特に、従来は、スプリットブレインからの復旧時に、現用系のコントローラと待機系のコントローラのそれぞれが保持するデータに異常があるかどうかの確認は行っていなかった。そのため、仮に同期するデータの提供元となるコントローラのデータに何らかの異常があった場合、当該異常のあるデータが同期されてシステムがダウンするなどの不具合が発生するおそれがあった。
これに対し、二重化システム1は、スプリットブレインからの復旧に際し、まず現用系のコントローラと待機系のコントローラのそれぞれのデータベースに異常が発生しているか否かを判断し、データベースに異常が発生していると判断されたコントローラを現用系から待機系に切り替える。そして、待機系に切り替わったコントローラの保持しているデータを破棄するとともに、現用系として稼働を継続するコントローラの保持するデータを、待機系に切り替わったコントローラに同期させる。これにより、二重化システム1は、スプリットブレインからの復旧時に、コントローラ10Aとコントローラ10Bとの間で異常なデータが同期されることによりシステムに不具合が発生することを回避しつつ、データの整合性を保つことができる。
なお、図4、図5では、コントローラ10Aのデータベース25Aに異常が発生したと判断された例を説明したが、例えばコントローラ10Aのデータベース25Aに異常がなく、コントローラ10Bのデータベース25Bにも異常がなかった場合も想定される。その場合、両コントローラ10A、10Bは、通知部34A、34Bにより、自機のデータベースに異常がないと判断された旨を相互に通知し合う。
そして、コントローラ10A、10Bは、検知部32A、32Bが、2台以上のコントローラが現用系となったことを検知し、かつ、判断部31A、31Bが、データベース25A、25Bに異常が発生していないと判断した場合であっても、通知部34A、34Bによる通知を受信し、当該通知元のコントローラとの間で自機の優先度が低い場合には、起動部33A、33Bにより自機を再起動して待機系とする。
例えば、図4のステップST15において、コントローラ10Aは判断部31Aにより、データベース25Aに異常がないと判断したとする。この場合、通知部34Aは、データベース25Aに異常がないと判断した旨をコントローラ10Bに通知する。一方、コントローラ10Bでも、判断部31Bにより、データベース25Bに異常がないと判断されているので、通知部34Bは、データベース25Bに異常がないと判断された旨をコントローラ10Aに通知する。
このとき、コントローラ10Aは、自機のデータベース25Aに異常が発生していないと判断した場合であっても、自機の優先度がコントローラ10Bの優先度よりも低ければ、起動部33Aにより自機を再起動して待機系とする。そして、コントローラ10Bは、判断部31Bにより、データベース25Bに異常が発生していないと判断し、かつ、検知部32Bにより、2台のコントローラが現用系となっていないことを検知すると、同期部35Bにより、自機のデータを待機系のコントローラ10Aに同期させる。
なお、これとは逆に、例えばコントローラ10Bの優先度がコントローラ10Aの優先度よりも低い場合も、上記と同様の流れで、コントローラ10Bが待機系に切り替わり、コントローラ10Aのデータをコントローラ10Bに同期させればよい。
また、冗長システムが例えば3台以上のコントローラで構成され、データベースに異常がないと判断されたコントローラが2台以上あった場合も、上記と同様の流れで待機系に切り替わるコントローラを決定すればよい。例えば、冗長システムが3台のコントローラで構成され、3台ともデータベースに異常がないと判断された場合、各コントローラは、通知部により、自機のデータベースに異常がないと判断された旨を相互に通知し合う。この場合、各コントローラは、自機と当該通知元のコントローラとの間で優先度を比較し、自機の優先度が低い場合には、起動部により自機を再起動して待機系とする。そして、最も優先度の高いコントローラ(すなわち現用系を維持するコントローラ)が、同期部により自機のデータを待機系のコントローラに同期させればよい。
なお、待機系に切り替わるコントローラを優先度に基づいて決定する方法はあくまで一例であり、その他の方法で待機系に切り替わるコントローラを決定してもよい。例えば、各コントローラのデータベースに格納されているデータ数を比較し、データ数が最も多いコントローラ以外のコントローラを待機系に切り替えるようにしてもよい。
以上のように、実施の形態1によれば、冗長システム1は、複数のコントローラ10A、10Bを含んで構成され、コントローラ10A、10Bは、自機が現用系の場合に、データベース25A、25Bに異常が発生しているか否かを判断する判断部31A、31Bと、自機が現用系の場合に、2台以上のコントローラが現用系となったか否かを検知する検知部32A、32Bと、判断部31A、31Bが、データベース25A、25Bに異常が発生していると判断し、かつ、検知部32A、32Bが、2台以上のコントローラが現用系となったことを検知した場合に、自機を再起動して待機系とする起動部33A、33Bと、検知部32A、32Bが、2台以上のコントローラが現用系となっていないことを検知し、かつ、判断部31A、31Bが、データベース25A、25Bに異常が発生していないと判断した場合に、自機のデータを待機系のコントローラに同期させる同期部35A、35Bと、を備える。これにより、冗長システム1は、スプリットブレインからの復旧時に、複数のコントローラ間で異常なデータが同期されることによりシステムに不具合が発生することを回避しつつ、データの整合性を保つことができる。
また、実施の形態1によれば、冗長システム1は、判断部31A、31Bがデータベース25A、25Bに異常が発生していないと判断した場合に、異常が発生していない旨を他のコントローラに通知する通知部34A、34Bを備え、起動部33A、33Bは、検知部32A、32Bが、2台以上のコントローラが現用系となったことを検知し、かつ、判断部31A、31Bが、データベース25A、25Bに異常が発生していないと判断した場合であっても、通知部34A、34Bによる通知を受信し、当該通知元のコントローラとの間で自機の優先度が低い場合には、自機を再起動して待機系とする。これにより、冗長システム1は、同期するデータの提供元となり得るコントローラが複数あった場合でも、優先度が他より低いコントローラが待機系に切り替わるため、コントローラ間でデータの整合性を速やかに保つことができる。
また、実施の形態1によれば、判断部は、データベースに対して所定の信号を送信し、当該信号に対して所定時間以内に応答がない場合に、当該データベースに異常が発生していると判断する。これにより、冗長システム1は、データベースに異常が発生しているか否かを容易に判断することができる。
なお、本願発明はその発明の範囲内において、実施の形態の任意の構成要素の変形、もしくは実施の形態において任意の構成要素の省略が可能である。
1 二重化システム(冗長システム)
10 コントローラ
10A 現用系のコントローラ
10B 待機系のコントローラ
20A、20B SSD
25A、25B データベース
26A、26B 同期するデータ
30A、30B CPU
31A、31B 判断部
32A、32B 検知部
33A、33B 起動部
34A、34B 通知部
35A、35B 同期部
150 システムバス
200 監視ポイント

Claims (3)

  1. 複数のコントローラを含んで構成される冗長システムであって、
    前記各コントローラは、
    自機が現用系の場合に、自機のデータベースに異常が発生しているか否かを判断する判断部と、
    自機が現用系の場合に、前記冗長システムを構成する2台以上のコントローラが現用系となったか否かを検知する検知部と、
    前記検知部が、2台以上のコントローラが現用系となったことを検知し、かつ、前記判断部が、自機のデータベースに異常が発生していると判断した場合に、自機を再起動して待機系とする起動部と、
    前記検知部が、2台以上のコントローラが現用系となっていないことを検知し、かつ、前記判断部が、自機のデータベースに異常が発生していないと判断した場合に、自機のデータベースに保持するデータを待機系のコントローラに同期させる同期部と、
    前記判断部が前記データベースに異常が発生していないと判断した場合に、異常が発生していない旨を他のコントローラに通知する通知部と、を備え、
    前記起動部は、
    前記検知部が、2台以上のコントローラが現用系となったことを検知し、かつ、前記判断部が、前記データベースに異常が発生していないと判断した場合であっても、前記通知部による通知を受信し、当該通知元のコントローラのデータベースに保持しているデータ数よりも、自機のデータベースに保持しているデータ数が少ない場合には、自機を再起動して待機系とすることを特徴とする冗長システム。
  2. 前記判断部は、前記データベースに対して所定の信号を送信し、当該信号に対して所定時間以内に応答がない場合に、当該データベースに異常が発生していると判断することを特徴とする請求項記載の冗長システム。
  3. 冗長システムを構成する複数のコントローラによるデータ同期方法であって、
    前記各コントローラは、
    判断部が、自機が現用系の場合に、自機のデータベースに異常が発生しているか否かを判断するステップと、
    検知部が、自機が現用系の場合に、前記冗長システムを構成する2台以上のコントローラが現用系となったことを検知するステップと、
    前記検知部が、2台以上のコントローラが現用系となったことを検知し、かつ、前記判断部が、自機のデータベースに異常が発生していると判断した場合に、起動部が、自機を再起動して待機系とするステップと、
    前記検知部が、2台以上のコントローラが現用系となっていないことを検知し、かつ、前記判断部が、自機のデータベースに異常が発生していないと判断した場合に、同期部が、自機のデータベースに保持するデータを待機系のコントローラに同期させるステップと、
    通知部が、前記判断部が前記データベースに異常が発生していないと判断した場合に、異常が発生していない旨を他のコントローラに通知するステップと、を備え、
    前記起動部は、
    前記検知部が、2台以上のコントローラが現用系となったことを検知し、かつ、前記判断部が、前記データベースに異常が発生していないと判断した場合であっても、前記通知部による通知を受信し、当該通知元のコントローラのデータベースに保持しているデータ数よりも、自機のデータベースに保持しているデータ数が少ない場合には、自機を再起動して待機系とすることを特徴とするデータ同期方法。
JP2019097811A 2019-05-24 2019-05-24 冗長システム及びデータ同期方法 Active JP7422492B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019097811A JP7422492B2 (ja) 2019-05-24 2019-05-24 冗長システム及びデータ同期方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019097811A JP7422492B2 (ja) 2019-05-24 2019-05-24 冗長システム及びデータ同期方法

Publications (2)

Publication Number Publication Date
JP2020194217A JP2020194217A (ja) 2020-12-03
JP7422492B2 true JP7422492B2 (ja) 2024-01-26

Family

ID=73547545

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019097811A Active JP7422492B2 (ja) 2019-05-24 2019-05-24 冗長システム及びデータ同期方法

Country Status (1)

Country Link
JP (1) JP7422492B2 (ja)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002116920A (ja) 2000-10-05 2002-04-19 Toshiba Corp クラスタシステム、クラスタシステムにおける監視方法およびコンピュータプログラム
JP2006146299A (ja) 2004-11-16 2006-06-08 Nec Corp スプリットブレインリカバリ方式、スプリットブレインリカバリ方法およびプログラム
JP2007086972A (ja) 2005-09-21 2007-04-05 Hitachi Ltd ストレージシステム、二重化制御方法、及びプログラム
JP2009157662A (ja) 2007-12-26 2009-07-16 Nec Corp データベース管理装置、データベース管理方法、およびデータベース管理プログラム
JP2009223519A (ja) 2008-03-14 2009-10-01 Toshiba Corp クラスタシステム及び同システムにおいてマスタノードを選択する方法
JP2010244463A (ja) 2009-04-09 2010-10-28 Fujitsu Ltd イベント検出制御方法及びシステム
JP2018055197A (ja) 2016-09-26 2018-04-05 横河電機株式会社 処理装置、ネットワーク装置、処理装置の制御方法、ネットワーク装置の制御方法、処理装置の制御プログラム、ネットワーク装置の制御プログラム及び記録媒体

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002116920A (ja) 2000-10-05 2002-04-19 Toshiba Corp クラスタシステム、クラスタシステムにおける監視方法およびコンピュータプログラム
JP2006146299A (ja) 2004-11-16 2006-06-08 Nec Corp スプリットブレインリカバリ方式、スプリットブレインリカバリ方法およびプログラム
JP2007086972A (ja) 2005-09-21 2007-04-05 Hitachi Ltd ストレージシステム、二重化制御方法、及びプログラム
JP2009157662A (ja) 2007-12-26 2009-07-16 Nec Corp データベース管理装置、データベース管理方法、およびデータベース管理プログラム
JP2009223519A (ja) 2008-03-14 2009-10-01 Toshiba Corp クラスタシステム及び同システムにおいてマスタノードを選択する方法
JP2010244463A (ja) 2009-04-09 2010-10-28 Fujitsu Ltd イベント検出制御方法及びシステム
JP2018055197A (ja) 2016-09-26 2018-04-05 横河電機株式会社 処理装置、ネットワーク装置、処理装置の制御方法、ネットワーク装置の制御方法、処理装置の制御プログラム、ネットワーク装置の制御プログラム及び記録媒体

Also Published As

Publication number Publication date
JP2020194217A (ja) 2020-12-03

Similar Documents

Publication Publication Date Title
CA2733788C (en) Method and systems for redundant server automatic failover
JP4751117B2 (ja) データ複製を利用したフェイルオーバとデータ移行
JP5243384B2 (ja) アプリケーションステーションで利用される冗長マネージャ
EP3285168B1 (en) Disaster tolerance method and apparatus in active-active cluster system
US20080126854A1 (en) Redundant service processor failover protocol
JP5286212B2 (ja) ストレージクラスタ環境でのリモートコピー制御方法及びシステム
CN103546914A (zh) 一种hss主备管理的方法及装置
CN109471759B (zh) 一种基于sas双控设备的数据库故障切换方法及设备
JP4320314B2 (ja) 計算機システム、同期化処理方法、およびプログラム
JP3882783B2 (ja) プログラマブルコントローラ及びcpuユニット並びに通信ユニット及び通信ユニットの制御方法
JP2009251786A (ja) データ処理方法、ストレージ装置およびストレージシステム
JP6511739B2 (ja) 冗長システムおよび冗長化方法
JP6083480B1 (ja) 監視装置、フォールトトレラントシステムおよび方法
WO2010100757A1 (ja) 演算処理システム、再同期方法、およびファームプログラム
JP5285045B2 (ja) 仮想環境における故障復旧方法及びサーバ及びプログラム
JP4318211B2 (ja) 高信頼システム、冗長構成制御方法及びプログラム
JP7422492B2 (ja) 冗長システム及びデータ同期方法
JP2010067115A (ja) データ記憶システム、データ記憶方法
US7437445B1 (en) System and methods for host naming in a managed information environment
WO2007094041A1 (ja) サーバ管理装置及びサーバ管理プログラム
JP7110937B2 (ja) 情報処理システム及び情報処理装置
CN113472891A (zh) 一种sdn控制器集群数据处理方法、设备及介质
JP2006268278A (ja) 遠隔保守コンピュータ保守システム
JP2000066913A (ja) 任意プロセッサのプログラム・データ無中断更新システム
US11853175B2 (en) Cluster system and restoration method that performs failover control

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220324

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230214

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230411

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20230411

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230711

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20230830

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231004

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20231219

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240116

R150 Certificate of patent or registration of utility model

Ref document number: 7422492

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150