Understanding Quorum's Effect on System Behavior

A quorum server in a SplitSite system changes the system's availability and recovery behavior. To understand the quorum's effect on system behavior, you first need to understand the behavior of a system that does not have a quorum server.

Prerequisite: Plan and create a SplitSite configuration by first reading Creating a SplitSite Configuration and following its instructions, if you have not already done so.

An everRun system is designed to provide high availability for one or more guest VMs, which allows the VMs to continue to run even during failures that would otherwise create application downtime. The everRun system can continue to run guest VMs even with, for example, the loss of a single network connection, a hard disk, or even an entire computer.

However, if more catastrophic faults occur (for example, the loss of all possible network paths), the everRun system attempts to determine the overall state of the total system. The system then takes the actions necessary to protect the integrity of the guest VMs.

The following examples illustrate the system's process during a catastrophic fault.

Example 1: A System Without a Quorum Server Experiences a Split-brain Condition

In this SplitSite example, the everRun system includes node0 and node1, but does not include a quorum server. Operation is normal; no faults are currently detected. The two nodes communicate their state and availability over the A-Link connections, as they do during normal (faultess) operation. The following illustration shows normal connections.

A Catastrophic Fault

A careless fork-truck operator crashes through the wall, severing all of the network connections (both business and A-Links), while leaving the power available and the system running. The following illustration shows the fault condition.

Fault Handling

The two nodes handle the fault, as follows:

From the perspective of an application client or an external observer, the guest VMs are both active and generate network messages with the same return address. Both guest VMs generate data and see different amounts of communication faults. The states of the guest VMs becomes more divergent over time.

Recovery and Repair

After some time, network connectivity is restored: the wall is repaired and the network cables are replaced.

When each AX of the AX pair realizes that its partner is back online, the AX pair with the fault handler rules choose the AX that continues as active. The choice is unpredictable and does not include any consideration for which node's performance was more accurate during the split-brain condition.

The data that was generated from the (now) Standby node is overwritten by the resynchronization of the Active node, and thus the data on the (now) Standby node is lost forever.

After a split-brain condition, the system requires several minutes to resynchronize, depending on how much disk activity needs to be sent to the standby node. If several guest VMs are running with different Active nodes, synchronization traffic may occur in both directions.

Note: In some cases, the everRun system may not be able to determine the best way to proceed after a catastrophic fault. In this case, a person needs to recover the system. The recommended recovery method is to use the everRun Availability Console to shut down and reboot one node while the other node continues to run. This method typically forces the running node to become Primary and the AX on that node becomes Active. After the running node becomes Primary, a person can power on the other node. Do not shut down either node if resynchronization is already in progress.

Example 2: A SplitSite System With a Quorum Server Avoids a Split-brain Condition

In this SplitSite example, the everRun system includes node0 and node1 with connections identical to those of the system in Example 1. In addition, the system in Example 2 includes a quorum server. The following illustration shows these connections.

A Catastrophic Fault

That careless fork-truck operator crashes through the wall again, severing all of the network connections while leaving the power available and the system running. The following illustration shows the fault condition.

Fault Handling

The two nodes handle the fault, as follows:

Note: If the node1 AX was not previously active and the guest VM is an HA VM, the guest VM on node1 might need to boot from node1's hard drive. In this case, the application experiences a brief period of downtime while the guest VM boots. (FT VMs continue to run.)

From the perspective of an application client or an external observer, the guest VM on node1 remains active and generates data while the VM on node0 is shut down. No split-brain condition exists.

Recovery and Repair

After some time, network connectivity is restored: the wall is repaired and the network cables are replaced.

When the node1 AX realizes that its partner is back online, the node0 AX becomes Standby. Because node0 was not previously running, data synchronization begins from node1 to node0.

Since a split-brain condition did not occur, no data is lost.

The system requires a few minutes to resynchronize, depending on how much disk activity needs to be sent to the standby node.

Example 2, Modified: The Quorum Server Is Unreachable During the Catastrophic Fault

In a SplitSite system with a quorum server, the quorum server may be offline or otherwise unreachable when the catastrophic fault severs all of the network connections, though the power remains available and the system is still running. The following illustration shows a system in this situation with a quorum server that is offline.

The fault handling is similar to Example 2 fault handling, with one important difference for node1:

The node1 AX also detects the loss of both A-Links, but ibiz0 remains available. The node1 AX tries to contact the quorum server, but the communication fails. The AX terminates the guest VM.

In this case, the guest VM is shut down on both node0 and node1, preventing split-brain from occurring. The tradeoff is that the guest VM is unavailable until the connection to either node0 or to the quorum server is restored.

In this case, determine the node that you do not wish to operate and power it down. Then, forcibly boot the node that you wish to operate, and then forcibly boot the VM. For information on shutting down a VM and then starting it, see Managing the Operation of a Virtual Machine.)

Example 2, Modified: The Quorum Server Is Unreachable With No Catastrophic Fault

In some situations, the quorum server might be unreachable even without a catastrophic physical failure. One example is when the quorum computer is rebooted for routine maintenance such as applying an OS patch. In these situations, the AX detects that the quorum service is not responding and so the AX suspends synchronization traffic until the connection to the quorum server is restored. The guest VM continues to run on the node that was active when the connection was lost. However, the guest VM does not move to the standby node because additional faults may occur. After the quorum service is restored, the AX resumes synchronization and normal fault handling, as long as the connection to the quorum server is maintained.

Recovering From a Power Failure

If you restart the system after a power loss or a system shutdown, the everRun system waits indefinitely for its partner to boot and respond before the system starts any guest VMs. If the AX that was previously active can contact the quorum server, the AX starts the guest VM immediately without waiting for the partner node to boot. If the AX that was previously standby boots first, it waits for its partner node.

If the system receives a response from either the partner node or the quorum server, normal operation resumes and the VM will start, subject to the same fault handler rules that apply in other cases.

If the system does not receive a response from the quorum server, or if the system does not have a quorum server, then a person must forcibly boot a guest VM, which overrides any decisions made by the AX or the fault handler. You must ensure that two people do not forcibly boot the same guest VM on node0 and node1. Doing so inadvertently causes a split-brain condition.