JP2016206865A - Device for making storage areas of multiplexed computer match - Google Patents
Device for making storage areas of multiplexed computer match Download PDFInfo
- Publication number
- JP2016206865A JP2016206865A JP2015086392A JP2015086392A JP2016206865A JP 2016206865 A JP2016206865 A JP 2016206865A JP 2015086392 A JP2015086392 A JP 2015086392A JP 2015086392 A JP2015086392 A JP 2015086392A JP 2016206865 A JP2016206865 A JP 2016206865A
- Authority
- JP
- Japan
- Prior art keywords
- computer
- standby
- task
- storage area
- processing
- 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
Links
Images
Landscapes
- Hardware Redundancy (AREA)
Abstract
Description
本発明は、多重化システムにおける現用系と待機系間のデータ一致化装置に関する。 The present invention relates to a data matching apparatus between an active system and a standby system in a multiplexing system.
多重化システムは、業務を実行する現用系計算機と、現用系を監視して異常を検知したときにその業務を引き継ぐ待機系計算機から構成される。この現用系で異常が発生したときに待機系が業務を引き継ぐ一連の処理を系切替処理と呼ぶ。この系切替時間は、システムのダウンタイム時間に直結するため、系切替の時間を短縮する技術が開発されてきた。 The multiplexing system includes an active computer that executes a task and a standby computer that takes over the task when the active system is monitored and an abnormality is detected. A series of processes in which the standby system takes over work when an abnormality occurs in the active system is called a system switching process. Since this system switching time is directly related to the system downtime, a technique for shortening the system switching time has been developed.
その体表的な技術が現用系と待機系の処理を一致化しながら業務を実行する同期システム制御技術である。現用系と待機系ともに同じ処理を行うため、現用系の異常が発生した場合でも、待機系計算機が現用系の業務を引き継ぐための処理が殆ど不要となる。一方、多重系間での同期対象は、業務を実行するタスクの挙動であり、多くの同期システムにおいてはOSレイヤでのスケジュール同期が実施されている。OSレイヤでの同期実装の場合、同期が必要なタスクを特定しない点で汎用性が高いが、スケジューラレベルでの同期が必要なスケジュール同期の実装は複雑であり同期に必要な処理のオーバーヘッドも大きい。そのため、近年、ミドルレイヤでの同期システム実装が注目を浴びている。 Its surface technology is a synchronous system control technology that executes tasks while matching the processing of the active and standby systems. Since both the active system and the standby system perform the same processing, even if an abnormality occurs in the active system, almost no processing is required for the standby computer to take over the work of the active system. On the other hand, a synchronization target between multiple systems is a behavior of a task that executes a business. In many synchronization systems, schedule synchronization is performed in the OS layer. In the case of synchronization implementation in the OS layer, it is highly versatile in that it does not identify tasks that need to be synchronized, but implementation of schedule synchronization that requires synchronization at the scheduler level is complicated and processing overhead required for synchronization is large. . Therefore, in recent years, the synchronization system implementation in the middle layer has attracted attention.
特に、同期処理が必要なタスクが特定でき、そのタスクの順序制御がミドルレイヤ可能な制御システムにおいては、タスクの挙動に影響を及ぼす外部入力とOSレイヤで発生するタイマーやシグナルイベントの内部入力の同期さえ保証できれば容易に同期システムの実装が可能である。 In particular, in a control system in which tasks that require synchronous processing can be identified and the order of the tasks can be controlled in the middle layer, external inputs that affect task behavior and internal inputs for timers and signal events that occur in the OS layer A synchronization system can be easily implemented as long as synchronization can be guaranteed.
一方、多重化システムにおいては系切替時間以外に、異常が発生した計算機を復旧し再び多重系構成に戻す多重系復旧時間もシステムの高信頼性を確保するには欠かせない要素である。特に現用系1台と待機系1台のみで構成される2重系システムにおいては1回の異常発生のみ許容されるシステムとなるため、高可用性や高信頼性の確保のためには可能な限り素早く予備の計算機の立ち上げなどをして多重系復旧を行う必要がある。多重系復旧処理においては、現用系のタスクの内部状態、例えば、共有資源であるメモリや通信ソケット等を復旧先の計算機のタスクの内部状態と一致させる必要がある。タスク内部状態一致処理の汎用的な実現は難しく、多くのシステムの場合、共有メモリを設けてある特定の処理ポイントに到達すると現在のタスクの状態を前記共有メモリ上ですべて書き出すタスクモデルを採用することで解決している。前記タスクモデルの場合、多重系復旧に必要な復旧先への現用系のタスク状態一致化処理は、タスク状態がすべて書き出されている共有メモリの転送することによって実現している。転送された共有メモリの内容を復旧先の計算機のメモリにコピーすることにより現用系計算機で実行されるタスクの状態を復元し、現用系の状態と再同期が可能となる。しかし、前記共有メモリが大きい場合は、1回の転送で復旧処理の終了できず、複数回の転送処理が必要となる。複数転送が発生した場合、転送処理の間に現用系のタスクが再び業務処理を行い特定の処理ポイントへ到達する。 On the other hand, in a multiplexed system, in addition to the system switching time, a multiplexed system recovery time for recovering a computer in which an abnormality has occurred and returning it to the multiplexed system configuration is also an indispensable element for ensuring high system reliability. In particular, a duplex system consisting of only one active system and one standby system is a system that allows only one occurrence of an abnormality, so as much as possible to ensure high availability and high reliability. It is necessary to quickly restore a multiple system by starting up a spare computer. In the multi-system recovery process, it is necessary to make the internal state of the task of the active system, for example, the shared resource, the memory, the communication socket, etc., coincide with the internal state of the task of the recovery destination computer. It is difficult to achieve general-purpose task internal state matching processing, and in many systems, a task model is adopted in which all current task states are written in the shared memory when a specific processing point with shared memory is reached. It is solved by that. In the case of the task model, the task status matching process of the active system to the recovery destination required for the recovery of the multiple system is realized by transferring the shared memory in which all the task statuses are written. By copying the contents of the transferred shared memory to the memory of the computer at the recovery destination, the state of the task executed on the active computer can be restored and resynchronized with the state of the active system. However, when the shared memory is large, the restoration process cannot be completed by one transfer, and a plurality of transfer processes are required. When multiple transfers occur, the active task performs the business process again during the transfer process and reaches a specific processing point.
その時点で転送中の共有メモリ内タスク状態と現在の現用系のタスク状態が異なってしまう。この異なる内容を前記転送処理中の共有メモリとの差分という。前記転送処理が終了すると、次は転送処理中に発生した共有メモリの差分を転送する。前記差分が1回の転送ですむ量まで収束すると多重系復旧処理は終了することができる。 At that time, the task state in the shared memory being transferred is different from the current task state of the active system. This different content is called a difference from the shared memory during the transfer process. When the transfer process is completed, the difference of the shared memory generated during the transfer process is transferred next. When the difference has converged to the amount required for one transfer, the multiple system recovery process can be terminated.
多重系復旧処理として特許文献1では、一定周期を待ち、前記周期内でタスクが処理を終了し次の周期待ちに入った時間を前述した特定の処理ポイントとし、前記周期内の差分作成と転送によるタスクの状態一致化手段が記載されている。
In
特許文献1の方法は、一致化対象のデータのメモリ領域の差分を転送し、多重系復旧を行っているが、タスクによっては、前記メモリ領域をすべて更新する場合がある。この場合、転送する差分の量が多くなり多重系復旧に時間がかかる。
In the method of
タスク挙動に影響を及ぼす入力、例えば、外部入力内容と計算機の内部で発生するイベントの内容を現用系と待機系間で一致させる同期処理を持ち、多重系復旧時間を短縮するために一致化対象となるデータの差分の量及び、タスクの処理開始からタスク状態が確定できる特定の処理ポイントまでのタスク実行時間と次のタスクの処理開始までの時間の割合を基に復旧手段を選択する。前記特定の処理ポイントまでのタスク実行時間より次のタスクの処理開始までの時間の割合が大きい場合、前記同期処理によって現用系と待機系間で一致させるタスクへの入力のログを現用系で作成し、復旧先の計算機へ転送し復旧先の計算機のタスクにて復元する高速リプレイ手段を提供する。高速リプレイは現用系から転送された入力ログから入力データを読出し、復旧先の計算機のタスクへ入力データとして与え、現用系の処理をリプレイ(再現または復元)させ、現用系のタスク状態と一致化させる方法である。前記リプレイ処理は現用系のタスクでは存在した前記特定の処理ポイントから次のタスクの処理開始までの待ち時間をなくすことで現用系のタスクの状態へ追いつく時間を短縮する。 It has a synchronization process that matches the input that affects task behavior, for example, the contents of external input and the contents of events that occur inside the computer, between the active system and the standby system. The recovery means is selected based on the amount of difference between the data and the ratio of the task execution time from the start of task processing to the specific processing point where the task state can be determined and the time until the start of processing of the next task. If the ratio of the time until the start of processing of the next task is larger than the task execution time up to the specified processing point, a log of input to the task to be matched between the active system and the standby system by the synchronous processing is created in the active system And a high-speed replay means for transferring to the restoration destination computer and restoring it by the task of the restoration destination computer. High-speed replay reads the input data from the input log transferred from the active system, gives it as input data to the recovery target computer task, replays (reproduces or restores) the processing of the active system, and matches the task status of the active system It is a method to make it. The replay process shortens the time to catch up with the status of the active task by eliminating the waiting time from the specific processing point existing in the active task to the start of processing of the next task.
本発明によれば、多重系復旧において現用系と待機系(または多重系復旧先)の一致化対象のデータの差分転送手段と、タスク挙動に影響を及ぼす入力のログを現用系から待機系へ転送し待機系で高速リプレイする手段が選択でき、前記データの差分が大きい場合でも多重系復旧時間の短縮が可能である。 According to the present invention, the difference transfer means for data to be matched between the active system and the standby system (or the multiple system recovery destination) in the multi-system recovery, and the input log that affects the task behavior are transferred from the active system to the standby system. A means for transferring and high-speed replaying in the standby system can be selected, and even when the data difference is large, it is possible to shorten the multiplex system recovery time.
図1は本発明における多重系を構成するためのハードウェア構成の一例であり、少なくとも1台の現用系計算機10と、少なくとも1台の待機系計算機20から構成される。各計算機は少なくとも、OSを含むソフトウェアプログラムを実行する演算装置11と、前記プログラムおよびその実行に必要なデータを格納する記憶装置12と、多重系間でデータの送受信を行う通信装置1の13を備える。ここで記憶装置12は、例えばRAMやハードディスクなどである。また、通信装置1の13は、例えばLANアダプタなどである。
FIG. 1 shows an example of a hardware configuration for configuring a multiplex system according to the present invention, which includes at least one
現用系計算機10と待機系計算機20は通信装置1の13で通信を行い、通信装置1の13は内部ネットワーク31で接続される。現用系計算機10と待機系計算機20はOSを含むソフトウェアプログラム含め対称的な構成をとる。前記現用系計算機10と待機系計算機20は通信装置2の14で外部ネットワーク32とつながっており、外部ネットワーク32は例えばネットワークスイッチなどで構成され、外部ネットワーク32につながっている外部の計算機とのデータの送受信を行う。
The
図2は本発明を実施する一形態におけるソフトウェアプログラムの構成図である。記憶装置内12で記憶され、演算装置11によって実行される。
FIG. 2 is a configuration diagram of a software program according to an embodiment for carrying out the present invention. It is stored in the
本実施例においては、現用系計算機10と待機系計算機20間でのデータ一致化の対象は、タスク81がタスクの処理結果とタスク81の内部状態を記録する、後述の領域管理テーブルで管理されるメモリやディスクのブロックである。タスク81は少なくても1つ以上であり、予め実行順序が設定されている。そのため、外部ネットワーク32からの外部入力と前記計算機内で発生するタイマーイベントやシグナル等の内部イベントを現用系計算機10と待機系計算機20間で同期させると、タスク81の処理結果と内部状態は両系において一致することが可能である。以下、本発明を実現するためのソフトウェアプログラムの構成について説明する。
In this embodiment, the target of data matching between the
本構成は大きく4つのレイヤで構成されている。OSレイヤと、データ一致化ミドル51と通信ミドル61とタスク管理ミドル71からなるミドルレイヤと前記ミドルレイヤの機能を利用し特定の処理を行うタスク81のタスクレイヤ及び前記ミドルレイヤとタスクレイヤの処理結果や状態を記録しておく管理テーブルレイヤから構成される。OS 41は、スケジュール機能とタイマー機能とソフトウェアシグナル(以下、シグナル)機能と演算装置11と記憶装置12と通信装置13を制御する機能をもつソフトウェアであり、例えばLinux(登録商標)などがある。データ一致化ミドル51は現用系計算機10と待機系計算機20の多重系間でのデータ一致化を実現するソフトウェアプログラムであり、前述したOSの41の機能を活用し、後述する同期データ管理テーブル52の内容を待機系計算機11に送信しデータ一致化を実現する。また、後述する一致化データ管理テーブル53と稼働割計算部54と記憶領域差分計算部55と処理時間判定部56を備え、現用系計算機10または待機系計算機20に障害が発生した場合、障害発生した計算機のタスク81の処理状態を現用系計算機のタスク81の状態に一致化するデータ一致化を実現する。
This configuration is mainly composed of four layers. The OS layer, the middle layer composed of the data matching middle 51, the communication middle 61, and the task management middle 71, the task layer of the
通信ミドル61は通信装置2から受信したデータをタスクへ引き渡し、また、タスクからのデータを通信装置2で外部ネットワーク32へ送信する処理を行う。タスク管理ミドル71はタスクへ、タスクの起動と停止、タイマー設定、他タスクと共有する記憶領域のメモリの割当及び他タスクへのシグナル送信機能を提供するAPIを備えている。タスク管理ミドル71の前記APIの機能はOS41が提供している機能を活用して実現する。タスクは、少なくても1つ以上存在していてタスク管理ミドル71が提供するAPIを利用して特定の処理を実現する。また、制御系をはじめとする一定周期で同処理を反復的に行うシステムでは、複数のタスクが1つのグループになって、予め決まった順序でシーケンシャルに動作し、目的の処理を遂行するケースが多い。シーケンシャル動作はあるタスクが終了した時点でそのタスクが次に動作すべきタスクの起動をかけることで実現するケースが多く、OSの機能を活用してもよいし、タスク管理ミドル71でAPIでシーケンシャル処理を実現する機能を提供してもよい。
The communication middle 61 delivers the data received from the
また、タスクの周期動作は処理開始のタイマーを設定することによって、生成する。タイマー設定はOSの機能を活用してもよいし、タスク管理ミドル71でAPIのシーケンシャル処理を実現する機能を提供してもよい。タスク管理ミドル71はタスクからのAPIの呼び出しで後述する各種管理テーブルのそれぞれの値として設定する。また、各種管理テーブルの内容(または値)は同期データ管理テーブル52のデータの内容として設定される。 The periodic operation of the task is generated by setting a process start timer. The timer setting may utilize the function of the OS, or may provide a function for realizing the API sequential processing by the task management middle 71. The task management middle 71 is set as each value of various management tables to be described later by calling an API from the task. The contents (or values) of the various management tables are set as the data contents of the synchronous data management table 52.
図3(a)-(d)はタスク管理ミドル71の管理テーブルの図である。
まず、図3(a)に示すタスク管理テーブル72について説明する。タスクの実行情報はタスク管理ミドル71によりタスク管理テーブルへ格納される。 タスク識別子は記録されたタスクを識別するための情報である。
FIGS. 3A to 3D are diagrams of the management table of the task management middle 71. FIG.
First, the task management table 72 shown in FIG. Task execution information is stored in the task management table by the task management middle 71. The task identifier is information for identifying the recorded task.
IPC識別子はタスクの開始や停止に使われるIPC資源を特定する情報である。タスクからタスク管理ミドル71が受け取り、タスク管理テーブルに格納される。IPC資源は例えばPOSIXのセマフォやメッセージボックスがある。 The IPC identifier is information for specifying an IPC resource used for starting and stopping a task. The task management middle 71 is received from the task and stored in the task management table. Examples of IPC resources include POSIX semaphores and message boxes.
また、IPC資源は、前記タスク管理ミドル71が前記タスクのシーケンシャル処理を実現するために、他のタスクを起動及び停止するために使用される。 The IPC resource is used by the task management middle 71 to start and stop other tasks in order to realize the sequential processing of the tasks.
領域識別子はタスクが使用する記憶領域を識別するための情報で、メモリでもディスクでもよい。タスクの起動時に、前記タスク管理ミドルが前記OSの機能を利用し必要な領域を割当し、その領域を識別するために前記タスク管理ミドルが動的に付与し登録する情報である。この識別子は、前記領域の詳細情報が記録されている後述する領域管理テーブル75を特定するために使用される。 The area identifier is information for identifying a storage area used by a task, and may be a memory or a disk. This is information that the task management middle assigns a necessary area using the functions of the OS and dynamically assigns and registers the task management middle to identify the area when the task is activated. This identifier is used to specify an area management table 75 (to be described later) in which detailed information on the area is recorded.
開始終了は少なくても1つ以上のタスクから構成される周期タスクにおいて、1周期内で最初に動作する先頭タスクと最後に動作する後尾タスクを特定するための情報である。
前記先頭タスク及び後尾タスクを特定する情報設定機能は、前記タスク管理ミドル71が提供する。前記情報登録専用の外部設定ファイルを用意し、前記タスク管理ミドル71の初期処理として前記外部設定ファイルの読み込みにより登録してもよい。
前記先頭タスクには”S”と後尾タスクには”E”という識別子が設定される。それ以外のタスクに対しては”0”と設定される。
The start / end is information for identifying the first task that operates first and the last task that operates last in one cycle in a periodic task composed of at least one task.
The task management middle 71 provides an information setting function for specifying the head task and the tail task. An external setting file dedicated to information registration may be prepared and registered by reading the external setting file as an initial process of the task management middle 71.
An identifier “S” is set for the head task and “E” is set for the tail task. For other tasks, it is set to “0”.
図3(b)はタイマー管理テーブル73の図である。タスクはタイマーによって予め決められた時刻に起動されるものがある。例えば毎日09時00分に行う処理がある場合や50ms毎に行う処理がある場合、タスク管理ミドル71経由で下記の情報を登録する。登録する時刻、周期をOSへ登録し、OSがタイマーを発火されると、そのタイマーイベントを前記タスク管理ミドル71が受信し、登録元のタスクへ通知する。 FIG. 3B is a diagram of the timer management table 73. Some tasks are started at a predetermined time by a timer. For example, when there is a process performed every day at 09:00 or when there is a process performed every 50 ms, the following information is registered via the task management middle 71. The registration time and cycle are registered in the OS, and when the OS fires a timer, the task management middle 71 receives the timer event and notifies the task of registration.
タスク識別子は登録されるタスクを識別するための情報で、OSのPIDに相当するものである。前記タスク管理ミドル71がタイマーイベントの受信時にイベントの通知先を判別するための情報である。 The task identifier is information for identifying a registered task and corresponds to the OS PID. This is information for the task management middle 71 to determine an event notification destination when a timer event is received.
タイマー識別子はタスクが登録した後述する開始時刻、インターバル、のタイマー内容を識別するための情報である。 The timer identifier is information for identifying the timer contents of a start time and an interval described later registered by the task.
開始時刻はタイマーの最初の発火時刻情報である。本実施例は、時間分秒ミリ秒までの設定とする。 The start time is the first firing time information of the timer. In this embodiment, the setting is up to hours, minutes, and milliseconds.
インターバルは周期的にタイマーを発火する時間間隔の情報である。本実施例ではミリ秒の粒度で設定する。 The interval is information on a time interval for periodically firing the timer. In this embodiment, it is set with a granularity of milliseconds.
図3(c)はシグナル管理テーブル74の図である。タスクは他タスクへ送信するシグナルを前記タスク管理ミドル71経由でシグナル管理テーブル74へ登録する。タスク管理ミドル71はOS41のシグナル機能、例えばkillを利用して登録したシグナルの実行を行う。 FIG. 3C is a diagram of the signal management table 74. The task registers a signal to be transmitted to another task in the signal management table 74 via the task management middle 71. The task management middle 71 executes the registered signal using the OS41 signal function, for example, kill.
タスク識別子はシグナル登録元で送信元のアプリを識別する情報である。 The task identifier is information for identifying the transmission source application at the signal registration source.
シグナル識別子はタスクが登録したシグナルを識別するための情報である。 The signal identifier is information for identifying the signal registered by the task.
シグナル内容はタスク管理ミドル71が、利用するOSのシグナル情報である。例えば、POSIXのsiginfo構造体などがある。 The signal content is signal information of the OS used by the task management middle 71. For example, the POSIX siginfo structure.
図3(d)は領域管理テーブル75の図である。タスク管理ミドル71は予め一定領域の記憶領域を確保し、タスクが管理ミドル71へ予め定められたサイズ単位の領域の割当を依頼する。
本実施例ではタスク管理ミドル71が管理している記憶領域の現用系計算機10と待機系計算機20間でのデータ一致化の対象とする。
タスクからタスク管理ミドル71経由で下記の情報を登録する。
FIG. 3D is a diagram of the area management table 75. The task management middle 71 secures a predetermined storage area in advance, and the task requests the management middle 71 to allocate an area in a predetermined size unit.
In this embodiment, the data is to be matched between the
The following information is registered from the task via the task management middle 71.
領域識別子は割り当てた記憶領域を識別するためにタスク管理ミドル71が付与する情報である。割り当てた後にタスク管理ミドル71はタスク管理テーブル72に割り当てた記憶領域のアドレス情報である開始アドレスと、
タスクから要求された領域のサイズの情報であるサイズを書き込む。
The area identifier is information provided by the task management middle 71 to identify the allocated storage area. After the assignment, the task management middle 71 has a start address which is address information of the storage area assigned to the task management table 72, and
Write the size, which is information about the size of the area requested by the task.
図4(a)(b)はデータ一致化ミドル51の管理テーブル図である。 4A and 4B are management table diagrams of the data matching middle 51. FIG.
図4(a)は現用系計算機10と待機系計算機20間で行われる同期用データ内容を示す同期データ管理テーブルである。前記現用系計算機は、外部ネットワーク32からの入力データ及び計算機内部のイベント発生状態を同期データとして内部ネットワーク31を通じて待機系計算機へ送信する。以下、テーブルの内容について説明する。
FIG. 4 (a) is a synchronization data management table showing the data contents for synchronization performed between the
STATUSは同期処理の状態を示す。STARTは同期開始状態でENDは同期終了状態を示す。 STATUS indicates the status of the synchronization process. START indicates a synchronization start state and END indicates a synchronization end state.
SIZEは同期データ管理テーブルに設定されたデータの合計サイズを示す。 SIZE indicates the total size of data set in the synchronous data management table.
データソース識別子は同期対象のデータを識別するもので、外部ネットワークからの入力データや計算機内部のイベントがある。入力データのデータソースには、通信ミドル61、タスク管理テーブル72、タイマー管理テーブル73、シグナル管理テーブル74などがある。 The data source identifier identifies data to be synchronized and includes input data from an external network and an event inside the computer. Data sources of input data include a communication middle 61, a task management table 72, a timer management table 73, a signal management table 74, and the like.
データは同期対象のデータ内容であり、各データソースが提供する内容が設定される。例えば、データソースの通信ミドル61の場合、後述する図6の入力同期処理に必要な入力データ(IN_001)、タスク管理テーブル72の場合、タスク管理テーブル72のIPC識別子情報(IPC_3)、タイマー管理テーブル73の場合、タイマー管理テーブル73に登録している前記タスク管理ミドル71がOSから受信したタイマーイベントのタイマー情報(TR1)、シグナル管理テーブル74の場合、タイマー管理テーブル74に登録している前記タスク管理ミドル71がOSから受信したシグナルイベントのシグナル情報(SIG_1)が設定される。
Data is data contents to be synchronized, and contents provided by each data source are set. For example, in the case of the
サイズは各データのサイズである。 The size is the size of each data.
ロジカルクロックはテーブルに設定されたデータが発生順序を示す情報であり値が大きいほど発生順は遅い。 The logical clock is information indicating the generation order of data set in the table. The larger the value, the slower the generation order.
発生時刻はデータの発生時刻情報である。1970年からの時間をミリ秒で表している整数である。 The generation time is data generation time information. An integer representing the time since 1970 in milliseconds.
図4(b)は現用系計算機10と待機系計算機20間で行われるデータ一致化のために現用系計算機10から待機系計算機20へ送信するデータ管理情報を示す一致化データ管理テーブルである。現用系計算機10または、待機系計算機20に障害が発生した場合、待機系計算機に交代または前記障害発生した計算機の再起動による多重系復旧の時、復旧対象の計算機と現用系計算機10の処理状態を一致化するために、現用系計算機10から復旧対象計算機へ送信するデータを管理するための情報が設定される。以下、テーブル内容について説明する。
FIG. 4B is a matching data management table showing data management information transmitted from the
一致化データ識別子は現用系計算機10と復旧対象計算機の処理状態の一致化で利用されるデータ種類を示す。LOGは先頭タスクの処理開始から後尾タスクの処理終了までの、同期テーブル管理テーブル52に記録される現用系計算機が処理する入力データとタスク管理ミドル61が処理するOSから通知される内部イベントの内容である。DIFFは先頭タスクが処理する直前の領域管理テーブル75の記憶領域の内容と後尾タスクの処理終了後の前記領域管理テーブル75の記憶領域の内容の差分情報を示す。LOG及びDIFFの作成処理は入力同期ログ作成処理503と差分作成処理903でそれぞれ詳細に説明する。
The coincidence data identifier indicates a data type used for matching the processing states of the
データ数はLOGとDIFFの作成された数を示す。初期設定値は0である。管理情報はLOGとDIFFの保存先番地とデータサイズを管理する。保存先番地はLOGとDIFFの保存先の記憶領域の番地を示す。サイズはLOGとDIFFのデータサイズを示す。 The number of data indicates the number of created LOG and DIFF. The initial setting is 0. Management information manages the storage address and data size of LOG and DIFF. The save destination address indicates the address of the storage area where LOG and DIFF are saved. The size indicates the data size of LOG and DIFF.
図5はタスク処理とタイミングの概要で、同期処理にかかわる前記ソフトウェアプログラムの動作タイミングと関連パラメータについて説明する。 FIG. 5 is an outline of task processing and timing, and the operation timing and related parameters of the software program related to the synchronization processing will be described.
周期(T)92はタスクの動作周期である。この周期は、データ一致化ミドル51において、タスク管理テーブル72の開始終了情報から先頭タスクを判別し、タイマー管理テーブル73から該当タスクのタイマーインターバル情報を読み出すことで求められる。 A cycle (T) 92 is a task operation cycle. This period is obtained by determining the head task from the start / end information of the task management table 72 and reading the timer interval information of the corresponding task from the timer management table 73 in the data matching middle 51.
P93は少なくても1つ以上で構成されるタスクのタスクグループの処理時間の合計を示す。タスク管理テーブル72の開始終了情報から先頭タスクを判別し、タイマー管理テーブル73から該当タスクのタイマーインターバル情報を読み出して算出した処理周期開始の時刻から、タスク管理テーブルの開始終了情報から判別した後尾タスクの処理終了を実行した時刻までの時間を示す。 P93 indicates the total processing time of the task group of tasks composed of at least one. The start task is determined from the start / end information of the task management table 72, and the tail task is determined from the start / end information of the task management table based on the processing cycle start time calculated by reading the timer interval information of the corresponding task from the timer management table 73. This shows the time until the time when the process is completed.
Q94は周期待ち時間を示す。後尾タスクの処理終了時刻から、先頭タスクの処理開始までの待ち時間を示す。 Q94 indicates the period waiting time. Indicates the waiting time from the processing end time of the tail task to the start of processing of the head task.
INQ_T95は通信ミドル61が外部ネットワーク32からの入力データをバッファリングする時間を示す。タスクグループの処理開始時間から後述する入力同期通信処理開始までの時間である。 INQ_T95 indicates a time during which the communication middle 61 buffers input data from the external network 32. This is the time from the task group processing start time to the input synchronous communication processing start described later.
ST96は現用系計算機10が待機系計算機20へ同期データ送信するのに必要な時間である。同期データ管理テーブル52のサイズを内部ネットワーク31の通信帯域で割った時間である。前記同期処理通信は本ST 96の値から、前記タスクグループの処理開始時間の直前まで終了するようにデータ一致化ミドル51は同期処理通信開始の時間を制御する。
ST96 is a time required for the
AP制御処理とイベント処理97はタスクグループの処理中でOS 41から発生するタイマーやシグナルイベントをタスク管理ミドルで処理し、タスクグループに通知する。さらに、データ一致化ミドル51へ通知する。この通知によってデータ一致化ミドル51は、計算機内部で発生するイベント情報を同期データ管理テーブルへ設定することが可能である。
The AP control process and
以下、データ一致化ミドル51の入力同期処理と多重系復旧処理について説明する。 Hereinafter, the input synchronization process and the multiple system restoration process of the data matching middle 51 will be described.
図6は現用系計算機10と待機系計算機20間での外部ネットワーク32からの入力データに関する、データ一致化ミドル51の同期処理を示す。以下、各処理ステップを説明する。
FIG. 6 shows a synchronization process of the data matching middle 51 regarding the input data from the external network 32 between the
ステップ101は初期設定。ミドルレイヤのソフトウェアプログラムの起動等の初期化やタスクの登録等タスクの処理開始のための初期処理を行う。ステップ102はデータ一致化ミドル51はタスク管理ミドル71からのイベント待ちを行う。ステップ103はタスク管理ミドル71からの通知イベントが後尾タスクの処理終了か判断する。通知イベントとしては後述するステップ107で設定したタイマーイベントもあり、タイマーイベントの場合、後述するステップ111の処理を行う。ステップ104はステップ103で後尾タスクの処理終了であれば(Y)、処理終了の時刻T1を取得する。ステップ105はタスク管理テーブル72の開始終了情報から先頭タスクの識別子を読出し、タイマー管理テーブル73のタイマーインターバル情報から先頭タスクの次の処理開始時刻T2を算出する。ステップ106は同期通信処理時間STと前記T2とT1の差から算出した周期待ち時間Qの大きさを比較する。
Step 101 is the initial setting. Performs initial processing to start task processing, such as initialization of middle layer software programs and task registration. In
ステップ107はSTがQより小さい場合(Y)、同期通信処理開始タイマーを、OS41へ設定する。タイマー発火時間は、QとSTの差分である。このように同期通信処理開始を遅らせることで、通信ミドル61がバッファリングする入力データの量を大きくすることが可能である。可能であれば1回の同期通信処理で処理する入力データの量を大きくすることで、同期通信で発生するオーバーヘッドの軽減とシステムの応答性の向上が図れる。次にステップ102へ戻る。
ステップ111はSTがQより小さくない場合(N)、入力データの同期をするための同期通信処理を行う。まず、データ一致化ミドル内部で管理しているロジカルクロックLCに1を加算する。
In
In step 111, when ST is not smaller than Q (N), synchronous communication processing for synchronizing input data is performed. First, 1 is added to the logical clock LC managed in the data matching middle.
ステップ112は通信ミドル61がバッファリングしていた入力データを同期データ管理テーブル52に設定する。入力データは1つ以上であってもよい。テーブルのデータ識別子は通信ミドルで、データは入力データで、サイズはデータのサイズでロジカルクロックにはステップ111で加算したロジカルクロックを、発生時刻は現在時刻を設定する。ステップ113はステップ112で設定した同期データ管理テーブル52を待機系計算機20へ送信する。また、同期データ管理テーブル52のSTATUSにSTARTを設定し入力同期の開始を示す。
In
ステップ114は待機系計算機20からの入力同期完了通知を待つ。ステップ115は同期データ管理テーブル52のSTATUSに入力同期の終了を示すENDに設定し、ステップ102へ戻る。
Step 114 waits for an input synchronization completion notification from the
一方、待系計算機20はステップ113に対して以下の処理を行う。ステップ201は現用系計算機10からの同期データを受信する。ステップ202は同期データから入力データ情報を読出し、待機系計算機20の通信ミドル61のバッファリングした入力データとの整合性処理を行う。例えば、受信した同期データからの入力データのシリアル番号等の順の合わせ、待機系計算機20の通信ミドル61のバッファリングした入力データの並べ変え処理がある。待系計算機20のデータ一致化ミドルは通信ミドル61へ入力処理開始通知をし、通信ミドル61は待機系計算機のタスクへ入力データを渡す。それによって、タスクは処理開始を行う。前述したように、前現用系計算機10と待機系計算機20は同じソフトウェアプログラム構造を持っており、同じ処理順序でタスク81を動作させているため、同じ入力データをタスクへ引き渡すことで、タスクの処理結果及び内部状態は一致させることができる。ステップ203は入力同期完了を現用系計算機10へ送信する。
On the other hand, the
図7は、現用系計算機10または待機系計算機20に障害が発生した場合、障害発生した前記計算機を復旧する処理の流れを示す。ステップ301は障害復旧が必要な待機系計算機20からの復旧要求を待つ。ステップ302は待機系計算機20からの復旧要求がある場合、後尾タスク81の処理終了を待つ。復旧処理は、現用系計算機10のタスク81の処理に影響を及ばないように周期待ち時間Q94の時間を利用して行う。
FIG. 7 shows the flow of processing for recovering the failed computer when a failure occurs in the
ステップ303は領域管理テーブル75の記憶領域の内容をすべてメモリにコピーする。ステップ304はコピーしたメモリを待機系計算機20へ転送する。転送処理のオーバーヘッドの軽減を考え、転送処理専用の子プロセスを生成し、タスクが実行している別の演算装置11のコアで実行してもよい。ステップ305は後述する高速リプレイ前処理を行う。本実施例では、後述する高速リプレイ処理は子プロセスを生成し前記の別コアで実施する例を示す。この場合、本ステップでは、高速リプレイ処理の子プロセスへの前処理開始通知となる。前処理開始通知はUNIX(登録商標) DOMAIN等のプロセス間通信機構等を利用する。
Step 303 copies all the contents of the storage area of the area management table 75 to the memory. In
ステップ306は後述する差分転送前処理を行う。本実施例では、後述する差分転送処理は子プロセスを生成し前記の別コアで実施する例を示す。この場合、本ステップでは、差分転送処理の子プロセスへの前処理開始通知となる。ステップ307はステップ304で送信したメモリのコピー完了受信を待つ。送信メモリのコピーは待機系計算機20で実行されコピー完了を現用系計算機10へ通信する。詳細は後述する。
In
ステップ308ではメモリコピー完了を受信すると、ステップ304からステップ307までに現用系計算機10のタスクが処理した周期T92の合計時間RD311の間に変更された記憶領域の内容の復旧手段を選定し、復旧処理を行う処理時間判定部56を呼び出す。処理時間判定部56による復旧手段の選択と復旧処理は後述する。
In
一方、待機系計算機20はステップ301に対して以下の処理を行う。ステップ401は待機系計算機20は初期設定処理として、ステップ101と同様に、ミドルレイヤのソフトウェアプログラムの起動等の初期化やタスクの登録等タスクの処理開始のための初期処理を行う。ステップ402は現用系計算機10のタスク81との処理結果及び内部状態を一致させ、多重系の復旧するために、現用系計算機10へ復旧要求送信を行う。要求送信によって、ステップ301からの処理が現用系計算機10にて行われる。ステップ403はメモリコピー用のメモリ内容の受信を待つ。ステップ404は領域管理テーブル75から記憶領域情報を読出し、受信したメモリ内容のコピー先を確認する。
On the other hand,
ステップ405は受信したメモリを読出し領域にコピーする。ステップ406は現用系計算機10へメモリコピー完了を送信する。ステップ407はステップ308で選定された復旧処理から復旧処理イベントを受信し、復旧処理を行う。詳細は後述する。
Step 405 copies the received memory to the read area. In
図8は高速リプレイ処理を示す。ステップ501は処理要求を待つ。処理要求として、ステップ305からの高速リプレイ前処理の要求と、ステップ308にて復旧手段として高速リプレイが選定された場合、後述する入力同期ログ転送要求がある。ステップ502はステップ305からの高速リプレイ前処理の要求か判断する。ステップ503は高速リプレイ前処理の要求の場合(Y)、入力同期ログ作成処理を行う。本実施例では入力同期ログ作成処理のオーバーヘッドを考え、入力同期ログ作成処理専用の子プロセスを生成し、タスクが実行している別の演算装置11のコアで実行する。
入力同期ログは、図6で示した入力同期処理で設定した同期データ管理テーブルのログと計算機の内部イベントのログからなるものである。処理詳細は後述する。ステップ511は入力同期ログ転送要求の場合(N)、入力同期ログ転送処理を行う。処理詳細は後述する。
FIG. 8 shows the fast replay process. Step 501 waits for a processing request. As processing requests, there is a request for high-speed replay pre-processing from
The input synchronization log is composed of a log of the synchronous data management table set by the input synchronization process shown in FIG. 6 and a log of internal events of the computer. Details of the process will be described later. In
図9はステップ503の入力同期ログ作成処理を示す。ステップ601は入力同期ログ作成終了通知受信かを判断する。ステップ602は入力ログ作成終了通信を受信した場合(Y)、入力同期ログ作成を終了する。ステップ611は入力ログ作成終了通信を受信してない場合(N)、図6の入力同期通信処理(ST)の終了を待つ。終了の判断は、同期管理テーブル52のSTATUS情報を読出し、同期が完了しているかどうか判断する。STATUS情報がENDであれば同期完了と判断しステップ612に進む。
FIG. 9 shows the input synchronization log creation processing in
ステップ612は同期データ管理テーブル52の内容をコピーし、同期データ管理テーブル52の新規インスタンスをメモリ上で作成する。コピーによって新規インスタンスの同期データ管理テーブル52には、現時点で外部ネットワーク32からの入力データが設定される。ステップ613は前記データ一致化ミドル51の内部ロジカルクロックLCに1を加算し、現在時刻を取得し、新規作成した同期データ管理テーブル52のロジカルクロックと発生時刻の情報に設定する。
Step 612 copies the contents of the synchronous data management table 52 and creates a new instance of the synchronous data management table 52 on the memory. As a result of copying, the input data from the external network 32 is set in the synchronization data management table 52 of the new instance at the present time. In
ステップ614はタスク管理ミドル71からのタイマーやシグナル発生イベントの通知を待つ。多重系復旧時は、同期データ管理テーブル52の内容コピーによる入力データだけではなく、入力データを処理するタスク81の処理に影響を与えるタイマーイベントやシグナルイベントの発生内容も内部入力として活用することで、待機系計算機20のタスク81の状態を、現用系計算機10の入力ログの内容でリプレイできる。ステップ615は前記タスク管理ミドル71からのイベント通知があるか判断する。ステップ616はイベント通知があれば(Y)、データ一致化ミドル51の内部ロジカルクロックLCに1を加算し、現在時刻を取得する。ステップ617はイベントがタイマーの場合、同期データ管理テーブル52のデータソース情報を、73で設定し、タイマー管理テーブル73から同タイマー識別子、例えばTR1に設定しているタイマー情報をデータとして設定する。また、そのデータのサイズTR_SIZEをサイズに設定する。またステップ616で取得したロジカルクロックと現在時刻を発生時刻として設定する。イベントがシグナルの場合は、前シグナル管理テーブル74をもって同様な処理を行う。次に、同期データ管理テーブル52のSIZE情報に設定したデータのサイズを加算する。
Step 614 waits for notification of a timer or signal generation event from the task management middle 71. At the time of multi-system recovery, not only the input data by copying the contents of the synchronous data management table 52 but also the contents of occurrence of timer events and signal events that affect the processing of the
ステップ621はイベント通知がなければ(N)、タスク管理ミドル71からの通知により、後尾タスクの処理が終了したか判断する。判断がNであれば、ステップ614に戻りイベント通知を待つ。判断がYであれば、ステップ622に進む。
In
ステップ622は図4(b)の一致化データ管理テーブルの一致化データ識別子LOGの管理情報の保存先番地に前記ステップ612で作成したメモリの番地情報を設定し、そのメモリ上でコピーされた同期データ管理テーブル52のSIZE情報を管理情報のサイズに設定する。また、前記LOGのデータ数に1を加算する。次に、ステップ601に戻る。このステップで新規インスタンスの同期データ管理テーブル52はステップ304からタスクが処理したR回目、R+1回目のように、処理周期R+n回目の周期の入力同期ログの入力.logとしてメモリ上に保存される。
In
図10は図9で作成した入力同期ログの転送と待機系計算機20の高速リプレイ処理を示す。まず、ステップ511の入力同期ログ転送処理を説明する。ステップ701は図9で作成したすべての入力同期ログを転送する。ステップ304と同様にタスク81が実行している別の演算装置11のコアで実行している転送処理専用の子プロセスを利用して転送してもよい。
FIG. 10 shows the transfer of the input synchronization log created in FIG. 9 and the high-speed replay processing of the
ステップ702は待機系計算機20からリプレイ処理完了通知を待つ。ステップ703は転送が必要な前記入力同期ログがあるか判断する。ステップ702のリプレイ完了待ちの間に作成された入力同期ログが存在するかを判断するためである。もし、存在すれば(Y)、ステップ701に戻る。ステップ711は転送すべき入力同期ログがなければ(N)、図8のステップ503の処理に対して入力同期ログ作成終了通知を行う。ステップ712は入力同期ログ転送処理を終了する。
Step 702 waits for a replay processing completion notification from the
一方、待系計算機20は前記ステップ701に対して以下の処理を行う。ステップ801は現用系計算機10から転送された入力同期ログを受信し、そのログ内容を読みだす。ステップ802は受信した入力同期ログの数分だけ下記ステップを繰り返す。ステップ803はログ数分の処理が終了されると(Y)、リプレイ終了通知を現用系計算機10へ送信する。ステップ811は受信した入力同期ログから同期データ管理テーブル52のデータソース情報から61の入力データをすべて読出し、待機系計算機20の通信ミドル61へ入力データを渡す。
On the other hand, the
また、待系計算機20のデータ一致化ミドル51は通信ミドル61へ入力処理開始通知をし、通信ミドル61は待機系計算機のタスクへ入力データを渡す。それによって、タスクは処理開始を行う。前述したように、前現用系計算機10と待機系計算機20は同じソフトウェアプログラム構造を持っており、同じ処理順序でタスク81を動作させているため、同じ入力データをタスクへ引き渡すことで、タスクの処理結果及び内部状態は一致させることができる。図6の入力同期処理に示したステップ113の現用系計算機10のデータ一致化ミドル51から送信される入力データの代わりに、本ステップでは前記ステップ801で受信した入力ログから取り出し、待機系計算機20の通信ミドル61へ入力データを渡すことで入力同期を実現している。
The data matching middle 51 of the
ステップ812は受信した入力同期ログに対して同期データ管理テーブル52のデータソース識別子に記載のタイマー管理テーブルのタイマーイベントや前記データソース識別子に記載のシグナル管理テーブルにあるシグナルイベントログを、ロジカルクロックLCの値が小さい順に並べ替える。また、同期データ管理テーブル52のデータソース識別子に記載の通信ミドルに設定されているデータ(IN_001)の設定時刻である発生時刻情報に対して、イベントログの発生の相対時間を算出し、待機系計算機20のOS41にタイマーイベント設定を行う。ステップ813はステップ812で設定したタイマーイベントか待機系計算機20の後尾タスクの終了イベントかを判断する。
In
ステップ814は設定したタイマーイベントか判断する。もし、後尾タスクの終了イベントであれば(N)、ステップ811に戻ると、先頭タスクの開始を行う。つまり、高速リプレイ処理は、821に示すように周期待ち時間Q94を省くことで、現用系計算機10のタスクの状態に追いつく時間を短縮する。短縮度合いは、タスク81の処理時間P93に対する周期待ち時間Q94の割合に比例する。詳細は、図13の復旧手段選択処理にて説明する。ステップ815は設定したタイマーイベントであれば(Y)、待機系計算機20のタスク管理ミドル71へタイマー/シグナルイベントを通知する。図5のAP制御処理とイベント処理97に示したように、現用系計算機10で、タイマー/シグナルイベント通知を行うOS41の処理を、本処理でデータ一致化ミドル51が行う。
Step 814 determines whether the timer event has been set. If the event is an end event of the tail task (N), the process returns to step 811 to start the top task. In other words, the high-speed replay process reduces the time for catching up with the task status of the
図11はもう一つの多重系復旧手段である差分転送処理を示す。ステップ901は処理要求を待つ。処理要求として、ステップ306からの差分転送前処理の要求と、ステップ308にて復旧手段として差分転送が選定された場合の、差分転送要求がある。ステップ902は前記ステップ306からの差分転送前処理の要求か判断する。ステップ903は処理要求が差分転送前処理であれば(Y)、差分作成処理を行う。ステップ304のように、差分作成処理のオーバーヘッドを考え、差分作成処理専用の子プロセスを生成し、タスクが実行している別の演算装置11のコアで実行してもよい。詳細は後述する。
FIG. 11 shows differential transfer processing which is another multiplex system recovery means. Step 901 waits for a processing request. As processing requests, there are a request for differential transfer pre-processing from
ステップ912は差分転送要求の場合(N)、ステップ903で作成した転送可能な差分があるか判断する。ステップ912は差分が存在すれば(Y)、ステップ913へ進む。なければ(N)ステップ921の差分作成終了へ進む。ステップ913はステップ903で作成した差分を待機系計算機20へ転送する。ステップ304のように、転送処理のオーバーヘッドを考え、転送処理専用の子プロセスを生成し、タスク81が実行している別の演算装置11のコアで実行してもよい。
In
ステップ914は待機系計算機20からの差分コピー完了通知を待つ。待機系計算機20は現用系計算機10が送信した差分をコピーし、差分コピー完了を現用系計算機10へ通知する。差分コピー完了通知を受信すると、ステップ911へ戻る。ステップ921はステップ903の処理に対して差分作成終了通知を行い、ステップ901へ戻る。
Step 914 waits for a differential copy completion notification from the
図12はステップ903の差分作成処理を示す。ステップ1001は差分作成終了通知受信したか判断する。ステップ1002は終了通知を受信した場合(Y)、差分作成処理を終了する。ステップ1011は終了通知を受信しなかった場合(N)、ステップ304で送信した記憶領域の更新の監視フラグがONされているか判断する。ステップ1012は記憶領域の更新の監視フラグがONの場合(Y)、後尾タスク81の処理終了が実行されたか確認する。処理終了が実行されていなければステップ1001へ戻る。
FIG. 12 shows the difference creation process in step 903.
ステップ1013は記憶領域の更新をチェックする。例えば、記憶領域がメモリでOS41がLinux(登録商標)であれば、/proc/pid/pagemapのファイル内容を確認することでミドルレイヤでもチェックは可能である。ステップ1014は記憶領域の更新があった場合、内容をコピーする。このステップでステップ304からタスクが処理したR回目、R+1回目のように、処理周期R+n回目のまでの処理の差分が1031のように差分.glbとしてメモリ上で保存される。もし、記憶領域がメモリであれば、ページ単位で記録され、ページ単位サイズ、例えば4KBの複数の差分.glbが作成される。差分.glbの数は、変更された記憶領域のサイズをページ単位で割った整数となる。そのため、前記タスク81の処理によっては、データ一致化対象の領域の全サイズの量の差分.glbが作成される可能性がある。この差分の量が一定量を超えると差分転送による多重系復旧において復旧時間が長くなり、復旧不可能となる場合がある。そのため、図10の高速リプレイによる復旧処理に切り替える判断が必要となる。その判断は、図13の復旧手段選択処理にて説明する。
ステップ1015は図4(b)の一致化データ管理テーブル53の一致化データ識別子のDIFFの情報を更新する。まず、ステップ1014で作成した差分のメモリ番地を一致化データ管理テーブル53の一致化データ識別子のDIFFの管理情報の保存先番地に設定し、差分のサイズを管理情報のサイズに設定する。次に、一致化データ管理テーブル53のデータ数に1を加算する。
ステップ1016は差分コピーが完了すると、記憶領域の更新の監視フラグをOFFとする。また、記憶領域変更監視処理のリセットを行う。例えば、記憶領域がメモリでOS41がLinuxであれば、/proc/pid/clear_refsのファイル内容を設定することでミドルレイヤでも更新監視のクリア処理が可能である。以上のステップにより図5のタスクの処理時間P93の間の更新をチェックし、タスクの周期待ち時間Q94で差分を作成することになる。次に、ステップ1001に戻る。
In
図13は処理時間判定部56に行う復旧処理時間に基づく復旧手段選択処理を示す。ステップ1101は稼動割計算部54を呼び出し、図5の周期Tの1周期内における実行時間Pに対する周期待ち時間Qの割合の[Q/P]を算出する。ステップ1102は記憶領域差分計算部55を呼び出し、1031の差分総量(Δ)に対する内部ネットワークの転送量である帯域(N)の割合の[N/Δ]を算出する。ステップ1103はステップ1101で算出した[Q/P]と、ステップ1102で算出した[N/Δ]に1(周期)を引いた([N/Δ]−1)の量を比較する。
FIG. 13 shows recovery means selection processing based on the recovery processing time performed by the processing
ステップ1104は[Q/P]が大きければ、高速リプレイ処理要求処理として、ステップ501に対して入力同期ログ転送要求を送信し、高速リプレイによる多重系復旧を実施する。ステップ1105は[Q/P]が大きくなければ、ステップ901に対して差分転送要求を送信し、差分転送による多重系復旧を実施する。
In
ステップ1103の判断の根拠を以下に説明にする。まず、関連用語を纏める。
The basis for the judgment in
M[byte]:データ一致化対象の記憶領域の総量
N[byte/秒]:内部ネットワーク31の転送量。帯域
T[秒]:図5のタスク実行周期時間
P[秒]:図5の周期内のタスク実行時間の合計
Q[秒]:図5の周期内のタスク次の周期までの待ち時間
Δ[byte]:1031の多重系復旧に必要な記憶領域の差分の総量
以上のパラメータにより以下の性質が導ける。
L1. データ一致化対象の記憶領域の総量を待機系計算機20へ転送する時間(311のRD)で現用系計算機10のタスク81が実行できる周期の回数は以下となる。
M [byte]: Total amount of storage area subject to data matching
N [byte / sec]: Transfer amount of the
T [sec]: Task execution cycle time in Figure 5
P [seconds]: Total task execution time within the period in Figure 5
Q [seconds]: Waiting time until the next task in the cycle of FIG. 5 Δ [byte]: The following properties can be derived by parameters greater than the total amount of storage area differences required for 1031 multiple system recovery.
L1. The number of cycles that the
周期の回数=M/N × 1/T
L2. 図10の高速リプレイ処理で、待機系計算機20が現用系計算機10の処理に追いつくまでの時間(αT)は以下の計算式で算出できる。
Number of cycles = M /
L2. In the high-speed replay processing of FIG. 10, the time (αT) until the
αT =(M/N × 1/T)/[Q/P]
L3. 図11の差分転送処理で待機系計算機20が現用系計算機10の処理に追いつくまでの時間(αT)は以下の計算式で算出できる。
αT = (M / N × 1 / T) / [Q / P]
L3. The time (αT) until the
αT =(M/N × 1/T)/([N/Δ]−1)
L3-1. 図11の差分転送処理による多重系復旧処理時間が収束する条件は以下である。
αT = (M / N × 1 / T) / ([N / Δ] −1)
L3-1. Conditions for convergence of the multiple system recovery processing time by the differential transfer processing in FIG. 11 are as follows.
[N/Δ] > 1回の周期時間
L4. L2とL3から、多重系復旧時間を短縮するには現用系計算機10の処理に追いつくまでの時間(αT)を短くする手段を選択する必要があり、[Q/P]と([N/Δ]−1)を比較し、この値が大きい方が手段を選べば、αTが小さくなるので多重系復旧時間を短縮することができる。
図14は稼動割合計算部の処理を示す。
[N / Δ]> one cycle time
L4. From L2 and L3, it is necessary to select a means to shorten the time (αT) until catching up with the processing of the
FIG. 14 shows the processing of the operation ratio calculation unit.
ステップ1201は前記タイマー管理テーブル73から先頭タスク81が設定しているタイマーインターバル情報を取得し、t1に設定する。
In
ステップ1202は入力同期作成処理503で作成された入力ログの内容である同期データ管理テーブル52のデータソース識別子61の発生時刻を読込、先頭タスク81の処理開始時刻として、t2に設定する。まず、図9の入力同期ログ作成処理において入力同期処理後にデータソース識別子61のログが作成される。また、図6の入力同期処理終了後に先頭タスクの処理開始が行われるため、先頭タスクの処理開始時刻として利用可能である。ただし、前述したように図5のPの算出方法でのタスクの開始時刻算出も可能であり、その算出方法については本実施例に限定されるものではない。
In
ステップ1203は同期データ管理テーブル52のデータソース識別子72から、後尾タスクの終了時に利用されるIPC_3の発生時刻を読込、後尾タスクの終了時刻t3を設定する。
In
ステップ1204はステップ1202で設定したt2と前記ステップ1203で設定したt3の差からタスクグループの処理時間Pを算出する。
In
ステップ1205はステップ1201で設定したt1にステップ1202で設定したt2を加算し先頭タスクが次に処理開始を行う時刻を算出する。また、算出した時刻とステップ1203で設定したt3との差からタスクグループの待ち時間Qを算出する。
In
ステップ1206はステップ1204で算出したタスクグループの処理時間Pに対してステップ1205で算出したタスクグループの待ち時間Qの割合を算出する。
図15は記憶領域差分計算部の処理を示す。
In step 1206, the ratio of the task group waiting time Q calculated in
FIG. 15 shows the processing of the storage area difference calculation unit.
ステップ1301は一致化データ管理テーブル53の一致化データ識別子DIFFのデータ数を読込む。
In
ステップ1302はデータ数分の、一致化データ管理テーブル53の一致化データ識別子DIFFの管理情報のサイズの合計を算出し、図7のRD間で作成された記憶領域の差分の総量Δを算出する。
ステップ1303は内部ネットワークの帯域を取得し、ステップ1302で算出した差分の総量Δに対する割合N/Δを算出する。
In
10…現用系計算機、11…演算装置、12…記憶装置、13…通信装置1、14…通信装置2、20…待機系計算機、31…現用系計算機と待機系計算機間を接続するLAN、32…現用系計算機と待機系計算機を外部計算機と接続する外部ネットワーク、41…OS、51…データ一致化ミドル、52…同期データ管理テーブル、53…一致化データ管理テーブル、54…稼動割計算部、55…記憶領域差分計算部、56…処理時間判定部、61…通信ミドル、71…タスク管理ミドル、72…タスク管理テーブル、73…タイマー管理テーブル、74…シグナル管理テーブル、75…領域管理テーブル、81…タスク、91…タスク処理とタイミング概要、92…周期、93…実行時間P、94…周期待ち時間Q、95…外部入力バッファリング時間INQ_T、96…入力同期通信処理時間ST、97…タスク制御処理とイベント処理
DESCRIPTION OF
Claims (5)
前記現用系計算機の周期におけるプログラムの実行時間割合を求める稼働割合計算部と、
前記プログラムの稼働により発生する現用系計算機の記憶領域と待機系計算機の記憶領域の差分を求める記憶領域差分計算部と、
前記稼働割合計算部から受け取ったプログラムの実行時間割合と、前記記憶領域差分計算部から受け取った現用系計算機の記憶領域と待機系計算機の記憶領域の差分データ量に基づいて、現用系計算機で実行し、待機系計算機で実行していない処理を待機系計算機で実行することにより待機系計算機の記憶領域を現用系計算機の記憶領域に一致させるか、現用系計算機の記憶領域と待機系計算機の記憶領域の差分データを現用系計算機から待機系計算機へ送付し、待機系計算機の記憶領域へ反映させることにより待機系計算機の記憶領域を現用系計算機の記憶領域に一致させるかを選択する処理時間判定部とを備えることを特徴とする多重化計算機の記憶領域一致化装置。 A storage area matching device for a multiplexed computer composed of an active computer that periodically executes a program and a standby computer prepared for switching to an active computer from the active computer,
An operation rate calculation unit for obtaining an execution time rate of the program in the cycle of the active computer;
A storage area difference calculation unit for obtaining a difference between the storage area of the active computer and the storage area of the standby computer generated by the operation of the program;
Based on the execution time ratio of the program received from the operation ratio calculator and the difference data amount between the storage area of the active computer and the storage area of the standby computer received from the storage area difference calculator. The storage area of the standby system computer is made to match the storage area of the active system computer by executing processing that is not being executed by the standby system computer, or the storage area of the active system computer and the storage of the standby system computer. Processing time judgment to select whether to match the storage area of the standby computer with the storage area of the active computer by sending the difference data of the area from the active computer to the standby computer and reflecting it in the storage area of the standby computer A storage area matching device for a multiplexed computer.
処理時間判定部が現用系計算機で実行し待機系計算機で実行していない処理を待機系計算機で実行するとき、前記処理記憶部が記憶した入力データと出力データを用いて待機系計算機で前記プログラムを実行させることにより待機系計算機の記憶領域を現用系計算機の記憶領域に一致させることを特徴とする請求項2に記載の多重化計算機の記憶領域一致化装置。 A processing storage unit for storing the input data and output data of the program;
When the processing time determination unit is executed by the active computer and the processing not executed by the standby computer is executed by the standby computer, the program is executed by the standby computer using the input data and output data stored in the processing storage unit. 3. The storage area matching apparatus for a multiplexed computer according to claim 2, wherein the storage area of the standby computer is made to coincide with the storage area of the active computer by executing.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015086392A JP6446315B2 (en) | 2015-04-21 | 2015-04-21 | Multiplexing computer storage area matching device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015086392A JP6446315B2 (en) | 2015-04-21 | 2015-04-21 | Multiplexing computer storage area matching device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016206865A true JP2016206865A (en) | 2016-12-08 |
JP6446315B2 JP6446315B2 (en) | 2018-12-26 |
Family
ID=57487856
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015086392A Active JP6446315B2 (en) | 2015-04-21 | 2015-04-21 | Multiplexing computer storage area matching device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6446315B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019185371A (en) * | 2018-04-10 | 2019-10-24 | 富士通株式会社 | Server switching program, server switching method, and server switching system |
WO2022224617A1 (en) * | 2021-04-19 | 2022-10-27 | 株式会社Nttドコモ | Information processing device |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009217505A (en) * | 2008-03-10 | 2009-09-24 | Hitachi Ltd | Computer system, computer control method, and computer control program |
-
2015
- 2015-04-21 JP JP2015086392A patent/JP6446315B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009217505A (en) * | 2008-03-10 | 2009-09-24 | Hitachi Ltd | Computer system, computer control method, and computer control program |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019185371A (en) * | 2018-04-10 | 2019-10-24 | 富士通株式会社 | Server switching program, server switching method, and server switching system |
JP7106953B2 (en) | 2018-04-10 | 2022-07-27 | 富士通株式会社 | SERVER SWITCHING PROGRAM, SERVER SWITCHING METHOD, AND SERVER SWITCHING SYSTEM |
WO2022224617A1 (en) * | 2021-04-19 | 2022-10-27 | 株式会社Nttドコモ | Information processing device |
Also Published As
Publication number | Publication date |
---|---|
JP6446315B2 (en) | 2018-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109491776B (en) | Task arranging method and system | |
Lorch et al. | The SMART way to migrate replicated stateful services | |
TWI470459B (en) | Storage control system, method, data carrier, and computer program product to operate as a remote copy pair by communicating between a primary and a secondary of said remote copy pair | |
KR100954462B1 (en) | Methods and apparatus for implementing a high availability fibre channel switch | |
CA2339783C (en) | Fault tolerant computer system | |
US9389976B2 (en) | Distributed persistent memory using asynchronous streaming of log records | |
US8473692B2 (en) | Operating system image management | |
CN107402722B (en) | Data migration method and storage device | |
WO2017067484A1 (en) | Virtualization data center scheduling system and method | |
US20130219224A1 (en) | Job continuation management apparatus, job continuation management method and job continuation management program | |
WO2020025049A1 (en) | Data synchronization method and apparatus, database host, and storage medium | |
JP4560074B2 (en) | Virtual computer system and virtual computer restoration method in the same system | |
CN112235405A (en) | Distributed storage system and data delivery method | |
JP6446315B2 (en) | Multiplexing computer storage area matching device | |
CN106855869B (en) | Method, device and system for realizing high availability of database | |
JP2005196726A (en) | Real time remote backup system and its backup method | |
JP6577901B2 (en) | Computer system and system state reproduction method | |
JP2000222376A (en) | Computer system and method for operating the same | |
CN112243030A (en) | Data synchronization method, device, equipment and medium of distributed storage system | |
WO2022227719A1 (en) | Data backup method and system, and related device | |
CN116954816A (en) | Container cluster control method, device, equipment and computer storage medium | |
CN113934575A (en) | Big data backup system and method based on distributed copy | |
US20240028611A1 (en) | Granular Replica Healing for Distributed Databases | |
CN114531394A (en) | Data synchronization method and device | |
US20230342065A1 (en) | Failure recovery in a replication environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20170111 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20170113 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20171120 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180731 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180821 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20181018 |
|
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: 20181106 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20181203 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6446315 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |