VMware Cloud Community
ryanjacobs
Contributor
Contributor

Complex DRS Rules Question

Hi all,

I've searched a bit and can't seem to come up with a definitive answer here.

We have a complex DRS problem; I'll do my best to describe it.

Our production cluster has 6 hosts in it. They are all blades, spread across 3 blade chassis like so:

Chassis 1

ESXi1

ESXi2

Chassis 2

ESXi3

ESXi4

Chassis 3

ESXi5

ESXi6

Our new exchange environment will consist of (among other things) 2 VMs that we do not want to exist on the same CHASSIS (this implies that they cannot exist on the same host).

I can't seem to figure out a set of DRS rules that will cover this. I have a feeling that the secret might lie in groups, but I just can't seem to quite nail it down.

Any thoughts out there?

Thanks.

Ryan

Reply
0 Kudos
4 Replies
nava_thulasi39

Hi,

I am afraid, I got your query correctly.

But You need to create Virtual Machine DRS group to place Exchange VMs in to the groups and Host DRS groups to place required hosts based on the chasis.

And need to set the DRS rule to move the exchange VMs only between the mentioned hosts (Host DRS group)

If you find this or any other answer useful please consider awarding points by marking the answer correct or helpful
Reply
0 Kudos
ryanjacobs
Contributor
Contributor

Hi there,

Thanks for your response.

My problem is I can't figure out the rules and groups. Here is the desired solution, I just can't figure out how to make it work:

IF ExchVM1 is on host in Chassis 1, ExchVM2 MUST NOT be on host in Chassis 1

IF ExchVM1 is on host in Chassis 2, ExchVM2 MUST NOT be on host in Chassis 2

IF ExchVM1 is on host in Chassis 3, ExchVM2 MUST NOT be on host in Chassis 3

The issue is the comparison. I can't figure out how to set anti-affinity based on the condition of another group; basic anti-affinity won't compare to a group, only to another VM; but a VM group can't be compared to another VM group. I can say "ExchVM 1 MUST BE on host in Chassis 1" (or I can say ExchVM2 MUST NOT be on host in Chassis 1), but that's as much as I can define; I don't want to lock ExchVM1 to chassis 1 and ExchVM2 to chassis 2, because that would mean that there are 2 hosts that are unavailable for use by the ExchVMs, which doesn't make sense.

Does that help clear up what I'm after?

Ryan

Reply
0 Kudos
chriswahl
Virtuoso
Virtuoso

Unfortunately you've bumped up against the boundaries of just how granular DRS groups can be.

Not that I'm a fan of writing this many rules, but another slightly more flexible option would be:

  1. An ExchVM1 VM Group
  2. An ExchVM2 VM Group
  3. A Chassis 1 Host Group (with the blades in that chassis) + a Chassis 3 blade
  4. A Chassis 2 Host Group (with the blades in that chassis) + the same Chassis 3 blade
  5. A "should" rule to keep ExchVM1 VM Group on Chassis 1 Host Group
  6. A "should" rule to keep ExchVM2 VM Group on Chassis 2 Host Group
  7. A "Separate Virtual Machines" rule for ExchVM1 and ExchVM2.

This gives each VM 3 potential host options, and if the Chassis 3 blade is chosen for both, DRS will move one off.

In the event of a full chassis outage, HA is unaware of the "should" rule and will start the failed ExchVM on a surviving host.

VCDX #104 (DCV, NV) ஃ WahlNetwork.com ஃ @ChrisWahl ஃ Author, Networking for VMware Administrators
ryanjacobs
Contributor
Contributor

Chris,

Thanks for that. I had exactly the same thought; it was actually TOO granular.

At any rate we did come up with this solution, but thank you for pointing out the ramifications of HA restarts, which we hadn't considered.

Here's hoping VMware allows this type of functionality in the future.

Ryan

Reply
0 Kudos