Out of the many features that VMware technology support, there is one which is really interesting and lesser known. It is called vLockstep, and it is a nice feature to increase the Fault-Tolerance of your machines.
Using modern technology doesn’t mean that our data-center is bullet proof, every technology has its own limits. VMware experts already know that if a physical host fails, the virtual machines can reboot on another host, so to limit your overall downtime. Nevertheless, what if your machines are in such a critical state that you can’t have this reboot time in the case of a host failure? The answer might be VMware Fault Tolerance (FT).
VMware Fault Tolerance provides continuous availability for virtual machines by creating and maintaining a Secondary VM that is identical to, and continuously available to replace, the Primary VM in the event of a fail-over situation. Read it as a ghost VM backing up your primary one covertly.
There is another proprietary patented algorithm that helps VMware achieve this unusual feature, that is the vLockstep technology we were talking about. Let’s deep dive into how vLockstep helps us to take advantage of fault tolerant VMs.
VMware vLockstep: how it works
VMware vLockstep is a technology that captures inputs and events that occur on a primary virtual machine (VM) and sends them to a secondary VM. This supports the VMware’s Fault Tolerance component of VMware vSphere.
VMware’s Fault Tolerance works by keeping a primary virtual machine (VM) and a secondary VM in perfect sync. VMware vLockstep captures inputs and events that occur on the primary VM and sends them to the secondary VM. Because the secondary VM is always in sync with the primary VM, it can take over in the event of a primary VM failure without interruption and provide fault tolerant protection. When the secondary VM takes over, VMware FT automatically creates a new secondary VM. In fact, the name “Lockstep” comes from a style of military march that emphasizes synchronous movement.
For vLockstep to reproduce CPU instructions from the primary VM on the secondary VM, the Intel or AMD processors used must have the appropriate performance counter architecture and virtualization hardware assists. Both hosts supporting the VM pair must be in the same processor family.
VMware vLockstep should be set up on a dedicated network interface card (NIC) with at least 1 GB/s of throughput. Although all data is synchronized between the paired VMs over a server backbone network, outputs are suppressed in the secondary VM. For instance, VMware FT ensures only the primary VM initiates write operations to storage. Certain actions and instructions that are irrelevant for the secondary VM are not synched via vLockstep, reducing the burden on disk space and processors.
In versions of vSphere earlier than v.5, the vLockstep VM pairs were marked as “disabled” in VMware Distributed Resource Scheduler (DRS), enabling higher compatibility between VMware FT and DRS. In either case, users experience no interruption in service and no loss of data.
A fault tolerant virtual machine and its secondary copy are not allowed to run on the same host. This restriction ensures that a host failure cannot result in the loss of both virtual machines. You can also use VM-Host affinity rules to dictate which hosts designated virtual machines can run on. If you use these rules, be aware that for any Primary VM that is affected by such a rule, its associated Secondary VM is also affected. For more information about affinity rules, see the vSphere Resource Management documentation.
Fault Tolerance also avoids “split-brain” situations, which can lead to two active copies of a virtual machine after recovery from a failure. Atomic file locking on shared storage is used to coordinate fail-over so that only one side continues to run as the Primary VM and a new Secondary VM is re-spawned automatically.
How VMware vLockstep can help your organization
VMware vLockstep eliminates even the smallest of disruptions caused by server hardware failures. VMware Fault Tolerance provides instantaneous, non-disruptive fail-over in the event of server failures, protecting organizations from even the smallest disruptions or data losses when downtime costs can run into thousands of dollars in lost business.
It also provides continuous availability to any critical application. All applications that run inside a VMware virtual machine can be protected by VMware Fault Tolerance, allowing continuous levels of availability to be possible even for home grown or custom applications. Automatic detection of failures and seamless fail-over ensure that applications continue to run without interruptions, user disconnects or data loss during hardware failures.
Finally, it delivers uninterrupted service with simplicity and low cost. VMware Fault Tolerance works with existing VMware High Availability (HA) or VMware Distributed Resource Scheduler (DRS) clusters and can be simply turned on or turned off for virtual machines. When applications require operational continuity during critical periods such as month end or quarter end time periods for financial applications, VMware Fault Tolerance can be turned on with the click of a button to provide extra assurance. The operational simplicity of VMware Fault Tolerance is matched by its low cost.In fact, it is simply included as a component in VMware vSphere, and requires no specialized dedicated hardware.