JP2021051532A - 計算機システム - Google Patents

計算機システム Download PDF

Info

Publication number
JP2021051532A
JP2021051532A JP2019173820A JP2019173820A JP2021051532A JP 2021051532 A JP2021051532 A JP 2021051532A JP 2019173820 A JP2019173820 A JP 2019173820A JP 2019173820 A JP2019173820 A JP 2019173820A JP 2021051532 A JP2021051532 A JP 2021051532A
Authority
JP
Japan
Prior art keywords
master node
node
nodes
old
master
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.)
Pending
Application number
JP2019173820A
Other languages
English (en)
Inventor
亮 相川
Ryo Aikawa
亮 相川
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2019173820A priority Critical patent/JP2021051532A/ja
Priority to US16/818,129 priority patent/US20210089379A1/en
Publication of JP2021051532A publication Critical patent/JP2021051532A/ja
Pending legal-status Critical Current

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/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0712Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a virtual computing platform, e.g. logically partitioned systems
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Hardware Redundancy (AREA)

Abstract

【課題】システムの可用性を損なうことなくマスタノードの冗長性を回復する。【解決手段】クラスタは、ネットワークを介して互いに通信可能であり、1以上の計算ノードからのユーザデータを格納する複数のノードを含む。複数のノードは、複数の旧マスタノードを含む。複数のノードの各ノードは、クラスタのマスタノードを示す参照情報を保持する。複数の旧マスタノードにおける一つのマスタノードでの障害に対して、クラスタの管理を行うために予め定められた最小単位のマスタノードの数以上の、新マスタノードが追加される。各稼働している旧マスタノードは、保持している参照情報を、新マスタノードが含まれるように書き換える。【選択図】図6

Description

本発明は計算機システムに関する。
本開示の背景技術として、特許文献1がある。特許文献1は、例えば、「分散コンピューティングクラスタ内のノードのコンセンサスグループの第1のノードで実行される権限モジュールのインスタンスが失敗したと判定することにより、分散コンピューティングクラスタ内のコンセンサスグループを管理し、コンセンサスグループの2番目のノードにある権限モジュールのインスタンスにより、コンセンサスグループに新しいノードを追加して、最初のノードを置き換える。新しいノードは、第1のノードで実行されている権限モジュールのインスタンスが失敗したと判定された時点でコンセンサスグループのメンバーではなかったコンピューティングクラスタ内のノードである。」ことを開示する(例えば要約)。
米国特許第9690675号
複数のストレージノードからなり、さらに、複数のマスタノードを含むクラスタにおいて、マスタノードに障害が発生すると、マスタノードの冗長性が低下する又はなくなる。システム(クラスタ)を停止することなくマスタノードを追加する動的な追加は、マスタノードに実装されているコーディネーションサービス/スケールアウトデータベースの動的追加可否に大きく依存する。コーディネーションサービス/スケールアウトデータベースが動的追加不可の場合、システムの停止及び再起動が必要となり、クラスタの可用性が大きく損なわれる。
したがって、コーディネーションサービス/スケールアウトデータベースが動的追加に対応していなくても、システムの可用性を損なうことなくマスタノードの冗長性を回復できる技術が望まれる。
本発明の一態様は、クラスタを含む計算機システムであって、前記クラスタは、ネットワークを介して互いに通信可能であり、1以上の計算ノードからのユーザデータを格納する複数のノードを含み、前記複数のノードは、複数の旧マスタノードを含み、前記複数のノードの各ノードは、前記クラスタのマスタノードを示す参照情報を保持し、前記複数の旧マスタノードにおける一つのマスタノードでの障害に対して、前記クラスタの管理を行うために予め定められた最小単位のマスタノードの数以上の、新マスタノードが追加され、前記複数の旧マスタノードにおいて各稼働している旧マスタノードは、保持している前記参照情報を、前記新マスタノードが含まれるように書き換える。
本発明の一態様によれば、システムの可用性を損なうことなくマスタノードの冗長性を回復できる。
実施例1において、計算機システムの構成を模式的に示すブロック図である。 実施例1において、マスタノードのハードウェア構成例を示 実施例1において、構成情報ファイルの構成例を示す。 実施例1において、コーディネーションサービス設定ファイルの構成例を示す。 実施例1において、スケールアウトデータベース設定ファイルの構成例を示す。 実施例1において、フローチャートを参照して、クラスタの一つのマスタノードにおいて障害が発生した場合の処理を 図6に示す処理の詳細を示すシーケンス図を示す。 図6に示す処理の詳細を示すシーケンス図を示す。 実施例1において、障害発生前の、各旧マスタノードにおけるコーディネーションサービス設定ファイル及びスケールアウトデータベース設定ファイルを示す。 実施例1において、障害発生前の、ワーカノードにおける構成情報ファイルの参照先情報を示す。 実施例1において、各新マスタノードにおけるコーディネーションサービス設定ファイル及びスケールアウトデータベース設定ファイルを示す。 実施例1において、ワーカノードの変更された構成情報ファイルにおける参照先情報を示す。 実施例2において、クラスタの一つのマスタノードにおいて障害が発生した場合の処理を説明するフローチャートである。 図12に示す処理の詳細を示すシーケンス図を示す。 図12に示す処理の詳細を示すシーケンス図を示す。 実施例2において、各新マスタノードにおけるコーディネーションサービス設定ファイル及びスケールアウトデータベース設定ファイルを示す。 実施例2において、ワーカノードの変更された構成情報ファイルにおける参照先情報を示す。 実施例2において、旧マスタノードの変更後のコーディネーションサービス設定ファイル及びスケールアウトデータベース設定ファイルを示す。 実施例2において、旧マスタノード群が障害後マスタノード群に参加した後の、ワーカノードの構成情報ファイルにおける参照先情報を示す。 実施例3において、クラスタの一つのセカンダリマスタノードにおいて障害が発生した場合の処理を説明するシーケンス図である。 実施例3において、クラスタの一つのセカンダリマスタノードにおいて障害が発生した場合の処理を説明するシーケンス図である。
以下、本開示の実施例を、添付図面を参照しながら説明する。以下の説明では、計算機システムは、1以上の物理的な計算機を含んだシステムである。物理的な計算機は、汎用計算機でも専用計算機でもよい。物理的な計算機は、I/O(Input/Output)要求を発行する計算機として機能してもよいし、I/O要求に応答してデータのI/Oを行う計算機として機能してもよい。
すなわち、計算機システムは、I/O要求を発行する1以上の計算機で構成されるシステム、及び、I/O要求に応答してデータのI/Oを行う1以上の計算機で構成されるシステムのうちの少なくとも1つでよい。少なくとも1つの物理的な計算機において、1以上の仮想的な計算機が実行されてもよい。仮想的な計算機は、I/O要求を発行する計算機でもよいし、I/O要求に応答してデータのI/Oを行う計算機でもよい。
以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサによって実行されることで、定められた処理を、適宜に記憶部及び/又はインタフェース部等を用いながら行うため、処理の主語が、プロセッサ(或いは、そのプロセッサを有するコントローラのようなデバイス)とされてもよい。
プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ又は計算機が読み取り可能な(例えば非一時的な)記録媒体であってもよい。また、以下の説明において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
以下の説明では、「xxxファイル」といった表現にて、入力に対して出力が得られる情報を説明することがあるが、当該情報は、どのような構造のデータでもよい。また、以下の説明において、各ファイルの構成は一例であり、1つのファイルは、2以上のファイルに分割されてもよいし、2以上のファイルの全部又は一部が1つのファイルであってもよい。
図1は、本実施例の計算機システムの構成を模式的に示すブロック図である。計算機システムは、1以上の計算ノード(ホストノード)10、管理端末13及びクラスタ20を含む。図1は、二つの計算ノード10を例として図示し、その内の一つが例として符号10で指示されている。計算ノード10、管理端末13及びクラスタ20は、計算ネットワーク(NW)15を介して互いに通信を行うことができる。
クラスタ20は、複数のストレージノードを含む分散ストレージシステムであり、計算ノード10からのI/Oを受け付ける。クラスタ20は、計算ノード10からのライト要求に従って計算ノード10から受信したライトデータを格納し、計算ノード10からのリード要求に従って、格納されているデータから指定されたデータを読み出し、計算ノード10に返す。管理端末13は、管理者(ユーザ)により、計算機システムを管理するために使用される。
クラスタ20は、複数のマスタノードで構成される又は、複数のマスタノード及び1以上のワーカノードで構成される。ワーカノードはクラスタ20に含まれていなくてもよい。図1に示す構成例において、クラスタ20は、三つのマスタノード(ノード(1))21A、マスタノード(ノード(2))21B及びマスタノード(ノード(3))21C並びに一つのワーカノード(ノード(4))23で構成されている。クラスタ20内のノードは、物理ノード又は仮想ノードである。
マスタノード21A、21B及び21C並びにワーカノード23は、クラスタネットワーク29により互いに通信可能である。なお、計算ネットワーク15とクラスタネットワーク29とは一つのネットワークで構成されていてもよい。
クラスタ20内のノードは、ストレージノード(ストレージ装置)であって、計算ノード10から受信したユーザデータを格納し、計算ノード10に対して指定されたユーザデータを返す。各ノードは、ストレージプログラム211及びストレージ214を含む。図1において、マスタノード21Aにおけるストレージプログラム及びストレージが、例として、符号211及び214によってそれぞれ指示されている。ストレージ214は、計算ノード10からのユーザデータを格納する。ストレージプログラム211は、計算ノード10からの要求に応じて、I/O処理を実行する。
マスタノード21A、21B及び21Cは、計算ノード10からのI/Oを受け付けることに加え、ワーカノード23が行わない、クラスタ20の管理、制御を実行するする。マスタノード21A、21B及び21Cには、一つのマスタノードをプライマリマスタノードに選出する。他のマスタノードはセカンダリマスタノードである。図1の構成例において、マスタノード21Aはプライマリマスタノードであり、他のマスタノード21B及び21Cはセカンダリマスタノードである。
プライマリマスタノード21Aは、クラスタ20の全体管理を行う。プライマリマスタノード21Aは、クラスタ20における構成の変更、例えば、ボリューム構成やノード構成の変更を他のノードに指示する。例えば、クラスタ20におけるいずれかのノードにおいて障害が発生すると、プライマリマスタノード21Aは、他のノードに必要な処理を実行することを指示する。
セカンダリマスタノード21B及び21Cは、プライマリマスタノードの候補となるノードであり、プライマリマスタノード21Aにおいて障害が発生すると、セカンダリマスタノード21B及び21Cのいずれかが、プライマリマスタノードとして選出される。複数のマスタノードにより、プライマリマスタノードの障害に対する冗長性が確保される。
各マスタノードは、コーディネーションサービス212及びスケールアウトデータベース(DB)213を含む。コーディネーションサービス212はプログラムである。図1において、マスタノード21Aにおけるコーディネーションサービス及びスケールアウトデータベースが、例として、符号212及び213によってそれぞれ指示されている。
コーディネーションサービス212は、マスタノード間の処理を実行する。例えば、コーディネーションサービス212は、マスタノードからプライマリマスタノードを選出する処理を実行し、また、マスタノード間で管理情報の同期のための通信を行う。マスタノードのコーディネーションサービス212は、プライマリマスタノードが常に存在するように、互いに通信を行う。上記管理情報は、コーディネーションサービス212が保持する情報及びスケールアウトデータベース213に格納されている情報を含む。
スケールアウトデータベース213は、クラスタ20の構成情報及び制御情報を格納している。スケールアウトデータベース213は、例えば、クラスタ20内の各ノードの構成(ハードウェア構成及びソフトウェア構成)やアドレスの情報、クラスタ20内で管理されているボリュームの情報等を格納している。
スケールアウトデータベース213は、また、各ノードのロール、プライマリマスタノード、障害が発生しているノード等、クラスタ20内のノードの状態についての情報を格納している。スケールアウトデータベース213は、システム起動時に予め格納されている情報及びシステム内で更新された情報を含む。
スケールアウトデータベース213は、ストレージプログラム211により更新される。スケールアウトデータベース213の内容は、コーディネーションサービス212によって、マスタノード間において同期されている(同一内容に維持される)。なお、スケールアウトデータベース213が、その内容の同期処理を実行する機能を有していてもよい。後述する管理テーブルの情報は、スケールアウトデータベース213から取得される。
図2は、マスタノード21Aのハードウェア構成例を示す。クラスタ20における他のノードも、同様の構成を有することができる。マスタノード21Aは、計算機構成を有することができる。マスタノード21Aは、プロセッサ221、主記憶装置222、補助記憶装置223、及び通信インタフェース(I/F)227を含む。上記構成要素は、バスによって互いに接続されている。
主記憶装置222、補助記憶装置223又はこれらの組み合わせは非一過性の記憶媒体を含む記憶装置であり、プロセッサ221が使用するプログラム及びデータを格納している。また、補助記憶装置223は、計算ノード10のユーザデータを格納するストレージ214の記憶領域を提供する。
主記憶装置222は、例えば半導体メモリから構成され、主に実行中のプログラムやデータを保持するために利用される。プロセッサ221は、主記憶装置222に格納されているプログラムに従って、様々な処理を実行する。プロセッサ221がプログラムに従って動作することで、様々な機能部が実現される。補助記憶装置223は、例えば1又は複数のハードディスクドライブやソリッドステートドライブなどの大容量の記憶装置から構成され、プログラムやデータを長期間保持するために利用される。
プロセッサ221は、単一の処理ユニットまたは複数の処理ユニットで構成することができ、単一もしくは複数の演算ユニット、又は複数の処理コアを含むことができる。プロセッサ221は、1又は複数の中央処理装置、マイクロプロセッサ、マイクロ計算機、マイクロコントローラ、デジタル信号プロセッサ、ステートマシン、ロジック回路、グラフィック処理装置、チップオンシステム、及び/又は制御指示に基づき信号を操作する任意の装置として実装することができる。
補助記憶装置223に格納されたプログラム及びデータが起動時又は必要時に主記憶装置222にロードされ、プログラムをプロセッサ221が実行することにより、マスタノード21Aの各種処理が実行される。したがって、以下においてマスタノード21Aにより実行される処理は、プロセッサ221又はプログラムによる処理である。通信I/F227は、ネットワークとの接続のためのインタフェースである。
計算ノード10及び管理端末13は、図2に示すような計算機構成を有することができる。管理端末13は、さらに、入力装置及び出力装置を含むことができる。入力装置は、ユーザが管理端末13に指示や情報などを入力するためのハードウェアデバイスである。出力装置は、入出力用の各種画像を提示するハードウェアデバイスであり、例えば、表示デバイス又は印刷デバイスである。入出力装置が、計算ノード10やクラスタ20のノードに実装されていてもよい。
以下において、計算機システムのノードが保持する管理テーブルの例を説明する。図3は、構成情報ファイル31の構成例を示す。クラスタ20の各ノードは、構成情報ファイル31を保持している。構成情報ファイル31は、自ノードのロール及びアクセスのためにマスタノードそれぞれを特定する情報(例えばIPアドレス)を格納している。自ノードのロールは、自ノードがマスタノードであるか、ワーカノードであるかを示す。図3は、マスタノードの構成情報ファイル31の例を示す。
図4は、コーディネーションサービス設定ファイル33の構成例を示す。クラスタ20の各マスタノードは、コーディネーションサービス設定ファイル33を保持している。コーディネーションサービス設定ファイル33は、コーディネーションサービスのクラスタを構成するノード、つまり、クラスタ20におけるマスタノードそれぞれにアクセスできるように、それらを特定する情報(例えばIPアドレス)を格納している。
図5は、スケールアウトデータベース設定ファイル35の構成例を示す。クラスタ20の各マスタノードは、スケールアウトデータベース設定ファイル35を保持している。スケールアウトデータベース設定ファイル35は、スケールアウトデータベースのクラスタを構成するノード、つまり、クラスタ20におけるマスタノードそれぞれにアクセスできるように、それらを特定する情報(例えばIPアドレス)を格納している。
次に、図6のフローチャートを参照して、クラスタ20の一つのマスタノードにおいて障害が発生した場合の処理を説明する。図1に示す構成例において、マスタノード群の最小単位は、三つのマスタノード、つまり、一つのプライマリマスタノードと二つのセカンダリマスタノードで構成される。最小単位は、システム設計において予め定められており、クラスタの管理のために必要とされる冗長性を有する最小数のマスタノードを示す。そのため、何れかのマスタノードにおいて障害が発生すると、必要とされる冗長性が確保されていないことになる。
本実施例において、クラスタ20は、既存のマスタノードにマスタノードを追加するために停止が必要となる。例えば、既存のマスタノードにマスタノードを追加するために、マスタノードにおけるコーディネーションサービス212やスケールアウトデータベース213のリスタートが必要となる。
本実施例は、マスタノードの障害に対して、最小単位のマスタノードの数以上の新マスタノードを、クラスタ20に追加する。つまり、最小単位のマスタノード数が3である場合、3以上のマスタノードを、クラスタ20に追加する。これにより、クラスタ20を停止することなく、旧マスタノード群からクラスタ20の管理(マスタ権限)を、新たに追加されるマスタノード群(新マスタノード群)に移行することができる。これにより、クラスタ20の可用性を損なうことなく、要求される冗長性を回復(拡張を含む)することができる。なお、最小単位のマスタノードの数は、設計に依存する。
以下に説明する例において、新マスタノードの数は3であり、最小単位のマスタノード数と一致する。これにより、効率的なクラスタ管理が可能となる。なお、追加する新マスタノードの数を、障害発生直性の旧マスタノードの数と同一にすることで、マスタノード冗長性を障害発生直前の冗長性に戻すことができる。以下に説明する例は、障害後マスタノード群を、追加される新マスタノードのみで構成し、旧マスタノードを含めない。これにより、マスタノード冗長性を回復しつつ、効率的なクラスタ管理が可能となる。
以下に説明する例においては、最小単位のマスタノードの一つのマスタノードにおいて障害が発生した場合に、新マスタノード群を追加する。これにより、要求されるマスタノード冗長性を維持しつつ、新マスタノード群追加の処理をできるだけ避けることができる。これと異なり、マスタノードの障害発生後に、最小単位のマスタノードの数以上のマスタノードが存在している場合に、新マスタノード群を追加してもよい。
図6を参照して、クラスタ20におけるいずれかのマスタノードにおいて、障害が発生すると(S11)、3以上のマスタノードからなる新マスタノード群が、クラスタ20に追加される(S13)。例えば、システム管理者は、必要な設定を行った新マスタノード群を、クラスタ20に追加する。各新マスタノードは、物理マスタノード又は仮想マスタノードである。
追加された各新マスタノードは、新マスタノードそれぞれの情報を予め保持し、互いに、通信することができる。追加された新マスタノード群は、一つのプライマリマスタノードを選出する。新マスタノード群は、クラスタ20内の旧マスタノードと通信可能であり、旧マスタノード群から、コーディネーションサービス212及びスケールアウトデータベース213が保持している情報を取得する。
次に、各既存ノードは、構成情報ファイル31の参照先情報を、新マスタノード群の情報に変更する(S15)。さらに、旧マスタノード群の各稼働している旧マスタノードは、構成情報ファイル31の自ノードのロールを、“マスタ”から“ワーカ”に変更する(S17)。各旧マスタノードは、コーディネーションサービス212及びスケールアウトデータベース213を停止する。以上により、新マスタノード群の動的追加(冗長性回復)が完了する。
図7A及び7Bは、図6に示す処理の詳細を示すシーケンス図を示す。図7Aが示す処理の後に、図7Bが示す処理が続く。図7A及び7Bにおいて、各稼働中の旧マスタノードは、ストレージプログラム211A、コーディネーションサービス212A、スケールアウトデータベース213A、構成情報ファイル31A、コーディネーションサービス設定ファイル33A、及びスケールアウトデータベース設定ファイル35Aを含む。ワーカノード23は、ストレージプログラム211C及び構成情報ファイル31Cを含む。
各新マスタノードは、ストレージプログラム211B、コーディネーションサービス212B、スケールアウトデータベース213B、構成情報ファイル31B、コーディネーションサービス設定ファイル33B、及びスケールアウトデータベース設定ファイル35Bを含む。以下に説明する例において、新マスタノード群は、最小単位を構成する三つのマスタノードで構成される。これにより、要求される冗長性を効率的に実現できる。
図7Aを参照して、クラスタ20のいずれかのマスタノードにおいて障害が発生する(S11)と、マスタノード冗長性回復処理開始される(S12)。新マスタノード群がクラスタ20に追加される(S13)。スケールアウトデータベース213Bは、新マスタノード群の情報を保持しており、その情報はファイル31B、33B及び35Bに反映されている。また、スケールアウトデータベース213Bは、旧マスタノードのアドレス情報を保持している。
図8は、障害発生前の、各旧マスタノードにおけるコーディネーションサービス設定ファイル33A及びスケールアウトデータベース設定ファイル35Aを示す。コーディネーションサービス設定ファイル33A及びスケールアウトデータベース設定ファイル35Aは、それぞれ、旧マスタノード群(ノード(1)、ノード(2)及びノード(3))を示す。
図9は、障害発生前の、ワーカノード23における構成情報ファイル31Cの参照先情報を示す。構成情報ファイル31Cの参照先情報は、旧マスタノード群(ノード(1)、ノード(2)及びノード(3))を示す。旧マスタノード群のマスタノード21A、21B及び21Cにおける構成情報の参照先情報も、同様に、旧マスタノード群を示す。
図10は、各新マスタノードにおけるコーディネーションサービス設定ファイル33B及びスケールアウトデータベース設定ファイル35Bを示す。コーディネーションサービス設定ファイル33A及びスケールアウトデータベース設定ファイル35Aは、それぞれ、新マスタノード群(ノード(4)、ノード(5)及びノード(6))を示す。本例においては、上述のように、旧マスタノードはワーカノードに変更され、マスタノードとしての役割を終了する。
図7Aに戻って、各新マスタノードのストレージプログラム211Bは、旧プライマリマスタノードに、クラスタ構築のための情報同期要求を送信する(S131)。旧プライマリマスタノードのストレージプログラム211Aは、コーディネーションサービス212Aが保持している情報を要求元の新マスタノードに送信し、新マスタノードのコーディネーションサービス212Bは受信した情報を保持する(S132)。
さらに、ストレージプログラム211Aは、スケールアウトデータベース213Aに格納されている情報を要求元の新マスタノードに送信し、新マスタノードのスケールアウトデータベース213Bは、受信した情報を格納する(S133)。必要な情報の送信が完了すると、旧プライマリマスタノードのストレージプログラム211Aは、応答完了を要求元の新マスタノードに通知する(S134)。
旧プライマリマスタノードからの情報と予め保持する新マスタノードの情報により、クラスタ内の全てのノードの情報が、新マスタノード群によって保持される。新マスタノード群は、保持している情報によって、適切に、クラスタ20を管理及び制御することがきる。
情報同期要求の送信(S131)前に新マスタノード群においてプライマリマスタノードが選出されている場合、新プライマリマスタノードが代表して、旧プライマリマスタノードに対して情報同期要求を送信してもよい。新プライマリマスタノードは、旧プライマリマスタノードからステップS132及びS133で受信した情報を、新セカンダリマスタノードに転送する。
図7Bを参照して、次に、既存ノードは、その構成情報の参照先情報を“新マスタノード群”に変更する(S15)。例えば、旧プライマリマスタノードは、情報同期要求(S131)と共に、新マスタノード群の各ノードを特定する情報を受信し、新マスタノード群の情報と共に、構成情報ファイルの参照先情報の変更を、稼働中の旧セカンダリマスタノード及びワーカノードに指示する(S151)。旧プライマリマスタノードは、コーディネーションサービス212A及びスケールアウトデータベース213Aの情報の送信完了後に、新マスタノードそれぞれのアクセス先情報を、新マスタノードから受信してもよい。
旧プライマリマスタノード及び指示を受けた旧セカンダリマスタノードのストレージプログラム211Aは、自ノードの構成情報ファイル31Aにおいて、参照先情報を新マスタノード群の情報に変更する(S152)。指示を受けたワーカノードのストレージプログラム211Cは、自ノードの構成情報ファイル31Cにおいて、参照先情報を新マスタノード群の情報に変更する(S153)。変更が完了すると、ストレージプログラム211Cは、旧プライマリマスタノードに完了を通知する(S154)。旧セカンダリマスタノードのストレージプログラム211Aも同様に、旧プライマリマスタノードに完了を通知する。
図11は、ワーカノードの変更された構成情報ファイル31Cにおける参照先情報を示す。図9に示す変更前の旧マスタノード群(ノード(1)、ノード(2)、ノード(3))の情報から、新マスタノード群(ノード(5)、ノード(6)、ノード(7))の情報に変更されている。旧マスタノードの構成情報ファイル31Aの変更後の内容も、構成情報ファイル31Cと同様である。
図7Bに戻って、次に、旧マスタノード群の各ノードは、その構成情報ファイル31Aのロールを“ワーカ”に変更する(S17)。具体的には、各旧マスタノードのストレージプログラム211Aは、構成情報ファイル31Aのロールを“ワーカ”に変更し(S171)、さらに、コーディネーションサービス212及びスケールアウトデータベース213を停止する(S172及びS173)。この後、各旧マスタノードは、ワーカノードに降格して動作する(S19)。
以上の処理により、クラスタのマスタノード群の更新が完了する。上述のように、最小単位の新規マスタノードを追加することで、旧マスタノードのコーディネーションサービス及びスケールアウトデータベースを停止する前に、マスタ権限を新マスタノードに移行することができる。これにより、クラスタを停止することなく、マスタノード冗長性を回復することができる。
実施例1は、旧マスタノード群をワーカノードに変更し、新マスタノードのみで障害後マスタノード群を構成する。以下に説明する実施例2は、新たに追加されたマスタノードに加え、稼働している(正常な)旧マスタノードを、障害後マスタノード群に含める。これにより、マスタノード冗長性を拡張することができる。以下において、主に実施例1との相違点を説明する。
図12は、クラスタ20の一つのマスタノードにおいて障害が発生した場合の処理を説明するフローチャートである。クラスタ20におけるいずれかのマスタノードにおいて、障害が発生すると(S21)、3以上のマスタノードからなる新マスタノード群が、クラスタ20に追加される(S23)。例えば、システム管理者は、必要な設定を行った新マスタノード群を、クラスタ20に追加する。各新マスタノードは、物理マスタノード又は仮想マスタノードである。
追加された各新マスタノードは、新マスタノードそれぞれの情報を予め保持する。さらに、各新マスタノードは、稼働している旧マスタノードそれぞれを特定する情報を保持している。新マスタノード群は、クラスタ20内の旧マスタノードと通信可能であり、旧マスタノード群から、コーディネーションサービス212及びスケールアウトデータベース213が保持している情報を取得する。
次に、各既存ノードは、構成情報ファイル31の参照先情報を、追加された新マスタノード群の情報に変更する(S25)。次に、旧マスタノード群の稼働している各ノードは、コーディネーションサービス設定ファイル33及びスケールアウトデータベース設定ファイル35を、新マスタノード群の設定ファイルと同じ内容に変更する(S27)。
最後に、旧マスタノード群の稼働している各ノードは、コーディネーションサービス212及びスケールアウトデータベース213を再起動する(S29)。これにより、旧マスタノード群は、障害後マスタノード群に参加できる。障害後マスタノード群は、追加された新マスタノード群と、障害発生していない旧マスタノード群とで構成される。
障害後マスタノード群のプライマリマスタノードは、旧マスタノード群の障害後マスタノード群への参加に応答して、構成情報ファイルにおける参照情報に旧マスタノード群の情報を追加することを各ノードに指示する。プライマリマスタノード及び他の各ノードは、構成情報ファイルを、新マスタノード群及び旧マスタノード群を示すように変更する。以上により、新マスタノード群の動的追加(冗長性拡張)が完了する。
図13A及び13Bは、図12に示す処理の詳細を示すシーケンス図を示す。図13Aが示す処理の後に、図13Bが示す処理が続く。以下において、ノード(1)(プライマリマスタノード21A)において障害が発生した場合を例として説明する。
図13Aを参照して、ステップS21及びS22は、図7AにおけるステップS11及びS12と同様である。上述のように、ここでは、ノード(1)(プライマリマスタノード21A)において障害が発生したとする。マスタノード冗長性拡張処理開始される(S22)と、新マスタノード群がクラスタ20に追加される(S33)。
図14は、各新マスタノードにおけるコーディネーションサービス設定ファイル33B及びスケールアウトデータベース設定ファイル35Bを示す。コーディネーションサービス設定ファイル33B及びスケールアウトデータベース設定ファイル35Bは、それぞれ、新マスタノード群(ノード(4)、ノード(5)及びノード(6))及び稼働している旧マスタノード群(ノード(2)及びノード(3))を示す。本例においては、上述のように、旧マスタノードも障害後マスタノード群に追加される。
障害発生前の、各旧マスタノードにおけるコーディネーションサービス設定ファイル33A及びスケールアウトデータベース設定ファイル35Aの内容は、図8に示す通りである。また、障害発生前の、ワーカノード23における構成情報ファイル31Cの参照先情報は、図9に示す通りである。
図13Aに戻って、ステップS231からS234は、図7AにおけるステップS131からS134と同様である。次に、各既存ノードは、構成情報ファイルの参照先情報を、障害後マスタノード群の情報に変更する(S25)。具体的には、旧プライマリマスタノードは、情報同期要求(S231)と共に又はステップS234の後に、新マスタノード群の各ノードを特定する情報を受信し、新マスタノード群の情報と共に、構成情報ファイルの参照先情報の変更を、稼働中の旧セカンダリマスタノード及びワーカノードに指示する(S251)。
旧プライマリマスタノード及び指示を受けた旧セカンダリマスタノードのストレージプログラム211Aは、自ノードの構成情報ファイル31Aにおいて、参照先情報を、新マスタノード群の情報に変更する(S252)。指示を受けたワーカノードのストレージプログラム211Cは、自ノードの構成情報ファイル31Cにおいて、参照先情報を新マスタノード群の情報に変更する(S253)。ステップS254は、図7におけるステップS154と同様である。
図15は、ワーカノードの変更された構成情報ファイル31Cにおける参照先情報を示す。図9に示す変更前の旧マスタノード群(ノード(1)、ノード(2)、ノード(3))の情報から、新マスタノード群(ノード(5)、ノード(6)、ノード(7))の情報に変更されている。旧マスタノードの構成情報ファイル31Aの変更後の内容も、構成情報ファイル31Cと同様である。
図13Bを参照して、次に、稼働している各旧マスタノードは、コーディネーションサービス設定ファイル33A及びスケールアウトデータベース設定ファイル35Aを、新マスタノード群の設定ファイル33B及び35Bと同じ内容(図14参照)に変更する(S27)。
具体的には、旧プライマリマスタノードのストレージプログラム211Aは、旧セカンダリマスタノードに、コーディネーションサービス設定ファイル33Aの書き換えを指示する。旧プライマリマスタノード及び旧セカンダリマスタノードのそれぞれのストレージプログラム211Aは、コーディネーションサービス設定ファイル33Aを、各新マスタノードを特定する情報と、稼働中の各旧マスタノードを特定する情報とを示すように、書き換える(S271)。
さらに、旧プライマリマスタノードのストレージプログラム211Aは、旧セカンダリマスタノードに、スケールアウトデータベース設定ファイル35Aの書き換えを指示する。旧プライマリマスタノード及び旧セカンダリマスタノードのそれぞれのストレージプログラム211Aは、スケールアウトデータベース設定ファイル35Aを、各新マスタノードを特定する情報と、稼働中の各旧マスタノードを特定する情報とを示すように、書き換える(S272)。
図16は、旧マスタノードの変更後のコーディネーションサービス設定ファイル33A及びスケールアウトデータベース設定ファイル35Aを示す。設定ファイル33A及び35Aは、それぞれ、稼働している旧マスタノード群(ノード(2)、ノード(3))及び新マスタノード群(ノード(5)、ノード(6)、ノード(7))の情報を示す。
次に、稼働している各旧マスタノードは、コーディネーションサービス212A及びスケールアウトデータベース213Aを再起動する(S29)。具体的には、ストレージプログラム211Aは、コーディネーションサービス212Aを再起動する(S291)。コーディネーションサービス212Aは、他の旧マスタノードのコーディネーションサービス212A及び新マスタノードのコーディネーションサービス212Bと共に、クラスタを構築する(S292)。
ストレージプログラム211Aは、さらに、スケールアウトデータベース213Aを再起動する(S293)。スケールアウトデータベース213Aは、他の旧マスタノードのスケールアウトデータベース213A及び新マスタノードのスケールアウトデータベース213Bと共に、クラスタを構築する(S294)。
コーディネーションサービス212A及びスケールアウトデータベース213Aの再起動により、旧マスタノードは、障害後マスタノード群に参加する。障害後マスタノード群のプライマリマスタノードのストレージプログラムは、クラスタ20内の各ノードに対して、参加した旧マスタノード群の情報を、構成情報ファイルの参照先情報に追加することを、指示する。プライマリマスタノード及び他の各ノードのストレージプログラムは、構成情報ファイルを、新マスタノード群及び旧マスタノード群を示すように変更する。
図17は、旧マスタノードが参加した後に変更されたワーカノードの構成情報ファイル31Cにおける参照先情報を示す。参照先情報は、新マスタノード群(ノード(5)、ノード(6)、ノード(7))に加え、旧マスタノード群(ノード(2)、ノード(3))の情報を含む。
以上の処理により、クラスタのマスタノード群の更新が完了する。上述のように、最小単位の新規マスタノードを追加することで、旧マスタノードのコーディネーションサービス及びスケールアウトデータベースを再起動する前に、クラスタ20の管理を新マスタノード群に移行することができる。さらに、障害後マスタノード群に再起動した旧マスタノード群を追加することで、マスタノード冗長性を回復するにとどまらず、さらに拡張できる。
以下において、実施例3に係る計算機システムを説明する。本実施例は、クラスタが自動的にマスタノードの障害を検出し、さらに、新マスタノード群を、システムを停止することなく追加する。これにより、ユーザの作業を要することなく、冗長性を回復し、さらに拡張することができる。以下においては、実施例2と同様に、旧マスタノードを障害後マスタノード群に追加する例を説明するが、本実施例の手法は、実施例1のように旧マスタノードをワーカノードに変換する例にも適用できる。
図18A及び18Bは、クラスタ20の一つのセカンダリマスタノードにおいて障害が発生した場合の処理を説明するシーケンス図である。図18Aを参照して、セカンダリマスタノードにおいて障害が発生し(S31)、マスタノード冗長性拡張処理が開始され(S32)、クラスタ20に対して新マスタノード群が追加される(S33)。
具体的には、旧プライマリマスタノードのストレージプログラム211Aは、旧セカンダリノードのストレージプログラム211A2との通信障害によって、旧セカンダリノードにおいて障害が発生したことを検出する(S331)。旧プライマリマスタノードのストレージプログラム211Aは、新マスタノード群の追加処理を実行する(S332)。
例えば、ストレージプログラム211Aは、仮想マスタノードのテンプレートが格納されている物理ノードそれぞれに、必要な設定情報と共に、仮想マスタノードの生成を指示する。生成された新マスタノードは、それぞれ、実施例2において説明新マスタノードと同様の情報を保持する。新マスタノード群は、新プライマリマスタノードを選出する。
図18Aにおいて、ステップS333からS336は、図13AにおけるステップS231からS234と同様である。図18Aにおいて、ステップS35、S351からS354は、図13AにおけるステップS35、S351からS354と同様である。図18Bを参照して、ステップS37、S371、及びS372は、図13BにおけるステップS27、S271、及びS272と同様である。さらに、図18BにおけるステップS39、S391からS394は、図13BにおけるステップS29、S291からS294と同様である。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明したすべての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成・機能・処理部等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード等の記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしもすべての制御線や情報線を示しているとは限らない。実際には殆どすべての構成が相互に接続されていると考えてもよい。
10 計算ノード
13 管理端末
15 計算ネットワーク
20 クラスタ
21 マスタノード
23 ワーカノード
29 クラスタネットワーク
31 構成情報ファイル
33 コーディネーションサービス設定ファイル
35 スケールアウトデータベース設定ファイル
112 制御端末
211 ストレージプログラム
212 コーディネーションサービス
213 スケールアウトデータベース
214 ストレージ
221 プロセッサ
222 主記憶装置
223 補助記憶装置
227 通信インタフェース

Claims (7)

  1. クラスタを含む計算機システムであって、
    前記クラスタは、ネットワークを介して互いに通信可能であり、1以上の計算ノードからのユーザデータを格納する複数のノードを含み、
    前記複数のノードは、複数の旧マスタノードを含み、
    前記複数のノードの各ノードは、前記クラスタのマスタノードを示す参照情報を保持し、
    前記複数の旧マスタノードにおける一つのマスタノードでの障害に対して、前記クラスタの管理を行うために予め定められた最小単位のマスタノードの数以上の、新マスタノードが追加され、
    前記複数の旧マスタノードにおいて各稼働している旧マスタノードは、保持している前記参照情報を、前記新マスタノードが含まれるように書き換える、計算機システム。
  2. 請求項1に記載の計算機システムであって、
    前記複数の旧マスタノードにおける各稼働している旧マスタノードは、保持している前記参照情報を、前記新マスタノードのみを示すように書き換え、
    前記複数の旧マスタノードにおける各稼働している旧マスタノードは、前記新マスタノードが追加された後に、ワーカノードに変化する、計算機システム。
  3. 請求項1に記載の計算機システムであって、
    前記複数の旧マスタノードにおける各稼働している旧マスタノードは、前記障害後に、前記新マスタノードと共にマスタノードの役割を担い、
    前記複数の旧マスタノードにおける各稼働している旧マスタノードは、保持している前記参照情報を、前記新マスタノード及び前記複数の旧マスタノードにおける各稼働している旧マスタノードを示すように書き換える、計算機システム。
  4. 請求項1に記載の計算機システムであって、
    前記新マスタノードの数は、前記最小単位の数と一致する、計算機システム。
  5. 請求項1に記載の計算機システムであって、
    前記新マスタノードの数は、前記複数の旧マスタノードの数と一致する、計算機システム。
  6. 請求項1に記載の計算機システムであって、
    前記新マスタノードは、それぞれ、仮想ノードであり、
    前記複数の旧マスタノードにおいて稼働している一つの旧マスタノードは、前記新マスタノードを生成して前記クラスタに追加する、計算機システム。
  7. クラスタにおけるマスタノードの障害を処理する方法であって、
    前記クラスタは、ネットワークを介して互いに通信可能な、ユーザデータを格納する複数のノードを含み、
    前記複数のノードは、複数の旧マスタノードを含み、
    前記複数のノードの各ノードは、前記クラスタのマスタノードを示す参照情報を保持し、
    前記方法は、
    前記複数の旧マスタノードにおける一つのマスタノードでの障害に対して、前記クラスタの管理を行うために予め定められた最小単位のマスタノードの数以上の新マスタノードを追加し、
    前記複数の旧マスタノードにおける各稼働している旧マスタノードにおいて、保持されている前記参照情報を、前記新マスタノードが含まれるように書き換える、方法。
JP2019173820A 2019-09-25 2019-09-25 計算機システム Pending JP2021051532A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019173820A JP2021051532A (ja) 2019-09-25 2019-09-25 計算機システム
US16/818,129 US20210089379A1 (en) 2019-09-25 2020-03-13 Computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019173820A JP2021051532A (ja) 2019-09-25 2019-09-25 計算機システム

Publications (1)

Publication Number Publication Date
JP2021051532A true JP2021051532A (ja) 2021-04-01

Family

ID=74880933

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019173820A Pending JP2021051532A (ja) 2019-09-25 2019-09-25 計算機システム

Country Status (2)

Country Link
US (1) US20210089379A1 (ja)
JP (1) JP2021051532A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220045901A1 (en) * 2020-08-07 2022-02-10 Arris Enterprises Llc Electronic device, method for electronic device, computer readable medium, and apparatus

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11178011B1 (en) * 2020-07-16 2021-11-16 Micro Focus Llc Identifying representative entities in clusters for it management
JP2024000105A (ja) * 2022-06-20 2024-01-05 株式会社日立製作所 計算機システム、及び冗長化要素構成方法
CN115801790B (zh) * 2023-01-05 2023-05-23 摩尔线程智能科技(北京)有限责任公司 数据处理装置集群的管理系统和控制方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220045901A1 (en) * 2020-08-07 2022-02-10 Arris Enterprises Llc Electronic device, method for electronic device, computer readable medium, and apparatus

Also Published As

Publication number Publication date
US20210089379A1 (en) 2021-03-25

Similar Documents

Publication Publication Date Title
US11563809B2 (en) Live migration of clusters in containerized environments
JP2021051532A (ja) 計算機システム
JP5142678B2 (ja) デプロイ方法およびシステム
US7992032B2 (en) Cluster system and failover method for cluster system
US8627028B2 (en) Method of constructing replication environment and storage system
US9817721B1 (en) High availability management techniques for cluster resources
CN110196729B (zh) 应用程序更新方法、设备和装置及存储介质
US11249788B2 (en) Cloud management platform, and virtual machine management method and system
CN110874261B (zh) 可用性系统、方法和存储有程序的存储介质
US8745342B2 (en) Computer system for controlling backups using wide area network
JP5476481B2 (ja) ノード故障の対処
US20090248847A1 (en) Storage system and volume managing method for storage system
JP3490002B2 (ja) マルチクラスタシステムを構成する計算機
JP6961045B2 (ja) システム及びその制御方法並びにプログラム
US11734133B2 (en) Cluster system and fail-over control method of cluster system
WO2022121387A1 (zh) 数据存储方法、装置、服务器及介质
US20170308684A1 (en) System and method for information processing
JP2019045936A (ja) 情報処理装置、情報処理システム及びプログラム
US11853782B2 (en) Method and system for composing systems using resource sets
JP7193602B2 (ja) システム及びその制御方法並びにプログラム
US20240070035A1 (en) Information processing system and backup method
JP2021144567A (ja) 制御装置、制御システムおよびデータ復旧方法
CN115878269A (zh) 集群迁移方法、相关装置及存储介质
CN117938805A (zh) 一种访问请求的处理方法和装置
JP2018081346A (ja) ストレージ装置、ストレージシステム、ストレージ制御方法、および、ストレージ制御プログラム