JP6561766B2 - Information processing apparatus, cluster system, clustering method, and program - Google Patents
Information processing apparatus, cluster system, clustering method, and program Download PDFInfo
- Publication number
- JP6561766B2 JP6561766B2 JP2015208755A JP2015208755A JP6561766B2 JP 6561766 B2 JP6561766 B2 JP 6561766B2 JP 2015208755 A JP2015208755 A JP 2015208755A JP 2015208755 A JP2015208755 A JP 2015208755A JP 6561766 B2 JP6561766 B2 JP 6561766B2
- Authority
- JP
- Japan
- Prior art keywords
- information processing
- packet
- heartbeat
- time
- transmission
- 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
Links
Images
Landscapes
- Hardware Redundancy (AREA)
- Debugging And Monitoring (AREA)
Description
本発明は、情報処理装置、クラスタシステム、クラスタリング方法、及びプログラムに関する。 The present invention relates to an information processing apparatus, a cluster system, a clustering method, and a program.
近年、クラウド環境でのシステム構築が増えてきている。これに伴って、災害発生時などでも業務を継続可能とする仕組みのひとつであるHA(High Availability:高可用性)クラスタシステムもクラウド環境で利用及び運用可能な仕組みにしていく必要がある。 In recent years, system construction in a cloud environment has increased. Along with this, HA (High Availability) cluster system, which is one of the mechanisms that allow business to continue even in the event of a disaster, needs to be made a mechanism that can be used and operated in a cloud environment.
クラウド環境は、物理環境とは異なり、一台一台のノードが固定されているわけではない。そのため、いずれかのノードが停止すると、新たなノードが起動する。ノードは、クラウド環境ごとのエリアに分かれて管理されており、クラスタを構成するノードが入れ替わるたびに性能に影響する可能性がある。 In a cloud environment, unlike a physical environment, each node is not fixed. Therefore, when any node stops, a new node starts. Nodes are managed by being divided into areas for each cloud environment, and there is a possibility that performance will be affected every time nodes constituting a cluster are switched.
HAクラスタシステムは、実際にサービスを提供する現用系のノードと、現用系のノードに障害等が発生した場合にサービスを引き継いで提供する待機系のノードで構成される。すなわち、HAクラスタシステムは、現用系のノードに障害等が発生した場合、フェールオーバーを実施する。 The HA cluster system includes an active node that actually provides a service, and a standby node that takes over the service and provides it when a failure occurs in the active node. That is, the HA cluster system performs failover when a failure or the like occurs in the active node.
上述の通り、クラウド環境において、クラスタを構成するノードはひとつのエリアに固定されているわけではない。すなわち、クラスタを構成するノードが、クラウド環境ごとのライフサイクル(インスタンスの停止又は起動などといったサイクル)に応じて、クラウド環境上の別のエリアのノードに切り替わることがある。エリアが変更された影響で元のエリアに比べてネットワークの応答速度が低下したり、別のノードに切り替わることでノードの性能が不定になったりする恐れがある。このため、フェールオーバーが行われる場合、いずれのノードがフェールオーバー先として選択されるかによってクラスタシステムの性能が左右される。 As described above, in a cloud environment, nodes constituting a cluster are not fixed to one area. That is, the nodes constituting the cluster may be switched to a node in another area on the cloud environment according to the life cycle of each cloud environment (a cycle such as stopping or starting an instance). There is a possibility that the response speed of the network may be lower than the original area due to the change of the area, or the performance of the node may become indefinite by switching to another node. Therefore, when a failover is performed, the performance of the cluster system depends on which node is selected as the failover destination.
フェールオーバー後のクラスタシステムにより提供されるサービスの質は重要である。これに関し、特許文献1では、要求されるサービスの水準に応じたフェールオーバーを実現するため、第1ノードに障害が発生した場合に、第1ノードが管理する複数のソフトウェアリソースについて、優先順位にしたがって第1のノードから第2のノードへのフェールオーバーを実施するクラスタシステムについて開示している。
The quality of service provided by the cluster system after failover is important. In this regard, in
フェールオーバー先の候補となるノードが複数ある場合、これら候補のうちいずれがフェールオーバー先となるかによって、フェールオーバー後のクラスタシステムの性能が異なる。したがって、フェールオーバー先の候補となるノードが複数ある場合において、最も性能のよいノードをフェールオーバー先として選択することが求められている。 When there are multiple nodes that are candidates for failover destination, the performance of the cluster system after failover differs depending on which of these candidates is the failover destination. Therefore, when there are a plurality of nodes as failover destination candidates, it is required to select the node with the best performance as the failover destination.
特許文献1に記載されたクラスタシステムでは、フェールオーバー対象のソフトウェアリソースを優先順位に従ってフェールオーバーする技術について開示するに留まり、複数のフェールオーバー先から最適なノードを選択することについては開示されていない。
The cluster system described in
本発明の目的は、このような課題を解決するためになされたものであり、複数のフェールオーバー先の候補から、性能面で最適なフェールオーバー先を選択することができる情報処理装置、クラスタシステム、クラスタリング方法、及びプログラムを提供することにある。 An object of the present invention is to solve such a problem, and is an information processing apparatus and a cluster system capable of selecting an optimum failover destination in terms of performance from a plurality of failover destination candidates. And providing a clustering method and a program.
本発明の一態様にかかる情報処理装置は、自装置とともにクラスタを構成する複数の他の情報処理装置に対し、予め定められた処理の実行を要求するハートビートパケットを送信するハートビート送信手段と、前記ハートビートパケットを受信した前記他の情報処理装置が前記予め定められた処理の実行に要した処理時間を含む、前記ハートビートパケットに対する応答パケットを前記他の情報処理装置から受信する応答パケット受信手段と、前記ハートビートパケットの送受信時間及び前記処理時間に基づいて、前記複数の他の情報処理装置からフェールオーバー先を決定する決定手段とを有する。 An information processing apparatus according to an aspect of the present invention includes a heartbeat transmission unit that transmits a heartbeat packet that requests execution of a predetermined process to a plurality of other information processing apparatuses that form a cluster together with the information processing apparatus. A response packet for receiving a response packet for the heartbeat packet from the other information processing device, including a processing time required for the other information processing device that has received the heartbeat packet to execute the predetermined processing. Receiving means; and determining means for determining a failover destination from the plurality of other information processing devices based on the transmission / reception time of the heartbeat packet and the processing time.
また、本発明の一態様にかかるクラスタシステムは、現用系又は待機系のいずれかとして動作する、クラスタを構成する複数の情報処理装置を備え、前記複数の情報処理装置のうち少なくとも現用系として動作する情報処理装置は、他の前記情報処理装置のそれぞれに対し、予め定められた処理の実行を要求するハートビートパケットを送信するハートビート送信手段と、前記ハートビートパケットを受信した他の前記情報処理装置が前記予め定められた処理の実行に要した処理時間を含む、前記ハートビートパケットに対する応答パケットを他の前記情報処理装置から受信する応答パケット受信手段と、前記ハートビートパケットの送受信時間及び前記処理時間に基づいて、前記複数の他の情報処理装置からフェールオーバー先を決定する決定手段とを有し、前記複数の情報処理装置のうち待機系として動作する情報処理装置は、前記ハートビートパケットによる要求に応じて前記予め定められた処理を実行する処理実行手段と、前記処理時間を含む前記応答パケットを送信する応答パケット送信手段とを有する。 In addition, a cluster system according to one aspect of the present invention includes a plurality of information processing devices that form a cluster that operate as either an active system or a standby system, and operates as at least an active system among the plurality of information processing devices. The information processing apparatus that transmits a heartbeat packet that requests execution of a predetermined process to each of the other information processing apparatuses, and the other information that has received the heartbeat packet A response packet receiving means for receiving a response packet to the heartbeat packet from another information processing device, including a processing time required for execution of the predetermined processing by the processing device; and a transmission / reception time of the heartbeat packet; Based on the processing time, a failover destination is determined from the plurality of other information processing apparatuses. An information processing device that operates as a standby system among the plurality of information processing devices, a processing execution unit that executes the predetermined processing in response to a request by the heartbeat packet, and the processing Response packet transmission means for transmitting the response packet including time.
また、本発明の一態様にかかるクラスタリング方法は、クラスタを構成する複数の情報処理装置のいずれかである第1の情報処理装置から、前記複数の情報処理装置から前記第1の情報処理装置を除いた複数の他の情報処理装置である第2の情報処理装置に対し、予め定められた処理の実行を要求するハートビートパケットを送信するハートビート送信ステップと、前記ハートビートパケットを受信した前記第2の情報処理装置が前記予め定められた処理の実行に要した処理時間を含む、前記ハートビートパケットに対する応答パケットを前記第2の情報処理装置から前記第1の情報処理装置が受信する応答パケット受信ステップと、前記第1の情報処理装置が前記ハートビートパケットの送受信時間及び前記処理時間に基づいて、前記第2の情報処理装置の中からフェールオーバー先を決定する決定ステップとを有する。 The clustering method according to one aspect of the present invention includes the first information processing device from the plurality of information processing devices from the first information processing device that is one of the plurality of information processing devices configuring the cluster. A heartbeat transmission step of transmitting a heartbeat packet for requesting execution of a predetermined process to the second information processing apparatus, which is a plurality of other information processing apparatuses excluded, and the heartbeat packet received A response that the first information processing apparatus receives from the second information processing apparatus a response packet to the heartbeat packet that includes a processing time required for the second information processing apparatus to execute the predetermined process. A packet receiving step, and the first information processing apparatus determines the second information based on the transmission / reception time and the processing time of the heartbeat packet. And a determining step of determining a failover destination from the information processing apparatus.
また、本発明の一態様にかかるプログラムは、複数の他の情報処理装置とともにクラスタを構成する情報処理装置のコンピュータに、前記複数の他の情報処理装置に対し、予め定められた処理の実行を要求するハートビートパケットを送信するハートビート送信ステップと、前記ハートビートパケットを受信した前記他の情報処理装置が前記予め定められた処理の実行に要した処理時間を含む、前記ハートビートパケットに対する応答パケットを前記他の情報処理装置から受信する応答パケット受信ステップと、前記ハートビートパケットの送受信時間及び前記処理時間に基づいて、前記複数の他の情報処理装置からフェールオーバー先を決定する決定ステップとを実行させるプログラムである。 In addition, a program according to an aspect of the present invention allows a computer of an information processing apparatus that forms a cluster together with a plurality of other information processing apparatuses to execute predetermined processing on the plurality of other information processing apparatuses. A response to the heartbeat packet, including a heartbeat transmission step of transmitting a requested heartbeat packet, and a processing time required for execution of the predetermined processing by the other information processing apparatus that has received the heartbeat packet A response packet receiving step for receiving a packet from the other information processing device; and a determination step for determining a failover destination from the plurality of other information processing devices based on a transmission / reception time of the heartbeat packet and the processing time; It is a program that executes.
本発明によれば、複数のフェールオーバー先の候補から、性能面で最適なフェールオーバー先を選択することができる情報処理装置、クラスタシステム、クラスタリング方法、及びプログラムを提供することができる。 According to the present invention, it is possible to provide an information processing apparatus, a cluster system, a clustering method, and a program that can select an optimum failover destination in terms of performance from a plurality of failover destination candidates.
<本発明にかかる実施の形態の概要>
実施の形態の説明に先立って、本発明にかかる実施の形態の概要を説明する。図1は、実施の形態の概要にかかる情報処理装置10の構成を示すブロック図である。情報処理装置10は、他の図示しない複数の情報処理装置とともにクラスタを構成する。情報処理装置10は、自装置から他の情報処理装置へ、又は他の情報処理装置から自装置へとフェールオーバーを実施する。ここで、情報処理装置10は、図1に示されるように、ハートビート送信部101と、応答パケット受信部102と、決定部103とを有する。
<Outline of Embodiment of the Present Invention>
Prior to the description of the embodiment, an outline of the embodiment according to the present invention will be described. FIG. 1 is a block diagram illustrating a configuration of an
ハートビート送信部101は、情報処理装置10とともにクラスタを構成する上述の複数の他の情報処理装置に対し、予め定められた処理の実行を要求するハートビートパケット(以下、処理要求HBパケットという)を送信する。予め定められた処理は、演算内容が予め定められた、不変である処理である。この予め定められた処理の一例としては、例えば、円周率の計算などといった定常状態において数秒程度で完了する処理が挙げられるが、これに限られない。
The
処理要求HBパケットを受信した各情報処理装置は、それぞれ、予め定められた処理を実行する。そして、処理要求HBパケットを受信した各情報処理装置は、この予め定められた処理の実行に要した処理時間を含む応答パケットを情報処理装置10に対して送信する。
Each information processing apparatus that has received the processing request HB packet executes a predetermined process. Then, each information processing apparatus that has received the processing request HB packet transmits a response packet including the processing time required to execute the predetermined process to the
応答パケット受信部102は、処理要求HBパケットに対する応答パケットを他の各情報処理装置から受信する。決定部103は、処理要求HBパケットの送受信時間及びこの処理時間に基づいて、複数の他の情報処理装置からフェールオーバー先を決定する。
The response
このように、情報処理装置10は、フェールオーバー先の候補である情報処理装置ごとに、情報処理装置の負荷状況、通信の負荷状況を確認する。そして、確認した負荷状況に基づいて、最適なフェールオーバー先を決定することができる。したがって、各情報処理装置の負荷状況が動的に変化する環境下であっても、性能面で最適なフェールオーバー先を動的に選択することができる。
In this way, the
<実施の形態1>
以下、実施の形態1について説明する。図2は、実施の形態1にかかるクラスタシステム1の構成を示すブロック図である。図2に示すように、クラスタシステム1は、複数のノード(図2に示した例では、ノード10_1、10_2、及び10_3)を有し、これらノードによりクラスタが構成されている。図2に示した例では、ノード10_1及びノード10_2は、エリア2に属するノードである。また、ノード10_3は、エリア3に属するノードである。ここで、エリア2とエリア3は、クラウド環境において、それぞれ地理的に離れた領域である。つまり、エリアは、地理的に他と区別可能な領域をいう。このため、例えば、エリア2とエリア3は、物理的な設備が別々になっている。各エリアは、ネットワーク4により相互に通信可能に接続されている。したがって、クラスタシステム1を構成する各ノードは、ネットワーク4又はエリア内の図示しないネットワークを介して、相互に通信可能に接続されている。
<
The first embodiment will be described below. FIG. 2 is a block diagram of the configuration of the
ここで、「ノード」とは、ソフトウェアを実行するハードウェアや、仮想マシン等に相当するものであり、典型的には、OS(Operating System)の動作単位に対応するものである。なお、本明細書において、ノードは情報処理装置と称されることもある。本実施の形態において、ノードは、仮想マシンを使用したクラウドコンピューティング基盤を用いた環境であるクラウド環境により実現される。 Here, the “node” corresponds to hardware that executes software, a virtual machine, or the like, and typically corresponds to an operation unit of an OS (Operating System). Note that in this specification, a node may be referred to as an information processing apparatus. In the present embodiment, the node is realized by a cloud environment that is an environment using a cloud computing infrastructure using a virtual machine.
クラスタシステム1は、現用系として動作するノードと、待機系として動作するノードとを有する。例えば、ある時点において、ノード10_1が現用系として動作し、ノード10_2及びノード10_3が待機系として動作する。クラスタシステム1は、通常時、現用系として動作しているノードにより所定のサービスを提供し、現用系として動作しているノードに障害等が発生した際に、フェールオーバーを実施し、それまで現用系として動作していたノードに代わりそれまで待機系として動作していたノードが現用系として所定のサービスを引き継ぐHAクラスタシステムである。
The
上述の通り、クラウド環境では、クラスタシステム1を構成するノードは固定されていない。このため、ある時点においては、クラスタシステム1は、例えば図2に示されるノード10_1、ノード10_2、及びノード10_3で構成されるが、別の時点では例えば図3に示されるノード10_1、ノード10_2、及びノード10_4で構成される。すなわち、図3に示した例では、エリア2のノード10_2が停止し、エリア3のノード10_4が起動することにより、クラスタシステム1を構成するノードの一つが別のエリアへと移動している。このようにクラウド環境の場合、クラスタシステム1を構成するノードが変動する。すなわち、フェールオーバー先の候補となるノードが変動しており、フェールオーバー先の候補の性能も変動する。このため、最適なフェールオーバー先を選択することが難しい。
As described above, the nodes constituting the
なお、以下の説明では、ノード10_1、10_2、10_3、10_4などといったノード10_nについて、特に区別せずに言及する場合には、これらをまとめてノード10と称すこととする。
In the following description, when referring to the nodes 10_n such as the nodes 10_1, 10_2, 10_3, and 10_4 without particular distinction, they are collectively referred to as the
図4は、ノード10の構成を示すブロック図である。図4に示されるように、ノード10は、クラスタウェア100と、OS200と、所定のサービスを提供するアプリケーションソフトウェアであるサービスアプリケーション300と、記憶部400とを有する。また、ノード10は、CPU(Central Processing Unit)及びメモリなどを有し、コンピュータとしての機能を備えている。
クラスタウェア100は、他のノードのクラスタウェア100と協働し、ノード間で連携した動作が可能なように調整する。具体的には、例えば、クラスタウェア100は、自ノード及び他ノードの障害などの異常の有無を監視する。また、クラスタウェア100は、ノードに障害等の異常が発生した場合に、フェールオーバーを実施し、別のノードにより所定サービスを提供するよう、サービスアプリケーションの起動を切替える。
FIG. 4 is a block diagram showing the configuration of the
The
ここで、フェールオーバー先の決定に関するクラスタウェア100の構成について、具体的に説明する。図5は、クラスタウェア100の構成を示すブロック図である。図5に示すように、クラスタウェア100は、ハートビート送信部101と、応答パケット受信部102と、決定部103と、フェールオーバー実行部104と、ハートビート受信部105と、処理実行部106と、応答パケット送信部107とを有する。これらの各構成は、例えば、CPUの制御によって、プログラムが実行されることによって実現できる。より具体的には、例えば記憶部400などの記憶装置に格納されたプログラムを、CPUの制御によって実行して実現する。また、各構成要素は、プログラムによるソフトウェアで実現することに限ることなく、ハードウェア、ファームウェア、及びソフトウェアのうちのいずれかの組み合わせ等により実現してもよい。なお、これらの事項は、後述する他の実施の形態においても同様である。
Here, the configuration of the
なお、ノード10は、好適には、現用系として動作しているか待機系として動作しているかに関わらず、上記各構成を有する。ただし、必ずしも全ての構成要素をノードが有していなくてもよい。例えば、クラスタウェア100の各構成のうち、ハートビート送信部101、応答パケット受信部102、及び決定部103は、待機系として動作するノードが必ずしも有していなくてもよい。また、ハートビート受信部105、処理実行部106、及び応答パケット送信部107は、現用系として動作するノードが必ずしも有していなくてもよい。
The
ハートビート送信部101は、クラスタを構成する他の全てのノードに対して、ハートビートパケットを送信する。なお、クラスタシステム1では、図6に示されるように、クラスタを構成する各ノードがそれぞれハートビートパケット50を他のノードに対して送信する。図6では、クラスタシステム1が、ノード10_1、ノード10_2、及びノード10_3により構成されている場合の例を示している。なお、ハートビート送信部101により送信されるハートビートパケット50は、通常HBパケット又は処理要求HBパケットである。ここで、通常HBパケットとは、自ノードの生存を他ノードに対して定期的に伝える通常のハートビートパケットをいう。ハートビート送信部101は、通常HBパケット及び処理要求HBパケットをそれぞれ予め定められた時間間隔で繰り返し送信する。例えば、ハートビート送信部101は、3回に1回などの割合で、通常HBパケットに代えて処理要求HBパケットを送信する。
The
ハートビート受信部105は、他のノードから送信されたハートビートパケットを受信する。ハートビート受信部105は、上述の通り、通常HBパケット又は処理要求HBパケットを受信する。ハートビート受信部105は、処理要求HBパケットの受信時刻を後述する応答パケット送信部107に通知する。
The
処理実行部106は、処理要求HBパケットによる要求に応じて上述の予め定められた処理を実行する。すなわち、処理実行部106は、ハートビート受信部105が、処理要求HBパケットを受信した場合、予め定められた処理を実行する。処理実行部106は、予め定められた処理の実行が完了すると、予め定められた処理の実行に要した処理時間を、応答パケット送信部107に通知する。
The
応答パケット送信部107は、上述の処理時間を含む応答パケットを送信する。より具体的には、応答パケット送信部107は、処理要求HBパケットの受信時刻と、上述の処理時間とを含む応答パケットを、処理要求HBパケットの送信元に送信する。
The response
応答パケット受信部102は、処理要求HBパケットを受信した他のノードが送信した、処理要求HBパケットに対する応答パケットを受信する。すなわち、応答パケット受信部102は、予め定められた処理の実行に要した処理時間と、処理要求HBパケットの受信時刻とを含む応答パケットを、処理要求HBパケットの送信先である他のノードから受信する。また、応答パケット受信部102は、処理要求HBパケットの送信時刻と、この処理要求HBパケットの相手方ノードの受信時刻と、相手方ノードの処理時間とを記憶部400に記憶する。なお、送信時刻は、ハートビート送信部101から通知されてもよいし、ハートビート送信部101が送信時刻を含む処理要求HBパケットを送信した上で、これに対する応答パケットにこの送信時刻が含まれるようにしてもよい。
The response
図7は、記憶部400に記憶された送信時刻、受信時刻及び処理時間の例を示す図である。なお、図7では、ノード10_1がノード10_2から受信した応答パケットに基づくリスト(図7の上段)と、ノード10_1がノード10_3から受信した応答パケットに基づくリスト(図7の下段)が示されている。なお、図7では、ノード10_1が管理するリストを示しているが、クラスタを構成する他のノードも同様にリストを管理している。このように、各ノード10は、相手ノードごとに、送信時刻、受信時刻及び処理時間を管理する。また、図7に示されるように、各ノード10は、最新の応答パケットについての送信時刻、受信時刻及び処理時間のみではなく、過去の応答パケットについての送信時刻、受信時刻及び処理時間についても履歴として管理する。
FIG. 7 is a diagram illustrating an example of transmission time, reception time, and processing time stored in the
決定部103は、ハートビートパケットの送受信時間及び上述の処理時間に基づいて、複数の他のノードからフェールオーバー先を決定する。つまり、現用系として動作しているノードの決定部103は、自ノードに障害等が発生した場合のフェールオーバー先のノードを、処理要求HBパケットの送受信時間と予め定められた処理の処理時間とに基づいて、決定することにより、性能面で最適なノードをフェールオーバー先として選択する。なお、決定部103は、フェールオーバー先の決定に際し、処理要求HBパケットの送受信時間を、記憶部400に記憶されている送信時刻と受信時刻との差分を計算することにより、算出する。
The
以下、決定部103による決定方法について詳細に説明する。
決定部103は、クラスタを構成する複数の他のノード10ごとの送受信時間及び処理時間を比較し、送受信時間と処理時間の和の時間が最小である他のノード10をフェールオーバー先として決定する。ここで、決定部103は、最新の応答結果と過去の応答結果に基づいて、フェールオーバー先を決定する。なお、最新の応答結果とは、ハートビート送信部101が送信した最新の処理要求HBパケットに対する送受信時間及び処理時間である。また、過去の応答結果とは、最新の処理要求HBパケットよりも前にハートビート送信部101が送信した過去のハートビートパケットに対する送受信時間及び処理時間である。すなわち、過去の応答結果とはリストに記録された、過去の履歴である。また、決定部103は、フェールオーバー先を決定する際、過去の応答結果について、古い応答結果ほど小さい重みづけとなるよう重みづけを行う。
Hereinafter, the determination method by the
The
具体的には、決定部103は、以下のようにしてフェールオーバー先を決定する。まず、決定部103は、最新の応答結果についての評価値を算出する。なお、ここでいう評価値は、送受信時間と処理時間の和を指す。次に、過去の応答結果についても評価値をそれぞれ算出する。例えば、予め定められたm件の過去の応答結果に対し、それぞれ評価値を算出する。ただし、決定部103は、古い応答結果になるにつれて小さい重みづけとなるよう評価値に重みづけを行う。例えば、決定部103は、古い応答結果になるにつれて指数的に減少する重み係数(例えば、0.7のp乗、ただし、p=1〜m)を評価値に掛けて、新しい応答結果ほど重要になるように重みづけを行う。次に、決定部103は、最新の応答結果についての評価値と、重みづけがなされた過去の応答結果についての評価値の合計を算出する。なお、決定部103は、合計値ではなく平均値を算出してもよい。決定部103は、このような算出を、フェールオーバー先の候補となる全てのノードについて行う。そして、決定部103は、合計値(平均値)が最小であるノード10を最適なフェールオーバー先と判定して、フェールオーバー先を決定する。
Specifically, the
決定部103は、評価値が最小であるノード10が複数存在する場合、評価値が最小であるノードのうち、送受信時間又は処理時間のうち予め定められた方又はユーザ等に指定された方の時間が最小であるノード10をフェールオーバー先として決定してもよい。
When there are a plurality of
フェールオーバー実行部104は、決定部103により決定されたフェールオーバー先にサービスを引き継ぐようフェールオーバーを実行する。
The failover execution unit 104 executes a failover so as to take over the service to the failover destination determined by the
以上、ノード10の構成について説明した。なお、現用系として動作するノード10のみでなく、待機系として動作するノード10も定期的に他のノード10に対してハートビートパケットを送信する理由は、現用系として動作しているノード10が、電源断などにより緊急停止してしまった場合にその時点でどのノードが待機系として起動しているかという情報をノード間で共有するためである。現用系のノードが緊急停止した場合には、現用系ノードは動作することができないため、クラスタシステム1に設定された、ノード10ごとの予め定められた優先度に従ってフェールオーバー先が決定されることとなる。この時、待機系としていたノード10のクラスタウェア100間で情報が共有されることで、現用系のノード10で動いていたサービスが、それまで待機系として動作していた複数のノードで多重起動することを防ぐことが可能となる。
The configuration of the
また、待機系として動作するノード10も定期的に他のノード10に対して処理要求HBパケットを送信し、各ノード10の性能を記憶部400に記憶しているため、例えば、現用系のノード10の緊急停止によるフェールオーバー発生直後に、当該フェールオーバー後の現用系のノード10において障害が発生した場合であっても、即時に最適なフェールオーバー先を決定することができる。すなわち、上述の通り、本実施の形態では、決定部103の決定に際して、過去の応答結果が用いられるが、緊急停止によるフェールオーバーによりサービスを引き継いだノード10も、その時点で既に、過去の応答結果を保持しているため、応答結果が所定数蓄積されるのを待つまでもなく、フェールオーバー先を決定することができる。
Further, since the
次に、クラスタシステム1の動作について説明する。図8は、クラスタシステム1におけるハートビートパケットの送受信動作の一例を示すシーケンスチャートである。なお、図8では、ノード10_1からノード10_2へとハートビートパケットを送信する場合の動作を示しているが、図6に示した通り、各ノード10間で相互に同様の動作を行っている。
Next, the operation of the
ステップ100(S100)において、ノード10_1のハートビート送信部101が、ノード10_2に対して通常HBパケットを送信し、ノード10_2のハートビート受信部105がこれを受信する。
In step 100 (S100), the
ステップ101(S101)において、ノード10_2の応答パケット送信部107は、ノード10_1に対し、通常HBパケットに対する応答パケットを送信し、ノード10_1の応答パケット受信部102がこれを受信する。なお、ここでは、通常HBパケットに対して応答パケットを送信しているが、通常HBパケットに対する応答パケットは省略されてもよい。
In step 101 (S101), the response
ステップ102(S102)において、ノード10_1のハートビート送信部101が、ノード10_2に対して処理要求HBパケットを送信し、ノード10_2のハートビート受信部105がこれを受信する。
In step 102 (S102), the
ステップ103(S103)において、ノード10_2の処理実行部106は、予め定められた処理を実行する。
In step 103 (S103), the
ステップ104(S104)において、ノード10_2の応答パケット送信部107は、ステップ103における処理に要した時間を記した応答パケットをノード10_1に送信し、ノード10_1の応答パケット受信部102がこれを受信する。
In step 104 (S104), the response
ステップ105(S105)において、ステップ102における送信の送信時刻と、ステップ102における受信の受信時刻と、ステップ103における処理時間とが、記憶部400に記憶される。
In step 105 (S105), the transmission time of transmission in
ステップ106(S106)において、再び、ステップ100と同様、ノード10_1からノード10_2に対する通常HBパケットの送信が行われる。このように、ノード10は、通常HBパケットの送信及び処理要求HBパケットを繰り返し送信し、処理要求HBパケットが送信された場合には、上述のステップ103及びステップ105の動作が行われる。
In step 106 (S106), as in
次に、決定部103によるフェールオーバー先の決定動作について図9に示されるフローチャートに沿って説明する。現用系であるノードにおいて障害が発生すると、現用系であるノードの決定部103は、以下の動作を行う。
Next, the failover destination determination operation by the
ステップ200(S200)において、決定部103は、フェールオーバー先の候補のノードの一つについての記憶部400に記憶された各応答結果に対し、評価値を算出する。
In step 200 (S200), the
ステップ201(S201)において、決定部103は、過去の応答結果についての評価値について重みづけを行う。
In step 201 (S201), the
ステップ202(S202)において、決定部103は、一連の評価値について合計値を算出する。すなわち、最新の応答結果についての評価値及び所定数の過去の応答結果についての重みづけ後の評価値の合計値を算出する。
In step 202 (S202), the
ステップ203(S203)において、決定部103は、フェールオーバー先の候補の全てについてステップ200〜ステップ202の計算を実行したか否かを判定する。フェールオーバー先の候補の全てについて合計値が算出されていない場合、処理はステップ200に戻り、残りの候補についての合計値の算出が行われる。これに対し、フェールオーバー先の候補の全てについて合計値が算出されている場合、処理はステップ204へ移行する。
In step 203 (S203), the
ステップ204(S204)において、決定部103は、ステップ202で算出された評価値の合計値が最小であるノード10をフェールオーバー先として決定する。そして、この決定後、フェールオーバー実行部104が、ステップ204で決定されたフェールオーバー先のノード10にサービスを引き継ぐようフェールオーバーを実行する。
In step 204 (S204), the
このようにクラスタシステム1によれば、フェールオーバー先の候補であるノードごとの現在の性能を評価することができるため、動的にノードの性能が変化するクラスタ環境であっても性能面で最適なフェールオーバー先を選択することができる。
Thus, according to the
また、図10及び図11に示すように、ノードのライフサイクルによって、クラスタを構成するあるノードが、現用系のノードのエリアとは別のエリアのノードに切り替わった場合にも、クラスタシステム1は効果的である。なお、図10は、実施の形態1にかかるクラスタシステム1の構成の一例を示すブロック図であり、ノードが切り替わる前の構成を示している。また、図11は、図10に示されるクラスタシステム1について、ノードが切り替わった後の構成を示している。具体的には、図10に示すクラスタシステム1は、ノードの切替前は、エリア2のノード10_5、ノード10_6、及びノード10_7と、エリア3のノード10_8の4つのノードによりクラスタが構成されている。これに対し、図11に示すクラスタシステム1ではエリア2のノード10_6がエリア3のノード10_9に切り替わり、エリア2のノード10_5及びノード10_7と、エリア3のノード10_8及びノード10_9の4つのノードによりクラスタが構成されている。なお、図10及び図11において、エリア2のノード10_5が現用系として動作しているものとする。クラスタシステムが、フェールオーバー先を動的に決定する本実施の形態のような手法を備えていない場合、すなわち、ノードごとの予め定められた優先度に従ってフェールオーバー先が決定される場合、ノード10_6の優先度が他の候補ノードより高いときには、ノードの切り替え後は、ノード10_9がフェールオーバー先となる。しかしながら、他の候補ノードよりも優先度が高いノードが、現用系であるノードと別のエリアに切り替わってしまうと、この優先度が高いノードへのフェールオーバーは、現用系のノードのエリアと同じエリアのノード10_7へのフェールオーバーよりも時間がかかってしまう。
As shown in FIGS. 10 and 11, even when a certain node constituting the cluster is switched to a node in an area different from the area of the active node according to the life cycle of the node, the
これに対し、本実施の形態にかかるクラスタシステム1によれば、処理要求HBパケットを利用して送受信時間が管理されるため、異なるエリアへのノードの移動が発生した場合でも、ノードごとの送受信時間を比較することで、フェールオーバー時に動的に適切なノードの選択が可能となっている。
On the other hand, according to the
<実施の形態2>
次に、実施の形態2について説明する。実施の形態2にかかるクラスタシステム1のノード10は、クラスタウェア100に代えてクラスタウェア110を有している。図12は、クラスタウェア110の構成を示すブロック図である。図12に示されるように、クラスタウェア110は、予測部111が追加され、決定部103が決定部112に置き換えられた点で、クラスタウェア100と異なる。なお、その他の点については、クラスタウェア110はクラスタウェア100と同様であるため、以下の説明では、クラスタウェア100と異なる点についてのみ説明をし、重複する説明を省略する。
<
Next, a second embodiment will be described. The
予測部111は、記憶部400に記憶された、最新の応答結果と過去の応答結果に基づいて、予測の応答結果を算出する。ここで、予測の応答結果とは、ハートビート送信部101が送信する将来の処理要求HBパケットに対する送受信時間及び処理時間の予測値である。
The
予測部111は、最新の応答結果及び過去の応答結果に対し、時系列分析を行って、予測値を算出する。時系列分析としては、例えば、ARIMA(Auto Regressive Integrated Moving Average:自己回帰和分移動平均)モデルを利用した時系列分析が用いられてもよい。
The
決定部112は決定部103と同様であるが、決定部112は、最新の応答結果と、予測の応答結果に基づいて、フェールオーバー先を決定する点で決定部103と異なる。ここで、決定部112は、フェールオーバー先を決定する際、予測の応答結果について、将来の応答結果ほど小さい重みづけとなるよう重みづけを行う。
The
具体的には、以下のようにしてフェールオーバー先が決定される。まず、予測部111が、最新の応答結果及びs件の過去の応答結果に基づいて、予め定められたt件分の予測の応答結果を算出する。すなわち、予測部111が、図13に示されるように、t件分の送受信時間及び処理時間を予測する。なお、図13では、最新の応答結果と4件の過去の応答結果の計5件の応答結果(図13の上段参照)から、5件の将来の応答結果の予測値(図13の下段参照)が算出された場合の例を示している。次に、決定部112は、現在取得されている最新の応答結果についての評価値を算出する。そして、決定部112は、予測の応答結果についても評価値をそれぞれ算出する。すなわち、例えば、予め定められたt件の予測の応答結果に対し、それぞれ評価値を算出する。ただし、決定部112は、将来の応答結果になるにつれて小さい重みづけとなるよう評価値に重みづけを行う。例えば、決定部112は、将来の応答結果になるにつれて指数的に減少する重み係数(例えば、0.7のq乗、ただし、q=1〜t)を評価値に掛けて、現在に近い応答結果ほど重要になるように重みづけを行う。次に、決定部112は、最新の応答結果についての評価値と、重みづけがなされた予測の応答結果についての評価値の合計を算出する。なお、決定部112は、合計値ではなく平均値を算出してもよい。決定部112は、このような算出を、フェールオーバー先の候補となる全てのノードについて行う。そして、決定部112は、合計値(平均値)が最小であるノード10を最適なフェールオーバー先と判定して、フェールオーバー先を決定する。
Specifically, the failover destination is determined as follows. First, the
なお、決定部112は、評価値が最小であるノード10が複数存在する場合、評価値が最小であるノードのうち、送受信時間又は処理時間のうち予め定められた方又はユーザ等に指定された方の時間が最小であるノード10をフェールオーバー先として決定してもよい。
In addition, when there are a plurality of
次に、本実施の形態におけるフェールオーバー先の決定動作について図14に示されるフローチャートに沿って説明する。現用系であるノードにおいて障害が発生すると、以下の動作により、フェールオーバー先が決定される。 Next, the failover destination determination operation in the present embodiment will be described with reference to the flowchart shown in FIG. When a failure occurs in the active node, the failover destination is determined by the following operation.
ステップ300(S300)において、予測部111が、フェールオーバー先の候補のノードの一つについての記憶部400に記憶された一連の応答結果に基づいて、将来の応答結果を予測する。すなわち、予測部111は、最新の応答結果と過去の応答結果に基づいて、予測の応答結果を算出する。
In step 300 (S300), the
ステップ301(S301)において、決定部112は、現在取得されている最新の応答結果についての評価値、及びステップ300で予測された応答結果についての評価値を算出する。
In step 301 (S301), the
ステップ302(S302)において、決定部112は、予測の応答結果について、将来の応答結果ほど小さい重みづけとなるよう重みづけを行う。
In step 302 (S302), the
ステップ303(S303)において、決定部112は、一連の評価値について合計値を算出する。すなわち、最新の応答結果についての評価値と、所定数の予測の応答結果についての重みづけ後の評価値との合計値を算出する。
In step 303 (S303), the
ステップ304(S304)において、決定部112は、フェールオーバー先の候補の全てについてステップ300〜ステップ303の計算を実行したか否かを判定する。フェールオーバー先の候補の全てについて合計値が算出されていない場合、処理はステップ300に戻り、残りの候補についての合計値の算出が行われる。これに対し、フェールオーバー先の候補の全てについて合計値が算出されている場合、処理はステップ305へ移行する。
In step 304 (S304), the
ステップ305(S305)において、決定部112は、ステップ303で算出された評価値の合計値が最小であるノード10をフェールオーバー先として決定する。そして、この決定後、フェールオーバー実行部104が、ステップ303で決定されたフェールオーバー先のノード10にサービスを引き継ぐようフェールオーバーを実行する。
In step 305 (S305), the
このように本実施の形態にかかるクラスタシステム1によれば、フェールオーバー先の候補であるノードごとの現在の性能及び将来的な性能を評価することができるため、より最適なフェールオーバー先を選択することができる。なお、本実施の形態において、ステップ303の合計値の算出の際、実施の形態1と同様に、過去の応答結果に重みづけをした評価値をさらに合算してもよい。
As described above, according to the
<実施の形態3>
次に、実施の形態3について説明する。
クラウド環境において、不特定多数のユーザによる同時使用などで、あるエリアに高負荷が発生した場合、当該エリアに属するノードのパフォーマンスの劣化を招く。しかしながら、クラウド環境におけるこのようなパフォーマンスの劣化は、CPU使用率及びメモリ使用量の監視からは捉えることが難しい。図15は、待機系であるノード10_2が取得した応答結果のリストの一例を示す。ここで、図15の上段は、待機系であるノード10_2が現用系であるノード10_1に処理要求HBパケットを送信して得られた応答結果である。また、図15の下段は、待機系であるノード10_2が待機系であるノード10_3に処理要求HBパケットを送信して得られた応答結果である。仮に、ノード10_1が属するエリアを管理するホストマシンに高負荷が発生した場合、このエリアの中で動いているノード10_1自身のCPU使用率、メモリ使用量に見た目の影響は発生しないが、実際には、ノード10_1自身のパフォーマンスに影響が発生しており、処理要求HBパケット受信時の固定処理の実行に時間がかかるといったことで顕在化する。このため、図15の上段に示されるように、ノード10_1の処理時間が大きくなる。
<
Next,
In a cloud environment, when a high load occurs in an area due to simultaneous use by an unspecified number of users, the performance of nodes belonging to the area is degraded. However, it is difficult to grasp such performance deterioration in the cloud environment from monitoring the CPU usage rate and the memory usage amount. FIG. 15 shows an example of a list of response results acquired by the node 10_2 as the standby system. Here, the upper part of FIG. 15 shows a response result obtained by transmitting the processing request HB packet from the standby node 10_2 to the active node 10_1. The lower part of FIG. 15 shows a response result obtained by transmitting the processing request HB packet from the standby node 10_2 to the standby node 10_3. If a high load occurs in the host machine that manages the area to which the node 10_1 belongs, the CPU usage rate and the memory usage of the node 10_1 running in this area will not have an apparent effect. This is manifested by the fact that the performance of the node 10_1 itself is affected and that it takes time to execute the fixed processing when the processing request HB packet is received. For this reason, as shown in the upper part of FIG. 15, the processing time of the node 10_1 increases.
本実施の形態では、待機系であるノード10が、現用系であるノード10の処理時間を監視することにより現用系のノード10の性能を評価し、性能が予め定められた基準よりも低下した場合に、フェールオーバーの実行を要求する。
In the present embodiment, the
実施の形態3にかかるクラスタシステム1のノード10は、クラスタウェア100に代えてクラスタウェア120を有している。図16は、クラスタウェア120の構成を示すブロック図である。図16に示されるように、クラスタウェア120は、処理時間判定部121と、フェールオーバー要求部122とが追加された点で、クラスタウェア100と異なる。なお、その他の点については、クラスタウェア120はクラスタウェア100と同様であるため、以下の説明では、クラスタウェア100と異なる点についてのみ説明をし、重複する説明を省略する。なお、クラスタウェア120は、上述の予測部111をさらに有してもよい。
The
処理時間判定部121は、クラスタを構成する複数のノード10のうち現用系のノード10から受信した、処理要求HBパケットに対する応答パケットに含まれる処理時間が、予め定められた閾値を超えるか否かを判定する。
The processing
フェールオーバー要求部122は、処理時間判定部121により処理時間が閾値を超えると判定された場合、現用系として動作するノード10に対しフェールオーバーの実施を要求する。
When the processing
図17は、本実施の形態3にかかるクラスタウェア100におけるフェールオーバーの要求動作の一例について示すフローチャートである。
FIG. 17 is a flowchart illustrating an example of a failover request operation in the
ステップ400(S400)において、待機系のノード10の処理時間判定部121が、現用系であるノード10からの応答パケットに含まれる処理時間を予め定められた閾値と比較する。処理時間が、この閾値を超える場合(ステップ401でYes)、処理はステップ402へ移行する。処理時間が、この閾値を超えない場合(ステップ401でNo)、フェールオーバーの要求処理は行われない。
In step 400 (S400), the processing
ステップ402(S402)において、待機系であるノード10のフェールオーバー要求部122は、現用系であるノード10に対し、フェールオーバーの実施を要求する。これにより、現用系であるノード10のフェールオーバー実行部104は、フェールオーバーを実行する。なお、その際のフェールオーバー先は、決定部103により決定されたフェールオーバー先とすることができる。
In step 402 (S402), the failover request unit 122 of the
このように本実施の形態にかかるクラスタシステム1によれば、待機系のノード10から見た現用系のノード10の固定処理にかかる時間が所定の閾値を超えた場合には、現用系のノード10からサービスを移動することができる。このため、CPU監視及びメモリ監視では発見できないクラウド環境ならではの負荷を検出し、動的に適切なノードを選択することが可能となる。
As described above, according to the
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上記各実施の形態では、ノード10は、処理要求HBパケットのみならず、通常HBパケットを送信しているが、通常HBパケットの送信は省略されてもよい。また、クラウド環境だけに限らず、物理環境のクラスタリングでも上述の構成が適用されてもよい。この場合、本構成を適用しない場合に比較して簡易な構成により、各ノードの現在の性能の測定及びフェールオーバー先の動的な決定を行うことができる。
Note that the present invention is not limited to the above-described embodiment, and can be changed as appropriate without departing from the spirit of the present invention. For example, in each of the above embodiments, the
また、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(random access memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。 The program can be stored using various types of non-transitory computer readable media and supplied to a computer. Non-transitory computer readable media include various types of tangible storage media. Examples of non-transitory computer-readable media include magnetic recording media (for example, flexible disks, magnetic tapes, hard disk drives), magneto-optical recording media (for example, magneto-optical disks), CD-ROMs (Read Only Memory), CD-Rs, CD-R / W and semiconductor memory (for example, mask ROM, PROM (Programmable ROM), EPROM (Erasable PROM), flash ROM, RAM (random access memory)) are included. The program may also be supplied to the computer by various types of transitory computer readable media. Examples of transitory computer readable media include electrical signals, optical signals, and electromagnetic waves. The temporary computer-readable medium can supply the program to the computer via a wired communication path such as an electric wire and an optical fiber, or a wireless communication path.
また、例えば、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
自装置とともにクラスタを構成する複数の他の情報処理装置に対し、予め定められた処理の実行を要求するハートビートパケットを送信するハートビート送信手段と、
前記ハートビートパケットを受信した前記他の情報処理装置が前記予め定められた処理の実行に要した処理時間を含む、前記ハートビートパケットに対する応答パケットを前記他の情報処理装置から受信する応答パケット受信手段と、
前記ハートビートパケットの送受信時間及び前記処理時間に基づいて、前記複数の他の情報処理装置からフェールオーバー先を決定する決定手段と
を有する情報処理装置。
(付記2)
前記決定手段は、前記複数の他の情報処理装置ごとの前記送受信時間及び前記処理時間を比較し、前記送受信時間と前記処理時間の和の時間が最小である前記他の情報処理装置をフェールオーバー先として決定する
付記1に記載の情報処理装置。
(付記3)
前記ハートビート送信手段は、予め定められた時間間隔で前記ハートビートパケットを送信し、
前記決定手段は、前記ハートビート送信手段が送信した最新のハートビートパケットに対する前記送受信時間及び前記処理時間である最新の応答結果と、前記最新のハートビートパケットよりも前に前記ハートビート送信手段が送信した過去のハートビートパケットに対する前記送受信時間及び前記処理時間である過去の応答結果に基づいて、フェールオーバー先を決定する
付記1又は2に記載の情報処理装置。
(付記4)
前記決定手段は、フェールオーバー先を決定する際、前記過去の応答結果について、古い応答結果ほど小さい重みづけとなるよう重みづけを行う
付記3に記載の情報処理装置。
(付記5)
前記ハートビート送信手段は、予め定められた時間間隔で前記ハートビートパケットを送信し、
前記ハートビート送信手段が送信した最新のハートビートパケットに対する前記送受信時間及び前記処理時間である最新の応答結果と、前記最新のハートビートパケットよりも前に前記ハートビート送信手段が送信した過去のハートビートパケットに対する前記送受信時間及び前記処理時間である過去の応答結果に基づいて、前記ハートビート送信手段が送信する将来のハートビートパケットに対する前記送受信時間及び前記処理時間の予測値である予測の応答結果を算出する予測手段
をさらに有し、
前記決定手段は、前記最新の応答結果と、前記予測の応答結果に基づいて、フェールオーバー先を決定する
付記1又は2に記載の情報処理装置。
(付記6)
前記決定手段は、フェールオーバー先を決定する際、前記予測の応答結果について、将来の応答結果ほど小さい重みづけとなるよう重みづけを行う
付記5に記載の情報処理装置。
(付記7)
現用系又は待機系のいずれかとして動作する、クラスタを構成する複数の情報処理装置を備え、
前記複数の情報処理装置のうち少なくとも現用系として動作する情報処理装置は、
他の前記情報処理装置のそれぞれに対し、予め定められた処理の実行を要求するハートビートパケットを送信するハートビート送信手段と、
前記ハートビートパケットを受信した他の前記情報処理装置が前記予め定められた処理の実行に要した処理時間を含む、前記ハートビートパケットに対する応答パケットを他の前記情報処理装置から受信する応答パケット受信手段と、
前記ハートビートパケットの送受信時間及び前記処理時間に基づいて、前記複数の他の情報処理装置からフェールオーバー先を決定する決定手段と
を有し、
前記複数の情報処理装置のうち待機系として動作する情報処理装置は、
前記ハートビートパケットによる要求に応じて前記予め定められた処理を実行する処理実行手段と、
前記処理時間を含む前記応答パケットを送信する応答パケット送信手段と
を有する
クラスタシステム。
(付記8)
前記複数の情報処理装置のうち待機系として動作する情報処理装置は、さらに、前記ハートビート送信手段と、前記応答パケット受信手段とを有する
付記7に記載のクラスタシステム。
(付記9)
前記複数の情報処理装置のうち待機系として動作する情報処理装置は、さらに、
前記複数の情報処理装置のうち現用系として動作する情報処理装置から受信した前記応答パケットに含まれる前記処理時間が、予め定められた閾値を超えるか否かを判定する処理時間判定手段と、
前記処理時間判定手段により前記処理時間が前記閾値を超えると判定された場合、前記現用系として動作する情報処理装置に対しフェールオーバーの実施を要求するフェールオーバー要手段と
を有する
付記8に記載のクラスタシステム。
(付記10)
クラスタを構成する複数の情報処理装置のいずれかである第1の情報処理装置から、前記複数の情報処理装置から前記第1の情報処理装置を除いた複数の他の情報処理装置である第2の情報処理装置に対し、予め定められた処理の実行を要求するハートビートパケットを送信するハートビート送信ステップと、
前記ハートビートパケットを受信した前記第2の情報処理装置が前記予め定められた処理の実行に要した処理時間を含む、前記ハートビートパケットに対する応答パケットを前記第2の情報処理装置から前記第1の情報処理装置が受信する応答パケット受信ステップと、
前記第1の情報処理装置が前記ハートビートパケットの送受信時間及び前記処理時間に基づいて、前記第2の情報処理装置の中からフェールオーバー先を決定する決定ステップと
を有するクラスタリング方法。
(付記11)
複数の他の情報処理装置とともにクラスタを構成する情報処理装置のコンピュータに、
前記複数の他の情報処理装置に対し、予め定められた処理の実行を要求するハートビートパケットを送信するハートビート送信ステップと、
前記ハートビートパケットを受信した前記他の情報処理装置が前記予め定められた処理の実行に要した処理時間を含む、前記ハートビートパケットに対する応答パケットを前記他の情報処理装置から受信する応答パケット受信ステップと、
前記ハートビートパケットの送受信時間及び前記処理時間に基づいて、前記複数の他の情報処理装置からフェールオーバー先を決定する決定ステップと
を実行させるプログラム。
Further, for example, part or all of the above-described embodiment can be described as in the following supplementary notes, but is not limited thereto.
(Appendix 1)
Heartbeat transmission means for transmitting a heartbeat packet for requesting execution of a predetermined process to a plurality of other information processing apparatuses constituting a cluster together with the own apparatus;
Response packet reception for receiving, from the other information processing device, a response packet for the heartbeat packet, including the processing time required for the other information processing device that has received the heartbeat packet to execute the predetermined processing. Means,
An information processing apparatus comprising: a determination unit configured to determine a failover destination from the plurality of other information processing apparatuses based on the transmission / reception time of the heartbeat packet and the processing time.
(Appendix 2)
The determining means compares the transmission / reception time and the processing time for each of the plurality of other information processing devices, and fails over the other information processing device having a minimum time of the sum of the transmission / reception time and the processing time. The information processing apparatus according to
(Appendix 3)
The heartbeat transmission means transmits the heartbeat packet at a predetermined time interval,
The determination means includes the latest response result that is the transmission / reception time and the processing time for the latest heartbeat packet transmitted by the heartbeat transmission means, and the heartbeat transmission means before the latest heartbeat packet. The information processing apparatus according to
(Appendix 4)
The information processing apparatus according to
(Appendix 5)
The heartbeat transmission means transmits the heartbeat packet at a predetermined time interval,
The latest response result that is the transmission / reception time and the processing time for the latest heartbeat packet transmitted by the heartbeat transmission unit, and the past heart transmitted by the heartbeat transmission unit before the latest heartbeat packet. Based on a past response result that is the transmission / reception time and the processing time for the beat packet, a prediction response result that is a predicted value of the transmission / reception time and the processing time for a future heartbeat packet transmitted by the heartbeat transmission means. A prediction means for calculating
The information processing apparatus according to
(Appendix 6)
6. The information processing apparatus according to
(Appendix 7)
A plurality of information processing devices constituting a cluster that operate as either an active system or a standby system,
An information processing device that operates as at least an active system among the plurality of information processing devices,
Heartbeat transmission means for transmitting a heartbeat packet for requesting execution of a predetermined process to each of the other information processing apparatuses,
Response packet reception for receiving a response packet for the heartbeat packet from the other information processing device, including a processing time required for the other information processing device that has received the heartbeat packet to execute the predetermined processing. Means,
Determining means for determining a failover destination from the plurality of other information processing devices based on the transmission / reception time of the heartbeat packet and the processing time;
An information processing device that operates as a standby system among the plurality of information processing devices,
Processing execution means for executing the predetermined processing in response to a request by the heartbeat packet;
A response packet transmitting means for transmitting the response packet including the processing time.
(Appendix 8)
The cluster system according to
(Appendix 9)
An information processing device that operates as a standby system among the plurality of information processing devices further includes:
Processing time determination means for determining whether or not the processing time included in the response packet received from the information processing apparatus operating as an active system among the plurality of information processing apparatuses exceeds a predetermined threshold;
The failover requiring means for requesting the information processing apparatus operating as the active system to perform failover when the processing time is determined by the processing time determination means to exceed the threshold value. Cluster system.
(Appendix 10)
A second information processing device that is a plurality of other information processing devices obtained by removing the first information processing device from the plurality of information processing devices from a first information processing device that is one of a plurality of information processing devices that form a cluster. A heartbeat transmission step of transmitting a heartbeat packet for requesting execution of a predetermined process to the information processing apparatus;
A response packet to the heartbeat packet including a processing time required for the second information processing apparatus that has received the heartbeat packet to execute the predetermined process is transmitted from the second information processing apparatus to the first information processing apparatus. A response packet receiving step received by the information processing apparatus;
A determination step in which the first information processing apparatus determines a failover destination from the second information processing apparatus based on the transmission / reception time of the heartbeat packet and the processing time.
(Appendix 11)
In the computer of the information processing apparatus that forms a cluster together with a plurality of other information processing apparatuses,
A heartbeat transmission step of transmitting a heartbeat packet for requesting execution of a predetermined process to the plurality of other information processing devices;
Response packet reception for receiving, from the other information processing device, a response packet for the heartbeat packet, including the processing time required for the other information processing device that has received the heartbeat packet to execute the predetermined processing. Steps,
And a determination step of determining a failover destination from the plurality of other information processing devices based on the transmission / reception time of the heartbeat packet and the processing time.
1 クラスタシステム
2、3 エリア
4 ネットワーク
10 ノード(情報処理装置)
50 ハートビートパケット
100、110、120 クラスタウェア
101 ハートビート送信部
102 応答パケット受信部
103、112 決定部
104 フェールオーバー実行部
105 ハートビート受信部
106 処理実行部
107 応答パケット送信部
111 予測部
121 処理時間判定部
122 フェールオーバー要求部
200 OS
300 サービスアプリケーション
400 記憶部
1
50
300
Claims (10)
前記ハートビートパケットを受信した前記他の情報処理装置が前記予め定められた処理の実行に要した処理時間を含む、前記ハートビートパケットに対する応答パケットを前記他の情報処理装置から受信する応答パケット受信手段と、
前記ハートビートパケットの送受信時間及び前記処理時間に基づいて、前記複数の他の情報処理装置からフェールオーバー先を決定する決定手段と
を有する情報処理装置。 Heartbeat transmission means for transmitting a heartbeat packet for requesting execution of a predetermined process to a plurality of other information processing apparatuses constituting a cluster together with the own apparatus;
Response packet reception for receiving, from the other information processing device, a response packet for the heartbeat packet, including the processing time required for the other information processing device that has received the heartbeat packet to execute the predetermined processing. Means,
An information processing apparatus comprising: a determination unit configured to determine a failover destination from the plurality of other information processing apparatuses based on the transmission / reception time of the heartbeat packet and the processing time.
請求項1に記載の情報処理装置。 The determining means compares the transmission / reception time and the processing time for each of the plurality of other information processing devices, and fails over the other information processing device having a minimum time of the sum of the transmission / reception time and the processing time. The information processing apparatus according to claim 1, wherein the information processing apparatus is determined as a destination.
前記決定手段は、前記ハートビート送信手段が送信した最新のハートビートパケットに対する前記送受信時間及び前記処理時間である最新の応答結果と、前記最新のハートビートパケットよりも前に前記ハートビート送信手段が送信した過去のハートビートパケットに対する前記送受信時間及び前記処理時間である過去の応答結果に基づいて、フェールオーバー先を決定する
請求項1又は2に記載の情報処理装置。 The heartbeat transmission means transmits the heartbeat packet at a predetermined time interval,
The determination means includes the latest response result that is the transmission / reception time and the processing time for the latest heartbeat packet transmitted by the heartbeat transmission means, and the heartbeat transmission means before the latest heartbeat packet. The information processing apparatus according to claim 1, wherein a failover destination is determined based on a past response result that is the transmission / reception time and the processing time with respect to the transmitted past heartbeat packet.
請求項3に記載の情報処理装置。 The information processing apparatus according to claim 3, wherein when determining a failover destination, the determination unit weights the past response result so that an older response result has a smaller weight.
前記ハートビート送信手段が送信した最新のハートビートパケットに対する前記送受信時間及び前記処理時間である最新の応答結果と、前記最新のハートビートパケットよりも前に前記ハートビート送信手段が送信した過去のハートビートパケットに対する前記送受信時間及び前記処理時間である過去の応答結果に基づいて、前記ハートビート送信手段が送信する将来のハートビートパケットに対する前記送受信時間及び前記処理時間の予測値である予測の応答結果を算出する予測手段
をさらに有し、
前記決定手段は、前記最新の応答結果と、前記予測の応答結果に基づいて、フェールオーバー先を決定する
請求項1又は2に記載の情報処理装置。 The heartbeat transmission means transmits the heartbeat packet at a predetermined time interval,
The latest response result that is the transmission / reception time and the processing time for the latest heartbeat packet transmitted by the heartbeat transmission unit, and the past heart transmitted by the heartbeat transmission unit before the latest heartbeat packet. Based on a past response result that is the transmission / reception time and the processing time for the beat packet, a prediction response result that is a predicted value of the transmission / reception time and the processing time for a future heartbeat packet transmitted by the heartbeat transmission means. A prediction means for calculating
The information processing apparatus according to claim 1, wherein the determination unit determines a failover destination based on the latest response result and the predicted response result.
請求項5に記載の情報処理装置。 The information processing apparatus according to claim 5, wherein when determining a failover destination, the determination unit weights the prediction response result so that a future response result has a smaller weight.
前記複数の情報処理装置のうち少なくとも現用系として動作する情報処理装置は、
他の前記情報処理装置のそれぞれに対し、予め定められた処理の実行を要求するハートビートパケットを送信するハートビート送信手段と、
前記ハートビートパケットを受信した他の前記情報処理装置が前記予め定められた処理の実行に要した処理時間を含む、前記ハートビートパケットに対する応答パケットを他の前記情報処理装置から受信する応答パケット受信手段と、
前記ハートビートパケットの送受信時間及び前記処理時間に基づいて、前記複数の他の情報処理装置からフェールオーバー先を決定する決定手段と
を有し、
前記複数の情報処理装置のうち待機系として動作する情報処理装置は、
前記ハートビートパケットによる要求に応じて前記予め定められた処理を実行する処理実行手段と、
前記処理時間を含む前記応答パケットを送信する応答パケット送信手段と
を有する
クラスタシステム。 A plurality of information processing devices constituting a cluster that operate as either an active system or a standby system,
An information processing device that operates as at least an active system among the plurality of information processing devices,
Heartbeat transmission means for transmitting a heartbeat packet for requesting execution of a predetermined process to each of the other information processing apparatuses,
Response packet reception for receiving a response packet for the heartbeat packet from the other information processing device, including a processing time required for the other information processing device that has received the heartbeat packet to execute the predetermined processing. Means,
Determining means for determining a failover destination from the plurality of other information processing devices based on the transmission / reception time of the heartbeat packet and the processing time;
An information processing device that operates as a standby system among the plurality of information processing devices,
Processing execution means for executing the predetermined processing in response to a request by the heartbeat packet;
A response packet transmitting means for transmitting the response packet including the processing time.
前記ハートビート送信手段と、
前記応答パケット受信手段と、
前記複数の情報処理装置のうち現用系として動作する情報処理装置から受信した前記応答パケットに含まれる前記処理時間が、予め定められた閾値を超えるか否かを判定する処理時間判定手段と、
前記処理時間判定手段により前記処理時間が前記閾値を超えると判定された場合、前記現用系として動作する情報処理装置に対しフェールオーバーの実施を要求するフェールオーバー要手段と
を有する
請求項7に記載のクラスタシステム。 An information processing device that operates as a standby system among the plurality of information processing devices further includes:
The heartbeat transmitting means;
The response packet receiving means;
Processing time determination means for determining whether or not the processing time included in the response packet received from the information processing apparatus operating as an active system among the plurality of information processing apparatuses exceeds a predetermined threshold;
The failover required means for requesting the information processing apparatus operating as the active system to perform failover when the processing time is determined by the processing time determination means to exceed the threshold value. Cluster system.
前記ハートビートパケットを受信した前記第2の情報処理装置が前記予め定められた処理の実行に要した処理時間を含む、前記ハートビートパケットに対する応答パケットを前記第2の情報処理装置から前記第1の情報処理装置が受信する応答パケット受信ステップと、
前記第1の情報処理装置が前記ハートビートパケットの送受信時間及び前記処理時間に基づいて、前記第2の情報処理装置の中からフェールオーバー先を決定する決定ステップと
を有するクラスタリング方法。 A second information processing device that is a plurality of other information processing devices obtained by removing the first information processing device from the plurality of information processing devices from a first information processing device that is one of a plurality of information processing devices that form a cluster. A heartbeat transmission step of transmitting a heartbeat packet for requesting execution of a predetermined process to the information processing apparatus;
A response packet to the heartbeat packet including a processing time required for the second information processing apparatus that has received the heartbeat packet to execute the predetermined process is transmitted from the second information processing apparatus to the first information processing apparatus. A response packet receiving step received by the information processing apparatus;
A determination step in which the first information processing apparatus determines a failover destination from the second information processing apparatus based on the transmission / reception time of the heartbeat packet and the processing time.
前記複数の他の情報処理装置に対し、予め定められた処理の実行を要求するハートビートパケットを送信するハートビート送信ステップと、
前記ハートビートパケットを受信した前記他の情報処理装置が前記予め定められた処理の実行に要した処理時間を含む、前記ハートビートパケットに対する応答パケットを前記他の情報処理装置から受信する応答パケット受信ステップと、
前記ハートビートパケットの送受信時間及び前記処理時間に基づいて、前記複数の他の情報処理装置からフェールオーバー先を決定する決定ステップと
を実行させるプログラム。 In the computer of the information processing apparatus that forms a cluster together with a plurality of other information processing apparatuses,
A heartbeat transmission step of transmitting a heartbeat packet for requesting execution of a predetermined process to the plurality of other information processing devices;
Response packet reception for receiving, from the other information processing device, a response packet for the heartbeat packet, including the processing time required for the other information processing device that has received the heartbeat packet to execute the predetermined processing. Steps,
And a determination step of determining a failover destination from the plurality of other information processing devices based on the transmission / reception time of the heartbeat packet and the processing time.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015208755A JP6561766B2 (en) | 2015-10-23 | 2015-10-23 | Information processing apparatus, cluster system, clustering method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015208755A JP6561766B2 (en) | 2015-10-23 | 2015-10-23 | Information processing apparatus, cluster system, clustering method, and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017083935A JP2017083935A (en) | 2017-05-18 |
JP6561766B2 true JP6561766B2 (en) | 2019-08-21 |
Family
ID=58713208
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015208755A Active JP6561766B2 (en) | 2015-10-23 | 2015-10-23 | Information processing apparatus, cluster system, clustering method, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6561766B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7311335B2 (en) * | 2019-07-05 | 2023-07-19 | 株式会社野村総合研究所 | DISTRIBUTED CONTAINER MONITORING SYSTEM AND DISTRIBUTED CONTAINER MONITORING METHOD |
CN115550144B (en) * | 2022-11-30 | 2023-03-24 | 季华实验室 | Distributed fault node prediction method and device, electronic equipment and storage medium |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004355446A (en) * | 2003-05-30 | 2004-12-16 | Hitachi Ltd | Cluster system and its control method |
JP4293011B2 (en) * | 2004-02-20 | 2009-07-08 | 株式会社日立製作所 | Server determination method in case of failure |
JP5378946B2 (en) * | 2009-10-26 | 2013-12-25 | 株式会社日立製作所 | Server management apparatus and server management method |
JP2011242949A (en) * | 2010-05-17 | 2011-12-01 | Fujitsu Ltd | File management program, file management method and information processor |
JP2012075009A (en) * | 2010-09-29 | 2012-04-12 | Oki Networks Co Ltd | Redundancy device and redundancy program |
JP2012168907A (en) * | 2011-02-17 | 2012-09-06 | Nec Corp | Mutual monitoring system |
JP2013222310A (en) * | 2012-04-17 | 2013-10-28 | Hitachi Ltd | Task continuation method |
JP2013228793A (en) * | 2012-04-24 | 2013-11-07 | Nec Corp | Information processing apparatus, cluster system, and failover method |
-
2015
- 2015-10-23 JP JP2015208755A patent/JP6561766B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2017083935A (en) | 2017-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10558517B2 (en) | Proactive cloud orchestration | |
JP2015510201A (en) | Method and apparatus for rapid disaster recovery preparation in a cloud network | |
JPWO2016121973A1 (en) | Node system, server device, scale ring control method and program | |
JP5609730B2 (en) | Information processing program and method, and transfer processing apparatus | |
CN106681839B (en) | Elastic calculation dynamic allocation method | |
US20140226975A1 (en) | Method and apparatus for boosting data intensive processing through optical circuit switching | |
JP7079998B1 (en) | Cluster capacity expansion method and equipment | |
US20160036654A1 (en) | Cluster system | |
CN114697256B (en) | Dynamic network bandwidth allocation and management based on centralized controllers | |
JP6561766B2 (en) | Information processing apparatus, cluster system, clustering method, and program | |
US11212174B2 (en) | Network management device and network management method | |
US11936565B2 (en) | Methods and apparatus for data traffic control in networks | |
EP2645625B1 (en) | Computer system and subsystem management method | |
US20210120097A1 (en) | Scheduling solution configuration method and apparatus, computer readable storage medium thereof, and computer device | |
KR102201799B1 (en) | Dynamic load balancing method and dynamic load balancing device in sdn-based fog system | |
JP5935505B2 (en) | Information processing apparatus, virtual machine control method, virtual machine control program | |
JP6551111B2 (en) | Information processing apparatus, down determination method, cluster system, and program | |
JP2011209811A (en) | Virtual machine system and virtual machine arrangement method | |
JP2018133766A (en) | Processing apparatus, duplex system, processing method, and processing program | |
JP5617586B2 (en) | Information processing program, relay device, and relay management device | |
JP5874234B2 (en) | Device management apparatus, device management method, and device management program | |
KR101196605B1 (en) | Dynamic load balancing method for multi-agent system | |
JP6659047B2 (en) | Communication network system, route control device, route control method, and route control program | |
KR101757257B1 (en) | Method and apparatus for dynamic control for recoverying error based on software defined network enviroment | |
JP5056346B2 (en) | Information processing apparatus, information processing system, virtual server movement processing control method, and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180905 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190531 |
|
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: 20190625 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190708 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6561766 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |