Eucalyptus: running a private cloud on Ubuntu
While Ubuntu has been able to attract an impressive "market share" as a GNU/Linux distribution in just a couple of years, this success has been limited mainly to the desktop. Canonical has made it clear that it has ambitions for the server market, but at the moment Ubuntu Server Edition does not stand apart from enterprise distributions like Red Hat Enterprise Linux and SUSE Linux Enterprise. With the newest edition, Ubuntu 9.04 ("Jaunty Jackalope"), Canonical has tried to outsmart its competitors by focusing on cloud computing.
"Cloud computing" comes down to providing computing resources as a dynamically scalable service. In practice this means that customers rent computers to run their own software. The best known cloud computing system is Amazon Elastic Compute Cloud (EC2). Customers can create virtual machines (which EC2 calls server instances) and run them on Amazon's servers. They are charged for each hour the virtual machine runs, and for the bandwidth used. Amazon distributes a set of (proprietary) EC2 tools to manage a cloud. With these command line programs, users can create, launch or terminate virtual servers, as well as any other imaginable task.
The most innovative part in Ubuntu 9.04 is found in the Eucalyptus project, which brings an Amazon EC2-style private cloud within the reach of every Ubuntu 9.04 user. At the moment it's still a technology preview, which will not be considered production-ready until Ubuntu 9.10 later this year. Eucalyptus makes it possible to investigate cloud possibilities inside a company, without the need to deploy the applications on external servers at Amazon. Because Eucalyptus is interface-compatible with the EC2 APIs, the same EC2 tools can be used. This means that working with virtual machines on Eucalyptus is almost identical to working with virtual machines on Amazon EC2, and a company wanting to use cloud computing on Ubuntu has the choice between Ubuntu Server on Amazon EC2 and Ubuntu Server on Eucalyptus, what Canonical is calling Ubuntu Enterprise Cloud.
The Eucalyptus project is important because it 'frees' cloud computing. Traditionally, cloud computing systems have been the playground of large companies from Google, Amazon and IBM to Microsoft. Vendor lock-in is a serious issue in this emerging market. However, with Eucalyptus there is a technology which allows anyone to set up their own cloud system on their own hardware. The framework essentially implements what is commonly referred to as "Infrastructure as a Service": a system with the ability to run and control collections of virtual machine instances deployed across a variety of physical servers.
Development of Eucalyptus
The name Eucalyptus is an acronym for "Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems". The software was originally a research project in the Computer Science Department at the University of California, Santa Barbara (UCSB). The research question that was investigated concerned the combined use of U.S. National Science Foundation supercomputers, university research machines and the public clouds for large-scale science applications. Through that project, called VGrADS, the researchers designed and coded what has been released as Eucalyptus 1.0 in May 2008. This gave them an environment to host a cloud for themselves.
At that time, the only commercial cloud was Amazon's EC2. The researchers ported their grid system to Amazon EC2, and at the same time built Eucalyptus as an EC2-compatible cloud system. Because the researchers didn't have the resources to support more than one cloud API, Eucalyptus has been written as a drop-in replacement for EC2, such that a system running on EC2 could also run on Eucalyptus in the same way. The developers have only read Amazon's API specifications that are published free of charge. Thus, internally, Eucalyptus works completely differently than EC2, but it faithfully reproduces EC2 functionality.
While Eucalyptus was designed as a tool to support research, the developers clearly saw that it had potential in the non-academic world too. Therefore, they released the code as open source under a BSD license. However, for the moment, the developers are restricting external contributions to bug fixes, because they want to keep the code base stable in this early phase of development. According to project lead Rich Wolski, this policy will change during this year:
There was a close collaboration between the Eucalyptus and Ubuntu developers to get Eucalyptus in Ubuntu 9.04. For example, originally Eucalyptus used Xen as its virtualization platform, but because Ubuntu favors KVM it has been integrated with KVM in Ubuntu. However, Eucalyptus isn't tied to Ubuntu or KVM. As Rich Wolski says:
Creating your own private cloud with Eucalyptus
So how does Eucalyptus work? It's essentially a set of web services: the user makes a request to a front-end web service, the cloud controller. If the request is for storage, it is forwarded to Walrus, the storage front-end that is compatible with Amazon S3. The storage request is then forwarded to storage controllers running at the cluster level. If the request to the cloud controller is not about storage, it is forwarded to web services on the cluster level and next to the individual compute nodes.
Eucalyptus consists of three parts, which come in Ubuntu as three packages:
- eucalyptus-cloud: the cloud controller, implementing the EC2 and S3 APIs. A Eucalyptus system needs only one cloud controller.
- eucalyptus-cc: the cluster controller, which is the master server and implements the virtual network. A Eucalyptus system normally needs only one cluster controller.
- eucalyptus-nc: the node controller, which controls the KVM hypervisor and manages the virtual machines on a node. Each physical server in the cloud needs a node controller.
The three components can also be installed on one computer. This can be done for example if one wants to evaluate Eucalyptus on an Ubuntu 9.04 system for the first time.
Installing and deploying Eucalyptus on Ubuntu 9.04 is still somewhat complicated, but the Ubuntu community documentation is an excellent guide for the installation. The user trying to install Eucalyptus will definitely meet some rough edges. For example, he can add a cluster to the cloud in the web interface, but adding nodes has to be done on the command line. And the EC2 tools bundled with Ubuntu 9.04 are not compatible with Eucalyptus, hence users have to download another version of the EC2 tools manually. Moreover, while trying to set up a Eucalyptus system on a fresh Ubuntu 9.04 install, your author discovered that Eucalyptus is extremely sensitive to the virtual or physical network setup. If something is wrong with the network, the error messages of Eucalyptus and the EC2 tools are not helpful. And so on; one assumes these difficulties will be ironed out over time.
Ubuntu in the cloud
Ubuntu's cloud computing possibilities don't stop with Eucalyptus. For the last few months, Canonical has had Ubuntu machine images for Amazon EC2 in beta, and, last week, the Ubuntu EC2 team announced the availability of public Ubuntu EC2 images for the 8.10 and 8.04 (LTS) releases. This provides a stable Ubuntu platform that allows users to run their applications in an EC2 environment. Meanwhile, the Ubuntu EC2 team is working on EC2 images for 9.04.
It's interesting to note that an Amazon machine image can be converted to a Eucalyptus machine image, even if Amazon is using Xen and Eucalyptus on Ubuntu is using KVM. The key difference is that Xen accepts an ext3 filesystem for use as a root filesystem, while KVM expects a disk image. The Eucalyptus developers have some internal tools for making this conversion and are using it frequently during the development and Q/A for each release. According to Wolski, they are planning to add the tools to a future Eucalyptus release. For now, converting images requires a little bit of an understanding of the different requirements each hypervisor has.
Canonical and Eucalyptus have worked together to make it as easy as possible to set up and manage a private cloud. Therefore, the Eucalyptus web interface has a button to register for a RightScale account, which is available in a free developer edition to try it out, and some pay editions with extra features. By following the link on the configuration web page of the Eucalyptus web interface, the user is ready to manage a cloud from within a RightScale dashboard. Users can see their virtual machine instances on their private cloud or on EC2 in one dashboard.
User management is also included, for example a user can be allowed to launch his own cloud server on someone else's cloud. RightScale is now working with Canonical to ensure that the official Ubuntu 9.04 Amazon Machine Images will work out-of-the-box with RightScale. According to the official RightScale blog, this will work out as following:
An interesting note: RightScale first focused on CentOS, but switched to Ubuntu as its primary supported distribution because of Canonical's cloud plans.
Conclusion
When Ubuntu Server first appeared, a lot of people didn't believe it could be a real competitor in the enterprise Linux market. However, with Ubuntu 9.04 a clear focus is arising. Canonical wants to do for cloud computing just the same thing it has done with its desktop operating system: make it work out-of-the-box and make it easy to deploy. The collaboration between Canonical, Amazon, Eucalyptus and RightScale is an important step in this direction. While working with Eucalyptus in Ubuntu 9.04 has still its rough edges, it's interesting to preview this flexible technology that will hopefully be mature in Ubuntu 9.10 at the end of the year. The name "Karmic Koala" for the 9.10 release at least gives a nice insight in what a core role Eucalyptus will play in Ubuntu Server.
| Index entries for this article | |
|---|---|
| GuestArticles | Vervloesem, Koen |
Posted Apr 30, 2009 5:37 UTC (Thu)
by jspaleta (subscriber, #50639)
[Link] (2 responses)
Pretty hefty prices once you get out of the "free" category.
So hows that work out exactly? RightScale doesn't mention Canonical backed technical support associated with their Ubuntu platform on any customer facing material as far as I can tell. And I haven't seen it mentioned in the press releases. Compare that with the IBM/Virtual Bridges announcement from last December concerning VERDE virtual desktop bundle which explicitly stated that the bundle cost included Canonical technical support:
And it gets even more complicated as Eucalyptus now has its own venture capital funding and is offering its own support options directly to enterprises: http://www.eucalyptus.com/enterprise/support
So where do Canonical's potential service offerings come into play between RightScale's SaaS subscription model and Eucalyptus's own enterprise support options? It seems to me that's a very good way for Canonical to be squeezed out of the revenue model between the value-add that RightScale's services provide and the technical expertise that Eucalyptus provides. I don't see how something like landscape fits in with RightScale's services. I'd love to see how the three of these entities fit together in terms of paid support providers.
Right now I just don't see it. Seems to me the big potential winner here is RightScale because the are offering the value-add integration service which leverages the no acquisition cost of Ubuntu as provided by Canonical. But I don't see how this arrangement makes it any more likely that someone will pay Canonical for support directly. I really hope RightScale has some sort of revenue sharing arrangement with Canonical.
-jef
Posted May 1, 2009 2:57 UTC (Fri)
by dmag (guest, #17775)
[Link] (1 responses)
I agree with your first point: The article goes from saying "The Eucalyptus project is important because it 'frees' cloud computing", then talks about RightScale without mentioning it's putting your free cloud in the hands of a proprietary 3rd party website.
On the other hand, I disagree about your second point. This is Open Source. Anyone is free to support it (or not) as they choose, pay money (or not) as they choose, subscribe to services (or not) as they choose. Using (or supporting) Ubuntu does not require paying anybody money. Arguments that you're "squeezing out" Open Source authors by not paying them are just silly.
If you really felt that way, you should take it the next step: I'll bet 90% of Canonical support is really just supporting Apache/Linux/PHP/MySQL/GNU/Other stuff they didn't write. Therefore, you should be outraged that Canonical is "squeezing out" these projects by not paying them a fair share of the revenue. Next, you should complain about all the freeloaders^H^H^H (I mean users) who use Ubuntu but don't subscribe to Canonical support. What if they ask their teenage neighbor for support instead? Is that as immoral as going to the bathroom during ads on TV?
Alternately, do you think RightScale should pay CentOS? Why not MySQL too? Apache? Where do you draw the line?
Switching topics:
The article states "RightScale first focused on CentOS, but switched to Ubuntu as its primary supported distribution because of Canonical's cloud plans" but I can't find that documented anywhere. As far as I can tell, they are just adding a 2nd OS, not refocusing.
Disclaimer: I use RightScale.
Posted May 1, 2009 17:06 UTC (Fri)
by jspaleta (subscriber, #50639)
[Link]
Closer re-reading of the press releases doesn't indicate there is a dedicated explicit partner relationship between the two business entities at any level. And in fact I can't find either company listing the other as a partner in any communication after the initial press release annoucing support for Ubuntu by RightScale.
If they don't have a business partner relationship, then you are right. I shouldn't have any hopes for Canonical being able to leverage the relationship with RighScale to drive revenue of any sort. There's no direct business relationship to leverage.
-jef
Posted Apr 30, 2009 18:52 UTC (Thu)
by bronson (subscriber, #4806)
[Link] (1 responses)
Can anyone say how Eucalyptus compares to ProxMox or Enomaly? Or even virt-manager?
Personally, I'd like to replace 6 aging servers with one fast box and an open, pleasant to use management console. Is there any software out there that actually keeps thing simple?
Posted Apr 30, 2009 19:36 UTC (Thu)
by dmuino (guest, #6930)
[Link]
Posted May 2, 2009 0:11 UTC (Sat)
by giraffedata (guest, #1954)
[Link]
I always find this description misleading. It's really, "charged for each hour the virtual machine exists." There's no such thing in EC2 as a virtual machine that is not running. If you don't want to pay the full time charge, you have to destroy your virtual machine when you don't need it and build another one like it later on. Also, because it's meant for applications that can work that way, various system glitches can cause your virtual machine to vaporize, and you're expected to build a replacement when that happens. This is in contrast with other cloud architectures where the virtual machine is expected to be perpetual.
Incidentally, Amazon literature often describes the pricing scheme as "you pay for only what you use," which is similarly misleading. You pay for every hour a virtual machine exists, regardless of how much real CPU time and memory it uses.
Eucalyptus: running a private cloud on Ubuntu
So here's a question for you..is Canonical getting a cut of that subscription? Its great that Canonical is making it easy for RightScale to have a SaaS model by offering Ubuntu at no cost..but it would be tragic if Canonical wasn't getting a piece of the $500 a month action.
http://www.computerworld.com/action/article.do?command=vi...
Eucalyptus: running a private cloud on Ubuntu
Eucalyptus: running a private cloud on Ubuntu
Eucalyptus: running a private cloud on Ubuntu
Eucalyptus: running a private cloud on Ubuntu
Eucalyptus: running a private cloud on Ubuntu
They are charged for each hour the virtual machine runs
