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.