JP7340956B2 - Redundant system and data synchronization method - Google Patents
Redundant system and data synchronization method Download PDFInfo
- Publication number
- JP7340956B2 JP7340956B2 JP2019097799A JP2019097799A JP7340956B2 JP 7340956 B2 JP7340956 B2 JP 7340956B2 JP 2019097799 A JP2019097799 A JP 2019097799A JP 2019097799 A JP2019097799 A JP 2019097799A JP 7340956 B2 JP7340956 B2 JP 7340956B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- database
- update
- controller
- synchronization
- 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
Links
Images
Landscapes
- Hardware Redundancy (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
この発明は、冗長システムを構成する複数のコントローラ間でデータを同期させる技術に関する。 The present invention relates to a technology for synchronizing data between multiple controllers forming a redundant system.
従来、プラントなどのプロセス制御に用いるプロセス制御システムにおいて、高信頼性を要求される場合には、複数のコントローラを設ける冗長構造をもつ構成が用いられている。このように、コントローラを多重化してシステムを冗長させることで、システムはより安定した運用を行える。このような冗長構造をもつ従来のプラント制御システムは、例えば、現用系として稼働する第1のコントローラと、待機系として稼働する第2のコントローラを備え、第1のコントローラに異常が発生すると、待機系だった第2のコントローラを現用系に切り替える。一般的に、このような冗長システムでは、2台の装置が同じ内容のデータを保持するよう、互いの装置間でデータを同期させる処理が行われる(例えば特許文献1参照)。 BACKGROUND ART Conventionally, in process control systems used for process control of plants and 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 making the system redundant by multiplexing controllers, the system can operate more stably. Conventional plant control systems with such a redundant structure include, 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, the system Switch the second controller that was the system to the active system. Generally, in such a redundant system, a process is performed to synchronize data between two devices so that the two devices hold data with the same content (for example, see Patent Document 1).
冗長システムを構成する装置間でデータを同期させる方法はいくつか知られている。しかし、ビル等の施設内に設置されている複数の監視対象機器を監視する施設監視システムにおいて、2台のコントローラ間でそれらの汎用的な技術を用いてデータの同期を行うと、不具合が生じる場合がある。 Several methods are known for synchronizing data between devices that make up a redundant system. However, in a facility monitoring system that monitors multiple monitored devices installed in facilities such as buildings, problems occur when data is synchronized between two controllers using these general-purpose technologies. There are cases.
例えば、施設監視システムは、2台のコントローラによる二重化構成とされ、各コントローラはそれぞれデータベースを備えている。データベースには、例えば監視対象機器(以下、「監視ポイント」という。)から収集した当該監視ポイントの現在値を示すデータなど、施設監視システムにおいて比較的重要度の高いデータ、あるいは更新頻度の高いデータが格納される。 For example, a facility monitoring system has a duplex configuration with two controllers, each controller having its own database. The database includes data that is relatively important in the facility monitoring system, such as data collected from monitored equipment (hereinafter referred to as "monitoring points") indicating the current value of the monitoring point, or data that is updated frequently. is stored.
コントローラは、データベース内のこれらのデータを更新する際、更新トランザクションを実行する。コントローラは、更新トランザクションが正常に終了(コミット)すると、当該データをデータベースに書き込み、データベースの更新を完了する。一方、コントローラは、更新トランザクションの実行中に何らかの障害が発生すると、当該更新を無効とし、データベースを更新前の状態に戻す。したがって、当該更新の途中状態のデータが他方のコントローラに同期されることは本来は望ましくない。 The controller performs update transactions when updating these data in the database. When the update transaction is successfully completed (committed), the controller writes the data to the database and completes the database update. On the other hand, if any failure occurs during execution of an update transaction, the controller invalidates the update and returns the database to its pre-update state. Therefore, it is originally undesirable for the data in the middle of updating to be synchronized with the other controller.
しかし、2台のコントローラ間で汎用的な技術によりデータの同期を行った場合、その方法によっては更新途中の不完全なデータが他方のコントローラのデータベースに同期されてしまう場合があった。また、その場合、他方のコントローラで当該不完全なデータが含まれたデータベースを復元しようとすると、データベースそのものが壊れてしまうおそれもあった。 However, when data is synchronized between two controllers using a general-purpose technique, incomplete data that is being updated may be synchronized with the database of the other controller depending on the method. Furthermore, in this case, if the other controller attempts to restore the database containing the incomplete data, there is a risk that the database itself will be destroyed.
この発明は、上記のような課題を解決するためになされたもので、複数のコントローラ間において、データを正確に同期させることを目的としている。 The present invention was made to solve the above-mentioned problems, and its purpose is to accurately synchronize data between a plurality of controllers.
この発明に係る冗長システムは、複数のコントローラにより構成され、各コントローラは、互いに異なる同期方法であり、得られたデータを待機系のコントローラのデータと同期させる複数の同期部と、自機が現用系の場合に、得られたデータを当該データの種別に応じて複数の同期部のうちの1つに出力する出力部と、を備え、出力部は、得られたデータの種別が、当該データの重要度あるいは当該データの更新頻度が冗長システムにおいて最も高い第1のデータであれば、当該第1のデータを複数の同期部のうちの1つであるデータベース同期モジュールに出力し、データベース同期モジュールは、第1のデータに基づく自機のデータベースの更新が正常終了した場合、当該第1のデータのコピーを待機系のコントローラに送信し、第1のデータに基づく自機のデータベースの更新が正常終了しなかった場合、当該第1のデータのコピーを待機系のコントローラに送信しないことを特徴とする。 The redundant system according to the present invention is composed of a plurality of controllers, each controller has a different synchronization method, and a plurality of synchronization units that synchronize obtained data with data of a standby controller, and In the case of a system, the output section outputs the obtained data to one of a plurality of synchronization sections according to the type of the data, and the output section outputs the obtained data to one of the plurality of synchronization sections according to the type of the data. If the first data has the highest importance or update frequency in the redundant system, the first data is output to the database synchronization module, which is one of the plurality of synchronization units, and the database synchronization module If the update of the database of the machine based on the first data is completed normally, the copy of the first data is sent to the standby controller, and the update of the database of the machine based on the first data is completed successfully. If the process does not end, the copy of the first data is not sent to the standby controller .
この発明によれば、上記のように構成したので、複数のコントローラ間において、データを正確に同期させることができる。 According to the present invention, with the above configuration, data can be accurately synchronized between a plurality of controllers.
以下、この発明の実施の形態について図面を参照しながら詳細に説明する。
実施の形態1.
図1は、この発明の実施の形態1に係る冗長システムの構成例を示している。冗長システム1は、複数(ここでは2台)のコントローラ10(10A、10B)と、複数の監視ポイント200と、不図示の監視装置とを含んで構成されている。コントローラ10A、10Bと、各監視ポイント200と、監視装置とは、システムバス150を介して相互に通信可能に接続されている。ここでは、コントローラが2台で構成されているため、冗長システム1を二重化システム1として説明する。しかしながら、コントローラの台数は必ずしも2台でなくともよく、いずれか1台のコントローラが現用系(アクティブ)として稼働できる構成であれば、3台以上であってもよい。
Embodiments of the present invention will be described in detail below with reference to the drawings.
Embodiment 1.
FIG. 1 shows an example of the configuration of a redundant system according to Embodiment 1 of the present invention. The redundant system 1 includes a plurality of (two in this case) controllers 10 (10A, 10B), a plurality of
二重化システム1は、二重化機能を備えている。二重化機能は、2台のコントローラ10A、10Bで監視ポイント200の監視、制御を行う機能である。すなわち、二重化システム1は、通常時はコントローラ10Aを現用系、コントローラ10Bを待機系(スタンバイ)として稼働させ、現用系のコントローラ10Aが監視ポイント200の監視、制御、及びデータの収集等の処理を行う。コントローラ10Aは、データベース25Aが構築されたSSD(Solid State Drive)20Aを備えており、コントローラ10Aは、監視ポイント200から収集したデータを、SSD20A内のデータベース25Aに格納する。
The duplex system 1 has a duplex function. The duplication function is a function that monitors and controls the
また、二重化機能は、データベースの同期も管理する。例えば、二重化システム1では、現用系のコントローラ10Aが起動した状態で、待機系のコントローラ10Bが起動すると、待機系のコントローラ10Bは、現用系のコントローラ10Aに対し、データベース25Aのコピーを要求する。この要求を受け付けたコントローラ10Aは、コントローラ10Bに対し、データベース25Aのコピーを送信する。コントローラ10Bは、コントローラ10Aからデータベース25Aのコピーを受信すると、当該コピーを用いて、自機が備えるSSD20B内にデータベース25Bを構築する。
The duplication function also manages database synchronization. For example, in the duplex system 1, when the
その後、コントローラ10Aは、データベース25Aの更新を完了する度に、当該データベース25Aを更新したデータのコピーをコントローラ10Bに送信する。コントローラ10Bは、コントローラ10Aから受信した更新データのコピーをデータベース25Bに書き込み、データベース25Bの更新を完了する。このようにして、二重化システム1は、データベース25A、25Bの同期を行う。
Thereafter, each time the
また、二重化システム1は、現用系のコントローラ10Aに障害などの問題が発生した場合、待機系のコントローラ10Bを現用系に切り替える。現用系に切り替わったコントローラ10Bは、監視ポイント200の監視、制御、及びデータの収集等の処理を継続し、監視ポイント200から収集したデータを、SSD20B内のデータベース25Bに格納する。
Further, in the duplex system 1, when a problem such as a failure occurs in the
ここで、実施の形態1では、コントローラ10A、10Bは、データベース25A、25Bに格納されるデータをはじめとする種々のデータを、複数の種別に分類してSSD20A、20Bに記憶している。次に、SSD20A、20Bに記憶されるデータの種別について、図2を参照しながら説明する。
Here, in the first embodiment, the
例えば、SSD20Aには図2に示すように、データが「第1のデータ」、「第2のデータ」、「第3のデータ」の3つの種別に分かれて記憶されている。ここで、「第1のデータ」とは、「データベース25Aに格納し、かつデータベース25Bのデータと同期するデータ」であり、「第2のデータ」とは、「データベース25Aに格納しないが、SSD20Bのデータと同期するデータ」である。また、「第3のデータ」とは、「SSD20Bのデータと同期しないデータ」である。
For example, as shown in FIG. 2, the
この分類は、例えば二重化システム1におけるデータの重要度、あるいは二重化システム1におけるデータの更新頻度に基づいて定められるものであり、「第1のデータ」が重要度あるいは更新頻度が最も高く、次に「第2のデータ」、最後に「第3のデータ」の順に、重要度あるいは更新頻度が高くなっている。 This classification is determined based on, for example, the importance of data in the duplex system 1 or the update frequency of data in the duplex system 1, with "first data" having the highest importance or update frequency, followed by The importance or update frequency increases in the order of "second data" and finally "third data."
「第1のデータ」には、例えば監視ポイント200から収集した現在値(例えば、当該ポイント200が温度センサであればその検出温度)、監視ポイント200に関する事象ログ(例えば当該ポイント200において何時何分に障害が発生した)などが含まれる。これらのデータは、二重化システム1において比較的重要度が高く、かつ更新頻度も高いものと考えられる。したがって、二重化システム1では、これらのデータを1つの種別として取り扱うこととし、これらのデータはデータベース25Aに格納し、かつデータベース25Bのデータと同期させる。
The "first data" includes, for example, the current value collected from the monitoring point 200 (for example, the detected temperature if the
「第2のデータ」には、例えば、コントローラ10Aに関する各種設定データ、コントローラ10Aにインストールされているソフトウェア及びハードウェアのライセンスに関するデータ、二重化システム1のシステム構成に関するデータなどが含まれる。これらのデータは、二重化システム1において、第1のデータほど重要度あるいは更新頻度は高くないが、SSD20Bとの間では同期させた方がよいと考えられるデータである。したがって、二重化システム1では、これらのデータを1つの種別として取り扱うこととし、これらのデータはデータベース25Aには格納しないが、SSD20Bのデータとは同期させる。
The "second data" includes, for example, various setting data regarding the
「第3のデータ」には、例えばコントローラ10AのOS関連のプログラム、コントローラ10Aにインストールされている各種アプリケーションプログラム、コントローラ10Aのシステムログ、コントローラ10Aに搭載されているハードウェアの固有情報などが含まれる。これらのデータは、SSD20Bとの間で同期せずともよいと考えられるデータであるため、二重化システム1ではこれらのデータを1つの種別として取り扱うこととし、これらのデータはSSD20Bのデータとは同期させない。
The "third data" includes, for example, programs related to the OS of the
また、コントローラ10Aは、図2に示すように、設定部45Aを備えている。設定部45Aには、上記した第1のデータ及び第2のデータをどのような方法でSSD20Bのデータと同期させるかが設定されている。設定部45Aは、例えばコントローラ10Aが備える不図示のメモリに構成されている。
The
例えば、設定部45Aには、第1のデータを二重化システム1が備える二重化機能によりSSD20B(データベース25B)のデータと同期させることが設定されている。同様に、設定部45Aには、第2のデータを、データの同期方法として広く知られているDRBD(Distributed Replicated Block Device、登録商標)によりSSD20Bのデータと同期させることが設定されている。なお、設定部45Aには、第3のデータはSSD20Bのデータと同期しないことが設定されていてもよい。
For example, the
なお、ここで説明したデータの種別とその具体例、及びデータの種別毎の同期方法は、例えばコントローラ10Aの設計段階でユーザ(管理者)により決められればよい。また、第2のデータの同期方法として例示したDRBDはあくまで一例であり、第2のデータの同期方法はその他の方法であってもよい。
Note that the types of data, their specific examples, and the synchronization method for each type of data described here may be determined by the user (administrator) at the design stage of the
また、詳しい説明は省略するが、待機系のコントローラ10Bが備えるSSD20Bも、上述したSSD20Aと同様の構成を有している。すなわち、SSD20Bにも、データが「第1のデータ」、「第2のデータ」、「第3のデータ」に分かれて記憶されている。また、コントローラ10Bは、上述した設定部45Aと同様の内容が設定された設定部45Bを備えている。
Furthermore, although a detailed explanation will be omitted, the
次に、コントローラ10A、10Bにインストールされているソフトウェアの構成例について、図3を参照して説明する。図3に示すように、コントローラ10Aとコントローラ10Bとは、基本的に同一のソフトウェア構成を有している。なお、図3において、実線矢印は前述の「第1のデータ」を更新するデータ(以下、「第1の更新データ」と称する。)の流れを示し、破線矢印は「第2のデータ」を更新するデータ(以下、「第2の更新データ」と称する。)の流れを示し、一点鎖線の矢印は「第3のデータ」を更新するデータ(以下、「第3の更新データ」と称する。)の流れを示している。
Next, an example of the configuration of software installed in the
<コントローラ10Aのソフトウェア構成例>
コントローラ10Aには、各種アプリケーション51A、データベース同期モジュール52A、データベース管理システム(DBMS)53A、ファイルシステム54A、DRBD55A、ディスクドライバ56A、及び通信ドライバ57Aがインストールされている。
<Example of software configuration of
各種アプリケーション51Aは、第1の更新データ、第2の更新データ、第3の更新データを受け付ける機能を有するとともに、受け付けた各更新データを処理する機能を有する。
The
例えば、各種アプリケーション51Aは、監視ポイント200から収集した当該ポイント200の現在値を示すデータを第1の更新データとして受け付け、当該データを適宜処理する。また、各種アプリケーション51Aは、例えばユーザにより不図示の入力部を介して入力された二重化システム1のシステム構成に関するデータを第2の更新データとして受け付け、当該データを適宜処理する。また、各種アプリケーション51Aは、例えばコントローラ10Aが不図示のネットワークを介して受信したコントローラ10AのOS関連のプログラムに関するデータを第3の更新データとして受け付け、当該データを適宜処理する。
For example, the
また、各種アプリケーション51Aは、設定部45Aの設定内容に基づき、当該処理後のデータを、後述する2つの同期部(データベース同期モジュール52A、DRBD55A)のうちの1つに出力する機能を有する。
Furthermore, the
例えば、各種アプリケーション51Aは、第1の更新データを処理すると、当該処理後の第1の更新データをデータベース同期モジュール52Aに出力する。また、各種アプリケーション51Aは、第2の更新データを処理すると、当該処理後の第2の更新データをDRBD55Aに出力する。なお、図の例では、各種アプリケーション51Aは、DRBD55Aに対してはファイルシステム54Aを介して第2の更新データを出力している。ただし、各種アプリケーション51Aは、第3の更新データを処理した場合は、当該処理後の第3の更新データをいずれの同期部(データベース同期モジュール52A、DRBD55A)にも出力せず、ファイルシステム54Aに出力する。ここでは、各種アプリケーション51Aは、本発明の「出力部」を構成する。
For example, after processing the first update data, the
データベース同期モジュール52Aは、各種アプリケーション51Aにより出力された第1の更新データを、データベース管理システム53Aに出力する機能とともに、当該第1の更新データのコピーを、通信ドライバ57Aを介してコントローラ10Bに送信する機能を有する。ここでは、データベース同期モジュール52Aは、本発明の「同期部」を構成する。
The
データベース管理システム(DBMS)53Aは、データベース25Aに対するデータの格納や、データベース25Aからのデータの読み出し等、データベース25Aを管理するために必要となる処理を行う。DBMS53Aは、データベース同期モジュール52Aにより出力された第1の更新データに基づき、データベース25Aを更新するための更新トランザクションを実行する。更新トランザクションが正常に終了(コミット)すると、DBMS53Aは、当該第1の更新データをファイルシステム54Aに出力する。
The database management system (DBMS) 53A performs processing necessary to manage the
ファイルシステム54Aは、SSD20Aに記憶されるデータをファイルとして管理するもので、ファイルの保存機能や暗号化機能などの各種機能を提供する。ここで、ファイルシステム54Aは、DBMS53Aから出力された第1の更新データをディスクドライバ56Aに出力する。また、ファイルシステム54Aは、各種アプリケーション51Aから出力された第2の更新データをDRDB55Aに出力し、各種アプリケーション51Aから出力された第3の更新データをディスクドライバ56Aに出力する。
The
DRBD55Aは、ネットワーク越しにSSD20Aをリアルタイムに複製する機能を有する汎用のソフトウェアである。DRBD55Aは、ファイルシステム54Aにより出力された第2の更新データをディスクドライバ56Aに出力する。また、DRBD55Aは、第2の更新データのコピーを通信ドライバ57Aに出力する。ここでは、DRBD55Aは、本発明の「同期部」を構成する。
DRBD55A is general-purpose software that has a function of replicating the
ディスクドライバ56Aは、SSD20をOSによって制御可能にするためのソフトウェアである。このディスクドライバ56Aは、ファイルシステム54Aにより出力された第1の更新データ及び第3の更新データ、並びにDRBD55Aにより出力された第2の更新データをSSD20Aに記憶させる。このとき、第1の更新データは、SSD20A内のデータベース25Aに格納される。
The
通信ドライバ57Aは、コントローラ10Aが備える不図示のネットワークインタフェースカード(NIC)をOSによって制御可能にするためのソフトウェアである。この通信ドライバ57Aは、データベース同期モジュール52Aにより出力された第1の更新データのコピー及びDRBD55Aにより出力された第2の更新データのコピーを、ネットワークで接続された待機系のコントローラ10Bの後述する通信ドライバ57Bに送信する。
The
<コントローラ10Bのソフトウェア構成例>
コントローラ10Bには、各種アプリケーション51B、データベース同期モジュール52B、データベース管理システム(DBMS)53B、ファイルシステム54B、DRBD55B、ディスクドライバ56B、及び通信ドライバ57Bがインストールされている。なお、データベース管理システム(DBMS)53B、ファイルシステム54B、ディスクドライバ56B、及び通信ドライバ57Bは、コントローラ10Aにインストールされているものと同様であるため、ここでは説明を省略する。
<Example of software configuration of
各種アプリケーション51Bは、第1の更新データ、第2の更新データ、第3の更新データを受け付ける機能を有するとともに、受け付けた各更新データを処理する機能を有する。また、各種アプリケーション51Bは、設定部45Bの設定内容に基づき、当該処理後のデータを、後述する2つの同期部(データベース同期モジュール52B、DRBD55B)のうちの1つに出力する機能を有する。
The
なお、待機系のコントローラ10Bでは、各種アプリケーション51Bは、第3の更新データを受け付け、適宜処理する。また、待機系のコントローラ10Bでは、第3の更新データを受け付けるため、各種アプリケーション51Bは、処理後の第3の更新データをいずれの同期部(データベース同期モジュール52B、DRBD55B)にも出力せず、ファイルシステム54Bに出力する。その後、ファイルシステム54Bに出力された第3の更新データは、ディスクドライバ56Bを介してSSD20Bに書き込まれる。ここでは、各種アプリケーション51Bは、本発明の「出力部」を構成する。
Note that in the
データベース同期モジュール52Bは、コントローラ10Aのデータベース同期モジュール52Aから通信ドライバ57Aを介して送信された第1の更新データのコピーを、通信ドライバ57Bを介して受信する機能を有する。また、データベース同期モジュール52Bは、受信した第1の更新データのコピーを、DBMS53B、ファイルシステム54B、ディスクドライバ56Bを介してデータベース25Bに書き込み、データベース25Bの更新を完了する。ここでは、データベース同期モジュール52Bは、本発明の「同期部」を構成する。
The
DRBD55Bは、コントローラ10AのDRDB55Aから通信ドライバ57Aを介して送信された第2の更新データのコピーを、通信ドライバ57Bを介して受信する機能を有する。DRDB55Bは、受信した第2の更新データのコピーを、ディスクドライバ56Bを介してSSD20Bに書き込み、SSD20Bの更新を完了する。ここでは、DRBD55Bは、本発明の「同期部」を構成する。
The
次に、種別毎の具体的なデータの流れについて、図4から図7を参照して説明する。図4は第1の更新データ又はそのコピーの流れを示し、図5は第2の更新データ又はそのコピーの流れを示し、図6は第3の更新データの流れを示している。図7は、コントローラによる同期処理の流れを示すフローチャートである。 Next, specific data flows for each type will be explained with reference to FIGS. 4 to 7. FIG. 4 shows a flow of first update data or a copy thereof, FIG. 5 shows a flow of second update data or a copy thereof, and FIG. 6 shows a flow of third update data. FIG. 7 is a flowchart showing the flow of synchronization processing by the controller.
<第1の更新データ>
図4は、第1の更新データ又はそのコピーの流れを示している。まず、各種アプリケーション51Aは、図7のステップST1に示すように、例えば監視ポイント200から収集した当該ポイント200の現在値などのデータを、第1の更新データとして受け付ける(図4の符号1a)。
<First update data>
FIG. 4 shows the flow of first update data or a copy thereof. First, as shown in step ST1 in FIG. 7, the
各種アプリケーション51Aは、受け付けた第1の更新データを適宜処理し(ステップST2)、設定部45Aを参照して、当該処理後の第1の更新データの同期方法を確認する(ステップST3)。第1の更新データは、二重化機能により同期させることが設定されているので(ステップST4)、各種アプリケーション51Aは、当該設定に基づき、第1の更新データをデータベース同期モジュール52Aに出力する(1b)。データベース同期モジュール52Aは、当該第1の更新データのコピーを取得するとともに、当該第1の更新データをDBMS53Aに出力する(1c)。
The
DBMS53Aは、第1の更新データに基づくデータベース25Aの更新トランザクションを実行し、更新トランザクションが正常に終了(コミット)した場合に、第1の更新データをファイルシステム54A、ディスクドライバ56Aを介してSSD20A内のデータベース25Aに書き込み、データベース25Aの更新を完了する(1d~1f)。
The
また、データベース同期モジュール52Aは、DBMS53Aによるデータベース25Aの更新が完了すると、取得していた第1の更新データのコピーを通信ドライバ57Aを介してコントローラ10Bに送信する(1g、1h)。
Further, when the
コントローラ10Bでは、データベース同期モジュール52Bが通信ドライバ57Bを介して当該第1の更新データのコピーを受信する(1i)。データベース同期モジュール52Bは、受信した当該第1の更新データのコピーを、DBMS53B、ファイルシステム54B、ディスクドライバ56Bを介してデータベース25Bに書き込み、データベース25Bの更新を完了する(1j~1m)。
In the
なお、DBMS53Aは、第1の更新データに基づくデータベース25Aの更新トランザクションが何らかの異常により終了できなかった場合は、ロールバック処理を実行し、データベース25Aの更新を無効とする。この場合、データベース同期モジュール52Aは、第1の更新データのコピーをコントローラ10Bに送信しない。
Note that if the update transaction of the
このように、二重化システム1は、第1の更新データをデータベース25Aに書き込むとともに、第1の更新データのコピーをデータベース25Bに書き込み、データベース25A、データベース25Bを同期させる。特に、二重化システム1は、コントローラ10Aで第1の更新データに基づく更新トランザクションが正常に終了した場合に、当該第1の更新データのコピーをコントローラ10Bに送信し、コントローラ10Bでは、受信した当該第1の更新データのコピーをデータベース25Bに書き込む。これにより、二重化システム1は、システムにとって重要度あるいは更新頻度が高いデータが不完全な状態で同期されることを回避し、データを正確に同期させることができる。
In this way, the duplex system 1 writes the first update data to the
<第2の更新データ>
図5は、第2の更新データ又はそのコピーの流れを示している。まず、各種アプリケーション51Aは、図7のステップST1に示すように、例えばユーザにより不図示の入力部を介して入力された二重化システム1のシステム構成に関するデータを、第2の更新データとして受け付ける(図5の符号2a)。
<Second update data>
FIG. 5 shows the flow of the second update data or its copy. First, the
各種アプリケーション51Aは、受け付けた第2の更新データを適宜処理し(ステップST2)、設定部45Aを参照して、当該第2の更新データの同期方法を確認する(ステップST3)。第2の更新データは、DRBDにより同期させることが設定されているので(ステップST5)、各種アプリケーション51Aは、当該設定に基づき、第2の更新データをファイルシステム54Aを介してDRBD55Aに出力する(2b、2c)。DRBD55Aは、当該第2の更新データのコピーを取得するとともに、当該第2の更新データをディスクドライバ56Aを介してSSD20Aに書き込み、SSD20Aの更新を完了する(2d、2e)。
The
また、DRBD55Aは、SSD20Aの更新を完了すると、当該第2の更新データのコピーを通信ドライバ57Aを介してコントローラ10Bに送信する(2f、2g)。
Furthermore, upon completing the update of the
コントローラ10Bでは、DRBD55Bが通信ドライバ57Bを介して当該第2の更新データのコピーを受信する(2h)。そして、DRBD55Bは、受信した第2の更新データのコピーをディスクドライバ56Bを介してSSD20Bに書き込み、SSD20Bの更新を完了する(2i、2j)。
In the
DRBDは、リアルタイムでデータをコピーできたり、どのようなファイルシステムにも対応できるといった長所がある。一方、DRDBは、データのコピーを送信している途中でネットワーク障害が発生した場合、ファイルが破損するおそれがあったり、ファイルを構成するブロック単位ではデータを保証できるがファイル単位ではデータを保証できない、といった短所もある。 DRBD has the advantage of being able to copy data in real time and being compatible with any file system. On the other hand, with DRDB, if a network failure occurs while a copy of the data is being sent, there is a risk that the file may be damaged, and data can be guaranteed in units of blocks that make up files, but data cannot be guaranteed in units of files. There are also disadvantages such as.
そこで、二重化システム1は、第1のデータほどは重要度あるいは更新頻度が高くないと考えられるデータを第2のデータとして取り扱い、第2のデータはDRBDなどの汎用的な技術により同期させる。これにより、二重化システム1は、第1のデータと第2のデータとの間で同期方法の棲み分けを行うとともに、重要度あるいは更新頻度に見合った方法で適切かつ簡易にデータを同期させることができる。 Therefore, the duplication system 1 handles data that is considered to be less important or less frequently updated than the first data as second data, and synchronizes the second data using a general-purpose technology such as DRBD. As a result, the duplication system 1 can differentiate the synchronization method between the first data and the second data, and can appropriately and easily synchronize the data using a method commensurate with the importance or update frequency. can.
<第3の更新データ>
図6は、第3の更新データの流れを示している。まず、各種アプリケーション51Aは、図7のステップST1に示すように、例えば不図示のネットワークを介してコントローラ10Aが受信したコントローラ10AのOS関連のプログラムに関するデータを、第3の更新データとして受け付ける(図6の符号3a)。
<Third update data>
FIG. 6 shows the flow of the third update data. First, as shown in step ST1 in FIG. 7, the
各種アプリケーション51Aは、受け付けた第3の更新データを適宜処理し(ステップST2)、設定部45Aを参照して、当該第3の更新データの同期方法を確認する(ステップST3)。第3の更新データは、SSD20Bとの間で同期しないことが設定されているので(ステップST6)、各種アプリケーション51Aは、当該設定に基づき、第3の更新データを同期部(データベース同期モジュール52A、DRBD55A)には出力せず、ファイルシステム54Aに出力する(3b)。ファイルシステム54Aは、ディスクドライバ56Aを介して第3の更新データをSSD20Aに書き込み、SSD20Aの更新を完了する(3c、3d)。
The
また、コントローラ10Bでは、各種アプリケーション51Bが、同様にコントローラ10BのOS関連のプログラムに関するデータを、第3の更新データとして受け付ける(3e)。各種アプリケーション51Bは、受け付けた第3の更新データを適宜処理し(ステップST2)、設定部45Bを参照して、当該第3の更新データの同期方法を確認する(ステップST3)。第3のデータは、SSD20Aとの間で同期しないことが設定されているので(ステップST6)、各種アプリケーション51Bは、当該設定に基づき、第3の更新データを同期部(データベース同期モジュール52B、DRBD55B)には出力せず、ファイルシステム54Bに出力する(3f)。ファイルシステム54Bは、ディスクドライバ56Bを介して第3の更新データをSSD20Bに書き込み、SSD20Bの更新を完了する(3g、3h)。
Furthermore, in the
以上、実施の形態1では、コントローラ10Aが現用系として稼働している場合の例を説明した。しかしながら、コントローラ10Aに異常が発生し、コントローラ10Bが待機系から現用系に切り替わった場合、コントローラ10Bは上記説明したコントローラ10Aと同様の流れで処理を行えばよい。また、3台以上のコントローラで冗長システムを構成した場合であっても、いずれか1台のコントローラが現用系として稼働すればよく、当該現用系のコントローラは、他の待機系のコントローラとの間で、上記と同様の流れでデータの同期を行えばよい。
In the first embodiment, an example in which the
以上のように、実施の形態1によれば、二重化システム1は、2台のコントローラ10A、10Bにより構成され、コントローラ10A、10Bは、互いに異なる同期方法であり、得られたデータを待機系のコントローラのデータと同期させる複数の同期部(データベース同期モジュール52A、DRBD55A、又はデータベース同期モジュール52B、DRBD55B)と、自機が現用系の場合に、得られたデータを当該データの種別に応じて複数の同期部のうちの1つに出力する出力部(各種アプリケーション51A又は51B)とを備える。これにより、二重化システム1は、コントローラ10A、10B間においてデータを正確に同期させることができる。
As described above, according to the first embodiment, the redundant system 1 is configured by two
また、実施の形態1によれば、出力部は、得られたデータの重要度あるいはデータの更新頻度に応じて、当該データを複数の同期部のうちの1つに出力する。これにより、二重化システム1は、システムにおけるデータの重要度あるいは更新頻度に応じて、適切な同期方法を選択することができる。 Further, according to the first embodiment, the output unit outputs the data to one of the plurality of synchronization units depending on the importance of the obtained data or the update frequency of the data. Thereby, the duplex system 1 can select an appropriate synchronization method depending on the importance or update frequency of data in the system.
また、実施の形態1によれば、出力部は、得られたデータが待機系のコントローラのデータと同期しないデータである場合、当該データを複数の同期部のいずれにも出力しない。これにより、二重化システム1は、同期の要否についても棲み分けを行い、不必要なデータの同期を避けつつコントローラ10A、10Bの処理負荷を軽減することができる。
Further, according to the first embodiment, when the obtained data is data that is not synchronized with the data of the standby controller, the output unit does not output the data to any of the plurality of synchronization units. Thereby, the duplex system 1 can differentiate between the necessity of synchronization and reduce the processing load on the
なお、本願発明はその発明の範囲内において、実施の形態の任意の構成要素の変形、もしくは実施の形態において任意の構成要素の省略が可能である。 Note that within the scope of the present invention, any constituent elements of the embodiments may be modified or any constituent elements may be omitted from the embodiments.
1 二重化システム(冗長システム)
10 コントローラ
10A 現用系のコントローラ
10B 待機系のコントローラ
20A、20B SSD
25A、25B データベース
45A、45B 設定部
51A、51B 各種アプリケーション(出力部)
52A、52B データベース同期モジュール(同期部)
53A、53B データベース管理システム(DBMS)
54A、54B ファイルシステム
55A、55B DRBD(同期部)
56A、56B ディスクドライバ
57A、57B 通信ドライバ
150 システムバス
200 監視ポイント
1 Duplex system (redundant system)
10
25A,
52A, 52B Database synchronization module (synchronization section)
53A, 53B Database management system (DBMS)
54A,
56A,
Claims (4)
前記各コントローラは、
互いに異なる同期方法であり、得られたデータを待機系のコントローラのデータと同期させる複数の同期部と、
自機が現用系の場合に、得られたデータを当該データの種別に応じて前記複数の同期部のうちの1つに出力する出力部と、
を備え、
前記出力部は、得られたデータの種別が、当該データの重要度あるいは当該データの更新頻度が冗長システムにおいて最も高い第1のデータであれば、当該第1のデータを複数の同期部のうちの1つであるデータベース同期モジュールに出力し、
前記データベース同期モジュールは、前記第1のデータに基づく自機のデータベースの更新が正常終了した場合、当該第1のデータのコピーを待機系のコントローラに送信し、前記第1のデータに基づく自機のデータベースの更新が正常終了しなかった場合、当該第1のデータのコピーを待機系のコントローラに送信しない
ことを特徴とする冗長システム。 A redundant system composed of multiple controllers,
Each of the controllers is
A plurality of synchronization units that use different synchronization methods and synchronize the obtained data with data of a standby controller;
an output unit that outputs the obtained data to one of the plurality of synchronization units according to the type of the data when the own machine is the active system;
Equipped with
If the type of the obtained data is first data whose importance or update frequency is the highest in the redundant system, the output unit outputs the first data from among the plurality of synchronization units. Output to the database synchronization module, which is one of the
The database synchronization module transmits a copy of the first data to a standby controller when updating the database of the own device based on the first data, and updates the database of the own device based on the first data. If the update of the database does not complete normally, the copy of the first data is not sent to the standby controller.
A redundant system characterized by:
前記DRBDは、前記第2のデータに基づく自機のSSD内のデータの更新が終了すると、当該第2のデータのコピーを待機系のコントローラに送信する
ことを特徴とする請求項1記載の冗長システム。 If the type of the obtained data is second data whose importance or update frequency is next to the first data in the redundant system, the output unit outputs the second data. Output the data to DRBD (registered trademark), which is one of the multiple synchronization units,
When the DRBD finishes updating the data in its own SSD based on the second data, the DRBD transmits a copy of the second data to a standby controller.
The redundant system according to claim 1, characterized in that:
前記各コントローラは、
互いに異なる同期方法であり、得られたデータを待機系のコントローラのデータと同期させる複数の同期部を備え、
出力部が、自機が現用系の場合に、得られたデータを当該データの種別に応じて前記複数の同期部のうちの1つに出力し、
前記出力部は、得られたデータの種別が、当該データの重要度あるいは当該データの更新頻度が冗長システムにおいて最も高い第1のデータであれば、当該第1のデータを複数の同期部のうちの1つであるデータベース同期モジュールに出力し、
前記データベース同期モジュールは、前記第1のデータに基づく自機のデータベースの更新が正常終了した場合、当該第1のデータのコピーを待機系のコントローラに送信し、前記第1のデータに基づく自機のデータベースの更新が正常終了しなかった場合、当該第1のデータのコピーを待機系のコントローラに送信しない
ことを特徴とするデータ同期方法。 A data synchronization method using multiple controllers configuring a redundant system, the method comprising:
Each of the controllers is
These synchronization methods are different from each other, and include multiple synchronization units that synchronize the obtained data with the data of the standby controller.
The output unit outputs the obtained data to one of the plurality of synchronization units according to the type of the data when the own machine is the active system,
If the type of the obtained data is first data whose importance or update frequency is the highest in the redundant system, the output unit outputs the first data from among the plurality of synchronization units. Output to the database synchronization module, which is one of the
The database synchronization module transmits a copy of the first data to a standby controller when updating the database of the own device based on the first data, and updates the database of the own device based on the first data. If the update of the database does not complete normally, the copy of the first data is not sent to the standby controller.
A data synchronization method characterized by:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019097799A JP7340956B2 (en) | 2019-05-24 | 2019-05-24 | Redundant system and data synchronization method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019097799A JP7340956B2 (en) | 2019-05-24 | 2019-05-24 | Redundant system and data synchronization method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020194216A JP2020194216A (en) | 2020-12-03 |
JP7340956B2 true JP7340956B2 (en) | 2023-09-08 |
Family
ID=73547531
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019097799A Active JP7340956B2 (en) | 2019-05-24 | 2019-05-24 | Redundant system and data synchronization method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7340956B2 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009064121A (en) | 2007-09-05 | 2009-03-26 | Nec Corp | Data duplication device |
JP2011209834A (en) | 2010-03-29 | 2011-10-20 | Hitachi Solutions Ltd | Redundant system |
-
2019
- 2019-05-24 JP JP2019097799A patent/JP7340956B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009064121A (en) | 2007-09-05 | 2009-03-26 | Nec Corp | Data duplication device |
JP2011209834A (en) | 2010-03-29 | 2011-10-20 | Hitachi Solutions Ltd | Redundant system |
Also Published As
Publication number | Publication date |
---|---|
JP2020194216A (en) | 2020-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9563516B2 (en) | Managing backup operations from a client system to a primary server and secondary server | |
US7539703B2 (en) | Setup method for disaster recovery system | |
US8370302B2 (en) | Method and apparatus for block based volume backup | |
US7383264B2 (en) | Data control method for duplicating data between computer systems | |
JP4668763B2 (en) | Storage device restore method and storage device | |
US9251230B2 (en) | Exchanging locations of an out of synchronization indicator and a change recording indicator via pointers | |
JP4461147B2 (en) | Cluster database using remote data mirroring | |
US20190129976A1 (en) | Apparatus for controlling synchronization of metadata on network and method for the same | |
EP3361383B1 (en) | Modifying membership of replication groups via journal operations | |
CN102567438A (en) | Method for providing access to data items from a distributed storage system | |
JP2003517651A (en) | Highly available file server | |
JP2006023889A (en) | Remote copy system and storage system | |
JP4988370B2 (en) | Method, system, and program for integrating session information for a cluster of sessions in a coupled session environment | |
US20190317872A1 (en) | Database cluster architecture based on dual port solid state disk | |
US7506116B2 (en) | Maintaining and using information on updates to a data group after a logical copy is made of the data group | |
CN115858236A (en) | Data backup method and database cluster | |
JP4289056B2 (en) | Data duplication control method between computer systems | |
US9235483B2 (en) | Substitution of a target volume of a secondary storage controller for a source volume of a primary storage controller for executing a write operation | |
US11599427B2 (en) | Distributed recovery of server information | |
JP7340956B2 (en) | Redundant system and data synchronization method | |
KR20220086677A (en) | Systems and methods for blockchain-based backup and recovery | |
JP6251965B2 (en) | Information system and database recovery method | |
JP6319784B2 (en) | Information processing device | |
WO2015114417A1 (en) | Data migration method and systems | |
KR100503899B1 (en) | Database replication system and the replication method |
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: 20230307 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230322 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230518 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20230518 |
|
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: 20230801 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230829 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7340956 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |