Apparently Windows Server 2008 R2 lives on in the cloud as I get a calls for this sporadically. Yes, Azure does support Windows Server 2008 R2 and older versions of SQL Server including 2008 R2 and 2012. Of course Always On Availability Groups wasn’t introduced until SQL 2012 and even then you probably want to avoid Availability Groups due to some of the performance issues associated with that version.
If you find yourself needing to support older versions of SQL Server or Windows you will want to build SANless clusters based on SIOS DataKeeper as mentioned in the Azure documentation.
I have written many Quick Start Guides over the years, but sometimes I just want to give someone the 10,000 foot overview of the steps just so they have a general idea before they sit down and roll up their sleeves to do an install. Since it is not everyday I’m dealing with Windows 2008 R2 clusters in Azure, I wanted to publish this 10,000 foot overview just to share with my customers.
In a nutshell here are the steps to cluster SQL Server (any version supported on Windows 2008 R2) in Azure.
- Provision two cluster servers and a file share witness in the same Availability Set. This places all three quorum votes in different Fault and Update Domains.
- There is a hotfix for SQL 2008 R2 clusters in Azure to enable the listener used by both AGs and FCIs. https://support.microsoft.com/en-us/help/2854082/update-enables-sql-server-availability-group-listeners-on-windows-serv
- Install that and all other OS updates.
- Provision the storage on each server.
- Format NTFS and give drive letters.
- Each cluster node needs identical storage.
Enable Failover CLustering and .Net 3.5 Framework on each server
- Add the servers to the domain
- Create the basic cluster, but USE POWERSHELL and specify the cluster IP address. If you use the GUI to create the cluster it will get confused and provision a duplicate IP address. If you do it via the GUI you will only be able to connect to the cluster from one of the nodes. If you connect you can correct the problem by specifying a static IP address to be used by the cluster resource.
Here is an example of the Powershell usage to create the cluster
New-Cluster -Name cluster1 -Node sql1,sql2 -StaticAddress 10.0.0.101 -NoStorage-
- Add a File Share Witness to the cluster
- Install DataKeeper on both cluster nodes
- Create the DataKeeper Volume Resources and make sure they are Available Storage
- Install SQL into the cluster as you normally would in a shared storage cluster.
- Configure the Azure ILB and run the powershell script to update the SQL Cluster IP resource to listen on the Probe Port.
All of this is fully documented on the SIOS documentation page, Deploying DataKeeper Cluster Edition in Azure
Let me know if this helped you or if you have any questions about high availability for SQL Server or disaster recovery in Azure, AWS or Google Cloud.