Introduction to UEC and its components
Cloud Computing is a computing model, where resources such as computing power, storage, network and software are abstracted and provided as services on the Internet in a remotely accessible fashion. Billing models for these services are generally similar to the ones adopted for public utilities. On-demand availability, ease of provisioning, dynamic and virtually infinite scalability are some of the key attributes of Cloud Computing.
An infrastructure setup using the cloud computing model is generally referred to as ‘Cloud’. The following are the broad categories of services available on the ‘Cloud’:
- Infrastructure As A Services (IAAS)
- Platform As A Service (PAAS)
- Software As A Service (SAAS)
This ‘Cloud’ is generally available to anyone on the Internet willing to pay. However, a variant called ‘Private Cloud’ is increasingly becoming popular for private infrastructure that has some of the attributes of the ‘Cloud’ as mentioned above.
Eucalyptus is a software available under GPL that helps in creating and managing a private or even a publicly accessible cloud. It provides an EC2 compatible cloud computing platform and S3 compatible cloud storage platform. Eucalyptus has become very popular and is seen as one of the key open source cloud platforms. Since Eucalyptus makes its services available through EC2/S3 compatible APIs, the client tools written for AWS can be used with Eucalyptus as well.
Ubuntu Enterprise Cloud (UEC)
Ubuntu Enterprise Cloud, UEC for short, is a stack of applications from Canonical included with Ubuntu Server Edition. UEC includes Eucalyptus along with a number of other open source software. UEC makes it very easy to install and configure the Cloud. Canonical also provides commercial technical support for UEC.
- Node Controller (NC)
- Cluster Controller (CC)
- Walrus Controller (WS3)
- Storage Controller (SC)
- Cloud Controller (CLC)
Node Controller (NC)
A UEC node is a VT enabled server capable of running KVM as the hypervisor. UEC automatically installs KVM when the user chooses to install the UEC node. The VMs running on the hypervisor and controlled by UEC are called instances.
Node Controller runs on each node and controls the life cycle of instances running on the node. The NC interacts with the OS and hypervisor running on the node on one side and the CC on the other side.
NC queries the Operating System running on the node to discover the node’s physical resources – the number of cores, the size of memory, the available disk space and also to learn about the state of VM instances running on the node and propagates this data up to the CC.
- Collection of data related to the resource availability and utilization on the Node and reporting the data to CC
- Instance life cycle management
Cluster Controller (CC)
CC manages certain number of Node Controllers and deploys instances using them. CC also manages the networking for the instances running on the Nodes under certain types of networking modes of Eucalyptus. More on this in later chapters.
CC communicates with CLC on one side and NCs on the other side.
- To receive requests from CLC to deploy instances
- To decide which NCs to use for deploying the instances on
- To control the virtual network available to the instances
- To collect information about the NCs registered with it and report it to the CLC
Walrus Storage Controller (WS3)
WS3 provides a simple storage service using REST and SOAP APIs compatible with S3 APIs from Amazon Web Services.
- Storing the the machine images
- Storing snapshots
- Storing and serving files (either from a running instance or from anywhere on the web) using S3 API
WS3 should be considered as a simple file storage system.
Storage Controller (SC)
SC provides persistent block storage for use by the instances. This is similar to the EBS service from AWS.
SC runs on the same machine as the Cluster Controller and is configured automatically when the Cluster Controller is installed.
- Creation of persistent Elastic Block Storage (EBS) devices
- Providing the block storage over AoE or iSCSI protocol to the instances
- Allowing creation of snapshots of volumes.
Cloud Controller (CLC)
The Cloud Controller (CLC) is the front end to the entire cloud infrastrcuture. CLC provides an EC2/S3 compliant web services interface to the client tools on one side and interacts with the rest of the components of the Eucalyptus infrastructure on the other side. CLC also provides a web interface to the users for managing certain aspects of the UEC infrastructure.
- Monitor the availability of resources on various components of the cloud infrastructure, including hypervisor nodes that are used to actually provision the instances and the cluster controllers that manage the hypervisor nodes
- Resource arbitration – Decide which clusters will be used for provisioning the instances
- Monitoring the running instances
In short, CLC has a comprehensive knowledge of the availability and usage of resources in the cloud and the state of the cloud.