In an effort to simplify virtual machine (VM) storage and scaling in Azure, Microsoft released two new capabilities. Managed Disks eliminate the need to configure "storage accounts" for holding VM disks. Scale sets make it possible to deploy hundreds of identical VMs at once.
In a
blog post, Microsoft's Corey Sanders points out that "with Managed Disks, you can now attach data disks to every instance and create a VM scale set of up to 1,000 VMs, a 10X increase." Before introducing Managed Disks, Microsoft required the use of a storage account to hold VM disks. These storage accounts have capacity and throughput limits. As a result, Azure customers would
carefully plan how to use them.
You have to make sure you don't put too many disks in the same storage account, because you could exceed the
scalability targets of the storage account (20,000 IOPS, for example), resulting in the VMs being throttled. With unmanaged disks, you have to figure out how to maximize the use of one or more storage accounts to get the best performance out of your VMs.
With these IOPS limits, customers
had to calculate exactly how many VMs they could use with each storage account.
You can roughly calculate the number of highly utilized disks supported by a single standard storage account based on the request rate limit. For example, for a Basic Tier VM, the maximum number of highly utilized disks is about 66 (20,000/300 IOPS per disk), and for a Standard Tier VM, it is about 40 (20,000/500 IOPS per disk).
Managed Disks abstract away the concept of a storage account. Customers only specify the size and "type" of disk for a virtual machine. Any storage accounts are "managed" by Azure. There are two types of disk: standard and premium. Standard disks use Hard Disk Drive (HDD) media and go up to 1TB in size. Premium disks are SSD-based and also go up to 1TB in size. All managed disks use durable storage with three unique replicas.
Microsoft recommends that all new VMs use Managed Disks. They also recommend migrating all existing VMs to this model.
According to Sanders, migrating to Managed Disks, or between standard and premium, is easy.
Managed Disks comes with easy migration capability from existing unmanaged Azure Resource Manager VMs to Managed Disks VMs without the need to recreate the VM, preserving the configuration and security of that VM. After initiating migration, the VM become available immediately after rebooting. You have full control of the migration and can choose to migrate one VM at a time or plan the migration to be scripted on all of your VMs at once.
You can now also migrate your Managed Disks from Standard to Premium in an easy way. With Managed Disks, if you stop your VM, you can change the account type of your disks without deleting or reconfiguring the VM. The changed disks become available immediately to restart your VM.
Fine-grained security is another feature of Managed Disks. Unlike the old "storage account" model where access to one disk meant access to all disks, Managed Disks let you manage permissions to specific disks.
Azure VM Scale Sets are resources that let users build and manage a fleet of identical VMs.
According to Microsoft, customers must use Managed Disks to build scale sets larger than 100 VMs. If Managed Disks aren't used, then a classic storage account is needed for every 20 VMs.
With Managed Disks, a scale set can be as large as 1,000 VMs, but only if it's based on an Azure-provided base image. If based on a custom image, a scale set tops out at 100 VMs.
VM Scale Sets default to "overprovisioning" VMs. 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.
Sanders also
pointed out a handful of additional capabilities planned for the Microsoft IaaS platform.
I look forward to announcing additional capabilities coming later this year, including OS patching support, application lifecycle integration, application health monitoring, and load-balancer app health integration.