When an application has been made cloud-aware and it can tolerate single VM failure, availability can be further improved by placing VMs in different parts of the data centres.
An availability zone is a way in which the user can specify a particular “location” in which a host should boot. The most common usage for availability zones is to group together servers in terms of availability but other features could be external network connectivity or redundant power. When a nova boot command is issued, an --availability-zone can be provided to specify which zone to start the VM in.
The current zones available can be found running
openstack availability zone list. The results show the name of the availability zones currently available such as
taylor@laptop:~$ openstack availability zone list --compute +-----------+-------------+ | Zone Name | Zone Status | +-----------+-------------+ | dc3-a-04 | available | | dc3-a-09 | available | | dc3-a-10 | available | +-----------+-------------+
Each of these zones have different network connectivity and power inputs. Thus a failure in one hardware component of the d3-b10 should not affect VMs running in d3-b6.
To create a VM in a particular availability zone, this should be specified at VM creation time:
$ openstack server create --availability-zone dc3-a-09 ...
Note: Availibity zones vary depending of the service and names can differ.
For example as explained before there are several zones for the compute service
openstack availability zone list --compute
There's only one for the volume service because the high availibility is managed at the backend level
openstack availability zone list --volume
Same applies for the network service
openstack availability zone list --network