Saturday, 1 September 2012

Cloudstack Architecture Overview

Cloudstack Architecture Overview

CloudStack is a Cloud Orchestration platform that pools computing resources to build public, private and hybrid Infrastructure as a Server (IaaS) clouds.  CloudStack manages the network, storage, and compute nodes that make up a cloud infrastructure.

A CloudStack cloud has a hierarchical structure which enables it to scale to manage tens of thousands of physical servers, all from a single management interface.

As its name implies, the Management Interface/ Server is there to manage something -- one or more zones (typically, datacenters) containing host computers where guest virtual machines will run. 

The cloud infrastructure is organized as follows:

Availability Zones

An Availability Zone is the largest organizational unit within a CloudStack deployment.  Typically a datacentre (DC) implementation will contain a single Zone, but there are no hard and fast rules and a DC can contain multiple Zones.  By structuring CloudStack into geographical Zones, virtual instances and data storage can be placed in specific locations in order to comply with an organisation’s data storage policies etc.

An Availability Zone consists of at least one Pod, and Secondary Storage, which is shared by all Pods in the Zone.
Zones are visible to end users, who can then choose which Zone they wish to create their virtual instances in.  A public Zone is visible to all users, but private Zones can also be created which are then only available to members of a particular domain and its associated sub-domains.


A Pod is a selection of hardware configured to form Clusters.  Typically a Pod is a rack containing one or more Clusters, and a Layer 2 switch architecture which is shared by all Clusters in that Pod.  End users are not aware, and have no visibility of Pods.


A Cluster is a group of identical Hosts running a common Hypervisor.  For example a Cluster could be a XenServer Pool, a set KVM Server or a VMware cluster pre-configured in vCenter.  Each Cluster has a dedicated Primary Storage device which is where the virtual machine instances are hosted.  

With multiple Hosts within a Cluster, High Availability and Load Balancing are standard features of a CloudStack deployment.

Secondary Storage

Secondary Storage is used to store virtual machine Templates, ISO images and Snapshots.  The storage is available to all PODs in a Zone, and can also be replicated automatically between Availability Zones thereby providing a common storage platform throughout the whole Cloud.  

Secondary Storage uses the Network File System (NFS) as this ensures it can be accessed by any Host in the Zone.

Primary Storage

Primary Storage is unique to each Cluster and is used to host the virtual machine instances.  CloudStack is designed to work with all standards-compliant iSCSI and NFS Servers supported by the underlying Hypervisor.  

Primary Storage is a critical component and should be built on high performance hardware with multiple high speed disks.

Further Reading:

How to setup CloudStack on a VM using VMware Workstation (Coming Soon !!)