Wednesday, June 25, 2014

OpenStack Cloud Partitioning(Availability Zones/Regions/Host Aggregates)


One of the key features that almost every cloud provider will provide is High Availability which ensures that you applications running on cloud are up and accessible all the time. Suppose there is a single cloud data center having all of infrastructure that the cloud hosts,  and there occurs a natural calamity like an earthquake which causes lot of harm to the data center. What would happen in this case? All the data contained in that data center would be lost and likely to be recovered also causing downtime for hosted applications. On the other hand if there would have been a distributed environment where data would be stored in not one but many data centers residing in different geographical location , there would be minimal impact of one data center going down. This is a very important aspect of cloud which every cloud provider must provide.

In OpenStack , spreading of data centers(if I can use a generic term for cloud data repository) is achieved via Regions, Availability Zones and Host aggregates. In this article , I will explain about each of these starting from lowest granular entity viz host to highest entity viz Region.

Host : a host is where your hypervisor runs , which has compute power or where your virtual machine instances are placed actually.A host has a nova-compute service running on it. In a single node setup there would be just one host containing compute and all other nodes which is not a good cloud implementation as it is more susceptible to breakdown.

Host Aggregate : host aggregates are like a collection of hosts that share a common property. This is more of logical grouping of hosts which share same set of capabilities. Host aggregates allow administrators to group hosts based on some common characteristic so that while launching instances , only those hosts are eligible for placement which qualify the requested capability. For example, an administrator can group hosts which have SSD drives enabled for faster disk I/O thus when a user requests for an instance having faster disk I/O , one of the host from that host aggregate can be selected for placement. The task of selecting appropriate host is done by Openstack scheduler. Host aggregates are only accessible to cloud administrators.

Availability Zone : an availability zone is next level of grouping and may contain one or more host aggregates and/or compute nodes. It is more of geographical division of OpenStack cloud and allows administrators to spread their compute nodes across geographies in order to achieve high availability.Availability zones are exposed to end users who can select a particular availability zone for VM placement while the instance is launched.

Region : a region is the biggest building block of Openstack cloud. It contains one or more availability zones . Each region within a cloud deployment will have its own set of Openstack services(network,compute,image,volume,storage etc) and endpoints except for keystone and dashboard. Within one cloud deployment , different regions will share one common keystone and dashboard.


  1. Hi Ankit. I am new to OpenStack cloud. It would be great if you can showcase how to configure HA using OpenStack. A small hand-on recording will be great!!!

    Thanks in advance.

  2. Hi Rominder,
    Please see my links for details on how to cofigure HA in OpenStack