JP6318902B2 - 冗長システムおよび冗長化方法 - Google Patents

冗長システムおよび冗長化方法 Download PDF

Info

Publication number
JP6318902B2
JP6318902B2 JP2014127707A JP2014127707A JP6318902B2 JP 6318902 B2 JP6318902 B2 JP 6318902B2 JP 2014127707 A JP2014127707 A JP 2014127707A JP 2014127707 A JP2014127707 A JP 2014127707A JP 6318902 B2 JP6318902 B2 JP 6318902B2
Authority
JP
Japan
Prior art keywords
node
update
transfer path
primary
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014127707A
Other languages
English (en)
Other versions
JP2016009216A (ja
Inventor
秀行 古江
秀行 古江
敏郎 小野
敏郎 小野
朝昭 溝尾
朝昭 溝尾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014127707A priority Critical patent/JP6318902B2/ja
Priority to US14/721,137 priority patent/US9971661B2/en
Publication of JP2016009216A publication Critical patent/JP2016009216A/ja
Application granted granted Critical
Publication of JP6318902B2 publication Critical patent/JP6318902B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2041Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with more than one idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2048Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share neither address space nor persistent storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Description

本発明は、冗長システムおよび冗長化方法に関する。
データセンタには、Webサーバ、アプリケーションサーバ、DB(DataBase)サーバなどの各種ノードが設置され、各ノードは、災害や障害に備えて冗長化されることが一般的である。
例えば、データセンタ内のノードについて正系のノードと副系のノードとを用意し、正系のノードが故障した場合、故障した正系のノードに代わり副系のノードが、故障した正系のノードの処理を引き継ぎ、処理を継続する冗長化技術が知られている。
また、正系のデータセンタのバックアップ用の副系のデータセンタを設け、正系のデータセンタが被災した場合に、バックアップ用の副系のデータセンタが処理を引き継ぎ、正系のデータセンタで実行される処理を継続する技術が知られている。
特開2008−134986号公報
正系のデータセンタから副系のデータセンタへログを転送するノードが故障した場合、そのノードが復帰するまで、副系のデータセンタにログが転送されない。そのため、正系のデータセンタの副系のノードから副系のデータセンタにデータの更新情報を転送する経路をさらに設けることが考えられる。しかしながら、代替のノードが動作することに応じて、更新情報を転送する経路にも経路の切り替えが強いられると、新たな経路の設定による運用コストの増加や切り替え処理の煩雑化を招くおそれがある。
1つの側面では、ノードの代替が発生する場合に、代替のノードが動作する前の転送路を利用してデータ更新情報を送信することを目的とする。
第1の案では、冗長システムは、第1のノードと、第1のシステム内転送路を介して前記第1のノードにおけるデータ更新に応じて生成されるデータ更新情報を取得する第2のノードと、含む正系システムを備える。冗長システムは、前記第1のノードとの間で第1のシステム間転送路が設定され、該第1のシステム間転送路を介して前記第1のノードにおけるデータ更新に応じて生成されるデータ更新情報を取得する第3のノードと、前記第2のノードとの間で第2のシステム間転送路が設定され、前記第2のノードが取得した前記データ更新情報を該第2のシステム間転送路を介して取得可能であるとともに、前記第3のノードが取得した前記データ更新情報を第2のシステム内転送路を介して取得可能な第4のノードと、含む副系システムと、を備える。前記冗長システムは、前記正系システムの前記第1のノードに代替して前記第2のノードを動作させ、前記第2のノードにおけるデータ更新に応じて生成されるデータ更新情報の前記副系システムへの送信を行う場合に、前記第4のノードが、前記第2のノードにおけるデータ更新に応じて生成される前記データ更新情報を、前記第2のシステム間転送路を利用して前記第2のノードから取得するとともに、前記第2のシステム内転送路の方路変更を実行し、前記第4のノードが取得した前記データ更新情報を前記第2のシステム転送路を利用して前記第3のノードが取得する設定に変更する。
1つの側面では、ノードの代替が発生する場合に、代替のノードが動作する前の転送路を利用してデータ更新情報を送信することができる。
図1は、実施例1に係る冗長化システムの全体構成例を示す図である。 図2は、正センタの各ノードの機能構成を示す機能ブロック図である。 図3は、ユーザログ例を示す図である。 図4は、制御ログ例を示す図である。 図5は、リカバリポイントログ例を示す図である。 図6は、システム間通信で送信される更新ファイルの例を示す図である。 図7は、副センタの各ノードの機能構成を示す機能ブロック図である。 図8は、正マスタノードから正ミラーノードへの通知処理の流れを示すフローチャートである。 図9は、正マスタノードから副マスタノードへの通知処理の流れを示すフローチャートである。 図10は、正ミラーノードが実行する更新処理の流れを示すフローチャートである。 図11は、正ミラーノードが実行する通知処理の流れを示すフローチャートである。 図12は、副マスタノードが実行する更新および通知処理の流れを示すフローチャートである。 図13は、副ミラーノードが実行する更新処理の流れを示すフローチャートである。 図14は、冗長化システムの系切替例1を説明する図である。 図15は、冗長化システムの系切替例2を説明する図である。 図16は、冗長化システムの系切替例3を説明する図である。 図17は、冗長化システムの系切替例4を説明する図である。 図18は、正マスタノードが実行する切替処理の流れを示すフローチャートである。 図19は、正ミラーノードが実行する切替処理の流れを示すフローチャートである。 図20は、副マスタノードが実行する切替処理の流れを示すフローチャートである。 図21は、副ミラーノードが実行する切替処理の流れを示すフローチャートである。 図22は、ハードウェア構成例を説明する図である。
以下に、本願の開示する冗長システムおよび冗長化方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
[全体構成例]
図1は、実施例1に係る冗長化システムの全体構成例を示す図である。図1に示すように、このシステムは、DB4重化機能を実行してデータセンタがミラーリングされた冗長化システムであり、データセンタである正センタ1および副センタ5を有する。
正センタ1は、正マスタノード10と正ミラーノード20とを有するデータセンタであり、DBのミラーリングを実行する冗長化構成を有する。同様に、副センタ5は、副マスタノード50と副ミラーノード60とを有するデータセンタであり、DBのミラーリングを実行する冗長化構成を有する。この副センタ5は、正センタ1のバックアップとして機能する。なお、各ノードは、DBサーバやストレージシステムなどの一例である。
正マスタノード10は、業務による更新が行われる現用DB12を有する第1のノードの一例であり、通常運用時は正系ノードとして起動する。正マスタノード10は、業務アプリケーション等によって現用DB12を更新すると、更新前後の差分などを示す更新情報を抽出する。例えば、正マスタノード10は、更新された内容を示す更新ログを、現用DB12の更新に同期して正ミラーノード20に送信する。また、正マスタノード10は、複数の更新ログで構成される更新ファイルを生成して、所定の間隔で副マスタノード50に送信する。
正ミラーノード20は、現用DB12と同期して更新される待機DB22を有する第2のノードの一例であり、通常運用時は正マスタノード10のバックアップとして機能する。正ミラーノード20は、第1のシステム内転送路を介して正マスタノード10におけるデータ更新に応じて生成される更新情報である更新ログを受信する。そして、正ミラーノード20は、受信した更新ログを用いて待機DB22を更新する。その後、正ミラーノード20は、正マスタノード10から受信した更新ログで構成される更新ファイルを生成して、所定の間隔で副ミラーノード60に送信する。
副マスタノード50は、現用DB12と同等の情報を記憶する待機DB52を有する第3のノードの一例であり、通常運用時は、正センタ1の災害等の対策として、副系システムのマスタノードとして機能する。副マスタノード50は、正マスタノード10との間で第1のシステム間転送路が設定され、第1のシステム間転送路を介して正マスタノード10におけるデータ更新に応じて生成される更新情報を取得する。
例えば、副マスタノード50は、正マスタノード10から更新情報として更新ファイルを受信すると、受信した更新ファイルから更新ログを抽出し、抽出した各更新ログを用いて待機DB52を更新する。その後、副マスタノード50は、正マスタノード10から受信した複数の更新ログで構成される更新ファイルを生成して、所定の間隔で副ミラーノード60に送信する。
副ミラーノード60は、現用DB12と同等の情報を記憶する待機DB62を有する第4のノードの一例であり、通常運用時は、正センタ1の災害等の対策として、副系システムのミラーノードとして機能する。副ミラーノード60は、正ミラーノード20との間で第2のシステム間転送路が設定され、正ミラーノード20が取得したデータの更新情報を第2のシステム間転送路を介して取得する。また、副ミラーノード60は、副マスタノード50が取得したデータの更新情報を第2のシステム内転送路を介して取得する。
例えば、副ミラーノード60は、正ミラーノード20から更新情報として更新ファイルを受信するとともに、副マスタノード50から更新ログを受信する。そして、副ミラーノード60は、受信したいずれかの更新情報を用いて、待機DB62を更新する。
このような状態において、冗長化システムは、正センタ1の正マスタノード10に代替して正ミラーノード20を動作させ、正ミラーノード20におけるデータ更新に応じて生成されるデータの更新情報の副センタ5への送信を行う。この場合に、副ミラーノード60は、正ミラーノード20におけるデータ更新に応じて生成されるデータの更新情報を、第2のシステム間転送路を利用して正ミラーノード20から取得する設定に変更する。さらに、副ミラーノード60は、第2のシステム内転送路の方路変更を実行し、副ミラーノード60が取得したデータの更新情報を第2のシステム転送路を利用して副マスタノード50が取得する設定に変更する。
つまり、4重化DBを構成する副ミラーノード60は、正センタ1でマスタの切替えが発生すると、副マスタノード50へのシステム間経路の方向を変更し、正ミラーノード20からの更新情報を副マスタノード50へ送信する。この結果、冗長化システムは、ノードの代替が発生する場合に、代替のノードが動作する前の転送路を利用してデータ更新情報を送信することができる。
[各ノードの機能構成]
次に、図1に示した各ノードの機能構成について説明する。ここでは、一例として、図1の状態における機能構成について説明するが、これに限定されるものではなく、各ノードが同じ機能構成を有することもできる。
[正センタの機能構成]
図2は、正センタの各ノードの機能構成を示す機能ブロック図である。ここでは、正センタ1が有する正マスタノード10と正ミラーノード20とについて説明する。
(正マスタノードの機能構成)
図2に示すように、正マスタノード10は、通信制御部11、DB12、制御部13を有する。
通信制御部11は、正ミラーノード20および副マスタノード50との間の通信を制御する処理部であり、例えばネットワークインタフェースなどである。例えば、通信制御部11は、正ミラーノード20と第1のシステム内転送路を構築し、副マスタノード50と第1のシステム間転送路を構築する。
DB12は、業務情報などを記憶するデータベースであり、図1に示した現用DB12に該当する。このDB12は、業務による更新が行われる。このDB12は、例えばハードディスクなどの記憶装置に設けられる。
制御部13は、正マスタノード10全体の処理を司る処理部であり、例えばプロセッサなどの一例である。この制御部13は、正マスタノード10と正ミラーノード20とのDB冗長化システムを実現する機能を実行し、正マスタノード10と副マスタノード50とのDB冗長化システムを実現する機能を実行する。すなわち、制御部13は、正センタ1内のDB2重化機能を実現するアプリケーションと、センタ間を跨ったDB4重化を実現するアプリケーションを実行する。
この制御部13は、DB更新部14、センタ内通知部15、挿入部16、センタ間通知部17、切替制御部18を有する。これらの処理部は、プロセッサが有する電子回路やプロセッサが実行するプロセスの一例である。
DB更新部14は、DB12を更新する処理部である。例えば、DB更新部14は、アプリケーションの実行等に伴って、DB12の記憶データを更新する。
センタ内通知部15は、DB12の更新に同期させて、DB12の更新情報を同一システム内の正ミラーノード20に送信する処理部である。具体的には、センタ内通知部15は、DB12が更新されると、更新前後の情報から差分を抽出する。そして、センタ内通知部15は、第1のシステム内転送路を用いて、更新情報として差分情報を示す更新ログを正ミラーノード20に送信する。
ここで、更新ログの例について説明する。図3は、ユーザログ例を示す図であり、図4は、制御ログ例を示す図である。図3に示すように、更新ログの一例であるユーザログは、DBの更新情報を示すログであり、「ヘッダ、ユーザログ表示、可変長部、可変長部2、BCキー情報」から構成される。
「ヘッダ」には、更新ログを示す情報や生成日時等が設定され、「ユーザログ表示」には、ユーザログであることを示す情報が設定される。「可変長部」および「可変長部2」には、DBの更新内容を示す情報であり、例えば具体的なレコード位置、更新前後のデータ、差分情報などである。「BCキー情報」は、正マスタノード10と正ミラーノード20とのDB2重化に関する情報が設定され、例えばチェックサムの情報やログの通番などが設定される。
図4に示すように、更新ログの一例である制御ログは、例えばロールバック処理などのDBへの制御処理を示すログであり、「ヘッダ、制御ログ表示、COMMIT指定」から構成される。「ヘッダ」には、更新ログを示す情報や生成日時等が設定され、「制御ログ表示」には、制御ログであることを示す情報が設定される。「COMMIT指定」は、具体的な制御処理を示す情報であり、例えばトランザクションの情報などが設定される。
上述したように、センタ内通知部15は、DB12が更新されると、更新された情報によって上記ユーザログまたは制御ログなどの更新ログを生成する。そして、センタ内通知部15は、生成した更新ログを正ミラーノード20に送信する。また、センタ内通知部15は、生成した更新ログをセンタ間通知部17に通知する。すなわち、センタ内通知部15は、同一センタ内では、DB12の更新と同期させてDBの更新情報を通知する。
挿入部16は、正マスタノード10におけるDBのデータ更新に応じて生成される更新情報を正ミラーノード20と、副マスタノード50とに送信する際に、1又は複数の更新処理単位の境界を示す区切り情報を双方の送信データに挿入する処理部である。
具体的には、挿入部16は、更新ログの到達状況を判断する、各ノードで共通の判断情報であるチェックポイントを定期的に生成する。そして、挿入部16は、定期的に生成したチェックポイントを正ミラーノード20に送信し、センタ間通知部17に通知する。なお、ここでのチェックポイントには、更新ログの一例であるリカバリポイントログが使用される。また、定期的の一例としては、例えば5秒などと設定することができるが、チェックポイント生成の時間間隔は適宜変更してよい。
図5は、リカバリポイントログ例を示す図である。図5に示すように、リカバリポイントログは、更新ログの到達状況を判断するチェックポイントを示すログであり、「ヘッダ、制御ログ表示、RP情報」から構成される。「ヘッダ」は、更新ログを示す情報や生成日時等が設定され、「制御ログ表示」には、リカバリポイントログであることを示す情報が設定される。「RP情報」は、リカバリポイントを特定する情報であり、「識別子」と「通番」とを含む。「識別子」は、DB4重化機能のチェックポイント情報であることを特定する情報であり、「通番」は、23バイトの固定の正数であり、DB4重化システム内で一意の通番となる。
センタ間通知部17は、DB12の更新情報をまとめて、異なるシステムの副マスタノード50に定期的に送信する処理部である。具体的には、センタ間通知部17は、例えば10秒間隔で、センタ内通知部15から取得した更新ログと挿入部16から取得したリカバリポイントログとを時系列の順でまとめた更新ファイルを生成する。そして、センタ間通知部17は、第1のシステム間転送路を用いて、更新ファイルを副マスタノード50に送信する。すなわち、センタ間通知部17は、異なるセンタ間では、DBの更新情報およびチェックポイントを定期的にまとめた更新情報を生成し、DB12の更新と非同期で通知する。
図6は、システム間通信で送信される更新ファイルの例を示す図である。図6に示すように、更新ファイルは、更新ログやリカバリポイントログから構成される。図6の例では、更新ログ1、更新ログ2、リカバリポイントログ1などが含まれており、この順にログが生成されたことを示す。なお、更新ログ1や更新ログ2は、上述したユーザログや制御ログに該当し、リカバリポイントログ1は、上述したリカバリポイントログに該当する。
切替制御部18は、ノードの停止に伴って、更新情報の送受信を行う経路の切替を実行する処理部である。具体的には、切替制御部18は、図示しない管理者端末や他ノードから障害によって停止したノードの情報を受け付けると、ノードの停止に伴って、システム間転送路やシステム内転送路による送信処理を停止する。
例えば、切替制御部18は、正ミラーノード20の停止指示を受け付けた場合、センタ内通知部15に、処理の停止を指示する。この結果、正マスタノード10から正ミラーノード20へのシステム内転送路による更新ログの送信が停止される。また、切替制御部18は、副マスタノード50の停止指示を受け付けた場合、センタ間通知部17に、処理の停止を指示する。この結果、正マスタノード10から副マスタノード50へのシステム間通信による更新ファイルの送信が停止される。
なお、切替制御部18は、管理者端末から受信したノードの停止情報を、システム内転送路やシステム間転送路で接続される他ノードに通知することもできる。
(正ミラーノードの機能構成)
図2に示すように、正ミラーノード20は、通信制御部21、DB22、制御部23を有する。
通信制御部21は、正マスタノード10および副ミラーノード60との間の通信を制御する処理部であり、例えばネットワークインタフェースなどである。例えば、通信制御部21は、正マスタノード10と第1のシステム内転送路を構築し、副ミラーノード60と第2のシステム間転送路を構築する。
DB22は、正マスタノード10のDB12と同様の業務情報などを記憶するデータベースであり、図1に示した待機DB22に該当する。このDB22は、DB12と同期して更新される。なお、DB22は、例えばハードディスクなどの記憶装置に設けられる。
制御部23は、正ミラーノード20全体の処理を司る処理部であり、例えばプロセッサなどの一例である。この制御部23は、正マスタノード10と正ミラーノード20とのDB冗長化システムを実現する機能を実行し、正ミラーノード20と副ミラーノード60とのDB冗長化システムを実現する機能を実行する。すなわち、制御部23は、正センタ1内のDB2重化機能を実現するアプリケーションと、センタ間を跨ったDB4重化を実現するアプリケーションを実行する。
この制御部23は、受信部24、DB更新部25、センタ間通知部26、切替制御部27を有する。これらの処理部は、プロセッサが有する電子回路やプロセッサが実行するプロセスの一例である。
受信部24は、正マスタノード10からDB12の更新情報を受信する処理部である。具体的には、受信部24は、第1のシステム内転送路を用いて、正マスタノード10のDB12の更新と同期した更新ログを受信し、DB更新部25およびセンタ間通知部26に通知する。また、受信部24は、リカバリポイントログを受信すると、センタ間通知部26に通知する。
DB更新部25は、正マスタノード10から通知されるデータの更新情報を用いて、DB22を更新する処理部である。例えば、DB更新部25は、受信された更新ログの可変長部等から更新対象のレコードや更新後のデータなどを抽出し、抽出した情報にしたがってDB22を更新する。DB更新部25は、更新ログが受信されるたびにDB22を更新する。この結果、DB22は、正マスタノード10のDB12と同期することができ、ミラーリングDBとして機能する。
センタ間通知部26は、DB22の更新情報をまとめて、異なるシステムの副ミラーノード60に定期的に送信する処理部である。具体的には、センタ間通知部26は、例えば10秒間隔で、正マスタノード10から受信した更新ログやリカバリポイントログを時系列の順でまとめた更新ファイルを生成する。そして、センタ間通知部26は、第2のシステム間転送路を用いて、更新ファイルを副ミラーノード60に送信する。例えば、センタ間通知部26は、図6に示した更新ファイルを生成し、副ミラーノード60に送信する。
切替制御部27は、図示しない管理者端末や他ノードから障害によって停止したノードの情報を受け付けると、ノードの停止に伴って、システム間転送路やシステム内転送路による送信処理を停止する処理部である。
例えば、切替制御部27は、正マスタノード10の停止情報を受け付けた場合、制御部23にマスタへの昇格を指示する。この結果、制御部23は、アプリケーション等を実行し、DB更新部25は、アプリケーション等の実行等に伴って、DB22の記憶データを更新する。このようにして、正ミラーノード20は、正系システムのマスタとしての処理を実行する。また、切替制御部27は、マスタへ昇格すると、正マスタノード10の挿入部16と同様の処理を開始する。
また、切替制御部27は、副ミラーノード60の停止情報を受け付けた場合、センタ間通知部26に、処理の停止を指示する。この結果、正ミラーノード20から副ミラーノード60へのシステム間転送路による更新ファイルの送信が停止される。
なお、切替制御部27は、管理者端末から受信したノードの停止情報を、システム内転送路やシステム間転送路で接続される他ノードに通知することもできる。例えば、切替制御部27は、管理者端末から受信した正マスタノード10の停止情報を受け付けた場合、当該停止情報を副ミラーノード60に送信することもできる。
[副センタの機能構成]
図7は、副センタの各ノードの機能構成を示す機能ブロック図である。ここでは、副センタ5が有する副マスタノード50と副ミラーノード60とについて説明する。
(副マスタノードの機能構成)
図7に示すように、副マスタノード50は、通信制御部51、DB52、制御部53を有する。
通信制御部51は、正マスタノード10および副ミラーノード60との間の通信を制御する処理部であり、例えばネットワークインタフェースなどである。例えば、通信制御部51は、正マスタノード10と第1のシステム間転送路を構築し、副ミラーノード60と第2のシステム内転送路を構築する。
DB52は、業務情報などを記憶するデータベースであり、図1に示した待機DB52に該当する。このDB52は、DB12の更新とは非同期で、正マスタノード10から通知される更新情報によって更新される。なお、DB52は、例えばハードディスクなどの記憶装置に設けられる。
制御部53は、副マスタノード50全体の処理を司る処理部であり、例えばプロセッサなどの一例である。この制御部53は、図1に示したセンタ間を跨ったDB4重化システム全体を実現するアプリケーションを実行し、副センタ5内のDB2重化機能を実現するアプリケーションを実行する。
この制御部53は、受信部54、DB更新部55、センタ内通知部56、切替制御部57を有する。これらの処理部は、プロセッサが有する電子回路やプロセッサが実行するプロセスの一例である。
受信部54は、正マスタノード10からDB12の更新情報を受信する処理部である。具体的には、受信部54は、第1のシステム間転送路を用いて、更新ログから構成される更新ファイルを所定の間隔で受信する。そして、受信部54は、受信した更新ファイルをDB更新部55に出力する。
DB更新部55は、正マスタノード10から通知されるデータの更新情報にしたがって、DB52を更新する処理部である。例えば、DB更新部55は、受信部54が受信した更新ファイルから、更新ファイルを構成する各種ログを抽出する。
そして、DB更新部55は、抽出したログのうち、ユーザログおよび制御ログを特定する。その後、DB更新部55は、ログが生成された時系列順で、ユーザログまたは制御ログによって特定されるデータ更新をDB52に反映する。また、DB更新部55は、更新ファイルから各種ログを抽出すると、時系列の順で、抽出した各ログをセンタ内通知部56に出力する。
例えば、図6の更新ファイルを受信したとすると、DB更新部55は、更新ファイルから更新ログ1、更新ログ2、リカバリポイントログ1を抽出する。そして、DB更新部55は、まず更新ログ1で特定されるデータ更新をDB52に反映した後、次に更新ログ2で特定されるデータ更新をDB52に反映させる。一方で、DB更新部55は、抽出した更新ログ1、更新ログ2、リカバリポイントログ1をセンタ内通知部56に出力する。
センタ内通知部56は、DB52へ反映させたデータの更新情報を副ミラーノード60に送信する処理部である。具体的には、センタ内通知部56は、正マスタノード10から受信した更新ログおよびリカバリポイントログを、各ログが生成された時系列で、第2のシステム内転送路を用いて副ミラーノード60に送信する。
上述した例で説明すると、センタ内通知部56は、DB更新部55から、更新ログ1、更新ログ2、リカバリポイントログ1を順に受信する。すると、センタ内通知部56は、まず更新ログ1を副ミラーノード60に送信し、次に更新ログ2を副ミラーノード60に送信し、最後にリカバリポイントログ1を副ミラーノード60に送信する。
切替制御部57は、図示しない管理者端末や他ノードから障害によって停止したノードの情報を受け付けると、ノードの停止に伴って、システム間転送路やシステム内転送路のよる送信処理を停止する処理部である。
例えば、切替制御部57は、管理者端末や他ノード等から、副ミラーノード60の停止情報を受け付けた場合、センタ内通知部56に、処理の停止を指示する。この結果、副マスタノード50から副ミラーノード60へのシステム間転送路を用いた更新ファイルの送信が停止される。
また、切替制御部57は、管理者端末や副ミラーノード60等から、正マスタノード10の停止情報を受信すると、センタ内通知部56に、処理の停止を指示する。さらに、切替制御部57は、DB更新部55に対して、副ミラーノード60から更新情報を受信してDB52を更新する処理の開始を指示する。この結果、副マスタノード50から副ミラーノード60へのシステム間転送路を用いた更新ファイルの送信が停止されるとともに、副マスタノード50が副系のシステムにおけるミラーノードとして機能することができる。すなわち、副マスタノード50は、ミラーノードに降格する。
なお、切替制御部57は、管理者端末から受信したノードの停止情報を、システム内転送路やシステム間転送路で接続される他ノードに通知することもできる。
(副ミラーノードの機能構成)
図7に示すように、副ミラーノード60は、通信制御部61、DB62、バッファ63、制御部64を有する。
通信制御部61は、正ミラーノード20および副マスタノード50との間の通信を制御する処理部であり、例えばネットワークインタフェースなどである。例えば、通信制御部21は、正ミラーノード20と第2のシステム間転送路を構築し、副マスタノード50と第2のシステム内転送路を構築する。
DB62は、業務情報などを記憶するデータベースであり、図1に示した待機DB62に該当する。このDB62は、正マスタノード10のDB12の更新とは非同期で、正マスタノード10から通知される更新情報によって更新される。一方で、DB62は、副マスタノード50のDB52の更新とは同期して更新される。なお、DB62は、例えばハードディスクなどの記憶装置に設けられる。
バッファ63は、センタ間通信で正ミラーノード20から受信した更新情報やセンタ内通信で副マスタノード50から受信した更新情報を一時的に記憶する記憶領域である。なお、バッファ63は、例えばハードディスクやメモリなどの記憶装置に設けられる。
制御部64は、副ミラーノード60全体の処理を司る処理部であり、例えばプロセッサなどの一例である。この制御部64は、図1に示したセンタ間を跨ったDB4重化システム全体を実現するアプリケーションを実行し、副センタ5内のDB2重化機能を実現するアプリケーションを実行する。
この制御部64は、センタ内受信部65、センタ間受信部66、DB更新部67、切替制御部68を有する。これらの処理部は、プロセッサが有する電子回路やプロセッサが実行するプロセスの一例である。
センタ内受信部65は、副マスタノード50からデータの更新情報を受信する処理部である。具体的には、センタ内受信部65は、第2のシステム内転送路を用いて、副マスタノード50から更新ログやリカバリポイントログを受信し、ログの生成日時の時系列順でバッファ63に格納する。上記例で説明すると、センタ内受信部65は、副マスタノード50から、更新ログ1、更新ログ2、リカバリポイントログ1を順に受信し、受信した順番でバッファ63に格納する。
センタ間受信部66は、正ミラーノード20からデータの更新情報を受信する処理部である。具体的には、センタ間受信部66は、第2のシステム間転送路を用いて、正ミラーノード20から、更新ログやリカバリポイントログで構成される更新ファイルを受信する。そして、センタ間受信部66は、更新ファイルから各種ログを抽出し、生成日時の順にバッファ63に格納する。
DB更新部67は、受信された更新情報を用いて、DB62を更新する処理部である。具体的には、DB更新部67は、センタ内受信部65によって受信された更新ログを、更新ログの生成順でバッファ63から読み出し、読み出した更新ログにしたがって、DB62を順次更新する。
また、DB更新部67は、副系システムのマスタへの昇格指示を受信した場合、最新の更新ログが反映されているかを確認した後、マスタとしての処理を開始する。
具体的には、DB更新部67は、センタ内受信部65がバッファ63に格納したログのうち、最新のリカバリポイントログを抽出し、さらに、センタ間受信部66がバッファ63に格納したログのうち、最新のリカバリポイントログを抽出する。そして、DB更新部67は、リカバリポイントログの生成日時やリカバリポイントログ内の通番などを用いて、両方のリカバリポイントのうちいずれのリカバリポイントが最新かを特定する。
ここで、DB更新部67は、センタ内受信部65で受信された更新ログの方が最新であると判定した場合、最新の更新ログが反映されていると判定して、バッファ63に格納される更新ログを削除する。一方、DB更新部67は、センタ間受信部66で受信された更新ログの方が最新であると判定した場合、最新の更新ログが反映されていないと判定する。このため、DB更新部67は、センタ内受信部65で受信された更新ログをバッファ63から読出してDB62に反映した後、バッファ63に格納される更新ログを削除する。
切替制御部68は、図示しない管理者端末や他ノードから障害によって停止したノードの情報を受け付けると、ノードの停止に伴って、システム間転送路やシステム内転送路による送信処理を停止する処理部である。
例えば、切替制御部68は、管理者端末や他ノードから、正マスタノード10の停止情報を受け付けた場合、DB更新部67に、副系システムのマスタへの昇格を指示する。すなわち、切替制御部68は、第2のシステム間転送路で受信した更新情報によるDB更新を開始させるとともに、第2のシステム内転送路の方路を変更する。
具体的には、この指示を受け付けたDB更新部67は、最新の更新ログでDB62を更新した後、副系システムのマスタとしての処理を開始する。すなわち、DB更新部67は、その後にセンタ間受信部66が受信した更新ファイル内の更新ログおよびリカバリポイントログを用いてDB62を更新するとともに、受信した各ログを副マスタノード50に送信する。このようにして、副ミラーノード60は、副系システムのマスタとして機能する。
[DB更新に関する処理の流れ]
次に、各ノードが実行するDB更新処理および更新情報の通知処理について説明する。なお、ここでは一例として、DB更新後にチェックポイント(リカバリポイントログ)を生成する例を説明するが、これに限定されるものではない。例えば、DB更新の処理とチェックポイントの生成処理とは、並行して実行することができ、別々のフローチャートで実行することもできる。
(正マスタノード10から正ミラーノード20への通知処理)
図8は、正マスタノードから正ミラーノードへの通知処理の流れを示すフローチャートである。
図8に示すように、正マスタノード10のDB更新部14は、DB12の更新が発生すると(S101:Yes)、DB12を更新する(S102)。続いて、センタ内通知部15は、更新されたDB12の更新前後の差分を抽出して(S103)、更新ログを生成して正ミラーノード20に送信する(S104)。
一方で、挿入部16は、チェックポイントの生成タイミングである場合(S105:Yes)、チェックポイントの通番を含むリカバリポイントログを生成し(S106)、正ミラーノード20に送信する(S107)。なお、チェックポイントの生成タイミングでない場合(S105:No)、S101に戻って、S101以降の処理が実行される。
(正マスタノード10から副マスタノード50への通知処理)
図9は、正マスタノードから副マスタノードへの通知処理の流れを示すフローチャートである。
図9に示すように、正マスタノード10のDB更新部14は、DB12の更新が発生すると(S201:Yes)、DB12を更新する(S202)。その後、センタ間通知部17は、更新されたDB12の更新前後の差分を抽出して蓄積する(S203)。
一方で、挿入部16は、チェックポイントの生成タイミングである場合(S204:Yes)、チェックポイントの通番を含むリカバリポイントログを生成して蓄積する(S205)。なお、チェックポイントの生成タイミングではない場合(S204:No)、S205が実行されず、S206が実行される。
その後、センタ間通知部17は、副マスタノード50への通知タイミングに到達すると(S206:Yes)、蓄積しておいた更新ログやリカバリポイントログを生成順で記述した更新ファイルを生成する(S207)。そして、センタ間通知部17は、生成した更新ファイルを副マスタノード50へ送信する(S208)。なお、チェックポイントの生成タイミングでない場合(S206:No)、S201に戻って、S201以降の処理が実行される。
(正ミラーノード20の更新処理)
図10は、正ミラーノードが実行する更新処理の流れを示すフローチャートである。図10に示すように、正ミラーノード20の受信部24は、正マスタノード10から情報を受信すると(S301:Yes)、受信した情報が更新ログであるか否かを判定する(S302)。
続いて、DB更新部25は、受信された情報が更新ログである場合(S302:Yes)、受信された更新ログにしたがってDB22を更新し(S303)、更新に使用した更新ログを蓄積する(S304)。
一方、DB更新部25は、受信された情報が更新ログではなく、リカバリポイントログである場合(S302:No)、受信されたリカバリポイントログを記憶部等に蓄積する(S305)。
(正ミラーノード20の通知処理)
図11は、正ミラーノードが実行する通知処理の流れを示すフローチャートである。図11に示すように、正ミラーノード20のセンタ間通知部26は、通知タイミングに到達すると(S401:Yes)、蓄積した更新ログおよびリカバリポイントログを読出す(S402)。
その後、センタ間通知部26は、読み出した各ログを生成順に並び替えて更新ファイルを生成し(S403)、システム間通信を用いて、生成した更新ファイルを副センタ5の副ミラーノード60に送信する(S404)。
(副マスタノード50の処理)
図12は、副マスタノードが実行する更新および通知処理の流れを示すフローチャートである。図12に示すように、副マスタノード50のDB更新部55は、更新ファイルが受信されると(S501:Yes)、更新ファイルに含まれる各ログを抽出する(S502)。
続いて、DB更新部55は、得られた各ログのうち更新ログを生成時間の時系列順で、DB52に順次反映し(S503)、抽出された全更新ログの反映が完了するまで(S504:No)、繰り返す。
そして、抽出された全更新ログの反映が完了すると(S504:Yes)、センタ内通知部56は、更新ファイルから得られた更新ログおよびリカバリポイントログを、生成時間の時系列順で、副ミラーノード60に順次送信する(S505)。その後、センタ内通知部56は、更新ファイルから得られた全ログの送信が完了するまで処理を繰り返し(S506:No)、全ログの送信が完了すると(S506:Yes)、S501に戻って以降の処理を繰り返す。
(副ミラーノード60の処理)
図13は、副ミラーノードが実行する更新処理の流れを示すフローチャートである。図13に示すように、副ミラーノード60のDB更新部67は、センタ内受信部65によって副マスタノード50から情報が受信されると(S601:Yes)、受信した情報が更新ログか否かを判定する(S602)。
そして、DB更新部67は、受信された情報が更新ログである場合(S602:Yes)、受信した更新ログをDB62に反映して、DB62を更新する(S603)。一方、DB更新部67は、受信された情報が更新ログではなく、リカバリポイントログである場合(S602:No)、リカバリポイントログをバッファ63等に蓄積する(S604)。
また、S601において、センタ間受信部66は、副マスタノード50からではなく正ミラーノード20から更新ファイルを受信した場合(S601:No、S605:Yes)、更新ファイルからログを抽出する(S606)。そして、センタ間受信部66は、得られた更新ログおよびリカバリポイントログを、ログの生成時間の時系列順でバッファ63に蓄積する(S607)。
その後、DB更新部67は、マスタへの昇格指示などを受信したタイミングや定期的な間隔で、バッファ63に格納されるリカバリポイントログを比較し(S608)、副マスタノード50からのリカバリポイントログが最新の場合(S609:Yes)、S610を実行する。すなわち、DB更新部67は、正ミラーノード20から受信した更新ログおよびリカバリポイントログを、バッファ63から削除する。
一方、DB更新部67は、副マスタノード50からのリカバリポイントログが最新ではなく、正ミラーノード20からのリカバリポイントログが最新の場合(S609:No)、正ミラーノード20から受信した更新ログおよびリカバリポイントログをバッファ63に残したまま、S601以降を繰り返す。
[系切替パターンの例]
次に、図1に示した冗長化システムにおける系切替の具体例を説明する。図14は、冗長化システムの系切替例1を説明する図であり、図15は、冗長化システムの系切替例2を説明する図である。図16は、冗長化システムの系切替例3を説明する図であり、図17は、冗長化システムの系切替例4を説明する図である。
(系切替例1)
図14に示す図は、正マスタノード10が停止した場合の切替例を説明する図である。図14に示すように、正マスタノード10に障害等が発生すると、正マスタノード10から正ミラーノード20および副マスタノード50への更新情報の送信処理が停止する。
すると、正ミラーノード20の切替制御部27は、公知の様々な手法で正マスタノード10の障害を検出した場合や管理者端末等から正マスタノード10の停止情報を受信した場合、正ミラーノード20をマスタノードへ昇格させる。具体的には、DB更新部25は、アプリケーション等の実行に伴ってDB22の更新を開始し、更新ログをまとめた更新ファイルを副ミラーノード60へ送信する。
さらに、副ミラーノード60の切替制御部68は、正ミラーノード20または管理者端末等から、正マスタノード10の停止情報を受信した場合、副ミラーノード60をマスタノードへ昇格させる。具体的には、DB更新部67は、正ミラーノード20から受信した更新ファイルにしたがって、DB62を更新するとともに、更新ファイルから抽出した各種ログを副マスタノード50へ送信する。このとき、DB更新部67は、副マスタノード50へ、降格指示や正マスタノード10の停止情報等を送信することもできる。
さらに、副マスタノード50の切替制御部57は、他ノードまたは管理者端末から、降格指示や正マスタノード10の停止情報を受信した場合、副マスタノード50をミラーノードに降格させる。具体的には、センタ内通知部56が、副ミラーノード60への更新情報の送信処理を停止し、DB更新部55が、副ミラーノード60から受信した更新情報にしたがってDB52を更新する。
上述したように、正マスタノード10が停止した場合、正ミラーノード20および副ミラーノード60がマスタノードへ昇格し、副マスタノード50がミラーノードへ降格する。この結果、正マスタノード10と正ミラーノード20との間の第1のシステム内転送路による情報送信が終了する。同様に、正マスタノード10と副マスタノード50との間の第1のシステム間転送路による情報送信が終了する。そして、副マスタノード50と副ミラーノード60との間の第2のシステム内転送路の方路が変更される。この副マスタノード50は、正ミラーノード20からの更新情報によるDB更新を開始する。
(系切替例2)
図15に示す図は、正ミラーノード20が停止した場合の切替例を説明する図である。図15に示すように、正ミラーノード20に障害等が発生すると、正ミラーノード20から副ミラーノード60への更新情報の送信処理が停止する。
一方で、正マスタノード10の切替制御部18は、正ミラーノード20の停止指示を受信した場合、正ミラーノード20への更新情報の送信処理を停止する。なお、副マスタノード50への送信処理は継続される。
また、副マスタノード50は、正ミラーノード20の停止後も、正ミラーノード20の停止前と同様の処理を継続する。副ミラーノード60では、正ミラーノード20からの更新情報の受信が途絶えるので、副マスタノード50からの更新情報を用いて、DB更新を実行する。
上述したように、正ミラーノード20が停止した場合、他のノードにおける各系での役割に変更ない。しかし、正マスタノード10と正ミラーノード20との間の第1のシステム内転送路による情報送信が終了する。同様に、正ミラーノード20と副ミラーノード60との間の第2のシステム間転送路による情報送信が終了する。
(系切替例3)
図16に示す図は、副マスタノード50が停止した場合の切替例を説明する図である。図16に示すように、副マスタノード50に障害等が発生すると、副マスタノード50から副ミラーノード60への更新情報の送信処理が停止する。
一方で、正マスタノード10の切替制御部18は、副マスタノード50の停止指示を受信した場合、副マスタノード50への更新情報の送信処理を停止する。なお、正ミラーノード20への送信処理は継続される。
また、正ミラーノード20は、正マスタノード10の停止後も、正マスタノード10の停止前と同様の処理を継続する。副ミラーノード60では、副マスタノード50からの更新情報の受信が途絶えるので、正ミラーノード20からの更新情報を用いて、DB更新を実行する。
上述したように、副マスタノード50が停止した場合、副ミラーノード60がマスタへ昇格し、正系システムでは役割に変更ない。しかし、正マスタノード10と副マスタノード50との間の第1のシステム間転送路による情報送信が終了する。同様に、副マスタノード50と副ミラーノード60との間の第2のシステム内転送路による情報送信が終了する。
(系切替例4)
図17に示す図は、副ミラーノード60が停止した場合の切替例を説明する図である。図17に示すように、正マスタノード10は、副ミラーノード60の停止後も、副ミラーノード60の停止前と同様の処理を継続する。
正ミラーノード20は、副ミラーノード60の停止後、第2のシステム間転送路を用いた副ミラーノード60への更新情報の送信を停止する。副マスタノード50は、副ミラーノード60の停止後、第2のシステム内転送路を用いた副ミラーノード60への更新情報の送信を停止する。
[系切替による処理の流れ]
次に、上述した系切替1から系切替4が発生した場合に、各ノードが実行する処理の流れについて説明する。
(正マスタノード10による切替処理)
図18は、正マスタノードが実行する切替処理の流れを示すフローチャートである。図18に示すように、切替制御部18は、停止指示を受信すると(S701:Yes)、停止指示が正ミラーノード20の停止指示か否かを判定する(S702)。
そして、切替制御部18は、停止指示が正ミラーノード20の停止指示である場合(S702:Yes)、正ミラーノード20と接続される第1のシステム内転送路によるシステム内通信を停止する(S703)。
その後、DBの更新が発生すると(S704:Yes)、DB更新部14がDB12を更新する(S705)。さらに、センタ間通知部17は、定期的に、第1のシステム間転送路を介したシステム間通信を用いて、更新ファイルを副マスタノード50へ送信する(S706)。その後、S704以降が繰り返される。なお、センタ内通知部15による正ミラーノード20への更新情報の送信は実行されない。
一方、切替制御部18は、停止指示が正ミラーノード20の停止指示でなく、副マスタノード50の停止指示である場合(S702:No)、副マスタノード50と接続される第1のシステム間転送路によるシステム間通信を停止する(S707)。
その後、DBの更新が発生すると(S708:Yes)、DB更新部14がDB12を更新する(S709)。さらに、センタ内通知部15は、DB12の更新と同期した更新ログを、第1のシステム内転送路を介したシステム内通信を用いて正ミラーノード20へ送信する(S710)。その後、S708以降が繰り返される。なお、センタ間通知部17による副マスタノード50への更新情報の送信は実行されない。
(正ミラーノード20による切替処理)
図19は、正ミラーノードが実行する切替処理の流れを示すフローチャートである。図19に示すように、切替制御部27は、停止指示を受信すると(S801:Yes)、停止指示が正マスタノード10の停止指示か否かを判定する(S802)。
そして、切替制御部27は、停止指示が正マスタノード10の停止指示である場合(S802:Yes)、正マスタノード10と接続される第1のシステム内転送路によるシステム内通信を停止して(S803)、マスタへ昇格する(S804)。
その後、DBの更新が発生すると(S805:Yes)、DB更新部25がDB22を更新する(S806)。さらに、センタ間通知部26は、定期的に、第1のシステム間転送路を介したシステム間通信を用いて、更新ファイルを副マスタノード50へ送信する(S807)。その後、S805以降が繰り返される。
一方、切替制御部27は、停止指示が正マスタノード10の停止指示でなく、副ミラーノード60の停止指示である場合(S802:No)、副ミラーノード60と接続される第2のシステム間転送路によるシステム間通信を停止する(S808)。
その後、DBの更新が発生すると(S809:Yes)、DB更新部25がDB22を更新する(S810)。その後、S808以降が繰り返される。なお、センタ間通知部26による副ミラーノード60への更新情報の送信は実行されない。
(副マスタノード50による切替処理)
図20は、副マスタノードが実行する切替処理の流れを示すフローチャートである。図20に示すように、切替制御部57は、停止指示を受信すると(S901:Yes)、停止指示が正マスタノード10の停止指示か否かを判定する(S902)。
そして、切替制御部57は、停止指示が正マスタノード10の停止指示である場合(S902:Yes)、正マスタノード10と接続される第1のシステム間転送路によるシステム間通信を停止して(S903)、ミラーへ降格する(S904)。
その後、第2のシステム内転送路を介して、副ミラーノード60から更新ログを受信すると(S905:Yes)、DB更新部55は、受信した更新ログをDB52に反映して、DB52を更新する(S906)。その後、S905以降が繰り返される。なお、センタ内通知部56による副ミラーノード60への更新情報の送信は実行されない。
一方、切替制御部57は、停止指示が正マスタノード10の停止指示でなく、副ミラーノード60の停止指示である場合(S902:No)、副ミラーノード60と接続される第2のシステム内転送路によるシステム間通信を停止する(S907)。
その後、第1のシステム間転送路を介して、正マスタノード10から更新ファイルを受信すると(S908:Yes)、DB更新部55は、更新ファイルから抽出した更新ログをDB52に反映して、DB52を更新する(S909)。その後、S908以降が繰り返される。
(副ミラーノード60による切替処理)
図21は、副ミラーノードが実行する切替処理の流れを示すフローチャートである。図21に示すように、切替制御部68は、停止指示を受信すると(S1001:Yes)、停止指示が正マスタノード10の停止指示か否かを判定する(S1002)。
そして、切替制御部68は、停止指示が正マスタノード10の停止指示である場合(S1002:Yes)、副マスタノード50と接続される第2のシステム間転送路の方路を変更して(S1003)、副ミラーノード60を新たなマスタノードとして昇格させる(S1004)。
その後、第2のシステム間転送路を介して、正ミラーノード20から更新ファイルを受信すると(S1005:Yes)、S1006が実行される。すなわち、センタ間受信部66が、更新ファイルから更新ログおよびリカバリポイントログを抽出し、DB更新部67が、抽出された更新ログをDB62に反映してDB62を更新する(S1006)。
そして、DB更新部67は、方路を変更した第2のシステム内転送路を用いて、抽出された更新ログおよびリカバリポイントログを、ログの生成順で副マスタノード50へ送信する(S1007)。その後、S1005以降が繰り返される。
一方、切替制御部68は、停止指示が正マスタノード10の停止指示でなく(S1002:No)、正ミラーノード20の停止指示である場合(S1008:Yes)、正ミラーノード20と接続される第2のシステム間転送路によるシステム間通信を停止する(S1009)。
その後、第2のシステム内転送路を介して、副マスタノード50から更新ログを受信すると(S1010:Yes)、DB更新部67は、更新ログをDB62に反映して、DB62を更新する(S1011)。その後、S1010以降が繰り返される。
一方、切替制御部68は、停止指示が正マスタノード10でも正ミラーノード20の停止指示でなく、副マスタノード50の停止指示である場合(S1008:No)、副マスタノード50と接続される第2のシステム内転送路によるシステム間通信を停止する(S1012)。
その後、第2のシステム間転送路を介して、正ミラーノード20から更新ファイルが受信されると(S1013:Yes)、DB更新部67は、更新ファイル内の更新ログをDB62に反映して、DB62を更新する(S1014)。その後、S1013以降が繰り返される。
このように、実施例のDB4重化システムにおいて、ノードの切替えが発生する場合でも、ノード切替え前の転送路を利用してデータの更新情報を送信することができる。実施例のDB4重化システムでは、いずれのノードが停止した場合でも、各ノードが自律してDB更新処理や通知処理を変更することができるので、業務を停止することなく、ノードを切り替えることができる。また、ノードの停止に伴う業務停止の危険性を減少させることができるので、システムの信頼性が向上する。
また、正マスタノード10は、DB12の更新情報を送信する際に、定期的にチェックポイントを送信する。副ミラーノード60は、2系統で更新情報とチェックポイントを受信する。そして、副ミラーノード60は、チェックポイントが新しい方の系統で受信した更新情報を用いて、DB62を更新することができる。この結果、副ミラーノード60、DB62を更新する更新情報のデータロストを抑制することができる。
また、正マスタノード10は、DB12を更新すると、更新ログを正ミラーノード20に送信する。この結果、正ミラーノード20は、DB22の状態をDB12と同期させることができる。また、正マスタノード10は、DB12を更新したログをまとめた更新ファイルを副マスタノード50に定期的に送信する。この結果、副マスタノード50は、DB12の更新時間とタイムラグを少なくして、DB52の更新をすることができる。
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
[チェックポイント]
上記実施例では、チェックポイントとしてシステム内で一意な通番を含むリカバリポイントログを用いる例を説明したが、これに限定されるものではなく、例えば日時や時刻などを含むリカバリポイントログを用いることもできる。つまり、システム内で昇順あるいは降順などの一意な順番が指定できるものであれば、様々な情報を使用することができる。
[システム停止]
上記実施例では、障害等によってノードが停止する例を説明したが、保守等の作業時も同様に処理することができる。また、上記実施例では、いずれのかのノードが停止する例を説明したが、システム停止はこれに限定されるものではない。例えば、定期監視や監視ツールによって、各ノード間の通信が停止したことが検出された場合であっても、同様の切替処理を実行することができる。
例えば、正マスタノード10と副マスタノード50との間の第1のシステム間転送路の通信が遮断された場合、正マスタノード10は、副マスタノード50への更新情報の送信を停止する。副マスタノード50は降格し、副ミラーノード60は昇格する。
また、副マスタノード50と副ミラーノード60との間の第2のシステム内転送路の通信が遮断された場合、副マスタノード50は、副ミラーノード60への更新情報の送信を停止する。また、正ミラーノード20と副ミラーノード60との間の第2のシステム間転送路の通信が遮断された場合、正ミラーノード20は、副ミラーノード60への更新情報の送信を停止する。また、正マスタノード10と正ミラーノード20との間の第1のシステム内転送路の通信が遮断された場合、正マスタノード10は、副ミラーノード20への更新情報の送信を停止する。
[システム]
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
[ハードウェア]
図22は、ハードウェア構成例を説明する図である。図1に示した各ノードは、同様のハードウェア構成を有するので、ここでは、一例として正マスタノード10を例にして説明する。
図22に示すように、正マスタノード10は、HDD(Hard Disk Drive)10a、通信インタフェース10b、メモリ10c、CPU(Central Processing Unit)10dを有する。また、図22に示した各部は、バス等で相互に接続される。なお、ここで示したハードウェアは一例であり、例えばグラフィックインタフェースやマウスなどの他のハードウェアを有していてもよい。
HDD10aは、図2等に示した機能を動作させるプログラムやDBを記憶する。通信インタフェース10bは、他の装置との通信を制御するインタフェースであり、例えばネットワークインタフェースカードである。
CPU10dは、図2等に示した各処理部と同様の処理を実行するプログラムをHDD10a等から読み出してメモリ10cに展開することで、図2等で説明した各機能を実行するプロセスを動作させる。
すなわち、このプロセスは、正マスタノード10が有する各処理部と同様の機能を実行する。具体的には、CPU10dは、DB更新部14、センタ内通知部15、挿入部16、センタ間通知部17、切替制御部18等と同様の機能を有するプログラムをHDD10a等から読み出す。そして、CPU10dは、DB更新部14、センタ内通知部15、挿入部16、センタ間通知部17、切替制御部18と同様の処理を実行するプロセスを実行する。
このように正マスタノード10は、プログラムを読み出して実行することで冗長化作成方法を実行する情報処理装置として動作する。また、正マスタノード10は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、正マスタノード10によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
1 正センタ
5 副センタ
10 正マスタノード
11 通信制御部
12 DB
13 制御部
14 DB更新部
15 センタ内通知部
16 挿入部
17 センタ間通知部
18 切替制御部
20 正ミラーノード
21 通信制御部
22 DB
23 制御部
24 受信部
25 DB更新部
26 センタ間通知部
27 切替制御部
50 副マスタノード
51 通信制御部
52 DB
53 制御部
54 受信部
55 DB更新部
56 センタ内通知部
57 切替制御部
60 副ミラーノード
61 通信制御部
62 DB
63 バッファ
64 制御部
65 センタ内受信部
66 センタ間受信部
67 DB更新部
68 切替制御部

Claims (3)

  1. 冗長システムにおいて、
    第1のノードと、
    第1のシステム内転送路を介して前記第1のノードにおけるデータ更新に応じて生成されるデータ更新情報を取得する第2のノードと、
    を含む正系システムと、
    前記第1のノードとの間で第1のシステム間転送路が設定され、該第1のシステム間転送路を介して前記第1のノードにおけるデータ更新に応じて生成されるデータ更新情報を取得する第3のノードと、
    前記第2のノードとの間で第2のシステム間転送路が設定され、前記第2のノードが取得した前記データ更新情報を該第2のシステム間転送路を介して取得可能であるとともに、前記第3のノードが取得した前記データ更新情報を第2のシステム内転送路を介して取得可能な第4のノードと、
    を含む副系システムと、
    を備え、
    前記冗長システムは、
    前記正系システムの前記第1のノードに代替して前記第2のノードを動作させ、前記第2のノードにおけるデータ更新に応じて生成されるデータ更新情報の前記副系システムへの送信を行う場合に、前記第4のノードが、前記第2のノードにおけるデータ更新に応じて生成される前記データ更新情報を、前記第2のシステム間転送路を利用して前記第2のノードから取得するとともに、前記第2のシステム内転送路の方路変更を実行し、前記第4のノードが取得した前記データ更新情報を前記第2のシステム転送路を利用して前記第3のノードが取得する設定に変更する、
    ことを特徴とする冗長システム。
  2. 前記システム内転送路では同期転送、前記システム間転送路では非同期転送が実行されることを特徴とする請求項1記載の冗長システム。
  3. 冗長システムにおいて、
    第1のノードと、
    第1のシステム内転送路を介して前記第1のノードにおけるデータ更新に応じて生成されるデータ更新情報を取得する第2のノードと、
    を含む正系システムと、
    前記第1のノードとの間で第1のシステム間転送路が設定され、該第1のシステム間転送路を介して前記第1のノードにおけるデータ更新に応じて生成されるデータ更新情報を取得する第3のノードと、
    前記第2のノードとの間で第2のシステム間転送路が設定され、前記第2のノードが取得した前記データ更新情報を該第2のシステム間転送路を介して取得可能であるとともに、前記第3のノードが取得した前記データ更新情報を第2のシステム内転送路を介して取得可能な第4のノードと、
    を含む副系システムと、
    を備え、
    前記冗長システムは、
    前記正系システムの前記第1のノードに代替して前記第2のノードを動作させ、前記第2のノードにおけるデータ更新に応じて生成されるデータ更新情報の前記副系システムへの送信を行う場合に、前記第4のノードが、前記第2のノードにおけるデータ更新に応じて生成される前記データ更新情報を、前記第2のシステム間転送路を利用して前記第2のノードから取得するとともに、前記第2のシステム内転送路の方路変更を実行し、前記第4のノードが取得した前記データ更新情報を前記第2のシステム転送路を利用して前記第3のノードが取得する設定に変更する、
    処理を含んだことを特徴とする冗長化方法。
JP2014127707A 2014-06-20 2014-06-20 冗長システムおよび冗長化方法 Active JP6318902B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014127707A JP6318902B2 (ja) 2014-06-20 2014-06-20 冗長システムおよび冗長化方法
US14/721,137 US9971661B2 (en) 2014-06-20 2015-05-26 Redundant system, method for redundant system, method for controlling node of redundant system and computer readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014127707A JP6318902B2 (ja) 2014-06-20 2014-06-20 冗長システムおよび冗長化方法

Publications (2)

Publication Number Publication Date
JP2016009216A JP2016009216A (ja) 2016-01-18
JP6318902B2 true JP6318902B2 (ja) 2018-05-09

Family

ID=54869741

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014127707A Active JP6318902B2 (ja) 2014-06-20 2014-06-20 冗長システムおよび冗長化方法

Country Status (2)

Country Link
US (1) US9971661B2 (ja)
JP (1) JP6318902B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111314479B (zh) * 2016-06-20 2022-08-23 北京奥星贝斯科技有限公司 一种数据处理方法和设备
CN108228081B (zh) 2016-12-21 2021-03-02 伊姆西Ip控股有限责任公司 用于数据保护的方法和设备

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4689137B2 (ja) 2001-08-08 2011-05-25 株式会社日立製作所 リモートコピー制御方法、及びストレージシステム
US20030177149A1 (en) 2002-03-18 2003-09-18 Coombs David Lawrence System and method for data backup
JP3974538B2 (ja) * 2003-02-20 2007-09-12 株式会社日立製作所 情報処理システム
US7318133B2 (en) * 2003-06-03 2008-01-08 Hitachi, Ltd. Method and apparatus for replicating volumes
US7467168B2 (en) * 2003-06-18 2008-12-16 International Business Machines Corporation Method for mirroring data at storage locations
JP4282464B2 (ja) 2003-12-17 2009-06-24 株式会社日立製作所 リモートコピーシステム
JP4422519B2 (ja) 2004-03-18 2010-02-24 株式会社日立製作所 情報処理システム
US7490205B2 (en) * 2005-03-14 2009-02-10 International Business Machines Corporation Method for providing a triad copy of storage data
JP4806572B2 (ja) * 2006-02-15 2011-11-02 株式会社日立製作所 データミラーリングによって参照負荷を分散するストレージシステムにおけるアクセスの制御
JP4902403B2 (ja) 2006-10-30 2012-03-21 株式会社日立製作所 情報システム及びデータ転送方法
JP5244332B2 (ja) * 2006-10-30 2013-07-24 株式会社日立製作所 情報システム、データ転送方法及びデータ保護方法
US9002800B1 (en) 2007-06-30 2015-04-07 Emc Corporation Archive and backup virtualization
JP2010039986A (ja) * 2008-08-08 2010-02-18 Hitachi Ltd データのバックアップを管理する計算機システム及び方法
JP5605847B2 (ja) * 2011-02-08 2014-10-15 Necソリューションイノベータ株式会社 サーバ、クライアント、これらを有するバックアップシステム、及びこれらのバックアップ方法
CN102761566B (zh) 2011-04-26 2015-09-23 国际商业机器公司 迁移虚拟机的方法和装置
US8990263B2 (en) 2012-03-15 2015-03-24 International Business Machines Corporation Policy-based management of storage functions in data replication environments
JPWO2013190737A1 (ja) * 2012-06-19 2016-02-08 日本電気株式会社 サーバシステム、サーバ、サーバ制御方法、及び、サーバ制御プログラム
WO2014087465A1 (ja) * 2012-12-03 2014-06-12 株式会社日立製作所 ストレージ装置及びストレージ装置移行方法
GB2526031B (en) * 2013-05-08 2020-07-29 Hitachi Ltd Storage system and data management method
US9483361B2 (en) 2013-05-08 2016-11-01 Commvault Systems, Inc. Information management cell with failover management capability
JP6511739B2 (ja) 2014-06-20 2019-05-15 富士通株式会社 冗長システムおよび冗長化方法

Also Published As

Publication number Publication date
JP2016009216A (ja) 2016-01-18
US20150370664A1 (en) 2015-12-24
US9971661B2 (en) 2018-05-15

Similar Documents

Publication Publication Date Title
CN110392876B (zh) 用于将数据集和其他受管理对象同步地复制到基于云的存储系统的方法
US7603581B2 (en) Remote copying of updates to primary and secondary storage locations subject to a copy relationship
JP4405509B2 (ja) データ管理方法、システム、およびプログラム(リモート記憶位置にフェイルオーバを行うための方法、システム、およびプログラム)
JP4477950B2 (ja) リモートコピーシステム及び記憶装置システム
US9934242B2 (en) Replication of data between mirrored data sites
JP2007164769A (ja) ミラーリングされたシステム内の障害を管理するための方法、システム、およびプログラム(ミラーリングされたシステム内の障害の管理)
JP2009157785A (ja) 待機系計算機の追加方法、計算機及び計算機システム
JP2008059583A (ja) クラスタ・システムならびにクラスタ・システム内でレプリカをバックアップする方法およびプログラム製品
JP6511739B2 (ja) 冗長システムおよび冗長化方法
CN106605217A (zh) 使用跨越故障转移集群中的数据存储库的同步复制的应用透明持续可用性
US11372727B2 (en) Method, device, and computer-readable storage medium for managing storage system
JP6318902B2 (ja) 冗長システムおよび冗長化方法
JP4318211B2 (ja) 高信頼システム、冗長構成制御方法及びプログラム
US8977897B2 (en) Computer-readable recording medium, data management method, and storage device
CN106951443B (zh) 基于分布式系统的副本同步的方法、设备和系统
JP6511737B2 (ja) 冗長システム、冗長化方法および冗長化プログラム
JP6251965B2 (ja) 情報システムおよびデータベース復旧方法
JP6056408B2 (ja) フォールトトレラントシステム
JP6511738B2 (ja) 冗長システム、冗長化方法および冗長化プログラム
WO2019109257A1 (zh) 一种日志管理方法、服务器和数据库系统
US20210240351A1 (en) Remote copy system and remote copy management method
KR101748913B1 (ko) 분산 저장 환경에서 게이트웨이를 선택하기 위한 클러스터 관리 방법 및 데이터 저장 시스템
US10846012B2 (en) Storage system for minimizing required storage capacity during remote volume replication pair duplication
JP2019509579A (ja) 情報処理システム
Brzezinski et al. Checkpointing and rollback-recovery protocol for mobile systems with MW session guarantee

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170309

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171226

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180226

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: 20180306

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180319

R150 Certificate of patent or registration of utility model

Ref document number: 6318902

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150