Hi,
You should consider using a Virtual Machine Scale Set (VMSS) instead of Availability Set (AS) since VMSS essentially has all features of Availability Set plus more like support for Availability Zones. One benefit of Availability Set over VMSS is it is not as complicated (since it has fewer features).
In order to get the benefit of AS or VMSS you need to have an appropriate workload that has the ability to share state/data between VMs and/or be stateless. AS/VMSS isn't going to synchronize data between VMs for you. For example, you could put two Windows Active Directory domain controller VMs in an availability set, since they replicate changes to each other. If one DC VM fails due to underlying hardware failure, the other one can still function since it would be on different hardware and has a copy of the active directory data.
When we make a new availability set, can we assign the existing VM to this availability set?
A: No, you cannot assign existing VM to an availability set. You would need to delete the VM (keeping the disks) and recreate it since you can only assign a VM to an availability set during creation.
If exiting VM let say VM-1A already assigned to the availability set we must create another VM let say new VM name is VM-1B ? Should the new VM-1B use same SKU with VM-1A? How about the application and the data, will sync from VM-1A? Or when there are issue with Rack-1, the VM will be migrated to other rack so we no need make a new VM?
A: Yes, generally you should use same size VM for second (or more) VM in AS, however, it is not mandatory. No, application and data will not sync. If hardware failure is predicted Azure will live migrate VMs to different physical machine, if possible, if not they will be redeployed to healthy hardware. This live migrate/redeploy is platform feature and doesn't require AS or VMSS.
Certain failures (e.g. power-related) in a fault domain may cause the VM(s) in that domain to be down and they can't be migrated/redeployed. Depending on the failure the VMs in the other fault domains should still be functional and this is one of the scenarios availability sets are intended for. With VMSS you could have VMs in different availability zones so if a failure affects an entire datacenter the VMs in the other AZs should still work.
How much faulty domain and update domain needed?
A: For fault domains, this depends on how much redundancy you need and your budget. Maximum fault domains is three. For update domains, the number is less important since Azure uses memory-preserving techniques when performing platform updates for more than 90% of VMs.
Please click Accept Answer and upvote if the above was useful.
Thanks.
-TP