Create an option to change a VM's availability set or availability zone in order to add it to a load balancer instead of having to delete it
It would be nice if there was an option to change a VM's availability set or availability zone in order to add it to a load balancer instead of having to delete it and recreate it in the availability zone. A feature to just reconfigure without deletion would save a lot of time and headaches.
Thanks for the valid suggestion. Your feedback is now open for the user community to upvote which allows us to effectively prioritize your request against our existing feature backlog and also gives us insight into the potential impact of implementing the suggested feature.
Peter Bertok commented
The old Basic load balancers forced customers to use Availability Sets, so lots of deployments over-used them. Now it's almost impossible to fix this at scale.
The script recommended in the Microsoft docs page is DANGEROUS and will DELETE settings without warning! This includes: Tags, Identity, VM Extensions, Azure Backup configuration, Diagnostics profiles, IAM, hybrid licensing, and probably many more.
That's if the script works. It's step #1 is to delete the source VM, so if it fails in any way you'll lose your VM and all associated settings with no chance at recovery.
Microsoft should be ashamed.
Let this sink in: Microsoft in 2021 is still "triaging" the need to perform any kind of maintenance on a high-availability feature, and their public solution results in DATA LOSS!
Related: It's impossible to update the Proximity Placement Group of VMs in an Availability Set without turning all of them off concurrently. The availability feature forces an outage!
Also related: Upgrading from a Basic Load Balancer to Standard is also a delete & recreate, similarly loses settings, and also forces an outage.
As is typical with Microsoft: Their high availability solutions cause more outages than they prevent.
Why is something seemingly simple causing me so much time? The old AzureRm cmdlets seem to offer a way of removing a vm from an availability set.
This is a must have feature to have a seamless move for VMs with or without AS/AZ config post provisioned. As highlighted by John, downtime-less move is a great selling point to stay ahead or above rival in current cloud era.
John Davies commented
There needs to be a mechanism is remove a VM from a high availability paradigm without an outage. The whole reason organisations use availability sets or zones is to mitigate against an outage.
Requirements change over time and the ability to seamlessly move VM's into, out of and in between availability sets and zones is a requirement.
Yusuf Gungor commented
We really need this. Azure solution should not be dealing with the powershell scripts for changing VM's availability set. It's a disappointment.
Steve DiStefano commented
Just curious if this is intended to address this, or is it just some powershell to remove and read a VM. https://docs.microsoft.com/en-us/azure/virtual-machines/windows/change-availability-set
Also, do take note that a Standard Load Balancer can have singleton VMs added to its backend pool, unlike the basic LB which requires the AS affiliation.