Highly available virtualized SQL Server on 2 ESXi hosts and one SAN storage

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


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.


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?