JP6984437B2 - 処理の引継ぎ方法、クラスタ構築プログラム及びクラスタ構築装置 - Google Patents

処理の引継ぎ方法、クラスタ構築プログラム及びクラスタ構築装置 Download PDF

Info

Publication number
JP6984437B2
JP6984437B2 JP2018010095A JP2018010095A JP6984437B2 JP 6984437 B2 JP6984437 B2 JP 6984437B2 JP 2018010095 A JP2018010095 A JP 2018010095A JP 2018010095 A JP2018010095 A JP 2018010095A JP 6984437 B2 JP6984437 B2 JP 6984437B2
Authority
JP
Japan
Prior art keywords
node
priority
nodes
cluster
group
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
JP2018010095A
Other languages
English (en)
Other versions
JP2019128803A (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 JP2018010095A priority Critical patent/JP6984437B2/ja
Priority to US16/242,595 priority patent/US10897390B2/en
Publication of JP2019128803A publication Critical patent/JP2019128803A/ja
Application granted granted Critical
Publication of JP6984437B2 publication Critical patent/JP6984437B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0659Management of faults, events, alarms or notifications using network fault recovery by isolating or reconfiguring faulty entities
    • H04L41/0661Management of faults, events, alarms or notifications using network fault recovery by isolating or reconfiguring faulty entities by reconfiguring faulty entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0668Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1059Inter-group management mechanisms, e.g. splitting, merging or interconnection of groups
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Hardware Redundancy (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、処理の引継ぎ方法、クラスタ構築プログラム及びクラスタ構築装置に関する。
運用ノードと複数の待機ノードを有するクラスタシステムにおいて、運用ノードに障害が発生すると、いずれかの待機ノードが運用ノードとなって、運用ノードの処理を引継ぐ。ここで、ノードは、例えばデータベースを管理する情報処理装置である。運用ノードは、データベースの更新を行う情報処理装置であり、待機ノードは、データベースの複製を有し、運用ノードからデータベースの更新差分を受け取って自身のデータベースを更新する情報処理装置である。
待機ノードが複数あるマルチスタンバイのシステムでは、スプリットブレインの発生を回避することが必要である。ここで、スプリットブレインとは、ハードウェアやインターコネクトの障害によりクラスタシステムが分断され、複数の待機ノード群で運用ノードの処理を引継ごうとすることである。
図9は、マルチスタンバイにおけるスプリットブレイン回避を説明するための図である。図9において、「運」で示されるノード92は運用ノードであり、「待」で示されるノード92は待機ノードである。運用ノードで障害が発生した場合、待機ノード間でどの待機ノードを運用ノードとするかを合意できれば、スプリットブレインを回避することができる。
しかしながら、待機ノード間の通信に異常があると、待機ノード間の合意が中断し、フェイルオーバ停止が発生する。あるいは、相手ノードのフェンシングにより相撃ちが発生すると、両系停止が発生する。ここで、フェンシングとは、クラスタシステムからノード92を取り除くことである。
このようなフェイルオーバ停止あるいは両系停止の発生を避けるために、どの待機ノードを運用ノードとするかを決定する第3者ノードを設ける技術がある。しかしながら、第3者ノードを設けると、第3者ノードが単一障害点となり、待機ノード数に比例した可用性が実現することができない。
そこで、クォーラムを採用することが考えられる。クォーラムでは、クラスタシステムを構成するノード92の過半数以上の通信可能なノード群がクラスタシステムを継承することでスプリットブレインが回避される。
なお、スプリットブレインに関する技術として、ネットワークベースの分散コンピューティング環境で発生するスプリットブレイン状況においてメジャーグループを決定する技術がある。この技術は、第1グループのノード数と第2グループのノード数とを比較し、第1グループのノード及び第2グループのノードの履歴情報を取得する。そして、この技術は、ノード数の比較結果及び履歴情報の少なくともいずれかを用いて、第1グループ又は第2グループをメジャーグループと決定する。
また、ネットワークスプリットが発生した場合に、グループの処理内容から、クラスタとして構築するのに最適なグループを選択する技術がある。この技術では、複数のノードのうちのいずれか所定のノードが、所定の条件を保持し、所定の条件に対応する自ノードの情報を生成し、監視パスでの通信を可能とする他ノードから、所定の条件に対応する他ノードの情報を収集する。さらに当該所定のノードは、自ノードの情報又は他ノードの情報がある場合、他ノードの情報及び自ノードの情報に基づいて、少なくとも自ノードを含む監視パスで通信可能なノードで構成される自グループの優先度を生成する。そして、当該所定のノードは、自グループの優先度と、自ノードが監視パスでの通信を不可能とするノードから構成される他グループの優先度とに基づいて、クラスタとして再構築するグループを決定する。
また、クォーラムに関する技術として、2ノード分散型コンピュータ・システムにおいて障害を発生したノードが共有資源の予約を放棄することを必要としないクォーラム機構がある。このクォーラム機構では、障害を発生した分散型コンピュータ・システムの各ノードは、クォーラム・コントローラとして指定された2つの共有記憶装置の予約を成功させることによるクォーラムを達成する競争を行う。分散型コンピュータ・システムの正常動作の間、クォーラム・コントローラの各々は、各ノードに関連付けられ、これによって予約されている。分散型コンピュータ・システムの障害検出に応答したクォーラムのための競争の間、障害を発生していない各ノードは、他のノードに関連するクォーラム・コントローラを強制的に予約する。1つのノードが双方のクォーラム・コントローラに対する予約を保持した場合、このノードはクォーラムを獲得したことになる。
特開2010−186472号公報 国際公開第2011/135628号 特開平10−116259号公報
クォーラムでは、構成ノードの過半数以上の通信可能なクラスタノード群がクラスタシステムを継承する権利を有するため、ノード数が過半数未満になるとクォーラムが不成立となり、クラスタ機能が停止するという問題がある。
本発明は、1つの側面では、ノード数が過半数未満になった場合にもクラスタ機能の停止を防ぐことを目的とする。
1つの態様では、処理の引き継ぎ方法は、複数のノードグループを備える処理システムにおける処理を引き継ぐ方法である。前記引継ぎ方法は、前記複数のノードグループの各ノードグループは、他のノードグループとの間の通信障害を検出すると、自ノードグループに含まれるノードの総数に応じた優先度で引継ぎ処理を開始する。処理システムに含まれるノードの総数の半数を超えるノードを含むノードグループの優先度は、他のノードグループの優先度より高い。また、処理システムに含まれるノードの総数の半数を超えないノードを含み、かつ、運用ノードを含むノードグループの優先度は、処理システムに含まれるノードの総数の半数を超えないノードを含み、かつ、運用ノードを含まないノードグループの優先度より高く、前記処理システムに含まれるノードの総数の半数を超えないノードを含み、かつ、運用ノードを含まないノードグループの優先度は、性能に応じて運用ノードよりも低いノード優先度が割り当てられた各ノードのうち、最も高いノード優先度とする
1つの側面では、本発明は、ノード数が過半数未満になった場合にもクラスタ機能の停止を防ぐことができる。
図1は、クラスタグループの優先度を説明するための図である。 図2は、実施例に係るクラスタシステムの構成を示す図である。 図3は、クラスタグループの優先度及びハンデを示す図である。 図4は、ハンデの一例を示す図である。 図5は、引継ぎ部による処理のフローを示すフローチャートである。 図6Aは、ハンデを決定する処理において待機ノードが行う処理のフローを示すフローチャートである。 図6Bは、ハンデを決定する処理において運用ノードが行う処理のフローを示すフローチャートである。 図7は、実施例に係るクラスタシステムの効果を説明するための図である。 図8は、実施例に係るクラスタ構築プログラムを実行するコンピュータのハードウェア構成を示す図である。 図9は、マルチスタンバイにおけるスプリットブレイン回避を説明するための図である。
以下に、本願の開示する処理の引継ぎ方法、クラスタ構築プログラム及びクラスタ構築装置の実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
まず、クラスタグループの優先度について説明する。ここで、クラスタグループとは、クラスタシステムに含まれるノードのグループである。クラスタシステムは、異常が検出されると、複数のクラスタグループに分けられる。各クラスタグループには1つ以上のノードが属する。クラスタグループ内ではノード間の通信が可能であるが、異なるクラスタグループ間では通信は可能でない。クラスタシステムの初期状態では、クラスタシステムに含まれる全ノードが属するクラスタグループが1つある。
図1は、クラスタグループの優先度を説明するための図である。図1において、「運」で示されるノード2は運用ノードであり、「待」で示されるノード2は待機ノードである。各ノード2の上に付加された10s(秒)〜70sは、各ノード2のハンデを表す。ハンデは、各ノード2がフェンシングを開始するまでの秒数である。運用ノードのハンデは待機ノードのハンデよりも小さい。
図1(a)では、クラスタシステムを構成する5台のノード2が、2台(ノード#1及びノード#2)のクラスタグループ21と3台(ノード#3〜ノード#5)のクラスタグループ22に分けられる。クラスタグループ22は、構成ノード数が過半数のクラスタグループであり、第1優先(優先度が1)でクラスタシステムを引き継ぐ。クラスタシステムを引き継いだクラスタグループ22のハンデは0sと決定される。クラスタグループ22には運用ノードが含まれないので、待機ノードのうち最もハンデが少ないノード#3がリーダとなって、クラスタグループ21に属するノード2に対して0s後にフェンシングを開始する。
一方、クラスタグループ21は、過半数のクラスタグループではない。このため、クラスタグループ21のハンデは、2台のノード2のハンデの最小値10sと決定される。2台のノード2のうち最もハンデが少ないノード#1がリーダとなり、10s後にフェンシングを開始しようとするが、その前にクラスタグループ22のリーダにフェンシングされる。
図1(b)では、クラスタシステムを構成する7台のノード2が、2台(ノード#11及びノード#12)のクラスタグループ23と3台(ノード#13〜ノード#15)のクラスタグループ24と残りの2台のノード2に分けられる。構成ノード数が過半数のクラスタグループはなく、運用ノードを含むクラスタグループ23が第2優先でクラスタシステムを引き継ぐ。クラスタシステムを引き継いだクラスタグループ23のハンデは、クラスタグループ23における最小値10sと決定される。クラスタグループ23には運用ノードが含まれるで、運用ノードがリーダとなって、クラスタグループ24に属するノード2及び残りの2台のノード2に対して10s後にフェンシングを開始する。
一方、クラスタグループ24は、過半数のクラスタグループでなく運用ノードを含まない。このため、クラスタグループ24のハンデは、3台のノード2のハンデの最小値20sと決定される。3台のノード2のうち最もハンデが少ないノード#13がリーダとなり、20s後にフェンシングを開始しようとするが、その前にクラスタグループ23のリーダにフェンシングされる。
図1(c)では、クラスタシステムを構成する7台のノード2が、3台(ノード#21〜ノード#23)のクラスタグループ25と2台(ノード#24及びノード#25)のクラスタグループ26と残りの2台のノード2に分けられる。構成ノード数が過半数のクラスタグループはなく、運用ノードを含むクラスタグループもない。このため、ハンデが最小のノード#21を含むクラスタグループ25が第3優先でクラスタシステムを引き継ぐ。クラスタシステムを引き継いだクラスタグループ25のハンデは、クラスタグループ25における最小値20sと決定される。クラスタグループ25においてハンデが最小のノード#21がリーダとなって、クラスタグループ26に属するノード2及び残りの2台のノード2に対して20s後にフェンシングを開始する。
一方、クラスタグループ26は、過半数のクラスタグループでなく運用ノードを含まない。このため、クラスタグループ26のハンデは、2台のノード2のハンデの最小値30sと決定される。2台のノード2のうち最もハンデが少ないノード#24がリーダとなり、30s後にフェンシングを開始しようとするが、その前にクラスタグループ25のリーダにフェンシングされる。
このように、各クラスタグループが、構成ノード数が過半数であるか否か、及び、運用ノードを含むか否かに基づいてクラスタグループの優先度を特定し、特定した優先度に基づいてフェンシングを行う、あるいは行おうとする。したがって、クラスタシステムは、異常が発生して過半数のノード2を含むクラスタグループがない場合にも、クラスタ機能の停止を防ぐことができる。なお、クラスタグループの構成ノード数が、過半数ではないが半数である場合、あるいは、1である場合については後述する。
次に、実施例に係るクラスタシステムの構成について説明する。図2は、実施例に係るクラスタシステムの構成を示す図である。図2に示すように、実施例に係るクラスタシステム1は、5台のノード2を有する。なお、クラスタシステム1は、3台以上であれば5台以外のノード2を有してよい。
5台のノード2のうち1台のノード2が運用ノードであり、他の4台のノード2は待機ノードである。運用ノードは、データベースの更新を行う情報処理装置であり、待機ノードは、データベースの複製を有し、運用ノードからデータベースの更新差分を受け取って自身のデータベースを更新する情報処理装置である。
各ノード2は、他のノード2とネットワークで接続される。ネットワークには、データベースに関する通信及びハートビートのための通信に用いられるネットワークと、フェンシングのための通信に用いられるネットワークがある。
各ノード2は、クラスタシステム1の構築に関する処理を行うクラスタ構築部3と、データベース4と、データベース4を管理するデータベース管理システム4aとを有する。クラスタ構築部3は、引継ぎ部3aとハンデ決定部3bとを有する。
引継ぎ部3aは、クラスタシステム1に異常が発生した場合に、クラスタ機能の停止を防ぐ処理を行う。具体的には、引継ぎ部3aは、クラスタシステム1に異常が発生した場合に、他のノード2の引継ぎ部3aとの間でハンデの交換を行う。そして、引継ぎ部3aは、ハンデの交換が行えたノード2の数を自ノードが属するクラスタグループのノード数として特定する。また、引継ぎ部3aは、自ノードが属するクラスタグループに運用ノードが含まれるか否かを特定する。
そして、引継ぎ部3aは、自ノードが属するクラスタグループのノード数と自ノードが属するクラスタグループに運用ノードが含まれるか否かに基づいて、自ノードが属するクラスタグループの優先度を特定する。そして、引継ぎ部3aは、特定した優先度に基づいて、自ノードが属するクラスタグループのハンデとリーダを特定する。
図3は、クラスタグループの優先度及びハンデを示す図である。図3に示すように、クラスタグループの構成ノード数が過半数、又は運用ノードが存在する半数である場合には、優先度は1であり、ハンデはなし、すなわち0sである。また、クラスタグループの構成ノード数が運用ノードが存在する半数未満である場合には、優先度は2であり、ハンデはクラスタグループ内のノード2のハンデの最小値である。また、クラスタグループの構成ノード数が運用ノードが存在しない半数以下である場合には、優先度は3であり、ハンデはクラスタグループ内のノード2のハンデの最小値である。
そして、リーダとして特定されたノード2の引継ぎ部3aは、自ノードが属するクラスタグループのハンデに基づいてフェンシングを行うか、あるいは、フェンシングを行おうとする。そして、他のノード2によりフェンシングされなければ、リーダとして特定されたノード2の引継ぎ部3aは、自ノードを運用ノードとする。
ハンデ決定部3bは、自ノードのハンデを決定する。具体的には、自ノードが運用ノードである場合には、ハンデ決定部3bは、各待機ノードからデータベース4への書込性能を取得し、書込性能に基づいてハンデを決定して各待機ノードに送信する。書込性能が悪いほどハンデは大きくなる。
また、自ノードが待機ノードである場合には、ハンデ決定部3bは、データベース4の更新差分を蓄積する一時ファイルの書込性能を測定し、測定値の平均値を算出して運用ノードへ送信する。そして、ハンデ決定部3bは、運用ノードからハンデを受信して記憶する。
図4は、ハンデの一例を示す図である。図4では、待機ノード毎に書込性能とノード優先度とハンデが対応付けられる。例えば、待機ノードAについては、書込性能は54M/sec(54メガバイト/秒)であり、書込性能が3番目に速いのでノード優先度は3であり、ハンデは30sである。
次に、引継ぎ部3aによる処理のフローについて説明する。図5は、引継ぎ部3aによる処理のフローを示すフローチャートである。なお、ハートビートの応答が途絶えて異常が発生すると、図5に示す処理が起動される。
図5に示すように、引継ぎ部3aは、異常発生直前のクラスタグループ内の全ノード2に対して、ハンデを送信する(ステップS1)。また、引継ぎ部3aは、他のノード2からハンデを受信し(ステップS2)、自ノードが属するクラスタグループのノード数を特定する(ステップS3)。自ノードが属するクラスタグループのノード数は、ハンデを受信したノード2の数に1を加えた値である。
そして、引継ぎ部3aは、クラスタグループのノード数が1であるか否かを判定し(ステップS4)、1でない場合には、クラスタグループのノード数が過半数である又は運用ノードを含む半数であるか否かを判定する(ステップS5)。
そして、クラスタグループのノード数が過半数である又は運用ノードを含む半数である場合には、引継ぎ部3aは、クラスタグループの優先度を1と特定する(ステップS6)。そして、引継ぎ部3aは、クラスタグループのリーダを運用ノード、又は、運用ノードが含まれない場合にはハンデの最も小さい待機ノードとし、クラスタグループのハンデを0sとする(ステップS7)。そして、引継ぎ部3aは、ステップS14へ移動する。
一方、クラスタグループのノード数が過半数でもなく、かつ、運用ノードを含む半数でもない場合には、引継ぎ部3aは、クラスタグループ内に運用ノードが存在するか否かを判定する(ステップS8)。そして、クラスタグループ内に運用ノードが存在する場合には、引継ぎ部3aは、クラスタグループの優先度を2と特定する(ステップS9)。そして、引継ぎ部3aは、クラスタグループのリーダを運用ノードとし、クラスタグループのハンデをクラスタグループ内のノード2のハンデの最小値とする(ステップS10)。そして、引継ぎ部3aは、ステップS14へ移動する。
一方、クラスタグループ内に運用ノードが存在しない場合には、引継ぎ部3aは、運用ノードが存在せず、かつ、クラスタグループのノード数が過半数未満であると判定し(ステップS11)、クラスタグループの優先度を3と特定する(ステップS12)。そして、引継ぎ部3aは、リーダをクラスタグループ内でハンデが最小の待機ノードとし、クラスタグループのハンデをクラスタグループ内のノード2のハンデの最小値とする(ステップS13)。
そして、リーダの引継ぎ部3aが、フェンシング処理を実行し(ステップS14)、自ノードは運用ノードであるか否かを判定する(ステップS15)。そして、自ノードは運用ノードでない場合には、リーダの引継ぎ部3aは、自ノードを運用ノードへ昇格する(ステップS16)。そして、リーダの引継ぎ部3aは、縮退を完了する(ステップS17)。
また、ステップS4において、クラスタグループのノード数が1である場合には、引継ぎ部3aは、縮退不可と判定し(ステップS18)、処理を終了する。
このように、引継ぎ部3aは、クラスタグループのノード数と運用ノードの有無に基づいて優先度を特定するので、クラスタグループのノード数が過半数未満である場合にも、クラスタシステム1を縮退することができる。ここで、クラスタシステム1を縮退するとは、ノード数が減った状態でクラスタ機能を引き継ぐことである。
次に、ハンデを決定する処理のフローについて説明する。図6Aは、ハンデを決定する処理において待機ノードが行う処理のフローを示すフローチャートであり、図6Bは、ハンデを決定する処理において運用ノードが行う処理のフローを示すフローチャートである。
図6Aに示すように、待機ノードのハンデ決定部3bは、クラスタグループ内のノード2の更新差分を蓄積する一時ファイルへの書込性能を測定し(ステップS21)、一定間隔待機する(ステップS22)処理を定数回実行する。
そして、待機ノードのハンデ決定部3bは、測定した書込性能の平均値を性能値として算出し(ステップS23)、算出した性能値を運用ノードへ送信する(ステップS24)。そして、待機ノードのハンデ決定部3bは、運用ノードにより算出されたハンデを運用ノードから受信する(ステップS25)。
また、図6Bに示すように、運用ノードのハンデ決定部3bは、クラスタグループ内の全ての待機ノードの性能値を収集し(ステップS31)、性能値をハンデに変換する(ステップS32)。そして、運用ノードのハンデ決定部3bは、ハンデを待機ノードに返信する(ステップS33)。
このように、待機ノードのハンデ決定部3bと運用ノードのハンデ決定部3bが連携して各ノード2のハンデを決定するので、引継ぎ部3aは、各ノード2のハンデを用いてクラスタグループのハンデを特定することができる。
次に、実施例に係るクラスタシステム1の効果について説明する。図7は、実施例に係るクラスタシステム1の効果を説明するための図である。図7に示すように、クラスタグループに運用ノードが含まれる場合には、クラスタグループのノード数が過半数でないと、従来技術では縮退不可であるが、実施例に係るクラスタシステム1では第1優先又は第2優先のクラスタグループが特定され縮退が可能である。また、クラスタグループに運用ノードが含まれない場合には、クラスタグループのノード数が過半数でないと、従来技術では縮退不可であるが、実施例に係るクラスタシステム1では第3優先のクラスタグループが特定され縮退が可能である。
上述してきたように、実施例では、他のクラスタグループとの間で通信障害が発生すると、引継ぎ部3aは、自ノードが属するクラスタグループのノード数が半数を超える場合には、該クラスタグループを第1優先とする。また、引継ぎ部3aは、自ノードが属するクラスタグループのノード数が1ではないが半数を超えず、該クラスタグループが運用ノードを含む場合には、該クラスタグループを第2優先とする。また、引継ぎ部3aは、自ノードが属するクラスタグループのノード数が1ではないが半数を超えず、該クラスタグループが運用ノードを含まない場合には、該クラスタグループを第3優先とする。したがって、通信障害が発生してクラスタグループの構成ノード数が過半数未満になった場合にもクラスタ機能の停止を防ぐことができる。
また、実施例では、引継ぎ部3aは、第2優先及び第3優先のクラスタグループのハンデをクラスタグループに含まれるノード2のハンデの最小値とする。また、第2優先のクラスタグループには運用ノードが含まれるため、第2優先のクラスタグループのハンデは第3優先のクラスタグループのハンデより小さい。したがって、第2優先のクラスタグループは、第3優先のクラスタグループをフェンシングすることができる。
また、実施例では、ハンデ決定部3bは、更新差分を蓄積する一時ファイルへの書込性能を測定し、測定した書込性能の平均値に基づいて各ノード2のハンデを決定する。したがって、実施例に係るクラスタシステム1は、クラスタ機能の引継ぎの際に書込性能が高いノード2を運用ノードとすることができる。
また、実施例では、リーダの引継ぎ部3aがクラスタグループのハンデに基づいてフェンシング処理を実行するので、スプリットブレインを防ぐことができる。
なお、実施例では、クラスタ構築部3について説明したが、クラスタ構築部3をソフトウェアによって実現することで、同様の機能を有するクラスタ構築プログラムを得ることができる。そこで、クラスタ構築プログラムを実行するコンピュータについて説明する。
図8は、実施例に係るクラスタ構築プログラムを実行するコンピュータのハードウェア構成を示す図である。図8に示すように、コンピュータ50は、メインメモリ51と、CPU(Central Processing Unit)52と、LAN(Local Area Network)インタフェース53と、HDD(Hard Disk Drive)54とを有する。また、コンピュータ50は、スーパーIO(Input Output)55と、DVI(Digital Visual Interface)56と、ODD(Optical Disk Drive)57とを有する。
メインメモリ51は、プログラムやプログラムの実行途中結果などを記憶するメモリである。CPU52は、メインメモリ51からプログラムを読み出して実行する中央処理装置である。CPU52は、メモリコントローラを有するチップセットを含む。
LANインタフェース53は、コンピュータ50をLAN経由で他のコンピュータに接続するためのインタフェースである。HDD54は、プログラムやデータを格納するディスク装置であり、スーパーIO55は、マウスやキーボードなどの入力装置を接続するためのインタフェースである。DVI56は、液晶表示装置を接続するインタフェースであり、ODD57は、DVDの読み書きを行う装置である。
LANインタフェース53は、PCIエクスプレス(PCIe)によりCPU52に接続され、HDD54及びODD57は、SATA(Serial Advanced Technology Attachment)によりCPU52に接続される。スーパーIO55は、LPC(Low Pin Count)によりCPU52に接続される。
そして、コンピュータ50において実行されるクラスタ構築プログラムは、コンピュータ50により読み出し可能な記録媒体の一例であるDVDに記憶され、ODD57によってDVDから読み出されてコンピュータ50にインストールされる。あるいは、クラスタ構築プログラムは、LANインタフェース53を介して接続された他のコンピュータシステムのデータベースなどに記憶され、これらのデータベースから読み出されてコンピュータ50にインストールされる。そして、インストールされたクラスタ構築プログラムは、HDD54に記憶され、メインメモリ51に読み出されてCPU52によって実行される。
また、実施例では、ノード2がデータベース4を更新する情報処理装置である場合について説明したが、ノード2は他の情報処理を行う情報処理装置でもよい。また、実施例では、ハンデ決定部3bは、更新差分を蓄積する一時ファイルへの書込性能に基づいてノード2のハンデを決定するが、ノード2の他の性能に基づいてハンデを決定してもよい。
1 クラスタシステム
2 ノード
3 クラスタ構築部
3a 引継ぎ部
3b ハンデ決定部
4 データベース
4a データベース管理システム
21,22,23,24,25,26 クラスタグループ
50 コンピュータ
51 メインメモリ
52 CPU
53 LANインタフェース
54 HDD
55 スーパーIO
56 DVI
57 ODD

Claims (5)

  1. 複数のノードグループを備える処理システムにおける処理の引き継ぎ方法において、
    前記複数のノードグループの各ノードグループは、他のノードグループとの間の通信障害を検出すると、自ノードグループに含まれるノードの総数に応じた優先度で引継ぎ処理を開始し、
    前記処理システムに含まれるノードの総数の半数を超えるノードを含むノードグループの優先度は、他のノードグループの優先度より高く、前記処理システムに含まれるノードの総数の半数を超えないノードを含み、かつ、運用ノードを含むノードグループの優先度は、前記処理システムに含まれるノードの総数の半数を超えないノードを含み、かつ、運用ノードを含まないノードグループの優先度よりも高く、前記処理システムに含まれるノードの総数の半数を超えないノードを含み、かつ、運用ノードを含まないノードグループの優先度は、性能に応じて運用ノードよりも低いノード優先度が割り当てられた各ノードのうち、最も高いノード優先度とする
    ことを特徴とする処理の引継ぎ方法。
  2. 前記運用ノードはデータベースを更新し、
    前記ノードのうち前記運用ノード以外の待機ノードは、前記データベースの複製を有し、前記運用ノードからデータベースの更新差分を受信して自データベースを更新し、
    前記ノード優先度は、前記更新差分を一時的に蓄積するファイルへの書込性能に基づくことを特徴とする請求項1に記載の処理の引継ぎ方法。
  3. 前記引継ぎ処理は、前記優先度に基づく時間が経過すると他のノードグループに含まれるノードにフェンシングを行う処理を含むことを特徴とする請求項1又は2に記載の処理の引継ぎ方法。
  4. 複数のノードグループを備える処理システムにおける処理の引き継ぎを行うクラスタ構築プログラムにおいて、
    前記複数のノードグループの各ノードグループは、他のノードグループとの間の通信障害を検出すると、自ノードグループに含まれるノードの総数に応じた優先度で引継ぎ処理を開始する処理をコンピュータに実行させ、
    前記処理システムに含まれるノードの総数の半数を超えるノードを含むノードグループの優先度は、他のノードグループの優先度より高く、前記処理システムに含まれるノードの総数の半数を超えないノードを含み、かつ、運用ノードを含むノードグループの優先度は、前記処理システムに含まれるノードの総数の半数を超えないノードを含み、かつ、運用ノードを含まないノードグループの優先度よりも高く、前記処理システムに含まれるノードの総数の半数を超えないノードを含み、かつ、運用ノードを含まないノードグループの優先度は、性能に応じて運用ノードよりも低いノード優先度が割り当てられた各ノードのうち、最も高いノード優先度とする
    ことを特徴とするクラスタ構築プログラム。
  5. 複数のノードグループを備える処理システムにおける処理の引き継ぎを行うクラスタ構築装置において、
    前記複数のノードグループの各ノードグループは、他のノードグループとの間の通信障害を検出すると、自ノードグループに含まれるノードの総数に応じた優先度で引継ぎ処理を開始する引継ぎ部を有し、
    前記処理システムに含まれるノードの総数の半数を超えるノードを含むノードグループの優先度は、他のノードグループの優先度より高く、前記処理システムに含まれるノードの総数の半数を超えないノードを含み、かつ、運用ノードを含むノードグループの優先度は、前記処理システムに含まれるノードの総数の半数を超えないノードを含み、かつ、運用ノードを含まないノードグループの優先度よりも高く、前記処理システムに含まれるノードの総数の半数を超えないノードを含み、かつ、運用ノードを含まないノードグループの優先度は、性能に応じて運用ノードよりも低いノード優先度が割り当てられた各ノードのうち、最も高いノード優先度とする
    ことを特徴とするクラスタ構築装置。
JP2018010095A 2018-01-24 2018-01-24 処理の引継ぎ方法、クラスタ構築プログラム及びクラスタ構築装置 Active JP6984437B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018010095A JP6984437B2 (ja) 2018-01-24 2018-01-24 処理の引継ぎ方法、クラスタ構築プログラム及びクラスタ構築装置
US16/242,595 US10897390B2 (en) 2018-01-24 2019-01-08 Takeover method of process, cluster construction program and cluster construction apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018010095A JP6984437B2 (ja) 2018-01-24 2018-01-24 処理の引継ぎ方法、クラスタ構築プログラム及びクラスタ構築装置

Publications (2)

Publication Number Publication Date
JP2019128803A JP2019128803A (ja) 2019-08-01
JP6984437B2 true JP6984437B2 (ja) 2021-12-22

Family

ID=67299473

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018010095A Active JP6984437B2 (ja) 2018-01-24 2018-01-24 処理の引継ぎ方法、クラスタ構築プログラム及びクラスタ構築装置

Country Status (2)

Country Link
US (1) US10897390B2 (ja)
JP (1) JP6984437B2 (ja)

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5828889A (en) 1996-05-31 1998-10-27 Sun Microsystems, Inc. Quorum mechanism in a two-node distributed computer system
US7254736B2 (en) * 2002-12-18 2007-08-07 Veritas Operating Corporation Systems and method providing input/output fencing in shared storage environments
US20080209136A1 (en) * 2007-02-28 2008-08-28 Yanling Qi System and method of storage system assisted i/o fencing for shared storage configuration
US8301593B2 (en) * 2008-06-12 2012-10-30 Gravic, Inc. Mixed mode synchronous and asynchronous replication system
KR101042908B1 (ko) * 2009-02-12 2011-06-21 엔에이치엔(주) 네트워크 분리 장애 상황에서 메이저 그룹을 결정하기 위한방법, 시스템, 및 컴퓨터 판독 가능한 기록 매체
JP5012850B2 (ja) * 2009-05-21 2012-08-29 株式会社日立製作所 クラスタ構成コンピュータシステムの排他制御方法
JP5387761B2 (ja) 2010-04-28 2014-01-15 株式会社日立製作所 クラスタ再構築方法、クラスタ再構築装置及びクラスタ再構築プログラム
US9672115B2 (en) * 2013-08-26 2017-06-06 Vmware, Inc. Partition tolerance in cluster membership management
US9852034B2 (en) * 2014-03-24 2017-12-26 International Business Machines Corporation Efficient high availability for a SCSI target over a fibre channel
GB201417149D0 (en) * 2014-09-29 2014-11-12 Metaswitch Networks Ltd Method of operating a network node, network node, system and computer-readable medium

Also Published As

Publication number Publication date
US20190229979A1 (en) 2019-07-25
JP2019128803A (ja) 2019-08-01
US10897390B2 (en) 2021-01-19

Similar Documents

Publication Publication Date Title
JP4505763B2 (ja) ノードクラスタの管理
JP4620455B2 (ja) サーバ連結環境のための業務継続ポリシー
JP6089884B2 (ja) 情報処理システム,情報処理装置,情報処理装置の制御プログラム,及び情報処理システムの制御方法
US10642507B2 (en) Pulsed leader consensus management
JP5851503B2 (ja) 高可用性仮想機械環境におけるアプリケーションの高可用性の提供
JP7106953B2 (ja) サーバ切り替えプログラム、サーバ切り替え方法、及びサーバ切り替えシステム
US11169854B2 (en) Node eligibility determinations
EP3767470B1 (en) Central processing unit cpu hot-remove method and apparatus, and central processing unit cpu hot-add method and apparatus
EP3956771B1 (en) Timeout mode for storage devices
US10630566B1 (en) Tightly-coupled external cluster monitoring
US10367676B1 (en) Stable leader selection for distributed services
JP5942509B2 (ja) バッチ処理システム
WO2021004256A1 (zh) 一种节点故障时进行节点切换的方法及相关设备
WO2017215430A1 (zh) 一种集群内的节点管理方法及节点设备
US20230016199A1 (en) Root cause detection of anomalous behavior using network relationships and event correlation
JP5998577B2 (ja) クラスタ監視装置、クラスタ監視方法、及びプログラム
JPWO2014147802A1 (ja) 情報処理装置、資源割当方法、及びプログラム
US20190332282A1 (en) Storage system and cluster configuration control method
JP4796086B2 (ja) クラスタシステム及び同システムにおいてマスタノードを選択する方法
US20110252272A1 (en) Fallover policy management in high availability systems
JP6984437B2 (ja) 処理の引継ぎ方法、クラスタ構築プログラム及びクラスタ構築装置
CN109587218B (zh) 一种集群选举的方法和装置
US10268375B2 (en) Methods for proactive prediction of disk failure in the disk maintenance pipeline and devices thereof
CN111090491B (zh) 虚拟机任务状态的恢复方法、装置及电子设备
US9852221B1 (en) Distributed state manager jury selection

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201008

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210818

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210824

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211022

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211108

R150 Certificate of patent or registration of utility model

Ref document number: 6984437

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150