Management interfaces for the Kernel Virtual Machine (KVM)
With linux distributions increasingly standardising on the Kernel Virtual Machine (KVM) as the hypervisor of choice, it seems initially surprising that there aren’t more high quality management interfaces available. Most distribution documentation focuses on the use of virsh (a useful command line tool, but not particularly user-friendly), and virt-manager (which shows promise, but seems pretty under-developed and feature-short when compared to the VMWare Vi client and web interface).
A little research, however, shows a number of open source offerings that I’ll aim to evaluate in the quest to settle on the ‘perfect’ KVM administrative interface. The first 3 are web-based, but each with different aims:
Proxmox VE describes its “vision” as to:
“Setup a complete virtual server infrastructure within 1 hour.” Starting from bare metal, it is possible to create a full featured enterprise infrastructure including an email proxy, web proxy, groupware, wiki, web cms, crm, trouble ticket system, intranet … – including backup/restore and live migration.
Nowadays people are faced with more and more complex server software and installation methods. But Proxmox VE is different.
Proxmox VE is simple to use:
- Pre-built Virtual Appliances
- Install and manage with a view clicks
- Selection of products for the use in the enterprise
Proxmox VE is licensed under GPLv2 (Open source). Open source and commercial Virtual Appliances are supported.
Eucalyptus takes the concept of server virtualisation a stage further, aiming to bring the means to create private and hybrid server clouds in the datacenter. Currently under heavy development, it forms the backbone of the Ubuntu Enterprise Cloud. It describes itself as:
EUCALYPTUS – Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems – is an open-source software infrastructure for implementing “cloud computing” on clusters. Eucalyptus Systems is the pioneer in open source cloud computing technology that delivers hybrid cloud deployments for enterprise data centers. Leveraging Linux and web service technologies that commonly exist in today’s IT infrastructure, Eucalyptus enables customers to quickly and easily create elastic clouds in minutes. This “no lock-in” approach provides users with ultimate flexibility when delivering their SLAs.
Eucalyptus is more than just virtualization. Along with building virtual machines, the technology supports the network and storage infrastructure within the cloud environment. Eucalyptus works with multiple flavors of Linux including Ubuntu, OpenSuse, Debian, and CentOS. Eucalyptus currently supports Xen and KVM hypervisors.
Ovirt isn’t strictly just a management UI; instead the project aims to provide the components required to construct a virtualised infrastructure based on KVM nodes controlled by a management server. Sponsored by Redhat, its core is a ruby-based web console. From the project site:
oVirt is an open, cross-platform virtualization management system. oVirt provides both a small image that runs on a host and provides virtualization services to VMs there, and also a web-based management console that lets you allocate and group hosts and storage, install and remove virtual machines, level resources across a large group of machines, and much more. oVirt is designed to scale from a small group of users with little need for access control and quota management, all the way up to hundreds or even thousands of hosts with robust control over grouping, permissions, and quotas.
The oVirt host image is a small, stateless Fedora build that is meant to run from a flash drive, a CDROM, or entirely in RAM via PXE … The combination of libvirt and collectd means that a properly set-up remote management tool can securely handle all aspects of virtual machine management and monitoring on the oVirt host.
The oVirt management console also uses libvirt, along with a kerberos/LDAP server, for secure transport, monitoring, and management. It has several components:
A host browser that listens for oVirt hosts to advertise themselves and their capabilities over the network A task engine that reads a task queue from a Postgresql database and makes the appropriate libvirt calls over the transport A Rails-based web UI that allows users to manage virtual machines, view usage and performance statistics and graphs, group and ungroup hosts and storage servers, delegate groups of machines to other users, manage quota and SLA for groups of users and machines, and many other management capabilities.
The final two I’m examining consist of a feature-rich desktop client based solution, and a command line application that looks potentially quite useful in the datacenter. These are:
ConVirt provides an interesting alternative to a traditional VMWare ESX / VirtualCenter setup, seeming to provide a large subset of VMware’s functionality, but based on an open source platform and free to download. Covirt gives an overview of their product as:
ConVirt provides enterprise-class management of open source virtualization platforms, making open source virtualization an extremely viable and cost-effective choice for enterprises. ConVirt lets you manage the complete lifecycle of Xen and KVM virtualization platforms from a central, GUI dashboard. With sophisticated template-based provisioning, centralized monitoring, configuration management and administration, IT administrators can now automate the entire virtual machine lifecycle on open source platforms. ConVirt is an open source product backed by commercial, enterprise-class support, so you get the best of both worlds: a sophisticated, commercially-backed solution that is also highly cost effective.
OpenNebula Virtual Infrastructure Engine
OpenNebula doesn’t really count as a UI, as it’s currently only administered from the command line (though a Ruby-based web interface is planned as part of the GSoC). It does, however, promise to provide a mature platform on which to build a hybrid or private cloud, incorporating many of the high availability features that the datacaenter requires. From the website:
OpenNebula is an open source virtual infrastructure engine that enables the dynamic deployment and re-placement of virtualized services (groups of interconnected virtual machines) within and across sites. OpenNebula extends the benefits of virtualization platforms from a single physical resource to a pool of resources, decoupling the server not only from the physical infrastructure but also from the physical location.
OpenNebula can be primarily used as a virtualization tool to manage your virtual infrastructure in the data-center or cluster. This application is usually referred as private cloud, and with OpenNebula you can also dynamically scale it to multiple external clouds, so building a hybrid cloud. When combined with a Cloud interface, OpenNebula can be used as engine for public clouds, providing a scalable and dynamic management of the back-end infrastructure.
So there we have it: a varied selection of virtualisation management products to provide control over KVM, each with their own particular focus. Now all that’s required is the time to get on with the evaluation…