I have two ESXi hosts. I am planning on installing a SQL Server instance on each hosts and make them highly available. The two hosts are connected to one SAN storage. The storage is Dell EMC PowerVault and it supports both Dynamic Disk Pools and RAID.

Now, in order to use AlwaysOn Availability Groups with SQL Server instances, how would I arrange the storage? Should the disks be VMFS or RDM?

Note: I am using vSphere 6.7

  • What about hosts' DAS storage? – A.Newgate Jan 22 at 15:59

Be careful in selecting and naming your HA solution.

  • Always On Availability Groups (AG) maintains secondary copies. Usually, roughly double the space and IOPS on the same array is undesirable.
  • Always On Failover Cluster Instances (FCI) are the suggested way to use one shared disk array for MS SQL. Only one copy, in theory simpler but if the one array fails the database is down.

Because SQL uses Windows Server Failover Clustering (WSFC), and FCI is the one copy of the data solution, shared storage requirements and guidelines apply. Use RDMs, or in guest iSCSI initiators, for clusters across physical hosts. Basically, the cluster needs direct access to shared LUNs.

Edit: you asked about VVols. As of ESXi 6.7, yes you can use VVols for FCI shared storage, due to more complete SCSI support. Read up on the feature and its requirements: Virtual Volumes now supports WSFC.

Capacity planning is necessary, both if the array physical disk layout can be changed with pools/groups or not. Determine whether the limiting factor is IOPS or capacity.

  • OK, I will use AlwaysOn Failover Cluster Instances. However, the shared storage requirements documents that you mentioned in your comment says that I can use VVOLs instead of RDM. Is that possible? In case I have to stick to either RDM or iSCSI initiators, which method do you recommend? Moreover, if in future I added a new storage, how can that change my HA solution? – Saleh Omar Dec 29 '18 at 8:47
  • 1
    Re: VVols, see my edit. Make the choice of datastore transport yourself, you have not provided enough detail about your SAN environment to recommend one over the other. Finally, your adding new storage query is a question by itself. Read the documentation, try something, then ask another focused question. – John Mahowald Dec 29 '18 at 20:55
  • 1
    Thank you. I appreciate your input very much. I just asked about adding another storage since if it is not possible to convert AlwaysOn FCI to AAG in the future then adding a new storage will be pointless HA wise. – Saleh Omar Dec 30 '18 at 6:15
  • 1
    Personally I don't know how easy the migration path from FCI to AG is. Only that if you know you want a disaster recovery copy (possibly at a remote site) you could implement AG from the start. You also need to be specific in your question, adding a storage array and migrate to AG is a different project from adding storage capacity to a cluster. I at first assumed you were asking the latter. – John Mahowald Dec 30 '18 at 10:40

From what I have tested, consider using AlwasysOn Availability Groups (AGs). Unlike SQL Server Failover Cluster Instance (FCI), AlwasysOn Availability Groups (AGs) performs slightly faster.

Source: my topic/question about testing SQL Server performance. What may increase the latency 3-4 times for SQL FCI the database?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.