I have configured datastore cluster with name DatastoreCluster-1 in my Test Lab.
I have two ESXi hosts which are part of HA cluster.
I have added two datastores which are created on ISCSI LUNs. Each datastore is having only single instance.
Now as part of pratice I though of applying Storage DRS Anti-Affinity Rules :
These are basically of two types.
1) Inter-VM Anti-Affinity Rules : It applies at VM level that whether VM should be kept on same datastore or not.
2) Intra-VM Anti-Affinity Rules : It applies at Virtual Disk level that are associate with particular Virtual machine.
In the first screenshot I am showing that currently two VMs are hosted in DatastoreCluster-1. If you see both VMs are using
Scenario 1 : Inter-VM Anti-Affinity Rules
Now I have created Inter-VM Anti-Affinity Rule : So that these two VMs should be hosted on different Datastores.
It can be created using below Wizard.
Selecting Datastore Cluster –> Manage –> Settings –> Under configuration –> Select Rules –> Click Add –> Type the name of rule and Select VM anti-affinity –> Click Add –> Select two VMs(On which you want to apply rule) –> Save
After that I went to path shown in screenshot and click on “Run Storage DRS Now”. It shows me recommendation as per the rule.
After applying recommendation Storage migration started from data store ISCSIDataStore-2 to another ISCSIDataStore-1. It will take some time as soon as it get completed you will see that redhat-2 is running on ISCSIDataStore-1
Scenario 2 : Intra-VM Anti-Affinity Rules
I am adding new vmdk to redhat-2 because for Intra-VM anti-affinity rules VM should have atleast 2 disks.
While adding second rule as shown in screenshot. I am facing the challenge because it is conflicting with first one.
Now we have two ways to overcome the situation.
1) Add new datastore into cluster
2) Delete the previous rule.
In this case I am deleting the previous rule and then again trying to add this rule.
Still I was getting error because as per the VM overrides setting all VMDK for one VM should lie on same datastore.
I change the “Keep VMDKs Together setting from Yes to No”
After that was able to create Rule.
Click the “Run Storage DRS Now”. After that It shows me the recommendation we can apply that to move the vmdk from datastore to another.
Bonus Tip if you want to ignore all affinity rules during putting datastore in maintenance then add this setting in it. We can add the Advanced setting in Configuration Parameters.