In this solution, setup of the SQL Server 2022 failover cluster with APEX Block Storage benefits from the following elements that are particular to the configuration of this solution.
- A highly available architecture that spans three Availability Zones.
- A Virtual Network configured with public and private subnets, according to Azure best practices.
- In the public subnets:
- Managed network address translation (NAT) gateways to allow outbound Internet access for resources in the subnets.
- In the private subnets:
- Three Azure VM instances running Windows Server 2022 with SQL Server 2022. These instances are installed as nodes in a Windows Server Failover Clustering (WSFC) cluster in SQL Server Failover Cluster Instances (FCI) configuration across the Availability Zones. Each node contains an Azure managed disk as root volume.
• SQL Server nodes are joined to an Active Directory domain which is also a DNS server to provide DNS name resolution.
• While creating a SQL Server cluster, an IP address gets assigned to each node.
- APEX Block Storage provides back-end shared storage for the SQL Server cluster, which the FCI nodes require. This includes support for SCSI-3 reservations, whether SQL Server is deployed in a single or multi-AZ configuration. As a result, APEX Block Storage volumes can be used just like in an on-premises deployment to create Cluster Shared Volumes (CSV) disks, mount-points, or drive-letter type deployment in Windows Server Failover Cluster.
- CSVs employ a technique known as I/O Redirection. A particular node's ability to communicate with the underlying storage is maintained by the I/O Redirection feature, which helps to prevent storage connectivity failures from doing so. A host can still communicate with storage even though there is a storage failure by rerouting I/O over a cluster network to the coordinator node where the disk is mounted. When using CSV volumes, the coordinator node is the owner of the physical disk resources linked to the Volumes. The coordinator node synchronizes metadata with each of the physical hosts accessing the CSV when the CSV is changed.