Availability Sets: Why only 1 update domain in 1 fault domain?

Rafael Chang 20 Reputation points
2023-07-18T16:58:42.4766667+00:00

I am thinking of a use case where the administrator isn't concerned about rack failure (hence 1 fault domain) but wants to separate their VMs in multiple update (>1) domains to stagger updates and avoid downtime.

When configuring Availability Sets, if I set 1 fault domain, why can I only set 1 update domain?

Azure Virtual Machines
Azure Virtual Machines
An Azure service that is used to provision Windows and Linux virtual machines.
9,014 questions
{count} votes

2 answers

Sort by: Most helpful
  1. shiva patpi 13,366 Reputation points Microsoft Employee Moderator
    2023-07-18T18:07:31.93+00:00

    @Rafael Chang

    Please take a look at similar question was answered in the below post:

    https://learn.microsoft.com/en-us/answers/questions/1036263/fault-domain-vs-update-domain

    See the architecture of Fault domain concept :

    https://learn.microsoft.com/en-us/azure/virtual-machines/availability-set-overview?WT.mc_id=AZ-MVP-5000120

    Basically, an update domain is nothing but the logical groupings of different fault domains. So to have multiple Update domains, there should be a minimum of 2 Fault domains.

    Think Fault Domain as a Column and Update Domain as a Row.

    Regards,

    Shiva.

    1 person found this answer helpful.

  2. vipullag-MSFT 26,487 Reputation points Moderator
    2023-07-20T13:32:14.0166667+00:00

    Hello Rafael Chang

    Welcome to Microsoft Q&A Platform, thanks for posting your query here.

    Your understanding of fault domains and update domains is correct. Fault domains are used to protect against rack failure, while update domains are used to ensure that not all VMs in an availability set are updated at the same time during planned maintenance**.**

    If you have only one fault domain, it means that all the VMs in that availability set are located in the same rack, which means that they share the same power source and network switch. This can be a single point of failure, which means that if the rack goes down, all the VMs in that rack will be affected.

    On the other hand, if you have multiple update domains, it means that the VMs in your availability set are spread across multiple physical server blades. This helps to ensure that if one server blade needs to be rebooted for maintenance, the other server blades can continue to provide service availability.

    Now, where the confusion might be is that the number of update domains you can set for an Availability Set is constrained by the number of fault domains you choose.

    When you create an Availability Set, Azure ensures that VM instances in that set are spread across different fault domains for high availability. However, VM instances within the same Availability Set cannot share the same update domain. This constraint is in place to provide better resiliency. If multiple VM instances sharing the same update domain are deployed on the same physical hardware (server blades) and that hardware experiences an issue during an update, all VMs within that update domain would be affected simultaneously, reducing the benefits of update domain isolation.

    So, while it might seem reasonable to have one fault domain and multiple update domains to spread VMs across different server blades within the same rack, Azure currently enforces a one-to-one relationship between fault domains and update domains in an Availability Set. If you want to have more update domains, you would also need to have a corresponding increase in fault domains to achieve the desired level of fault and update isolation. This ensures better resiliency and availability of VM instances during planned maintenance events.

    So, in your use case, if you want to have multiple update domains to stagger updates and avoid downtime, you would need to choose more than 1 fault domain during the configuration of the Availability Set. This will enable you to spread your VMs across different fault domains and have the flexibility to set multiple update domains to achieve your desired update management strategy.

    1 person found this answer helpful.

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.