Explanation
Why the waste happens and who it affects.
Azure charges a reservation fee for this capability whenever it is enabled on a VM that has no Ultra Disk attached. The fee is charged per vCPU provisioned on the VM, so it grows with VM size.
The situation arises when an Ultra Disk is detached or migrated to Premium SSD v2 but the VM keeps the compatibility flag, when templates or images enable the flag for VMs that never receive an Ultra Disk, or when a planned Ultra Disk is never created. The charge appears against the VM's vCPUs rather than as a disk, so reviews that look for unattached disks do not find it.
Billing model
The pricing dimensions that drive this cost.
Ultra Disk compatibility is billed differently depending on whether an Ultra Disk is attached.
- Ultra Disk VM reservation fee
- Charged per vCPU provisioned on the VM when Ultra Disk compatibility is enabled and no Ultra Disk is attached
- Constrained-core sizes
- For constrained vCPU sizes the fee is based on the full vCPU count, for example 32 vCPUs for Standard_E32-8s_v3
- Attached Ultra Disk
- Once an Ultra Disk is attached the reservation fee no longer applies, and the disk is billed for provisioned capacity, IOPS and throughput
How to detect
4 checks to find it in your estate.
- Query Azure Resource Graph for Microsoft.Compute/virtualMachines where properties.additionalCapabilities.ultraSSDEnabled is true, and check whether any entry in storageProfile.dataDisks has managedDisk.storageAccountType UltraSSD_LRS; VMs with the flag and no Ultra Disk pay the reservation fee
- For a single VM, run az vm show with --query "{ultraSSDEnabled:additionalCapabilities.ultraSSDEnabled,dataDisks:storageProfile.dataDisks[].name}" and confirm the attached disks' SKUs
- In Cost Management, look for the Ultra Disk reservation (provisioned vCPU) charge on subscriptions or resource groups and map it to VMs that have no Ultra Disks
- Review VM templates, images and landing zone modules that set ultraSSDEnabled to true by default
How to fix
3 ways to remove the waste.
- Deallocate the VM, set Enable Ultra Disk compatibility to No under Disks > Additional settings (or run az vm update with --ultra-ssd-enabled false), then start the VM again; the setting can only be changed while the VM is deallocated, so plan it for a maintenance window
- Remove the ultraSSDEnabled setting from templates and scale set models for workloads that will not use Ultra Disks
- Keep the flag only on VMs that will attach an Ultra Disk soon, and re-check after any Ultra Disk is detached or migrated to Premium SSD v2
Documentation
Vendor references for pricing and configuration.