vSphere FT protects the VM all the time, and when there is an underlying host problem, the “shadow” VM (the secondary VM created when you activate FT) replaces the failed primary VM instantly without the users noticing.
How does FT work, and what’s the history?
It works by continuously replicating an entire running VM from one physical server to another. The protected VM is the primary VM. Activating FT creates a duplicate VM called a secondary VM, which runs on another host.
FT continuously replicates the primary VM to the secondary VM so the secondary VM can take over at any point, thereby providing fault-tolerant protection. In case of a hardware problem on the host that runs the primary VM, it will start a new secondary VM and reestablish FT redundancy automatically.
vSphere FT cluster requirements
- The ESXi hosts in the cluster must have access to the same datastores and networks.
- Minimum of two FT-certified ESXi hosts with the same FT version or host build number must be used.
- ESXi hosts must have FT logging and vMotion networking configured.
- vSphere HA must be enabled on the cluster.
- Host certificate checking must be enabled in the vCenter Server settings. This is the default for vCenter Server 4.1 and later.
vSphere FT host requirements
- Hosts must have processors from an FT-compatible processor group.
- Hosts must be licensed for Fault Tolerance.
- Configuration for each host must have Hardware Virtualization (HV) enabled in the BIOS.
- The hosts must be certified for FT in the VMware HCL.
vSphere FT virtual machine requirements
- Only VMs with a single vCPU are supported with vSphere FT.
- VMs must be running a supported guest OS.
- VM files must be stored on shared storage that is accessible to all applicable ESXi hosts. Fibre Channel, FCoE, iSCSI, and NFS for shared storage are supported by FT.
- VM’s virtual disks must be in thick provisioned format or a Virtual mode RDM. Physical mode RDMs are not supported.
- VM must not have any snapshots.
- VM must not be a linked clone.
- VM cannot have any USB devices, sound devices, serial ports, or parallel ports in its configuration.
- vSphere Fault Tolerance is not supported with a 2TB+ VMDK
- The number of VMs protected by FT per cluster: by default, this is four (but configurable with the host advanced configuration parameter: maxftvmsperhost).
- The number of virtual CPUs (vCPUs) configured within VMs protected by FT: by default, this is eight (but configurable with the host advanced configuration parameter: maxftvcpusperhost).
The number of vCPUs supported by a single fault-tolerant VM is limited by the level of licensing you have purchased for vSphere.
FT support is as follows:
- vSphere Standard and Enterprise allow up to two vCPUs
- vSphere Enterprise Plus allows up to eight vCPUs
Use cases for FT:
- An application that needs to be bulletproof: Its workload cannot have five minutes of downtime. It’s a business-critical enterprise application. Every minute counts.
- A custom application that cannot do clustering any other way.
- Temporary protection: You might have a monthly report running one day per month every month, and you want to be absolutely sure your VM won’t be down because of a hardware problem. You activate FT for a day for that particular VM.
- Clustering is too complicated to maintain and configure: There might be cases where your application can be clustered, but it’s really problematic and difficult to install and maintain
Where do you activate VMware Fault Tolerance?
First, on each host, create a new VMkernel network adapter and activate Fault Tolerance logging.
Start the vSphere Web Client and go to Host > Manage > Networking. Then go to VMkernel adapters > Add host networking; select the VMkernel network adapter and select an existing standard switch or a new vSwitch. On the Port properties, enable Fault Tolerance.
In addition, you must enable the vMotion VMkernel interface. Also, make sure the host has a license covering Fault Tolerance. Then, at the VM level, you can configure VMware FT.
Once you’ve met the requirements, simply right-click a VM and go to Fault Tolerance > Turn on Fault Tolerance.
And now, you will have highly available VMs that are able to remain up during host failures.
Hopefully, this post has helped clear up any confusion you might have had over Fault Tolerance. It really is a great tool if used in the right case! 🙂