none
High Availability and Site Recovery RRS feed

  • Question

  • I wasn't quite sure which forum to put this under but I have a few questions about HA and Site Recovery. The scenario is that we want to put a single Windows 2019 VM up in Azure and run a server for a particular application that will allow a few remote users to connect using the client side of that same software. The software is basically used for scanning images from a workstation and having it sent to this server.

    We don't really need load balancing or clustering as far as performance goes, so a single VM should be able to handle the workload. What we ARE concerned about is avoiding downtime during disasters or outages and making sure that we don't lose data when something unexpected happens. I'm pretty new to Azure and I came across HA Sets, HA Zones, Backups, and Site Recovery. I'm trying to figure out which of these would be our best bet. I know that backups are a must. It's the others that are confusing me.

    High Availability
    Please correct me if I'm wrong here. This seems like I'd need two identical VMs, effectively doubling the cost. One would act as the primary VM that everyone is initially connecting to and using while the other would be the backup/secondary. If the first goes down then it automatically switches to the secondary and the end-users can barely tell that things have swapped over, even if they are in the middle of scanning something in the client-side of software.

    1. Does this require that I create and pay for two identical VMs in Azure and have them both running at all times?

    2. If the above answer is yes, does that mean we'll pay twice as much as having a single VM or is there some sort of break in the price because MS knows we will only be connecting to the primary server while the second will only be used for emergencies?

    3. Do HA Zones require both a load balancer and scale set even if we don't need to split the workload?

    4. Do HA Sets not require a load balancer or scale set?

    5. Does adding a load balancer/scale set component increase the cost?

    6. How does restoring an Azure Backup work with HA? Do you simply restore to the primary VM and it replicates afterwards?

    7. What happens if you gracefully shut-down one of the VMs? Do things get thrown out of sync?

    8. What happens when the primary site comes back up after things were swapped to the secondary server?

    Site Recovery
    From what I gather this is just an inactive copy of our data that is updated every 5 minutes and includes everything needed to run our VM if the main site dies. So if our VM goes down we have to manually push a button in the portal and activate this backup site. Then any customers that are already connected to our software will get rerouted to the backup site.

    1. Is this a seamless transition where the customer won't realize that they were just switched to another site?

    2. How long does it take Azure to bring up the backup site once you push the button?

    3. How do you switch back to the original site once things have been fixed?

    4. Is this a less expensive option than HA sets and HA zones?


    Thank you for any help that you can provide.

    Monday, September 9, 2019 12:58 PM

Answers

  • "..............One would act as the primary VM that everyone is initially connecting to and using while the other would be the backup/secondary.........." - Putting two VMs in an Availability Set or Availability Zone dont by default make one primary and the other one secondary unless you configure them like so by some other means.


    1. Ans: Yes, if you want a real HA environment.

    2. Ans: Yes, you will be paying for both the VMs. They are both active to MS.

    3. Ans: Availability Set or Availability Zone only provides infrastructure level high availability ensuring at lest one VM is up all the time. You have to configure your application on both the nodes. Load balancer is required to forward/distribute traffic to the backend VMs. VM Scale set is different, you may or may not use it depending on your requirement.

    4. Ans: Load Balancer is required to forward/distribute traffic to the VMs in Availability Set or Availability Zone.

    5. Ans: Basic Load Balancer is free - make sure to put your backend VMs in an Availability Set.
    There is cost for Standard Load Balancer, you need it if you go for Availability Zone.
    There is cost for VM scale set.

    6. Ans: Availability Set or Availability Zone doesnt replicate anything between your VMs. Simply restore the VM if you need to. While restoring if you use new NIC, you will have to re-add the VM to the backend pool of the Load Balancer.

    7. Ans: Nothing gets synced between the VMs in Availability Set or Availability Zone by default. You have configure and handle it by some other means if you need it.

    8. Ans: By default there is no Primary/Secondary concept but you can configure Azure Load Balancer to forward traffic to only one node by sending the health probe response from that node only. If you configure it like so, you have to handle the application and health probe failover. Alternatively, you can use session persistence but here both nodes are active. Refer the link below for Load Balabcer rule setup. https://docs.microsoft.com/en-us/azure/load-balancer/load-balancer-distribution-mode


    Site Recovery:
    ================
    1. Ans: No, there will be a downtime.

    2. Ans: It varies depending on various factors - it may take 10 mins to 30 mins. 

    3. Ans: You have to replicate back and perform another failover which will cause another dowtime.

    4. Ans: Depends on your solution and requirement.

    ======================
    I would not mix HA and DR, we do not invoke DR in case of a service failure rather we first look for bringing that service up on the same site which is operational recovery. Now if the entire site/region goes down then we invoke DR. Availability Zone, however, to some extent serves the purpose of both HA and DR.

    If you are looking for a DR solution go for Azure Site Recovery replication, it works great.

    If you are looking for a HA solution, you can only host your application (stateless) on two VMs in an Availability Set and use a common file storage for both nodes to store the data. Below is a very basic architecture. 

    If you want a HA-DR solution use Availability Zone (VM1 - Zone1, VM2 - Zone2) instead of Availability Set with Standard Load Balancer. (expensive than the previous one)

    • Proposed as answer by Rohan Islam Monday, September 9, 2019 2:48 PM
    • Marked as answer by Denver92 Friday, September 20, 2019 8:26 PM
    Monday, September 9, 2019 2:48 PM
  • 1. Availability Set only requires identical VMs in it (Technically you can have a single VM in an Availability Set as well, without any HA benefit though.). But you cannot directly put an existing VM into an availability Set. You can do that via PowerShell which requires a downtime. Then, put the 2nd VM in the same Availability Set during creating it.

    2. You just need two separate identical VMs in two different Availability Zones provided that Availability Zone is available in the Azure region in which you are provisioning the VMs. Nothing needs to be duplicated. Again, you cannot directly put an existing VM in Availability Zone, it can be done via a bit complex PowerShell script which requires downtime.

    3. To use ASR, you need to design and setup secondary Azure region including on-prem connectivity. You can design the DR  network topology in such a way which supports individual application VM failover though. But I think by the time the failover would take place and the new IP address of the VM from the secondary region reflects on the DNS, you would be able to perform a restoration of the VM in the primary Azure region in case the origianl VM crashes. I see ASR as a DR solution and not as a HA solution.

    4. Please refer the link below to understand storage redundancy. MS offers 99.9% SLA for single VM having premium OS and data disk, if this SLA is good enough for your application, you can go for a single VM then setup DR to your Azure secondary region via ASR replication (only if this application really requires DR). But I would only encourage a DR failover if your primary region is unavailable or you are unable to bring up the VM on your primary region within a specified time line say an hour.  

    https://docs.microsoft.com/en-us/azure/storage/common/storage-redundancy?toc=%2fazure%2fstorage%2fblobs%2ftoc.json    

    • Proposed as answer by Rohan Islam Thursday, September 12, 2019 8:36 AM
    • Marked as answer by Denver92 Friday, September 20, 2019 8:26 PM
    Thursday, September 12, 2019 8:36 AM

All replies

  • "..............One would act as the primary VM that everyone is initially connecting to and using while the other would be the backup/secondary.........." - Putting two VMs in an Availability Set or Availability Zone dont by default make one primary and the other one secondary unless you configure them like so by some other means.


    1. Ans: Yes, if you want a real HA environment.

    2. Ans: Yes, you will be paying for both the VMs. They are both active to MS.

    3. Ans: Availability Set or Availability Zone only provides infrastructure level high availability ensuring at lest one VM is up all the time. You have to configure your application on both the nodes. Load balancer is required to forward/distribute traffic to the backend VMs. VM Scale set is different, you may or may not use it depending on your requirement.

    4. Ans: Load Balancer is required to forward/distribute traffic to the VMs in Availability Set or Availability Zone.

    5. Ans: Basic Load Balancer is free - make sure to put your backend VMs in an Availability Set.
    There is cost for Standard Load Balancer, you need it if you go for Availability Zone.
    There is cost for VM scale set.

    6. Ans: Availability Set or Availability Zone doesnt replicate anything between your VMs. Simply restore the VM if you need to. While restoring if you use new NIC, you will have to re-add the VM to the backend pool of the Load Balancer.

    7. Ans: Nothing gets synced between the VMs in Availability Set or Availability Zone by default. You have configure and handle it by some other means if you need it.

    8. Ans: By default there is no Primary/Secondary concept but you can configure Azure Load Balancer to forward traffic to only one node by sending the health probe response from that node only. If you configure it like so, you have to handle the application and health probe failover. Alternatively, you can use session persistence but here both nodes are active. Refer the link below for Load Balabcer rule setup. https://docs.microsoft.com/en-us/azure/load-balancer/load-balancer-distribution-mode


    Site Recovery:
    ================
    1. Ans: No, there will be a downtime.

    2. Ans: It varies depending on various factors - it may take 10 mins to 30 mins. 

    3. Ans: You have to replicate back and perform another failover which will cause another dowtime.

    4. Ans: Depends on your solution and requirement.

    ======================
    I would not mix HA and DR, we do not invoke DR in case of a service failure rather we first look for bringing that service up on the same site which is operational recovery. Now if the entire site/region goes down then we invoke DR. Availability Zone, however, to some extent serves the purpose of both HA and DR.

    If you are looking for a DR solution go for Azure Site Recovery replication, it works great.

    If you are looking for a HA solution, you can only host your application (stateless) on two VMs in an Availability Set and use a common file storage for both nodes to store the data. Below is a very basic architecture. 

    If you want a HA-DR solution use Availability Zone (VM1 - Zone1, VM2 - Zone2) instead of Availability Set with Standard Load Balancer. (expensive than the previous one)

    • Proposed as answer by Rohan Islam Monday, September 9, 2019 2:48 PM
    • Marked as answer by Denver92 Friday, September 20, 2019 8:26 PM
    Monday, September 9, 2019 2:48 PM
  • Thank you for the answers Rohan. They were extremely helpful. I've come up with a few other questions that I've listed below.

    1. Does setting up an availability set require duplicates of any resources/instances other than a second VM? In our case we have a single virtual network, network gateway, storage account, resource group, and subscription.

    2. What about availability zones? Do they require two separate sites and all components that I'd need to run one VM should be duplicated for the other VM?

    3. You mentioned above that you would only use site recovery if an entire site went down. Can you explain why it would it be a bad choice to temporarily use site recovery if only a single component failed such as the OS drive of our VM?

    4. How does using premium storage help to protect you from data loss? I noticed mention of single instance SLA. Does this mean that it automatically migrates your data to a different premium storage disk if the drive suddenly fails? Is this an alternative to availability sets?


    Wednesday, September 11, 2019 1:53 PM
  • 1. Availability Set only requires identical VMs in it (Technically you can have a single VM in an Availability Set as well, without any HA benefit though.). But you cannot directly put an existing VM into an availability Set. You can do that via PowerShell which requires a downtime. Then, put the 2nd VM in the same Availability Set during creating it.

    2. You just need two separate identical VMs in two different Availability Zones provided that Availability Zone is available in the Azure region in which you are provisioning the VMs. Nothing needs to be duplicated. Again, you cannot directly put an existing VM in Availability Zone, it can be done via a bit complex PowerShell script which requires downtime.

    3. To use ASR, you need to design and setup secondary Azure region including on-prem connectivity. You can design the DR  network topology in such a way which supports individual application VM failover though. But I think by the time the failover would take place and the new IP address of the VM from the secondary region reflects on the DNS, you would be able to perform a restoration of the VM in the primary Azure region in case the origianl VM crashes. I see ASR as a DR solution and not as a HA solution.

    4. Please refer the link below to understand storage redundancy. MS offers 99.9% SLA for single VM having premium OS and data disk, if this SLA is good enough for your application, you can go for a single VM then setup DR to your Azure secondary region via ASR replication (only if this application really requires DR). But I would only encourage a DR failover if your primary region is unavailable or you are unable to bring up the VM on your primary region within a specified time line say an hour.  

    https://docs.microsoft.com/en-us/azure/storage/common/storage-redundancy?toc=%2fazure%2fstorage%2fblobs%2ftoc.json    

    • Proposed as answer by Rohan Islam Thursday, September 12, 2019 8:36 AM
    • Marked as answer by Denver92 Friday, September 20, 2019 8:26 PM
    Thursday, September 12, 2019 8:36 AM
  • 1. Availability Set only requires identical VMs in it (Technically you can have a single VM in an Availability Set as well, without any HA benefit though.). But you cannot directly put an existing VM into an availability Set. You can do that via PowerShell which requires a downtime. Then, put the 2nd VM in the same Availability Set during creating it.

    2. You just need two separate identical VMs in two different Availability Zones provided that Availability Zone is available in the Azure region in which you are provisioning the VMs. Nothing needs to be duplicated. Again, you cannot directly put an existing VM in Availability Zone, it can be done via a bit complex PowerShell script which requires downtime.

    3. To use ASR, you need to design and setup secondary Azure region including on-prem connectivity. You can design the DR  network topology in such a way which supports individual application VM failover though. But I think by the time the failover would take place and the new IP address of the VM from the secondary region reflects on the DNS, you would be able to perform a restoration of the VM in the primary Azure region in case the origianl VM crashes. I see ASR as a DR solution and not as a HA solution.

    4. Please refer the link below to understand storage redundancy. MS offers 99.9% SLA for single VM having premium OS and data disk, if this SLA is good enough for your application, you can go for a single VM then setup DR to your Azure secondary region via ASR replication (only if this application really requires DR). But I would only encourage a DR failover if your primary region is unavailable or you are unable to bring up the VM on your primary region within a specified time line say an hour.  

    https://docs.microsoft.com/en-us/azure/storage/common/storage-redundancy?toc=%2fazure%2fstorage%2fblobs%2ftoc.json    

    @Denver92 If this answers your query, kindly mark it as answer.
    Thursday, September 19, 2019 11:14 AM