April 1, 2009
This article was contributed by Koen Vervloesem
Simultaneously running multiple operating systems on one computer has
been a common practice for decades on mainframes, but is now commonly used
on all classes of machines. This can be used for server consolidation: many
underutilized physical servers are replaced by one powerful physical server
hosting different virtual machines. However, this doesn't make management
of the (now virtual) servers easier. To the contrary: as more and more
servers are virtualized, system administrators could lose the "big picture"
of their server farm. Good administration tools for virtualization are
priceless.
After many months of development and bug-fixing, the developers of
ConVirt have released
version 1.0 of their graphical management tool for
virtual machine life cycle management. This tool, in a previous life called
XenMan, offers a solution to install ("provision" in virtualization lingo),
monitor and manage the complete lifecycle of Xen and KVM deployments from a
central dashboard. ConVirt is an open source product, aimed at the
enterprise market. The company Convirture offers paid support, but
free support is available through the community forums and wiki.
Managing a set of virtual machines manually is a time-consuming and
error-prone task. Many system administrators write their own custom
provisioning scripts to handle this, but then the problem of keeping track
of all these virtual machines and monitoring them pops up. ConVirt manages
both Xen and KVM from a single interface and shields the low-level
differences between these virtualization platforms from the user. This
means users don't need to learn and use multiple tools if different virtual
machines use a different virtualization platform. Installing, configuring
and monitoring virtual machines is all possible from a single
dashboard. Most of the tasks, such as migrating virtual machines, taking
snapshots or adding storage, are possible with a few clicks.
Preparation
Preparing an environment of virtual machines for ConVirt happens in
three steps: install ConVirt on one computer, prepare each server to be
managed by ConVirt, and then start ConVirt, after which it discovers the
prepared managed servers. The second step may be skipped if all managed
virtual machines reside on the same computer as ConVirt.
Before the preparation, one should take a couple of things
into account. ConVirt can be installed on most Linux systems, but it is
only tested on a couple of distributions. Convirture has certified
ConVirt on CentOS or Red Hat Enterprise Linux 5.2 with Xen 3.1, SUSE Linux
Enterprise Server 10 SP2 with Xen 3.2, Debian 5.0 with KVM-72 and Ubuntu
Server/Desktop
8.10 with KVM-72. The community has tested ConVirt successfully on some other
configurations. The remotely managed servers should have a supported
version of Xen or KVM, and should be accessible by SSH.
The wiki has specific installation
instructions for a few Linux distributions. Your author applied
them successfully on an Ubuntu 8.10 Desktop with KVM. On each server,
download the convirture-tools package and run:
convirt-tool setup
to configure the server. For Xen, this command configures the
Xend Server to listen on port 8006 and to open port 8002 for migration. The
setup tool writes a summary of its operations to the
/var/cache/convirt/server_info file for later reference. ConVirt
doesn't require deploying a software agent on the managed servers because
it uses SSH.
Virtual infrastructure
ConVirt supplies a wealth of monitoring information at multiple levels:
the individual virtual machine, the physical server. and the server
pool. The user sees performance, utilization, and availability metrics for
the CPU, memory, storage, and network. This gives one a good overview
to decide where adjustments need to be made to capacity or to reallocate
resources.
The concept of a server pool is central in ConVirt's operation, to
the point that the user can install, configure, and monitor virtual machines
at the server pool level. Key monitoring information for different servers
of the pool is summarized to a pool-wide value. In the same way one can
change the pool-wide configuration, which ConVirt then applies to all
servers in the pool. It's also possible to associate shared storage (SAN or
NAS) with a server pool. All virtual machines on this server pool then use
the same storage settings.
Adding a server to a server pool is simple: select a server pool in
ConVirt and right-click to select 'Add Server'. Choose Xen or KVM as the
virtualization platform and enter the IP address or hostname of the server,
provide the username and password for SSH and press OK. After this, the
server shows up under the server pool and is ready to host virtual
machines.
Virtual appliances
Templates are central to ConVirt's provisioning capabilities: the tool
comes with a couple of templates, which are easily customizable. ConVirt
creates two default groups in the image store: Xen Paravirtual, which
contains virtual machine images for the Xen platform, and Common, which
contains images that can be deployed on Xen or KVM if the processor
supports virtualization. The Xen image store comes with templates for a
CentOS or Fedora installation, and the Common image store has templates for
a generic Linux or Windows installation.
Of course it is possible to create a template based on your own image or
a third-party virtual appliance. An interesting feature is the
integrated virtual appliance catalog browser: ConVirt searches on the
websites of a number of appliance vendors (at this moment only rPath and JumpBox) of virtual appliances. Users can
browse the catalog and download the right appliance, which can then be
installed in ConVirt.
The rest of the configuration of a template comes down to allocating
CPU, memory and storage, and defining the network. Installing a template
into a new or existing server is a one-click action. If a user has a lot of
servers with different workloads, ConVirt is able to identify the optimal
placement in the server pool, taking into account the performance and workload
of the various servers. Migrating a virtual machine between servers
couldn't be easier: with a simple drag-and-drop move, the user can move a
virtual machine from one server to another while it's running and without
interrupting operations. The same holds for a whole group of virtual
machines, for example if the server is upgraded or down for
maintenance.
ConVirt 1.0 also allows dynamic configuration of CPU and memory
resources for live virtual machines. In the future the project intends to
add a policy-based mechanism to allow a more elastic pre-configuration and
enforcement of resource limits.
Conclusion and future direction
ConVirt is an interesting solution for system administrators with a lot
of servers and virtual machines to manage. One central dashboard to
install, monitor and manage virtual machines should be more than
welcome. On the server side there is virtually no extra work: a user only
needs to run the setup tool once to configure the server correctly.
ConVirt is fully open source, and Convirture actively encourages the
community to discuss, give feedback, and make suggestions as well as contribute
directly to the codebase. Convirture's founder
Arsalan Farooq said that they have
received several key contributions from outside Convirture, but he admits
that the majority of the code has been contributed by his company. His hope
is that this ratio will change going forward in favor of even more
community contributions.
At this moment, ConVirt supports Xen and KVM, but the management tool
has a plugin architecture that allows new platforms to be added
easily. According to Farooq, the ConVirt developers will continue to add
support for any relevant open source virtualization platforms that might
emerge, and he mentioned Red Hat's oVirt
platform. He also added that this is an area where the developers
especially encourage community involvement, so if you want your favorite
virtualization technology to be supported in ConVirt, get
involved with the project.
(
Log in to post comments)