Lucid libvirt

Lucid does not seem to work well with libvirt/kvm, there are several bugs that seem to be fixed in Maverick but not in Lucid.

From syslog:

error : qemuSetupCgroup:1955 : Unable to create cgroup for DOMAIN: No such file or directory
error : qemuRemoveCgroup:2045 : internal error Unable to find cgroup for DOMAIN#012

Re: [libvirt] FYI, “Unable to create cgroup for …”

This is a bug in systemd. It periodically scans all mounted cgroups
and deletes any directories which don’t contain any attached processes.
Needless to say this breaks libvirt, and possibly other apps, which
don’t expect 3rd parties to be deleting their directories.

https://bugzilla.redhat.com/show_bug.cgi?id=678555

Best solution for this that I’ve found on lucid is: Bug 696218 – Unable to create cgroup: No such file or directory

I was able to solve it by modifying the configuration in the file
/etc/libvirt/qemu.conf:

 cgroup_controllers = [ ]

setgid, setuid needed by /etc/apparmor.d/abstractions/libvirt-qemu

=== modified file 'apparmor.d/abstractions/libvirt-qemu'
--- apparmor.d/abstractions/libvirt-qemu 2010-04-30 15:33:20 +0000
+++ apparmor.d/abstractions/libvirt-qemu 2010-05-12 17:26:56 +0000
@@ -8,6 +8,8 @@
   capability dac_override,
   capability dac_read_search,
   capability chown,
+ capability setgid,
+ capability setuid,

Libvirt/kvm permissions/ownership issue on upgrade from Karmic to Lucid and error: operation failed: failed to retrieve chardev info in qemu with ‘indev’

libvirtError: internal error unable to start guest: libvir: QEMU
error : cannot set ownership

or

 error: operation failed: failed to retrieve chardev info in qemu with 'indev'

Add the following to /etc/libvirt/qemu.conf:

# The user ID for QEMU processes run by the system instance
#user = "libvirt-qemu"
user = "root"

# The group ID for QEMU processes run by the system instance
group = "kvm"

map serial port throws “chardev: opening backend “tty” failed”

There seems to be a problem with the apparmor profile of libvirt (see bug #54579). After adding the line to /etc/apparmor.d/abstractions/libvirt-qemu and reloading the profile it worked for me.

/dev/ttyS* rw,

Few other links:

Comments off

Random MAC address for libvirt

Snippet for generating a random MAC address. Useful if adding interfaces to a libvirt xml define file.

MACADDR="52:54:$(dd if=/dev/urandom count=1 2>/dev/null | md5sum | sed 's/^\(..\)\(..\)\(..\)\(..\).*$/\1:\2:\3:\4/')";
echo $MACADDR
echo "
<interface type='bridge'>
<mac address='$MACADDR'/>
<source bridge='br233'/>
<model type='virtio'/>
</interface>
"

Comments (1)

kvm vs qemu-kvm vs kvm-kmod

Ubuntu recently change their package names for kvm.  This comment posted on qemu-0.11.0 Released provides an explanation:

qemu-kvm includes features and fixes from upstream qemu and so takes its naming scheme from upstream qemu. You can think of it as qemu optimized for kvm. Note too that qemu-kvm does not include the kernel module but only the userspace and considered to be stable.

kvm-xx on the other hand is the development branch of kvm and not considered to be stable. It’s naming scheme is arbitrary and it also takes features from upstream qemu.

kvm-kmod is different to kvm-xx. You can think of kvm-kmod as a subset of the kvm-xx. KVM-xx = userspace + kernel where kvm-kmod is the kernel part of it and qemu-kvm is the userspace part (the guest process itself). You can apply the kvm-kmod to any distro version or linux version.. it’s just the kernel driver. However, without the userspace part, you can’t do much with it.

Comments off

kvm disk performance with different backends

Here  some results from testing I did in August 2009 on  KVM with the three different disk image drivers. First a single disk system running Ubuntu x64 9.04:

Read the rest of this entry »

Comments off

vmbuilder, virtio and fstab

nic@vm-base:~$ sudo blkid /dev/vda2
/dev/vda2: UUID=”0c75b2dd-6c6f-4729-b041-0d95475dc171″ TYPE=”swap”

If you install a vm with vmbuilder without virtio the swap section of /etc/fstab will use /dev/sda2 instead of /dev/vda2. You can use blkid

nic@vm-base:~$ sudo blkid
/dev/vda1: UUID="bac299c4-c545-46ca-aed3-26da4a56f6d7" TYPE="ext3"
/dev/vda2: TYPE="swap" UUID="0c75b2dd-6c6f-4729-b041-0d95475dc171"
/dev/vdb: UUID="jIkLcQ-zXUo-KIWR-zvmm-cpKP-9PpT-eE9RY3" TYPE="lvm2pv"
and then add this UUID to fstab:
nic@vm-base:~$ cat /etc/fstab
# /etc/fstab: static file system information.
# <file system>                                 <mount point>   <type>  <options>       <dump>  <pass>
proc                                            /proc           proc    defaults        0       0
/dev/sda1                                       /               ext3    defaults        0       0
UUID="0c75b2dd-6c6f-4729-b041-0d95475dc171"     swap            swap    defaults        0       0

in order to get swap working with different driver types.

Comments off

Running KVM

I’ve started running KVM recently and I’ll post a review at some point. I’m finding it very flexible and much much easier to use that Xen.

There are still a few questions regarding file caches and disk images. In general I’m happy that it’s ready for production.

Comments off

Redhat and KVM

Redhat has acquired Qumranet the developers of KVM. Will be interesting to see how this plays out in the Linux virtualisation world.

I haven’t tried KVM yet as I’ve been too busy and Xen is more mature – but many of the accounts I’ve read seem to indicate that for Linux its performance is very good maybe better in some cases than Xen. Management is another issue, but that is just a matter of time and development enegry.

From lwn.

Comments off