I have about 290 virtual desktop VMs using P20 OS disks because of earlier concerns about FSLogix profile performance. They are nowhere near the provisioned IOPS limit, so I would like to move them to P10 disks to reduce costs while retaining sufficient performance. The disks are all under 128 GB.
Changing the disk size in the portal fails because Azure does not support shrinking disk capacity. The documented snapshot-and-recreate process would be difficult to carry out manually across this many VMs. However, the disk performance-tier documentation says that tier reductions are possible, subject to a 12-hour interval. Is there a supported way to change the disk SKU or performance tier directly, using the CLI or REST API, without snapshotting and rebuilding each VM?
3 Answers
The usual snapshot workflow is required when you need to shrink the actual disk capacity, but it should not be necessary here if the goal is only to move from P20 to P10. Since the disks are already below the P10 capacity limit, changing the performance tier directly is the more appropriate approach. A small, rate-limited script should be able to handle the fleet without waiting for a manual backend change.
Disk capacity reduction and performance-tier changes are separate operations. You can update the disk tier directly with Azure CLI or REST instead of recreating the disk. For example: `az disk update --name --resource-group --set tier=P10`. Test this on one VM first, verify that it remains healthy, and check FSLogix profile-mount performance before processing the rest. Respect the tier-reduction interval and subscription-level disk-operation throttling when batching the changes.
Because these are virtual desktop machines, rebuilding from a golden image might normally be an option. However, make sure the profile architecture is understood before doing that. If FSLogix is configured correctly, user profiles should remain in their profile containers rather than being copied from the old OS disk, but a test rebuild is still important so a blank local profile does not overwrite or interfere with the stored profile.

Related Questions
Can't Load PhpMyadmin On After Server Update
Redirect www to non-www in Apache Conf
How To Check If Your SSL Cert Is SHA 1
Windows TrackPad Gestures