JP7106953B2 - サーバ切り替えプログラム、サーバ切り替え方法、及びサーバ切り替えシステム - Google Patents

サーバ切り替えプログラム、サーバ切り替え方法、及びサーバ切り替えシステム Download PDF

Info

Publication number
JP7106953B2
JP7106953B2 JP2018075159A JP2018075159A JP7106953B2 JP 7106953 B2 JP7106953 B2 JP 7106953B2 JP 2018075159 A JP2018075159 A JP 2018075159A JP 2018075159 A JP2018075159 A JP 2018075159A JP 7106953 B2 JP7106953 B2 JP 7106953B2
Authority
JP
Japan
Prior art keywords
server
synchronous
asynchronous
servers
backup servers
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
JP2018075159A
Other languages
English (en)
Other versions
JP2019185371A (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 JP2018075159A priority Critical patent/JP7106953B2/ja
Priority to US16/364,380 priority patent/US11232007B2/en
Publication of JP2019185371A publication Critical patent/JP2019185371A/ja
Application granted granted Critical
Publication of JP7106953B2 publication Critical patent/JP7106953B2/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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • 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/2033Failover techniques switching over of hardware resources
    • 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/2053Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2071Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
    • G06F11/2074Asynchronous techniques
    • 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/2053Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2071Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
    • G06F11/2076Synchronous techniques
    • 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/2053Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/184Distributed file systems implemented as replicated file system
    • G06F16/1844Management specifically adapted to replicated file systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Hardware Redundancy (AREA)
  • Retry When Errors Occur (AREA)

Description

本発明は、サーバ切り替えプログラム、サーバ切り替え方法、及びサーバ切り替えシステムに関する。
複数のノード、例えば複数のDB(Database)サーバにより多重化環境を構成するクラスタシステムでは、クラスタシステムを構成するノード数に見合った可用性向上を実現するために、マルチ同期スタンバイ機能が用いられることがある。
マルチ同期スタンバイ機能は、プライマリサーバ、及び、1以上のスタンバイサーバをそなえる多重化環境において、ノードに異常が発生した場合にクラスタ構成を再構築する技術である。マルチ同期スタンバイ機能において採用される手法としては、例えば、フェイルオーバ及びフォールバック等が知られている。
フェイルオーバは、プライマリサーバが故障した場合に、いずれかのスタンバイサーバをプライマリサーバに切り替えて、新プライマリサーバで業務を継続する手法である。フェイルオーバでは、プライマリサーバが故障する都度、アクティブなスタンバイサーバが無くなるまで、スタンバイサーバからプライマリサーバへの切り替えが行なわれる。
なお、スタンバイサーバをプライマリサーバに「切り替える」とは、スタンバイサーバとして動作するノードに対して、プライマリサーバとして動作するように機能を切り替える(制御する)ことを意味してよい。
フォールバックは、スタンバイサーバが故障した場合に、故障したスタンバイサーバを縮退し、残りのスタンバイサーバによってDBの冗長化を担保する手法である。
マルチ同期スタンバイ機能を採用するクラスタシステムの可用性は、スタンバイサーバ数の増加に比例して向上する。
特開2006-309439号公報 特開2016-51448号公報 特開2013-37433号公報 特開2011-141609号公報
ところで、端末によるクラスタシステムに対するDBの更新業務においてプライマリサーバのDBが更新されると、プライマリサーバは当該更新をスタンバイサーバのDBに反映させるための同期処理を行なう。
このため、スタンバイサーバ数を増加させることにより、クラスタシステムの可用性が向上する一方、プライマリサーバによる同期処理の処理負荷は増加し、DBの更新性能が低下することがあり、効率良くサーバの切り替えを行なうことが困難な場合がある。
1つの側面では、本発明は、効率良くサーバの切り替えを実施することを目的とする。
1つの側面では、サーバシステムにおけるサーバ切り替えプログラムは、以下の処理をプライマリサーバのコンピュータに実行させてよい。なお、サーバシステムは、プライマリサーバと、前記プライマリサーバのデータを同期方式でバックアップする複数の同期型バックアップサーバと、前記プライマリサーバのデータを非同期でバックアップする複数の非同期型バックアップサーバとを含む。前記処理は、前記サーバシステム内の1又は複数のサーバにおける障害により前記同期型バックアップサーバの数が減少する場合に、前記非同期型バックアップサーバの前記プライマリサーバに対する同期状態に基づいて、前記複数の非同期型バックアップサーバから1又は複数の非同期型バックアップサーバを特定し、特定した前記1又は複数の非同期型バックアップサーバを前記同期型バックアップサーバとして動作するように制御を行なってよい。
1つの側面では、効率良くサーバの切り替えを実施することができる。
一実施形態に係るクラスタシステムの構成例を示すブロック図である。 一実施形態に係るノードの構成例を示すブロック図である。 ノード情報の一例を示す図である。 一実施形態に係るDBインスタンスの状態遷移の一例を示す図である。 一実施形態に係る同期スタンバイサーバの動作例を示すフローチャートである。 図5に示す同期スタンバイサーバの動作例を説明する図である。 図5に示す同期スタンバイサーバの動作例を説明する図である。 一実施形態に係るプライマリサーバの動作例を示すフローチャートである。 図8に示すプライマリサーバの動作例を説明する図である。 一実施形態に係るコンピュータのハードウェア構成例を示す図である。 一実施形態に係るクラスタシステムの構成例を示すブロック図である。
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。例えば、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。なお、以下の実施形態で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
〔1〕一実施形態
〔1-1〕クラスタシステムの構成例
図1は、一実施形態の一例としてのクラスタシステム1の構成例を示すブロック図である。図1に示すように、クラスタシステム1は、サーバシステムの一例であり、例示的に、クラスタを構成する複数(図1の例では7台)のノード2と、1以上(図1の例では1台)のノード3と、をそなえてよい。
複数のノード2の各々は、例えば、データベース管理システム(DBMS;Database Management System)等のソフトウェアがインストールされたDBサーバであり、マルチ同期スタンバイ機能を用いてよい。複数のノード2において実行されるDBMSにより、DBの多重化環境が実現されてよい。
複数のノード2間は、インターコネクト、例えばLAN(Local Area Network)等のネットワーク1aにより、相互に通信可能に接続されてよい。
ノード2は、プライマリサーバ、1以上の同期スタンバイサーバ、及び、1以上の非同期スタンバイサーバ、のいずれか1つの種別の機能(役割)を可変的に割り当てられ、割り当てられた種別のサーバとして動作してよい。
図1の例では、1台のノード2A-1がプライマリサーバとして動作し、3台のノード2B-1~2B-3が同期スタンバイサーバとして動作し、3台のノード2C-1~2C-3が非同期スタンバイサーバとして動作するものとする。
以下の説明において、プライマリサーバとして動作するノード2を「ノード2A」又は「プライマリサーバ2A」と表記する場合がある。また、同期スタンバイサーバとして動作するノード2を「ノード2B」又は「同期サーバ2B」と表記する場合がある。さらに、非同期スタンバイサーバとして動作するノード2を「ノード2C」又は「非同期サーバ2C」と表記する場合がある。また、ノード2を「サーバ2」又は「DBサーバ2」と表記する場合がある。
プライマリサーバ2Aは、DBのマスタデータを管理する運用系ノードの一例である。プライマリサーバ2Aは、DBの更新業務に応じて、プライマリサーバ2Aが有するDBの更新処理を行なう。DBの更新業務は、例えば、図1に示す端末4が、ネットワーク5及びノード3を経由してプライマリサーバ2Aにアクセスすることで実行されてよい。
また、プライマリサーバ2Aは、DBの更新処理に加えて、クラスタを構成するノード2に対する同期処理を行なう。一例として、プライマリサーバ2Aは、同期処理において、更新処理に係る更新結果の情報(例えばWAL等のログ)を、同期サーバ2B及び非同期サーバ2Cに対して送信(例えばブロードキャスト)してよい。
WALは、Write Ahead Logging(ログ先行書き込み)の略称であり、DBへの書き込みに先立って書き出されるトランザクションのログである。以下、同期処理がWALを用いて行なわれるものとして説明する。
1以上の同期サーバ2Bは、運用系ノードの予備である待機系ノード群であって、プライマリサーバ2Aのデータを同期方式でバックアップする1又は複数の同期型バックアップサーバの一例である。各同期サーバ2Bは、プライマリサーバ2AからWALを受信すると、ログの転送が完了したことを示す応答(ログ転送完了応答)をプライマリサーバ2Aに送信してよい。
なお、ログ転送応答は、例えば、同期サーバ2BがWALを受信したことを示す応答として、同期サーバ2BがWALを受信したタイミングで送信されてもよい。或いは、ログ転送応答は、例えば、同期サーバ2Bが受信したWALを用いて同期サーバ2BのDBの更新処理を完了したタイミングで送信されてもよい。
プライマリサーバ2Aは、WALの送信先のノード2のうち、全ての同期サーバ2Bからログ転送完了応答を受信した場合に、同期処理が完了したと判断し、同期処理のトランザクションを終了してよい。これにより、プライマリサーバ2Aと同期サーバ2Bとの間のデータ同期(データの同一性)を保証できる。
1以上の非同期サーバ2Cは、待機系ノード群の予備である非同期待機系ノード群であって、プライマリサーバ2Aのデータを非同期でバックアップする1又は複数の非同期型バックアップサーバの一例である。各非同期サーバ2Cは、プライマリサーバ2AからWALを受信すると、受信したWALを用いて非同期サーバ2CのDBの更新処理を行なってよい。
プライマリサーバ2Aは、WALの送信先のノード2のうち、非同期サーバ2Cについては、非同期サーバ2Cからの応答を待たずに、全ての同期サーバ2Bから応答を受信したことを以って、同期処理のトランザクションを終了してよい。なお、各非同期サーバ2Cについては、WALを受信した場合におけるプライマリサーバ2Aに対するログ転送完了応答の送信を不要としてもよい。
プライマリサーバ2Aは、同期処理において、同期サーバ2Bに対してはログ転送完了応答の受信待ちを行なうため、同期サーバ2Bの台数が増加するほど、プライマリサーバ2Aの処理負荷が高まり、更新処理に利用可能なリソースが減少するため、更新処理のレスポンスが不安定になるリスクが増加する。
そこで、一実施形態に係るクラスタシステム1においては、稼働する同期サーバ2Bの台数が、更新業務の性能要件と同時障害耐久性とのバランスを考慮した最適な上限数(台数)に調整され、決定されてよい。これにより、プライマリサーバ2Aの処理負荷の増加を低減でき、更新処理に利用可能なリソースの減少を抑制できるため、更新処理において安定したレスポンスが確保できる。
プライマリサーバ2A、同期サーバ2B、及び非同期サーバ2C等のノード2の詳細については後述する。
なお、端末4或いは図示しない他の端末は、例えば、ネットワーク5及びノード3を経由して同期サーバ2Bに対してアクセスすることで、DBの参照業務を実行してよい。また、マルチ同期スタンバイ機能における、DB多重化環境の連携は、同期サーバ2B以外のノード2(例えば非同期サーバ2C)であれば可能である。
ノード3は、例えばアプリケーション(Application;以下、「AP」と表記する)サーバである。ノード3は、端末4或いは他の端末に対するクラスタシステム1へのインタフェース(Interface;IF)を提供してよい。以下の説明において、ノード3を「APサーバ3」と表記する場合がある。
APサーバ3と複数のノード2の各々との間は、ネットワーク1bにより相互に通信可能に接続されてよい。ネットワーク1bは、ネットワーク1aと同一の、又は、異なるインターコネクト、例えばLAN等であってよい。
APサーバ3は、更新業務のアクセス先であるプライマリサーバ2A、及び、参照業務のアクセス先である同期サーバ2Bを、複数のノード2の中から特定し、端末4或いは他の端末からのアクセスの接続先を、特定したノード2に切り替えてよい。例えば、APサーバ3は、ノード2からノード情報212(図2参照)を参照又は受信し、ノード情報212に基づいて、各ノード2の「プライマリ」、「同期スタンバイ」、「非同期スタンバイ」等の動作モード(同期属性)を判定してよい。
端末4は、クラスタシステム1が提供するDBの利用者が使用するコンピュータである。端末4としては、ユーザPC(Personal Computer)、サーバ、スマートホン、或いはタブレット等の情報処理装置が挙げられる。
ネットワーク5は、例えば、LAN或いはWAN(Wide Area Network)、又はこれらの組み合わせを含む、インターネット及びイントラネットの少なくとも一方であってよい。また、ネットワーク5は、VPN(Virtual Private Network)等の仮想ネットワークを含んでもよい。なお、ネットワーク5は、有線ネットワーク及び無線ネットワークの一方又は双方により形成されてよい。
〔1-2〕DBサーバの構成例
次に、図2を参照して、DBサーバ2としてのノード2の構成例について説明する。なお、図1に示す各ノード2は、動作モードの切り替えによって、プライマリサーバ2A、同期サーバ2B、及び非同期サーバ2Cのいずれとして動作可能であるため、以下、これらのサーバ2A~2Cの機能を包含した機能構成例を説明する。なお、クラスタの構成や環境、運用等によって、各ノード2がそなえる機能構成は、サーバ2A~2Cのうちの1つ又は2つを実現するための機能構成に制限されてもよい。
図2に示すように、ノード2は、例示的に、DB21、DB制御部22、同期制御部23、及び、切替制御部24をそなえてよい。
DB21は、クラスタシステム1が提供するデータベースであり、業務データ等のユーザデータ211を格納してよい。なお、プライマリサーバ2AのDB21が格納するユーザデータ211は、マスタデータとして扱われてよく、同期サーバ2B又は非同期サーバ2Cが格納するユーザデータ211は、マスタデータの同期バックアップ又は非同期バックアップとして扱われてよい。
また、一実施形態に係るDB21は、DB制御部22、同期制御部23、及び、切替制御部24の処理に用いられる情報として、例えば、ノード情報212及び優先度情報213を格納してよい。
なお、DB21としては、メモリ、例えばRAM(Random Access Memory)等の揮発性メモリ、並びに、記憶部、例えばHDD(Hard Disk Drive)又はSSD(Solid State Drive)等の記憶装置、の一方又は双方が挙げられる。ユーザデータ211、ノード情報212、及び優先度情報213は、1つのDB21に格納されてもよいし、複数のDB21(図示省略)に分散して格納されてもよい。また、ノード情報212、及び優先情報213はDBに格納されなくてもよい。
DB制御部22は、DB21に関する種々の制御を行なう。
例えば、プライマリサーバ2AのDB制御部22は、更新業務において、端末4からの更新指示に基づくWAL等のログの生成、及び、更新指示に基づくユーザデータ211の更新処理(例えばデータの追加、削除、或いは更新)を行なってよい。
また、同期サーバ2B及び非同期サーバ2CのDB制御部22は、それぞれ、同期制御部23がプライマリサーバ2Aから受信したWALに基づき、同期サーバ2B及び非同期サーバ2CのDB21に格納されたユーザデータ211の更新処理を行なってよい。
同期制御部23は、ノード2間のデータ同期に関する種々の制御を行なう。
例えば、プライマリサーバ2Aの同期制御部23は、更新指示に応じて同期処理を開始し、DB制御部22が生成したWALを、同期サーバ2B及び非同期サーバ2Cに送信(例えばブロードキャスト)してよい。また、同期制御部23は、各同期サーバ2Bからの転送完了応答の受信を待ち受け、全ての同期サーバ2Bから転送完了応答を受信すると、同期処理を終了してよい。
なお、プライマリサーバ2Aは、例えば、DB21に格納されたノード情報212(図2参照)を参照することで、複数のノード2の各々の動作モードが同期サーバ2B及び非同期サーバ2Cのいずれかであるのかを判定してよい。
図3は、ノード情報212の一例を示す図である。図3に示すように、ノード情報212は、例示的に、ノード2を識別するための識別情報、及び、当該ノード2の動作モードの項目を含んでよい。なお、ノード情報212は、DBMSにより管理されてよく、動作モードの更新は、例えば、マルチ同期スタンバイ機能におけるフェイルオーバやフォールバックの実行に応じて更新されてよい。
なお、ノード情報212において、「プライマリ」の情報(エントリ)は省略されてもよい。プライマリサーバ2A、並びに、同期サーバ2B及び非同期サーバ2Cの動作モードは、DBの状態、例えば、PostgreSQLの場合にはDBにおける“recovery.conf”の有無によって決定(判断)されてもよい。“recovery.conf”は、リカバリに関する設定ファイルであり、例えば同期サーバ2B及び非同期サーバ2Cのようなスレーブのノード2に設定される。従って、各ノード2は、“recovery.conf”が存在しないノード2の動作モードを「プライマリ」と判断してもよい。
同期サーバ2B及び非同期サーバ2Cの同期制御部23は、同期処理として、WALの受信を待ち受け、プライマリサーバ2AからWALを受信すると、受信したWALをDB制御部22に出力し、DB制御部22に更新処理を実行させてよい。また、同期サーバ2Bの同期制御部23は、WALを受信したタイミングで、或いは、DB制御部22による更新処理が完了したタイミングで、プライマリサーバ2Aに対して、転送完了応答を送信してよい。
切替制御部24は、ノード2の動作モードの切り替えに関する種々の制御を行なう。例えば、切替制御部24は、フェイルオーバやフォールバックにおいて、障害の発生したノード2を縮退する際に、縮退先(切替先)のノード2を決定してよい。
図4は、一実施形態に係るDBインスタンスの状態遷移(動作モードの切り替え)の一例を示す図である。
図4に示すように、切替制御部24は、ノード2の障害或いは電源OFF制御等に応じて、ノード2の状態を「プライマリ」、「同期スタンバイ」、或いは「非同期スタンバイ」から「停止」に切り替えてよい。また、切替制御部24は、ノード2の障害復旧、組み込み、或いは電源ON制御等に応じて、ノード2の状態を「停止」から「プライマリ」、「同期スタンバイ」、或いは「非同期スタンバイ」に切り替えてよい。
また、切替制御部24は、「プライマリ」の状態であるノード2の障害或いは電源OFF制御等に応じて、「同期スタンバイ」の状態である複数のノード2のうちのいずれか1つのノード2を選択して、「プライマリ」の状態に切り替えてよい。
「同期スタンバイ」から「プライマリ」への昇格では、状態(動作モード)の再構築による更新業務への影響を抑制するために、例えば、到達WALが最新である同期サーバ2Bが優先的に切替対象のノード2として選択されてよい。
さらに、切替制御部24は、「同期スタンバイ」の状態であるノード2と、「非同期スタンバイ」の状態であるノード2と、の間で、優先順に基づく状態の再構築が実行されてよい。
例えば、切替制御部24は、「同期スタンバイ」の状態であるノード2の障害の発生や「プライマリ」への昇格等に応じて、「非同期スタンバイ」の状態である1つのノード2を、「同期スタンバイ」の状態に切り替えてよい(昇格させてよい)。換言すれば、切替制御部24は、減少した「同期スタンバイ」の状態であるノード2の数と同じ数の「非同期スタンバイ」の状態であるノード2を、「同期スタンバイ」の状態に切り替える。このとき、切替制御部24は、動作モードの切り替え対象となるノード2として、到達WALが最新に近いノード2を選択してよい。
なお、切替制御部24は、「同期スタンバイ」の状態であるノード2のうちの、到達WALが古い等の同期性能の低いノード2を、「非同期スタンバイ」の状態に切り替えてもよい(降格させてもよい)。この場合、切替制御部24は、「非同期スタンバイ」の状態であるノード2のうちの、「非同期スタンバイ」の状態への切替対象のノード2よりも到達WALが新しいノード2を、「同期スタンバイ」の状態に切り替えてもよい。
上述した切替制御部24による処理は、例えば、プライマリサーバ2Aが正常であれば、プライマリサーバ2A(プライマリサーバ2Aが切り替わった場合は切替後のプライマリサーバ2A)の切替制御部24が実行してよい。一方、プライマリサーバ2Aに障害が発生した場合には、複数の同期サーバ2Bの切替制御部24が協働して上述した処理を実行してよい。
なお、一実施形態に係るクラスタシステム1は、同時障害耐久性を確保するために、複数のノード2に障害が発生した場合には、障害が発生したノード2数や障害が発生したノード2の動作モードに基づいて、上述した処理を組み合わせて実施してよい。
例えば、複数の同期サーバ2Bに障害が発生した場合には、プライマリサーバ2Aの切替制御部24は、到達WALが最新に近い順に、障害の発生した同期サーバ2Bの数に相当する(同じ数の)非同期サーバ2Cを同期サーバ2Bに切り替えてよい。
また、プライマリサーバ2Aと、1以上の同期サーバ2Bとに障害が発生した場合には、以下の(i)及び(ii)の手順により切り替え制御を行なってよい。
(i)上述のように、複数の同期サーバ2Bの切替制御部24が協働して、1つの同期サーバ2Bを新たなプライマリサーバ2Aに昇格させる。
(ii)新たなプライマリサーバ2Aが、到達WALが最新に近い順に、障害の発生した1以上の同期サーバ2Bの数に“1”(上記(i)で減少した同期サーバ2Bの数)を加算した数に相当する非同期サーバ2Cを同期サーバ2Bに切り替える。
なお、切替制御部24は、例えば、DB21に格納された優先度情報213(図2参照)を参照することで、各ノード2の各々のWAL(到達WAL)の情報を取得してよい。
優先度情報213は、自身のノード2のプライマリサーバ2Aに対する同期状態を示す情報の一例である。プライマリサーバ2Aに対する同期状態は、WALの情報に基づいて決定されてよい。例えば、優先度情報213には、WALごとに異なる(例えばシーケンシャルに増加する)番号部分を含むWAL番号が設定されてよい。WAL番号は、例えば、WALのファイル名等であってよい。なお、優先度情報213として、WAL自体が用いられてもよく、この場合、優先度情報213(WAL)は、ユーザデータ211の一部として管理されてもよい。
WALは、WAL番号における上記の番号部分が大きいWALほど、新しいWALである。このため、WAL番号が最新に近いノード2ほど、レイテンシが低く転送効率の良いノード2であり、縮退先としての優先度の高いノード2であるといえる。
このように、一実施形態に係るクラスタシステム1によれば、ノード2の縮退や組み込みのタイミングで、「同期スタンバイ」及び「非同期スタンバイ」の状態であるノード2を再構築することで、クラスタシステム1の高可用性を維持することができる。一実施形態において、プライマリサーバ2Aの切り替えは、フェイルオーバ(或いは計画的な手動切り替え)によって実施されるため、縮退の際の参照業務の無停止を実現できる。
また、「同期スタンバイ」のノード2からの縮退先となる「非同期スタンバイ」のノード2の選定ルールについて、例えば、縮退先候補のノード2を最新のWALが適用済みのノード2に制限する等の優先度を設けたチューニングを行なうことができる。これにより、「同期スタンバイ」及び「非同期スタンバイ」のノード2のそれぞれの運用要件(例えば参照業務の優先度等)を満たした運用を実現可能とすることができる。
さらに、切替制御部24は、同期サーバ2Bが更新業務に影響を与えるWAL転送のレイテンシに基づいた評価によって、フェイルオーバ等に応じて非同期サーバ2Cを同期サーバ2Bに昇格させる場合の優先順位を決定する。例えば、回線性能の安定しないクラウド環境等においてクラスタシステム1が実施される場合、このようなベストエフォート方式により各ノード2の動作モードを最適化することが効果的である。
なお、上述した説明においては、フェイルオーバが行なわれるタイミングで、WAL到達順序が最新に近い非同期サーバ2Cを同期サーバ2Bに切り替えるものとしたが、これに限定されるものではない。
例えば、過去の統計情報に基づいて、レイテンシが低い非同期サーバ2Cを、フェイルオーバが行なわれるタイミングで同期サーバ2Bに切り替えてもよい。過去の統計情報としては、例えば、過去の特定の期間における各ノード2のスループット(単位時間当たりの処理量等)、CPU(Central Processing Unit)使用率、WAL到達時刻、等の種々の情報が含まれてよい。過去の統計情報は、例えば、優先度情報213としてDB21に格納されてもよい。
これにより、過去の統計情報に基づき負荷の大きい非同期サーバ2Cを、同期サーバ2Bに切り替える対象から除外することができ、クラスタシステム1の性能低下を抑制できる。また、ノード2の台数に比例した可用性を実現するために、同期処理の処理負荷が小さい非同期サーバ2Cを利用できる。このため、プライマリサーバ2Aにおける同期処理の処理負荷の増加を低減しつつ、同期サーバ2Bの台数を制限することによる可用性の低下を抑制できる。
また、上述した説明においては、フェイルオーバが行なわれるタイミングにおいて、切替制御部24がノード2の動作モードを切り替えるものとしたが、これに限定されるものではない。
例えば、切替制御部24は、一定間隔で同期サーバ2Bを入れ替えてもよい。一例として、切替制御部24は、上述した「同期スタンバイ」から「非同期スタンバイ」への切り替え(降格)処理と、「非同期スタンバイ」から「同期スタンバイ」への切り替え(昇格)処理とのセットを、定期的に実行してもよい。
これにより、クラスタシステム1の運用中に処理負荷の増加等によりレイテンシが低下した同期サーバ2Bと、当該同期サーバ2BよりもWALのレイテンシが低い非同期サーバ2Cと、を入れ替えることができ、性能低下を抑制できる。
また、一実施形態においては、障害の発生した同期サーバ2Bの数に相当する非同期サーバ2Cを同期サーバ2Bとして動作するように制御する例について説明したが、これに限定するものではない。障害の発生した同期サーバ2Bの数と、同期サーバ2Bに昇格する非同期サーバ2Cの数とは、一致しなくてもよい。
例えば、プライマリサーバ2Aの切替制御部24は、同期サーバ2Bに障害が発生した場合であっても、クラスタシステム1において稼働する同期サーバ2Bの数が所定数よりも多い場合には、非同期サーバ2Cから同期サーバ2Bへの切り替えを抑制してもよい。このように、切替制御部24による処理は、同期サーバ2Bの数が減少する場合であって、かつ、減少後の同期サーバ2Bの数が所定数となる場合に実行されてもよい。
〔1-3〕動作例
次に、図5~図9を参照して、上述の如く構成されたクラスタシステム1の動作例を説明する。
〔1-3-1〕プライマリサーバに障害が発生した場合の動作例
まず、図5~図7を参照して、プライマリサーバ2A-1に障害が発生した場合の動作例を、同期サーバ(同期スタンバイサーバ)2B-1~2B-3の動作に着目して説明する。
図5に例示するように、プライマリサーバ2A-1(図6参照)にサーバダウンを伴う障害が発生したことを、同期サーバ2B(及び非同期サーバ2C)が検出する(ステップS1;図6の矢印(1)参照)。なお、クラスタシステム1においてノード2の障害発生を他のノード2が検出する手法は、既知の種々の手法により実現されてよい。
各同期サーバ2B-1~2B-3の切替制御部24は、プライマリサーバ2Aの障害発生を検出すると、同期サーバ2B-1~2B-3間で、WAL状態を比較する(ステップS2;図6の矢印(2)参照)。
例えば、各同期サーバ2Bの切替制御部24は、自身のノード2の優先度情報213を他の同期サーバ2Bに対して送信するとともに、当該優先度情報213と、他の同期サーバ2Bから受信する他のノード2の優先度情報213とを比較してよい。なお、同期サーバ2Bは、例えばノード情報212を参照することで、他の同期サーバ2Bを特定してよい。
そして、各同期サーバ2Bの切替制御部24は、WAL状態の比較の結果、自身のノード2のWAL状態が最新を示すか(例えば最新のWALが適用されているか)否かを判定する(ステップS3)。
自身のノード2のWAL状態が最新ではない場合(ステップS3でNo)、当該ノード2においては、処理が終了する。
一方、自身のノード2のWAL状態が最新である場合(ステップS3でYes)、当該ノード2が新たなプライマリサーバ2A-2(図6参照)に昇格する(ステップS4;図6の矢印(3)参照)。
図6の例では、ノード2B-1のWAL番号が“10”であり、ノード2B-2及び2B-3のWAL番号がそれぞれ“9”であるため、WAL番号の大きい(最新である)ノード2B-1がプライマリサーバ2A-2に昇格する。
なお、最新のWALが適用されている同期サーバ2Bが複数存在する場合(切替候補が複数存在する場合)、同期サーバ2B間で予め共有されたルールに基づき、これらの切替候補の中のいずれか1つの同期サーバ2Bがプライマリサーバ2A-2に昇格してよい。ルールとしては、例示的に、以下のいずれかが挙げられる。
・ノード情報212に含まれるノード2の識別情報の番号が小さい(例えば最小である)ノード2がプライマリサーバ2A-2に昇格する。
・最新のWALの受信時刻が先である(例えば最先である)ノード2がプライマリサーバ2A-2に昇格する。
・過去の統計に基づくWALの転送効率が良い(例えば最良である)ノード2がプライマリサーバ2A-2に昇格する。
自身のノード2を含む複数のノード2に最新のWALが適用されていると判断したノード2の各々は、自身のノード2が、上記のいずれかのルールに基づきプライマリサーバ2A-2への昇格対象となるか否かを判定してよい。この場合、昇格対象となるノード2がステップS3のYesのルートに従ってプライマリサーバ2A-2に昇格する。一方、昇格対象とはならないノード2については、ステップS3のNoのルートに従って、処理が終了する。
なお、WALの受信時刻や過去の統計等の情報は、マルチ同期スタンバイ機能によってノード2間で共有されていてもよい。或いは、ステップS2において、各同期サーバ2Bの切替制御部24は、自身のノード2におけるWALの受信時刻や過去の統計等の情報を、自身の優先度情報213とともに他のノード2に送信してもよい。
次いで、プライマリサーバ2A-2に昇格したノード2の切替制御部24は、非同期サーバ2C-1~2C-3のWAL状態を比較する(ステップS5;図7の矢印(4)参照)。例えば、プライマリサーバ2A-2の切替制御部24は、ノード情報212に基づき特定される非同期サーバ2C-1~2C-3の各々に対して優先度情報213の取得要求を送信し、各非同期サーバ2Cから受信した優先度情報213を比較してよい。
プライマリサーバ2A-2の切替制御部24は、WAL状態の比較の結果、WAL状態が最新に近い(例えば最新に近いWALが適用されている)非同期サーバ2Cを特定する。そして、プライマリサーバ2A-2の切替制御部24は、WAL状態が最新に近い非同期サーバ2Cを、新たな同期サーバ2B-4(図7参照)に昇格させ(ステップS6;図7の矢印(5)参照)、処理が終了する。
図7の例では、ノード2C-1及び2C-2のWAL番号がそれぞれ“8”であり、ノード2C-3のWAL番号が“9”であるため、WAL番号の大きい(最新に近い)ノード2C-3が同期サーバ2B-4に昇格する。
なお、WAL番号が最新に近い非同期サーバ2Cが複数存在する場合(切替候補が複数存在する場合)、プライマリサーバ2A-2の切替制御部24は、これらの切替候補の中のいずれか1つの非同期サーバ2Cを同期サーバ2Bに昇格させてよい。昇格させる基準は、同期サーバ2Bからプライマリサーバ2Aへの昇格の判定に用いる上述したルールと同様であってよい。
上述したノード2の動作モードの切り替えの結果は、例えば、各ノード2で実行されるマルチ同期スタンバイ機能により、ノード情報212に反映されてよい。また、優先度情報213の一例であるWAL番号についても、プライマリサーバ2Aによる更新処理、及び、各ノード2による同期処理の実行に応じて更新されてよい。
〔1-3-2〕同期スタンバイサーバに障害が発生した場合の動作例
次に、図8及び図9を参照して、同期サーバ(同期スタンバイサーバ)2B-1に障害が発生した場合の動作例を、プライマリサーバ2A-1の動作に着目して説明する。
図8に例示するように、同期サーバ2B-1(図9参照)にサーバダウンを伴う障害が発生したことを、プライマリサーバ2A-1が検出する(ステップS11;図9の矢印(1)参照)。
プライマリサーバ2A-1の切替制御部24は、非同期サーバ2C-1~2C-3のWAL状態を比較する(ステップS12;図9の矢印(2)参照)。例えば、プライマリサーバ2A-1の切替制御部24は、ノード情報212に基づき特定される非同期サーバ2C-1~2C-3の各々に対して優先度情報213の取得要求を送信し、各非同期サーバ2Cから受信した優先度情報213を比較してよい。
プライマリサーバ2A-1の切替制御部24は、WAL状態の比較の結果、WAL状態が最新に近い(例えば最新に近いWALが適用されている)非同期サーバ2Cを特定する。そして、プライマリサーバ2A-1の切替制御部24は、WAL状態が最新に近い非同期サーバ2Cを、新たな同期サーバ2B-4(図9参照)に昇格させ(ステップS13;図9の矢印(3)参照)、処理が終了する。
図9の例では、ノード2C-1及び2C-2のWAL番号がそれぞれ“8”であり、ノード2C-3のWAL番号が“9”であるため、WAL番号の大きい(最新に近い)ノード2C-3が同期サーバ2B-4に昇格する。
なお、WAL番号が最新に近い非同期サーバ2Cが複数存在する場合(切替候補が複数存在する場合)、プライマリサーバ2A-1の切替制御部24は、これらの切替候補の中のいずれか1つの非同期サーバ2Cを同期サーバ2Bに昇格させてよい。昇格させる基準は、同期サーバ2Bからプライマリサーバ2Aへの昇格の判定に用いる上述したルールと同様であってよい。
以上のように、プライマリサーバ2Aとして動作するノード2の切替制御部24は、以下の処理を行なう制御部又は第1制御部の一例である。当該処理は、クラスタシステム1内の1又は複数のノード2における障害により同期サーバ2Bの数が減少する場合に、1又は複数の非同期サーバ2Cを同期サーバ2Bとして動作するように制御を行なう、ことを含んでよい。
〔1-4〕ハードウェア構成例
次に、図10を参照して、一実施形態に係るノード2及びノード3のハードウェア構成例について説明する。ノード2及びノード3は、互いに同様のハードウェア構成をそなえてよいため、以下、これらの一例としてコンピュータ10を例に挙げて、コンピュータ10のハードウェア構成例について説明する。
図10に示すように、コンピュータ10は、例示的に、プロセッサ10a、メモリ10b、記憶部10c、IF(Interface)部10d、I/O(Input / Output)部10e、及び読取部10fをそなえてよい。
プロセッサ10aは、種々の制御や演算を行なう演算処理装置の一例である。プロセッサ10aは、コンピュータ10内の各ブロックとバス10iで相互に通信可能に接続されてよい。プロセッサ10aとしては、例えば、CPU、MPU、GPU、APU、DSP、ASIC、FPGA等の集積回路(IC;Integrated Circuit)が用いられてもよい。なお、MPUはMicro Processing Unitの略称である。GPUはGraphics Processing Unitの略称であり、APUはAccelerated Processing Unitの略称である。DSPはDigital Signal Processorの略称であり、ASICはApplication Specific ICの略称であり、FPGAはField-Programmable Gate Arrayの略称である。
メモリ10bは、種々のデータやプログラム等の情報を格納するハードウェアの一例である。メモリ10bとしては、例えばRAM等の揮発性メモリが挙げられる。
記憶部10cは、種々のデータやプログラム等の情報を格納するハードウェアの一例である。記憶部10cとしては、例えばHDD等の磁気ディスク装置、SSD等の半導体ドライブ装置、不揮発性メモリ等の各種記憶装置が挙げられる。不揮発性メモリとしては、例えば、フラッシュメモリ、SCM(Storage Class Memory)、ROM(Read Only Memory)等が挙げられる。
なお、図2に示すノード2のDB21は、例えば、ノード2のメモリ10b及び記憶部10cの少なくとも一方の記憶領域により実現されてもよい。
また、記憶部10cは、コンピュータ10の各種機能の全部若しくは一部を実現するプログラム10gを格納してよい。プロセッサ10aは、記憶部10cに格納されたプログラム10gをメモリ10bに展開して実行することにより、図1に示すプライマリサーバ2A、同期サーバ2B、非同期サーバ2C、又は、APサーバ3としての機能を実現できる。
例えば、ノード2においては、ノード2のプロセッサ10aが、記憶部10cに格納されたプログラム(サーバ切り替えプログラム)10gをメモリ10bに展開して演算処理を実行することで、動作モードに応じたノード2の機能を実現できる。当該機能は、DB制御部22、同期制御部23、及び切替制御部24の機能を含んでよい。
また、APサーバ3においては、APサーバ3のプロセッサ10aが、記憶部10cに格納されたプログラム10gをメモリ10bに展開して演算処理を実行することで、APサーバ3としての機能を実現できる。
IF部10dは、ネットワーク1a、1b、又は5との間の接続及び通信の制御等を行なう通信インタフェースの一例である。例えば、IF部10dは、LAN、或いは、光通信(例えばFC(Fibre Channel;ファイバチャネル))等に準拠したアダプタを含んでよい。
例えば、ノード2のプログラム10gは、当該通信インタフェース及びネットワーク1b(或いは管理用ネットワーク)を介して、ネットワーク5からコンピュータ10にダウンロードされ、記憶部10cに格納されてもよい。また、例えば、ノード3のプログラム10gは、当該通信インタフェースを介して、ネットワーク5からコンピュータ10にダウンロードされ、記憶部10cに格納されてもよい。
I/O部10eは、マウス、キーボード、又は操作ボタン等の入力部、並びに、タッチパネルディスプレイ、LCD(Liquid Crystal Display)等のモニタ、プロジェクタ、又はプリンタ等の出力部、の一方又は双方を含んでよい。
読取部10fは、記録媒体10hに記録されたデータやプログラムの情報を読み出すリーダの一例である。読取部10fは、記録媒体10hを接続可能又は挿入可能な接続端子又は装置を含んでよい。読取部10fとしては、例えば、USB(Universal Serial Bus)等に準拠したアダプタ、記録ディスクへのアクセスを行なうドライブ装置、SDカード等のフラッシュメモリへのアクセスを行なうカードリーダ等が挙げられる。なお、記録媒体10hにはプログラム10gが格納されてもよく、読取部10fが記録媒体10hからプログラム10gを読み出して記憶部10cに格納してもよい。
記録媒体10hとしては、例示的に、磁気/光ディスクやフラッシュメモリ等の非一時的な記録媒体が挙げられる。磁気/光ディスクとしては、例示的に、フレキシブルディスク、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク、HVD(Holographic Versatile Disc)等が挙げられる。フラッシュメモリとしては、例示的に、USBメモリやSDカード等が挙げられる。なお、CDとしては、例示的に、CD-ROM、CD-R、CD-RW等が挙げられる。また、DVDとしては、例示的に、DVD-ROM、DVD-RAM、DVD-R、DVD-RW、DVD+R、DVD+RW等が挙げられる。
上述したコンピュータ10のハードウェア構成は例示である。従って、コンピュータ10内でのハードウェアの増減(例えば任意のブロックの追加や削除)、分割、任意の組み合わせでの統合、又は、バスの追加若しくは削除等は適宜行なわれてもよい。
〔2〕その他
上述した一実施形態に係る技術は、以下のように変形、変更して実施することができる。
例えば、図2に示すDB制御部22、同期制御部23、及び、切替制御部24の少なくとも1つの機能を併合してもよく、或いは、分割してもよい。
また、図10に示すコンピュータ10のプロセッサ10aは、シングルプロセッサやシングルコアプロセッサに限定されるものではなく、マルチプロセッサやマルチコアプロセッサであってもよい。
さらに、一実施形態において、クォーラム構成が採用されてもよい。クォーラム構成は、例えば、プライマリサーバ2AがDB多重化環境内で唯一となるように、ノード群を複数発生させないようにするマルチノードクラスタ構成の技術である。
図11に例示するように、ネットワーク1aの障害(例えば回線の分断)により、クラスタシステム1がノード群1Aとノード群1Bとに分断された場合を考える。なお、ノード群1Aには、プライマリサーバ2A、同期サーバ2B-1及び2B-2、並びに、非同期サーバ2C-1及び2C-2とが含まれる。また、ノード群1Bには、同期サーバ2B-3及び非同期サーバ2C-3が含まれる。
このような例において、ノード群1Bでは、同期サーバ2B-3の切替制御部24が、プライマリサーバ2Aに昇格してしまうと、ノード群1Aのプライマリサーバ2Aと合わせて、クラスタシステム1に2つのプライマリサーバ2Aが存在することになる。
このような事態を回避するために、例えば、各ノード2は、クラスタシステム1を構成するノード2の数の過半数以上のノードと通信できなくなった場合、自身のノード2がクォーラムが不成立なノード群に属していると判断し、クラスタ構成から離脱してよい。
図11の例では、ノード群1Bの同期サーバ2B-3及び非同期サーバ2C-3の各々は、クラスタシステム1を構成する7台の過半数以上である、4台のノード2と通信できなくなったため、クラスタ構成から離脱する。
一方、ノード群1Aのプライマリサーバ2Aは、4台のノードと通信できるため、2台の同期サーバ2Bがダウンしたと判断し、2台の非同期サーバ2Cを同期サーバ2Bに切り替える制御を行なってよい。
なお、離脱状態においては、プライマリサーバ2Aは切り替えが行なわれず、同期サーバ2B及び非同期サーバ2Cは昇格等の動作モードの変更対象とはならない。なお、ネットワーク1aの復旧により通信が回復した場合、離脱状態のノード2は、クォーラム構成へ再参入してよい。
また、クラスタシステム1を構成するノード2の数が偶数の場合には、いずれかのノード2を、ユーザデータ211を格納するDB21が存在しない(同期対象外とする)裁定サーバとして動作させることにより、クォーラム構成を実現できる。
〔3〕付記
以上の実施形態に関し、さらに以下の付記を開示する。
(付記1)
プライマリサーバと、前記プライマリサーバのデータを同期方式でバックアップする1又は複数の同期型バックアップサーバと、前記プライマリサーバのデータを非同期でバックアップする1又は複数の非同期型バックアップサーバとを含むサーバシステムにおけるサーバ切り替えプログラムであって、
前記サーバシステム内の1又は複数のサーバにおける障害により前記同期型バックアップサーバの数が減少する場合に、1又は複数の前記非同期型バックアップサーバを前記同期型バックアップサーバとして動作するように制御を行なう、
処理をコンピュータに実行させることを特徴とする、サーバ切り替えプログラム。
(付記2)
前記非同期型バックアップサーバを前記同期型バックアップサーバとして動作するように制御する際、減少する同期型バックアップサーバの数と同じ数の非同期型バックアップサーバを同期型バックアップサーバとして動作するように制御する、処理を前記コンピュータに実行させることを特徴とする、付記1に記載のサーバ切り替えプログラム。
(付記3)
前記制御は、前記同期型バックアップサーバの数が減少する場合であって、かつ、減少後の前記同期型バックアップサーバの数が所定数となる場合に実行される、ことを特徴とする、付記1に記載のサーバ切り替えプログラム。
(付記4)
前記非同期型バックアップサーバを前記同期型バックアップサーバへ切り替える際、前記非同期型バックアップサーバの前記プライマリサーバに対する同期状態に基づいて切り替える処理を前記コンピュータに実行させることを特徴とする、付記1~3のいずれか1項に記載のサーバ切り替えプログラム。
(付記5)
前記プライマリサーバに対する同期状態は、WAL(Write Ahead Logging)の情報に基づいて決定されることを特徴とする、付記4に記載のサーバ切り替えプログラム。
(付記6)
前記プライマリサーバにおける障害が発生した場合に、1又は複数の前記同期型バックアップサーバのうちのいずれか1つの同期型バックアップサーバを、新たなプライマリサーバとして動作するように制御を行ない、
1又は複数の前記非同期型バックアップサーバを前記同期型バックアップサーバとして動作するように制御を行なう、
処理を前記コンピュータに実行させることを特徴とする、付記1~5のいずれか1項に記載のサーバ切り替えプログラム。
(付記7)
プライマリサーバと、前記プライマリサーバのデータを同期方式でバックアップする1又は複数の同期型バックアップサーバと、前記プライマリサーバのデータを非同期でバックアップする1又は複数の非同期型バックアップサーバとを含むサーバシステムにおけるサーバ切り替え方法であって、
前記プライマリサーバのプロセッサが、前記サーバシステム内の1又は複数のサーバにおける障害により前記同期型バックアップサーバの数が減少する場合に、1又は複数の前記非同期型バックアップサーバを前記同期型バックアップサーバとして動作するように制御を行なう、ことを特徴とする、サーバ切り替え方法。
(付記8)
前記プロセッサが、前記非同期型バックアップサーバを前記同期型バックアップサーバとして動作するように制御する際、減少する同期型バックアップサーバの数と同じ数の非同期型バックアップサーバを同期型バックアップサーバとして動作するように制御する、ことを特徴とする、付記7に記載のサーバ切り替え方法。
(付記9)
前記制御は、前記同期型バックアップサーバの数が減少する場合であって、かつ、減少後の前記同期型バックアップサーバの数が所定数となる場合に実行される、ことを特徴とする、付記7に記載のサーバ切り替え方法。
(付記10)
前記プロセッサが、前記非同期型バックアップサーバを前記同期型バックアップサーバへ切り替える際、前記非同期型バックアップサーバの前記プライマリサーバに対する同期状態に基づいて切り替えることを特徴とする、付記7~9のいずれか1項に記載のサーバ切り替え方法。
(付記11)
前記プライマリサーバに対する同期状態は、WAL(Write Ahead Logging)の情報に基づいて決定されることを特徴とする、付記10に記載のサーバ切り替え方法。
(付記12)
前記プロセッサが、
前記プライマリサーバにおける障害が発生した場合に、1又は複数の前記同期型バックアップサーバのうちのいずれか1つの同期型バックアップサーバを、新たなプライマリサーバとして動作するように制御を行ない、
1又は複数の前記非同期型バックアップサーバを前記同期型バックアップサーバとして動作するように制御を行なう、
ことを特徴とする、付記7~11のいずれか1項に記載のサーバ切り替え方法。
(付記13)
プライマリサーバと、
前記プライマリサーバのデータを同期方式でバックアップする1又は複数の同期型バックアップサーバと、
前記プライマリサーバのデータを非同期でバックアップする1又は複数の非同期型バックアップサーバと、をそなえ、
前記プライマリサーバは、
前記サーバシステム内の1又は複数のサーバにおける障害により前記同期型バックアップサーバの数が減少する場合に、1又は複数の前記非同期型バックアップサーバを前記同期型バックアップサーバとして動作するように制御を行なう、ことを特徴とする、サーバ切り替えシステム。
(付記14)
前記プライマリサーバは、前記非同期型バックアップサーバを前記同期型バックアップサーバとして動作するように制御する際、減少する同期型バックアップサーバの数と同じ数の非同期型バックアップサーバを同期型バックアップサーバとして動作するように制御する、ことを特徴とする、付記13に記載のサーバ切り替えシステム。
(付記15)
前記制御は、前記同期型バックアップサーバの数が減少する場合であって、かつ、減少後の前記同期型バックアップサーバの数が所定数となる場合に実行される、ことを特徴とする、付記13に記載のサーバ切り替えシステム。
(付記16)
前記プライマリサーバが、前記非同期型バックアップサーバを前記同期型バックアップサーバへ切り替える際、前記非同期型バックアップサーバの前記プライマリサーバに対する同期状態に基づいて切り替えることを特徴とする、付記13~15のいずれか1項に記載のサーバ切り替えシステム。
(付記17)
前記プライマリサーバに対する同期状態は、WAL(Write Ahead Logging)の情報に基づいて決定されることを特徴とする、付記16に記載のサーバ切り替えシステム。
(付記18)
前記プライマリサーバが、
前記プライマリサーバにおける障害が発生した場合に、1又は複数の前記同期型バックアップサーバのうちのいずれか1つの同期型バックアップサーバを、新たなプライマリサーバとして動作するように制御を行ない、
1又は複数の前記非同期型バックアップサーバを前記同期型バックアップサーバとして動作するように制御を行なう、
ことを特徴とする、付記13~17のいずれか1項に記載のサーバ切り替えシステム。
1 クラスタシステム
1a、1b、5 ネットワーク
2、3 ノード
2A、2A-1、2A-2 プライマリサーバ
2B、2B-1~2B-4 同期スタンバイサーバ
2C、2C-1~2C-3 非同期スタンバイサーバ
21 DB
211 ユーザデータ
212 ノード情報
213 優先度情報
22 DB制御部
23 同期制御部
24 切替制御部
4 端末

Claims (7)

  1. プライマリサーバと、前記プライマリサーバのデータを同期方式でバックアップする複数の同期型バックアップサーバと、前記プライマリサーバのデータを非同期でバックアップする複数の非同期型バックアップサーバとを含むサーバシステムにおけるサーバ切り替えプログラムであって、
    前記サーバシステム内の1又は複数のサーバにおける障害により前記同期型バックアップサーバの数が減少する場合に、前記非同期型バックアップサーバの前記プライマリサーバに対する同期状態に基づいて、前記複数の非同期型バックアップサーバから1又は複数の非同期型バックアップサーバを特定し、特定した前記1又は複数の非同期型バックアップサーバを前記同期型バックアップサーバとして動作するように制御を行なう、
    処理を前記プライマリサーバのコンピュータに実行させることを特徴とする、サーバ切り替えプログラム。
  2. 前記特定する処理は、減少する同期型バックアップサーバの数と同じ数の非同期型バックアップサーバを特定する処理を含むことを特徴とする、請求項1に記載のサーバ切り替えプログラム。
  3. 前記制御は、前記同期型バックアップサーバの数が減少する場合であって、かつ、減少後の前記同期型バックアップサーバの数が所定数となる場合に実行される、ことを特徴とする、請求項1に記載のサーバ切り替えプログラム。
  4. 前記プライマリサーバに対する同期状態は、WALの情報に基づいて決定されることを特徴とする、請求項に記載のサーバ切り替えプログラム。
  5. 前記プライマリサーバにおける障害が発生した場合に、前記複数の同期型バックアップサーバのうちのいずれか1つの同期型バックアップサーバを、新たなプライマリサーバとして動作するように制御を行ない、
    前記 複数の非同期型バックアップサーバのうちの少なくとも1つを前記同期型バックアップサーバとして動作するように制御を行なう、
    処理を前記コンピュータに実行させることを特徴とする、請求項1~のいずれか1項に記載のサーバ切り替えプログラム。
  6. プライマリサーバと、前記プライマリサーバのデータを同期方式でバックアップする複数の同期型バックアップサーバと、前記プライマリサーバのデータを非同期でバックアップする複数の非同期型バックアップサーバとを含むサーバシステムにおけるサーバ切り替え方法であって、
    前記プライマリサーバのプロセッサが、前記サーバシステム内の1又は複数のサーバにおける障害により前記同期型バックアップサーバの数が減少する場合に、前記非同期型バックアップサーバの前記プライマリサーバに対する同期状態に基づいて、前記複数の非同期型バックアップサーバから1又は複数の非同期型バックアップサーバを特定し、特定した前記1又は複数の非同期型バックアップサーバを前記同期型バックアップサーバとして動作するように制御を行なう、ことを特徴とする、サーバ切り替え方法。
  7. プライマリサーバと、
    前記プライマリサーバのデータを同期方式でバックアップする複数の同期型バックアップサーバと、
    前記プライマリサーバのデータを非同期でバックアップする複数の非同期型バックアップサーバと、をそなえるサーバシステムにおいて
    前記プライマリサーバは、
    前記サーバシステム内の1又は複数のサーバにおける障害により前記同期型バックアップサーバの数が減少する場合に、前記非同期型バックアップサーバの前記プライマリサーバに対する同期状態に基づいて、前記複数の非同期型バックアップサーバから1又は複数の非同期型バックアップサーバを特定し、特定した前記1又は複数の非同期型バックアップサーバを前記同期型バックアップサーバとして動作するように制御を行なう、ことを特徴とする、サーバ切り替えシステム。
JP2018075159A 2018-04-10 2018-04-10 サーバ切り替えプログラム、サーバ切り替え方法、及びサーバ切り替えシステム Active JP7106953B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018075159A JP7106953B2 (ja) 2018-04-10 2018-04-10 サーバ切り替えプログラム、サーバ切り替え方法、及びサーバ切り替えシステム
US16/364,380 US11232007B2 (en) 2018-04-10 2019-03-26 Server system and method of switching server

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018075159A JP7106953B2 (ja) 2018-04-10 2018-04-10 サーバ切り替えプログラム、サーバ切り替え方法、及びサーバ切り替えシステム

Publications (2)

Publication Number Publication Date
JP2019185371A JP2019185371A (ja) 2019-10-24
JP7106953B2 true JP7106953B2 (ja) 2022-07-27

Family

ID=68097222

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018075159A Active JP7106953B2 (ja) 2018-04-10 2018-04-10 サーバ切り替えプログラム、サーバ切り替え方法、及びサーバ切り替えシステム

Country Status (2)

Country Link
US (1) US11232007B2 (ja)
JP (1) JP7106953B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11068351B2 (en) * 2018-11-19 2021-07-20 International Business Machines Corporation Data consistency when switching from primary to backup data storage
US10817157B2 (en) 2018-12-20 2020-10-27 Nutanix, Inc. User interface for database management services
US11010336B2 (en) 2018-12-27 2021-05-18 Nutanix, Inc. System and method for provisioning databases in a hyperconverged infrastructure system
US11816066B2 (en) 2018-12-27 2023-11-14 Nutanix, Inc. System and method for protecting databases in a hyperconverged infrastructure system
US11234142B2 (en) * 2020-01-16 2022-01-25 Allied Telesis Holdings Kabushiki Kaisha System and method for single-channel architecture for immediate access point redundancy
US11604705B2 (en) 2020-08-14 2023-03-14 Nutanix, Inc. System and method for cloning as SQL server AG databases in a hyperconverged system
US11907167B2 (en) 2020-08-28 2024-02-20 Nutanix, Inc. Multi-cluster database management services
US11640340B2 (en) * 2020-10-20 2023-05-02 Nutanix, Inc. System and method for backing up highly available source databases in a hyperconverged system
US11604806B2 (en) 2020-12-28 2023-03-14 Nutanix, Inc. System and method for highly available database service
US11892918B2 (en) * 2021-03-22 2024-02-06 Nutanix, Inc. System and method for availability group database patching
US12105683B2 (en) 2021-10-21 2024-10-01 Nutanix, Inc. System and method for creating template for database services

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009009599A (ja) 2001-03-07 2009-01-15 Oracle Internatl Corp 故障後、どこで回復するかについての情報を管理する方法、故障後、回復するための方法、および、多数のキャッシュを含むシステムにおける故障の後、データ項目の現在のバージョンを回復させるための方法
JP2012185560A (ja) 2011-03-03 2012-09-27 Nec Corp クラスタシステムおよびその制御方法
JP2014154056A (ja) 2013-02-13 2014-08-25 Nippon Telegr & Teleph Corp <Ntt> 冗長化システムおよび現用機決定方法
JP2015191246A (ja) 2014-03-27 2015-11-02 株式会社Nttドコモ 通信システムおよび管理方法
JP2016206865A (ja) 2015-04-21 2016-12-08 株式会社日立製作所 多重化計算機の記憶領域一致化装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7065540B2 (en) 1998-11-24 2006-06-20 Oracle International Corporation Managing checkpoint queues in a multiple node system
JP4371724B2 (ja) * 2003-07-03 2009-11-25 株式会社日立製作所 記憶システム及び記憶装置システム
JP2006309439A (ja) 2005-04-27 2006-11-09 Fujitsu Ltd フレキシブルクラスタシステム
US7650369B2 (en) * 2006-03-30 2010-01-19 Fujitsu Limited Database system management method and database system
JP5282046B2 (ja) 2010-01-05 2013-09-04 株式会社日立製作所 計算機システム及びその可用化方法
US8713288B2 (en) * 2010-06-17 2014-04-29 Hitachi, Ltd. Storage system comprising multiple microprocessors and method for sharing processing in this storage system
JP5817308B2 (ja) 2011-08-04 2015-11-18 富士通株式会社 サーバ、サーバシステムおよびサーバの冗長切り替え方法
US9015373B2 (en) * 2012-05-17 2015-04-21 Hitachi, Ltd. Storage apparatus and method of controlling storage apparatus
JP2016051448A (ja) 2014-09-02 2016-04-11 富士通株式会社 仮想機械管理装置、仮想機械管理方法及び情報処理システム
US10338851B1 (en) * 2018-01-16 2019-07-02 EMC IP Holding Company LLC Storage system with consistent termination of data replication across multiple distributed processing modules
US11308125B2 (en) * 2018-03-27 2022-04-19 EMC IP Holding Company LLC Storage system with fast recovery and resumption of previously-terminated synchronous replication

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009009599A (ja) 2001-03-07 2009-01-15 Oracle Internatl Corp 故障後、どこで回復するかについての情報を管理する方法、故障後、回復するための方法、および、多数のキャッシュを含むシステムにおける故障の後、データ項目の現在のバージョンを回復させるための方法
JP2012185560A (ja) 2011-03-03 2012-09-27 Nec Corp クラスタシステムおよびその制御方法
JP2014154056A (ja) 2013-02-13 2014-08-25 Nippon Telegr & Teleph Corp <Ntt> 冗長化システムおよび現用機決定方法
JP2015191246A (ja) 2014-03-27 2015-11-02 株式会社Nttドコモ 通信システムおよび管理方法
JP2016206865A (ja) 2015-04-21 2016-12-08 株式会社日立製作所 多重化計算機の記憶領域一致化装置

Also Published As

Publication number Publication date
US11232007B2 (en) 2022-01-25
JP2019185371A (ja) 2019-10-24
US20190310926A1 (en) 2019-10-10

Similar Documents

Publication Publication Date Title
JP7106953B2 (ja) サーバ切り替えプログラム、サーバ切り替え方法、及びサーバ切り替えシステム
CN109729129B (zh) 存储集群系统的配置修改方法、存储集群及计算机系统
US9769259B2 (en) Network storage systems having clustered RAIDs for improved redundancy and load balancing
JP5192226B2 (ja) 待機系計算機の追加方法、計算機及び計算機システム
US8521983B2 (en) Program, apparatus and method for managing data allocation of distributed storage system including storage nodes
CN100383749C (zh) 远程复制方法及远程复制系统
JP5165206B2 (ja) バックアップシステムおよびバックアップ方法
US20120054441A1 (en) Storage system, control apparatus and control method thereof
JP2019191843A (ja) 接続制御プログラム、接続制御方法、及び接続制御装置
JP6040612B2 (ja) ストレージ装置、情報処理装置、情報処理システム、アクセス制御方法、およびアクセス制御プログラム
JP6136629B2 (ja) ストレージ制御装置,ストレージシステム,および制御プログラム
JP4693540B2 (ja) データベース再構成装置、およびデータベース再構成プログラム
JP2021026659A (ja) ストレージシステム及びリソース割当て制御方法
CN111124250A (zh) 用于管理存储空间的方法、设备和计算机程序产品
JP2018073231A (ja) ストレージシステムおよびストレージ装置
JP2009026091A (ja) 接続管理プログラム、接続管理方法および情報処理装置
US8621260B1 (en) Site-level sub-cluster dependencies
US10365923B2 (en) Information processing device, information processing system, and control method
JP2017004502A (ja) 情報システムおよびアップデート方法
US11755438B2 (en) Automatic failover of a software-defined storage controller to handle input-output operations to and from an assigned namespace on a non-volatile memory device
WO2017098591A1 (ja) 計算機及びストレージ装置を有するシステム、及びシステムの制御方法
JP6012479B2 (ja) 情報処理システム、制御方法および制御プログラム
JP6398727B2 (ja) 制御装置,ストレージ装置及び制御プログラム
JP2017010102A (ja) 二重系システム
JP2019128680A (ja) 情報処理装置,情報処理システムおよび制御プログラム

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190607

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210113

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220204

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220627

R150 Certificate of patent or registration of utility model

Ref document number: 7106953

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150