[Libguestfs] Notes on building libguestfs in a systemd-nspawn container
Daniel P. Berrange
berrange at redhat.com
Thu Jan 30 11:08:15 UTC 2014
On Thu, Jan 30, 2014 at 04:34:04PM +0530, Kashyap Chamarthy wrote:
> On 01/30/2014 03:58 PM, Richard W.M. Jones wrote:
> >>> - `make -k check` is still running as I write this, albeit
> >>> a bit slow.
> >>
> >> This just finished (in the container):
> >>
> >> [. . .]
> >> grep -v -E '^(examples|gnulib|perl/(blib|examples)|po-docs|tests)/' | \
> >> grep -v -E '/((guestfs|rc)_protocol\.c)$' | \
> >> LC_ALL=C sort > po/POTFILES
> >> cd .; \
> >> find builder mllib resize sparsify sysprep -name '*.ml' | \
> >> LC_ALL=C sort > po/POTFILES-ml
> >> make[1]: Leaving directory `/root/libguestfs'
> >> make: *** [check-recursive] Error 1
> >> GEN public-submodule-commit
> >> make: Target `check' not remade because of errors.
> >>
> >> real 474m53.630s
> >> user 325m54.254s
> >> sys 205m58.032s
> >>
> >> -bash-4.2# git log | head -1
> >> commit c841d08d7084db69e81614d54423686cf0566ad6
> >>
> >>
> >> Again, for comparison, `make -k check` on _host_:
> >>
> >> real 63m1.078s
> >> user 54m39.393s
> >> sys 12m8.130s
> >
> > Is KVM available in the container? I've never tried that actually ..
>
> No it isn't (as Dan noted in his next thread)
>
> =========
> -bash-4.2# file /dev/kvm
> /dev/kvm: ERROR: cannot open `/dev/kvm' (No such file or directory)
> =========
> -bash-4.2# virt-host-validate
> QEMU: Checking for hardware virtualization
> : PASS
> QEMU: Checking for device /dev/kvm
> : FAIL (Check that the 'kvm-intel' or 'kvm-amd' modules are loaded
> & the BIOS has enabled virtualization)
> QEMU: Checking for device /dev/vhost-net
> : WARN (Load the 'vhost_net' module to improve performance of
> virtio networking)
> QEMU: Checking for device /dev/net/tun
> : FAIL (Load the 'tun' module to enable networking for QEMU guests)
> LXC: Checking for Linux >= 2.6.26
> : PASS
> =========
>
> Despite reading from the `systemd-nspawn` man page:
>
> ". . .kernel modules may not be loaded from within the container."
>
> I purposefully tried from inside the container:
With container based virt there is only one kernel image, so any
modules you want must be loaded in the host. Libvirt "passthrough"
of char/block devices simply involves libvirt doing mknod in the
/dev tmpfs it sets up. The container itself is blocked from doing
any 'mknod' calls since that'd be a security risk. Hence you must
list any desired device nodes in the XML config.
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
More information about the Libguestfs
mailing list