Skip to main content

What are Availability Set, Fault Domain, and Update Domain in Azure?

Availability Set

Before understanding Availability Set we have to understand some scenarios that can lead to the virtual machine in Azure being impacted. There are three factors that impact to VM on Azure are Unplanned Hardware maintenance Event, Unexpected Downtime, and Planned maintenance event.

Unplanned Hardware maintenance Event occurs when Azure platform evaluated that hardware or a component associated with a physical machine is in a failure condition. When this event occurs, Azure issue an unplanned hardware maintenance event to reduce the impact to the virtual machines hosted on that hardware. Azure uses live migration technology to migrate the Virtual Machine from the failing hardware to a healthy physical machine. It takes a few times to be up. Memory, Open files and network connections are maintained but performance might be reduced before/after an event.

An Unexpected downtime occurs when any hardware fails suddenly for Virtual Machines, for example, it included local network failure, local disk failure, or other rack failures. If Azure platform detected this type of issue, Azure automatically migrates virtual machine to a healthy physical machine in the same data-center.

Planned maintenance event, this is periodically updates by Microsoft to improve overall reliability, performance, and security of the platform infrastructure where your virtual machine is running. These types of updates impact are very low on your virtual machines or your cloud services, only required to reboot your machines.

All the above features are provided by Microsoft Azure but this is not practically good it might be failure impact your business. To scape that types of issue Azure provide a new feature Availability Set for redundancy.

Availability Set ensures that the Azure virtual machines are deployed across multiple isolated hardware nodes in a cluster. If any node failed in across multiple hardware nodes, an only subset of your virtual machines are impacted and your overall solution is safe. It provides the redundancy solution and for safety, it spreads your virtual machine to across multiple fault domains and update domains.

Fault Domain
Two events Unplanned Hardware maintenance Event and Unexpected Downtime comes under fault domain.
A fault domain is factually a rack of the servers which consumes essentially subsystem like network, power, cooling etc. When you put VMs on an Availability Set then to protect VMs from failure Azure spread them on fault domain and update domain.


Suppose we put two VM into availability set then Azure will set up VMs to two different racks so that if the network, power etc. failed then only one rack will be affected.


You can see in pic two VMs are on same availability set so Azure has been provisioned them on two different racks. I always have seen that only two Fault Domains are available in Azure and VMs spreads on over these two fault domains (FD0 and FD1)

Suppose in some environment we need to create 6 VMs then how to Azure will be provisioned to VMs over fault domain, you can see the following table it may help you to understate the fact of set up of VMs over fault domains.

VM
Fault Domain
VM1
0
VM2
1
VM3
0
VM4
1
VM5
0
VM6
1


Update Domain
When you created VMs on the IaaS service model then Microsoft is not responsible for automatic system updates. You have complete control over that. Planned maintenance event comes in this phase where we planned for server or virtual machine updating.

Sometimes we need to update some own software or some updates come from Microsoft due to performance, security etc. it is not automatically updated your virtual machine we need to plane it for updates. So how is that done without taking your service offline? Update Domains. It’s similar to the FD methods, only this time, instead of an accidental failure, there is a purposeful move to take down one (or more) of your servers. So to make sure your service doesn’t go offline because of an update, it will walk through your update domains one after the other.

Whereas FDs are assigned in the pattern 0, 1, 0, 1, 0, 1, 0, 1---- and UDs are assigned 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4 ----
VM
Fault Domain
Update Domain
VM 0
0
0
VM 1
1
1
VM 2
0
2
VM 3
1
3
VM 4
0
4
VM 5
1
0
VM 6
0
1
VM 7
1
2
VM 8
0
3
VM 9
1
4