Here's my situation...
I have a time-clock application that runs on sets of 3 VMs... Each set has two web servers and an application server that works with both web servers.
The load is large enough that we have NINE sets of these 3 VMs groupings... so 27 total VMs... but working in sets of 3...
In my old 2.5.x environment, Each set of 3 was placed on it's own host server. Performance was excellence because each VM in the set were talking to each other at bus speed...
They always had all the CPU they needed because each set was isolated on its own host server.
Well, I just finished my migration to VI3... and I want to emulate the same configuration... I want the three VMs of each set to always be together on the same host server, and for NO set to be on the same host server with another set...
At first, I set up nine DRS rules for keeping the three VMs of each set together. This worked fine (I moved a couple of VMs, and watched them automatically get moved back to be with their "set"). Then I went to set up DRS rules for keeping VMs apart... I tried to set up the following rules:
The nine application servers had to be on different host servers
The nine 1st web servers had to be on different host servers
The nine 2nd web servers had to be on different host servers
Of course, as some of you know, there's a bug in the "Keep separate" rules that only allows 2 VMs at a time in those rules... So I was looking at setting up 36 rules for the application servers, 36 rules for the 1st web server, and 36 rules for the 2nd web server...
To be honest, even if the rules did work correctly, I was bit worried how the alogorithm would work. Is anyone else out there using fairly complicated DRS rules?
I'm thinking instead what i should do is just place the nine sets of 3 VMs on nine different host servers, and then set each of those VMs individually to Manual in the DRS rules... This should keep them from ever being moved by DRS correct?
I did test such a configuration in my test lab, and HA still works even with VMs are set to manual like this. They still fail over to another server.
Almost seems simpler to do it this way than to let DRS do it.
I have a couple of other applications that are somewhat similar... I have one 8 VM web farm that I'd like to make sure are all on different host servers... So I either set up a bunch of DRS 2-VM rules or do the manual method again...
I see myself sliding down the slippery slope... I don't want to do TOO much manual... but I also want to maintain proper load balancing for applications... If I let DRS handle everything without rules, a couple of months from now, I could inadvertently end up with 4 of those 8 web VMs on the same host... A hardware failure could cause some real downtime. Yes, HA would get them back up within 5 minutes... but these are important production web servers, built to be N+2 tolerant... losing 4 at once, even for 5 minutes, would be a black eye for virtualization team (i.e., me).
Thoughts? Manual with good documentation, or try to use DRS and let VMware take care of the details?
couldnt you cheat and make the DRS rules for the VMs that need to be kept together and then make a rule that keeps two machines from each set of keep together VMs, seperate. DRS shouldnt be able to move the VM because one of the VMs that was part of the keep together set couldnt not be placed on the host due to the keep seperate rule this way you culd create the rule to keep them apart with only 2 machines in it and when it is fixed to allow you to add more vms into that rule just add them.
keep together groups
vm1
vm2
vm3
vm4
vm5
vm6
vm7
vm8
vm9
vm10
vm11
vm12
keep apart
vm1
vm4
vm5
vm8
vm9
vm12
etc..
just no idea if it would work for you
In this scenario I'd simply swicth DRS to manual mode or disable DRS for these VMs (this has the benefit that other VMs are stilled moved automatically).
Hopefully the DRS rules bug gets fixed ASAP.
couldnt you cheat and make the DRS rules for the VMs that need to be kept together and then make a rule that keeps two machines from each set of keep together VMs, seperate. DRS shouldnt be able to move the VM because one of the VMs that was part of the keep together set couldnt not be placed on the host due to the keep seperate rule this way you culd create the rule to keep them apart with only 2 machines in it and when it is fixed to allow you to add more vms into that rule just add them.
keep together groups
vm1
vm2
vm3
vm4
vm5
vm6
vm7
vm8
vm9
vm10
vm11
vm12
keep apart
vm1
vm4
vm5
vm8
vm9
vm12
etc..
just no idea if it would work for you
Yes you can get complex and it will work. I have some pretty complex rules for a set on one cluster but KISS might be a better idea and set things to manual on the VMs needed.