Azure Availability Sets and Availibility Zones
Some of people who starts architecting infrastructure using Azure platform, they firstly pitch into VM and start supplying workloads for Azure VM.
When you started architecting infrastructure using Azure platform, you should consider a couple of things such as VM Network, Availability Set, Regional and High Availibility Set, Load Balancer… etc. Before to plan your VM in Azure.
In this article, you can get answer for titles and questions in below:
- What is Availability Set?
- What is Fault Domain and Update Domain?
- What is Availability Zone?
- How to use Availability Set and Availability Zone?
Your virtual machine can occur three types of failures in Azure Environment. These are:
- These interruptions happen when hardware or any platform components related physical machines in the underlying infrastructure about to fail. Azure can migrate your affected virtual machine to a new one. This process is done by using dynamic transition technology, which pauses the virtual machine for a short time during the transition.
- These interruptions happen when planned maintance or periodic updates for security or performance made by Microsoft or require rebooting VMs on the Azure infrastructure. You should place a web server, a database server etc. in each fault domain for this reason.
- : : These are rarely seen interruptions when the dynamic transition operation used in the planned maintenance on the Azure platform can not be realized. When an error is detected, the Azure platform will move your virtual machine to another virtual machine in the same data center. During this process, virtual machine remain closed.
Unplanned maintances down time usually longer than planned maintances. After both of unplanned maintance and planned maintance updates your virtual machines will be rebooted. And users cannot access applications during that time.
Availability sets offer some protection against unplanned maintenance for your Azure Resource Manager assets. When you placed your VMs in an Availability Set, they are automatically isolated across multiple hardware nodes in a cluster. That’s mean azure will place your VMs that are created within the availability set on separate physical servers, compute racks, storage units, and network switches.Even hardware or any components failure happens in Azure after placed your virtual machine across multiple hardware nodes, only a sub-set of your VMs are affected. Your overall solution is safe in working status. Availability set ensures redundancy by spreading over multiple fault domains and update domains for VMs. If you want to leverage 99.95% SLA from Microsoft, you should place your VMs inside Availability Set except your virtual machines which have premium storage. When placed virtual machines in an availability set, that is provides the virtual machines are spread over three fault domains and five update domains. But update domains can be increased to up to 20. For example, If you placed ten virtual machine in an availability set, they will spread over three fault domains. So If one of them failed, you will only lose 1/3 of virtual machines. Update domains are used during planned maintenance operations on the Azure Fabric. Microsoft doesn’t patch your VMs, but they have to update operating system that the hypervisors are running. Because of this, it will only take down one update domain at a time during these planned maintenance.
Update Domains vs. Fault Domain
VMs are periodically updated by Windows Azure. Updating a virtual machine, that machine reboots. Update Domains prevent virtual machines from updating same time related an application. When placed one more virtual machine in Availability Set, these virtual machines are placed different update domains by Windows Azure.
Fault Domains define unplanned maintenance that a group of WMs share common a hardware or physical failure such as a disk, power, network card … etc. same underlying infrastructure. You can think fault domains as a compute rack. This mean if any failure happens in shared system, all WMs will influenced from same underlying infrastructure.
The diagram showing us difference between fault domain and update domain below.
Picure 1: Difference Between Fault Domain and Update Domain (quoted from Technet)
Availability zones are similar to availability sets. But availability zones protect application from data center outgoes within offering high availability. Because availability zones are placed independent physical location from each other in Azure regions. Every availability zones ocur more than one data center that are configured independent power, cooling and network. There are minumum three availability zones in every region. You can run your services in multiple availability zones and so you can protect your applications from any data center outage. In this way, your databases and applications are protected with %99.99 SLA.
You can see relationship between availability zones with image like below.
Picure 1: Relationship between Availability Zones (quoted from Technet)
Creating An Availability Set
You have three options to create an Availability Set :
- Create an availability set and VM at the same time in Azure Portal.
- Create an availability set and use it while creating a new VM in Azure Portal.
- Create an availability set with Powershell.
You can create an availability set when you create a new VM on Azure Portal like image in the below :
I have three fault domains if I add fourth VM, it will be placed in the same Fault Domains as the first VM by Azure. Also Azure distributed all VMs accross different Update Domains. One of importing things about availability sets, you can placed up to 100 VMs into each availability set.
If you want to use availability zone, you can countinue with the “availability zone” option during the creation and to determine how many zones you want to copy your virtual machine in relevant region. For example; when the availability zone is set to 2, your virtual machine will be in 2 different availability zones.
You can see details on screen shot like below.
Difference Between Availability Zones and Availability Sets
You can assign virtual machines to the availability set only during the creation of virtual machines. One virtual machine can only be in one availability set.
Every regions don’t support to availability zones. But availability sets are supported by every regions.
Availability zones support managed disks only. Availability sets Support manged and unmaged disks.
Availability zones protect applications from data center outage. But availability sets protect applications from hardware failures within a data center.
Availability zones have %99.99 SLA (Service Level Agreement). Availability sets have %99.95 SLA.
Cost of availability zone is $0.01 (per GB going into/out) but availability set is free.