
Virtual Machine Management
==========================


current state
-------------

xenner has qemu-style command line options.  This allows to use
libvirts qemu driver to manage your domains.  There is a xml snippet
in libvirt.xml which shows the important entries to make it work.

Right now you have to edit the libvirt xml description manually.  Use
"virsh dumpxml" to dump the description to a file and "virsh define"
to reread it after editing.  There also is the vivm convinience script
for you.

Once this is working you can use the usual tools like virt-manager to
manage xenner domains.


known problems
--------------

 * The qemu driver doesn't support a serial console (yet), thus you
   are limited to the vnc console when using the libvirt tools.  Of
   course you can run /usr/lib{,64}/xen/bin/xenconsole directly for
   text console access.  virt-manager has no button for that though.

 * Don't try shutdown via libvirt (virsh shutdown or shutdown button
   in virt-manager).  The qemu driver will kill off xenner with
   SIGKILL without giving a chance to cleanup, which creates a mess
   with stale VM bits hanging around.  Fixed in libvirt cvs, no
   release (yet) with that fix in.

 * Functionality not yet supported by xenner (smp,
   save/restore/migration) doesn't work for obvious reasons ;)


long term plan
--------------

Some background information:  Starting with xen 3.2.0 upstream (or
3.1.0 + patches like in Fedora 8) qemu-dm is used to help managing pv
domains too.  Xen 3.2.0 state is:

 * pvfb is handled by qemu-dm.
 * console can be handled by either xenconsoled or emu-dm.

Patches (by Daniel P. Berrange <berrange@redhat.com>) exist which move
even more bits to qemu-dm:

 * move domain creation into qemu-dm
 * handle pygrub by qemu-dm (including the pygrub boot menu
   display over vnc).
 * move xenstore / device setup into qemu-dm, so you can start
   xen domains by just starting qemu-dm, without xend.

So qemu-dm will be the Xen guest management process libvirt is
interfacing to.

What this has to do with xenner?  Well, right now xenner starts a
qemu-dm process for pvfb handling.  The plan is to reverse this
dependency.  When running on Xen qemu-dm will just create Xen domains.
Otherwise it will start xenner to run the Xen guest using kvm.  So for
the user (and also for libvirt) there is no big difference between Xen
and xenner.  This also opens the option to merge xenner directly into
qemu-dm (or upstream qemu) some day without much hassle.  No code
(yet) for this though.
