none
Question about Availability Set RRS feed

  • Question

  • I am little confused how availability set manage the server distribution when we deploy VMs in an availability set. Really appreciate if some one can shed some light. i am new in Azure world

    QN 1) My understanding is that availability set is for infra structure redundancy. with that being said, if i deploy two SQL server VMs in an availability set, one in FD 0 and the other is in FD 1, how does data synchronize between these two servers? certainly i may need to have some setup to synchronize data like AlwaysOn or something. is that right? Availability set itself does not initiate any data synchronization. is that right?

    QN2) is there any limit how many servers we can deploy in an Availability set

    QN 3) my understanding is that we have no control on allocating FD or UD. It is all based on the order of servers being deployed in an availability set. If that is right, in case if i noticed that two of my sql servers are on same fault domain how can i move into different one? For eg, i deployed 4 servers in an availability set with 3 FD. first one and last one are sql servers and that went to FD 0. But i need them on different FDs. How can i do that?

    Thank for your help

     

    Friday, October 18, 2019 5:39 PM

Answers

  • Any further questions on this? 

    Else, if the proposed solution helped remember to "Up-Vote" and "Mark as Answer" so the community can benefit as a whole. 

    • Marked as answer by TGeorgeNY Tuesday, October 29, 2019 9:18 PM
    Thursday, October 24, 2019 10:56 PM
    Moderator

All replies

  • We have some pretty good documentation on both Availability Sets and Availability Zones that should help you better understand how they work:

    https://docs.microsoft.com/en-us/azure/availability-zones/az-overview

    https://docs.microsoft.com/en-us/azure/virtual-machines/windows/manage-availability#configure-multiple-virtual-machines-in-an-availability-set-for-redundancy

    I will also answer your questions directly:

    QN 1) My understanding is that availability set is for infra structure redundancy. with that being said, if i deploy two SQL server VMs in an availability set, one in FD 0 and the other is in FD 1, how does data synchronize between these two servers? certainly i may need to have some setup to synchronize data like AlwaysOn or something. is that right? Availability set itself does not initiate any data synchronization. is that right?

    A1) All an availability set or an availability zone does is ensure that all the servers in that set are placed either in different data centers or on different racks in the same data center. This means that if you have two VMs, VM1 is on Rack 1 and VM2 is on Rack 2. So if Rack 1 were to go down, you would still have your secondary VM up and running. As long as the VMs are in the same AV Set or Availability Zone they will never be placed on the same fault domain (power source)

    QN2) is there any limit how many servers we can deploy in an Availability set

    A2) This is covered in the above links provided. There is not a single number of VMs. However the limitation comes into play with the number of fault domain and update domains per AV set. Each AV set can consist of a max of 3 fault domains and 20 update domains. Meaning you could place either 3 VMs into separate fault domains. If you apply more than that, you will start overlapping the VMs into fault domains. Generally speaking, if the VMs are working together, you should place them on separate fault domains. Going deeper, the update domains are used to apply updates to the servers themselves. When a VM is in an update domain, we apply updates one domain at a time. So as mentioned you can have up to 20 update domains. So you could apply something like 20VM per fault domain for a total of 60 VMs. But some regions also do not have a total of 3 fault domains available. Some only have 2 or 3. You can review that info here: https://docs.microsoft.com/en-us/azure/virtual-machines/windows/manage-availability#number-of-fault-domains-per-region

    QN 3) my understanding is that we have no control on allocating FD or UD. It is all based on the order of servers being deployed in an availability set. If that is right, in case if i noticed that two of my sql servers are on same fault domain how can i move into different one? For eg, i deployed 4 servers in an availability set with 3 FD. first one and last one are sql servers and that went to FD 0. But i need them on different FDs. How can i do that?

    A3: That is correct.  When you put machines into an AV set, the platform spreads them out for you. If you want to change the fault domain of a single VM, you should be able to redploy the machine and it will be randomly allocated a new fault domain and update domain. Another option is to use Availability Zones instead. This lets you spread vms across multiple data centers in a single region and then we place them into additional update and fault domains. So if you had 4 VMs, you could say VM1 = Zone 1, VM2 = Zone 2, VM3 = Zone 3 then VM4= Zone 1 again however we will ensure that VM4 is placed in a different fault/ update domain in zone 1

    All in all, go through the links I provided. They provide all the same info I provided above.

    Also, if you are interested in SQL, I suggest this doc: 

    https://docs.microsoft.com/en-us/azure/virtual-machines/windows/sql/virtual-machines-windows-sql-performance

    If you have further questions let me know. 



    Saturday, October 19, 2019 12:10 AM
    Moderator
  • Thank you so much for the links and detailed information for my questions. Really appreciate your inputs. Unfortunately, i still have doubt remain on question 1. I hope the link provided may cover this. i will definitely go through the link. The question is if i put 2 SQL VMs for a single application to 2 different fault and update domains, how does data synchronization between these 2  SQL VMs unless if i set up AoA or some other replication process? 

    Thanks for your valuable time and sharing knowldge

     

    Monday, October 21, 2019 3:12 PM
  • To be more specific, for example, i updated 100 records in a table which has been updated in VM1 but not on VM2. How does that data synchronization works in Availability Set. I strongly believe that we should have data synchronization on top of this settings which should be initiated other than Availability set. AS just guarantee infrastructure redundancy. correct me if i am wrong

    Thanks

       
    Monday, October 21, 2019 3:17 PM
  • The update and fault domains have nothing to do with data synchronization. Even if you had two SQL VMs not in an availability set, they likely would not be put on the same update and fault domain regardless. However using an AV set just ensures they are separated. 

    So assuming you have to SQL VMs that you want completely in Sync, you would set them up just as you would in a standard on prem environment using two nodes. If you follow the best practices guide I linked you will have an ideal SQL server running in Azure. 

    Monday, October 21, 2019 4:00 PM
    Moderator
  • Any further questions on this? 

    Else, if the proposed solution helped remember to "Up-Vote" and "Mark as Answer" so the community can benefit as a whole. 

    • Marked as answer by TGeorgeNY Tuesday, October 29, 2019 9:18 PM
    Thursday, October 24, 2019 10:56 PM
    Moderator
  • Thank you very much. well explained
    Tuesday, October 29, 2019 9:21 PM