Welcome!

Java Authors: Frank Huerta, Adrian Bridgwater, Pieter Van Heck, Esmeralda Swartz, Gary Kaiser

Related Topics: Cloud Expo, Java, SOA & WOA, Open Source, Virtualization, Web 2.0

Cloud Expo: Article

Examining Excellent Eucalyptus

A high-level cloud - overview of Eucalyptus IaaS

Eucalyptus is an open source Infrastructure as a Service cloud offering. What is unique about Eucalyptus is that it is compatible with Amazon AWS APIs. This means that you can:

  • Use Eucalyptus commands to manage Amazon or Eucalyptus instances.
  • Freely move instances between a Eucalyptus private cloud and the Amazon Public cloud to create a hybrid cloud.

Eucalyptus leverages operating system virtualization, such as KVM or XEN, to achieve isolation between applications and stacks. Operating system virtualization dedicates CPU and RAM to systems and applications such that they don't interfere with each other. In cloud parlance, this is called isolation and is essential to achieve multi-tenancy. (For a refresher on basic cloud terminology, see here; for a refresher on Infrastructure as a Service, see here).

Cloud computing layers on top of operating system virtualization and when combined with dynamic  allocation of IP addresses, storage  and firewall rules creates a service that end users interact with to run instances of images.

Eucalyptus concepts
The following is an explanation of terminology and concepts used by Eucalyptus.

Images
An image is a fixed collection of software modules, system software, application software and configuration information that is started from a known baseline (immutable/fixed). An example of an image is a Linux virtual machine configured with Apache, MySQL, Perl and PHP.  When bundled and uploaded to the Eucalyptus cloud, this will become known as an "EMI" Eucalyptus Machine Image.  An EKI is an Eucalyptus Kernel Image which contains kernel modules necessary for functioning of the image. An ERI is a Eucalyptus RAM Image.

Instances
When an image is put to use it is called an instance. The configuration is dynamically executed at runtime and the cloud controller decides where the image will run, storage and networking is attached to meet resource needs. This is executed under the control of the credentials (digital certificates) of the user who is requesting an instance of the image.

IP addressing
Eucalyptus instances can have public and private IPs. An IP address is assigned to an instance when the instance is created from an image. For instances that require a persistent IP address, such as  web-server, Eucalyptus supplies Elastic IP addresses. These are pre-allocated by the Eucalyptus cloud to an instance. An Elastic IP persists whether the instance is running or not. In other words if you stop an instance and restart it hours, days or even weeks later, the instance will bind to the same Elastic IP address that was assigned to it. This is essential for consistent DNS resolution.

Security
TCP/IP stack layer 3 security is achieved using security groups, which share a common set of firewall rules. This is a mechanism to firewall off an instance using IP address and port block/allow functionality.

At TCP/IP layer 2 instances are isolated. If this were not present, a root user could manipulate the networking of instances and gain access to neighboring instances violating the basic cloud tenet of instance isolation and separation.

Networking
There are three networking modes:

  1. Managed mode - Eucalyptus manages a local network of instances, including security groups and elastic IPs. Eucalyptus maintains a DHCP server and provides private non-routable IPs to instances. An instance is created in a security group and gets an IP from the range in that group.  There is also a pool of public (elastic) IPs that users can bind to an instance at boot-time or dynamically at runtime. VLANs are used to network instances in different security groups. If there is no VLAN present, isolation can be achieved using security groups in different subnets.
  2. System mode - Essentially the physical LAN that is attached to Eucalyptus manages the network of the Eucalyptus cloud. Eucalyptus assigns a MAC address and attaches the instance's network interface to the physical Ethernet LAN through the NodeController's bridge. System mode requires a DHCP server on the physical LAN that is reachable by instances. System mode does not offer elastic IPs, security groups or VM isolation.
  3. Static mode - In static mode Eucalyptus maintains a DHCP server and assigns IP addresses to instances. Static mode does not offer elastic IPs, security groups or VM isolation.

Access control
A user of Eucalyptus is called an identity. Identities can be grouped together for access control purposes. Users exist within accounts. An account is a namespace that contains users/identities, key pairs and security groups. An account is used to account for resource usage.

Eucalyptus abbreviations
CLC

The CLC is a Cloud controller similar to Amazon EC2, It is the entry point into cloud for all users: administrators, developers, project managers and  end users. The CLC queries other components for resources and makes scheduling decisions and requests to Cluster Controllers. The CLC exposing and manages underlying resources (servers, networks, storage).  Users access the CLC using AWS compatible command line tools and a web-based dashboard.

Walrus
Walrus, similar to Amazon's S3,  is a bucket based persistent data storage.  Users create, delete and list buckets; put and remove objects from buckets; get and set access control policies. Walrus is accessible from the administrative interface or from an instance inside cloud.

CC
The CC is the Cluster Controller. The CC gathers information about node controllers and schedules an instance to execute on a specific NodeController.

NC
The NC is the the Node Controller. The Node Controller manages instances. The NC controls instance activities such as execution, inspection and termination.  The NC fetches and maintains a cache of instance images.  The NC also manages virtual network endpoints.

SC
The SC is the storage controller and is similar to Amazon's EBS (Elastic Block Store). The storage controller manages block accessed network storage.  The SC interfaces with SCSI, SAN, NFS.  The SC exports storage volumes that can be attached to an instance or mounted as a raw-block device. SC storage volumes persist even when an instance stops running and thus stores persistent data. SC storage cannot be shared between instances and only exists in the same Availability Zone in which the instance is running. Users can create snapshots from SC volumes which can stored in Walrus and thus be made available across Availability Zones.

More Stories By Jonathan Gershater

Jonathan Gershater has lived and worked in Silicon Valley since 1996, primarily doing system and sales engineering specializing in: Web Applications, Identity and Security. At Red Hat, he provides Technical Marketing for Virtualization and Cloud. Prior to joining Red Hat, Jonathan worked at 3Com, Entrust (by acquisition) two startups, Sun Microsystems and Trend Micro.

(The views expressed in this blog are entirely mine and do not represent my employer - Jonathan).

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.