In order to implement DataCore storage with vSphere ESXi, you need to follow some best practices.
It is true for both iSCSI and FC.
You will find all details regarding those best practices in the DataCore support website, here is the link : VMware ESXi Configuration Guide
This article’s goal is to summarize these information and give some tips regarding the implementation.
All the settings which are described in this article, and more specifically the multipathing rules, have to be applied before serving Virtual Disk to ESXi hosts. If you need to change the settings after, you will have to check the DataCore Configuration Guide.
Three settings need to be checked here:
- The Disk.DiskMaxIoSize advanced setting
- The VAAI configuration
- DalyedACK, if you a dealing with an iSCSI architecture
Advanced Settings: Disk.DiskMaxIoSize
It describes the IO size which is transmitted to the storage, by default it is set to 32767 KB, DataCore recommendation is to set it to 512 KB.
It’s no longer needed to change parameters such as UseLunReset or CRTimeoutDuringBoot anymore (for those who remember SANmelody!))
Changing through PowerCLI
Checking the parameter for all the hosts in a cluster (replace “Cluster” by your Cluster name):
Set the parameter to 512:
Changing it through Web Client
It is also possible to change the setting though the Web Client on the vCenter or on the ESXi itself.
Setting the parameter:
VAAI Configuration: ATS for VMFS Heartbeat
I will intentionally not focus on VAAI here, I will probably publish a dedicated article later.
There was a change in vSphere ESXi 5.5U2 and 6.0 on the way ESXi is dealing with VMFS Heartbeat. Nowon, ATS (Atomic Test and Set) is used instead if SCSI Read/Write commands.
ATS for VMFS Heartbeat is not supported with SANsymphony, therefore, it should be disactivated:
It is specified VMFS5 but it also valid for VMFS6: https://kb.vmware.com/s/article/2113956
The setting can be change through PowerCLI for the whole Cluster
Checking the parameter for all the hosts in a cluster:
Disabling ATS Heartbeat for the whole cluster:
Most of the time, when you are using an iSCSI storage, it is advised to disable DelayedAck as it can induce latency. DataCore is not making an exception here, so you will have to disable it in order to maintain a consitant latency:
To check the value:
Disabling it for the cluster:
The multipathing configuration is always an important topic when it comes to vSphere storage.
Two documents should be taken into account:
- The VMware Hardware Compatibility List (HCL)
- The DataCore VMware ESXi Configuration Guide
There are three different Multipathing rules by default on an ESXi (PSP):
- Round Robin
- Most Recently Used
So the question is: which one should I use ?
On VMware side, there are two relevant points:
First of all, there is only support for volumes served through host which are configured with ALUA (Asymmetrical Logical Unit Access), then there is no support for MRU, only for Round Robin and Fixed.
ESXi Configuration Guide
In the DataCore Configuration Guide for ESXi, we can see the supported version with and without ALUA:
Regarding the multipathing rule to use, the document is not very clear and let you make your own decision “DataCore does not recommend to use a particular PSP. Choose the PSP that is appropriate for your configuration."
MRU (Most Recently Used) is indicated as not tested (and we can’t find it in the VMware HCL):
And most important, MRU in association with ALUA is not supported! For MRU, Hosts must not have the ALUA setting.
In conclusion : Dot NOT use MRU in your DataCore/ESXi configurations!
Fixed was the preferred option with old DataCore releases (SANmelody), in particular with iSCSI. Since SANsymphony 9.x, we tend to use Round Robin most of the time. In association with ALUA, the configuration on ESXi side is simplified as we don’t have to set preferred path manually anymore. I will try to do a dedicated an article on the advantages of using ALUA with Round Robin.
Round Robin is only supported with ALUA (which will be set on DataCore side)
So now on, we will make sure to use Round Robin with ALUA.
As we saw previously, MRU should not be used with ALUA but it is the default ESXi configuration!
For each SATP (Storage Array Type Plug-ins) module, ESXi will associate a specific PSP (Path Selection Policy). The default configuration is (for ESXi 6.x):
On the second row, we can see MRU is chosen for hosts configured with ALUA. This default configuration can be changed with the following command line:
It is a possibility, but it should only be considered if you have just DataCore storage, even though I recommend creating a custom rule for DataCore.
Dedicated DataCore rule creation
We can display the rule already created:
And then create a custom rule:
The IOPS parameter is only available with Round Robin, no matter the storage used with VMware, it is rather often recommended to lower it (default value is 1000). Please refer to your storage vendor best practices guide.
DataCore ALUA configuration
Last step, during the process of creating the host in the DataCore console, you need to activate ALUA (if you are using an up-to-date version of SANsymphony it should be activated by default). You also need to chose a Preferred server:
The Preferred server is the DataCore node which is in the same “side” as your host. It is used to set a weight on both path within the same datacenter.