
On Mon, Nov 05, 2012 at 04:02:28PM +0100, Peter Krempa wrote:
When the daemon is starting it autostarts all guests marked as autostartable. This is not an ideal solution for autostarting if there's a lot of domains configured so. After autostarting all right away the guests start competing for disk I/O and the boot is prolonged unnecessarily.
This patch adds a config option to disable autostarting to leave it on user scripts that may use mechanisms to reduce load of the host by limiting the number of guests started in parallel.
Unfortunately, there's no simple way we could do this in libvirt. The problem is how to detect that the guest has finished booting as it's mostly a black box for libvirt. There area few options:
1) Wait until I/O load of the guest drops. - This is insufficient on guests that do heavy I/O all the time.
2) Let the guest tell us. - Not every OS has the ability to have a guest agent.
3) Wait for certain amount of time. - Very limited amount of control on diverse guests.
With this functionality, the user may write his own script that load balances the autostart in a sane way with accordance to his infrastructure (Query agents, check I/O, use configurable timeouts) while stil being able to mark the domains as autostartable with all the benefits (virsh list --all --autostart). --- We could also add an example script based on parts of libvirt-guests to show how to use this. --- src/qemu/qemu.conf | 7 +++++++ src/qemu/qemu_conf.c | 4 ++++ src/qemu/qemu_conf.h | 2 ++ src/qemu/qemu_driver.c | 5 ++++- 4 files changed, 17 insertions(+), 1 deletion(-)
I sort wonder whether it is better to expose this as a command line argument rather than a config option. It would make life much easier for people who want to have autostart running most of the time, but occassionally want to start libvirtd without it. 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 :|