I've been using VirtualBox for a while on my slackware box. It's been working ok but I recently read a couple of blogs/articles recommending KVM. They said that KVM is rapidly becoming the de facto standard for open source visualization. Interesting. So, I gave a shot with qemu-kvm with libvirt (for GUI).
The information below is the result of my researches in the Internet and of my experiences. It is solely used for my purpose and may not be suitable for others.
- libvirt allows management of different virtualization solutions such as KVM and Xen through a common (programming and user) interface.
- A graphical virtual machine manager
- KVM (Kernel Virtual Machine)
- KVM provides full virtualisation and can run unmodified Linux or Windows images, but it requires CPU virtualisation extensions (Intel VT or AMD-V).
- Qemu functioning as a userspace, software-only emulation package. It can be used standalone (that is, it does not require a special kernel module, or CPU virtualisation extensions, or a hypervisor layer) and is capable of running unmodified operating system images.
The CPU needs to support virtualization in order to take advantage of qemu-kvm. To check, execute below command:
$ egrep -c '(vmx|svm)' /proc/cpuinfo
If the CPU supports virtualization, you should get a non-zero value.
Or, as Daniel Berrange suggested, virt-host-validate to validate host virtualization setup:
# virt-host-validate qemu
QEMU: Checking for hardware virtualization: PASS
QEMU: Checking for device /dev/kvm : PASS
QEMU: Checking for device /dev/whost-net : PASS
QEMU: Checking for device /dev/net/tun : PASS
Installation and Post-Configurations:
Install qemu-kvm, libvirt, virt-manager and their dependencies from SlackBuilds.org.
There are a few notes for post-configuration:
- Configure libvirt for user group and permission:
Create a group called libvirt and assign a regular user to it. Then, uncomment unix_sock_group and unix_sock_rw_perms from /etc/libvirt/libvirtd.conf
# groupadd libvirt # gpasswd -a USER libvirt # vim /etc/libvirt/libvirt.conf ----------------------------------------- unix_sock_group = "libvirt" unix_sock_ro_perms = "0770" unix_sock_rw_perms = "0770"
- Default user group for kvm:
The qemu-kvm SlackBuild patches the installed udev rules so that you no longer are required to use the system group kvm as the default. The users group is set as the default
- Start the libvirt daemon at boot:
To start the ibvirt daemon at boot, add a following piece of code to /etc/rc.d/rc.local
# vim /etc/rc.d/rc.local ---------------------------------------- # Start libvirt: if [ -x /etc/rc.d/rc.libvirt ]; then /etc/rc.d/rc.libvirt start fi
Now Virtual Machine Manager (VMM) can be executed via: