Looking at the default limits on svMotion at:
...it appears that the cost of an svMotion is 16, and the maximum cost of svMotions per datastore is 128. So, the maximum concurrent svMotions per datastore is 8.
Is there a way to limit the concurrent svMotions per datastore to 1?
I tried adding the following configurations to the vCenter advanced settings (just guessing based on the syntax of limiting vMotion):
But neither of these seem to have any effect, even after restarting the vCenter service.
I am using the vCenter Server Appliance 5.0, ESXi 5.0 hosts, and iSCSI storage.
Thanks in advance for your help.
What you are asking to do is a little strange. Most people try to get as many svMotions or vMotions done as quickly as possible. Can I ask why you are trying to limit your concurrent svMotions?
More than 1-2 concurrent svMotions seems to impact overall storage performance (in my environment). In addition, the total throughput on the storage array does not usually increase significantly with more than 1-2 svMotions so I don't think it's making the entire operation any faster (datastore evacuation for example).
So your storage is iSCSI?
If you only have a single 1GB uplink assigned for the vMotion network, then I'm pretty sure it will limit you to 2 concurrent svMotion per host.
Having said that limiting your vMotions because your storage is not performing is not going to help you long term. It may fix performance impact issues immediately, but it would be better to find out why your storage array is having issues.
What is the model of your SAN?
How is Raid configured? Raid10, Raid5.
What is the size of your datastores/LUNs and what block size are they using?
What speed are the disks in your SAN?
Do you know what your IOPS requirements are?
I'm interested in what the answer would be to the question asked:
Lower the Maximum Concurrent svMotions Per Datastore value.
I can think of several reasons why someone would want to do this. In my case, I'm migrating 200 vm's slowly to another datastore located in a new physical datacentre, I'm not doing more then 2 at a time, this just because the link is shared with other services. This is a temporary situation.
However I, wouldn't mind if I could just queue everything and have it limit automatically to just 2 hosts. So I can leave it alone until it finishes.
Is there a vpxd setting for this? Any advice would be very much appreciated
I found that if I use this:
I can do one (but not two) live storage migrations at the same time
If I use this:
Live storage migration would not start at all
Cold storage migration still works
Therefore, at least one of the new parameters in the 2nd config should be valid and can be used to limit concurrent storage migrations. The values I used were so extreme that even one live storage migration exceeded the cost.
These parameters (other than maxCostPerHost) are not documented, so I can only guess their names. Many of the ones I tried are probably bogus. Nonetheless, it should serve as a good starting point for you to experiement.
If someone figures out which parameter is real, please share!
In the above tests, "storage migration" means executing "Change Datastore" in vSphere client. The host wasn't changed.
Software platform verion: 5.0
If you don't know how to apply these config, see: http://www.boche.net/blog/index.php/2009/01/05/guest-blog-entry-vmotion-performance/
Recently i've written an article about limiting the number of Storage vMotions, explaining the relation between host, network and datastore cost.