Are VirtualMachineScaleSet replacement for AvailabilitySet?

Bhargava, Madhav 20 Reputation points
2023-06-16T08:47:59.6066667+00:00

Hello,

There seems to be quite an overlap in two offerings from MS - AvailabilitySet and Virtual Machine Scale Set. We currently support both of these but it was due to a historic reason that certain regions in azure only consists of a single availability zone. For these regions the only choice is AvailabilitySet to ensure that we get hardware fault tolerance and update fault tolerance. For regions that support more than one availability zones, VMSS becomes the default choice.

Questions:

  1. Is VMSS a replacement for AvailabilitySets? Both of them provide fault tolerance (via fault domains)
  2. Is the above understand still correct? If not then please clarify on when someone will use AvailabilitySet and not VMSS and vice versa.
  3. https://learn.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-placement-groups#placement-groups - suggests that placement groups serve the same purpose as AvailabilitySets - does this suggest that one should now not use AvailabilitySets?
  4. In the link: https://learn.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-faq#do-scale-sets-work-with-azure-availability-sets- it is suggested A common configuration is to put control node VMs (which often require unique configuration) in an availability set, and put data nodes in the scale set. What is the rationale behind this recommendation?

I have already gone through the following links:

However it is not clear on why one would choose an AvailabilitySet over VMSS. I hope someone gives a detailed answer here.

Azure Virtual Machines
Azure Virtual Machines
An Azure service that is used to provision Windows and Linux virtual machines.
9,051 questions
Azure Virtual Machine Scale Sets
Azure Virtual Machine Scale Sets
Azure compute resources that are used to create and manage groups of heterogeneous load-balanced virtual machines.
452 questions
{count} votes

Accepted answer
  1. msrini-MSFT 9,291 Reputation points Microsoft Employee
    2023-06-18T21:03:27.8+00:00

    Hi, Availability set is an object which has the config to place the VMs which you add to the availability set into different fault domain and update domain. VMSS is a product as such which has many functionality that you can provide to your VMs like auto scaling, load balancing etc. The only place where I see an overlap between these 2 is, a VMSS can be deployed in an availability set or in an availability zone to provide high availability.

    1 person found this answer helpful.

1 additional answer

Sort by: Most helpful
  1. vipullag-MSFT 26,492 Reputation points Moderator
    2023-06-16T12:38:23.74+00:00

    Hello Bhargava, Madhav

    Welcome to Microsoft Q&A Platform, thanks for posting your query here.

    You are correct that there is some overlap between Availability Sets and Virtual Machine Scale Sets, but they serve different purposes and can be used together to provide a highly available and scalable solution.

    Availability Sets are used to ensure that virtual machines are distributed across multiple physical servers, racks, and network switches to minimize the risk of a single point of failure. In an Availability Set, virtual machines are placed in different fault domains and update domains to ensure that they are not affected by hardware or software maintenance events at the same time. Availability Sets are a good choice for workloads that require high availability and fault tolerance, but do not require automatic scaling.

    Virtual Machine Scale Sets are used to automatically scale out virtual machines based on demand. VMSS can be used to create and manage a group of identical, load-balanced virtual machines that can automatically increase or decrease in response to changes in demand. VMSS is a good choice for workloads that require automatic scaling, but do not require the same level of fault tolerance as Availability Sets.

    Placement groups are used to control the placement of virtual machines in a Virtual Machine Scale Set to optimize network performance and minimize the risk of a single point of failure. Placement groups are not a replacement for Availability Sets, but they can be used together to provide a highly available and scalable solution.

    Regarding the recommendation to put control node VMs in an Availability Set and data nodes in a Virtual Machine Scale Set, the rationale behind this is that control nodes often require unique configuration and are critical to the operation of the system, so they should be placed in an Availability Set to ensure high availability and fault tolerance. Data nodes, on the other hand, are often identical and can be easily scaled out using a Virtual Machine Scale Set.

    In summary, Availability Sets and Virtual Machine Scale Sets serve different purposes and can be used together to provide a highly available and scalable solution. Availability Sets are a good choice for workloads that require high availability and fault tolerance, while Virtual Machine Scale Sets are a good choice for workloads that require automatic scaling. Placement groups can be used to optimize network performance and minimize the risk of a single point of failure in a Virtual Machine Scale Set.

    Hope this clarifies your queries.

    1 person found this answer helpful.

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.