A Short tutorial to setting up Eucalyptus Cloud System on Emulab Nodes
Eucalyptus is an open source cloud implementation for Linux based systems. Eucalyptus is loosely based on Amazon EC2, one of the most popular cloud computing platforms. Eucalyptus brings the powerful functionalities of Amazon EC2 into the open source domain.
A Eucalyptus Cloud consists of at least two nodes -
1. Cloud Controller Node
Hosts the Eucalyptus Cloud controller which manages the cluster of compute nodes, provides both CLI and Web interfaces to the cloud installation, and provides more advanced functionalities like Walrus - A place to store Virtual Machine (VM) images and Storage Subsystem - Persistent Storage for VM's instantiated in Compute Nodes.
2. Compute Node(s)
Hosts the Eucalyptus Node Controller that provides the bridged networking framework and KVM based virtualization platform for VMs to be run.
1. Important Features and Advantages of using Eucalyptus
Feature 1: Eucalyptus supports KVM based virtualization (with one VM per VCPU). This brings in advantages of KVM namely, no modification to guest OS images, use of the existing host Linux OS as the Hypervisor for the VM’s (VM’s run as processes in the host linux machine)
Feature 2: De-centralized Cloud controller objects – “Walrus”: The VM image store, “Storage subsystem”: The persistent data store (ATA over Ethernet) for VM’s and the Cloud controller can be placed on distinct machines. This provides the desirable advantage of having a dedicated and scalable storage system comparable to SAN. The second advantage is the isolation of network bandwidth and IO intensive job usage. The storage/walrus could be given higher bandwidth links while the cloud controller can be placed on a low CPU power/ low bandwidth link.
2. Eucalyptus on Emulab
Emulab testbed can create a network configuration of any number of nodes connected by a LAN in a matter of minutes. startup scripts can now install and configure Eucalyptus software on a Emulab created experiment automatically. This gives the power to create a Eucalyptus cloud of any number of nodes or configuration(supported by emulab) in a few minutes. The eucalyptus cloud created, also has the advantages of the network bandwidth isolation guaranteed by Emulab.
We now describe how to set up a sample eucalyptus cloud in a emulab installation. Thereafter, we propose some new ideas, which could benefit the current state of the art in cloud computing and network testbeds.
3. Setting up Eucalyptus on Emulab
a) Create the NS file and run it, as you would for an Emulab experiment
All nodes have to be from the d710 series (Eucalyptus needs Intel VT support). The OS image which works is "ub10" (Ubuntu 10.04) We use tb-node-startcmd to specify the Eucalyptus automatic installation scripts in the NS file.
For example, tb-set-node-startcmd $nodeA "/share/eucalyptus/eucacc1.sh" will set NodeA as the Cloud Controller Node.
tb-set-node-startcmd $nodeB "/share/eucalyptus/eucanc.sh" will set NodeB as a Compute Node
This will set up an Emulab experiment and configure the nodes to form a Eucalyptus cloud. These scripts can also be invoked manually by logging into the nodes and running the cloud controller script/node controller script.
Some of the important functionalities configured by the above scripts are -
1. Inter-Node communication between Cloud controller and Compute Nodes
2. Walrus and Storage Controller Facilities at the cloud controller
3. EucaTools - CLI for Cloud Management
4. Web Interface for Cloud Management
5. DHCP server for the VM's to-be-created
The sample NS file at the end of this document does all of the above instructions. Please wait for 5 minutes after the experiment has been instantiated to allow for the complete installation of the Eucalyptus cloud.
b) Log in to the Web Interface
The http address for web interface is the full domain name of the cloud controller node and port number 8443. For example, https://nodea.mycloud.utahstud.emulab.net:8443 <br> Default username/password is admin/admin. You will be prompted to change it the first time. <br> Now From the Web Interface, Pick any VM image from the Ubuntu Store and Click Install.
c) Access the CLI by logging on'to Cloud controller
The below shell code describes the correct way to access the CLI <br>
“euca-describe-availability-zones verbose” Describes Resource Availability(Cores, Memory) in the Cluster
Eucalyptus supports KVM based virtualization which limits one VM to one logical core. So 1 d710 machine can run a maximum of 8 VM's
See http://open.eucalyptus.com/wiki/EucalyptusUserGuide_v1.6 for more Eucalyptus commands.
See Attachments for the NS file.