Authors: Rob Hindman and Subhasish Bhattacharya, Program Manager, Windows Server
In this blog I am going to discuss deployment considerations and scenarios for IaaS VM Guest Clusters in Microsoft Azure.
IaaS VM Guest Clustering in Microsoft Azure
A guest cluster in Microsoft Azure is a Failover Cluster comprised of IaaS VMs. This allows hosted VM workloads to failover across the guest cluster. This provides a higher availability SLA for your applications than a single Azure VM can provide. It is especially usefully in scenarios where your VM hosting a critical application needs to be patched or requires configuration changes.
Learn more about the advantages of Guest Clustering in this video:
Supported workloads for Guest Clusters on Azure
The following Guest Cluster configurations are supported by Microsoft:
- SQL Server AlwaysOn Availability Groups (no shared storage needed)
- Storage Spaces Direct(S2D) for shared storage for SQL Server FCI
- S2D for shared storage for RDS User Profile Disk
- S2D for shared storage for Scale-out File Server (SoFS)
- File Server using Storage Replica
- Generic Application and Services on Guest Clusters
SQL Server Failover Cluster Instance (FCI) on Azure
A sizable SQL Server FCI install base today is on expensive SAN storage on-premises. In the future, we see this install base taking the following paths:
- Conversion to virtual deployments leveraging SQL Azure (PaaS): Not all on-premises SQL FCI deployments are a good fit for migration to SQL Azure.
- Conversion to virtual deployments leveraging Guest Clustering of Azure IaaS VMs and low cost software defined storage technologies such as Storage Replica (SR) and Storage Spaces Direct(S2D) : This is the focus of this blog.
- Maintaining a physical deployment on-premises while leveraging low cost SDS technologies such as SR and S2D
- Preserving the current deployment on-premises
Deployment guidance for the second path can be found here
Creating a Guest Cluster using Azure Templates:
Azure templates decrease the complexity and speed of your deployment to production. In addition it provides a repeatable mechanism to replicate your production deployments.
It is easy to create a Guest Cluster in Azure using these "1-click" templates! Learn more in the following video:
The following are recommended templates to use for your IaaS VM guest cluster deployments to Azure.
-
Deploying Scale out File Server (SoFS) on Storage Spaces Direct
Find template here
-
Deploying SoFS on Storage Spaces Direct (with Managed Disk)
Find template here
-
Deploying SQL Server FCI on Storage Spaces Direct
Find template here
MVP, Nirmal Thewarathanthri, provides more guidance here and a video below:
-
Deploying SQL Server AG on Storage Spaces Direct
Find template here
-
Deploying a Storage Spaces Direct Cluster-Cluster replication with Storage Replica and Managed Disks
Find template here
-
Deploying Server-Server replication with Storage Replica and Managed Disks
Find template here
Deployment Considerations:
Cluster Witness:
It is recommended to use a Cloud Witness for Azure Guest Clusters.
Cluster Authentication:
There are three options for Cluster Authentication for your guest cluster:
-
Traditional Domain Controller
This is the default and predominant cluster authentication model where one or two (for higher availability) IaaS VM Domain Controllers are deployed.
Azure template to create a new Azure VM with a new AD Forest can be found here
Azure template to create a new AD Domain with 2 Domain Controllers can be found here
2. Workgroup Cluster
A workgroup cluster reduces the cost of the deployment due to no DC VMs required. It reduces dependencies on Active Directory helping deployment complexity. It is an ideal fit for small deployments and test environments. Learn more here .
3. Using Azure Active Directory
Azure Active Directory provides a multi-tenant cloud based directory and identity management service which can be leveraged for cluster authentication. Learn more here
Cluster Storage:
There are three predominant options for cluster storage in Microsoft Azure:
-
Storage Spaces Direct
Creates virtual shared storage across Azure IaaS VMs. Learn more here -
Application Replication
Replicates data in application layer across Azure IaaS VMs. A typical scenario is seen with SQL Server 2012 (or higher) Availability Groups (AG).
3. Volume Replication
Replicates data at volume layer across Azure IaaS VMs. This is application agnostic and works with any solution. In Windows Server 2016 volume replication is provided in-box with Storage Replica . 3rd party solutions for volume replication includes SIOS Datakeeper.
Cluster Networking:
The recommended approach to configure the IP address for the VCO (for instance for the SQL Server FCI) is through an Azure load balancer. The load balancer holds the IP address, on 1 cluster node at a time. The below video walks through the configuration of the VCO through a load balancer.
[video width="1920" height="1080" mp4="https://msdnshared.blob.core.windows.net/media/2017/02/LoadBalancer.mp4"][/video]
Storage Space Direct Requirements in Azure:
- Number of IaaS VMs: A minimum of 2
-
Data Disks attached to VMs:
- A minimum of 4 data disks required per cluster i.e. 2 data disks per VM
- Data disks must be Premium Azure Storage
- Minimum size of data disk 128GB
-
VM Size:
The following are the guidelines for minimum VM deployment sizes.
- Small: DS2_V2
- Medium: DS5_V2
- Large: GS5
- It is recommended to run the DskSpd utility to evaluate the IOPS provided for a VM deployment size. This will help in planning an appropriate deployment for your production environment. The following video outlines how to run the DskSpd tool for this evaluation.
[video width="1920" height="1080" mp4="https://msdnshared.blob.core.windows.net/media/2017/02/DskSpd.mp4"][/video]
Using Storage Replica for a File Server
The following are the workload characteristics for which Storage Replica is a better fit than Storage Spaces Direct for your guest cluster.
- Large number of small random reads and writes
- Lot of meta-data operations
- Information Worker features that don't work with Cluster Shared Volumes.
UDP using File Share (SoFS) Guest Cluster
Remote Desktop Services (RDS) requires a domain-joined file server for user profile disks (UPDs). This can be facilitated by deploying a SoFS on a domain-joined IaaS VM guest cluster in Azure. Learn about UPDs and Remote Desktop Services here