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
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.
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”
Database availability end result: Availability Set-Database consists of two virtual machine “MS4UDb01” and “MS4UDb02”
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.
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.
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.