Dario Faggioli wrote:
Hi Jim, Everyone,
I'm having some issues when trying out libvirt-libxl driver on my
Fedora, bot on Fedora 18 and Fedorra rawhide (the former seems to be
running 0.10.2.3, the later 1.0.2).
Here's what happen:
[root@localhost ~]# systemctl status xend.service
xend.service - Xend - interface between hypervisor and some applications
Loaded: loaded (/usr/lib/systemd/system/xend.service; disabled)
Active: inactive (dead)
[root@localhost ~]# virt-install -l
http://fedora.mirror.constant.com/linux/releases/18/Fedora/x86_64/os/ --ram 1024 --disk
/dev/vms/F18_x64 --name F18_x64
Starting install...
Retrieving file .treeinfo... | 2.2 kB 00:00 !!!
Retrieving file vmlinuz... | 9.3 MB 00:06 !!!
Retrieving file initrd.img... | 53 MB 00:33 !!!
ERROR internal error libxenlight failed to create new domain 'F18_x64'
Domain installation does not appear to have been successful.
If it was, you can restart your domain by running:
virsh --connect xen:/// start F18_x64
otherwise, please restart your installation.
[root@localhost ~]# cat /var/log/libvirt/libxl/libxl.log
...
libxl: verbose: libxl_create.c:158:libxl__domain_build_info_setdefault: qemu-xen is
unavailable, use qemu-xen-traditional instead: No such file or directory
libxl: debug: libxl_create.c:1174:do_domain_create: ao 0x7f566c008d90: create: how=(nil)
callback=(nil) poller=0x7f566c009030
libxl: debug: libxl_device.c:229:libxl__device_disk_set_backend: Disk vdev=xvda
spec.backend=tap
libxl: debug: libxl_device.c:184:disk_try_backend: Disk vdev=xvda, backend tap unsuitable
because blktap not available
libxl: error: libxl_device.c:269:libxl__device_disk_set_backend: no suitable backend for
disk xvda
libxl: debug: libxl_event.c:1499:libxl__ao_complete: ao 0x7f566c008d90: complete, rc=-3
libxl: debug: libxl_create.c:1187:do_domain_create: ao 0x7f566c008d90: inprogress:
poller=0x7f566c009030, flags=ic
libxl: debug: libxl_event.c:1471:libxl__ao__destroy: ao 0x7f566c008d90: destroy
So, it looks like it tries to use blktap, even if I'm using an LVM
volume, and fails.
If not specified, the driver name defaults to 'tap' and driver type
defaults to 'raw'. From libxlMakeDisk() in
$libvirt-src/src/libxl/libxl_conf.c
if (l_disk->driverName) {
...
} else {
/* No driverName - default to raw/tap?? */
x_disk->format = LIBXL_DISK_FORMAT_RAW;
x_disk->backend = LIBXL_DISK_BACKEND_TAP;
}
I recall some discussion about the choice of these defaults, but can't
find anything in the xen or libvirt ml archives. We can adjust the
defaults (or defer to libxl?) if it makes sense. I took a quick peek at
newer libxl code (recall this was written against Xen 4.1 libxl) and
perhaps 'x_disk->backend = LIBXL_DISK_BACKEND_QDISK' would be a saner
default? Adding Ian to help with this question...
If I go for this:
[root@localhost ~]# virt-install -l
http://fedora.mirror.constant.com/linux/releases/18/Fedora/x86_64/os/ --ram 1024 --disk
/dev/vms/F18_x64,driver_name=phy --name F18_x64 --bridge virbr0
it works, but only because (or at least so it looks to me) I'm manually
providing ",driver_name=phy".
I don't think we should change the backend default to
LIBXL_DISK_BACKEND_PHY, so you would want to specify this anyhow.
Although I think it would work if the backend default was
LIBXL_DISK_BACKEND_QDISK right? :)
Also (as it could have been expected, I guess) there is no way I can
get
it to work with a file backed VHD.
Have you tried ',driver_name=tap,driver_type=vhd'? Or
',driver_name=tap2,driver_type=vhd' with blktap2.
Is all this supposed to happen?
I haven't had the chance to try out the code from git yet, do you think
it would make any difference?
No. The defaults haven't changed since the code was originally written
against Xen 4.1.
FYI, I've also opened this Fedora bugreport, about this very same
issue:
https://bugzilla.redhat.com/show_bug.cgi?id=912488
Ok, thanks for the bug reference.
Regards,
Jim