Cloud Computing is emerging as a new processing paradigm based on outsourcing infrastructure on a “pay-as-you-go” basis, accommodating services ranging from private data pro- cessing to public website hosting. Despite much attention from the research community, research and development of Cloud Computing systems, applications, services and resource management are still in their infancy.
There are a number of important issues that need detailed investigation throughout the Cloud “stack”. For example, topics of interest to Cloud providers include: economic strategies for provisioning virtualised resources to incoming user requests, application scheduling, and resource discovery.
The extent to which most researchers can adequately address such problems is limited by the inaccessibility of Data Centre (DC) infrastructures for cost-effective large-scale experimentation. It is therefore important that suitable tools for exploring and evaluating ideas are made available to researchers.
But a typical Cloud DC usually contains tens of thousands of servers, making it prohibitively expensive to construct one. Even a practical testbed consisting of a reasonable number of servers (say, 40 machines) can still be out of the reach of most researchers when one needs to consider space, power and cooling infrastructure.
Some researchers have instead focused on developing Cloud Computing simulators. While simulation has in the past been used to successfully model some of the underlying state of a target system (such as within network simulation), it fails to capture essential Cloud Computing properties in a number of ways.
With Cloud simulation tools being still at early development and physical x86 Cloud testbeds being prohibitively expensive, we are exploring a novel alternative: the construction of a cutting-edge “scale model” of a Cloud system to create a high fidelity and affordable testbed.
In our work, we have constructed a prototype scale model of a Cloud Data Centre (DC) cluster, called the Glasgow Raspberry Pi Cloud (abbreviated to PiCloud). It contains 56 Model B version Raspberry Pi devices, housed in racks constructed using Lego bricks. The 56 Raspberry Pi’s are divided into 4 racks with 14 Raspberry Pis each.
In order to reflect a typical DC network architecture, the Raspberry Pi devices are interconnected through a canonical multi-root tree topology. Machines in the same rack are connected to the same Top of Rack (ToR) switch, which in turn connect to the rest of the topology through an OpenFlow-enabled aggregation switch.
The benefit of using OpenFlow is to make the topology fully programmable and compatible with the leading-edge Software Define Networking (SDN) research. SDN is a fairly recent concept of logically centralising the network’s control plane so that network-wide management can be programmed in software and subsequently enforced through the centrally-controlled installation of rules on the switches along the path.
All Raspberry Pi devices are eventually connected to the Internet through the School’s university gateway, which functions as a core or border router. The accessibility and design of the prototype means the PiCloud clusters can easily be re-cabled to form a fat-tree topology.
As the key building blocks of the PiCloud, each of these microcomputers runs Linux from a Sandisk 16GB SD card storage, supporting up to 3 co-located concurrent virtualised hosts with isolated filesystems, which are realised through Linux Containers and the supporting LXC suite. There is an API daemon on each Pi providing a RESTful management interface for facilitating virtual host management and interacting with a head node (the pimaster).
While our system architecturereplicates the overall structure of a Cloud DC, we believe that the emulation at an individual server level is equally important. Thanks to the effort of the Raspberry Pi community, there is a distribution of Debian optimised for the Raspberry Pi hardware known as Raspbian.
Unlike other ARM-based operating systems which usually contain only a subset of basic programs and utilities, the Raspbian comes with over 35,000 pre-compiled software packages, built with support for the Pi’s hardware floating point capabilities. Immediately above the Raspbian operating system, Linux Containers are used to provide a type of virtualisation, playing a role similar to the hypervisor in x86 virtualisation technologies. Currently, we are able to comfortably support three containers concurrently on a Raspberry Pi. Within each of the containers, any user application can be executed as if it was running on normal servers.
Following a typical densely interconnected network topology, the PiCloud can accurately replicate a Cloud DC’s functionalities with scaled components. As a development environment, it permits reproduction of actual traffic patterns with realistic Cloud applications. Applications and technologies developed on top of the PiCloud can be readily adapted to real Cloud environments.
To read this external content in full, download the complete paper from the open online author archives at the University of Glasgow.