JP2020194217A - Redundant system and data synchronization method - Google Patents

Redundant system and data synchronization method Download PDF

Info

Publication number
JP2020194217A
JP2020194217A JP2019097811A JP2019097811A JP2020194217A JP 2020194217 A JP2020194217 A JP 2020194217A JP 2019097811 A JP2019097811 A JP 2019097811A JP 2019097811 A JP2019097811 A JP 2019097811A JP 2020194217 A JP2020194217 A JP 2020194217A
Authority
JP
Japan
Prior art keywords
controller
database
controllers
abnormality
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.)
Granted
Application number
JP2019097811A
Other languages
Japanese (ja)
Other versions
JP7422492B2 (en
Inventor
庸平 新海
Yohei Shinkai
庸平 新海
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/en
Publication of JP2020194217A publication Critical patent/JP2020194217A/en
Application granted granted Critical
Publication of JP7422492B2 publication Critical patent/JP7422492B2/en
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)

Abstract

To maintain data integrity while avoiding a problem caused by synchronization of abnormal data among a plurality of controllers when recovering from split brain.SOLUTION: A redundant system 1 is composed of two controllers 10A and 10B. The controller 10A or 10B includes: a determination unit 31A or 31B for determining whether abnormality has occurred in a database 25A or 25B when its own device is an active system; a detection unit 32A or 32B for detecting whether two or more controllers are active systems when its own device is an active system; a starting unit 33A or 33B for rebooting the own device and making it a standby system when the detection unit detects that two or more controllers are active systems and the determination unit determines that abnormality has occurred in the database; and a synchronization unit 35A or 35B that synchronizes data of the own device with a standby controller when the detection unit detects that two or more controllers are not active systems and the determination unit determines that abnormality has not occurred in the database.SELECTED DRAWING: Figure 3

Description

この発明は、冗長システムを構成する複数のコントローラ間でデータを同期させる技術に関する。 The present invention relates to a technique for synchronizing data between a plurality of controllers constituting a redundant system.

従来、プラントなどのプロセス制御に用いるプロセス制御システムにおいて、高信頼性を要求される場合には、複数のコントローラを設ける冗長構造をもつ構成が用いられている。このように、コントローラを多重化してシステムを冗長させることで、システムはより安定した運用を行える。このような冗長構造をもつ従来のプラント制御システムは、例えば、現用系として稼働する第1のコントローラと、待機系として稼働する第2のコントローラを備え、第1のコントローラに異常が発生すると、待機系だった第2のコントローラを現用系に切り替える。 Conventionally, in a process control system used for process control of a plant or the like, when high reliability is required, a configuration having a redundant structure in which a plurality of controllers are provided has been used. In this way, by multiplexing the controllers and making the system redundant, the system can operate more stably. A conventional plant control system having such a redundant structure includes, for example, a first controller that operates as an active system and a second controller that operates as a standby system, and when an abnormality occurs in the first controller, it stands by. Switch the second controller, which was a system, to the current system.

ところで、このような冗長システムにおいて、現用系のノードが複数存在する状態を「スプリットブレイン」という。一般的に、冗長システムでは、現用系のノードと待機系のノードとを繋ぐネットワークが障害等により遮断され、現用系のノードと待機系のノードとが独立して動作する場合にスプリットブレインとなる。 By the way, in such a redundant system, a state in which a plurality of active nodes exist is called "split brain". Generally, in a redundant system, a split brain occurs when the network connecting the active node and the standby node is interrupted due to a failure or the like, and the active node and the standby node operate independently. ..

スプリットブレインでは、現用系のノードと待機系のノードとが独立して動作するため、それぞれのノードで異なるデータを保持することとなる。したがって、この状態でシステムがスプリットブレインから復旧すると、現用系のノードと待機系のノードとの間でデータの整合性が取れない状態となる。そこで、現用系のノードと待機系のノードとの間でデータの差異が生じないように、システムをスプリットブレインから復旧させる技術が提案されている。 In split brain, the active node and the standby node operate independently, so that each node holds different data. Therefore, if the system recovers from split brain in this state, the data will not be consistent between the active node and the standby node. Therefore, a technique for recovering the system from split brain has been proposed so that there is no data difference between the active node and the standby node.

例えば、特許文献1に記載された遠隔クラスタシステムでは、スプリットブレインから復旧する際、現用系のノード(プライマリサーバ)が、通信遮断中に自サーバで更新された差分データを待機系のノード(セカンダリサーバ)に送信する。セカンダリサーバは、プライマリサーバから受信した差分データと、通信遮断中に自サーバで更新された差分データとをマージして、プライマリサーバに送信する送信データと、自サーバに反映させる反映データとを作成する。そして、セカンダリサーバは、反映データを自サーバに反映させるとともに、送信データをプライマリサーバに送信する。プライマリサーバは、セカンダリサーバから送られた送信データを自サーバに反映させる。この遠隔クラスタシステムは、このようにして、双方のサーバで保持するデータに差異が生じないようにシステムをスプリットブレインから復旧させる。 For example, in the remote cluster system described in Patent Document 1, when recovering from split brain, the active node (primary server) receives the difference data updated by the local server during communication interruption to the standby node (secondary). Send to server). The secondary server merges the difference data received from the primary server with the difference data updated on the local server during communication interruption, and creates the transmission data to be sent to the primary server and the reflection data to be reflected on the local server. To do. Then, the secondary server reflects the reflected data on the own server and transmits the transmitted data to the primary server. The primary server reflects the transmission data sent from the secondary server on its own server. This remote cluster system thus recovers the system from split brain so that there is no difference in the data held by both servers.

特開2006−146299号公報Japanese Unexamined Patent Publication No. 2006-146299

ところで、スプリットブレインは、ビル等の施設内に設置されている複数の監視対象機器を監視する施設監視システムにおいても発生することがある。例えば、施設監視システムは、一般的に現用系と待機系の2台のコントローラによる二重化構成とされるが、双方のコントローラを繋ぐネットワークが障害等により遮断するとスプリットブレインとなる。この場合、現用系のコントローラと待機系のコントローラとは、独立して動作するため、それぞれのコントローラで異なるデータを保持することとなる。ところが、従来の施設監視システムでは、スプリットブレインから復旧するとき、両コントローラの間でデータの整合性を取るための処理は行われておらず、改善が求められていた。 By the way, split brain may also occur in a facility monitoring system that monitors a plurality of monitored devices installed in a facility such as a building. For example, a facility monitoring system generally has a dual configuration consisting of two controllers, an active system and a standby system, but if the network connecting both controllers is interrupted due to a failure or the like, a split brain occurs. In this case, since the active controller and the standby controller operate independently, each controller holds different data. However, in the conventional facility monitoring system, when recovering from split brain, processing for ensuring data consistency between both controllers is not performed, and improvement is required.

また、特許文献1に記載の遠隔クラスタシステムでは、プライマリサーバとセカンダリサーバのそれぞれが保持するデータに異常があるかどうかの確認は行っていない。したがって、仮にプライマリサーバの保持するデータに何らかの異常があった場合、当該異常のあるデータがセカンダリサーバに同期されて、システムがダウンするなどの不具合が発生するおそれがあった。 Further, in the remote cluster system described in Patent Document 1, it is not confirmed whether or not there is an abnormality in the data held by each of the primary server and the secondary server. Therefore, if there is any abnormality in the data held by the primary server, the abnormal data may be synchronized with the secondary server, causing a problem such as the system going down.

この発明は、上記のような課題を解決するためになされたもので、スプリットブレインからの復旧時に、複数のコントローラ間で異常なデータが同期されることによる不具合の発生を回避しつつデータの整合性を保つことを目的としている。 The present invention has been made to solve the above-mentioned problems, and data matching while avoiding the occurrence of a problem due to abnormal data synchronization between a plurality of controllers when recovering from split brain. The purpose is to maintain sex.

この発明に係る冗長システムは、複数のコントローラを含んで構成され、各コントローラは、自機が現用系の場合に、データベースに異常が発生しているか否かを判断する判断部と、自機が現用系の場合に、2台以上のコントローラが現用系となったか否かを検知する検知部と、検知部が、2台以上のコントローラが現用系となったことを検知し、かつ、判断部が、データベースに異常が発生していると判断した場合に、自機を再起動して待機系とする起動部と、検知部が、2台以上のコントローラが現用系となっていないことを検知し、かつ、判断部が、データベースに異常が発生していないと判断した場合に、自機のデータを待機系のコントローラに同期させる同期部と、を備えたことを特徴とする。 The redundant system according to the present invention is configured to include a plurality of controllers, and each controller has a determination unit for determining whether or not an abnormality has occurred in the database when the own machine is an active system, and the own machine. In the case of an active system, a detection unit that detects whether or not two or more controllers have become active systems, and a detection unit that detects that two or more controllers have become active systems and a judgment unit. However, when it is determined that an error has occurred in the database, the startup unit that restarts the machine and makes it a standby system and the detection unit detect that two or more controllers are not in the active system. In addition, the determination unit is provided with a synchronization unit that synchronizes the data of the own machine with the controller of the standby system when it is determined that no abnormality has occurred in the database.

この発明によれば、上記のように構成したので、スプリットブレインからの復旧時に、複数のコントローラ間で異常なデータが同期されることによる不具合の発生を回避しつつデータの整合性を保つことができる。 According to the present invention, since it is configured as described above, it is possible to maintain data consistency while avoiding the occurrence of a problem due to abnormal data synchronization between a plurality of controllers when recovering from split brain. it can.

実施の形態1に係る冗長システム(二重化システム)の構成例を示す図である。It is a figure which shows the configuration example of the redundant system (redundant system) which concerns on Embodiment 1. FIG. 実施の形態1におけるコントローラのSSDに記憶されるデータのイメージを示す図である。It is a figure which shows the image of the data stored in the SSD of the controller in Embodiment 1. FIG. 図3Aは、実施の形態1における現用系のコントローラの構成例を示す図であり、図3Bは、実施の形態1における待機系のコントローラの構成例を示す図である。FIG. 3A is a diagram showing a configuration example of the active system controller according to the first embodiment, and FIG. 3B is a diagram showing a configuration example of the standby system controller according to the first embodiment. 実施の形態1に係る二重化システムにおいて、スプリットブレインが発生した場合の動作例を示すフローチャートである。It is a flowchart which shows the operation example when the split brain occurs in the duplex system which concerns on Embodiment 1. 実施の形態1に係る二重化システムにおいて、スプリットブレインが発生した場合の動作例を示すタイミングチャートである。It is a timing chart which shows the operation example when the split brain occurs in the duplex system which concerns on Embodiment 1. FIG. 実施の形態1におけるコントローラが自機のデータベースに異常が発生しているか否かを判断する処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the process which the controller in Embodiment 1 determines whether or not an abnormality has occurred in the database of own machine.

以下、この発明の実施の形態について図面を参照しながら詳細に説明する。
実施の形態1.
図1は、この発明の実施の形態1に係る冗長システムの構成例を示している。冗長システム1は、複数(ここでは2台)のコントローラ10(10A、10B)と、複数の監視ポイント200と、不図示の監視装置とを含んで構成されている。コントローラ10A、10Bと、各監視ポイント200と、監視装置とは、システムバス150を介して相互に通信可能に接続されている。ここでは、コントローラが2台で構成されているため、冗長システム1を二重化システム1として説明する。しかしながら、コントローラの台数は必ずしも2台でなくともよく、いずれか1台のコントローラが現用系(アクティブ)として稼働できる構成であれば、3台以上であってもよい。
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
Embodiment 1.
FIG. 1 shows a configuration example of a redundant system according to the first embodiment of the present invention. The redundant system 1 is configured to include a plurality of (here, two) controllers 10 (10A, 10B), a plurality of monitoring points 200, and a monitoring device (not shown). The controllers 10A and 10B, each monitoring point 200, and the monitoring device are connected to each other via the system bus 150 so as to be able to communicate with each other. Here, since the controller is composed of two controllers, the redundant system 1 will be described as the redundant system 1. However, the number of controllers does not necessarily have to be two, and may be three or more as long as any one of the controllers can operate as an active system (active).

二重化システム1は、二重化機能を備えている。二重化機能は、2台のコントローラ10A、10Bで監視ポイント200の監視、制御を行う機能である。すなわち、二重化システム1は、通常時はコントローラ10Aを現用系、コントローラ10Bを待機系(スタンバイ)として稼働させ、現用系のコントローラ10Aが監視ポイント200の監視、制御、及びデータの収集等の処理を行う。コントローラ10Aは、データベース25Aが構築されたSSD(Solid State Drive)20Aを備えており、コントローラ10Aは、監視ポイント200から収集したデータを、SSD20A内のデータベース25Aに格納する。 The duplication system 1 has a duplication function. The duplication function is a function of monitoring and controlling the monitoring point 200 with two controllers 10A and 10B. That is, in the duplex system 1, the controller 10A is normally operated as an active system and the controller 10B is operated as a standby system (standby), and the active controller 10A performs processing such as monitoring, control, and data collection of the monitoring point 200. Do. The controller 10A includes an SSD (Solid State Drive) 20A in which the database 25A is constructed, and the controller 10A stores the data collected from the monitoring point 200 in the database 25A in the SSD 20A.

また、二重化機能は、データベースの同期も管理する。例えば、二重化システム1では、現用系のコントローラ10Aが起動した状態で、待機系のコントローラ10Bが起動すると、待機系のコントローラ10Bは、現用系のコントローラ10Aに対し、データベース25Aのコピーを要求する。この要求を受け付けたコントローラ10Aは、コントローラ10Bに対し、データベース25Aのコピーを送信する。コントローラ10Bは、コントローラ10Aからデータベース25Aのコピーを受信すると、当該コピーを用いて、自機が備えるSSD20B内にデータベース25Bを構築する。 The duplication feature also manages database synchronization. For example, in the duplex system 1, when the standby system controller 10B is activated while the active system controller 10A is activated, the standby system controller 10B requests the active system controller 10A to copy the database 25A. The controller 10A that has received this request transmits a copy of the database 25A to the controller 10B. When the controller 10B receives a copy of the database 25A from the controller 10A, the controller 10B constructs the database 25B in the SSD 20B provided in the own machine by using the copy.

その後、コントローラ10Aは、データベース25Aの更新を完了する度に、当該データベース25Aを更新したデータのコピーをコントローラ10Bに送信する。コントローラ10Bは、コントローラ10Aから受信した更新データのコピーをデータベース25Bに書き込み、データベース25Bの更新を完了する。このようにして、二重化システム1は、データベース25A、25Bの同期を行う。 After that, each time the controller 10A completes the update of the database 25A, the controller 10A transmits a copy of the updated data of the database 25A to the controller 10B. The controller 10B writes a copy of the update data received from the controller 10A to the database 25B, and completes the update of the database 25B. In this way, the duplication system 1 synchronizes the databases 25A and 25B.

また、二重化システム1は、現用系のコントローラ10Aに障害などの問題が発生した場合、待機系のコントローラ10Bを現用系に切り替える。現用系に切り替わったコントローラ10Bは、監視ポイント200の監視、制御、及びデータの収集等の処理を継続し、監視ポイント200から収集したデータを、SSD20B内のデータベース25Bに格納する。 Further, the duplex system 1 switches the standby system controller 10B to the active system when a problem such as a failure occurs in the active system controller 10A. The controller 10B switched to the active system continues processing such as monitoring, control, and data collection of the monitoring point 200, and stores the data collected from the monitoring point 200 in the database 25B in the SSD 20B.

なお、実施の形態1では、コントローラ10A、10Bは、図2に示すように、データベース25A、25Bに格納されるデータのほかに、データベース25A、25Bには格納されないが他方のコントローラとの間で同期するデータ26A、26Bを、SSD20A、SSD20Bに記憶している。 In the first embodiment, as shown in FIG. 2, the controllers 10A and 10B are not stored in the databases 25A and 25B but are connected to the other controller in addition to the data stored in the databases 25A and 25B. The data 26A and 26B to be synchronized are stored in the SSD20A and SSD20B.

<コントローラ10A、10Bの構成例>
次に、コントローラ10A、10Bの構成例について、図3を参照して説明する。図3Aは、コントローラ10Aの構成例を示し、図3Bは、コントローラ10Bの構成例を示している。
<Configuration example of controllers 10A and 10B>
Next, a configuration example of the controllers 10A and 10B will be described with reference to FIG. FIG. 3A shows a configuration example of the controller 10A, and FIG. 3B shows a configuration example of the controller 10B.

図3Aに示すように、コントローラ10Aは、SSD(Solid State Drive)20A、及びCPU(Central Processing Unit)30Aを備えている。SSD20Aには、前述したデータベース25Aが構築されている。 As shown in FIG. 3A, the controller 10A includes an SSD (Solid State Drive) 20A and a CPU (Central Processing Unit) 30A. The database 25A described above is constructed in the SSD 20A.

CPU30Aは、予めSSD20Aに記憶されている所定のプログラムを実行することにより、判断部31A、検知部32A、起動部33A、通知部34A、及び同期部35Aとして機能する。 The CPU 30A functions as a determination unit 31A, a detection unit 32A, an activation unit 33A, a notification unit 34A, and a synchronization unit 35A by executing a predetermined program stored in the SSD 20A in advance.

判断部31Aは、自機(コントローラ10A)が現用系の場合に、自機のデータベース25Aに異常が発生しているか否かを判断する。例えば、判断部31Aは、自機のデータベース25Aに対して所定の信号(例えばPing)を送信し、所定時間(例えば1分)以内に応答があればデータベース25Aに接続できた(正常)と判断する。一方、判断部31Aは、所定時間以内に応答がなければ、データベース25Aに異常が発生したと判断する。判断部31Aは、少なくともコントローラ10Aが現用系として起動するときに、データベース25AにPingを送信してデータベース25Aの異常判断を実行する。 The determination unit 31A determines whether or not an abnormality has occurred in the database 25A of the own machine when the own machine (controller 10A) is an active system. For example, the determination unit 31A transmits a predetermined signal (for example, Ping) to the database 25A of its own machine, and if there is a response within a predetermined time (for example, 1 minute), it is determined that the database 25A can be connected (normal). To do. On the other hand, if there is no response within the predetermined time, the determination unit 31A determines that an abnormality has occurred in the database 25A. The determination unit 31A transmits a ping to the database 25A and executes an abnormality determination of the database 25A at least when the controller 10A is started as an active system.

検知部32Aは、自機(コントローラ10A)が現用系の場合に、二重化システム1を構成する2台のコントローラの双方が現用系となったか否か、すなわちスプリットブレインとなったか否かを検知する。例えば、検知部32Aは、コントローラ10Bと信号を送受信し合うことで互いの稼働状態を随時監視し、自機(コントローラ10A)が現用系として稼働している際に、コントローラ10Bが待機系から現用系に切り替わった場合に、スプリットブレインを検知する。検知部32Aがスプリットブレインを検知する具体例については後述する。 When the own machine (controller 10A) is a working system, the detection unit 32A detects whether or not both of the two controllers constituting the duplex system 1 are working systems, that is, whether or not they are split brains. .. For example, the detection unit 32A monitors each other's operating status at any time by transmitting and receiving signals to and from the controller 10B, and when the own machine (controller 10A) is operating as the active system, the controller 10B is in use from the standby system. Detects split brain when switching to the system. A specific example in which the detection unit 32A detects split brain will be described later.

起動部33Aは、前述の検知部32Aが、2台のコントローラの双方が現用系となったこと(スプリットブレイン)を検知し、かつ、前述の判断部31Aが自機(コントローラ10A)のデータベース25Aに異常が発生していると判断した場合に、自機を再起動して現用系から待機系に切り替える。 In the activation unit 33A, the above-mentioned detection unit 32A detects that both of the two controllers have become active systems (split brain), and the above-mentioned determination unit 31A is the database 25A of the own machine (controller 10A). If it is determined that an abnormality has occurred in the system, restart the own machine and switch from the active system to the standby system.

また、起動部33Aは、検知部32Aにより、2台のコントローラの双方が現用系となったことを検知し、かつ、判断部31Aにより、データベース25Aに異常が発生していないと判断した場合であっても、コントローラ10Bの後述する通知部34Bによる通知を受信し、当該通知元のコントローラ10Bとの間で自機の優先度が低い場合には、自機を再起動して待機系とする。 Further, the activation unit 33A detects that both of the two controllers have become active systems by the detection unit 32A, and determines that no abnormality has occurred in the database 25A by the determination unit 31A. Even if there is, if the notification by the notification unit 34B described later of the controller 10B is received and the priority of the own machine is low with the controller 10B of the notification source, the own machine is restarted to be a standby system. ..

なお、優先度とは、どのコントローラを現用系として優先的に稼働させるかを示す度合いを示すものであり、優先度が他のコントローラより低い場合、そのコントローラは現用系から待機系に切り替わる。優先度は、ユーザ(管理者)が各コントローラに予め設定しておけばよい。 The priority indicates the degree of which controller is preferentially operated as the active system, and when the priority is lower than that of other controllers, the controller is switched from the active system to the standby system. The priority may be set in advance by the user (administrator) in each controller.

通知部34Aは、判断部31Aによりデータベース25Aに異常が発生していないと判断した場合に、異常が発生していない旨を他のコントローラ(ここではコントローラ10B)に通知する。 When the determination unit 31A determines that an abnormality has not occurred in the database 25A, the notification unit 34A notifies another controller (here, the controller 10B) that no abnormality has occurred.

同期部35Aは、判断部31Aにより、自機のデータベース25Aに異常が発生していないと判断し、かつ、検知部32Aにより、2台以上のコントローラが現用系となっていないことを検知した場合に、自機が保持するデータを待機系のコントローラに同期させる。 When the synchronization unit 35A determines that an abnormality has not occurred in the database 25A of its own machine by the determination unit 31A, and detects that two or more controllers are not in the active system by the detection unit 32A. In addition, the data held by the own machine is synchronized with the standby controller.

次に、コントローラ10Bの構成例について、図3Bを参照して説明する。図3Bに示すように、コントローラ10Bは、SSD(Solid State Drive)20B、及びCPU(Central Processing Unit)30Bを備えている。SSD20Bには、前述したデータベース25Bが構築されている。 Next, a configuration example of the controller 10B will be described with reference to FIG. 3B. As shown in FIG. 3B, the controller 10B includes an SSD (Solid State Drive) 20B and a CPU (Central Processing Unit) 30B. The database 25B described above is constructed in the SSD 20B.

CPU30Bは、予めSSD20Bに記憶されている所定のプログラムを実行することにより、判断部31B、検知部32B、起動部33B、通知部34B、及び同期部35Bとして機能する。なお、判断部31B、検知部32B、起動部33B、通知部34B、及び同期部35Bの各部の機能は、前述した判断部31A、検知部32A、起動部33A、通知部34A、及び同期部35Aと基本的に同じであるため、ここではその説明を省略する。 The CPU 30B functions as a determination unit 31B, a detection unit 32B, an activation unit 33B, a notification unit 34B, and a synchronization unit 35B by executing a predetermined program stored in the SSD 20B in advance. The functions of the determination unit 31B, the detection unit 32B, the activation unit 33B, the notification unit 34B, and the synchronization unit 35B are the above-mentioned determination unit 31A, detection unit 32A, activation unit 33A, notification unit 34A, and synchronization unit 35A. Since it is basically the same as, the description thereof is omitted here.

<二重化システム1の動作例>
次に、実施の形態1に係る二重化システム1において、スプリットブレインが発生した場合の動作例について、図4のフローチャート、図5のタイミングチャートに基づき説明する。ここでは、具体例として、コントローラ10Aの電源がOFFであり、コントローラ10Bが現用系として稼働している状態からの動作例を説明する。また、ここでは、現用系として稼働しているコントローラ10Bのデータベース25Bは、判断部31Bにより既に正常であると判断されているものとする。
<Operation example of duplex system 1>
Next, in the duplex system 1 according to the first embodiment, an operation example when a split brain occurs will be described with reference to the flowchart of FIG. 4 and the timing chart of FIG. Here, as a specific example, an operation example will be described from a state in which the power supply of the controller 10A is OFF and the controller 10B is operating as an active system. Further, here, it is assumed that the database 25B of the controller 10B operating as the active system has already been determined to be normal by the determination unit 31B.

また、ここでは、図4において、コントローラ10Aを単に「A系」と記載し、コントローラ10Bを単に「B系」と記載する。また、図5において、かっこ付きの数字は図4のフローチャートにおけるステップ番号に対応し、「A」はコントローラが現用系であることを示し、「S」はコントローラが待機系であることを示す。 Further, here, in FIG. 4, the controller 10A is simply referred to as “A system”, and the controller 10B is simply referred to as “B system”. Further, in FIG. 5, the numbers in parentheses correspond to the step numbers in the flowchart of FIG. 4, “A” indicates that the controller is the active system, and “S” indicates that the controller is the standby system.

まず、二重化システム1は、コントローラ10Aを待機系として起動する(ステップST11)。 First, the duplex system 1 starts the controller 10A as a standby system (step ST11).

次に、コントローラ10Aは、現用系として稼働しているコントローラ10Bに対し、コントローラ10Bが保持しているデータ(データベース25B、及び同期するデータ26B(不図示))のコピーを要求する。この要求を受け付けたコントローラ10Bは、自機の保持するデータのコピーをコントローラ10Aに送信し、コントローラ10Bの保持するデータをコントローラ10Aのデータに同期する(ステップST12)。 Next, the controller 10A requests the controller 10B operating as an active system to copy the data (database 25B and the synchronized data 26B (not shown)) held by the controller 10B. Upon receiving this request, the controller 10B transmits a copy of the data held by the own machine to the controller 10A, and synchronizes the data held by the controller 10B with the data held by the controller 10A (step ST12).

ここで、この同期中に、コントローラ10Aとコントローラ10Bとを接続するネットワークが障害等により切断したとする。すると、二重化システム1は、同期処理が中断され、コントローラ10Aのデータベース25Aには、同期途中の不完全なデータが残される(ステップST13)。なお、図5において、データベース25Aの表示を一部破線としているのは、データベース25Aに不完全なデータが残されていることを示している。 Here, it is assumed that the network connecting the controller 10A and the controller 10B is disconnected due to a failure or the like during this synchronization. Then, the synchronization process is interrupted in the duplex system 1, and incomplete data in the middle of synchronization is left in the database 25A of the controller 10A (step ST13). In addition, in FIG. 5, the fact that the display of the database 25A is partially broken lines indicates that incomplete data is left in the database 25A.

次に、二重化システム1は、ネットワークが切断したことに伴い、コントローラ10Aを独立して動作させるべく、コントローラ10Aの電源を一旦OFFにし、コントローラ10Aを現用系として起動する(ステップST14)。このとき、コントローラ10Aは、自機のデータベース25Aに異常が発生しているか否かを判断する。この場合の処理について、図6のフローチャートを参照して説明する。 Next, the duplex system 1 temporarily turns off the power of the controller 10A and starts the controller 10A as an active system in order to operate the controller 10A independently when the network is disconnected (step ST14). At this time, the controller 10A determines whether or not an abnormality has occurred in the database 25A of the own machine. The processing in this case will be described with reference to the flowchart of FIG.

図6は、コントローラ10Aが自機のデータベース25Aに異常が発生しているか否かを判断する処理の流れを示すフローチャートである。まず、コントローラ10Aは、起動を開始すると(ステップST41)、データベース25Aの立ち上げを開始する(ステップST42)。そして、コントローラ10Aは、判断部31Aにより、データベース25Aに対してPingを送信する(ステップST43)。 FIG. 6 is a flowchart showing a flow of processing in which the controller 10A determines whether or not an abnormality has occurred in the database 25A of the own machine. First, when the controller 10A starts starting (step ST41), the controller 10A starts starting the database 25A (step ST42). Then, the controller 10A transmits a ping to the database 25A by the determination unit 31A (step ST43).

次に、判断部31Aは、データベース25Aから所定時間(例えば1分)以内に応答があるか否かを確認する(ステップST44)。その結果、データベース25Aから所定時間以内に応答があれば(ステップST44;YES)、判断部31Aは、データベース25Aが正常に立ち上がったと判断する(ステップST45)。そして、コントローラ10Aは起動を正常に完了する(ステップST46)。 Next, the determination unit 31A confirms whether or not there is a response from the database 25A within a predetermined time (for example, 1 minute) (step ST44). As a result, if there is a response from the database 25A within a predetermined time (step ST44; YES), the determination unit 31A determines that the database 25A has started up normally (step ST45). Then, the controller 10A normally completes the startup (step ST46).

一方、データベース25Aから所定時間以内に応答がなければ(ステップST44;NO)、判断部31Aは、データベース25Aに異常が発生していると判断する(ステップST47)。この場合、コントローラ10Aはエラー状態となって起動を停止する(ステップST48)。 On the other hand, if there is no response from the database 25A within a predetermined time (step ST44; NO), the determination unit 31A determines that an abnormality has occurred in the database 25A (step ST47). In this case, the controller 10A becomes an error state and stops starting (step ST48).

図4、図5の例では、二重化システム1は、同期処理の途中でネットワークが切断したため、コントローラ10Aのデータベース25Aには、同期途中の不完全なデータが残されている。したがって、判断部31Aは、送信したPingに対するデータベース25Aからの応答を得ることができず、データベース25Aに異常が発生していると判断する。その結果、コントローラ10Aは、エラー状態となって起動を停止する(ステップST15)。 In the examples of FIGS. 4 and 5, since the network of the duplex system 1 was disconnected during the synchronization process, incomplete data during the synchronization is left in the database 25A of the controller 10A. Therefore, the determination unit 31A cannot obtain a response from the database 25A to the transmitted Ping, and determines that an abnormality has occurred in the database 25A. As a result, the controller 10A becomes an error state and stops starting (step ST15).

その後、二重化システム1では、切断していたネットワークが復旧する(ステップST16)。これにより、二重化システム1は、コントローラ10Aとコントローラ10Bとの間の通信が再開する。 After that, in the duplex system 1, the disconnected network is restored (step ST16). As a result, the duplex system 1 resumes communication between the controller 10A and the controller 10B.

その後、二重化システム1では、コントローラ10Aの検知部32Aがスプリットブレインを検知する。同様に、コントローラ10Bの検知部32Bもスプリットブレインを検知する(ステップST17)。 After that, in the duplex system 1, the detection unit 32A of the controller 10A detects the split brain. Similarly, the detection unit 32B of the controller 10B also detects split brain (step ST17).

次に、コントローラ10Aは、コントローラ10Bに対し、通信により、自機のデータベース25Aに異常が発生していることを通知する。これにより、コントローラ10Bは、コントローラ10Aのデータベース25Aに異常が発生していることを検知する(ステップST18)。なお、このステップST18の処理は、必ずしも実行されなくともよいが、コントローラ10Bが確実にデータベース25Aの異常を検知するために実行されるのが望ましい。 Next, the controller 10A notifies the controller 10B that an abnormality has occurred in the database 25A of its own machine by communication. As a result, the controller 10B detects that an abnormality has occurred in the database 25A of the controller 10A (step ST18). The process of step ST18 does not necessarily have to be executed, but it is desirable that the controller 10B be executed in order to reliably detect an abnormality in the database 25A.

その後、コントローラ10Aは、起動部33Aにより、自機を待機系として再起動する(ステップST19)。 After that, the controller 10A is restarted by the activation unit 33A with its own machine as a standby system (step ST19).

次いで、コントローラ10Bは、コントローラ10Aが待機系となったため、検知部32Bにより、2台のコントローラが現用系となっていないこと、すなわちスプリットブレインではないことを検知する(ステップST20)。そして、コントローラ10Bは、同期部35Bにより、コントローラ10Bの保持するデータ(データベース25B、及び同期するデータ26B)をコントローラ10Aの保持するデータ(データベース25A、及び同期するデータ26A)に上書きすることで、コントローラ10Bの保持するデータを
コントローラ10Aに同期させる(ステップST21)。これにより、二重化システム1は、コントローラ10Aとコントローラ10Bとの間でデータの整合性が保たれ、正常に二重化された状態に復旧する。
Next, the controller 10B detects that the two controllers are not in the active system, that is, it is not a split brain, because the controller 10A has become a standby system (step ST20). Then, the controller 10B overwrites the data held by the controller 10B (database 25B and synchronized data 26B) with the data held by the controller 10A (database 25A and synchronized data 26A) by the synchronization unit 35B. The data held by the controller 10B is synchronized with the controller 10A (step ST21). As a result, the duplication system 1 maintains data integrity between the controller 10A and the controller 10B, and restores the duplication system to a normal duplication state.

なお、上記の例では、二重化システム1は、ステップST14において、判断部31Aがデータベース25Aに異常が発生していると判断した後に、ステップST17において、検知部32A、32Bがスプリットブレインを検知した。しかしながら、二重化システム1は、検知部32A、32Bによるスプリットブレインの検知を実行した後に、判断部31Aがデータベース25Aに異常が発生していると判断してもよく、あるいはこれらの処理を並行して実行してもよい。 In the above example, in step ST14, after the determination unit 31A determines that an abnormality has occurred in the database 25A in step ST14, the detection units 32A and 32B detect split brain in step ST17. However, in the duplex system 1, after the detection units 32A and 32B detect the split brain, the determination unit 31A may determine that an abnormality has occurred in the database 25A, or perform these processes in parallel. You may do it.

また、上記の例では、コントローラ10Aの電源がOFFとなっており、コントローラ10Bが現用系として稼働している状態からの動作例を説明した。しかしながら、これとは逆に、コントローラ10Aが現用系として稼働し、コントローラ10Bの電源がOFFである場合でも、各コントローラは上記と同様の流れでスプリットブレインからの復旧及びデータの同期を行えばよい。 Further, in the above example, an operation example from a state in which the power supply of the controller 10A is turned off and the controller 10B is operating as an active system has been described. However, on the contrary, even when the controller 10A operates as an active system and the power supply of the controller 10B is OFF, each controller may recover from the split brain and synchronize data in the same flow as described above. ..

このように、二重化システム1では、スプリットブレインからシステムを復旧する際、コントローラ10A、10Bのデータベース25A、25Bに異常が発生しているか否かの判断を行い、データベースに異常が発生していると判断された場合、そのコントローラ(ここではコントローラ10A)を再起動して現用系から待機系に切り替える。そして、二重化システム1は、待機系に切り替わったコントローラ10Aの保持しているデータを破棄し、現用系として稼働を継続しているコントローラ10Bのデータを、待機系に切り替わったコントローラ10Aに同期するように構成した。 In this way, in the duplex system 1, when recovering the system from the split brain, it is determined whether or not an abnormality has occurred in the databases 25A and 25B of the controllers 10A and 10B, and it is determined that an abnormality has occurred in the database. If it is determined, the controller (controller 10A in this case) is restarted to switch from the active system to the standby system. Then, the duplex system 1 discards the data held by the controller 10A that has been switched to the standby system, and synchronizes the data of the controller 10B that is continuing to operate as the active system with the controller 10A that has been switched to the standby system. It was configured in.

特に、従来は、スプリットブレインからの復旧時に、現用系のコントローラと待機系のコントローラのそれぞれが保持するデータに異常があるかどうかの確認は行っていなかった。そのため、仮に同期するデータの提供元となるコントローラのデータに何らかの異常があった場合、当該異常のあるデータが同期されてシステムがダウンするなどの不具合が発生するおそれがあった。 In particular, conventionally, when recovering from split brain, it has not been confirmed whether or not there is an abnormality in the data held by each of the active controller and the standby controller. Therefore, if there is any abnormality in the data of the controller that is the source of the data to be synchronized, there is a possibility that the abnormal data may be synchronized and the system may go down.

これに対し、二重化システム1は、スプリットブレインからの復旧に際し、まず現用系のコントローラと待機系のコントローラのそれぞれのデータベースに異常が発生しているか否かを判断し、データベースに異常が発生していると判断されたコントローラを現用系から待機系に切り替える。そして、待機系に切り替わったコントローラの保持しているデータを破棄するとともに、現用系として稼働を継続するコントローラの保持するデータを、待機系に切り替わったコントローラに同期させる。これにより、二重化システム1は、スプリットブレインからの復旧時に、コントローラ10Aとコントローラ10Bとの間で異常なデータが同期されることによりシステムに不具合が発生することを回避しつつ、データの整合性を保つことができる。 On the other hand, when recovering from split brain, the duplex system 1 first determines whether or not an error has occurred in each of the databases of the active controller and the standby controller, and the database has an error. Switch the controller determined to be present from the active system to the standby system. Then, the data held by the controller switched to the standby system is discarded, and the data held by the controller that continues to operate as the active system is synchronized with the controller switched to the standby system. As a result, the duplex system 1 ensures data integrity while avoiding system malfunction due to abnormal data synchronization between the controllers 10A and the controller 10B when recovering from split brain. Can be kept.

なお、図4、図5では、コントローラ10Aのデータベース25Aに異常が発生したと判断された例を説明したが、例えばコントローラ10Aのデータベース25Aに異常がなく、コントローラ10Bのデータベース25Bにも異常がなかった場合も想定される。その場合、両コントローラ10A、10Bは、通知部34A、34Bにより、自機のデータベースに異常がないと判断された旨を相互に通知し合う。 In addition, in FIGS. 4 and 5, an example in which it was determined that an abnormality occurred in the database 25A of the controller 10A was described. For example, there is no abnormality in the database 25A of the controller 10A, and there is no abnormality in the database 25B of the controller 10B. It is also assumed that this is the case. In that case, the two controllers 10A and 10B mutually notify each other by the notification units 34A and 34B that it is determined that there is no abnormality in the database of their own machine.

そして、コントローラ10A、10Bは、検知部32A、32Bが、2台以上のコントローラが現用系となったことを検知し、かつ、判断部31A、31Bが、データベース25A、25Bに異常が発生していないと判断した場合であっても、通知部34A、34Bによる通知を受信し、当該通知元のコントローラとの間で自機の優先度が低い場合には、起動部33A、33Bにより自機を再起動して待機系とする。 Then, the controllers 10A and 10B detect that the detection units 32A and 32B have become the active system of two or more controllers, and the determination units 31A and 31B have an abnormality in the databases 25A and 25B. Even if it is determined that there is no notification, if the notification by the notification units 34A and 34B is received and the priority of the own unit is low with the controller of the notification source, the activation unit 33A and 33B will use the activation unit 33A and 33B to control the own unit. Reboot and make it a standby system.

例えば、図4のステップST15において、コントローラ10Aは判断部31Aにより、データベース25Aに異常がないと判断したとする。この場合、通知部34Aは、データベース25Aに異常がないと判断した旨をコントローラ10Bに通知する。一方、コントローラ10Bでも、判断部31Bにより、データベース25Bに異常がないと判断されているので、通知部34Bは、データベース25Bに異常がないと判断された旨をコントローラ10Aに通知する。 For example, in step ST15 of FIG. 4, it is assumed that the controller 10A determines by the determination unit 31A that there is no abnormality in the database 25A. In this case, the notification unit 34A notifies the controller 10B that there is no abnormality in the database 25A. On the other hand, also in the controller 10B, since the determination unit 31B determines that there is no abnormality in the database 25B, the notification unit 34B notifies the controller 10A that the database 25B is determined to have no abnormality.

このとき、コントローラ10Aは、自機のデータベース25Aに異常が発生していないと判断した場合であっても、自機の優先度がコントローラ10Bの優先度よりも低ければ、起動部33Aにより自機を再起動して待機系とする。そして、コントローラ10Bは、判断部31Bにより、データベース25Bに異常が発生していないと判断し、かつ、検知部32Bにより、2台のコントローラが現用系となっていないことを検知すると、同期部35Bにより、自機のデータを待機系のコントローラ10Aに同期させる。 At this time, even if the controller 10A determines that no abnormality has occurred in the database 25A of the own machine, if the priority of the own machine is lower than the priority of the controller 10B, the activation unit 33A causes the own machine. Is restarted to make it a standby system. Then, when the controller 10B determines that no abnormality has occurred in the database 25B by the determination unit 31B and the detection unit 32B detects that the two controllers are not in the active system, the synchronization unit 35B This synchronizes the data of the own machine with the standby controller 10A.

なお、これとは逆に、例えばコントローラ10Bの優先度がコントローラ10Aの優先度よりも低い場合も、上記と同様の流れで、コントローラ10Bが待機系に切り替わり、コントローラ10Aのデータをコントローラ10Bに同期させればよい。 On the contrary, for example, when the priority of the controller 10B is lower than the priority of the controller 10A, the controller 10B is switched to the standby system and the data of the controller 10A is synchronized with the controller 10B in the same flow as described above. Just let me do it.

また、冗長システムが例えば3台以上のコントローラで構成され、データベースに異常がないと判断されたコントローラが2台以上あった場合も、上記と同様の流れで待機系に切り替わるコントローラを決定すればよい。例えば、冗長システムが3台のコントローラで構成され、3台ともデータベースに異常がないと判断された場合、各コントローラは、通知部により、自機のデータベースに異常がないと判断された旨を相互に通知し合う。この場合、各コントローラは、自機と当該通知元のコントローラとの間で優先度を比較し、自機の優先度が低い場合には、起動部により自機を再起動して待機系とする。そして、最も優先度の高いコントローラ(すなわち現用系を維持するコントローラ)が、同期部により自機のデータを待機系のコントローラに同期させればよい。 Further, even if the redundant system is composed of, for example, three or more controllers and there are two or more controllers that are judged to have no abnormality in the database, the controller that switches to the standby system may be determined in the same flow as above. .. For example, if the redundant system consists of three controllers and it is determined that there is no abnormality in the database of all three controllers, each controller mutually indicates that the database of its own machine is determined to be normal by the notification unit. Notify each other. In this case, each controller compares the priority between the own machine and the controller of the notification source, and if the priority of the own machine is low, the starter restarts the own machine to make it a standby system. .. Then, the controller having the highest priority (that is, the controller that maintains the active system) may synchronize the data of its own machine with the controller of the standby system by the synchronization unit.

なお、待機系に切り替わるコントローラを優先度に基づいて決定する方法はあくまで一例であり、その他の方法で待機系に切り替わるコントローラを決定してもよい。例えば、各コントローラのデータベースに格納されているデータ数を比較し、データ数が最も多いコントローラ以外のコントローラを待機系に切り替えるようにしてもよい。 The method of determining the controller to switch to the standby system based on the priority is only an example, and the controller to switch to the standby system may be determined by another method. For example, the number of data stored in the database of each controller may be compared, and the controller other than the controller having the largest number of data may be switched to the standby system.

以上のように、実施の形態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は、スプリットブレインからの復旧時に、複数のコントローラ間で異常なデータが同期されることによりシステムに不具合が発生することを回避しつつ、データの整合性を保つことができる。 As described above, according to the first embodiment, the redundant system 1 is configured to include a plurality of controllers 10A and 10B, and the controllers 10A and 10B are stored in the databases 25A and 25B when the own machine is an active system. Judgment units 31A and 31B for determining whether or not an abnormality has occurred, and detection units 32A and 32B for detecting whether or not two or more controllers have become active systems when the own machine is an active system. When the determination units 31A and 31B determine that an abnormality has occurred in the databases 25A and 25B, and the detection units 32A and 32B detect that two or more controllers have become active systems, they themselves. The activation units 33A and 33B and the detection units 32A and 32B, which restart the machine and use it as a standby system, detect that two or more controllers are not in the active system, and the judgment units 31A and 31B When it is determined that no abnormality has occurred in the databases 25A and 25B, the synchronization units 35A and 35B for synchronizing the data of the own machine with the controller of the standby system are provided. As a result, the redundant system 1 can maintain data integrity while avoiding a system malfunction due to abnormal data synchronization between a plurality of controllers when recovering from split brain. ..

また、実施の形態1によれば、冗長システム1は、判断部31A、31Bがデータベース25A、25Bに異常が発生していないと判断した場合に、異常が発生していない旨を他のコントローラに通知する通知部34A、34Bを備え、起動部33A、33Bは、検知部32A、32Bが、2台以上のコントローラが現用系となったことを検知し、かつ、判断部31A、31Bが、データベース25A、25Bに異常が発生していないと判断した場合であっても、通知部34A、34Bによる通知を受信し、当該通知元のコントローラとの間で自機の優先度が低い場合には、自機を再起動して待機系とする。これにより、冗長システム1は、同期するデータの提供元となり得るコントローラが複数あった場合でも、優先度が他より低いコントローラが待機系に切り替わるため、コントローラ間でデータの整合性を速やかに保つことができる。 Further, according to the first embodiment, when the determination units 31A and 31B determine that no abnormality has occurred in the databases 25A and 25B, the redundant system 1 informs another controller that no abnormality has occurred. Notifying units 34A and 34B are provided, the activation units 33A and 33B detect that two or more controllers have become active systems, and the determination units 31A and 31B have databases. Even if it is determined that no abnormality has occurred in 25A or 25B, if the notification by the notification units 34A and 34B is received and the priority of the own machine is low with the controller of the notification source, Restart your own machine to make it a standby system. As a result, in the redundant system 1, even if there are a plurality of controllers that can provide data to be synchronized, the controller having a lower priority than the others is switched to the standby system, so that the data consistency between the controllers can be maintained promptly. Can be done.

また、実施の形態1によれば、判断部は、データベースに対して所定の信号を送信し、当該信号に対して所定時間以内に応答がない場合に、当該データベースに異常が発生していると判断する。これにより、冗長システム1は、データベースに異常が発生しているか否かを容易に判断することができる。 Further, according to the first embodiment, the determination unit transmits a predetermined signal to the database, and when there is no response to the signal within the predetermined time, the database is said to have an abnormality. to decide. As a result, the redundant system 1 can easily determine whether or not an abnormality has occurred in the database.

なお、本願発明はその発明の範囲内において、実施の形態の任意の構成要素の変形、もしくは実施の形態において任意の構成要素の省略が可能である。 In the present invention, within the scope of the invention, it is possible to modify any component of the embodiment or omit any component in the embodiment.

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 監視ポイント
1 Redundant system (redundant system)
10 Controller 10A Active controller 10B Standby controller 20A, 20B SSD
25A, 25B Database 26A, 26B Synchronized data 30A, 30B CPU
31A, 31B Judgment unit 32A, 32B Detection unit 33A, 33B Activation unit 34A, 34B Notification unit 35A, 35B Synchronization unit 150 System bus 200 Monitoring point

Claims (4)

複数のコントローラを含んで構成される冗長システムであって、
前記各コントローラは、
自機が現用系の場合に、データベースに異常が発生しているか否かを判断する判断部と、
自機が現用系の場合に、2台以上のコントローラが現用系となったか否かを検知する検知部と、
前記検知部が、2台以上のコントローラが現用系となったことを検知し、かつ、前記判断部が、前記データベースに異常が発生していると判断した場合に、自機を再起動して待機系とする起動部と、
前記検知部が、2台以上のコントローラが現用系となっていないことを検知し、かつ、前記判断部が、前記データベースに異常が発生していないと判断した場合に、自機のデータを待機系のコントローラに同期させる同期部と、
を備えたことを特徴とする冗長システム。
A redundant system that includes multiple controllers
Each of the above controllers
A judgment unit that determines whether or not an error has occurred in the database when the own machine is a working system,
When the own machine is a working system, a detector that detects whether or not two or more controllers have become a working system, and
When the detection unit detects that two or more controllers have become active systems and the judgment unit determines that an abnormality has occurred in the database, the own machine is restarted. The startup part that is the standby system and
When the detection unit detects that two or more controllers are not in the active system and the judgment unit determines that no abnormality has occurred in the database, it waits for the data of its own machine. A synchronization unit that synchronizes with the system controller,
A redundant system characterized by being equipped with.
前記判断部が前記データベースに異常が発生していないと判断した場合に、異常が発生していない旨を他のコントローラに通知する通知部を備え、
前記起動部は、
前記検知部が、2台以上のコントローラが現用系となったことを検知し、かつ、前記判断部が、前記データベースに異常が発生していないと判断した場合であっても、前記通知部による通知を受信し、当該通知元のコントローラとの間で自機の優先度が低い場合には、自機を再起動して待機系とすることを特徴とする請求項1記載の冗長システム。
When the determination unit determines that an abnormality has not occurred in the database, it is provided with a notification unit for notifying another controller that no abnormality has occurred.
The starter
Even if the detection unit detects that two or more controllers have become active systems and the determination unit determines that no abnormality has occurred in the database, the notification unit will be used. The redundant system according to claim 1, wherein when a notification is received and the priority of the own machine is low with the controller of the notification source, the own machine is restarted to be a standby system.
前記判断部は、前記データベースに対して所定の信号を送信し、当該信号に対して所定時間以内に応答がない場合に、当該データベースに異常が発生していると判断することを特徴とする請求項1又は請求項2に記載の冗長システム。 A claim characterized in that the determination unit transmits a predetermined signal to the database, and determines that an abnormality has occurred in the database when there is no response to the signal within a predetermined time. The redundant system according to claim 1 or 2. 冗長システムを構成する複数のコントローラによるデータ同期方法であって、
前記各コントローラは、
判断部が、自機が現用系の場合に、データベースに異常が発生しているか否かを判断するステップと、
検知部が、自機が現用系の場合に、2台以上のコントローラが現用系となったことを検知するステップと、
前記検知部が、2台以上のコントローラが現用系となったことを検知し、かつ、前記判断部が、前記データベースに異常が発生していると判断した場合に、起動部が、自機を再起動して待機系とするステップと、
前記検知部が、2台以上のコントローラが現用系となっていないことを検知し、かつ、前記判断部が、前記データベースに異常が発生していないと判断した場合に、同期部が、自機のデータを待機系のコントローラに同期させるステップと、
を備えたことを特徴とするデータ同期方法。
A data synchronization method using multiple controllers that make up a redundant system.
Each of the above controllers
The step that the judgment unit determines whether or not an error has occurred in the database when the own machine is a working system,
The step that the detection unit detects that two or more controllers have become the active system when the own machine is the active system,
When the detection unit detects that two or more controllers have become active systems and the judgment unit determines that an abnormality has occurred in the database, the activation unit activates the own machine. The step of restarting and making it a standby system,
When the detection unit detects that two or more controllers are not in the active system and the judgment unit determines that an abnormality has not occurred in the database, the synchronization unit causes the own machine. Steps to synchronize the data of the standby system with the controller of the standby system,
A data synchronization method characterized by being equipped with.
JP2019097811A 2019-05-24 2019-05-24 Redundant system and data synchronization method Active JP7422492B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019097811A JP7422492B2 (en) 2019-05-24 2019-05-24 Redundant system and data synchronization method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019097811A JP7422492B2 (en) 2019-05-24 2019-05-24 Redundant system and data synchronization method

Publications (2)

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

Family

ID=73547545

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019097811A Active JP7422492B2 (en) 2019-05-24 2019-05-24 Redundant system and data synchronization method

Country Status (1)

Country Link
JP (1) JP7422492B2 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002116920A (en) * 2000-10-05 2002-04-19 Toshiba Corp Cluster system, monitoring method in cluster system, and computer program
JP2006146299A (en) * 2004-11-16 2006-06-08 Nec Corp Split brain recovery system, split brain recovery method and program
JP2009157662A (en) * 2007-12-26 2009-07-16 Nec Corp Database management apparatus, database management method, and database management program
JP2009223519A (en) * 2008-03-14 2009-10-01 Toshiba Corp Cluster system and method for selecting master node in system
JP2018055197A (en) * 2016-09-26 2018-04-05 横河電機株式会社 Processor, network device, method for controlling processor, method for controlling network device, control program of processor, control program of network device and recording medium

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007086972A (en) 2005-09-21 2007-04-05 Hitachi Ltd Storage system, duplex control method, and program
JP5446405B2 (en) 2009-04-09 2014-03-19 富士通株式会社 Event detection control method and system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002116920A (en) * 2000-10-05 2002-04-19 Toshiba Corp Cluster system, monitoring method in cluster system, and computer program
JP2006146299A (en) * 2004-11-16 2006-06-08 Nec Corp Split brain recovery system, split brain recovery method and program
JP2009157662A (en) * 2007-12-26 2009-07-16 Nec Corp Database management apparatus, database management method, and database management program
JP2009223519A (en) * 2008-03-14 2009-10-01 Toshiba Corp Cluster system and method for selecting master node in system
JP2018055197A (en) * 2016-09-26 2018-04-05 横河電機株式会社 Processor, network device, method for controlling processor, method for controlling network device, control program of processor, control program of network device and recording medium

Also Published As

Publication number Publication date
JP7422492B2 (en) 2024-01-26

Similar Documents

Publication Publication Date Title
CA2733788C (en) Method and systems for redundant server automatic failover
US20190394266A1 (en) Cluster storage system, data management control method, and non-transitory computer readable medium
US20130173839A1 (en) Switch disk array, storage system and data storage path switching method
CN109471759B (en) A kind of database failure switching method and equipment based on SAS dual control equipment
JP3882783B2 (en) Programmable controller, CPU unit, communication unit and communication unit control method
WO2016180005A1 (en) Method for processing virtual machine cluster and computer system
CN111064646B (en) Looped network redundancy method, device and storage medium based on broadband field bus
JP4320314B2 (en) Computer system, synchronization processing method, and program
JP5707355B2 (en) Hot-standby client-server system
JP6511739B2 (en) Redundant system and redundant method
WO2010100757A1 (en) Arithmetic processing system, resynchronization method, and firmware program
JP5285045B2 (en) Failure recovery method, server and program in virtual environment
JP7422492B2 (en) Redundant system and data synchronization method
CN104133700A (en) Dual-system switching method of exchange and routing device
CN113794765A (en) Gate load balancing method and device based on file transmission
CN113472891A (en) SDN controller cluster data processing method, device and medium
CN112737844A (en) Method and device for switching between main and standby in redundant system
JP2006268278A (en) Remote maintenance computer maintenance system
US20200089585A1 (en) Distributed processing system and method for management of distributed processing system
CN103744702A (en) Dual-system starting method of switching and routing device
EP2136296A1 (en) Information processing apparatus and domain dynamic reconfiguration processing method
JP4874211B2 (en) Computer system, synchronous operation method, node, and program
KR101401006B1 (en) Method and appratus for performing software upgrade in high availability system
US11853175B2 (en) Cluster system and restoration method that performs failover control
JP7110937B2 (en) Information processing system and information processing device

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