Well it’s taken most of the day, but it’s finally done. Dodgy internet connection meant that I couldn’t upgrade as much as I wanted to as early as I wanted to and slowed me down somewhat. I’ve also upgraded everything from Debian Etch to Debian Lenny (partly to make it easier to get the paravirtualised kernel).
The biggest pain was that I used raw logical volumes mounted as /dev/hda1 under Xen (dunno why, it was the “done thing” back then). Since under KVM I wanted to boot them from the raw disk, I had to boot (using qemu/kvm) each box under a rescue disk and transfer everything from this fake partition to a _real_ partition on a new virtual disk (I used qcow2 images rather than LVM this time).
Still, overall it went very smoothly, most of the time was waiting for things to complete.
I’m now very happy – the server is now running 2.6.26 rather than 2.6.18 which Xen required. Xen has served me very well (despite horrific problems trying to debug guest VM boot issues from time to time), however the fact that several years later and it still isn’t in the mainline kernel (for the host kernel) has been its death knell.