In a prior article we spoke about using Affinity Groups to split Azure VM’s among different regions or datacenters and then also keeping them in close proximity within those datacenters. This provides a layer of redundancy in that if one datacenter happens to fail your systems located in another datacenter will remain online. At least hopefully anyway, but realistically what are the chances of 2 datacenters going offline in 2 separate locations.
In this article we will speak about providing a different type of redundancy. Availability Sets provide increased availability for groups of 2 or more VM’s that have been created as part of a group. An Availability Set does this by introducing the concept of a Fault Domain and an Update Domain.
A fault domain helps to reduce single points of failure in a datacenter. It does this by splitting systems in different racks or on different switches, similar how you typically would in your own datacenter with systems that are part of a clustered SQL server or a Web Server farm. Each system would be connected to different PDU’s and the network would be linked back to multiple network switches so if one goes down at least half of your machines would stay online and provide service until the problem has been resolved.
An update domain is essentially what the name says. When Microsoft does updates on the systems hosting Azure this will make sure that all of the systems aren’t updated and rebooted at the same time. This helps provide higher availability and ensures the SLA that MS provides for Azure systems can be met. If your systems aren’t built with these types of redundancies in place that SLA will certainly be decreased.
You can create the availability set on an Azure VM fairly simply. The following screenshots will show the steps needed to accomplish this.
In the Azure console go to Virtual Machines on the left
Choose the Virtual Machine you want to add to an Availability Set
In the Availability Set drop-down choose “Create an Availability Set”. In this example I will call it OPS1
Now click on save at the bottom of the screen
This machine is now part of an Availability Set, but that really does us no good until additional machines have been added. So you will need to step thru the same process on any additional machines you want to add to the Availability Set. Note that you will still have to choose “Create an Availability Set” on additional machines, just make the name the same as the previous machines you’ve created an availability set on. When the machines have been added you will see something similar to the following. In the example below we have 2 VM’s called OPS and OPS2 setup in an availability group called OPS1.
You will also notice the following under cloud services. Our cloud service that is created is named with the name of the first machine that was added to the Availability Set
As you can see there is an Update Domain and a Fault Domain listed. As they are in different one’s they will be spared the dreaded Single Point of Failure.