On Fri, Mar 09, 2007 at 03:25:44AM +0000, Daniel P. Berrange wrote:
Thinking about later RPM upgrades I think we need to think about
whether it
will be possible to restart the libvirt_qemud while guests & networks are
running. There's a couple of issues:
- We do waitpid() to cleanup qemu & dnsmasq processes when we stop domains
& networks, or to detect when they crash. For the former, we could may
they daemons to avoid waitpid() cleanup, but we'd still need waitpid to
be able to detect shutdowns. There is also the issue of enumerating
running instances.
- We always try to re-create a bridge device at startup, even if it already
exists. Likewise we always try to add the IPtables rules & start dnsmasq.
We can easily detect if the bridge already exists. I think we can probably
double check iptables rulles too., The tricky one is figuring out whether
a dnsmasq instance is still running.
Dealing with theses not only helps planned restarts, but will also make it
possible start up the daemon again after a crash without having to kill off
all guests & networks manually. So I think it is worth investigating what
we can do to enable restarts. It might be worth waiting until we sort out
whether we'll merge libvirt_qemud with the generic libvirtd remote daemon
though so we don't have to do the work twice over.
In general I really prefer restartable daemons especially if the client can
auto restart them if they are gone missing, it makes users and sysadmins
life so much easier (and avoid the need to start the daemon at bootup, which
is yet another pain), though I understand this may be hard to achieve because
we have too much state.
With respect to the unification of the various daemons, this also sounds
like a really nice thing to have, but I must admit I'm a bit lost, I don't
have really a clear picture of all the requirements (and probably won't until
we finalize at least a first version of the networking support).
Daniel
--
Red Hat Virtualization group
http://redhat.com/virtualization/
Daniel Veillard | virtualization library
http://libvirt.org/
veillard(a)redhat.com | libxml GNOME XML XSLT toolkit
http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine
http://rpmfind.net/