[PATCH 00/10] Remove the need for vmchannel
by Richard W.M. Jones
This set of 10 patches removes the need for any vmchannel implementation,
although we can still choose to use vmchannel if we want.
In this so-called "null vmchannel" configuration, the appliance
connects directly to a port on the library. The exact method is
described in patch 9/10.
This method still requires SLIRP (user mode networking) so it is
not a panacea, because recent versions of qemu allow SLIRP to be
removed. We therefore need to continue along the path of exploring
alternate vmchannel implementations.
[PATCH 01/10] Rearrange qemu command line order (no functional change).
[PATCH 02/10] Combine temporary buffers.
- General code cleanups.
[PATCH 03/10] Remove guestfs_wait_ready (turn it into a no-op).
- guestfs_wait_ready is no longer helpful. Since vmchannel and
null vmchannel are fundamentally different, we need to remove
the split between launch and wait_ready and make launch into a
single large function that can handle both cases.
[PATCH 04/10] Remove unnecessary extra space from qemu command line.
[PATCH 05/10] Make GUESTFWD_PORT into a string.
[PATCH 06/10] Rearrange and tidy up code in guestfsd.c
- More code cleanups.
[PATCH 07/10] Flexible guestfs_vmchannel parameter for future appliances.
- Add guestfs_vmchannel=(tcp:<ip>:<port>|...) parameter to the
appliance, and make it backwards compatible with older library
version.
[PATCH 08/10] configure.ac: Check for <netinet/in.h> and <arpa/inet.h>
[PATCH 09/10] Implement "null vmchannel" - no vmchannel needed!
[PATCH 10/10] Update documentation of qemu / vmchannel.
- The implementation of null vmchannel.
15 years, 3 months
[PATCH DISCUSSION ONLY] Enable alternate vmchannel method (non-upstream virtio-console).
by Richard W.M. Jones
This patch is for discussion only. The multiport virtio-console is
not accepted upstream, and in any case is currently being rewritten
for the nth time.
Getting a test environment to test this out is also non-trivial. It
look me about a day.
You need to compile the alternate qemu (see URL in the patch +
attached qemu patch on top of this).
You also need to compile the alternate kernel - NOTE: only linux-next
kernel given in the URL in the patch will work, earlier kernels will
definitely *not* work. You need to create an RPM of this and then
build a custom appliance with this kernel. NOTE: Do not use supermin!
Then you can test it with a qemu wrapper, like this:
LIBGUESTFS_QEMU=~/d/vs-qemu-kvm/qemu.wrapper \
libtool --mode=execute \
./fish/guestfish -v alloc /tmp/test.img 10M : run : debug ll /
(or if you are more adventurous, try running 'make check').
Multiport virtio-console fails on my local machine if the host is
under moderate load. I'm currently working on a smaller test case to
try to reproduce this more easily.
Rich.
--
Richard Jones, Emerging Technologies, Red Hat http://et.redhat.com/~rjones
virt-p2v converts physical machines to virtual machines. Boot with a
live CD or over the network (PXE) and turn machines into Xen guests.
http://et.redhat.com/~rjones/virt-p2v
15 years, 3 months