2

I am reading the explanation of Availability Sets on Microsoft' website but can't 100% understand the concept.

http://www.windowsazure.com/en-us/documentation/articles/manage-availability-virtual-machines/

There are many questions people ask in comments, but there is no technical support from Microsoft is there to answer them.

As I properly understand with availability sets you can duplicate your VM with IIS application and VM with SQL, which means you have to use 4 VM(pay for 4) instead of 2. This means that whenever IIS1 virtual machine is down, website will still be online with help of IIS2 virtual machine and vice versa? Same goes for SQL1 and SQL2 virtual machines?

Am I going to the right direction? If this is the case, how do I keep the data synchronized in SQL1 and SQL2, IIS1 and IIS2 virtual machines at the same time, so website will still be up with latest data and code if one VM is down for updates?

Raghavendra
  • 1,419
  • 4
  • 19
  • 28
sensei
  • 7,044
  • 10
  • 57
  • 125

2 Answers2

3

An availability set combines two concepts from the Windows Azure PaaS world - upgrade domains and fault domains - that help to make a service more robust. When several VMs are deployed into an availability set the Windows Azure fabric controller will distribute them among several upgrade domains and fault domains.

A fault domain represents a grouping of VMs which have a single point of failure - a convenient (although not precisely accurate) way to think about it is a rack with a single top or rack router. By deploying the VMs into different fault domains the fabric controller ensures that a single failure will not take the entire service offline.

The fabric controller uses upgrade domains to control the manner in which host OS upgrades (i.e., of the underlying physical server) are performed. The fabric controller performs these upgrades one upgrade domain at a time, only moving onto the next upgrade domain when the upgrade of the preceding upgrade domain has completed. Doing this ensures that the service remains available, although with reduced capacity, during a host OS upgrade. These upgrades appear to happen every month or two, and services in which all VMs are deployed into availability sets receive no warning since they are supposedly resilient towards the upgrade. Microsoft does provide warning about upgrades to subscriptions containing VMs deployed outside availability sets.

Furthermore, there is no SLA for services which have VMs deployed outside availability sets.

As regards SQL Server, you may want to look into the use of SQL Server Availability Groups which sit on top of Windows Server Failover Cluster and use synchronous replication of the data. For IIS, you may want to look at the possibility of deploying your application into a PaaS cloud service since that provides significant advantages over deploying it into an IaaS cloud service. You can create a service topology integrating PaaS and IaaS cloud services through the use of a VNET.

Neil Mackenzie
  • 2,817
  • 14
  • 11
0

Availability set is combination of these two feature

  1. Fault Domain(you have option to select max 3 when creating new Availability Set)
  2. Update Domains (you have option to select max 20 when creating new Availability Set)

    Availability Set Example

Fault Domain is the physical(like rack, power) set lets you selected 2 fault domain in your availability set and your machine in that availability set will have value 1 and 2 so at least one can be available in case of power failure at any physical set.

Update Domain is set which will be updated by azure system update at once. if select 4 update domains and your 2 VM have value 2,3 that means they will not be updated together for any planed maintenance

For high availability duplicate VM should not be on same Fault Domain or same Update Domain

Now You can not change availability set after creation of a VM it should be set at the time of creation

Raghavendra
  • 1,419
  • 4
  • 19
  • 28