I’ve been giving myself a crash course in Xen recently. I’ve played with Xen in the past but it’s always annoyed me that the kernel for dom0 was super old (2.6.18). Debian has always been good with their support and the 2.6.26 kernel that ships with Lenny has worked well.
Now that Xen 4.0 is out and I’m getting ready to transition over to Squeeze, I wanted to go back and find where the upstream dom0 kernel was maintained. Turns out there’s a git tree hosted on kernel.org with a stable 2.6.32 and more bleeding edge kernels as well. Building both Xen 4 and the 18.104.22.168 kernel from git were pretty uneventful. I did however run into a problem getting xend to start.
There’s nothing worse than a program that fails without giving any good indication as to why.
xend failed with this error message in
Error: (111, 'Connection refused')
That’s it. Not helpful at all. I started fishing through an
strace but got lost in the output pretty quick. Luckily there was some help to be had in the #xen channel on freenode.
The folks on IRC told me it’s quite common for
xend to fail quietly like this if there’s a needed xen kernel module that isn’t loaded. The usual suspects are
xen-gntdev but it may be some other component that wasn’t compiled in. In my situation I had
xen-gntdev built in but
xen-evtchn was built as a module and hadn’t been loaded. A quick modprobe later and xend was up and running. I went one step further and recompiled this piece into the kernel directly.
Now I’m happily running Xen 4.0 with a 2.6.32 kernel on Debian Squeeze. Good times.