On Reddit there was a question about how to specify on which group of hosts the secondary VM of an FT-enabled VM would land on. Now this is a problem that has been around for a while, and for the longest time we actually did not have a solution for it, but now we do. I did a quick search, and somehow I couldn’t find an article where I describe how this works, so I figured I would write one. Having said that, I would not be surprised if there’s already and article out there, but somehow didn’t pop up.
When it comes to vSphere Fault Tolerance, when you enable it on a VM, what you will see happening is that the VM you enabled it on will get “(primary)” behind the name. This VM is, as you would expect, the primary and is paired with a “secondary”. This “secondary” VM runs in lockstep with the primary, so that it can take over instantly if the primary would fail for any reason. Now, that secondary VM is kind of a strange VM. Although you can find the VM in your inventory on a host level, you cannot find it on a cluster level or in the VM view. It is like a shadow copy, it is there, but yet it isn’t really.
As a result, making VM-Host rules for it is rather difficult. Although you can do it, this shadow / secondary VM can also be reinstantiated and as a result that VM-Host rule would unfortunately break. Why? Well, the newly instantiated VM is literally that… a newly instantiated VM, so the old rules do not apply. So although the VM-Host rules with tags can work through the Compute Policy option, it not ideal. Probably should also mention, traditional VM-Host groups and rules do not even work with the secondary VM, as you simply cannot select the secondary VM to begin with.
So what does work? Well, there’s a new option called Enable Metro Cluster Fault Tolerance. What this does is that when you select a Host Group for the primary, the secondary VM automatically ends up on a host outside of the selected group. The Host Group can simply be defined via the VM-Host group option under your cluster’s Configure tab as shown in the screenshots below.
Hopefully this helps those who are planning on leveraging FT and want to ensure the primary and secondary are placed on different fault domains.

