WO2018074587A1 - サーバ装置、クラスタシステム、クラスタ制御方法およびプログラム - Google Patents

サーバ装置、クラスタシステム、クラスタ制御方法およびプログラム Download PDF

Info

Publication number
WO2018074587A1
WO2018074587A1 PCT/JP2017/038004 JP2017038004W WO2018074587A1 WO 2018074587 A1 WO2018074587 A1 WO 2018074587A1 JP 2017038004 W JP2017038004 W JP 2017038004W WO 2018074587 A1 WO2018074587 A1 WO 2018074587A1
Authority
WO
WIPO (PCT)
Prior art keywords
server device
node
heartbeat
active
cluster
Prior art date
Application number
PCT/JP2017/038004
Other languages
English (en)
French (fr)
Inventor
梅澤 陽平
Original Assignee
日本電気株式会社
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 日本電気株式会社 filed Critical 日本電気株式会社
Priority to US16/343,477 priority Critical patent/US10911295B2/en
Priority to JP2018545770A priority patent/JP6724998B2/ja
Publication of WO2018074587A1 publication Critical patent/WO2018074587A1/ja

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/0663Performing the actions predefined by failover planning, e.g. switching to standby network elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0894Packet rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • 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
    • 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

Definitions

  • the present invention is based on the priority claim of Japanese patent application: Japanese Patent Application No. 2016-205939 (filed on Oct. 20, 2016), the entire description of which is incorporated herein by reference. Shall.
  • the present invention relates to a server device, a cluster system, a cluster control method, and a program, and more particularly to a server device provided in the cluster system, a cluster system including a plurality of server devices, a cluster control method, and a program.
  • a technique is used in which a system is made redundant and a cluster system is configured by a plurality of server devices.
  • an active standby (ACT-SBY, Active-Standby) configuration and an N-ACT (Active) configuration are known.
  • the ACT-SBY configuration has two server devices. During normal operation, only the active (ACT, Active) server device is enabled, and the standby (SBY, Standby) server device is disabled. When a failure occurs in the active (ACT) server device, the processing of the active (ACT) server device is taken over by the standby (SBY) server device, so that the service is maintained.
  • the N-ACT configuration operates a plurality of server devices simultaneously.
  • the N-ACT configuration is a redundant configuration in which the server device being processed plays the role of a standby system for other server devices at the same time.
  • Patent Document 1 discloses a technique for switching a heartbeat transmission path to a general LAN when a monitoring signal (heartbeat) cannot be communicated via a heartbeat LAN (Local Area Network).
  • a monitoring signal heartbeat
  • LAN Local Area Network
  • Patent Document 2 calculates an allocation time during which processing can be executed on each node, and each node executes processing within the allocated time so that the processing does not start simultaneously on both nodes. The technology is described.
  • Patent Document 3 discloses a split brain recovery for recovering data updated in both server apparatuses after a failure occurs so that no difference occurs between the two when the remote cluster system is divided due to a network failure. The method is described.
  • Patent Document 4 a heartbeat signal periodically transmitted from a target server is monitored, and when a heartbeat signal is not received for a certain period or more, a failure of the target server is detected and failover is performed.
  • the technology is described.
  • the backup multiplicity can be flexibly changed. Therefore, the utilization efficiency of the equipment can be increased as compared with the ACT-SBY (Active-Standby) configuration.
  • problems such as a split-brain described later hardly occur.
  • the ACT-SBY configuration is often used rather than the N-ACT configuration. This is because the ACT-SBY configuration has the following advantages (1) to (3).
  • the same service is activated in a plurality of server apparatuses, and these are operated simultaneously. At this time, a synchronization mechanism for maintaining data consistency between a plurality of ACT (Active) nodes is required.
  • a stateless cluster system having no state data can realize the N-ACT configuration relatively easily.
  • advanced technology is required for the synchronization mechanism. Therefore, there is a problem that an N-ACT cluster system is generally expensive and difficult to operate.
  • the ACT-SBY configuration can be realized by a simpler technique than the N-ACT configuration. Therefore, the system of the ACT-SBY configuration has a feature that the system introduction cost and the operation cost can be easily reduced. Carrier products / solutions often result in stateful systems that need to maintain call state. Therefore, the ACT-SBY configuration is easier to apply than the N-ACT configuration.
  • the cluster system can be accessed from the opposite node by a single IP address by a floating IP (Internet Protocol) address. Therefore, even when a redundant configuration is built, there is an advantage that the impact on the opposite node is small.
  • a cluster system having a set of ACT-SBY configurations it is not necessary to mount a distribution mechanism for a plurality of nodes on the opposite node side. That is, the ACT-SBY configuration is easier to introduce a redundant configuration than the N-ACT configuration and is more widely adopted.
  • the server device being processed also plays the role of a standby system for other server devices at the same time without causing a dedicated server device for the standby system (SBY) to wait as in the ACT-SBY configuration. Therefore, the N-ACT configuration may be introduced for the purpose of improving the utilization efficiency of equipment.
  • the multiplicity of the cluster system that is, the number of server devices
  • the processing capacity is insufficient. There is a fear.
  • the ACT-SBY configuration one dedicated standby system (SBY) is provided for each active system (ACT). Therefore, even when a failure occurs, operation can be continued with the same number of server devices as before the failure. That is, it can be said that the ACT-SBY configuration is a system having higher fault tolerance than the N-ACT configuration. Therefore, in a carrier system that requires high reliability and availability (for example, even if one server device fails, the remaining server device is required to provide the required processing capacity), the N-ACT configuration is generally used. Also, the ACT-SBY configuration is more suitable.
  • the cluster system with the ACT-SBY configuration is targeted.
  • a split brain state which will be described later, may occur in a cluster having an ACT-SBY configuration.
  • the present invention solves at least one problem associated with split brain in ACT-SBY configurations.
  • heartbeat packets are normally transmitted to each other at regular time intervals (for example, every second).
  • the status of the own node for example, information indicating whether the node is operating normally or whether the node status is the active system or the standby system
  • the status of the own node is notified to the opposite node.
  • the standby node if the heartbeat packet from the opposite node (active node) has not arrived for a certain period of time (that is, when a timeout occurs), it is determined that a failure has occurred in the opposite active node, and the active node itself Operation as a system (for example, activation of a service, validation of a floating IP address, etc., that is, failover processing) is started. In such a cluster system, the problem described in detail below may occur.
  • the failover process functions without any problem using the above mechanism.
  • the service can be continued by switching the standby system to the active system.
  • the interruption of the arrival of the heartbeat packet is not caused by a failure of the active node, but may be caused by a temporary failure or unstable operation of the network on the heartbeat communication path.
  • the active node continues to operate as it is.
  • both nodes operate as the active system, which is a so-called “split brain”. In the split brain state, generally, consistency between both nodes in the cluster is lost, and normal operation cannot be performed. Therefore, it is required to avoid the occurrence of split brain (first problem) due to communication failure of heartbeat packets.
  • a problem may occur even in a cluster system having a DB (Database) in the local disk of each server device (a system that synchronizes DBs in both local disks as needed) without using a shared disk.
  • DB Database
  • nodes operate independently as the active system, and each local data is updated to ensure data consistency between both nodes. May be lost.
  • both nodes activate (validate) the same floating IP address while split brain is occurring. Service).
  • an external node an opposite node or an end user terminal that is interconnected
  • that accesses the cluster system becomes inaccessible to the cluster system or is routed to any node that can be reached depending on IP routing. Will be.
  • packet loss and temporary packet delivery delay may occur.
  • the heartbeat packet between the two nodes is usually connected between sites rather than a high-speed dedicated line. May be exchanged via an IP network (WAN (Wide Area Network), etc.). In such a case, the heartbeat packet is likely to be interrupted or delayed.
  • IP network Wide Area Network
  • a method may be considered in which the timeout period from the detection of heartbeat packet interruption to the determination of the opposite node failure is set in advance to lower the probability of occurrence of failover.
  • the timeout period from the detection of heartbeat packet interruption to the determination of the opposite node failure is set in advance to lower the probability of occurrence of failover.
  • Second Problem In the cluster system having the ACT-SBY configuration, there is a problem (second problem) in which the service being executed is affected after split brain occurs.
  • the service can be completed with only a single request / response, the service is completed by accessing the active system that has survived by retrying, so the impact on the service is small.
  • synchronization between nodes in the call state is not performed at the timing of recovery from the split brain. Therefore, the call is not relieved at the timing of switching to the standby system, and the call is disconnected.
  • it is required to maintain a connected call as much as possible even when an abnormality occurs / restoring operation such as interruption of heartbeat communication.
  • the former active node will transition to the standby system immediately after split brain occurrence. It is necessary to prevent. That is, in such a case, it is desirable that the original working node maintains the operation of the working system for at least a certain period.
  • both nodes can use heartbeat packets. Can exchange information on the number of transactions and sessions (calls) held by the node. At this time, for example, after the session information of the node with the smaller number of sessions is synchronized with the other node via the heartbeat communication path, the node with the smaller number of sessions can be immediately transitioned to the standby system.
  • the node that knows that the split brain has occurred receives the heartbeat packet. Only the former active node on the other side. At this time, whether or not to cancel the split brain by changing its own node to the standby system and the timing thereof are left to the determination of the former active node.
  • both nodes performing the operation of the active system perform the operation of the active system in the same manner as the own node based on the information in the received heartbeat packet. Know that you are.
  • the heartbeat packet from the original active system to the original standby system is interrupted due to a temporary network problem
  • delivery of the heartbeat packet may be restored immediately after the failover occurs (the original When the heartbeat packet from the active system to the original standby system recovers, the original standby node that has just started the active system detects that the system is in the split brain state, and then restarts itself. May be transitioned to.)
  • the former working node immediately stops working as the working system. It is not always appropriate to change to the standby system and eliminate the split brain. This is because such an operation may increase the impact on the service being executed. That is, when the original working node immediately transitions to the standby system, most of the transactions and calls held by the original working node are discarded and the service is greatly affected.
  • the system when the former active node detects that the opposite node (former standby node) has started to operate as the active node via the heartbeat packet, the system is in a normal state while suppressing the impact on the service ( It is necessary to provide a method for restoring the operation in the active system / standby system).
  • Patent Document 1 discloses a technique related to the first problem (that is, occurrence of split brain due to non-delivery of a heartbeat packet due to a network failure).
  • Patent Document 1 discloses a situation in which a single communication path is used to exchange heartbeat packets as in the present invention (for example, when a plurality of communication paths between sites cannot be secured as in a geographically redundant configuration). Or a case where a part of these communication paths cannot be used in the event of a disaster although there are a plurality of communication paths.
  • the following techniques are known as techniques for solving the first problem. That is, in order to accurately grasp the state of the opposite node in the cluster system, a technique is known that uses not only heartbeat packets between two nodes but also information from a third server device (Witness server device). Yes. Specifically, when the heartbeat packet from the opposite active node stops, the standby node also indicates that the information acquired from the Witness server device indicates a failure on the opposite active node Failover processing is executed only for. However, according to such a method, it is necessary to additionally install a third server device in the system, which may increase the cost.
  • a third server device which may increase the cost.
  • Patent Document 2 discloses a technique related to the second problem (a problem that affects a service being executed after split brain occurs).
  • the technique described in Patent Document 2 executes processing within the time allotted to each node. Therefore, such a technique is not suitable for a system such as a telecom system in which the call information is continuously held in the same node and a process related to the call needs to be continued while the call is connected. .
  • Patent Document 3 discloses a split brain recovery method, according to such a method, when a split brain occurs, the effect on the service being executed cannot be suppressed when the system is returned to a normal state.
  • Patent Document 4 discloses a general failover operation in a cluster system having a redundant function. That is, such a technique does not contribute to preventing erroneous failover (or split brain) caused by unstable operation, congestion, failure, or the like of the heartbeat communication network.
  • An object of the present invention is to provide a server device, a cluster system, a cluster control method, and a program that contribute to solving such a problem.
  • Other problems and solving means will be clarified in the description of embodiments described later.
  • the server device is one server device (first server device) in a cluster system including two server devices that operate as an active system or a standby system.
  • This server device includes a heartbeat transmission / reception unit that transmits and receives heartbeat packets to and from the opposite server device (second server device). Further, the server device (first server device) times out for transitioning the operation of the own server device (that is, the first server device) from the standby system to the active system according to the reception status of the heartbeat packet.
  • a counter node monitoring unit for adjusting the period is provided.
  • the cluster system according to the second aspect of the present invention includes the first server device according to the first aspect as one of two server devices that operate as an active system or a standby system.
  • the cluster control method is a cluster control method by one server device (first server device) in a cluster system including two server devices operating as an active system or a standby system.
  • the cluster control method includes a step of transmitting and receiving a heartbeat packet to and from an opposing server device (second server device). Further, the cluster control method includes a step of adjusting a timeout period for transitioning the operation of the own server device (first server device) from the standby system to the active system in accordance with the reception status of the heartbeat packet.
  • a program according to a fourth aspect of the present invention is provided for a computer provided in one server device (first server device) in a cluster system including two server devices that operate as an active system or a standby system. Execute the process.
  • the program executes processing for transmitting and receiving heartbeat packets to and from the opposite server device (second server device). Further, the program executes a process of adjusting a timeout period for transitioning the operation of the own server device (first server device) from the standby system to the active system according to the reception status of the heartbeat packet.
  • the program can also be provided as a program product recorded in a non-transitory computer-readable storage medium.
  • the server apparatus cluster system, cluster control method and program according to the present invention, it is possible to prevent a service degradation due to a heartbeat packet communication failure in the cluster system.
  • the present invention converts the cluster system shown in the background art into a cluster system with greatly improved reliability and availability.
  • FIG. 10 is a sequence diagram which illustrates the composition of the server device concerning one embodiment. It is a block diagram which illustrates the composition of the cluster system concerning an embodiment. It is a figure which illustrates the structure of the heartbeat packet in 1st Embodiment. It is a flowchart which illustrates operation
  • FIG. 10 is a sequence diagram illustrating an operation of a cluster system according to a third embodiment.
  • connection lines between blocks in the drawings used in the following description include both bidirectional and unidirectional directions.
  • the unidirectional arrow schematically shows the main signal (data) flow and does not exclude bidirectionality.
  • FIG. 1 is a block diagram illustrating the configuration of a server device 2 according to an embodiment.
  • the server apparatus 2 is one server apparatus (2A or 2B) in the cluster system 1 (FIG. 2) including two server apparatuses 2A and 2B that operate as an active system or a standby system.
  • the server device 2 operates a standby system in response to a heartbeat transmission / reception unit 6 that transmits and receives heartbeat packets to and from the opposite server device, and according to the reception status of the heartbeat packet.
  • a counter node monitoring unit 5 that adjusts a timeout period for transitioning from the active system to the active system.
  • the opposite node monitoring unit 5 determines whether the delay time until the heartbeat packet is received or the delay time until the heartbeat packet is received is greater than or equal to a predetermined threshold according to the reception status of the heartbeat packet. If present), the timeout period can be extended. Therefore, according to the server device 2, it is possible to reduce the probability of occurrence of split brain due to heartbeat packet communication failure in the cluster system 1, and to prevent degradation of service due to split brain.
  • the server device 2 compares the number of sessions held by the server device with the number of sessions held by the opposite server device, and maintains the operation of the server device in the active system, or And a cluster management unit 3 for determining whether to make a transition to the standby system.
  • the cluster management unit 3 for example, the cluster management unit 3 of the server apparatus 2B
  • the cluster management unit 3 of the server apparatus 2B after the occurrence of split brain (for example, steps C11 and C12 in FIG. 7), the number of sessions (n) held by the own server apparatus (2B). Is larger than the number of sessions (m) held by the opposing server apparatus (2A) (n> m), the operation of the own server apparatus (2B) is maintained as the active system (steps C25 and C32 in FIG. 7).
  • the cluster system 1 can be restored from the split brain state to the normal state while suppressing the influence on the service.
  • step D14 in FIG. 8 only the heartbeat packet from the active server device (2B) to the standby server device (2A) is blocked (step D14 in FIG. 8), and split brain may occur (for example, step in FIG. 8).
  • the cluster management unit 3 (the cluster management unit 3 of the server device 2B) has the number of sessions (m) held by the opposing server device (2A) greater than the number of sessions (n) held by the own server device (2B).
  • step D62 in FIG. 8 the operation of the own server device (2B) is shifted to the standby system (step D63 in FIG. 8). In other cases, the operation of the own server device is maintained as the active system. May be.
  • the server device 2 even if the heartbeat from the active system to the standby system is disconnected and split brain occurs, and then heartbeat communication is not restored and data synchronization cannot be performed, The influence can be suppressed.
  • the reason for this is that the node that detects the occurrence of split brain (ie, the former active node) immediately transitions to the standby system after waiting for a predetermined condition to be satisfied, instead of immediately transitioning to the standby system. .
  • the cluster system of this embodiment aims to solve the first problem described above.
  • the cluster system of the present embodiment aims to prevent the occurrence of failover (split brain) due to misidentification as a failure of the opposite node due to temporary interruption or delay of heartbeat packets due to unstable network operation.
  • FIG. 2 is a block diagram illustrating the configuration of the cluster system 1 according to this embodiment.
  • FIG. 2 also shows the client terminal 9 and other nodes 10 that access the cluster system 1 via the call processing network 8.
  • the cluster system 1 includes server devices 2A and 2B connected via a heartbeat network 7.
  • Server apparatuses 2A and 2B are usually installed in the same site. During normal operation, one of the server devices 2A and 2B operates as the active system, and the other operates as the standby system.
  • the server apparatus 2 and the like when it is not necessary to distinguish the server apparatuses 2A and 2B, they are collectively referred to as the server apparatus 2 and the like.
  • the server device 2 operating as the active system validates a floating IP (Internet Protocol) address and communicates with the client terminal 9 and other call processing nodes (other nodes 10 in FIG. 2) via the call processing network 8.
  • a floating IP Internet Protocol
  • each of the server apparatuses 2A and 2B includes a cluster management unit 3, a load monitoring unit 4, an opposite node monitoring unit 5, and a heartbeat transmission / reception unit 6.
  • the heartbeat transmission / reception unit 6 transmits / receives heartbeat packets to / from opposite nodes.
  • the heartbeat transmission / reception unit 6 of each server device 2 periodically transmits heartbeat packets to the partner node via the heartbeat network 7.
  • the cluster management unit 3 manages the cluster status (active / standby) of the own node. When the own node is in the standby state and the heartbeat packet from the opposite node (active system) times out, the cluster management unit 3 activates failover processing and switches the own node to the active operation.
  • the load monitoring unit 4 monitors the load state of the own node (for example, CPU (Central Processing Unit) usage rate).
  • CPU Central Processing Unit
  • the opposite node monitoring unit 5 monitors the state of the opposite node based on the heartbeat packet received from the opposite node. Further, the opposite node monitoring unit 5 adjusts a timeout period for transitioning the operation of the server device from the standby system to the active system according to the reception status of the heartbeat packet. The opposite node monitoring unit 5 extends the timeout period when the heartbeat packet is lost or when the delay time until the heartbeat packet is received is equal to or greater than a predetermined threshold. Further, the opposing node monitoring unit 5 may extend the timeout period when the load of the opposing server device 2 is equal to or less than a predetermined threshold.
  • FIG. 3 is a diagram illustrating the configuration of a heartbeat packet.
  • the heartbeat packet includes “sequence number”, “node state information (active / standby system)”, and “load state information”.
  • the “sequence number” is an integer value that is updated (for example, incremented or decremented) every time a heartbeat packet is transmitted.
  • “Node status information (active / standby)” is a value representing the cluster status (active / standby) of the own node.
  • “Load status information” is a value representing the load status (CPU usage rate, etc.) of the own node.
  • the heartbeat transmission / reception unit 6 updates the “sequence number” every time a heartbeat packet is transmitted and sets it in the heartbeat packet. Further, the heartbeat transmission / reception unit 6 acquires the cluster state (active / standby system) of the own node from the cluster management unit 3 and sets it in “node state information” of the heartbeat packet. Further, the heartbeat transmission / reception unit 6 acquires the load state of the own node from the load monitoring unit 4 and sets it in “load state information” of the heartbeat packet.
  • FIG. 4 is a flowchart illustrating the operation of the heartbeat transmitting side node.
  • the heartbeat transmission / reception unit 6 of the server device 2 on the side of transmitting the heartbeat packet sets (sets) the information shown in FIG. 3 in the heartbeat packet to be transmitted (step A1).
  • the heartbeat transmission / reception unit 6 transmits the heartbeat packet created in step A1 to the heartbeat transmission / reception unit 6 of the opposite node via the heartbeat network 7 (step A2).
  • the heartbeat transmission / reception unit 6 suspends processing for a preset heartbeat transmission interval (for example, 1 second) (step A3), and then returns to setting the heartbeat packet (step A1). Thereafter, the heartbeat transmission / reception unit 6 repeats the same processing.
  • a preset heartbeat transmission interval for example, 1 second
  • FIG. 5 is a flowchart illustrating the operation of the node on the heartbeat receiving side.
  • the heartbeat interruption time-out period (that is, the period until it is determined as a failure) ) Is set to a fixed value (eg, 3 seconds).
  • the opposite node monitoring unit 5 dynamically changes the timeout period in accordance with a packet drop (missing) or a delay tendency (for example, statistical behavior).
  • the opposite node monitoring unit 5 of the server device 2 holds a variable representing a heartbeat timeout period.
  • the opposite node monitoring unit 5 sets a default value (for example, 3 seconds) for the variable at the time of system startup (step B1).
  • the opposite node monitoring unit 5 starts a heartbeat monitoring timer (step B2).
  • the heartbeat transmission / reception unit 6 starts receiving heartbeat packets from the opposite node (step B3).
  • the opposite node monitoring unit 5 checks whether or not a heartbeat packet has been received from the opposite node before the heartbeat monitoring timer times out (step B4).
  • the opposite node monitoring unit 5 reads the state of the own node (whether the active system or the standby system) from the cluster management unit 3, and the own node is the standby system (Step B5).
  • Step B5 When the state of the own node is the standby system (Yes in Step B5), the cluster management unit 3 executes a failover process and transitions the own node to the active system (Step B6).
  • Step B5 if the heartbeat packet is received before the timeout (Yes in Step B4), or the state of the own node is not the standby system (No in Step B5), the opposite node monitoring unit 5 Read the sequence number. Thereby, the opposite node monitoring unit 5 confirms whether the sequence number is skipped (that is, there is a heartbeat packet that has not reached) (step B7).
  • step B7 If there is a jump in the sequence number (Yes in step B7), the process of the opposite node monitoring unit 5 proceeds to step B9. On the other hand, when there is no jump in the sequence number (No in Step B7), the process of the opposite node monitoring unit 5 proceeds to Step B8.
  • the opposite node monitoring unit 5 confirms the arrival time of the received heartbeat packet (step B8).
  • the delay time from the average arrival interval is equal to or greater than a preset threshold value (Yes in step B8), the process of the opposite node monitoring unit 5 proceeds to step B9.
  • the opposite node monitoring unit 5 reads the load state information (FIG. 3) in the received heartbeat packet, and checks whether the load state (for example, CPU usage rate) of the opposite node is equal to or less than a preset threshold ( Step B9). When the load on the opposite node exceeds the threshold (No in Step B9), the opposite node monitoring unit 5 causes the observed missing heartbeat packet (sequence number skip) or the arrival delay of the heartbeat packet to be a phenomenon caused by the network. Instead, it is determined that it is due to the high load of the opposite node. At this time, the opposite node monitoring unit 5 returns to the heartbeat monitoring timer activation process (step B2) without recalculating (changing) the heartbeat timeout period, and monitors the next heartbeat packet.
  • the load state for example, CPU usage rate
  • the opposite node monitoring unit 5 determines whether the load on the opposite node is less than or equal to the threshold (Yes in step B9). If the load on the opposite node is less than or equal to the threshold (Yes in step B9), the opposite node monitoring unit 5 indicates that the missing heartbeat packet (jumped sequence number) or the arrival delay of the heartbeat packet is higher than the opposite node. Judged to be due to network congestion, unstable operation, failure, etc., not due to load. At this time, in order to prevent erroneous failover, the opposite node monitoring unit 5 performs recalculation so as to lengthen the heartbeat timeout period (step B10).
  • the opposite node monitoring unit 5 calculates the heartbeat timeout period using, for example, the following equation (1).
  • Heartbeat timeout period (s) Default value of heartbeat timeout period (s) + ⁇ ⁇ number of missing consecutive heartbeat packets (number of skipped sequence numbers) ⁇ + ⁇ ⁇ heartbeat packet arrival delay time (s) ⁇ (1)
  • ⁇ and ⁇ are parameters set in advance in the system.
  • step B10 When the opposite node monitoring unit 5 recalculates the heartbeat timeout period (step B10), the process returns to the heartbeat monitoring timer activation process (step B2) and monitors the next heartbeat packet using the new heartbeat timeout period.
  • the opposite node monitoring unit 5 has a normal network state. Judge that it has returned. At this time, the opposite node monitoring unit 5 overwrites the heartbeat timeout period with the initial value (default value) (step B11), returns to the heartbeat monitoring timer start process (step B2), and monitors the next heartbeat packet. .
  • the arrival of the heartbeat is interrupted due to instability or failure of the network even though the active node is operating normally.
  • the cluster system of this embodiment solves the second problem described above that occurs when heartbeat packets are interrupted (timeout) in both directions between the active system and the standby system, and thereafter heartbeat packets are recovered in both directions.
  • the present embodiment aims to restore the cluster system to a normal state while suppressing the influence on the service when the heartbeat packet is interrupted in both directions and a split brain occurs.
  • split brain occurs as in this embodiment, for example, the heartbeat packet from the active node is interrupted and timed out and failed over at the standby node. There may be a case where the original working system continues to operate as the working system.
  • the cluster system it is preferable to change the cluster system to a normal state (operation in the active / standby system) while suppressing the influence on the service. Therefore, in the present embodiment, the following processing is executed in both server apparatuses 2 that are both in active operation in the split brain state. That is, after the communication of the bi-directional heartbeat packet is restored, the two server apparatuses 2 exchange information on the number of transactions and sessions held in their own nodes at that time by using the heartbeat packet. To do. Further, the server device 2 with the smaller number of transactions and sessions held synchronizes the held session information with the other server device 2 and then transitions to the standby system.
  • the server device 2 with the smaller number of transactions and sessions held synchronizes the held session information with the other server device 2 and then transitions to the standby system.
  • the cluster management unit 3 compares the number of sessions held by the own server device with the number of sessions held by the opposite server device, and maintains the operation of the own server device as the active system, or Determine whether to transition to the standby system. For example, when the number of sessions held by the own server device is larger than the number of sessions held by the opposite server device, the cluster management unit 3 maintains the operation of the own server device as the active system. The server device operation is shifted to the standby system.
  • FIG. 6 is a diagram illustrating a configuration of a heartbeat packet in the present embodiment.
  • the heartbeat packet of this embodiment further includes “holding session number information” and “system state transition declaration flag”. (Active / Standby) ". “Holding session number information” is information indicating the number of sessions held by the own node.
  • the “system state transition declaration flag (active / standby system)” is a flag for notifying the counterpart node that the local node is transitioning to the active / standby system.
  • the heartbeat transmission / reception unit 6 sets the number of sessions held by its own node as “holding session number information” in the heartbeat packet.
  • the heartbeat transmission / reception unit 6 is information indicating the state of the own node (the active / standby system). Is set as a “system state transition declaration flag (active / standby system)” in the heartbeat packet.
  • FIG. 7 is a sequence diagram illustrating the operation of the cluster system 1 in this embodiment.
  • step C11 and C12 there is a split brain in which both the server apparatuses 2A and 2B perform the active operation. Further, due to congestion, unstable operation, failure, etc. of the heartbeat network 7, the heartbeat packet between both nodes is disconnected in both directions (step C13).
  • both nodes receive the heartbeat packet from the partner node (steps C22 and C23).
  • the received heartbeat packet includes information regarding the number of sessions held by the counterpart node (that is, another node that has transmitted the heartbeat packet).
  • the cluster management unit 3 of each node compares the number of held sessions of the partner node with the number of held sessions of the own node (steps C24 and C25).
  • the number of sessions held by the server apparatuses 2A and 2B is m and n, respectively.
  • the cluster management unit 3 determines to transition to the standby system when the number of sessions of the own node is smaller than the number of sessions of the partner node. At this time, the heartbeat transmission / reception unit 6 uses the “system state transition declaration flag” (FIG. 6) in the heartbeat packet to notify the partner node that the local node will transition to the standby system (step C32). On the other hand, when the number of sessions of the own node is larger than that of the counterpart node, the cluster management unit 3 determines to continue the operation of the active system. At this time, the heartbeat transmission / reception unit 6 uses the “system state transition declaration flag” (FIG. 6) in the heartbeat packet to notify the partner node that the own node will continue the active system (step C33).
  • the heartbeat transmission / reception unit 6 uses the “system state transition declaration flag” (FIG. 6) in the heartbeat packet to notify the partner node that the own node will continue the active system (step C33).
  • the server apparatus 2A checks the “system state transition declaration flag” included in the heartbeat packet received from the partner node (server apparatus 2B).
  • the server apparatus 2A first stops accepting new call requests entering the own node (step C41).
  • the data regarding the session state of the existing call held in the own node is transferred to the opposite node (server apparatus 2B that continues the operation of the active system) via the heartbeat network 7 (step C42).
  • the data relating to the session state is data necessary for continuing the call processing when the server device 2 is a call processing server device.
  • data is represented by, for example, a set of a source telephone number (or user name), a destination telephone number (or user name), a session ID (Identifier), a session timer value, billing information, and the like.
  • step C51 When the transfer of the data related to the session state is completed and a response of synchronization completion is received from the opposite node (that is, the server apparatus 2B that continues the operation of the active system) (step C51), the cluster management unit 3 of the server apparatus 2A Transition to the standby system (step C52).
  • “standby system” is set in the node state information (FIG. 6) in the heartbeat packet transmitted from the server apparatus 2A (ie, the node that has transitioned to the standby system) (step C62).
  • the server apparatus 2B that is, the node that continues the operation of the active system confirms that the opposite node has completed the transition to the standby system.
  • “active system” is set in the node state information (FIG. 6) in the heartbeat packet transmitted from the server apparatus 2B (that is, the node transitioned to the active system) (step C63).
  • the server apparatus 2A grasps that the opposite node performs the active operation.
  • one node after synchronizing the existing call session state information between both nodes, one node is transitioned to the standby system to recover the normal active / standby operation state.
  • the cluster system can be restored to the normal operating / standby operating state while suppressing the influence on the service.
  • the node having a relatively large number of sessions is maintained as the active system. Therefore, according to the present embodiment, it is possible to restore the cluster system from the split brain state to the normal state while suppressing the influence on the service.
  • the heartbeat packet interruption is only in one direction from the active system to the standby system, and the reverse direction is the second problem that occurs when the heartbeat has reached.
  • the purpose is to eliminate.
  • the heartbeat packet is interrupted (timed out) in only one direction from the active system to the standby system and a split brain occurs, the effect on the service is suppressed and the cluster system is brought into a normal state
  • the purpose is to restore.
  • the standby system recognizes that a failure has occurred in the opposite node (active system), and starts operation as the active system. Also, the former active system can know via the heartbeat packet that the original standby system has started the operation as the active system. Normally, the former active system that knows that the split brain state has occurred stops the operation as the active system and shifts to the standby system in order to eliminate this state. However, this may cause other nodes and terminals connected to the original working system to be disconnected from the transaction or call, affecting the service. Therefore, in the present embodiment, the influence on the service is suppressed by adopting the following configuration and operation.
  • the configuration of the cluster system of this embodiment is the same as the configuration of the cluster system 1 (FIG. 2) in the first and second embodiments.
  • the configuration of the heartbeat packet in the present embodiment is the same as the configuration of the heartbeat packet in the second embodiment (FIG. 6).
  • the difference between the present embodiment and the second embodiment will be mainly described.
  • the cluster management unit 3 confirms that the number of sessions held by the opposing server device is greater than the number of sessions held by the own server device, or that the opposing server device has started the operation of the active system. When a predetermined period of time has elapsed after grasping, the operation of the own server device is shifted to the standby system. On the other hand, in other cases, the cluster management unit 3 maintains the operation of its own server device as the active system.
  • FIG. 8 is a sequence diagram illustrating the operation of the cluster system 1 according to this embodiment.
  • server device 2A performs standby operation (step D11), while server device 2B performs active operation (step D12).
  • step D11 server device 2B performs active operation
  • step D12 the cluster system 1 is operating normally.
  • only the heartbeat packet from the server apparatus 2B (active system) to the server apparatus 2A (standby system) is blocked due to congestion, unstable operation, failure, etc. of the heartbeat network 7 (steps D13 to D15).
  • the heartbeat monitoring timer times out (step D2).
  • the cluster management unit 3 of the server apparatus 2A executes a failover process, and transitions its own node to the active system (step D3). At this time, a split brain is generated in which both the server apparatuses 2A and 2B perform the operation of the active system.
  • the heartbeat transmission / reception unit 6 of the server device 2A sets the node status information in the heartbeat packet (FIG. 6) to “active” and transmits it to the server device 2B (original active system) (step). D42).
  • the heartbeat packet from the server apparatus 2A (former standby system) to the server apparatus 2B (former active system) is communicated (step D41). Accordingly, the server apparatus 2B (former active system) detects that the server apparatus 2A (former standby system) has started the operation as the active system (that is, that a split brain has occurred) (step D51). Note that the heartbeat packet from the server apparatus 2B (former active system) to the server apparatus 2A (former standby system) remains disconnected (step D52).
  • the server device 2B (the former active system) continues the operation as the active system until a predetermined condition is satisfied (step D6). If the predetermined condition is satisfied, the server apparatus 2B (former active system) transitions to the standby system (step D63).
  • the cluster management unit 3 of the server device 2B may transition its own node to the standby system when either or both of the following (a) and (b) are satisfied (step D63).
  • step D61 In the cluster management unit 3 of the server device 2B (original active system), the number of sessions held by the opposite node (server device 2A, original standby system) is larger than the number of sessions held by the own node. If this occurs (Yes in step D61), the local node is shifted to the standby system (step D63). Specifically, the server apparatus 2B (former working system) performs the following procedure.
  • the cluster management unit 3 of the server apparatus 2B counts the number of sessions held by the opposing node (server apparatus 2A, original standby system) included in the heartbeat packet received from the opposing node (server apparatus 2A, original standby system) (m ) Is compared with the number of sessions (n) held by the own node (step D61).
  • step D61 When the number of sessions (n) held by the own node is smaller than the number of sessions (m) held by the partner node (n ⁇ m) (Yes in step D61), the cluster management unit 3 moves the own node to the standby system. Transition is made (step D63).
  • step D51 when the server apparatus 2A (former standby system) that is opposed to the server apparatus 2A has started the operation as the active system by using the heartbeat packet (step D51), when a predetermined standby time has elapsed (step D51) In step D62, the cluster management unit 3 of the server apparatus 2B changes its own node to the standby system (step D63).
  • the predetermined waiting time can be specified by the following method, for example. ⁇ Fixed values (specified as system settings, etc.) ⁇ Set dynamically from statistics of heartbeat packet reception
  • the predetermined waiting time can be obtained by multiplying the number of missing heartbeat packets and the arrival delay time received by the server apparatus 2B (original working system) by the coefficient.
  • the predetermined waiting time can be calculated using the following equation (2).
  • Standby time (s) ⁇ 2 + ⁇ 2 ⁇ number of missing consecutive heartbeat packets (number of skipped sequence numbers) ⁇ + ⁇ 2 ⁇ heartbeat packet arrival delay time (s) ⁇ (2)
  • ⁇ 2, ⁇ 2, and ⁇ 2 are parameters set in advance in the system.
  • step D6 the server apparatus 2B (original active system) to the server apparatus 2A (original standby system) ) Is restored (step D71), the same operations as those after step C31 in FIG. 7 are executed. That is, both nodes exchange information on the number of sessions held by the nodes at that time using heartbeat packets (step D72).
  • the node with the smaller number of sessions to be held transmits the existing call session state information held to the other node (see step C42 in FIG. 7), and receives the synchronization completion response of the session state information (see FIG. 7). 7) (see step C51 in FIG. 7), transition to the standby system (see step C52 in FIG. 7).
  • heartbeat packets may be exchanged via the call processing network 8 instead of the heartbeat network 7 dedicated to the heartbeat.
  • the original active server device 2B which has grasped that the original standby server device 2A has started the operation of the active system by referring to the heartbeat packet, satisfies the predetermined condition. The operation of the active system is continued until it is satisfied (FIG. 8).
  • the original active server apparatus 2B may transition to a suspended state in which the execution of the process is stopped while holding the call and transaction information in the own node.
  • the original active server device 2B may execute the transition operation to the standby system.
  • the heartbeat communication from the original active server device 2B to the original standby server device 2A is restored before the original active server device 2B transitions to the standby system.
  • both nodes exchange information on the number of sessions held by the nodes at the time of recovery using heartbeat packets.
  • the server device 2 having a relatively small number of sessions synchronizes existing call session state information with the opposite node, and then transitions to a standby system. Thereafter, the same operation as in the third embodiment may be performed.
  • the former standby server apparatus 2A transitions to the standby system again, while the former active server apparatus 2B continues to operate as the active system, the following may be performed. That is, the original active server device 2B may transition from the suspended state to the normal operating state using the call and session information held in the suspended state, and continue the service processing.
  • [Form 1] It is as the server apparatus (1st server apparatus) which concerns on the said 1st aspect.
  • the said opposing node monitoring part is a 1st server apparatus of the form 2 extended in the said timeout period, when the load of the said opposing server apparatus is below a predetermined threshold value.
  • the cluster management unit when the number of sessions held by the opposing second server device is larger than the number of sessions held by the own server device, transitions the operation of the own server device to a standby system, otherwise, 5.
  • the first server device according to mode 4 wherein the operation of the first server device is maintained as an active system.
  • the cluster management unit shifts the operation of the first server device to a standby system when a predetermined period has elapsed since the fact that the opposing second server device has started the operation of the active system. In other cases, the first server device according to mode 4, wherein the operation of the first server device is maintained as the active system.
  • the heartbeat transmission / reception unit includes a sequence number that is updated each time the heartbeat packet is transmitted and includes the heartbeat packet and transmits the sequence number to the opposing second server device. 1st server apparatus.
  • the heartbeat transmission / reception unit includes information indicating a load of the first server device included in the heartbeat packet and transmits the information to the second server device facing thereto, according to any one of modes 1 to 7. 1 server device.
  • the heartbeat transmission / reception unit includes any information indicating the number of sessions held by the first server device included in the heartbeat packet and transmits the information to the second server device facing the first one. 1st server apparatus.
  • a cluster system comprising the first server device according to any one of Forms 1 to 9 as one of two server devices operating as an active system or a standby system.
  • the cluster control method according to the third aspect is as described above.
  • the cluster control method according to mode 11 wherein the timeout period is extended when the heartbeat packet is lost or when the delay time until the heartbeat packet is received is equal to or greater than a predetermined threshold.
  • the cluster control method according to mode 12 wherein the time-out period is extended when the load of the opposing second server device is equal to or less than a predetermined threshold.

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Environmental & Geological Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Hardware Redundancy (AREA)

Abstract

クラスタシステムにおいてハートビートパケットの通信障害に起因するサービスの低下を防ぐこと。現用系または待機系として動作する2台のサーバ装置を備えたクラスタシステムにおける第1のサーバ装置は、対向する第2のサーバ装置との間でハートビートパケットを送受信するハートビート送受信部と、ハートビートパケットの受信状況に応じて、前記第1のサーバ装置の動作を待機系から現用系に遷移するためのタイムアウト期間を調整する対向ノード監視部と、を備えている。

Description

サーバ装置、クラスタシステム、クラスタ制御方法およびプログラム
 (関連出願についての記載)
 本発明は、日本国特許出願:特願2016-205939号(2016年10月20日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
 本発明は、サーバ装置、クラスタシステム、クラスタ制御方法およびプログラムに関し、特にクラスタシステムに設けられたサーバ装置、複数のサーバ装置を備えたクラスタシステム、クラスタ制御方法およびプログラムに関する。
 高信頼性または高可用性を要求されるシステムにおいては、システムを冗長化して、複数のサーバ装置でクラスタシステムを構成する手法が用いられる。
 クラスタシステムの主な構成として、アクティブ・スタンバイ(ACT-SBY、Active-Standby)構成およびN-ACT(Active)構成が知られている。
 ACT-SBY構成は、2台のサーバ装置を備えている。通常運転時には現用系(ACT、Active)のサーバ装置のみが有効化され、待機系(SBY、Standby)のサーバ装置は無効化される。現用系(ACT)のサーバ装置に障害が生じた場合、現用系(ACT)のサーバ装置の処理が待機系(SBY)のサーバ装置に引き継がれることでサービスの提供が維持される。
 一方、N-ACT構成は、複数のサーバ装置を同時に稼働させる。すなわち、N-ACT構成は、処理中のサーバ装置が同時に他サーバ装置の予備系の役割を担う冗長化構成である。
 関連技術として、特許文献1には、ハートビートLAN(Local Area Network)経由での監視用信号(ハートビート)の疎通ができなくなった場合に、ハートビートの送信経路を一般LAN経由に切り替える技術が記載されている。
 また、特許文献2には、各ノード上でそれぞれ処理を実行できる割当て時間を算出し、各ノードは割当てられた時間内で処理を実行することで、両ノードで処理が同時に起動しないようにする技術が記載されている。
 さらに、特許文献3には、遠隔クラスタシステムがネットワーク障害で分断されたとき、障害発生後に双方のサーバ装置で更新したデータを障害復旧後に双方で差異が生じないように復旧するためのスプリットブレインリカバリ方式が記載されている。
 また、特許文献4には、対象サーバから定期的に送信されるハートビート信号を監視し、一定期間以上ハートビート信号を受信しなかった場合、対象サーバの障害発生を検出してフェイルオーバを実行する技術が記載されている。
特開2011-203941号公報 特開2006-048477号公報 特開2006-146299号公報 特開2015-032219号公報
 上記特許文献の全開示内容は、本書に引用をもって繰り込み記載されているものとする。以下の分析は、本発明者によってなされたものである。
 N-ACT(Active)構成においては、バックアップの多重度を柔軟に変更することができる。したがって、ACT-SBY(Active-Standby)構成と比較して設備の利用効率を高めることができる。また、後述するスプリットブレイン(split brain)のような問題も生じ難いというメリットもある。しかしながら、特にキャリア向け製品・ソリューションの分野では、N-ACT構成よりもACT-SBY構成を採用する場合が多い。その理由は、ACT-SBY構成には、以下(1)~(3)のような利点があるためである。
 (1)N-ACT構成の場合、同一のサービスを複数のサーバ装置内で多重起動させ、これらを同時に稼働させる。このとき、複数のACT(Active)ノード間のデータ整合性を維持するための同期メカニズムが必要とされる。状態データを持たないステートレスなクラスタシステムであれば、N-ACT構成を比較的容易に実現することができる。一方、状態データを持つステートフルなクラスタシステムでは、同期メカニズムのために高度な技術が必要とされる。したがって、一般的にN-ACT構成のクラスタシステムは高価となり、運用も難しいという問題がある。一方、ACT-SBY構成の場合、N-ACT構成よりも単純な技術によって実現することができる。したがって、ACT-SBY構成のシステムは、システム導入コストおよび運用コストを削減し易いという特長がある。キャリア向け製品/ソリューションにおいては、呼の状態を保持する必要があるステートフルシステムとなることが多い。したがって、N-ACT構成よりもACT-SBY構成の方が適用しやすいという面もある。
 (2)ACT-SBY構成の場合、フローティングIP(Internet Protocol)アドレスにより対向ノードから単一のIPアドレスでクラスタシステムにアクセスすることができる。したがって、冗長構成を組んだ場合であっても、対向ノードへのインパクトが少ないという利点がある。例えば、1組のACT-SBY構成のクラスタシステムであれば、対向ノード側に複数ノードへの振り分け機構を実装する必要がない。すなわち、ACT-SBY構成はN-ACT構成と比較して冗長構成を導入し易く、より広く採用されている。
 (3)N-ACT構成では、ACT-SBY構成のように予備系(SBY)専用のサーバ装置を待機させることなく、処理中のサーバ装置が同時に他サーバ装置の予備系の役割も果たす。したがって、N-ACT構成は、設備の利用効率を高める目的で導入されることがある。かかる目的でN-ACT構成を採用する場合、クラスタシステムの多重度(すなわちサーバ装置数)を極力少なくすることになる。したがって、システム内の1つまたは複数のサーバ装置がフェイルし(すなわち障害が発生し)、残りのサーバ装置の処理キャパシティ内で稼働を継続させる(すなわち縮退運転させる)場合、処理能力が不足するおそれがある。一方、ACT-SBY構成では、1台の現用系(ACT)につき1台の専用の待機系(SBY)が設けられる。したがって、障害が発生した場合でも、障害発生前と同数のサーバ装置で稼働を継続することができる。すなわち、ACT-SBY構成は、N-ACT構成よりも耐障害性が高いシステムであるといえる。したがって、高い信頼性と可用性を求められる(例えば1台のサーバ装置がフェイルしても残りのサーバ装置で所要の処理能力を提供することが求められる)キャリア向けシステムでは、一般にN-ACT構成よりもACT-SBY構成の方が適している。
 そこで、以下ではACT-SBY構成のクラスタシステムを対象とする。なお、ACT-SBY構成のクラスタにおいては、後述するスプリットブレインの状態が発生する可能性がある。本発明は、ACT-SBY構成におけるスプリットブレインに関連する少なくとも1つの問題を解決するものである。
 2ノードで構成されるACT-SBY構成のクラスタシステムにおいては通常、定期的な時間間隔(例えば1秒おき)でハートビートパケットを相互に送信し合う。これにより、自ノードの状態(例えば、正常動作しているか、ノード状態は現用系か待機系かなどを示す情報)を対向ノードに通知する。待機系ノードにおいては、対向ノード(現用系ノード)からのハートビートパケットが一定期間届かなかった場合(すなわちタイムアウト発生時)、対向する現用系ノードで障害が発生したものと判断し、自らが現用系としての動作(例えばサービスの起動、フローティングIPアドレスの有効化など、すなわちフェイルオーバ処理)を開始する。かかるクラスタシステムでは、以下に詳述する問題が生じるおそれがある。
[1]第1の問題
 上記のように、ACT-SBY構成のクラスタシステムでは、ハートビートパケットの通信障害に起因して以下に述べるスプリットブレインという現象が生じるという問題(第1の問題)がある。
 元現用系ノードにおいて実際に障害が発生してサービスが停止していた場合には、上述の機構によりフェイルオーバ処理が問題なく機能する。この場合、待機系が現用系に切り替わることでサービスの提供を継続することができる。一方、ハートビートパケット到達の途絶が現用系ノードの障害によるものではなく、ハートビート通信経路上のネットワークの一時的な障害または不安定動作に起因する場合がある。これらの原因によりハートビートパケットの喪失や送達遅延が発生した場合、現用系ノードはそのまま現用系の動作を継続している。このとき、待機系ノードが現用系としての動作を開始すると、両ノードがいずれも現用系として動作する、いわゆる「スプリットブレイン(split brain)」と呼ばれる状態に陥る。スプリットブレインの状態においては、一般に、クラスタ内の両ノード間の整合性が失われ、正常な動作ができなくなる。したがって、ハートビートパケットの通信障害に起因するスプリットブレインの発生(第1の問題)を回避することが求められる。
 クラスタシステムにおいてスプリットブレインの状態が生じると、さらに次のような問題も起こり得る。すなわち、共有ディスクを用いるシステムにおいては、両ノードから同時にデータ書き換えが発生することにより、データが破壊されるおそれがある。
 また、共有ディスクを用いることなく、各サーバ装置のローカルディスク内にDB(Database)を持つクラスタシステム(両ローカルディスク内のDBを随時同期するシステム)においても、問題が生じるおそれがある。かかるシステムでは上述のようなデータ破壊の危険性はない。しかし、本来クラスタ内のいずれかのサーバ装置のみが現用系として動作すべきところ、両ノードがそれぞれ独自に現用系として動作し、それぞれのローカルデータを更新することにより、両ノード間のデータの整合性が失われるおそれがある。
 両ノード間の通信復旧後にローカルデータを同期する機能を有し、データの復旧が可能なシステムであっても、スプリットブレインが発生している間は両ノードが同一のフローティングIPアドレスをactivate(有効化)してサービスを提供してしまう。このとき、クラスタシステムにアクセスする外部ノード(相互接続する対向ノードやエンドユーザ端末)は、クラスタシステムにアクセス不能となるか、または、IPルーティングに依存して到達可能ないずれかのノードにルーティングされることになる。
 また、接続中の呼/セッションにおいてその途中でアクセス先のノードが変わってしまった場合、サービスの継続が不可能となるケースがある。例えば、スプリットブレイン発生前に両ノード間のDBや呼/セッション情報の同期のための通信が途絶えており、これらの情報が待機系に引き継がれていなかった場合、このような問題が起こり得る。
 以上のように、スプリットブレインが発生した場合には、様々な問題が発生することが想定される。したがって、スプリットブレインを未然に防ぐ必要がある。
 また、IPネットワークにおいては、パケットの喪失や一時的なパケット送達の遅延が発生し得る。特に、クラスタシステム内の2つのノードをそれぞれ地理的に離れた別々のサイトに配置する地理的冗長構成を採用した場合、2ノード間のハートビートパケットは高速専用線ではなくサイト間を接続する通常のIPネットワーク(WAN(Wide Area Network)など)を経由してやりとりされることもある。このような場合、ハートビートパケットの途絶や遅延が発生する可能性が高くなる。
 ところで、ネットワーク障害によりハートビートパケットが一定時間届かないことによる誤ったフェイルオーバ(スプリットブレイン)の問題を解決するために、次の方法が考えられる。すなわち、ハートビートパケットの途絶を検知してから対向ノード障害と判断するまでのタイムアウト期間を予め長めに設定して、フェイルオーバの発生確率を下げる方法が考えられる。しかしながら、テレコム系システムのように高信頼性を要求されるシステムにおいては、ノード障害発生時におけるサービス停止時間を極力短くすることが求められる。したがって、対向ノードの障害発生を短時間で検知するために、ハートビートのタイムアウト期間も短く設定する必要があり、かかる方法を採用することは困難である。
 以上より、対向ノード障害の検知・フェイルオーバの応答性を極力維持しつつ、ネットワーク障害に起因するハートビートパケットの不達・遅延による不適切なフェイルオーバ(スプリットブレイン)の発生(第1の問題)を防ぐことが望まれる。
[2]第2の問題
 ACT-SBY構成のクラスタシステムでは、スプリットブレインが生じた後、実行中のサービスに影響が及ぶという問題(第2の問題)がある。
 第1の問題で述べたように、ACT-SBY構成のクラスタシステムでは、待機系ノードにて現用系からのハートビート到着が一定時間途絶してタイムアウトとなった場合、対向ノード障害と認識して自身が現用系としての動作を開始(すなわちフェイルオーバ処理を実行)する。しかし、実際にはノード障害ではなくネットワークの一時的な不通が原因であり、元現用系は現用系としての動作を継続している(すなわちスプリットブレインが生じる)場合がある。かかる場合においても、実行中のサービスへの影響を最小限に抑えつつ、正常状態に復帰させることが望ましい。
 その理由は、スプリットブレイン発生後もアクセス先のノードが変わらない呼/セッションにおいては、そのままサービス(呼接続)が継続している状態であり、これらの呼/セッションを維持する必要があるからである。また、スプリットブレイン発生後に新たに生成されたシステムへのトランザクション要求や呼処理要求についても、アクセスした方のノードによってサービス処理が実行されるため、これらを維持する必要もあるからである。 
 ハートビート疎通が復旧して相互のノードの状態を把握できるようになった場合、システムを通常の状態に戻すために、一方のノードを現用系として維持し、他方のノードを待機系に遷移させるという動作を速やかに実行する必要がある。なぜなら、スプリットブレインの状態では、上述の通りシステムへの様々な弊害が生じることに加えて、フェイルオーバが不可能な冗長性を欠いた異常な状態ともいえるからである。
 上記のように、スプリットブレイン発生後も継続している呼/セッションが存在する可能性がある。しかし、ハートビート復旧後に待機系に遷移させることになった方のノード上の呼やセッションに関しては、待機系への遷移動作を行った瞬間にサービス断となってしまう。
 単一のリクエスト/レスポンスのみで完結するサービスであれば、リトライすることで存続している現用系にアクセスしてサービスが完了するため、サービスへの影響は小さい。しかしながら、長時間に亘って通話の呼状態を維持する必要があるテレコム系システムにおいては、スプリットブレインから復旧させるタイミングにおいて呼状態のノード間での同期が行われていない。したがって、待機系への切り替えのタイミングで呼救済されず、呼切断となってしまう。しかし、高可用性が要求されるキャリア系システムにおいては、ハートビート通信の途絶といった異常発生時/復旧動作時においても、接続中の呼は可能な限り維持することが求められる。
 一例として、スプリットブレイン状態になる直前まで現用系として動作していたノードをスプリットブレイン発生直後にそのまま待機系に遷移させる方法が考えられる。しかし、かかる方法によると、システムに保持しているトランザクション/接続中セッション(呼)のほぼ全数が当該ノード上に存在するため、サービスへの影響が非常に大きくなるという問題がある。
 したがって、スプリットブレイン状態を検知しつつも、両ノード間でデータの同期およびセッション保持数の比較ができない状態となった場合、元現用系ノードがスプリットブレイン発生の直後に待機系に遷移することを防ぐ必要がある。すなわち、このような場合には、元現用系ノードは少なくとも一定期間に亘って現用系の動作を維持することが望ましい。
 ここで、スプリットブレイン状態を検知しつつも、両ノード間でデータの同期およびセッション保持数の比較ができない状態として、例えば、元現用系から元待機系への一方向のみのハートビートが途絶してスプリットブレインに至ったケースが考えられる。
 ハートビート通信が両方向について途絶してスプリットブレイン状態となった後、両方向のハートビート通信が復旧した状態(双方向の通信が可能になった状態)であれば、ハートビートパケットを用いて両ノードが自ノードが保持するトランザクションやセッション(呼)の数に関する情報を交換することができる。このとき、例えばセッション数が少ない方のノードのセッション情報を他方のノードにハートビート通信路を経由して同期した後、セッション数が少ない方のノードを即座に待機系に遷移させることができる。
 一方、元現用系から元待機系への一方向のハートビートパケットのみが途絶してスプリットブレインに至った状態では、スプリットブレインが発生したことを把握しているノードは、ハートビートパケットを受信している側の元現用系ノードのみとなる。このとき、自ノードを待機系に遷移させてスプリットブレインを解消するかどうか、および、そのタイミングについては、元現用系ノードの判断に委ねられる。
 しかし、クラスタシステムを長期間に亘ってスプリットブレイン状態のままとした場合、上述のようなさまざまな弊害が生じるおそれがある。したがって、セッション保持数の比較およびデータ同期ができない状態が続いていた場合であっても、いずれかのタイミングで待機系への遷移動作を行うことが好ましい。
 以下、ACT-SBY構成のクラスタシステムで第2の問題(スプリットブレインが生じた後、実行中のサービスに影響が及ぶ問題)が生じるケースについて具体的に説明する。
[2-1]ハートビートパケットが途絶(タイムアウト)したのが現用系と待機系の間の両方向である場合
 この場合、待機系ノードは対向ノード(現用系ノード)に障害が発生したものと認識して、現用系としての動作を開始する。しかし、ハートビートが双方向途絶しているため、元現用系ノードは元待機系ノードが現用系の動作を開始したことを把握することができない。したがって、元現用系ノードは、そのまま現用系としての動作を継続する。この時点で、両ノードがいずれも現用系として動作するスプリットブレインが生じる。
 ここで、双方向のハートビートが復旧した場合、現用系の動作を行う両ノードは、それぞれ受信したハートビートパケット内の情報に基づいて、対向ノードも自ノードと同様に現用系の動作をしていることを把握する。
 スプリットブレインの状態を解消するために、いずれかのノードのサービスを停止して待機系に遷移させる必要がある。しかし、サービスを停止させた方のノードに接続してサービスを受けていた他ノードや端末のトランザクションや呼は切断されるため、サービスに影響が出ることになる。そこで、サービスへの影響を抑えつつ、クラスタシステムを正常な状態(すなわち、一方が現用系のノード、他方が待機系のノードとして動作する状態)に復旧させる方法を提供する必要がある。
[2-2]現用系から待機系の一方向のハートビートパケットのみが途絶(タイムアウト)し、逆方向のハートビートパケットが到達している場合
 待機系のノードは対向ノード(現用系)に障害が発生したものと認識して、現用系としての動作を開始する(すなわち、両ノードが現用系の状態となる)。ただし、この場合、元現用系ノードはハートビートパケットを参照することで、元待機系ノードが現用系としての動作を開始したことを把握することができる。
 この段階で、自らを待機系に遷移させてスプリットブレインの状態を解消することができるのは、両ノードが現用系の動作を行っていることを把握している元現用系ノードのみである。ところで、元待機系ノードが現用系としての動作を開始(フェイルオーバを実行)した直後の段階では、システムにて保持しているトランザクションや呼のセッションの大半は元現用系ノード上に存在している。逆に、新たに現用系として動作を開始した元待機系のノード側には、フェイルオーバ直後にはトランザクションや呼のセッションはほとんど存在していない。ここで、元現用系から元待機系へのハートビートパケットが途絶したのが一時的なネットワークの問題である場合、フェイルオーバ発生直後にハートビートパケットの送達が復旧する可能性もある(なお、元現用系から元待機系へのハートビートパケットが復旧すれば、現用系動作を開始したばかりの元待機系ノードが、システムがスプリットブレインの状態になっていることを検知して再度自らを待機系に遷移させてもよい)。
 以上より、対向ノード(元待機系)が現用系としての動作を開始したことを、元現用系ノードがハートビートパケットを介して把握した場合、元現用系ノードが現用系としての動作を直ちに停止して待機系に遷移してスプリットブレインを解消することは、必ずしも適切とはいえない。かかる動作によると、実行中のサービスへのインパクトが大きくなるおそれがあるからである。すなわち、元現用系ノードが即座に待機系に遷移すると、元現用系ノードが保持していた大半のトランザクションや呼が破棄され、サービスに大きな影響が出るからである。
 そこで、元現用系ノードが、対向ノード(元待機系)が現用系としての動作を開始したことを、ハートビートパケットを介して検知した場合、サービスへの影響を抑えつつシステムを正常な状態(現用系/待機系での動作)に復旧させる方法を提供する必要がある。
 上述の第1および第2の問題に関連する先行技術が知られている。特許文献1は、第1の問題(すなわちネットワーク障害に起因するハートビートパケットの不達によるスプリットブレインの発生)に関連する技術を開示する。しかし、特許文献1は、本発明のように、ハートビートパケットをやり取りするために単一の通信経路を利用する状況(例えば、地理的冗長構成のようにサイト間の通信経路を複数確保できない場合や、複数の通信経路が存在するものの災害発生時などにおいてこれらの通信経路の一部が使用できない場合など)を想定したものではない。
 また、第1の問題を解消するための技術として、次の技術が知られている。すなわち、クラスタシステム内の対向ノードの状態を正確に把握するために、2ノード間のハートビートパケットのみならず、第3のサーバ装置(Witnessサーバ装置)からの情報も利用する技術が知られている。具体的には、待機系ノードは、対向する現用系ノードからのハートビートパケットが途絶えた場合、Witnessサーバ装置から取得した情報も対向する現用系ノード上で障害が発生していることを示すときに限り、フェイルオーバ処理を実行する。しかし、かかる方法によると、システム内に第3のサーバ装置を追加的に設置する必要があり、コストの増大を招くおそれがある。特に地理的冗長構成においては、第3のサーバ装置が上記の目的を果たすためには、両ノードが設置されるサイトとは別の第3のサイトに第3のサーバ装置を設置する必要があり、制約が大きいという問題もある。したがって、第3のサーバ装置(Witnessサーバ装置)を用いた技術によると、クラスタシステム内の2ノード間のハートビートパケットのやり取りのみに基づいて自律的にスプリットブレインを回避することができない。
 特許文献2は、第2の問題(スプリットブレインが生じた後、実行中のサービスに影響が及ぶ問題)に関連する技術を開示する。しかしながら、特許文献2に記載された技術は各ノードが割当てられた時間内で処理を実行するものである。したがって、かかる技術はテレコム系システムのように呼が接続している間、継続して呼情報を同一のノードで保持し、その呼に関連する処理を継続する必要があるシステムには適していない。
 また、特許文献3はスプリットブレインリカバリ方式を開示するものの、かかる方式によると、スプリットブレイン発生時において、システムを正常状態に復帰させる際、実行中のサービスへの影響を抑えることはできない。
 さらに、特許文献4に記載された技術は冗長機能を持つクラスタシステムにおけるフェイルオーバの一般的な動作を開示するものである。すなわち、かかる技術は、ハートビート通信ネットワークの不安定動作、輻輳、障害などに起因する誤ったフェイルオーバ(ないしスプリットブレイン)が発生しないようにすることには何ら寄与しない。
 そこで、クラスタシステムにおいてハートビートパケットの通信障害に起因するサービスの低下を防ぐことが課題となる。本発明の目的は、かかる課題解決に寄与するサーバ装置、クラスタシステム、クラスタ制御方法およびプログラムを提供することにある。なお、その他の課題および解決手段は、後述する実施形態の説明において明らかにされる。
 本発明の第1の態様に係るサーバ装置は、現用系または待機系として動作する2台のサーバ装置を備えたクラスタシステムにおける一のサーバ装置(第1のサーバ装置)である。このサーバ装置(第1のサーバ装置)は、対向するサーバ装置(第2のサーバ装置)との間でハートビートパケットを送受信するハートビート送受信部を備えている。また、サーバ装置(第1のサーバ装置)は、前記ハートビートパケットの受信状況に応じて、自サーバ装置(即ち、第1のサーバ装置)の動作を待機系から現用系に遷移するためのタイムアウト期間を調整する対向ノード監視部を備えている。
 本発明の第2の態様に係るクラスタシステムは、第1の態様に係る第1のサーバ装置を、現用系または待機系として動作する2台のサーバ装置の一方として備えている。
 本発明の第3の態様に係るクラスタ制御方法は、現用系または待機系として動作する2台のサーバ装置を備えたクラスタシステムにおける一のサーバ装置(第1のサーバ装置)によるクラスタ制御方法である。クラスタ制御方法は、対向するサーバ装置(第2のサーバ装置)との間でハートビートパケットを送受信するステップを含む。また、クラスタ制御方法は、前記ハートビートパケットの受信状況に応じて、自サーバ装置(第1のサーバ装置)の動作を待機系から現用系に遷移するためのタイムアウト期間を調整するステップを含む。
 本発明の第4の態様に係るプログラムは、現用系または待機系として動作する2台のサーバ装置を備えたクラスタシステムにおける一のサーバ装置(第1のサーバ装置)に設けられたコンピュータに対して処理を実行させる。プログラムは、対向するサーバ装置(第2のサーバ装置)との間でハートビートパケットを送受信する処理を実行させる。また、プログラムは、前記ハートビートパケットの受信状況に応じて、自サーバ装置(第1のサーバ装置)の動作を待機系から現用系に遷移するためのタイムアウト期間を調整する処理を実行させる。なお、プログラムは、非一時的なコンピュータ可読記録媒体(non-transitory computer-readable storage medium)に記録されたプログラム製品として提供することもできる。
 本発明に係るサーバ装置、クラスタシステム、クラスタ制御方法およびプログラムによると、クラスタシステムにおいてハートビートパケットの通信障害に起因するサービスの低下を防ぐことが可能となる。即ち、本発明は、背景技術に示したクラスタシステムを、その信頼性及び可用性を飛躍的に向上させたクラスタシステムへと変換するものとなっている。
一実施形態に係るサーバ装置の構成を例示するブロック図である。 実施形態に係るクラスタシステムの構成を例示するブロック図である。 第1の実施形態におけるハートビートパケットの構成を例示する図である。 第1の実施形態におけるハートビートパケット送信側のサーバ装置の動作を例示するフロー図である。 第1の実施形態におけるハートビート受信側のサーバ装置の動作を例示するフロー図である。 第2および第3の実施形態におけるハートビートパケットの構成を例示する図である。 第2の実施形態に係るクラスタシステムの動作を例示するシーケンス図である。 第3の実施形態に係るクラスタシステムの動作を例示するシーケンス図である。
 はじめに、一実施形態の概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。また、以下の説明で用いる図面中のブロック間の接続線は、双方向及び単方向の双方を含む。一方向矢印については、主たる信号(データ)の流れを模式的に示すものであり、双方向性を排除するものではない。
 図1は、一実施形態に係るサーバ装置2の構成を例示するブロック図である。サーバ装置2は、現用系または待機系として動作する2台のサーバ装置2A、2Bを備えたクラスタシステム1(図2)における一のサーバ装置(2Aまたは2B)である。図1を参照すると、サーバ装置2は、対向するサーバ装置との間でハートビートパケットを送受信するハートビート送受信部6と、ハートビートパケットの受信状況に応じて、自サーバ装置の動作を待機系から現用系に遷移するためのタイムアウト期間を調整する対向ノード監視部5と、を備えている。
 かかるサーバ装置2によると、対向ノード監視部5はハートビートパケットの受信状況に応じて(例えばハートビートパケットが欠落した場合、または、ハートビートパケットを受信するまでの遅延時間が所定の閾値以上である場合)、タイムアウト期間を延長することができる。したがって、かかるサーバ装置2によると、クラスタシステム1においてハートビートパケットの通信障害に起因するスプリットブレインの発生確率を低減し、スプリットブレインによるサービスの低下を防ぐことが可能となる。
 次に、一実施形態の他の構成について説明する。図2を参照すると、サーバ装置2は、自サーバ装置が保持するセッション数と対向するサーバ装置が保持するセッション数とを比較して、自サーバ装置の動作を現用系のまま維持するか、または、待機系に遷移させるかを決定するクラスタ管理部3を備えている。ここで、クラスタ管理部3(例えばサーバ装置2Bのクラスタ管理部3)は、スプリットブレインの発生後(例えば図7のステップC11、C12)、自サーバ装置(2B)の保持するセッション数(n)が対向するサーバ装置(2A)の保持するセッション数(m)よりも多い場合(n>m)、自サーバ装置(2B)の動作を現用系のまま維持する(図7のステップC25、C32)。
 かかるサーバ装置2によると、スプリットブレインを解消するために、一方のノードを待機系に遷移させる際、セッション数が相対的に多いノードの方を現用系のまま維持することができる。したがって、かかるサーバ装置2によると、サービスへの影響を抑えつつ、クラスタシステム1をスプリットブレインの状態から正常な状態に復旧させることができる。
 また、現用系のサーバ装置(2B)から待機系のサーバ装置(2A)へのハートビートパケットのみが不通となり(図8のステップD14)、スプリットブレインが発生することもある(例えば図8のステップD3)。この場合、クラスタ管理部3(サーバ装置2Bのクラスタ管理部3)は対向するサーバ装置(2A)の保持するセッション数(m)が自サーバ装置(2B)の保持するセッション数(n)よりも多い場合(図8のステップD61のYes)、または、対向するサーバ装置(2A)が現用系の動作を開始したことを把握(図8のステップD51)してから所定の期間が経過した場合(図8のステップD62のYes)、自サーバ装置(2B)の動作を待機系に遷移させ(図8のステップD63)、それ以外の場合、自サーバ装置の動作を現用系のまま維持するようにしてもよい。
 かかるサーバ装置2によると、現用系から待機系へのハートビートのみが不通となりスプリットブレインが発生し、その後ハートビート通信が復旧せず、データの同期が実行できない場合であっても、サービスへの影響を抑えることができる。その理由は、スプリットブレイン発生を検知した方のノード(すなわち元現用系ノード)がすぐに待機系に遷移する代わりに、所定の条件を充足するのを待ってから待機系に遷移するからである。
<実施形態1>
 次に、第1の実施形態に係るクラスタシステムについて図面を参照して説明する。本実施形態のクラスタシステムは、上述の第1の問題を解消することを目的とする。すなわち、本実施形態のクラスタシステムは、ネットワーク不安定動作による一時的なハートビートパケットの途絶または遅延により対向ノード障害と誤認することによるフェイルオーバ(スプリットブレイン)の発生を防ぐことを目的とする。
[構成]
 まず、本実施形態のクラスタシステムの構成について図面を参照して説明する。ここでは、クラスタシステムは、一例としてACT-SBY(Active-Standby)構成を有するものとする。図2は、本実施形態に係るクラスタシステム1の構成を例示するブロック図である。なお、図2には、呼処理ネットワーク8を介してクラスタシステム1にアクセスするクライアント端末9および他ノード10を併せて示す。
 図2を参照すると、クラスタシステム1は、ハートビートネットワーク7を介して接続されたサーバ装置2Aおよび2Bを備えている。サーバ装置2Aおよび2Bは、通常同一のサイト内に設置される。また、通常運用時には、サーバ装置2A、2Bのうちの一方が現用系として動作し、他方が待機系として動作する。以下では、サーバ装置2A、2Bを区別する必要がない場合、サーバ装置2などと総称する。
 現用系として動作するサーバ装置2はフローティングIP(Internet Protocol)アドレスを有効化し、呼処理ネットワーク8を介して、クライアント端末9や他の呼処理ノード(図2の他ノード10)と通信を行う。
 図2を参照すると、サーバ装置2A、2Bは、それぞれクラスタ管理部3、負荷監視部4、対向ノード監視部5、および、ハートビート送受信部6を備えている。
 ハートビート送受信部6は、対向ノードとの間でハートビートパケットを相互に送受信する。各サーバ装置2のハートビート送受信部6は、ハートビートネットワーク7を介して定期的にハートビートパケットを相手ノードに送信する。
 クラスタ管理部3は、自ノードのクラスタ状態(現用系/待機系)を管理する。クラスタ管理部3は、自ノードが待機系の状態において、対向ノード(現用系)からのハートビートパケットがタイムアウトした場合、フェイルオーバ処理を起動して自ノードを現用系の動作に切り替える。
 負荷監視部4は、自ノードの負荷状態(例えばCPU(Central Processing Unit)使用率など)を監視する。
 対向ノード監視部5は、対向ノードから受信したハートビートパケットに基づいて、対向ノードの状態を監視する。また、対向ノード監視部5は、ハートビートパケットの受信状況に応じて、自サーバ装置の動作を待機系から現用系に遷移するためのタイムアウト期間を調整する。対向ノード監視部5は、ハートビートパケットが欠落した場合、または、ハートビートパケットを受信するまでの遅延時間が所定の閾値以上である場合、タイムアウト期間を延長する。さらに、対向ノード監視部5は、対向するサーバ装置2の負荷が所定の閾値以下である場合、タイムアウト期間を延長するようにしてもよい。
 図3は、ハートビートパケットの構成を例示する図である。図3を参照すると、ハートビートパケットは、「シーケンス番号」、「ノード状態情報(現用系/待機系)」および「負荷状態情報」を含む。「シーケンス番号」はハートビートパケットの送信ごとに更新(例えば、インクリメントまたはデクリメント)される整数値である。「ノード状態情報(現用系/待機系)」は、自ノードのクラスタ状態(現用系/待機系)を表す値である。「負荷状態情報」は、自ノードの負荷状態(CPU使用率など)を表す値である。
 ハートビート送受信部6は、ハートビートパケットの送信ごとに「シーケンス番号」を更新してハートビートパケットに設定する。また、ハートビート送受信部6は、クラスタ管理部3から自ノードのクラスタ状態(現用系/待機系)を取得してハートビートパケットの「ノード状態情報」に設定する。さらに、ハートビート送受信部6は、負荷監視部4から自ノードの負荷状態を取得してハートビートパケットの「負荷状態情報」に設定する。
[動作]
 次に、本実施形態のクラスタシステム1の動作について図面を参照して説明する。図4は、ハートビート送信側ノードの動作を例示するフロー図である。
 図4を参照すると、ハートビートパケットを送信する側のサーバ装置2のハートビート送受信部6は、送信するハートビートパケットに、図3に示す情報を設定(セット)する(ステップA1)。
 ハートビート送受信部6は、ステップA1で作成したハートビートパケットを対向ノードのハートビート送受信部6に向けて、ハートビートネットワーク7を介して送信する(ステップA2)。
 ハートビート送受信部6は、予め設定されたハートビート送信間隔(例えば1秒間)だけ処理を一時停止した後(ステップA3)、ハートビートパケットの設定(ステップA1)に戻る。以下、ハートビート送受信部6は、同様の処理を繰り返す。
 図5は、ハートビート受信側のノードの動作を例示するフロー図である。待機系のサーバ装置が現用系のサーバ装置から送信されるハートビートパケットを用いて現用系のサーバ装置の状態監視を行う際、通常、ハートビート途絶のタイムアウト期間(すなわち障害と判断するまでの期間)は固定値(例えば3秒)に設定される。一方、本実施形態では、対向ノード監視部5はパケット落ち(欠落)、または、遅延の傾向(例えば統計的な振る舞い)に応じて、タイムアウト期間を動的に変化させる。
 サーバ装置2の対向ノード監視部5は、ハートビートタイムアウト期間を表す変数を保持する。対向ノード監視部5は、かかる変数に対してシステム起動時にデフォルト値(例えば3秒)を設定する(ステップB1)。
 対向ノード監視部5は、ハートビート監視タイマを起動する(ステップB2)。
 次に、ハートビート送受信部6は、対向ノードからハートビートパケットの受信を開始する(ステップB3)。
 対向ノード監視部5は、ハートビート監視タイマがタイムアウトする前に対向ノードからハートビートパケットを受信したかどうかを確認する(ステップB4)。
 タイムアウト前にハートビートパケットを受信しなかった場合(ステップB4のNo)、対向ノード監視部5はクラスタ管理部3から自ノードの状態(現用系か待機系か)を読み出し、自ノードが待機系か否かを判定する(ステップB5)。
 自ノードの状態が待機系である場合(ステップB5のYes)、クラスタ管理部3はフェイルオーバ処理を実行し、自ノードを現用系に遷移させる(ステップB6)。
 一方、タイムアウト前にハートビートパケットを受信した場合(ステップB4のYes)、または、自ノードの状態が待機系でない場合(ステップB5のNo)、対向ノード監視部5は、受信したハートビートパケット内のシーケンス番号を読み出す。これにより、対向ノード監視部5は、シーケンス番号が飛んでいる(すなわち到達していないハートビートパケットがある)かどうかを確認する(ステップB7)。
 シーケンス番号に飛びがある場合(ステップB7のYes)、対向ノード監視部5の処理はステップB9へ進む。一方、シーケンス番号に飛びがない場合(ステップB7のNo)、対向ノード監視部5の処理はステップB8へ進む。
 対向ノード監視部5は、受信したハートビートパケットの到着時刻を確認する(ステップB8)。平均到着間隔からの遅延時間が予め設定した閾値以上である場合(ステップB8のYes)、対向ノード監視部5の処理はステップB9へ進む。
 対向ノード監視部5は、受信したハートビートパケット内の負荷状態情報(図3)を読み出し、対向ノードの負荷状態(例えばCPU使用率など)が予め設定した閾値以下であるかどうかを確認する(ステップB9)。対向ノードの負荷が閾値を超えている場合(ステップB9のNo)、対向ノード監視部5は観測されたハートビートパケットの欠落(シーケンス番号飛び)またはハートビートパケットの到着遅延はネットワークに起因する現象ではなく、対向ノードの高負荷によるものと判断する。このとき、対向ノード監視部5はハートビートタイムアウト期間の再計算(変更)を行うことなく、ハートビート監視タイマ起動処理(ステップB2)に戻り、次のハートビートパケットを監視する。
 一方、対向ノードの負荷が閾値以下である場合(ステップB9のYes)、対向ノード監視部5は観測されたハートビートパケットの欠落(シーケンス番号飛び)またはハートビートパケットの到着遅延が対向ノードの高負荷によるものではなく、ネットワークの輻輳、不安定動作、障害などに起因するものと判断する。このとき、誤ったフェイルオーバを防止するため、対向ノード監視部5はハートビートタイムアウト期間を長くするように再計算を行う(ステップB10)。
 対向ノード監視部5は、例えば次の式(1)を用いてハートビートタイムアウト期間を計算する。
 ハートビートタイムアウト期間(s)
 =ハートビートタイムアウト期間のデフォルト値(s)
 +{α×連続したハートビートパケット欠落数(シーケンス番号飛びの数)}
 +{β×ハートビートパケット到着遅延時間(s)}   …(1)
 ここで、αおよびβは予めシステムに設定されたパラメータである。
 対向ノード監視部5はハートビートタイムアウト期間を再計算すると(ステップB10)、ハートビート監視タイマ起動処理(ステップB2)に戻り、新しいハートビートタイムアウト期間を用いて次のハートビートパケットを監視する。
 一方、受信したハートビートパケットの到着時刻を確認した結果、平均到着間隔からの遅延時間が予め設定した閾値よりも短い場合(ステップB8のNo)、対向ノード監視部5はネットワークの状態が正常に戻ったものと判断する。このとき、対向ノード監視部5はハートビートタイムアウト期間を初期値(デフォルト値)で上書きして(ステップB11)、ハートビート監視タイマ起動処理(ステップB2)に戻り、次のハートビートパケットを監視する。
[効果]
 本実施形態のクラスタシステムでは、受信するハートビートパケットの欠落や遅延の傾向を監視し、これらが観測された場合、ネットワークが不安定状態にあるものとみなしてハートビートタイムアウト期間を長くする再計算を行う。かかる構成によると、ハートビート通信路ネットワークの不安定動作、輻輳、障害による誤ったフェイルオーバの発生(これによるスプリットブレインの発生)を防ぐことができる。
 すなわち、本実施形態に係るクラスタシステムによると、2ノードで構成されるクラスタシステムにおいて、現用系ノードが正常に動作しているにも関わらずネットワークの不安定性あるいは障害によりハートビートの到達が途絶した場合に、待機系ノードが対向ノード障害と誤認識して現用系としての動作を開始してしまい、両ノードが現用系として動作してしまう現象(スプリットブレイン)が発生する確率を小さくすることができる。このとき、スプリットブレインによりサービスの提供に影響が及ぶという事態も回避することができる。
<実施形態2>
 次に、第2の実施形態に係るクラスタシステムについて図面を参照して説明する。本実施形態のクラスタシステムは、ハートビートパケットの途絶(タイムアウト)が現用系と待機系の間の両方向であり、その後ハートビートパケットが両方向とも復旧した場合に生じる上述の第2の問題を解消することを目的とする。すなわち、本実施形態は、ハートビートパケットが両方向について途絶してスプリットブレインが生じた場合に、サービスへの影響を抑えつつクラスタシステムを正常な状態に復旧させることを目的とする。なお、本実施形態のようなスプリットブレインが生じるケースとして、例えば、待機系ノードにおいて現用系からのハートビートパケットが途絶してタイムアウトとなりフェイルオーバしたものの、実際にはネットワークの一時的な不通が原因であり、元現用系は現用系としての動作を継続している場合などが考えられる。
 ハートビートパケットが途絶した状態から双方向のハートビートパケットの通信が復旧した際、スプリットブレインを解消するためには、いずれかのサーバ装置のサービスを停止して待機系に遷移させる必要がある。しかし、単純に一方のノードのサービスを停止させてしまうと、そのノードに接続してサービスを受けていたクライアント端末9や他ノード10のトランザクションや呼が切断され、サービスに影響が出るおそれがある。
 そこで、サービスへの影響を抑えつつ、クラスタシステムを正常な状態(現用系/待機系での動作)に遷移させることが好ましい。そこで、本実施形態では、スプリットブレインの状態においていずれも現用系動作をしている両サーバ装置2において、以下の処理を実行する。すなわち、双方向のハートビートパケットの通信が復旧した後、両サーバ装置2は、その時点で自ノードにて保持しているトランザクションやセッションの数に関する情報を、ハートビートパケットを用いてお互いに交換する。また、保持しているトランザクションやセッションの数が少ない方のサーバ装置2が、保持中のセッション情報を他方のサーバ装置2に同期した後、待機系に遷移する。以下、具体的な構成と動作について説明する。
[構成]
 本実施形態のクラスタシステムの構成は、第1の実施形態におけるクラスタシステム1の構成(図2)と同様である。以下、本実施形態と第1の実施形態との差分を中心に説明する。
 本実施形態では、クラスタ管理部3は、自サーバ装置が保持するセッション数と対向するサーバ装置が保持するセッション数とを比較して、自サーバ装置の動作を現用系のまま維持するか、または、待機系に遷移させるかを決定する。クラスタ管理部3は、例えば、自サーバ装置の保持するセッション数が対向するサーバ装置の保持するセッション数よりも多い場合、自サーバ装置の動作を現用系のまま維持し、それ以外の場合、自サーバ装置の動作を待機系に遷移させる。
 図6は、本実施形態におけるハートビートパケットの構成を例示する図である。図6を参照すると、本実施形態のハートビートパケットは、第1の実施形態のハートビートパケット(図3)が保持する情報に加えて、さらに「保持セッション数情報」および「系状態遷移宣言フラグ(現用系/待機系)」を含む。「保持セッション数情報」は、自ノードが保持するセッション数を示す情報である。一方、「系状態遷移宣言フラグ(現用系/待機系)」は、自ノードが現用系/待機系に遷移することを相手ノードに通知するためのフラグである。
 本実施形態では、ハートビート送受信部6は、自ノードが保持するセッション数を「保持セッション数情報」としてハートビートパケットに設定する。また、ハートビート送受信部6は、クラスタ管理部3が自ノードの状態を現用系/待機系に遷移させることを決定した場合、自ノードの遷移先の状態(現用系/待機系)を示す情報を「系状態遷移宣言フラグ(現用系/待機系)」としてハートビートパケットに設定する。
[動作]
 図7は、本実施形態におけるクラスタシステム1の動作を例示するシーケンス図である。
 図7を参照すると、サーバ装置2A、2Bのいずれも現用系の動作を行うスプリットブレインが生じている(ステップC11、C12)。また、ハートビートネットワーク7の輻輳、不安定動作、障害などにより、両ノード間のハートビートパケットが双方向とも不通となっている(ステップC13)。
 ここで、ハートビートネットワーク7が復旧すると(ステップC21)、両ノードとも、相手ノードからのハートビートパケットを受信する(ステップC22、C23)。受信したハートビートパケットは、図6に示すように、相手ノード(すなわち、そのハートビートパケットを送信した他ノード)が保持するセッション数に関する情報を含む。ハートビートパケットを受信すると、各ノードのクラスタ管理部3は、相手ノードの保持セッション数と自ノードの保持セッション数とを比較する(ステップC24、C25)。ここでは、サーバ装置2A、2Bがそれぞれ保持するセッション数をm、nとする。
 クラスタ管理部3は、自ノードのセッション数が相手ノードのセッション数よりも少ない場合、待機系に遷移することを決定する。このとき、ハートビート送受信部6はハートビートパケット内の「系状態遷移宣言フラグ」(図6)を用いて自ノードが待機系に遷移することを相手ノードに通知する(ステップC32)。一方、クラスタ管理部3は、自ノードのセッション数が相手ノードのそれと比較して多い場合、現用系の動作を継続することを決定する。このとき、ハートビート送受信部6はハートビートパケット内の「系状態遷移宣言フラグ」(図6)を用いて自ノードが現用系を継続することを相手ノードに通知する(ステップC33)。
 サーバ装置2Aは、自ノードを待機系に遷移させることを選択した場合、相手ノード(サーバ装置2B)から受信したハートビートパケットに含まれる「系状態遷移宣言フラグ」を確認する。相手ノード(サーバ装置2B)が現用系を継続することを「系状態遷移宣言フラグ」が示す場合、サーバ装置2Aは、まず自ノードに入ってくる新規の呼要求の受け付けを停止する(ステップC41)。また、自ノード内に保持する既存の呼のセッション状態に関するデータを、ハートビートネットワーク7を介して対向ノード(現用系の動作を継続するサーバ装置2B)に転送する(ステップC42)。
 ここで、セッション状態に関するデータとは、サーバ装置2が呼処理サーバ装置である場合には、呼処理を継続させるために必要なデータである。かかるデータは、例えば、発信元電話番号(またはユーザ名)、着信先電話番号(またはユーザ名)、セッションID(Identifier)、セッションタイマ値、課金情報などの組で表される。
 セッション状態に関するデータの転送が完了し、対向ノード(すなわち現用系の動作を継続するサーバ装置2B)から同期完了の応答を受信すると(ステップC51)、サーバ装置2Aのクラスタ管理部3は自ノードを待機系へ遷移させる(ステップC52)。
 その後、サーバ装置2A(すなわち待機系に遷移したノード)から送信されるハートビートパケット内のノード状態情報(図6)には「待機系」が設定される(ステップC62)。これにより、サーバ装置2B(すなわち現用系の動作を継続するノード)は、対向ノードが待機系への遷移を完了したことを確認する。同様に、サーバ装置2B(すなわち現用系に遷移したノード)から送信されるハートビートパケット内のノード状態情報(図6)には「現用系」が設定される(ステップC63)。これにより、サーバ装置2A(すなわち待機系の動作を継続するノード)は、対向ノードが現用系の動作を行うことを把握する。
[効果]
 本実施形態のクラスタシステムでは、スプリットブレインが発生した場合であっても、その後両ノード間の双方向の通信が復旧してデータの同期が可能なときには、待機系に遷移させる方のノード上の既存呼セッション状態情報をもう一方のノードに同期させる処理を実行し、状態を完全に引き継いだ上で、待機系への遷移動作を実行する。
 すなわち、本実施形態では、両ノード間の既存の呼セッション状態情報の同期を行った上で、一方のノードを待機系に遷移させて、通常の現用系/待機系の動作状態を回復する。これにより、スプリットブレインが発生した場合であっても、サービスへの影響を抑えつつ、クラスタシステムを正常な現用系/待機系の動作状態に復旧させることができる。
 また、本実施形態では、スプリットブレインを解消するために、一方のノードを待機系に遷移させる際、セッション数が相対的に多いノードの方を現用系のまま維持する。したがって、本実施形態によると、サービスへの影響を抑えつつ、クラスタシステムをスプリットブレインの状態から正常な状態に復旧させることができる。
<実施形態3>
 次に、第3の実施形態に係るクラスタシステムについて図面を参照して説明する。本実施形態のクラスタシステムは、ハートビートパケットの途絶(タイムアウト)が現用系から待機系への一方向のみであり、逆方向はハートビートが到達している場合に生じる上述の第2の問題を解消することを目的とする。すなわち、本実施形態は、ハートビートパケットが現用系から待機系への一方向についてのみ途絶(タイムアウト)してスプリットブレインが生じた場合、サービスへの影響を抑えつつ、クラスタシステムを正常な状態に復旧させることを目的とする。
 この場合、待機系は対向ノード(現用系)に障害が発生したと認識して、現用系としての動作を開始する。また、元現用系は元待機系が現用系としての動作を開始したことを、ハートビートパケットを介して知ることができる。通常、スプリットブレインの状態が発生したことを知った元現用系は、この状態を解消するため、現用系としての動作を停止して待機系に遷移する。しかし、これにより元現用系に接続していた他ノードや端末はそのトランザクションや呼が切断され、サービスに影響が出るおそれがある。そこで、本実施形態では、以下の構成および動作を採用することで、サービスへの影響を抑制する。
[構成]
 本実施形態のクラスタシステムの構成は、第1および第2の実施形態におけるクラスタシステム1の構成(図2)と同様である。また、本実施形態におけるハートビートパケットの構成は、第2の実施形態におけるハートビートパケットの構成(図6)と同様である。以下、本実施形態と第2の実施形態との差分を中心に説明する。
 本実施形態では、クラスタ管理部3は、対向するサーバ装置の保持するセッション数が自サーバ装置の保持するセッション数よりも多い場合、または、対向するサーバ装置が現用系の動作を開始したことを把握してから所定の期間が経過した場合、自サーバ装置の動作を待機系に遷移させる。一方、クラスタ管理部3は、それ以外の場合、自サーバ装置の動作を現用系のまま維持する。
[動作]
 図8は、本実施形態に係るクラスタシステム1の動作を例示するシーケン図である。
 図8を参照すると、サーバ装置2Aが待機系の動作を行い(ステップD11)、一方サーバ装置2Bが現用系の動作を行う(ステップD12)。このとき、クラスタシステム1は正常に稼働している。ここで、ハートビートネットワーク7の輻輳、不安定動作、障害などにより、サーバ装置2B(現用系)からサーバ装置2A(待機系)へのハートビートパケットのみが不通となる(ステップD13~D15)。
 サーバ装置2A(待機系)の対向ノード監視部5において、ハートビート監視タイマがタイムアウトする(ステップD2)。
 サーバ装置2A(待機系)のクラスタ管理部3はフェイルオーバ処理を実行し、自ノードを現用系に遷移させる(ステップD3)。このとき、サーバ装置2A、2Bのいずれも現用系の動作を行うスプリットブレインが発生する。
 サーバ装置2A(元待機系)のハートビート送受信部6は、ハートビートパケット(図6)内のノード状態情報を「現用系」に設定してサーバ装置2B(元現用系)へ送信する(ステップD42)。
 サーバ装置2A(元待機系)からサーバ装置2B(元現用系)へのハートビートパケットは疎通している(ステップD41)。したがって、サーバ装置2B(元現用系)はサーバ装置2A(元待機系)が現用系としての動作を開始したこと(すなわち、スプリットブレインが発生したこと)を検知する(ステップD51)。なお、サーバ装置2B(元現用系)からサーバ装置2A(元待機系)へのハートビートパケットは不通のままである(ステップD52)。
 ここで、サーバ装置2B(元現用系)は、直ちに現用系としての動作を停止して待機系に遷移する代わりに、所定の条件を満たすまで現用系としての動作を継続する(ステップD6)。また、所定の条件を満たした場合、サーバ装置2B(元現用系)は待機系へ遷移する(ステップD63)。
 ここで、所定の条件として、例えば以下の条件を用いることができる。すなわち、サーバ装置2Bのクラスタ管理部3は、以下の(a)、(b)のいずれか一方または双方を満たした場合、自ノードを待機系に遷移させてもよい(ステップD63)。
(a)サーバ装置2B(元現用系)のクラスタ管理部3は、自ノードが保持するセッションの数よりも、対向ノード(サーバ装置2A、元待機系)が保持するセッション数の方が多くなった場合(ステップD61のYes)、自ノードを待機系に遷移させる(ステップD63)。具体的には、サーバ装置2B(元現用系)は、以下の手順を実施する。
 サーバ装置2Bのクラスタ管理部3は、対向ノード(サーバ装置2A、元待機系)から受信したハートビートパケットに含まれる、対向ノード(サーバ装置2A、元待機系)が保持するセッションの数(m)を、自ノードが保持するセッション数(n)と比較する(ステップD61)。
 自ノードによって保持されるセッション数(n)が相手ノードによって保持されるセッション数(m)よりも少ない(n<m)場合(ステップD61のYes)、クラスタ管理部3は自ノードを待機系へ遷移させる(ステップD63)。
(b)また、対向するサーバ装置2A(元待機系)が現用系としての動作を開始したことを、ハートビートパケットを用いて把握してから(ステップD51)所定の待機時間が経過した場合(ステップD62のYes)、サーバ装置2Bのクラスタ管理部3は自ノードを待機系に遷移させる(ステップD63)。
 ここで、所定の待機時間は、例えば以下の方法で指定することができる。
・固定値(システムの設定値などとして指定)
・ハートビートパケット受信の統計情報から動的に設定
 ネットワークが不安定である状態においては、比較的長い期間に亘ってハートビートパケットが不通となった後、ハートビートパケットの通知が復旧する傾向がある。したがって、サーバ装置2B(元現用系)が受信しているハートビートパケットの欠落数や到着の遅延時間の大きさに係数を乗じることにより、所定の待機時間を求めることができる。一例として、所定の待機時間は、以下の式(2)を用いて計算することができる。
 待機時間(s)
 =α2
 +{β2×連続したハートビートパケット欠落数(シーケンス番号飛びの数)}
 +{γ2×ハートビートパケット到着遅延時間(s)}   …(2)
 ここで、α2、β2およびγ2は予めシステムに設定されたパラメータである。
 一方、ステップD6に記載した条件を満たす(ステップD61のYesまたはステップD62のYesにより元現用系が待機系に遷移する)前に、サーバ装置2B(元現用系)からサーバ装置2A(元待機系)へのハートビート疎通が復旧した場合(ステップD71)、図7のステップC31以降と同様の動作を実行する。すなわち、両ノードはその時点で自ノードが保持しているセッションの数に関する情報を、ハートビートパケットを用いて交換する(ステップD72)。保持するセッション数が少ない方のノードは、保持している既存の呼セッション状態情報を他方のノードに送信し(図7のステップC42参照)、セッション状態情報の同期完了応答を受信した後(図7のステップC51参照)、待機系に遷移する(図7のステップC52参照)。
[効果]
 本実施形態のクラスタシステムでは、現用系から待機系へのハートビートパケットのみが不通となったことに起因してスプリットブレインが生じた場合に、ハートビート通信が復旧せず、データの同期が実行できないときに、次のように動作する。すなわち、この場合、スプリットブレイン発生を検知した方のノード(元現用系ノード)は直ちに待機系への遷移動作を実行する代わりに、上述の所定の条件が満たされるのを待ってから待機系へ遷移する。これにより、スプリットブレインが発生した場合であっても、サービスへの影響を抑えつつ、クラスタシステムを正常な現用系/待機系の動作状態に復旧させることができる。
<変形例>
 上記実施形態に係るクラスタシステムに対して、様々な変形が可能である。一例として、ハートビートパケットを、ハートビート専用のハートビートネットワーク7の代わりに、呼処理ネットワーク8を経由してやり取りしてもよい。
 また、上記実施形態のように、同一サイト内に両サーバ装置2が配置される構成の代わりに、クラスタシステム内の2つのサーバ装置を別個のサイトに配置する地理的冗長構成の場合にも、本発明を適用することができる。
 さらに、上記第3の実施形態では、ハートビートパケットを参照することで元待機系のサーバ装置2Aが現用系の動作を開始したことを把握した元現用系のサーバ装置2Bは、所定の条件を満たすまで現用系の動作を継続する(図8)。一方、元現用系のサーバ装置2Bは、現用系の動作を継続する代わりに、自ノード内の呼やトランザクションの情報を保持しつつ処理の実行が停止したサスペンド状態に遷移してもよい。
 また、サスペンド状態に遷移した後、所定の条件を満たした場合に、元現用系のサーバ装置2Bは待機系への遷移動作を実行してもよい。ここで、例えば元現用系のサーバ装置2Bが待機系に遷移する前に元現用系のサーバ装置2Bから元待機系のサーバ装置2Aへのハートビート疎通が復旧したとする。この場合、両ノードは復旧時点で自ノードが保持しているセッションの数に関する情報を、ハートビートパケットを用いて交換する。さらに、セッション数が相対的に少ない方のサーバ装置2は、既存の呼セッション状態情報を対向ノードに同期させた後、待機系に遷移する。その後、第3の実施形態と同様の動作を行うようにしてもよい。
 さらに、元待機系のサーバ装置2Aが再度待機系に遷移し、一方元現用系のサーバ装置2Bが現用系としての動作を継続することになった場合、次のようにしてもよい。すなわち、元現用系のサーバ装置2Bは、サスペンド状態として保持していた呼やセッションの情報を用いてサスペンド状態から通常の動作状態に遷移して、サービス処理を継続するようにしてもよい。
 なお、本発明において、下記の形態が可能である。
[形態1]
 上記第1の態様に係るサーバ装置(第1のサーバ装置)のとおりである。
[形態2]
 前記対向ノード監視部は、前記ハートビートパケットが欠落した場合、または、前記ハートビートパケットを受信するまでの遅延時間が所定の閾値以上である場合、前記タイムアウト期間を延長する、形態1に記載の第1のサーバ装置。
[形態3]
 前記対向ノード監視部は、前記対向するサーバ装置の負荷が所定の閾値以下である場合、前記タイムアウト期間を延長する、形態2に記載の第1のサーバ装置。
[形態4]
 自サーバ装置が保持するセッション数と前記対向する第2のサーバ装置が保持するセッション数とを比較して、自サーバ装置の動作を現用系のまま維持するか、または、待機系に遷移させるかを決定するクラスタ管理部を備える、形態1ないし3のいずれか一に記載の第1のサーバ装置。
[形態5]
 前記クラスタ管理部は、前記第1のサーバ装置の保持するセッション数が前記対向する第2のサーバ装置の保持するセッション数よりも多い場合、前記第1のサーバ装置の動作を現用系のまま維持する、形態4に記載の第1のサーバ装置。
[形態6-1]
 前記クラスタ管理部は、前記対向する第2のサーバ装置の保持するセッション数が自サーバ装置の保持するセッション数よりも多い場合、自サーバ装置の動作を待機系に遷移させ、それ以外の場合、前記第1のサーバ装置の動作を現用系のまま維持する、形態4に記載の第1のサーバ装置。
[形態6-2]
 前記クラスタ管理部は、前記対向する第2のサーバ装置が現用系の動作を開始したことを把握してから所定の期間が経過した場合、前記第1のサーバ装置の動作を待機系に遷移させ、それ以外の場合、前記第1のサーバ装置の動作を現用系のまま維持する、形態4に記載の第1のサーバ装置。
[形態7]
 前記ハートビート送受信部は、前記ハートビートパケットを送信するごとに更新されるシーケンス番号を、前記ハートビートパケットに含めて前記対向する第2のサーバ装置に送信する、形態1ないし6のいずれか一に記載の第1のサーバ装置。
[形態8]
 前記ハートビート送受信部は、前記第1のサーバ装置の負荷を示す情報を前記ハートビートパケットに含めて前記対向する第2のサーバ装置に送信する、形態1ないし7のいずれか一に記載の第1のサーバ装置。
[形態9]
 前記ハートビート送受信部は、前記第1のサーバ装置が保持するセッション数を示す情報を、前記ハートビートパケットに含めて前記対向する第2のサーバ装置に送信する、形態1ないし8のいずれか一に記載の第1のサーバ装置。
[形態10]
 形態1ないし9のいずれか一に記載の第1のサーバ装置を、現用系または待機系として動作する2台のサーバ装置の一方として備える、クラスタシステム。
[形態11]
 上記第3の態様に係るクラスタ制御方法のとおりである。
[形態12]
 前記ハートビートパケットが欠落した場合、または、前記ハートビートパケットを受信するまでの遅延時間が所定の閾値以上である場合、前記タイムアウト期間を延長する、形態11に記載のクラスタ制御方法。
[形態13]
 前記対向する第2のサーバ装置の負荷が所定の閾値以下である場合、前記タイムアウト期間を延長する、形態12に記載のクラスタ制御方法。
[形態14]
 前記第1のサーバ装置が保持するセッション数と前記対向する第2のサーバ装置が保持するセッション数とを比較して、前記第1のサーバ装置の動作を現用系のまま維持するか、または、待機系に遷移させるかを決定するステップを含む、形態11ないし13のいずれか一に記載のクラスタ制御方法。
[形態15]
 前記第1のサーバ装置の保持するセッション数が前記対向する第2のサーバ装置の保持するセッション数よりも多い場合、前記第1のサーバ装置の動作を現用系のまま維持する、形態14に記載のクラスタ制御方法。
[形態16-1]
 前記対向する第2のサーバ装置の保持するセッション数が前記第1のサーバ装置の保持するセッション数よりも多い場合、前記第1のサーバ装置の動作を待機系に遷移させ、それ以外の場合、前記第1のサーバ装置の動作を現用系のまま維持する、形態14に記載のクラスタ制御方法。
[形態16-2]
 前記対向する第2のサーバ装置が現用系の動作を開始したことを把握してから所定の期間が経過した場合、前記第1のサーバ装置の動作を待機系に遷移させ、それ以外の場合、前記第1のサーバ装置の動作を現用系のまま維持する、形態14に記載のクラスタ制御方法。
[形態17]
 上記第4の態様に係るプログラムのとおりである。
[形態18]
 前記ハートビートパケットが欠落した場合、または、前記ハートビートパケットを受信するまでの遅延時間が所定の閾値以上である場合、前記タイムアウト期間を延長する、形態17に記載のプログラム。
[形態19]
 前記対向する第2のサーバ装置の負荷が所定の閾値以下である場合、前記タイムアウト期間を延長する、形態18に記載のプログラム。
[形態20]
 前記第1のサーバ装置が保持するセッション数と前記対向する第2のサーバ装置が保持するセッション数とを比較して、前記第1のサーバ装置の動作を現用系のまま維持するか、または、待機系に遷移させるかを決定する処理を、前記コンピュータに実行させる、形態17ないし19のいずれか一に記載のプログラム。
[形態21]
 前記第1のサーバ装置の保持するセッション数が前記対向する第2のサーバ装置の保持するセッション数よりも多い場合、前記第1のサーバ装置の動作を現用系のまま維持する、形態20に記載のプログラム。
[形態22-1]
 前記対向する第2のサーバ装置の保持するセッション数が前記第1のサーバ装置の保持するセッション数よりも多い場合、前記第1のサーバ装置の動作を待機系に遷移させ、それ以外の場合、前記第1のサーバ装置の動作を現用系のまま維持する、形態20に記載のプログラム。
[形態22-2]
 前記対向する第2のサーバ装置が現用系の動作を開始したことを把握してから所定の期間が経過した場合、前記第1のサーバ装置の動作を待機系に遷移させ、それ以外の場合、前記第1のサーバ装置の動作を現用系のまま維持する、形態20に記載のプログラム。
 なお、上記特許文献の全開示内容は、本書に引用をもって繰り込み記載されているものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素(各請求項の各要素、各実施形態の各要素、各図面の各要素などを含む)の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
1  クラスタシステム
2、2A、2B  サーバ装置
3  クラスタ管理部
4  負荷監視部
5  対向ノード監視部
6  ハートビート送受信部
7  ハートビートネットワーク
8  呼処理ネットワーク
9  クライアント端末
10  他ノード

Claims (10)

  1.  現用系または待機系として動作する2台のサーバ装置を備えたクラスタシステムにおける第1のサーバ装置であって、
     対向する第2のサーバ装置との間でハートビートパケットを送受信するハートビート送受信部と、
     前記ハートビートパケットの受信状況に応じて、前記第1のサーバ装置の動作を待機系から現用系に遷移するためのタイムアウト期間を調整する対向ノード監視部と、を備える、
     ことを特徴とする第1のサーバ装置。
  2.  前記対向ノード監視部は、前記ハートビートパケットが欠落した場合、または、前記ハートビートパケットを受信するまでの遅延時間が所定の閾値以上である場合、前記タイムアウト期間を延長する、
     請求項1に記載の第1のサーバ装置。
  3.  前記対向ノード監視部は、前記対向する第2のサーバ装置の負荷が所定の閾値以下である場合、前記タイムアウト期間を延長する、
     請求項2に記載の第1のサーバ装置。
  4.  前記第1のサーバ装置が保持するセッション数と前記対向する第2のサーバ装置が保持するセッション数とを比較して、前記第1のサーバ装置の動作を現用系のまま維持するか、または、待機系に遷移させるかを決定するクラスタ管理部を備える、
     請求項1ないし3のいずれか1項に記載の第1のサーバ装置。
  5.  前記クラスタ管理部は、前記第1のサーバ装置の保持するセッション数が前記対向する第2のサーバ装置の保持するセッション数よりも多い場合、前記第1のサーバ装置の動作を現用系のまま維持する、
     請求項4に記載のサーバ装置。
  6.  前記クラスタ管理部は、前記対向する第2のサーバ装置の保持するセッション数が前記第1のサーバ装置の保持するセッション数よりも多い場合、または、前記対向する第2のサーバ装置が現用系の動作を開始したことを把握してから所定の期間が経過した場合、前記第1のサーバ装置の動作を待機系に遷移させ、それ以外の場合、前記第1のサーバ装置の動作を現用系のまま維持する、
     請求項4に記載のサーバ装置。
  7.  前記ハートビート送受信部は、前記ハートビートパケットを送信するごとに更新されるシーケンス番号を、前記ハートビートパケットに含めて前記対向する第2のサーバ装置に送信する、
     請求項1ないし6のいずれか1項に記載の第1のサーバ装置。
  8.  請求項1ないし7のいずれか1項に記載の第1のサーバ装置を、現用系または待機系として動作する2台のサーバ装置の一方として備える、
     ことを特徴とするクラスタシステム。
  9.  現用系または待機系として動作する2台のサーバ装置を備えたクラスタシステムにおける第1のサーバ装置が、
     対向する第2のサーバ装置との間でハートビートパケットを送受信するステップと、
     前記ハートビートパケットの受信状況に応じて、前記第1のサーバ装置の動作を待機系から現用系に遷移するためのタイムアウト期間を調整するステップと、を含む、
     ことを特徴とするクラスタ制御方法。
  10.  現用系または待機系として動作する2台のサーバ装置を備えたクラスタシステムにおける第1のサーバ装置に設けられたコンピュータに対して、
     対向する第2のサーバ装置との間でハートビートパケットを送受信する処理と、
     前記ハートビートパケットの受信状況に応じて、前記第1のサーバ装置の動作を待機系から現用系に遷移するためのタイムアウト期間を調整する処理と、を実行させる、
     ことを特徴とするプログラム。
PCT/JP2017/038004 2016-10-20 2017-10-20 サーバ装置、クラスタシステム、クラスタ制御方法およびプログラム WO2018074587A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US16/343,477 US10911295B2 (en) 2016-10-20 2017-10-20 Server apparatus, cluster system, cluster control method and program
JP2018545770A JP6724998B2 (ja) 2016-10-20 2017-10-20 サーバ装置、クラスタシステム、クラスタ制御方法およびプログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016-205939 2016-10-20
JP2016205939 2016-10-20

Publications (1)

Publication Number Publication Date
WO2018074587A1 true WO2018074587A1 (ja) 2018-04-26

Family

ID=62018784

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/038004 WO2018074587A1 (ja) 2016-10-20 2017-10-20 サーバ装置、クラスタシステム、クラスタ制御方法およびプログラム

Country Status (3)

Country Link
US (1) US10911295B2 (ja)
JP (1) JP6724998B2 (ja)
WO (1) WO2018074587A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109803024A (zh) * 2019-01-28 2019-05-24 北京中科晶上科技股份有限公司 一种用于集群节点网络的方法
CN109839041A (zh) * 2018-12-28 2019-06-04 北京航天测控技术有限公司 一种基于去中心化集群计算架构的免维护测控方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112988433B (zh) * 2019-12-12 2024-04-16 伊姆西Ip控股有限责任公司 用于故障管理的方法、设备和计算机程序产品
CN111651294B (zh) * 2020-05-13 2023-07-25 浙江华创视讯科技有限公司 一种节点异常检测方法及装置
US11343328B2 (en) * 2020-09-14 2022-05-24 Vmware, Inc. Failover prevention in a high availability system during traffic congestion
US11902083B1 (en) 2021-08-05 2024-02-13 Cisco Technology, Inc. Techniques to provide a flexible witness in a distributed system
JP2023045641A (ja) * 2021-09-22 2023-04-03 株式会社日立製作所 ストレージシステム及び制御方法
CN116339902A (zh) * 2021-12-23 2023-06-27 戴尔产品有限公司 超融合基础设施环境中的事件消息管理

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020152446A1 (en) * 2001-04-13 2002-10-17 Fleming Roger A. Adaptive heartbeats
US20150019901A1 (en) * 2013-07-11 2015-01-15 International Business Machines Corporation Tolerating failures using concurrency in a cluster
CN104601376A (zh) * 2015-01-07 2015-05-06 北京华为数字技术有限公司 心跳报文发送方法及装置
US20160117213A1 (en) * 2014-10-27 2016-04-28 Aruba Networks, Inc. Dynamic adaptive approach for failure detection of node in a cluster

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7209551B1 (en) * 2002-09-19 2007-04-24 Sbc Properties, L.P. Provisioning unified messaging system services
JP4371942B2 (ja) 2004-08-06 2009-11-25 富士通株式会社 クラスタシステムのノード制御プログラムおよびサーバ
JP2006146299A (ja) 2004-11-16 2006-06-08 Nec Corp スプリットブレインリカバリ方式、スプリットブレインリカバリ方法およびプログラム
US20080014961A1 (en) * 2006-07-12 2008-01-17 Tekelec Methods, systems, and computer program products for providing geographically diverse IP multimedia subsystem (IMS) instances
US8327186B2 (en) * 2009-03-10 2012-12-04 Netapp, Inc. Takeover of a failed node of a cluster storage system on a per aggregate basis
JP2011203941A (ja) 2010-03-25 2011-10-13 Nec Corp 情報処理装置、監視方法、および監視プログラム
US10331801B2 (en) * 2011-09-23 2019-06-25 Open Invention Network, Llc System for live-migration and automated recovery of applications in a distributed system
JP2015032219A (ja) 2013-08-05 2015-02-16 日本電信電話株式会社 管理装置および管理方法
JP6601278B2 (ja) * 2016-03-08 2019-11-06 株式会社リコー 画像処理システム、画像処理方法、画像処理プログラム及び画像処理装置
US11119870B2 (en) * 2016-09-21 2021-09-14 Nec Corporation Calculator, cluster management system, method, and non-transitory computer readable medium

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020152446A1 (en) * 2001-04-13 2002-10-17 Fleming Roger A. Adaptive heartbeats
US20150019901A1 (en) * 2013-07-11 2015-01-15 International Business Machines Corporation Tolerating failures using concurrency in a cluster
US20160117213A1 (en) * 2014-10-27 2016-04-28 Aruba Networks, Inc. Dynamic adaptive approach for failure detection of node in a cluster
CN104601376A (zh) * 2015-01-07 2015-05-06 北京华为数字技术有限公司 心跳报文发送方法及装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109839041A (zh) * 2018-12-28 2019-06-04 北京航天测控技术有限公司 一种基于去中心化集群计算架构的免维护测控方法
CN109839041B (zh) * 2018-12-28 2021-05-28 北京航天测控技术有限公司 一种基于去中心化集群计算架构的免维护测控方法
CN109803024A (zh) * 2019-01-28 2019-05-24 北京中科晶上科技股份有限公司 一种用于集群节点网络的方法
CN109803024B (zh) * 2019-01-28 2021-12-21 北京中科晶上科技股份有限公司 一种用于集群节点网络的方法

Also Published As

Publication number Publication date
US20190245735A1 (en) 2019-08-08
JP6724998B2 (ja) 2020-07-15
JPWO2018074587A1 (ja) 2019-08-08
US10911295B2 (en) 2021-02-02

Similar Documents

Publication Publication Date Title
WO2018074587A1 (ja) サーバ装置、クラスタシステム、クラスタ制御方法およびプログラム
RU2507703C2 (ru) Объединение ресурсов в сервере центра коммутации с кластером с электронными платами
US8811154B2 (en) Packet forwarding system, packet forwarding device, proxy device, computer readable medium storing program, and control method of packet forwarding device
JP5941404B2 (ja) 通信システム、経路切替方法及び通信装置
JP5024195B2 (ja) 負荷分散サーバ、ネットワーク負荷分散方法および輻輳回避方法
WO2012000234A1 (zh) 链路间快速切换的方法、装置和系统
EP1592173B1 (en) Protection switching methods and systems for electronic devices
WO2011143876A1 (zh) 业务节点主备切换方法和装置
WO2012065435A1 (zh) 一种传送网中的路径回切方法及装置
RU2584799C2 (ru) Устройство коммутации и способ управления передачей и приемом кадров
WO2012028409A1 (en) Method and apparatus for restoring a connection through a provider network upon request
CN105939254B (zh) Vrrp备份组状态切换的方法及装置
JP2008104108A (ja) 中継装置および障害監視方法
WO2009152700A1 (zh) 管理网络设备端口状态的方法、系统及中转设备
CN102932249A (zh) 一种vrrp报文的传输方法和装置
KR101358995B1 (ko) 고가용성 관리 방법 및 시스템
CN115801642B (zh) 基于状态控制的rdma通讯管理模块、方法、设备及介质
JPH04234240A (ja) 通信セッション監査方法及び装置
JP6554405B2 (ja) リングネットワークシステム、及び、ネットワークノード
EP3573298B1 (en) Multi-node device and method for micro server built-in switch uplink port backup
JP4967674B2 (ja) メディアサービスシステム、メディアサービス装置及びそれらに用いるlan冗長化方法
JP2013118440A (ja) 伝送装置及びインタフェース装置
KR100832543B1 (ko) 계층적 다중 백업 구조를 갖는 고가용성 클러스터 시스템및 이를 이용한 고가용성 구현 방법
JP5631285B2 (ja) 障害監視システムおよび障害監視方法
CN113497753A (zh) 一种跨设备链路聚合方法及系统

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17862791

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2018545770

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17862791

Country of ref document: EP

Kind code of ref document: A1