MSSQL Virtualisation

"Combination of vSphere HA with SQL Server FCI or AG will increase the total availability of the solution build: once a VM is restarted, the FCI or AG solution will be “whole” again."

Oleg Ulyanov - https://blogs.vmware.com/apps/2020/01/microsoft-sql-server-and-vmware-vsphere-high-availability-features.html

vSphere vMotion

"SQL servers can be vmotioned without issues. Depending on the speed your switch handles the ARPs which tell the physical switch where the VM has gone, you could miss connectivity for a short time. This is handled by TCP itself (retransmit) and should never cause you to loose a session to the VM"

Erik Zandboer - https://communities.vmware.com/t5/Virtual-Machine-Guest-OS-and-VM/Vmotion-SQL-server/td-p/141769

"vSphere vMotion greatly enhance manageability of the solution build and should always be considered. For a production deployment testing under load is highly recommended." (my emphahsis)

Oleg Ulyanov - https://blogs.vmware.com/apps/2020/01/microsoft-sql-server-and-vmware-vsphere-high-availability-features.html

vSphere High Availability Cluster (HA)

"In case of a hardware failure of an ESXi host, a VM will be restarted on one of the surviving ESXi host in the cluster. Guest OS and SQL Server will experience a non-graceful shutdown and restart similar to a start of the system after power loss. SQL Server databases should be checked before client connections are allowed."

Oleg Ulyanov - https://blogs.vmware.com/apps/2020/01/microsoft-sql-server-and-vmware-vsphere-high-availability-features.html

vSphere Fault Tolerance (FT)

"An Identical copy of the primary VM will be created and all CPU instructions will be replicated from primary to secondary. In case of a failure of the primary VM, the secondary will take over with the exact the same state as the primary had before the failure."

Oleg Ulyanov - https://blogs.vmware.com/apps/2020/01/microsoft-sql-server-and-vmware-vsphere-high-availability-features.html

vSphere Distributed Resource Schedule (DRS)

can "ensure that VMs hosting SQL Server in a high availability configuration will not have a single point of failure (SPOF) on the compute resource level. DRS Affinity Rules combined with vSphere vMotion can be used to ensure that VMs are run on different ESXi hosts in a vSphere cluster"

Oleg Ulyanov - https://blogs.vmware.com/apps/2020/01/microsoft-sql-server-and-vmware-vsphere-high-availability-features.html

CPU Hot Plug

Although this is supported by SQL2008+ (EE only), it is NOT recommended for SQL Server VMs due to the impact it has on the vNUMA capability (1, p25)

CPU Affinity

Not recommended for SQL Servers (1, p27). Host Affinity (via DRS) may be appropriate for license optimisation.

NUMA

See (1, p27 on)

Hyperthreading

VMware recommeds enabling hyper-threading to improve performance (1, p21).  "VMware recommends enabling Hyper-threading in the BIOS/UEFI so that ESXi can take advantage of this technology. ESXi makes conscious CPU management decisions regarding mapping vCPUs to physical cores, taking Hyper-threading into account. An example is a VM with four virtual CPUs. Each vCPU will be mapped to a different physical core and not to two logical threads that are part of the same physical core."  (1, p25)

VMware also recommend  that for best performance you should start with... "the total number of vCPUs assigned to all the VMs be no more than the total number of physical, not logical, cores available on the ESXi host machine"  (1, p24) until you can identify any potential excess capacity.