So, I'm getting ready for my 5.1 upgrade, and I need to set the vaules for QFullSampleSize and QFullThreshold for my array (3PAR). According to KB1008113, it looks like that procedure has changed:
In ESXi releases earlier than ESXi 5.1, QFullSampleSize and QFullThreshold are set globally, that is, on all devices seen by the ESXi host. In VMware ESXi 5.1, these parameter are not set globally because different vendors have different optimal values for their arrays. You set QFullSampleSize and QFullThreshold on a per-device level.
Run the following ESXCLI command:.
esxcli storage core device set --device device_name --queue-full-threshold
Q --queue-full-sample-size S
Settings are persistent across reboots.
You can retrieve the values for a device by using the corresponding list command.
esxcli storage core device list
The command supports an optional --device parameter.
esxcli storage core device list --device device
I think this is a great change. Would have helped me a while ago when I was migrating to this 3PAR array in the first place. But I'm looking for a way to make the vaules I set the default values for any disks I provision to my farm. I don't want to have to touch all of my hosts every time I provision a new disk to my system. Anyone have any ideas on how to do this? I can't find anything like the Path Selection Policies, where I can change the defaults. Heck, I would even be happy with being able to set the system to the "old" way and have it set globally per host.
Any advice would be appreciated. Thanks.
If anyone out there is curious, here's the official response from VMware on this question:
Thank you for your Support Request.
Unfortunately, we don't have a way to set the policy globally in 5.1. The KB does provide the commands to set the queue for the device. You can script the configuration and run the script on each host. Other than that, we currently don't have a way to mass deploy that configuration to all hosts or to make the setting global again.
Please let me know if this answers your question or if I may close this case.
Technical Support Engineer
Global Support Services, VMware Inc.
Quick update on the above posts...
Looks like you can now set these values globally if you apply Patch Release ESXi510-201212001:
There are multiple patches in this release, but the one that changes this behavior is included:
PR926287: ESXi 5.1 does not provide advanced parameters QFullSampleSize and QFullThreshold which are required to enable adaptive queue depth algorithm. This patch resolves the issue by providing the advanced parameters to set the values globally.
Note: You can also use the esxcli command to set these values per device. If both the options (esxcli and advanced parameters) are used, the per device values take precedence.
So there you go. Apply the patch to your hosts and you should be able to set the value as you have in the past.