Share via


Azure VMs : Availability Sets and Availability Zones

Introduction

Availability is the annual percentage rate that a system is functional and working. Azure offers SLA-graded availability solutions for Virtual Machines by hosting them in multiple data centers around the world. This article provides you with an overview of the availability features of Azure.

Availability Set

A group with two or more virtual machines in the same Data Center is called Availability Set, this ensures that at least one of the virtual machines hosted on Azure will be available if something happens. This configuration offers 99.95% SLA. 

Note

Behind the scenes an availability set is a kind of clustering with not sync between VMs, it just try to keep the VMs up and running.

At the image below we can see a basic scenario of two Web Servers and two Database Servers.

Configure an Availability Set

We can configure an Availability Set ONLY when we deploy a New Virtual Machine, we can't add an existing Virtual Machine to an Availability Set.
At the image below we can see the Availability Set option on Azure Portal.

Back To Top

Availability Zones

This is the next level of Azure Virtual Machines high-availability, because Virtual Machines are in different physical locations within an Azure Region. It can be deployed using one or more Virtual Machines in an Azure Region.  Availability zones offer 99.99% SLA.

There are two categories of Availability Zones:

  • Zonal Services (Add the resource to a specific zone, for example VMs, Managed Disks, IP Addresses )
  • Zone-redundant services (Automatic replication across zones is enabled for SQL Database, zone-redundant storage)

At the image below we can see a scenario with three Availability Zones on the same region.

Supported Instances

Availability Zones don't support all VM sizes. We can check what SKUs are supported with the following command:



      Login-AzureRmAccount  
   
      Get-AzureRmComputeResourceSku | where {$_.Locations.Contains(    "westeurope"    ) `  
                                                -and $_.LocationInfo[      0      ].Zones -ne $null `      
                                                -and $_.ResourceType.Equals(      "virtualMachines"      )}      

Output:

ResourceType                      Name   Location     Zones                 Restriction          Capability    Value
------------                      ----   --------     -----                 -----------          ----------    -----
virtualMachines            Standard_D1 westeurope    {1, 3} NotAvailableForSubscription MaxResourceVolumeMB    51200
virtualMachines            Standard_D2 westeurope    {1, 3} NotAvailableForSubscription MaxResourceVolumeMB   102400
virtualMachines            Standard_D3 westeurope    {1, 3} NotAvailableForSubscription MaxResourceVolumeMB   204800
virtualMachines            Standard_D4 westeurope    {1, 3} NotAvailableForSubscription MaxResourceVolumeMB   409600
virtualMachines           Standard_D11 westeurope    {1, 3} NotAvailableForSubscription MaxResourceVolumeMB   102400
virtualMachines           Standard_D12 westeurope    {1, 3} NotAvailableForSubscription MaxResourceVolumeMB   204800
virtualMachines           Standard_D13 westeurope    {1, 3} NotAvailableForSubscription MaxResourceVolumeMB   409600
virtualMachines           Standard_D14 westeurope    {1, 3} NotAvailableForSubscription MaxResourceVolumeMB   819200
virtualMachines         Standard_A1_v2 westeurope {1, 3, 2}                             MaxResourceVolumeMB    10240
virtualMachines        Standard_A2m_v2 westeurope {1, 3, 2}                             MaxResourceVolumeMB    20480
virtualMachines         Standard_A2_v2 westeurope {1, 3, 2}                             MaxResourceVolumeMB    20480
virtualMachines        Standard_A4m_v2 westeurope {1, 3, 2}                             MaxResourceVolumeMB    40960
virtualMachines         Standard_A4_v2 westeurope {1, 3, 2}                             MaxResourceVolumeMB    40960
virtualMachines        Standard_A8m_v2 westeurope {1, 3, 2}                             MaxResourceVolumeMB    81920
virtualMachines         Standard_A8_v2 westeurope {1, 3, 2}                             MaxResourceVolumeMB    81920
virtualMachines           Standard_DS1 westeurope         1 NotAvailableForSubscription MaxResourceVolumeMB      7168

Configure an Availability Zone

Configuring an Availability Zone is very easy, especially from the Azure Portal. Select the Availability Zone for the Virtual Machines using the Availability Zone drop-down. Your managed disk and, if you have one, your public IP will be deployed into the same zone. Note that for 99.99% SLA, you must deploy at least two virtual machines into at least two different zones.

The next image shows this option.

Back To Top

Differences between Availability Set and Availability Zone 

At the table below we can see the two main differences between Availability Set, Zone

 Availability Set Availability Zone 
Protect from Hardware failures within data centers Protect from entire data center failure
 SLA 99.95 % SLA 99.99%

Azure VM SLA

Below are the SLA's for the Azure Virtual Machines.

  • 99.9%, Single VM
  • 99.95%, 2 or more VMs in an Availability Set
  • 99.99%, 2 or more VMs into Availability Zone

Note

This Service Level Agreement for Microsoft Online Services (this “SLA”) is a part of your Microsoft volume licensing agreement (the “Agreement”). If Microsoft does not achieve and maintain the Service Levels for each Service as described in this SLA, then you may be eligible for a credit towards a portion of your monthly service fees.

Conclusion

Microsoft Azure surprises us day by day. In this post we talked for two of the options offered to users for Availability. These are Availability Sets and Availability Zones, which are very easy to be deployed in both ways, using Azure Portal and Powershell.

Back To Top