Nick Gilmour
2017-Oct-02 21:42 UTC
[libvirt-users] error: internal error: missing backend for pool type 11 (zfs)
Hi all, I'm trying to setup virt-manager with ZFS als storage on my Arch box. I have created a pool named virt-pool and tried to use it as storage. First with virt-manager and then in the terminal with virsh but I'm always getting the following errors: *virsh # pool-define-as --name zfsvirtpool --source-name virt-pool --type zfserror: Failed to define pool zfsvirtpoolerror: internal error: missing backend for pool type 11 (zfs)* But ZFS seems to be working fine: # zpool status pool: virt-pool state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM virt-pool ONLINE 0 0 0 x ONLINE 0 0 0 errors: No known data errors libvirt and VMM also. These are the installed versions: Virtual Machine Manager v.1.4.3 virsh v.3.7.0 libvirtd (libvirt) 3.7.0 I have found that there was a bug last year which is supposed to be fixed: *https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=827245 <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=827245>* So why I'm getting this error. Is something wrong with my setup? Regards, Nick -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://listman.redhat.com/archives/libvirt-users/attachments/20171002/ec62aa48/attachment.htm>
Michal Privoznik
2017-Oct-03 06:44 UTC
[libvirt-users] error: internal error: missing backend for pool type 11 (zfs)
On 10/02/2017 11:42 PM, Nick Gilmour wrote:> Hi all, > > I'm trying to setup virt-manager with ZFS als storage on my Arch box. I > have created a pool named virt-pool and tried to use it as storage. First > with virt-manager and then in the terminal with virsh but I'm always > getting the following errors: > > > > *virsh # pool-define-as --name zfsvirtpool --source-name virt-pool --type > zfserror: Failed to define pool zfsvirtpoolerror: internal error: missing > backend for pool type 11 (zfs)*Your libvirt was built without support for ZFS. You need to contact your distribution manufacturer and ask them to enable it. Or build libvirt on your own. However, as I am writing these lines I realized two things: 1) there's no API to query loaded drivers/storage backends. 2) storage backends are static. While we have libvirt drivers in separate modules (.so files) and load them at start up, it's not the same story with storage driver backends. These are hardcoded into the storage driver. Might be worth it to have them dynamically loadable too. Michal
Nick Gilmour
2017-Oct-03 13:48 UTC
Re: [libvirt-users] error: internal error: missing backend for pool type 11 (zfs)
@Michal: Thanks for your reply! Indeed I have found a package in the AUR (libvirt-zfs) and only had to change to the current version and add zfs-utils as dependency in the PKGBUILD. Now I don't get the previous error anymore but I still cannot setup a VM because I constantly get errors due to wrong permissions. I have tried to change the permissions in: - /etc/libvirt/qemu.conf - /virt-pool/vmm - /dev/zvol/virt-pool also: # zfs allow <user> create,destroy,mount virt-pool/vmm didn't help. What are the correct permissions? Which user and group? Nick On Tue, Oct 3, 2017 at 8:44 AM, Michal Privoznik <mprivozn@redhat.com> wrote:> On 10/02/2017 11:42 PM, Nick Gilmour wrote: > > Hi all, > > > > I'm trying to setup virt-manager with ZFS als storage on my Arch box. I > > have created a pool named virt-pool and tried to use it as storage. First > > with virt-manager and then in the terminal with virsh but I'm always > > getting the following errors: > > > > > > > > *virsh # pool-define-as --name zfsvirtpool --source-name virt-pool --type > > zfserror: Failed to define pool zfsvirtpoolerror: internal error: missing > > backend for pool type 11 (zfs)* > > Your libvirt was built without support for ZFS. You need to contact your > distribution manufacturer and ask them to enable it. Or build libvirt on > your own. > > However, as I am writing these lines I realized two things: > > 1) there's no API to query loaded drivers/storage backends. > > 2) storage backends are static. While we have libvirt drivers in > separate modules (.so files) and load them at start up, it's not the > same story with storage driver backends. These are hardcoded into the > storage driver. Might be worth it to have them dynamically loadable too. > > Michal >
Peter Krempa
2017-Oct-04 14:58 UTC
Re: [libvirt-users] error: internal error: missing backend for pool type 11 (zfs)
On Tue, Oct 03, 2017 at 08:44:10 +0200, Michal Privoznik wrote:> On 10/02/2017 11:42 PM, Nick Gilmour wrote:[...]> > 2) storage backends are static. While we have libvirt drivers in > separate modules (.so files) and load them at start up, it's not the > same story with storage driver backends. These are hardcoded into the > storage driver. Might be worth it to have them dynamically loadable too.This was changed some time ago. Backends are loadable now: src/.libs/libvirt_storage_backend_disk.so src/.libs/libvirt_storage_backend_fs.so src/.libs/libvirt_storage_backend_gluster.so src/.libs/libvirt_storage_backend_iscsi.so src/.libs/libvirt_storage_backend_logical.so src/.libs/libvirt_storage_backend_mpath.so src/.libs/libvirt_storage_backend_rbd.so src/.libs/libvirt_storage_backend_scsi.so src/.libs/libvirt_storage_backend_sheepdog.so src/.libs/libvirt_storage_backend_vstorage.so src/.libs/libvirt_storage_backend_zfs.so Similarly to driver backends they are loaded at start of libvirtd.