Running KVM on Ubuntu 9.10 presents unique challenges since it's no longer receiving security updates. However, many production systems still rely on this setup. The key requirements are:
- Web-based interface accessible remotely
- Lightweight footprint to coexist with other services
- Compatibility with legacy libvirt versions
- No dedicated OS installation required
After extensive testing, here are the most viable options:
1. WebVirtMgr (Recommended Solution)
This Python/Django-based manager offers the best balance of features and compatibility:
# Installation steps for Ubuntu 9.10:
sudo apt-get install git python-pip python-libvirt python-libxml2 \\
nginx supervisor
git clone git://github.com/retspen/webvirtmgr.git
cd webvirtmgr
sudo pip install -r requirements.txt
# Configuration
python manage.py syncdb
python manage.py collectstatic
sudo cp conf/supervisor/webvirtmgr.conf /etc/supervisor/conf.d
sudo service supervisor restart
2. Kimchi (Alternative for Modern Systems)
While primarily designed for newer systems, Kimchi can work with backported packages:
# Requires backported libvirt and other dependencies
wget https://kimchi-project.github.io/kimchi/ubuntu/kimchi-archive.key
sudo apt-key add kimchi-archive.key
sudo apt-get update
sudo apt-get install kimchi
When setting up web-based KVM managers, watch for these authentication issues:
# Edit /etc/libvirt/libvirtd.conf
auth_unix_ro = "none"
auth_unix_rw = "none"
# In /etc/libvirt/qemu.conf
user = "root"
group = "root"
For optimal performance on older hardware:
- Limit console refresh rates to 1-2 FPS
- Disable unnecessary monitoring features
- Use SPICE protocol instead of VNC where possible
While these solutions work for Ubuntu 9.10, consider upgrading to a supported LTS release. The configuration files and VM images can typically be migrated without modification.
When managing KVM virtual machines on Ubuntu servers, CLI tools like virsh
and GUI tools like virt-manager
work well for local administration. However, for remote server management, a web interface offers better accessibility without requiring X11 forwarding or dedicated client software.
After testing several options from the official KVM tools list, here are the most viable solutions:
1. WebVirtMgr
This Python/Django-based solution is lightweight and integrates well with existing libvirt setups:
sudo apt-get install git python-libvirt python-django git clone git://github.com/retspen/webvirtmgr.git cd webvirtmgr ./manage.py syncdb ./manage.py collectstatic
Configuration example for local_settings.py
:
ALLOWED_HOSTS = ['your-server-ip'] DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'webvirtmgr.sqlite3'), } }
2. Kimchi
Developed by the KVM team, this offers a modern interface but requires newer dependencies:
wget https://github.com/kimchi-project/kimchi/releases/download/1.0.0/kimchi-1.0.0.tar.gz tar -xvf kimchi-1.0.0.tar.gz cd kimchi-1.0.0 ./configure --prefix=/usr make sudo make install
For Ubuntu 9.10 (Karmic Koala), you'll need to handle these dependencies first:
sudo apt-get install python-software-properties sudo add-apt-repository ppa:ubuntu-virt/ppa sudo apt-get update sudo apt-get install qemu-kvm libvirt-bin bridge-utils
After installing your chosen web interface, ensure proper permissions:
sudo usermod -a -G libvirt www-data # For Apache sudo chmod -R 775 /var/run/libvirt/libvirt-sock
If VMs aren't appearing in the web interface:
- Verify libvirt daemon is running:
sudo service libvirt-bin status
- Check SELinux/apparmor permissions
- Ensure the web server user has proper libvirt group membership
For mixed environments running Apache/PostgreSQL alongside KVM, consider resource allocation:
<memory unit='KiB'>524288</memory> <currentMemory unit='KiB'>262144</currentMemory> <vcpu placement='static'>1</vcpu>