Skip to content

Commit df50293

Browse files
authored
Merge pull request #246845 from fitzgeraldsteele/docs-editor/virtual-machine-scale-sets-use-1690826322
Update virtual-machine-scale-sets-use-availability-zones.md
2 parents c5ea5dd + 247573f commit df50293

File tree

2 files changed

+205
-124
lines changed

2 files changed

+205
-124
lines changed

articles/virtual-machine-scale-sets/virtual-machine-scale-sets-design-overview.md

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -9,21 +9,19 @@ ms.service: virtual-machine-scale-sets
99
ms.date: 11/22/2022
1010
ms.reviewer: jushiman
1111
ms.custom: mimckitt
12-
1312
---
13+
1414
# Design Considerations For Scale Sets
1515

1616
This article discusses design considerations for Virtual Machine Scale Sets. For information about what Virtual Machine Scale Sets are, refer to [Virtual Machine Scale Sets Overview](./overview.md).
1717

1818
## When to use scale sets instead of virtual machines?
19-
Generally, scale sets are useful for deploying highly available infrastructure where a set of machines has similar configuration. However, some features are only available in scale sets while other features are only available in VMs. In order to make an informed decision about when to use each technology, you should first take a look at some of the commonly used features that are available in scale sets but not VMs:
19+
Generally, scale sets are useful for any multi-VM deployment, as it allows you to define whether instances are spread across availability zones or fault domains, whether platform updates should be coordinated to reduce or eliminate full application downtime, and provides orchestrations and batch instance management. However, some features are only available in scale sets while other features are only available in VMs. In order to make an informed decision about when to use each technology, you should first take a look at some of the commonly used features that are available in scale sets but not VMs:
2020

2121
### Scale set-specific features
2222

2323
- Once you specify the scale set configuration, you can update the *capacity* property to deploy more VMs in parallel. This process is better than writing a script to orchestrate deploying many individual VMs in parallel.
24-
- You can [use Azure Autoscale to automatically scale a scale set](./virtual-machine-scale-sets-autoscale-overview.md) but not individual VMs.
25-
- You can [reimage scale set VMs](/rest/api/compute/virtualmachinescalesets/reimage) but [not individual VMs](/rest/api/compute/virtualmachines).
26-
- You can [overprovision](#overprovisioning) scale set VMs for increased reliability and quicker deployment times. You cannot overprovision individual VMs unless you write custom code to perform this action.
24+
- You can [use Azure Autoscale](./virtual-machine-scale-sets-autoscale-overview.md) to automatically add or remove instances based on a predefined schedule, metrics, or predictive AI.
2725
- You can specify an [upgrade policy](./virtual-machine-scale-sets-upgrade-scale-set.md) to make it easy to roll out upgrades across VMs in your scale set. With individual VMs, you must orchestrate updates yourself.
2826

2927
### VM-specific features
@@ -32,30 +30,21 @@ Some features are currently only available in VMs:
3230

3331
- You can capture an image from a VM in a flexible scale set, but not from a VM in a uniform scale set.
3432
- You can migrate an individual VM from classic disks to managed disks, but you cannot migrate VM instances in a uniform scale set.
35-
- You can assign IPv6 public IP addresses to individual VM virtual network interface cards (NICs), but cannot do so for VM instances in a scale set. You can assign IPv6 public IP addresses to load balancers in front of either individual VMs or scale set VMs.
36-
37-
## Storage
3833

39-
### Scale sets with Azure Managed Disks
40-
Scale sets can be created with [Azure Managed Disks](../virtual-machines/managed-disks-overview.md) instead of traditional Azure storage accounts. Managed Disks provide the following benefits:
41-
- You do not have to pre-create a set of Azure storage accounts for the scale set VMs.
42-
- You can define [attached data disks](virtual-machine-scale-sets-attached-disks.md) for the VMs in your scale set.
43-
- Scale sets can be configured to [support up to 1,000 VMs in a set](virtual-machine-scale-sets-placement-groups.md).
44-
45-
### User-managed Storage
46-
A scale set that is not defined with Azure Managed Disks relies on user-created storage accounts to store the OS disks of the VMs in the set. A ratio of 20 VMs per storage account or less is recommended to achieve maximum IO and also take advantage of _overprovisioning_ (see below). It is also recommended that you spread the beginning characters of the storage account names across the alphabet. Doing so helps spread load across different internal systems.
34+
## Overprovisioning
4735

36+
> [!IMPORTANT]
37+
> Overprovisioning is supported for Uniform Orchestration mode only; it is not supported for Flexible Orchestration mode.
4838
49-
## Overprovisioning
5039
With overprovisioning turned on, the scale set actually spins up more VMs than you asked for, then deletes the extra VMs once the requested number of VMs are successfully provisioned. Overprovisioning improves provisioning success rates and reduces deployment time. You are not billed for the extra VMs, and they do not count toward your quota limits.
5140

5241
While overprovisioning does improve provisioning success rates, it can cause confusing behavior for an application that is not designed to handle extra VMs appearing and then disappearing. To turn overprovisioning off, ensure you have the following string in your template: `"overprovision": "false"`. More details can be found in the [Scale Set REST API documentation](/rest/api/virtualmachinescalesets/create-or-update-a-set).
5342

5443
If your scale set uses user-managed storage, and you turn off overprovisioning, you can have more than 20 VMs per storage account, but it is not recommended to go above 40 for IO performance reasons.
5544

5645
## Limits
57-
A scale set built on a Marketplace image (also known as a platform image) and configured to use Azure Managed Disks supports a capacity of up to 1,000 VMs. If you configure your scale set to support more than 100 VMs, not all scenarios work the same (for example load balancing). For more information, see [Working with large Virtual Machine Scale Sets](virtual-machine-scale-sets-placement-groups.md).
46+
A scale set built on a Marketplace image (also known as a platform image) or a user-defined custom image in an Azure Compute Gallery and configured to use Azure Managed Disks supports a capacity of up to 1,000 VMs. If you configure your scale set to support more than 100 VMs, not all scenarios work the same (for example load balancing). For more information, see [Working with large Virtual Machine Scale Sets](virtual-machine-scale-sets-placement-groups.md).
5847

5948
A scale set configured with user-managed storage accounts is currently limited to 100 VMs (and 5 storage accounts are recommended for this scale).
6049

61-
A scale set built on a custom image (one built by you) can have a capacity of up to 600 VMs when configured with Azure Managed disks. If the scale set is configured with user-managed storage accounts, it must create all OS disk VHDs within one storage account. As a result, the maximum recommended number of VMs in a scale set built on a custom image and user-managed storage is 20. If you turn off overprovisioning, you can go up to 40.
50+
A scale set built on the legacy managed image can have a capacity of up to 600 VMs when configured with Azure Managed disks. If the scale set is configured with user-managed storage accounts, it must create all OS disk VHDs within one storage account. As a result, the maximum recommended number of VMs in a scale set built on a custom image and user-managed storage is 20. If you turn off overprovisioning, you can go up to 40.

0 commit comments

Comments
 (0)