Azure Availability Set Planner
Plan availability set fault and update domains so a rack failure or maintenance wave still leaves enough capacity.
Inputs
Up to 20; each is rebooted separately during platform maintenance.
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
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 %
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.
VMs Recommended
= 9 VMs
VMs per Fault Domain
= 3 VMs
VMs Surviving a Fault Domain Loss
= 6 VMs
VMs per Update Domain
= 2 VMs
Capacity Lost in the Worst Case
= 33.3
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
- Azure Availability Zone PlannerCommonly used together
- Azure VM Cost CalculatorCommonly used together
- Azure Scale Set CalculatorCommonly used together
- Azure Kubernetes Service (AKS) CalculatorAlso in Microsoft Azure
- Azure Blob Storage CalculatorAlso in Microsoft Azure
- Azure Advisor Savings CalculatorAlso in Microsoft Azure