Cloudy Karmic Koala (Ubuntu 9.10)

There’s been a lot of press around the FREE Ubuntu 9.10 Linux distribution as a client operating system, and a wide set of comparisons made (typically by Mac or PC-using journalists) between Ubuntu and Windows 7, but 9.10 is also interesting from a broader virtualization and especially Cloud perspective.  Ubuntu is managed by a UK company, Canonical, through a bona-fide foundation. Ubuntu will always be free, and is aligned with the Debian community.

Ubuntu releases every six months, and each release is supported for 18 months – except every 2 years there is a Long Term Support (LTS) release which is supported for 5 years on the server and 3 years on the desktop.  Since 9.10 is the final release before 10.04 LTS  there is little sense in putting 9.10  Server into production, but 9.10 is a very good guide of what will be in 10.04 because the final LTS release cycle is spent hardening the build and making sure the device drivers are up to date, rather than adding new functionality.

Ubuntu is defined by a small core function, and a set of additional repositories which operate as a sort of AppStore containing free and non-free software.  Virtualization capability is provided in both the core, free and non-free repositories.

Ubuntu as Host

9.10 is a basic but effective virtualization platform through features that have been incrementally added over various releases.  The approach feels a bit “self-assembly”, but it does work. The core virtualization strategy has always been KVM-based, although with the development of lib-virt, the management of KVM and Xen hosts is unified.

Server-side virtualization support is installed through a single debian-style package ubuntu-virt-server containing KVM, Libvirt and openssh server. Client-side support through the package  ubuntu-virt-client which contains three tools: python-vm-builder – a command line tool for building and managing VMs,   virt-viewer –  a vnc client for displaying VM consoles, and  virt-manager – Red Hat’s python-based desktop application for managing virtual machines.

Ubuntu and Red Hat are on convergent paths since they both provide KVM and libvirt on the server and given the dynamics of open source, as Red Hat’s tooling emerges it is likely to be adopted in Ubuntu.  However, whilst Red Hat has a Microsoft relationship and formally tests and supports Windows guests on RHEL, Canonical has no such relationship and formally only tests and supports Ubuntu on Ubuntu.

As an alternative to KVM you can  install a community-maintained Xen kernel from a free Ubuntu repository, but there are few obvious reasons why you would want to.

There are two other options in the free repository:

  • VirtualBox OSE (the open source variant of Sun/Oracle’s VirtualBox) which, as we discussed in a previous article, may be a hypervisor solution for elderly hardware, but doesn’t provide a disconnected client user interface for server useage.
  • OpenVZ (the open source variant of Parallel’s Virtuozzo Containers) which is an Operating System level virtualization solution where guests are running against the same underlying kernel.  It cannot be used to, for example, virtualize Windows on Ubuntu. Typical users are hosting companies providing virtual machines to multiple users.  It is widely viewed that the overheads of this approach are much less than of virtualizing the whole O/S but KVM is getting steadily better at sharing resources amongst VMs, so arguably the efficiencies of the O/S level approach of OpenVZ are steadily eroding.

For Presentation Virtualization, plain old X11 can sometimes be an option,  and FreeNX and Ullteo OVD are also available as open source options (although not in an official Ubuntu repository).

Ubuntu as Guest

Ubuntu is widely deployed inside other virtualization platforms, notably vSphere and ESXi.  VMware worked with Canonical to develop a tiny sub-distribution known as JeOS (pronounced Juice) which can be installed from the standard Ubuntu Server install ISO disk, and which requries only 128M of RAM.  JeOS is primarily designed to provide a base for virtual appliance builders, although VMware’s other motivation was to provide a mechanuism whereby the management functions currently implemented in ESXi could ultimately  be implemented via a JeOS guest rather than by processes running inside the  host.

Ubuntu plays well inside most other hypervisor solutions, except that getting graphics to work on Microsoft Virtual PC and (it also seems Microsoft Virtual Server) is too much hassle to bother with, use VirtualBox or VmWare Player instead, or ESXi on a server.  Alternatively if you want to virtualize Ubuntu on Xen, its kernel does support it (As of 8.10), and Ubuntu is widely used in Amazon’s EC3 which uses a Xen hypervisor.

Cloud

Whilst the virtualization management tooling inside Ubuntu 9.10 is fairly rudimentary, Ubuntu 9.10 makes a significant play in the cloud space through the inclusion of the EC2-compatible Eucalyptus, packaged as the “Ubuntu Enterprise Cloud”.

The Ubuntu Enterprise Cloud is a standalone (no Xen, No Amazon, certainly no VMware) implementation of EC2 which allows you to dynamically provision Ubuntu (and other O/S) instances. In virtualization management terms, Ubuntu is skipping a generation. If you think of VMware’s vSphere and vCloud, there is nothing really equivalent to vSphere in Ubuntu, but Ubuntu Enterprise Cloud is equivalent to (and more mature than) vCloud.

The Ubuntu Enterprise Cloud installation is integrated into the base O/S installation, and if you are thinking of installing multiple Ubuntu instances, there’s a sense of “why wouldn’t you do them in a cloud? It just makes your life much simpler”.

Management of the Ubuntu Enterprise Cloud is via Eucalyptus’s Euca2ools (part of the Ubuntu Distribution under GPL) or ElasticFox, a Firefox plugin under the Apache Licence, or a third-party management tool for EC2.

Furthermore, Canonical offers various support options and training courses for Ubuntu.

<!–[if !mso]> <! st1\:*{behavior:url(#ieooui) } –>

Cloudy Karmic Koala (Ubuntu 9.10)

There’s been a lot of press around the FREE Ubuntu 9.10 Linux distribution as a client operating system, and a wide set of comparisons made (typically by Mac or PC-using journalists) between Ubuntu and Windows 7, but 9.10 is also interesting from a broader virtualization perspective. Ubuntu is managed through an independent foundation (yes, a real one not just a website). It is driven by a UK company, Canonical, with a South African founder.

First some detail for the initiated about Ubuntu releases.

Ubuntu releases come every 6 months. In a traditional development model you flex the deadline to meet the functionality. In the Ubuntu model you flex the functionality to meet the deadline. The model is quiet well established in other open source communites (e.g. Eclipse).

The release cycle is numbered by the month of the release. Thus 9.10 was released in October 2009.

The first two releases were Dapper Drake and Hoary Hedgehog, but since the 5.10 release (Breezy Badger) the animal names have come alphabetically. They are usually abbreviated to the adjective (e.g. Karmic).

Ubuntu comes in a number of varieties: Desktop, Server, JeOS (a minimal Linux Virtual Machine Guest co-developed with VMWare) and, new with 9.10, Netbook Remix.

3 out of 4 releases are supported for 18 months. Every 4th release is supported for 3 years on the desktop and 5 years on the server. The latest Long Term Support (LTS) release is 8.04 LTS

Ubuntu has shipped with KVM since 8.04 so 9.10 isn’t a major change of virtualization strategy. Changes are minor security (Guest Isolation) and performance enhancements.

Ubuntu 9.10 is unlikely to see widespread adoption as a server platform, since the next release (10.04) will be a LTS release. Personally I will be waiting for 10.04, and we will review that product in detail. However, there is a policy to use the LTS release cycle for bugfix and hardware compatibility rather than feature upgrade so 9.10 and 10.04 will be close to feature-identical.

Ubuntu software installation and upgrade is via apt (and variations eg dpkg/synaptic) which retrieve and configure the necessary packages – installing any dependencies. In practice “support” means that the underlying ubuntu repositories are being maintained.

Repositories act as a sort of “AppStore” for Ubuntu. Anything contained within them can be installed and uninstalled with a single mouse-click or command. There are free and non-free repositories, but the free repositories dominate useage.

If you are an open source software company, an effective method of ensuring widespread distribution is to get your product into the free Ubuntu repositories. To do this it will have to be distributed under a GPL-compatible licence. From a virtualization perspective, VirtualBox OSE has been in the repository for some time. Parallels OpenVZ is now in the Karmic repository.

Karmic Koala is a major change in cloud strategy.

a) Ubuntu 9.10 is available in Amazon EC2 (as has been 8.04)

b) Ubuntu 9.10 includes the EC2-compatible Eucalyptus, packaged as the “Ubuntu Enterprise Cloud”.

The Ubuntu Enterprise Cloud is a standalone (no Xen, No Amazon, certainly no VMWare) implementation of EC2 which allows you to dynamically provision Ubuntu (and other O/S) instances. In virtualization management terms, Ubuntu is skipping a generation. If you think of VMware’s vSphere and vCloud, there is nothing equivalent to vSphere in Ubuntu, but Ubuntu Enterprise Cloud is equivalent to (and more mature than) vCloud.

For a mid-scale and above user of Cloud, the cost of co-locating your own Ubuntu Enterprise Cloud on enterprise grade hardware in a third-party datacenter is likely to be much lower than using EC2 to host Ubuntu.

The Ubuntu Enterprise Cloud installation is integrated into the base O/S installation, and if you are thinking of installing multiple Ubuntu instances, there’s a sense of “why wouldn’t you do them in a cloud?. It just makes your life much simpler”.

Management of the Ubuntu Enterprise Cloud is via Eucalyptus’s Euca2ools (part of the Ubuntu Distribution under GPL) or ElasticFox, a Firefox plugin under the Apache Licence, or a third-party management tool for EC2. Canonical offers various support options and training courses.