Skip to content
Calcrivo

Azure Availability Set Planner

Plan availability set fault and update domains so a rack failure or maintenance wave still leaves enough capacity.

Inputs

VMs
domains

Up to 20; each is rebooted separately during platform maintenance.

VMs
%

99.95% is the published availability set target; a single VM on premium disk is 99.9%.

VMs Recommended

9VMs

VMs per Fault Domain

3VMs

VMs Surviving a Fault Domain Loss

6VMs

VMs per Update Domain

2VMs

Capacity Lost in the Worst Case

33.3%

Allowed Downtime per Month

21.9minutes

Design Verdict

Survives a fault domain loss with 0 VMs spare

Step by step

  1. Values used

    VMs in the availability set = 9 VMs; Fault domains = 3 fault domains (maximum in most regions); Update domains = 5 domains; VMs needed to carry peak load = 6 VMs; Availability target = 99.95 %

  2. Azure Availability Set

    VMs per fault domain = ceil(VMs ÷ fault domains); to keep peak capacity through a fault-domain loss you need ceil(required × fault domains ÷ (fault domains − 1)) VMs; downtime = (100 − SLA%) × 438 minutes per month.

  3. VMs Recommended

    = 9 VMs

  4. VMs per Fault Domain

    = 3 VMs

  5. VMs Surviving a Fault Domain Loss

    = 6 VMs

  6. VMs per Update Domain

    = 2 VMs

  7. Capacity Lost in the Worst Case

    = 33.3

  8. Allowed Downtime per Month

    = 21.9 minutes

How it works

An availability set spreads VMs across two or three fault domains and up to twenty update domains, so the worst-case simultaneous loss is one full fault domain — roughly a third of the set with three domains. Sizing for that means provisioning enough VMs that the survivors still carry peak load, which is where the fault-domain fraction in the formula comes from. The 99.95% availability set target only covers connectivity to at least one instance, not your application's capacity, so a set sized exactly for peak becomes an outage the moment a fault domain drops; update domains additionally cap how fast Azure can patch your fleet.

Formula

Azure Availability Set

VMs per fault domain = ceil(VMs ÷ fault domains); to keep peak capacity through a fault-domain loss you need ceil(required × fault domains ÷ (fault domains − 1)) VMs; downtime = (100 − SLA%) × 438 minutes per month.

438
Minutes that one percent of a 730-hour month represents
fault domain
Group of racks sharing power and network, lost together in a hardware failure
update domain
Group rebooted together during platform maintenance, one at a time

Frequently Asked Questions

How is Azure Availability Set calculated?

VMs per fault domain = ceil(VMs ÷ fault domains); to keep peak capacity through a fault-domain loss you need ceil(required × fault domains ÷ (fault domains − 1)) VMs; downtime = (100 − SLA%) × 438 minutes per month. An availability set spreads VMs across two or three fault domains and up to twenty update domains, so the worst-case simultaneous loss is one full fault domain — roughly a third of the set with three domains. Sizing for that means provisioning enough VMs that the survivors still carry peak load, which is where the fault-domain fraction in the formula comes from.

Why does Azure Availability Set matter?

The 99.95% availability set target only covers connectivity to at least one instance, not your application's capacity, so a set sized exactly for peak becomes an outage the moment a fault domain drops; update domains additionally cap how fast Azure can patch your fleet.

What values do I need to enter?

This calculator takes 5 inputs: VMs in the availability set, Fault domains, Update domains, VMs needed to carry peak load, Availability target. The pre-filled defaults are a realistic starting point — replace them with figures from your own environment for a result you can act on.

You might also need