libvirt - The virtualization API

libvirt is a toolkit to interact with the virtualization
capabilities of recent versions of Linux (and other OSes).

Most optional dependencies are autodetected and having the required
libs in place will build the respective features automatically.

The user and group can be specified at build time like this:
VIRTUSER=someuser VIRTGROUP=someuser ./libvirt.SlackBuild
(default is VIRTUSER=root VIRTGROUP=users)
You'll want to keep this in sync with what qemu uses
(it also defaults to these)

If you want to start the libvirt daemon at boot, add this
to /etc/rc.d/rc.local

  # Start libvirt:
  if [ -x /etc/rc.d/rc.libvirt ]; then
    /etc/rc.d/rc.libvirt start
  fi

and if you want it to stop at shutdown add this to
/etc/rc.d/rc.local_shutdown

  # Stop libvirt:
  if [ -x /etc/rc.d/rc.libvirt ]; then
    /etc/rc.d/rc.libvirt stop
  fi

The enclosed rc.libvirt script will do a 'managedsave' on all running
and paused guests when issuing 'rc.libvirt stop'. Please note that
this saves the RAM of each guest to the host system's disk (by default
under /var/lib/libvirt/qemu/save) - so make sure enough space is
available. If you prefer to perform a full shutdown on all running
guests instead, issue a 'rc.libvirt guests_shutdown' followed by
'rc.libvirt shutdown'.

By default 'rc.libvirt stop' and 'rc.libvirt guests_shutdown' will
wait a maximum of 5 minutes for all guests to shutdown, after which
any guests still running will be destroyed. Adjust this to a suitable
value for your system, as destroying a running guest carries a high
risk of data loss!

There is also a 'guests_reboot' for rebooting all running guests.

Have a look at the commented part of rc.libvirt for some gotchas.

Optional dependencies include avahi, xen, audit, glusterfs, numactl,
open-iscsi and libiscsi.

As of the 4.5.0 version, you may have to remove any previously
installed version of libvirt before this will build.

Note also that sometimes, in consequence of a major-version upgrade,
you might discover that the libvirt configuration is in an inconsistent
state (machine networking broken and so on) and when this happens and a
simple reboot won't solve you might want to consider starting from a
clean state. To do this:
- backup the existing vms files and their configurations too (with
  "virsh dumpxml $name > ${name}.xml", check all the *dumpxml commands
  available with "virsh help")
- remove libvirt
- delete all system directories (/var/lib/libvirt, /var/log/libvirt,
  /etc/libvirt)
- install the new libvirt package, logout and login again (might help)
  and start the daemon
- recreate your configurations (network and so on)
- reimport the vms xml backups (with "virsh define ${name}.xml")

also, for older vms you might have to "upgrade" the machine model
because newer versions of libvirt might have dropped support for the
older ones: if starting a vm you got, for example

  '/usr/bin/qemu-kvm' does not support machine type 'pc-i440fx-2.1'

just "virsh edit your_vm" and change the machine model to an higher
one, like pc-i440fx-8.1
