Building our own GIS cloud – part one

21st December 2011


Over the last few years virtualisation has been a major change in the way that both ESRI UK and the IT industry as a whole utilise physical hardware.

The next step in this progression is to host services in ‘the cloud’ which enables:-

“The ability to add and remove transparently scalable IT resources (both hardware and software) from a seemingly infinite pool of resources in a self service manner.”  (

During the last two years ESRI UK has explored the use of Amazon Web Services (AWS) which supports the ‘Infrastructure as a Service’ (IaaS) model and has been used successfully for the Esriuk Online Services. There will be a post on this soon as well.

With this new way of working, coupled with several of our older traditional hosting contracts coming to an end, this left behind physical hardware that was not  being utilised. We wanted to explore the options available for reuse of older hardware in order to build and run a private cloud. Ideally, this option would be compatible with the Amazon EC2 infrastructure that we are currently running. Our hope is that we can move the machine images between the environments or even expand our private cloud to the public cloud. This would enable us to provide ready made GIS machines for user acceptance testing, performance testing and beta-launches to name three. All within an easy to provision, self-service (we hope) and affordable environment.

At the moment, if one needed a server for a one-month demonstration – chances are you have to build it yourself or go to AWS and pay for a month. However, for a demo even a one-month subscription probably isn’t justifiable. Finally, it will improve our knowledge of this rapidly expanding field – there are many clients who would like to have a private GIS cloud installed.

Our Environment

Current existing hardware available for this project:-

  1. HP Proliant DL380 G4     + Disk Array (1.5TB)
  2. HP Proliant DL380 G4
  3. HP Proliant DL380 G5
  4. HP Proliant DL380 G5
  5. HP Proliant DL140 G3
  6. HP Proliant DL140 G3

Our Tasks List
·       Define requirements for our private cloud.
·       Identify OpenSource Cloud Middleware options that can support Amazon EC2.
·       Identify compatible Virtualisation frameworks (aka ‘Hypervisors’) which managed the guest OS.
·       Determine which cloud middleware solution and Hypervisor would best suit our requirements.
Requirements for our private cloud

  • Utilise some or all of the existing physical hardware in a private cloud hosted at ESRI UK.
  • The technology used, must be OpenSource (we have NO BUDGET!) and resources available online.
  • It would be preferable if the cloud technology is compatible with Amazon EC2 so we could build and configure Amazon VMs (Instances) in our private cloud, with the option of uploading them to our public cloud in Amazon Web Services.

Identify OpenSource Cloud Middleware options – IAAS Systems

The following products all focus on providing a middleware layer for launching conventional virtualisation technologies into a cloud setting.

Eucalyptus (Elastic Utility Computing Architecture Linking Your Programs To Useful Systems)

  • Supports Amazon EC2
  • Can deploy Private/Hybrid clouds.
  • Implements complete support for Amazon Web Service (AWS) APIs.
  • Implements an Amazon S3 compliant storage component – Walrus.
  • Supports Xen and KVM Hypervisors.
  • Offers an enterprise edition:- “Ubuntu Enterprise cloud services”.
  • When needed, the private cloud can reach out and grow into Amazon’s public cloud.
  • Images already available for download from the Eucalyptus site.
  • Assistance/Training/Support through Ubuntu advantage support

As well as having a cool name / acroynm, Eucalyptus was engineered to emulate Amazon Web Services (AWS) and should interact seamlessly with Amazon public cloud services, including EC2 and S3 products, with no software modification required.



  • Supports Amazon EC2 and adds support for elastic hosts (send VMs to Amazon EC2).
  • Can deploy Private/Hybrid/Public clouds can access infrastructure through AWS-compliant APIs.
  • Adds support for a recent standardised API from the Open Grid Forum.
  • Supports Xen, KVM and VMWare Hypervisors.
  • Binary packages exist for:Red Hat Enterprise, Ubuntu, Fedora, openSUSE

Ubuntu, Debian and openSUSE have added OpenNebula to their standard repositories which make it easy to install via the either Synaptic or YasT



  • Implements the AWS APIs
  • Targeted to the scientific community.
  • Supports Xen, KVM Hypervisors.
  • Implements an Amazon S3-compliant storage mechanism called ‘Cumulus’.

From our own research, Nimbus looked like a worth candidate with quite broad support from the OpenSource community and an information packed website.



  • Developed by Rackspace.

It looks like OpenStack has its root in ‘Nebula’ a partly NASA funded project into cloud-computing which has now grown to encompasse many more scientific and academic institutions.


Identify compatible Virtualisation frameworks (Hypervisors)

The following 2 hypervisors were considered for this task.


  • Xen was released in 2002.
  • Xen is a type-1 (bare metal) hypervisor that supports x86, x86_64, itanium and ARM architectures.
  • Xen supports Linux, Windows, Solaris and some BSD guests.
  • Xen requires a supported Kernel and Linux doesn’t come with Xen support out of the box.


  • KVM was developed in 2007.
  • KVM is a type-2 (hosted) hypervisor that supports x86 and x86-64 systems.
  • KVM Supports Linux, Windows, Solaris and BSD guests.
  • KVM is in the mainline Linux kernel and is built into Ubuntu Server.

There is still debate on the ‘Bare Metal’ versus ‘Hosted’ hypervisors being the best discussed here.

So, with this in mind we had to determine which cloud middleware solution and Hypervisor would best suit our requirements.

Based on the research, we narrowed the options down to two for the middleware, as both products support Amazon EC2:-

  1. Eucalyptus with “Ubuntu Enterprise Cloud Services”
  2. OpenNebula

The Hypervisor chosen was KVM, based on the fact that it is in the Linux kernel for Ubuntu Server by default which should make it easier to install and configure.

Results and Recommendations
In a virtual environment an OpenNebula install was attempted first which ran into several configuration problems. Also further research, it was suggested that Eucalyptus is more widely used and there are more documentation and resources available.  As a result the OpenNebula configuration was abandoned and an Ubuntu Server installation was attempted which uses Ubuntu Enterprise Cloud (UEC) as a set of management tools (created by Eucalyptus systems).

This configuration proved more flexible and the following components have been installed and configured so far:-

  • 1 x UEC-Frontend
  • 1 x UEC-Node

So far, KVM has successfully been installed in a virtual environment, but has yet to be installed and configured with UEC in the physical environment.


So much more work needs to be done. However we have hardware available that works and a plan to develop it further. The plan to thoroughly research the field and perform some proof-of-concept installations has meant that we can quickly assess the usefulness of each option. More work is now planned but we are confident in success. Of course, this will be in part 2 of the report. 

Authors by Matt Bevan and Wai-Ming Lee