Search This Blog

Monday, February 17, 2014

Virtual Machine Availability in Windows Azure

 

Lately, I’m configuring virtual machine in Windows Azure for my test lab. While playing around, I wonder what is the availability option to ensure application are highly available when Microsoft (service provider) perform hardware replacement, upgrade,network failures, etc. Let read further on how we can achieve availability.

Storage

image

You can set redundant of the storage that the store virtual disk of your virtual machine. By default, three copies of virtual hard disk are stored in the data center. When enabled geo-redundant, an additional three copies of virtual hard disk stored in different data center.

Locally Redundant option allow your data on the storage to replicated within the same region. Example for Southeast Asia region, the storage from Singapore datacenter is replicated to Hong Kong datacenter.

Mean while Geo-Redundant, allow your data replicate to secondary storage region to protect against outage in primary data center or datacenter failure.

You can enable this option when creating storage or after created storage.

Virtual machine

Next, let look in term of  virtual machine availability. To do so,

  • Add VMs to availability set
  • Create availability set
  • Add an existing VM to an availability Set

You can manage the availability of an application by creating at least two virtual machine and configure to use the same availability set.

Azure-Web

For example, we have created two virtual machines for web under Availability Set- Web and two virtual machine for database under Availability Set-Database.

Here is the end result: Availability Set- Web consists of two virtual machine “MS4UWeb01” and “MS4UWeb02”

3

Database availability end result: Availability Set-Database consists of two virtual machine “MS4UDb01” and “MS4UDb02”

4

Availability set are directly related to fault domain and update domain. A fault domain are equivalent to a rack of physical servers and it’s defined by avoiding a single point of failure like the power unit of the rack server, motherboard failure or network switch. When multiple virtual machine are put under the same Availability Set, each virtual machine will allocate to different fault domain.

Screenshot below display how Azure allocate Web & database VM under different update and fault domain.

1

2

Next, how about Update domain? Windows Azure constantly update the Hyper-V Host operating system to fix some OS system bugs. When operating system is been patched, the virtual machine is offline and will cause downtime. This is where Update Domain come into picture.

Update Domain is used to ensure that not all of the virtual machine are updated at the same time. When assigned to availability set, virtual machine are assigned to different update domain.

AS

The diagram above depicted on how each virtual machines of our described example has been assigned to availability set, fault domain and update domain to ensure virtual machine availability.

3 comments:

  1. Excellent outline of the Availability Sets and Fault Domains, I have been researching a lot lately regarding HA with Azure VM's running RDS.
    Azure offers an excellent options for small business requiring RDS but to get the SLA the above configuration is required meaning all server would need to be duplicated.
    I have also read the article you posted regarding RDS in Azure witch was also very good. Have you tested any scenarios running RDS with multiple servers in each Availability group?
    I am trying to keep configuration simple but want to ensure with updates and downtime.
    Look forward to more articles, thanks

    ReplyDelete
  2. Thanks for posting this info. I just want to let you know that I just check out your site and I find it very interesting and informative. I can't wait to read lots of your posts. vpn

    ReplyDelete