I have had multiple discussions about Storage DRS default affinity internally and now saw this question on the VMTN Community Forums. It is a long question, but basically it comes down to this:
What are the best practices for Storage DRS Datastore Clusters when using vCloud Director?
Seems like a fair question to me, and it comes from the fact that when you create a thin provisioned VMs with multiple disks and they grow it can be difficult to move VMs around when the diskspace threshold is reached. Let me rephrase that, by default it can be difficult to move VMs around. The reason for this is that the default affinity rules for disk is: “Keep VMDKs together by default“. This is depicted in the screenshot below, which I stole from Frank’s article on this exact topic.
As a best practice I would definitely recommend unticking the “Keep VMDKs together by default” when creating a Datastore Cluster in a vCloud Director environment. (Do note that this is NOT supported when using “linked clones / fast provisioning”.) By doing so Storage DRS will have far more options to move virtual disks around as it can make decisions per disk instead of per VM. By changing the default; Storage DRS will find the optimal placement per disk (for more in-depth info read Franks article). Of course you could stick to the default and then change the “VMDK affinity” per virtual machine, but that means you need to go to vCenter and that kind of defeats the whole purpose of vCloud Director right.
Do note that it can make commandline based troubleshooting slightly more difficult, but I guess the fact that Storage DRS will have way more options to balance and avoid things like “out-of-space conditions” seems like a big win to me. I guess this doesn’t only apply to vCloud Director based infrastructures… This applies to every infrastructure, VMDK anti-affinity can make life better!