Friday, February 19, 2010

Interesting links

Two interesting links:


Cloud computing publication categorizer http://cloud.pubs.dbs.uni-leipzig.de
"Understanding HBase and Bigtable" http://jimbojw.com/wiki/index.php?title=Understanding_Hbase_and_BigTable

Tuesday, February 9, 2010

OpenNebula


Second product we took a look at is OpenNebula, developed by Complutense University of Madrid.

OpenNebula's architecture is similar to Eucalyptus'.

There are following components in OpenNebula:
  • OpenNebula daemon, core of the system.
  • Drivers (network, storage and hypervisors abstraction ) Xen, KVM and VMware hypervisors are supported.
  • Frontend to interact with users (user management is supported too).
  • Nodes (hypervisor-enabled stateless machines)
  • Image repository. Virtual images are stored on a shared storage or transfered to a stateless node before execution.
OpenNebula is a solution for Private cloud. You can migrate your virtual machines to a Public cloud (Amazon EC2 and OCCI interfaces are supported).

OpenNebula is written in C++, Ruby, shell. Autotools, unfortunately, are not used to build the project, there is self-written install.sh script. This project looks like a good research, not production-ready project.

OpenNebula is licensed under Apache 2.0 license. There are ready to use packages in Ubuntu Karmic.

Next, we'll take a look at Google's ganeti.

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!

Tuesday, February 2, 2010

Infrastructure-as-a-Service

Hi!

Let's start investigating open source project for Infrastructure-as-a-Service solutions. We'll take a look at:
We'll be interested in:
  • Features
  • Activities
  • Community
  • Programming languages
  • etc

Monday, February 1, 2010

Ready for take-off

Hi!

Today we (ALT Linux) are starting a research&development in open source 'cloud technologies'. We'll investigate Infrastructure-as-a-Service and Platform-as-a-Service open source projects to choose which suits our needs. Then we'll try to collaborate in development.
I'll not post about our project as it is a bit secret right now. I'll write only about technologies.

Comments are welcome!