Isto é apenas um pensamento, tentarei e testarei mais tarde.
E se você tivesse várias regras de antiafinidade separadas dessas VMs para outras VMs que estão em outros hosts. (Sim, eu sei que não é assim que a antafinidade deve funcionar). Eu não sei se uma única VM pode fazer parte de múltiplas regras antiafinidade ou não, e é sobre isso que tudo isso depende.
VM1, VM2 sendo as que você deseja manter juntas, configure a antassinidade de cada VM individualmente para a VM3 e faça o mesmo com a VM4. Também configure anti-afinidade entre VM3 e VM4.
Se funcionar, ele deve se mover como um bom jogo de shell de VMs movimentando-se suavemente.
Apenas outra maneira de pensar é a configuração de hosts preferenciais para as duas VMs que você deseja manter em conjunto até resolver o problema do comutador externo.
EDITAR
Parece que pode fazer parte de vários grupos antiafinidade, basta fazer um + = quando você atribui o nome da classe de afinidade. Então você deve ser bom para ir se você quiser fazer isso