Libvirt is a layer providing a hypervisor agnostic management layer and api between the hypervisor and a management tool like virsh and virt-manager.

Virt-manager is a graphical tool to configure and manage storage, network and virtual machines.

Installation

These instructions assume that you have enough rights to install software. In this howto I am using the sudo mechanisme (Sabayon default: the user is a member of the wheel group).

Install qemu, libvirt and virt-manager:

# sudo equo install qemu libvirt virt-manager

Permissions

The kvm module exports a device called /dev/kvm.
By default the permissions on the device /dev/kvm are not enough to use KVM as a non-privileged user. You can correct this to change the group owner of this device to the group kvm.

# sudo chown root:kvm /dev/kvm
# sudo chmod 660 /dev/kvm

And make a user a member of this group:

# sudo gpasswd -a <user> kvm

Also qemu must be a member of the kvm group:

# gpasswd -a qemu kvm

This solution is not persistent across reboots, for that you have to create an udev rule: /etc/udev/rules.d/65-kvm.rules

KERNEL=="kvm", NAME="%k", GROUP="kvm", MODE="0660"

If you are using virt-manager as a normal user, you're still not able to access libvirt. You have to create a polkit rule to make this possible. Create a file /etc/polkit-1/rules.d/51-libvirt.rules

Getting started

Start the libvirtd daemon and add it to the default runlevel, so it will started at boot.

# sudo /etc/init.d/libvirtd start

# sudo rc-update add libvirtd default

It's not the purpose of this article to explain KVM and networking, but to getting started and provide networking to the virtual machine via NAT:

1) Start virt-manager for the first time. If there popups a question about installing the KVM packages: ignore it. A connection to the localhost will be made.

2) Go to the menu-item "Edit" and select "Connection Details"

3) Select the tab "Virtual Networks", click on the plus-sign.

4) Choose a name for the virtual network, accept the suggested IPv4 range or fill in another private range (http://www.ietf.org/rfc/rfc1918.txt) and enable DHCP. Connect to the physical network (the network of your physical host) by forwarding the virtual network traffic to the destination "Any physical device", mode: NAT.

It's also not the purpose of this artice to explain KVM and networking, but it's a good idea to have an shared library with ISO files. The best way to do this: