Anand, did you have any luck solving this? I know this was a long time ago...
I believe the way to clone to a cluster is to use the StorageResourceManager.RecommendDatastores(), however I'm getting the same error you're getting, so I'm not much closer.
BTW, for anyone who is confused by this, a datastore cluster is called a "StoragePod" in the .NET API.
The issue mentioned on this thread is slightly different than a datastore cluster, at least the way I read it, it's regarding a regulard DRS enabled cluster.
Per the API documentation - http://pubs.vmware.com/vsphere-50/index.jsp?topic=/com.vmware.wssdk.apiref.doc_50/vim.vm.RelocateSpec.html You need to get a reference to the Cluster and it's resourcePool http://pubs.vmware.com/vsphere-50/index.jsp?topic=/com.vmware.wssdk.apiref.doc_50/vim.ComputeResource.html
For creating/cloning VMs to a datastoreCluster, instead of using CreateVM_Task() you need to use the new RecommendDatastores() as you have mentioned. The parameters are mostly the same from CreateVM_Task() with the exception of the storagePod (datastoreCluster object).
BTW - StoragePod is not just in the .NET SDK, it's in the vSphere API. If you are interested in the vSphere 5 object model, be sure to check out this blog post http://blogs.vmware.com/vsphere/2012/02/introduction-to-the-vsphere-api-part-2-object-model.html
Hi Anandraj, could you solve your issue? I am also trying to use the cluster instead of a specific host and getting the same error?