JP6919461B2 - ノード装置及びフェイルオーバ制御方法 - Google Patents

ノード装置及びフェイルオーバ制御方法 Download PDF

Info

Publication number
JP6919461B2
JP6919461B2 JP2017185741A JP2017185741A JP6919461B2 JP 6919461 B2 JP6919461 B2 JP 6919461B2 JP 2017185741 A JP2017185741 A JP 2017185741A JP 2017185741 A JP2017185741 A JP 2017185741A JP 6919461 B2 JP6919461 B2 JP 6919461B2
Authority
JP
Japan
Prior art keywords
node device
virtual machine
control unit
report
failover
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
JP2017185741A
Other languages
English (en)
Other versions
JP2019061507A (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2017185741A priority Critical patent/JP6919461B2/ja
Publication of JP2019061507A publication Critical patent/JP2019061507A/ja
Application granted granted Critical
Publication of JP6919461B2 publication Critical patent/JP6919461B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、ノード装置及びフェイルオーバ制御方法に関する。
従来、継続的にサービスを提供するために、複数のノード装置(例えば、複数のコンピュータ)による連携構成を有するクラスタシステム(例えば、HA(High Availability)クラスタシステム)が提案されている(例えば、特許文献1−3)。特許文献1−3に開示されているクラスタシステムでは、第1ノード装置に異常を検出した場合、第1ノード以外の第2ノード装置に第1ノード装置の処理を引き継がせるために、フェイルオーバが実行される。
特開2017−084333号公報 特開2009−080704号公報 特開2008−052407号公報
本発明者は、仮想マシン上のOS(オペレーティングシステム)の「無応答状態(フリーズ状態)」は、物理マシンのCPU(Central Processing Unit)やメモリが一時的に占有されることによって発生することがあることに着目した。この仮想マシンの無応答状態は、物理マシン側で占有していたCPUやメモリが解放されることで解消されるため、永続的なものではなく一時的なものである。
そして、本発明者は、クラスタソフトが仮想マシン上のOSで動作している場合、第1ノード装置の仮想マシン上のOSの一時的なフリーズ状態を、第2ノード装置の仮想マシンで動作しているクラスタソフトがOSの停止として検出してしまい、第1ノード装置の仮想マシンの業務を第2ノード装置の仮想マシンへ移動させるフェイルオーバが発生してしまうことを見出した。そして、本発明者は、フェイルオーバ発生後、第2ノード装置の仮想マシンのフリーズ状態が解消された場合、第1ノード装置の仮想マシン及び第2ノード装置の仮想マシンの両方で同一業務が動作している状態(スプリットブレイン(Split-Brain)状態)となり、業務データの一貫性が崩れてしまう可能性があることを見出した。
本発明の目的は、クラスタシステムにおけるスプリットブレイン状態を防止することができる、ノード装置及びフェイルオーバ制御方法を提供することにある。
本発明の第1の態様にかかるノード装置は、複数のノード装置による連携構成を有するクラスタシステムにおけるノード装置であって、自ノード装置の物理マシンに設けられて、前記自ノード装置の仮想マシンを制御する仮想マシン制御部と、前記自ノード装置の物理マシンに設けられて、他ノード装置から送信され且つ前記自ノード装置の稼働状態に関する報告を要求する報告要求信号に応じて、前記自ノード装置の仮想マシンの稼働状態情報を前記仮想マシン制御部から取得すると共に、前記取得した自ノード装置の仮想マシンの稼働状態情報を含めた報告を前記他ノード装置へ送信する、仮想マシン監視部と、前記自ノード装置の仮想マシンに設けられて、前記他ノード装置から所定周期で送信されるハートビート信号を所定期間において受信しない場合、前記他ノード装置の物理マシンに設けられた仮想マシン監視部に対して前記他ノード装置の稼働状態に関する報告を要求する報告要求信号を送信することにより、前記他ノード装置の仮想マシンの稼働状態情報を含む報告を取得する報告取得制御部と、前記自ノード装置の仮想マシンに設けられて、前記報告取得制御部によって取得された報告に含まれる稼働状態情報と前記他ノード装置の仮想マシンにおける無応答状態が一時的か否かについての判定基準とに基づいて、フェイルオーバを実行するか否かを判定する、フェイルオーバ実行判定処理を実行する、フェイルオーバ制御部と、を具備する。
本発明の第2の態様にかかるフェイルオーバ制御方法は、第1ノード装置及び第2ノード装置による連携構成を有するクラスタシステムにおける前記第1ノード装置によって実行されるフェイルオーバ制御方法であって、前記第1ノード装置は、前記第1ノード装置の物理マシンに設けられた、仮想マシン制御部及び仮想マシン監視部と、前記第1ノード装置の仮想マシンに設けられた、報告取得制御部及びフェイルオーバ制御部とを有し、前記フェイルオーバ制御方法は、前記仮想マシン制御部が、前記第1ノード装置の仮想マシンを制御し、前記仮想マシン監視部が、前記第2ノード装置から送信され且つ前記第1ノード装置の稼働状態に関する報告を要求する報告要求信号に応じて、前記第1ノード装置の仮想マシンの稼働状態情報を前記仮想マシン制御部から取得すると共に、前記取得した第1ノード装置の仮想マシンの稼働状態情報を含めた報告を前記第2ノード装置へ送信し、前記報告取得制御部が、前記第2ノード装置から所定周期で送信されるハートビート信号を所定期間において受信しない場合、前記第2ノード装置の物理マシンに設けられた仮想マシン監視部に対して前記第2ノード装置の稼働状態に関する報告を要求する報告要求信号を送信することにより、前記第2ノード装置の仮想マシンの稼働状態情報を含む報告を取得し、前記フェイルオーバ制御部が、前記報告取得制御部によって取得された報告に含まれる稼働状態情報と前記第2ノード装置の仮想マシンにおける無応答状態が一時的か否かについての判定基準とに基づいて、フェイルオーバを実行するか否かをさらに判定するフェイルオーバ実行判定処理を実行する。
本発明により、クラスタシステムにおけるスプリットブレイン状態を防止することができる、ノード装置及びフェイルオーバ制御方法を提供することができる。
第1実施形態のクラスタシステムの一例を示す図である。 第1実施形態のノード装置の構成の一例を示す図である。 第2実施形態のノード装置の構成の一例を示す図である。 第2実施形態のノード装置のハートビート送信処理の一例を示すフローチャートである。 第2実施形態のノード装置の異常検出処理の一例を示すフローチャートである。 第2実施形態のノード装置の処理動作の一例を示すシーケンス図である。 第2実施形態のノード装置のフェイルオーバ実行判定処理の一例を示すフローチャートである。
以下、図面を参照しつつ、実施形態について説明する。なお、実施形態において、同一又は同等の要素には、同一の符号を付し、重複する説明は省略される。
<第1実施形態>
<クラスタシステムの概要>
図1は、第1実施形態のクラスタシステムの一例を示す図である。図1において、クラスタシステム1は、通信ネットワークN1を介して互いに接続されている、複数のノード装置10を有している。ここでは、クラスタシステム1はノード装置10−1,10−2の2つを有しているが、クラスタシステム1に含まれるノード装置10の数は、2つに限定されるものではない。ノード装置10−1,10−2は、互いに同じ構成を有している。以下では、ノード装置10−1,10−2を総称して、ノード装置10と呼ぶことがある。
そして、ノード装置10−1,10−2は、継続的にサービスを提供するために、連携している。すなわち、例えばノード装置10−2の異常をノード装置10−1が検出した場合、ノード装置10−1は、「所定の条件」が満たされたときに、ノード装置10−2の処理を引き継ぐフェイルオーバを実行する。
<ノード装置の構成例>
図2は、第1実施形態のノード装置の構成の一例を示す図である。図2において、ノード装置(物理マシン)10は、仮想マシン11と、仮想マシン制御部12と、仮想マシン監視部13とを有している。仮想マシン11、仮想マシン制御部(仮想化ソフト)12、及び仮想マシン監視部(仮想マシン監視ソフト)13は、物理マシンのOS上で処理動作を実行する。すなわち、仮想マシン11、仮想マシン制御部12、及び仮想マシン監視部13は、物理マシン上に設けられている。なお、図2においてノード装置10−1の構成要素には、枝番が1である符号が付され、ノード装置10−2の構成要素には、枝番が2である符号が付されている。すなわち、仮想マシン11−1は、ノード装置10−1の構成要素であり、仮想マシン11−2は、ノード装置10−2の構成要素である。
仮想マシン制御部12は、仮想マシン11を制御する共に、仮想マシン11の稼働状態に関する情報(厳密には、仮想マシン11のOSの稼働状態に関する情報)を保持する。この仮想マシン11の稼働状態に関する情報は、例えば、仮想マシン11(厳密には、仮想マシン11のOS)が起動状態にあるか又は停止状態にあるかを示す情報、及び、仮想マシン11が起動してから現在までの経過時間に関する情報が含まれる。以下では、「仮想マシン11の稼働状態に関する情報」を、「稼働状態情報」と呼ぶことがある。
仮想マシン監視部13は、他ノード装置10から送信された「報告要求信号」に応じて、自ノード装置10の仮想マシンの稼働状態情報を仮想マシン制御部12から取得する。他ノード装置10から送信された「報告要求信号」は、自ノード装置10の稼働状態に関する報告を他ノード装置10が要求するための信号である。ここで、ノード装置10−1の機能部(例えば、仮想マシン監視部13)にとって、自ノード装置10はノード装置10−1を意味し、他ノード装置10はノード装置10−2を意味する。
そして、仮想マシン監視部13は、仮想マシン制御部12から取得した自ノード装置10の仮想マシンの稼働状態情報を含めた報告を他ノード装置10へ送信する。報告要求信号の伝送及び報告の伝送には、例えば、TCP(Transmission Control Protocol)が用いられる。
仮想マシン11は、HAクラスタ制御部11Aを有している。そして、HAクラスタ制御部11Aは、フェイルオーバ制御部11Bと、報告取得制御部11Cとを含んでいる。HAクラスタ制御部11Aは、仮想マシン11のOS上で処理動作を実行する。すなわち、フェイルオーバ制御部11B及び報告取得制御部11Cは、仮想マシン11上に設けられている。
報告取得制御部11Cは、他ノード装置10から所定周期で送信される「ハートビート信号」を「所定期間」において受信しない場合、他ノード装置10の物理マシンに設けられた仮想マシン監視部13に対して、他ノード装置10の稼働状態に関する報告を要求する報告要求信号を送信する。これにより、報告取得制御部11Cは、他ノード装置10の仮想マシン11の稼働状態情報を含む報告を取得することができる。ここで、「ハートビート信号」の伝送には、例えば、UDP(User Diagram Protocol)が用いられる。また、「ハートビート信号」を「所定期間」において受信しないこと(つまり、ハートビートタイムアウト)とは、例えば、前回のハートビート信号を受信したタイミングからハートビート信号の送信間隔以上の時間が経過しても今回のハートビート信号を受信しないことである。ノード装置10−1とノード装置10−2との間で、周期的にハートビート信号を送り合うことにより、互いのHAクラスタ制御部11Aが動作していることを確認している。従って、「ハートビート信号」を「所定期間」において受信しない場合、他ノード装置10の仮想マシン11における「無応答状態」が生じたことになる。
フェイルオーバ制御部11Bは、報告取得制御部11Cによって取得された報告に含まれる「稼働状態情報」と「他ノード装置10の仮想マシン11における無応答状態が一時的か否かについての判定基準」とに基づいて、フェイルオーバを実行するか否かを判定する、フェイルオーバ実行判定処理を実行する。
以上のように第1実施形態によれば、ノード装置10の物理マシンに仮想マシン制御部12及び仮想マシン監視部13を設けたことにより、仮想マシン11の稼働状態を確実に取得することができる。そして、ノード装置10は、他ノード装置10から取得した他ノード装置10の「稼働状態情報」と「他ノード装置の仮想マシン11における無応答状態が一時的か否かについての判定基準」とに基づいて、フェイルオーバを実行するか否かを判定するので、「スプリットブレイン状態」が生じてしまうことを防止することができる。
<第2実施形態>
第2実施形態は、より具体的な実施形態に関する。なお、第2実施形態のクラスタシステムの基本構成は、第1実施形態のクラスタシステム1と同じなので、図1を参照して説明する。
<ノード装置の構成例>
図3は、第2実施形態のノード装置の構成の一例を示す図である。第2実施形態のノード装置10においてHAクラスタ制御部11Aは、図3に示すように、フェイルオーバ制御部11Bと、報告取得制御部11Cと、ハートビート制御部11Dとを有している。
ハートビート制御部11Dは、ハートビート信号を周期的に他ノード装置10のハートビート制御部11Dに向けて送信する。また、ハートビート制御部11Dは、他ノード装置10から周期的に送信されるハートビート信号を受信する。そして、ハートビート制御部11Dは、他ノード装置10から所定周期で送信される「ハートビート信号」を「所定期間」において受信しない場合、報告取得制御部11Cへ「通知信号」を出力する。
報告取得制御部11Cは、ハートビート制御部11Dから「通知信号」を受け取ると、他ノード装置10の物理マシンに設けられた仮想マシン監視部13に対して、他ノード装置10の稼働状態に関する報告を要求する報告要求信号を送信する。これにより、報告取得制御部11Cは、他ノード装置10の仮想マシン11の稼働状態情報を含む報告を取得することができる。
フェイルオーバ制御部11Bは、報告取得制御部11Cによって取得された報告に含まれる「稼働状態情報」と「他ノード装置10の仮想マシン11における無応答状態が一時的か否かについての判定基準」とに基づいて、フェイルオーバを実行するか否かを判定する、フェイルオーバ実行判定処理を実行する。特に、フェイルオーバ制御部11Bは、他ノード装置10の仮想マシン11における無応答状態が一時的でない場合、フェイルオーバを実行すると判定する。
具体的には、上記判定基準は、他ノード装置10の仮想マシン11が停止状態であるときには他ノード装置10の仮想マシン11における無応答状態が一時的ではない、という基準を含んでいる。そして、フェイルオーバ制御部11Bは、報告取得制御部11Cによって取得された報告に含まれる稼働状態情報が他ノード装置10の仮想マシン11の停止状態を示す場合、フェイルオーバを実行すると判定する。
また、上記の判定基準は、他ノード装置10の仮想マシン11が起動状態にあり且つ他ノード装置10の仮想マシン11の稼働経過時間が「第1所定値」以下であるときには他ノード装置10の仮想マシン11における無応答状態が一時的ではない、という基準を含んでいる。そして、フェイルオーバ制御部11Bは、報告取得制御部11Cによって取得された報告に含まれる稼働状態情報が他ノード装置10の仮想マシン11の起動状態を示し且つ稼働経過時間が「第1所定値」以下である場合、フェイルオーバを実行すると判定する。ここで、「他ノード装置10の仮想マシン11の稼働経過時間」は、上記の他ノード装置10の稼働状態情報に含まれている。
また、フェイルオーバ制御部11Bは、上記のフェイルオーバ実行判定処理においてフェイルオーバを実行しないと判定される度に、報告取得制御部11Cに対して報告要求信号を送信させると共に、報告要求信号を送信させた回数(つまり、リトライ回数)をカウント(インクリメント)する。
また、フェイルオーバ制御部11Bは、報告取得制御部11Cによって取得された報告に含まれる稼働状態情報が他ノード装置10の仮想マシン11の起動状態を示し且つ稼働経過時間が「第1所定値」よりも大きい場合、上記のカウント回数と「第2所定値」との大小を判定する。そして、フェイルオーバ制御部11Bは、カウント回数が「第2所定値」より大きい場合、他ノード装置10の仮想マシン11における無応答状態が一時的ではないと判定して、フェイルオーバを実行すると判定する共に、他ノード装置10の仮想マシン11を停止する停止要求信号を他ノード装置10へ送信する。一方、フェイルオーバ制御部11Bは、カウント回数が「第2所定値」以下である場合、フェイルオーバをこのタイミングでは実行しないと判定して、報告取得制御部11Cに対して報告要求信号を送信させる。
<ノード装置の動作例>
以上の構成を有するノード装置10の処理動作の一例について説明する。図4から図7は、第2実施形態のノード装置の処理動作の一例を示す図である。
〈ハートビート送信処理〉
図4は、第2実施形態のノード装置のハートビート送信処理の一例を示すフローチャートである。
ハートビート制御部11Dは、他ノード装置10に向けてハートビート信号を送信すると共に、ハートビート制御部11Dが有している送信タイマ(図示せず)をスタートさせる(ステップS101)。
ハートビート制御部11Dは、ハートビート信号の送信タイミングからの経過時間がハートビート送信間隔値に到達するまで待つ(ステップS102NO)。
そして、経過時間がハートビート送信間隔値に到達すると(ステップS102YES)、処理ステップは、ステップS101に戻る。すなわち、ハートビート制御部11Dは、他ノード装置10に向けてハートビート信号を送信すると共に、ハートビート制御部11Dが有している送信タイマ(図示せず)をリセットする。
以上のようにして、ハートビート制御部11Dは、ハートビート信号を所定周期で送信する。
〈他ノード装置の異常検出処理〉
図5は、第2実施形態のノード装置の異常検出処理の一例を示すフローチャートである。この異常検出処理は、上記のハートビート送信処理と並行して実行される。
ハートビート制御部11Dは、他ノード装置10からのハートビート信号を受信するまで待つ(ステップS201NO)。
他ノード装置10からのハートビート信号を受信すると(ステップS201YES)、ハートビート制御部11Dは、ハートビート制御部11Dが有している受信タイマ(図示せず)をスタートさせる(ステップS202)。
次いで、ハートビート制御部11Dは、受信タイミングからの経過時間がハートビート送信間隔値よりも所定値以上超えたか否かを判定する(ステップS203)。なお、所定値は、ゼロ又は正の値である。
経過時間がハートビート送信間隔値よりも所定値以上超えていない場合(ステップS203NO)、ハートビート制御部11Dは、他ノード装置10からのハートビート信号を受信したか否かを判定する(ステップS204)。
他ノード装置10からのハートビート信号を受信していない場合(ステップS204NO)、処理ステップは、ステップS203に戻る。
他ノード装置10からのハートビート信号を受信した場合(ステップS204YES)、処理ステップは、ステップS202に戻る。
すなわち、ハートビート制御部11Dは、受信タイミングからの経過時間がハートビート送信間隔値よりも所定値以上超えるまで他ノード装置10からのハートビート信号の受信を待つ(ステップS203NO、ステップS204NO)。そして、ハートビート制御部11Dは、経過時間がハートビート送信間隔値よりも所定値以上超える前に他ノード装置10からのハートビート信号を受信すると(ステップS203NO、ステップS204YES)、受信タイマ(図示せず)をリセットする(ステップS202)。
経過時間がハートビート送信間隔値よりも所定値以上超える前に他ノード装置10からのハートビート信号を受信することなしに、経過時間がハートビート送信間隔値よりも所定値以上超えた場合(ステップS203YES)、ハートビート制御部11Dは、報告取得制御部11Cへ「通知信号」を出力する(ステップS205)。
〈報告要求処理及び報告取得処理〉
図6は、第2実施形態のノード装置の処理動作の一例を示すシーケンス図である。ここでは、ノード装置10−1のハートビート制御部11Dが、経過時間がハートビート送信間隔値よりも所定値以上超える前にノード装置10−2からのハートビート信号を受信することなしに、経過時間がハートビート送信間隔値よりも所定値以上超えたことを検出したものとする。
上記のステップS205のようにノード装置10−1のハートビート制御部11D−1は、報告取得制御部11C−1へ「通知信号」を出力する(ステップS301)。
ノード装置10−1の報告取得制御部11C−1は、ハートビート制御部11D−1から「通知信号」を受け取ると、ノード装置10−2の物理マシンに設けられた仮想マシン監視部13−2に対して、ノード装置10−2の稼働状態に関する報告を要求する報告要求信号を送信する(ステップS302)。
ノード装置10−2の仮想マシン監視部13−2は、ノード装置10−1からの報告要求信号を受け取ると、該報告要求信号を仮想マシン制御部12−2へ出力する(ステップS303)。
ノード装置10−2の仮想マシン制御部12−2は、報告要求信号を受け取ると、ノード装置10−2の仮想マシン11−2の稼働状態情報を仮想マシン監視部13−2へ出力する(ステップS304)。
ノード装置10−2の仮想マシン監視部13−2は、仮想マシン制御部12−2から取得したノード装置10−2の仮想マシン11−2の稼働状態情報を含めた報告をノード装置10−1へ送信する(ステップS305)。
ノード装置10−1の報告取得制御部11C−1は、ノード装置10−2の仮想マシン11−2の稼働状態情報を受け取ると、該稼働状態情報を含む報告をフェイルオーバ制御部11B−1へ出力する(ステップS306)。
〈フェイルオーバ実行判定処理〉
ノード装置10−1のフェイルオーバ制御部11B−1は、ノード装置10−2の仮想マシン11−2の稼働状態情報を含む報告を受け取ると、フェイルオーバ実行判定処理を実行する(ステップS307)。
図7は、第2実施形態のノード装置のフェイルオーバ実行判定処理の一例を示すフローチャートである。
ノード装置10−1のフェイルオーバ制御部11B−1は、他ノード装置10(つまり、ノード装置10−2)からの報告を取得するまで待つ(ステップS401NO)。
ノード装置10−1のフェイルオーバ制御部11B−1は、ノード装置10−2からの報告を取得すると(ステップS401YES)、取得した報告に含まれる稼働状態情報がノード10−2の仮想マシン11−2の停止状態を示しているか否かを判定する(ステップS402)。
取得した報告に含まれる稼働状態情報がノード10−2の仮想マシン11−2の停止状態を示している場合(ステップS402YES)、フェイルオーバ制御部11B−1は、フェイルオーバを実行すると判定する(ステップS403)。
取得した報告に含まれる稼働状態情報がノード10−2の仮想マシン11−2の停止状態を示していない場合、つまり、取得した報告に含まれる稼働状態情報がノード10−2の仮想マシン11−2の起動状態を示している場合(ステップS402NO)、フェイルオーバ制御部11B−1は、稼働状態情報に含まれる稼働経過時間が「第1所定値」以下であるか否かを判定する(ステップS404)。
稼働状態情報に含まれる稼働経過時間が「第1所定値」以下である場合(ステップS404YES)、フェイルオーバ制御部11B−1は、フェイルオーバを実行すると判定する(ステップS403)。
稼働状態情報に含まれる稼働経過時間が「第1所定値」より大きい場合(ステップS404NO)、フェイルオーバ制御部11B−1は、リトライ回数が「第2所定値」より大きいか否かを判定する(ステップS405)。初期段階では、リトライ回数が「第2所定値」より小さいので、処理ステップは、ステップS406へ進む。
リトライ回数が「第2所定値」以下である場合(ステップS405NO)、フェイルオーバ制御部11B−1は、フェイルオーバをこのタイミングでは実行しないと判定して、報告取得制御部11Cに対して報告要求信号を送信させると共に、報告要求信号を送信させた回数(つまり、リトライ回数)をカウント(インクリメント)する(ステップS406)。これにより、上記のステップS302からステップS306の処理動作が再度行われる。
リトライ回数が「第2所定値」より大きい場合(ステップS405YES)、フェイルオーバ制御部11B−1は、ノード装置10−2の仮想マシン11−2における無応答状態が一時的ではないと判定して、フェイルオーバを実行すると判定する共に、ノード装置10−2の仮想マシン11−2を停止する停止要求信号をノード装置10−2へ送信する(ステップS407,ステップS308)。
〈停止要求処理〉
ステップS308においてフェイルオーバ制御部11B−1から送信された停止要求信号を受け取ると、ノード装置10−2の仮想マシン監視部13−2は、該停止要求信号を仮想マシン制御部12−2へ出力する(ステップS309)。
仮想マシン制御部12−2は、停止要求信号を受け取ると、ノード装置10−2の仮想マシン11−2を停止して、停止要求応答を仮想マシン監視部13−2へ出力する(ステップS310)。
仮想マシン監視部13−2は、停止要求応答を受け取ると、該停止要求応答をノード装置10−1へ送信する(ステップS311)。
以上のように第2実施形態によれば、ノード装置10−1は、ノード装置10−1の物理マシンに設けられた、仮想マシン制御部12−1及び仮想マシン監視部13−1と、ノード装置10−1の仮想マシンに設けられた、報告取得制御部11C−1及びフェイルオーバ制御部11B−1とを有している。仮想マシン制御部12−1は、ノード装置10−1の仮想マシン11−1を制御する。仮想マシン監視部13−1は、ノード装置10−2から送信され且つノード装置10−1の稼働状態に関する報告を要求する報告要求信号に応じて、ノード装置10−1の仮想マシン11−1の稼働状態情報を仮想マシン制御部12−1から取得すると共に、取得したノード装置10−1の仮想マシン11−1の稼働状態情報を含めた報告をノード装置10−2へ送信する。
このノード装置10−1の構成により、仮想マシン11−1の稼働状態を確実に取得することができる。
また、ノード装置10−1において報告取得制御部11C−1は、ノード装置10−2から所定周期で送信されるハートビート信号を所定期間において受信しない場合、ノード装置10−2の物理マシンに設けられた仮想マシン監視部13−2に対してノード装置10−2の稼働状態に関する報告を要求する報告要求信号を送信することにより、ノード装置10−2の仮想マシン11−2の稼働状態情報を含む報告を取得する。そして、フェイルオーバ制御部11B−1は、報告取得制御部11C−1によって取得された報告に含まれる稼働状態情報とノード装置10−2の仮想マシン11−2における無応答状態が一時的か否かについての判定基準とに基づいて、フェイルオーバを実行するか否かを判定する、フェイルオーバ実行判定処理を実行する。
このノード装置10−1の構成により、「スプリットブレイン状態」が生じてしまうことを防止することができる。
上記の判定基準は、ノード装置10−2の仮想マシン11−2が停止状態であるときにはノード装置10−2の仮想マシン11−2における無応答状態が一時的ではない、という基準を含んでいる。そして、フェイルオーバ制御部11B−1は、報告取得制御部11C−1によって取得された報告に含まれる稼働状態情報がノード装置10−2の仮想マシン11−2の停止状態を示す場合、フェイルオーバを実行すると判定する。
このノード装置10−1の構成により、ノード装置10−2の稼働状態情報がノード装置10−2の仮想マシン11−2の停止状態を示しているためノード装置10−2の仮想マシン11−2における無応答状態が一時的ではないと判定できる場合には、即座にフェイルオーバを実行することができる。これにより、クラスタシステム1のサービスを滞り無く継続させることができるノード装置10−1を実現することができる。
また、ノード装置10−2の稼働状態情報は、ノード装置10−2の仮想マシン11−2の稼働経過時間を含んでいる。また、上記の判定基準は、ノード装置10−2の仮想マシン11−2が起動状態にあり且つノード装置10−2の仮想マシン11−2の稼働経過時間が「第1所定値」以下であるときにはノード装置10−2の仮想マシン11−2における無応答状態が一時的ではない、という基準を含んでいる。そして、フェイルオーバ制御部11B−1は、報告取得制御部11C−1によって取得された報告に含まれる稼働状態情報がノード装置10−2の仮想マシン11−2の起動状態を示し且つ稼働経過時間が第1所定値以下である場合、フェイルオーバを実行すると判定する。
このノード装置10−1の構成により、ノード装置10−2の仮想マシン11−2の稼働経過時間が第1所定値以下であるため、つまりノード装置10−2の仮想マシン11−2の起動から時間が経っていないために、ノード装置10−2の仮想マシン11−2の無応答状態は一時的なものでない可能性が高いと判定できる場合には、即座にフェイルオーバを実行することができる。これにより、クラスタシステム1のサービスを滞り無く継続させることができるノード装置10−1を実現することができる。
また、ノード装置10−1においてフェイルオーバ制御部11B−1は、フェイルオーバ実行判定処理においてフェイルオーバを実行しないと判定される度に、報告取得制御部11C−1に対して報告要求信号を送信させると共に、報告要求信号を送信させた回数をカウントする。
このノード装置10−1の構成により、ノード装置10−2の仮想マシン11−2における無応答状態が一時的か否かについての判定基準パラメータである、報告要求信号をノード装置10−2へ送信した回数(つまり、リトライ回数)を取得することができる。
また、ノード装置10−1においてフェイルオーバ制御部11B−1は、報告取得制御部11C−1によって取得された報告に含まれる稼働状態情報がノード装置10−2の仮想マシン11−2の起動状態を示し且つ稼働経過時間が第1所定値よりも大きい場合、リトライ回数と第2所定値との大小を判定する。そして、フェイルオーバ制御部11B−1は、リトライ回数が第2所定値よりも大きい場合、ノード装置10−2の仮想マシン11−2における無応答状態が一時的ではないと判定して、フェイルオーバを実行すると判定する共に、ノード装置10−2の仮想マシン11−2を停止する停止要求信号をノード装置10−2へ送信する。また、フェイルオーバ制御部11B−1は、リトライ回数が第2所定値以下である場合、フェイルオーバを実行しないと判定して、報告取得制御部11C−1に対して報告要求信号を送信させる。
このノード装置10−1の構成により、報告要求信号をノード装置10−2へ送信した回数(つまり、リトライ回数)が第2所定値よりも大きいために、ノード装置10−2の仮想マシン11−2の無応答状態は一時的なものでない可能性が高い、つまり永続的なストールの可能性が高いと判定できる場合には、即座にフェイルオーバを実行することができる。これにより、クラスタシステム1のサービスを滞り無く継続させることができるノード装置10−1を実現することができる。また、報告要求信号をノード装置10−2へ送信した回数(つまり、リトライ回数)が第2所定値以下であるために、ノード装置10−2の仮想マシン11−2における無応答状態が一時的である可能性が高い場合には、フェイルオーバの実行を見送る。これにより、スプリットブレイン状態が生じてしまうことを防止することができる。
なお、本発明は上記の実施形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
1 クラスタシステム
10 ノード装置
11 仮想マシン
11A クラスタ制御部
11B フェイルオーバ制御部
11C 報告取得制御部
11D ハートビート制御部
12 仮想マシン制御部
13 仮想マシン監視部
N1 通信ネットワーク

Claims (6)

  1. 複数のノード装置による連携構成を有するクラスタシステムにおけるノード装置であって、
    自ノード装置の物理マシンに設けられて、前記自ノード装置の仮想マシンを制御する仮想マシン制御部と、
    前記自ノード装置の物理マシンに設けられて、他ノード装置から送信され且つ前記自ノード装置の稼働状態に関する報告を要求する報告要求信号に応じて、前記自ノード装置の仮想マシンの稼働状態情報を前記仮想マシン制御部から取得すると共に、前記取得した自ノード装置の仮想マシンの稼働状態情報を含めた報告を前記他ノード装置へ送信する、仮想マシン監視部と、
    前記自ノード装置の仮想マシンに設けられて、前記他ノード装置から所定周期で送信されるハートビート信号を所定期間において受信しない場合、前記他ノード装置の物理マシンに設けられた仮想マシン監視部に対して前記他ノード装置の稼働状態に関する報告を要求する報告要求信号を送信することにより、前記他ノード装置の仮想マシンの稼働状態情報を含む報告を取得する報告取得制御部と、
    前記自ノード装置の仮想マシンに設けられて、前記報告取得制御部によって取得された報告に含まれる稼働状態情報と前記他ノード装置の仮想マシンにおける無応答状態が一時的か否かについての判定基準とに基づいて、フェイルオーバを実行するか否かを判定する、フェイルオーバ実行判定処理を実行する、フェイルオーバ制御部と、
    を具備する、ノード装置。
  2. 前記判定基準は、前記他ノード装置の仮想マシンが停止状態であるときには前記他ノード装置の仮想マシンにおける無応答状態が一時的ではない、という基準を含み、
    前記フェイルオーバ制御部は、前記報告取得制御部によって取得された報告に含まれる稼働状態情報が前記他ノード装置の仮想マシンの停止状態を示す場合、フェイルオーバを実行すると判定する、
    請求項1記載のノード装置。
  3. 前記他ノード装置の稼働状態情報は、前記他ノード装置の仮想マシンの稼働経過時間を含み、
    前記判定基準は、前記他ノード装置の仮想マシンが起動状態にあり且つ前記他ノード装置の仮想マシンの稼働経過時間が第1所定値以下であるときには前記他ノード装置の仮想マシンにおける無応答状態が一時的ではない、という基準を含み、
    前記フェイルオーバ制御部は、前記報告取得制御部によって取得された報告に含まれる稼働状態情報が前記他ノード装置の仮想マシンの起動状態を示し且つ前記稼働経過時間が前記第1所定値以下である場合、フェイルオーバを実行すると判定する、
    請求項2記載のノード装置。
  4. 前記フェイルオーバ制御部は、前記フェイルオーバ実行判定処理においてフェイルオーバを実行しないと判定される度に、前記報告取得制御部に対して前記報告要求信号を送信させると共に、前記報告要求信号を送信させた回数をカウントする、
    請求項3記載のノード装置。
  5. 前記フェイルオーバ制御部は、前記報告取得制御部によって取得された報告に含まれる稼働状態情報が前記他ノード装置の仮想マシンの起動状態を示し且つ前記稼働経過時間が前記第1所定値よりも大きい場合、前記カウントされた回数と第2所定値との大小を判定し、
    前記カウントされた回数が前記第2所定値よりも大きい場合、前記他ノード装置の仮想マシンにおける無応答状態が一時的ではないと判定して、前記フェイルオーバを実行すると判定する共に、前記他ノード装置の仮想マシンを停止する停止要求信号を前記他ノード装置へ送信し、
    前記カウントされた回数が前記第2所定値以下である場合、前記フェイルオーバを実行しないと判定して、前記報告取得制御部に対して前記報告要求信号を送信させる、
    請求項4記載のノード装置。
  6. 第1ノード装置及び第2ノード装置による連携構成を有するクラスタシステムにおける前記第1ノード装置によって実行されるフェイルオーバ制御方法であって、
    前記第1ノード装置は、前記第1ノード装置の物理マシンに設けられた、仮想マシン制御部及び仮想マシン監視部と、前記第1ノード装置の仮想マシンに設けられた、報告取得制御部及びフェイルオーバ制御部とを有し、
    前記フェイルオーバ制御方法は、
    前記仮想マシン制御部が、前記第1ノード装置の仮想マシンを制御し、
    前記仮想マシン監視部が、前記第2ノード装置から送信され且つ前記第1ノード装置の稼働状態に関する報告を要求する報告要求信号に応じて、前記第1ノード装置の仮想マシンの稼働状態情報を前記仮想マシン制御部から取得すると共に、前記取得した第1ノード装置の仮想マシンの稼働状態情報を含めた報告を前記第2ノード装置へ送信し、
    前記報告取得制御部が、前記第2ノード装置から所定周期で送信されるハートビート信号を所定期間において受信しない場合、前記第2ノード装置の物理マシンに設けられた仮想マシン監視部に対して前記第2ノード装置の稼働状態に関する報告を要求する報告要求信号を送信することにより、前記第2ノード装置の仮想マシンの稼働状態情報を含む報告を取得し、
    前記フェイルオーバ制御部が、前記報告取得制御部によって取得された報告に含まれる稼働状態情報と前記第2ノード装置の仮想マシンにおける無応答状態が一時的か否かについての判定基準とに基づいて、フェイルオーバを実行するか否かをさらに判定するフェイルオーバ実行判定処理を実行する、
    フェイルオーバ制御方法。
JP2017185741A 2017-09-27 2017-09-27 ノード装置及びフェイルオーバ制御方法 Active JP6919461B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017185741A JP6919461B2 (ja) 2017-09-27 2017-09-27 ノード装置及びフェイルオーバ制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017185741A JP6919461B2 (ja) 2017-09-27 2017-09-27 ノード装置及びフェイルオーバ制御方法

Publications (2)

Publication Number Publication Date
JP2019061507A JP2019061507A (ja) 2019-04-18
JP6919461B2 true JP6919461B2 (ja) 2021-08-18

Family

ID=66178530

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017185741A Active JP6919461B2 (ja) 2017-09-27 2017-09-27 ノード装置及びフェイルオーバ制御方法

Country Status (1)

Country Link
JP (1) JP6919461B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110912780B (zh) * 2019-12-13 2021-08-27 华云数据控股集团有限公司 一种高可用集群检测方法、系统及受控终端
JP7125964B2 (ja) * 2020-08-18 2022-08-25 株式会社日立製作所 計算機システムおよび管理方法

Also Published As

Publication number Publication date
JP2019061507A (ja) 2019-04-18

Similar Documents

Publication Publication Date Title
US9832086B2 (en) Initiator apparatus, target apparatus, communication system, timeout detection method, and timeout detection program
JP2001514773A (ja) 信頼性のあるイベントデリバリシステム
EP2274898B1 (en) Method for enabling faster recovery of client applications in the event of server failure
JP6919461B2 (ja) ノード装置及びフェイルオーバ制御方法
WO2015098589A1 (ja) クラスタシステム、サーバ装置、クラスタシステムの管理方法、及びコンピュータ読み取り可能な記録媒体
WO2014091663A1 (en) Detecting and isolating dropped or out-of-order packets in communication networks
CN107104822B (zh) 服务器备灾处理方法、装置、存储介质及电子设备
CN103650401A (zh) 一种移动终端内部通信方法
US9584469B2 (en) Information processing apparatus, information processing system, and computer-readable recording medium having stored program
JP2005301436A (ja) クラスタシステムおよびクラスタシステムにおける障害回復方法
CN103179162A (zh) 一种输出日志的方法及系统
JP2016066303A (ja) サーバ装置、冗長構成サーバシステム、情報引継プログラム及び情報引継方法
JP6365280B2 (ja) 情報処理装置、情報処理システム、及びプログラム
JP2016162324A (ja) 情報処理システム、制御プログラム及び制御方法
CN114338477A (zh) 一种通信链路监控方法、装置、设备及存储介质
JP2001251346A (ja) データ伝送システム
JP2008040680A (ja) 監視方法、監視装置、監視プログラム及び監視システム
JP4692419B2 (ja) ネットワーク装置及びそれに用いる冗長切替え方法並びにそのプログラム
KR20140077377A (ko) 가상화 플랫폼에서의 초기 서비스 이미지 처리 시스템 및 방법
EP2874067B1 (en) Information processing system, information processing apparatus, terminal apparatus, control program, and control method
CN114979169B (zh) 一种网络资源推送方法、装置、存储介质及电子设备
JP5763030B2 (ja) 二重化ネットワーク制御システムおよび二重化ネットワーク制御方法
JP2002026932A (ja) 監視制御システム
JP5884918B2 (ja) ネットワーク管理装置、システム、および方法
US8908534B2 (en) Method for performing lifebeat monitoring

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200817

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210616

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210705

R150 Certificate of patent or registration of utility model

Ref document number: 6919461

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150