Enabling VMware Fault Tolerance in a Nested Environment
As a VMware enthusiast, I was eager to explore the capabilities of VMware Fault Tolerance (FT) in a nested environment. While it is not officially supported by VMware, I was determined to find a way to enable it for my lab virtual machines. In this blog post, I will share my experience and the steps I took to configure FT in a nested environment.
Background Information
FT is a feature that provides zero-downtime maintenance and failover for virtual machines (VMs) running on VMware vSphere. It uses a combination of hardware and software techniques to ensure that the VM remains available even in the event of a hardware failure. However, FT is not supported in nested environments, as HW virtualization features are required.
My Lab Setup
I use a HP ProLiant DL160 G6 server with two Intel Xeon E5520 processors, 32GB of RAM, and a RAID 0 configuration with four SATA drives. I have installed vSphere 5.5 in my lab, and I am using a nested environment to run ESXi inside my host machine.
Configuring FT
To configure FT for a VM, you need to set three configuration parameters:
1. Edit Settings… > VM Options > Advanced > Edit Configuration…
2. AllowFT = true
3. Replay.allowBTOnly = true
Once you have set these parameters, you can enable FT and start the VM. However, please note that you can only run 32-bit guests, as FT is not supported for 64-bit guests due to binary translation issues.
Screenshots from vSphere Web Client
I have taken screenshots of the configuration parameters and the enabled state of FT in my lab environment using the vSphere 5.5 web client. As you can see, I have enabled FT for a 32-bit Windows 2003 VM, which is sufficient for demonstrating the configuration and use of FT in a lab environment.
Challenges and Limitations
While it is possible to enable FT in a nested environment, there are some challenges and limitations to keep in mind:
1. Limited support: FT is not officially supported in nested environments, so you may encounter issues or limitations that are not addressed by VMware.
2. Binary translation: As mentioned earlier, FT is not supported for 64-bit guests due to binary translation issues. This means that you can only run 32-bit guests with FT enabled.
3. vHV requirement: To use FT in a nested environment, you need to have vHV (Virtual Hardware Virtualization) enabled in the CPU section of your host machine.
4. Limited compatibility: Not all VMs may be compatible with FT in a nested environment. You may encounter issues with certain VMs or applications that are not designed to work with FT.
Conclusion
In this blog post, I have shared my experience with enabling VMware Fault Tolerance in a nested environment. While it is not officially supported by VMware, it is possible to configure FT for 32-bit guests in a lab environment. However, there are limitations and challenges to keep in mind, such as binary translation issues and limited compatibility with certain VMs or applications.
If you are interested in learning more about nested virtualization and automation using various API/SDK and CLI, I recommend checking out virtuallyGhetto, an awesome source of information and resources provided by William Lam.