Thursday, February 4, 2010

Eucalyptus


Eucalyptus is the best known (and as I consider the oldest) open source solution for organizing cloud infrastructure. Let's take a look on it.
Eucalyptus consists of five types of components:
  • Cloud controller, provides web-interface and Amazon's EC2-compatible SOAP interface for virtual machines management. It's written in Java.
  • Walrus, implements Amazon's S3-compatible SOAP and REST storage interface. It's also written in Java.
  • Cluster Controller, managing one node group (one ethernet segment). It's written in C.
  • Storage Controller. It is Amazon's EBS-style place where virtual images are stored before (and after) you use them. It's written in Java.
  • Node Controller. It is an abstraction layer over you hypervisor (KVM and Xen are supported by now). It's written in C.

I installed Ubuntu Enterprise Cloud (UEC) using Ubuntu 9.10 Server. When you install it you can choose either Cluster (with Cloud Controller, Walrus, Cluster Controller, Storage Controller) or Node (with KVM-enabled Node Controller). Be careful! You can get a lot of strange errors if Cluster host runs out of memory or disk space.

Eucalyptus cloud is managed using Amazon-compatible Eucalyptus Tools written in python. By the way I build a package with these tools for Sisyphus. The life circle of the virtual machine is:
  • You make images of file system, kernel and initrd and upload them (using euca2ools) to Block Storage.
  • You ask cloud to run instance of you machine with fixed amount of CPU, memory and disk space.
  • Images are downloaded from a Block Storage to a free node (node which has required resources). There are caches on nodes of cause. Node controller runs your machine.
  • Virtual machine gets IP from a pool.
  • Your machine is ready, you starts to use it.
  • You ask cloud to shut down your machine.
  • Node Controller shuts down your machine.
  • Machine's image gets uploaded to a Block Storage.
Eucalyptus implements Amazon's API, so it is very useful in hybrid clouds (you can run your images in Amazon EC2 if you a running out of resources without any problem). But implementation in Java is a pain for me.

Tomorrow I'll start looking at OpenNebula. Stay tuned!

1 comment:

  1. Hi. Thanks a lot for interesting posts :). Could you please make a comparison between OpenNebula and Eucalyptus?

    ReplyDelete