[libvirt] [PATCH v3 00/48] Split the libvirtd daemon into per-driver daemons

Daniel P. Berrangé berrange at redhat.com
Tue Jul 30 09:38:14 UTC 2019


On Tue, Jul 30, 2019 at 11:05:25AM +0200, Christophe de Dinechin wrote:
> 
> Daniel P. Berrangé writes:
> 
> > This is what all the driver refactoring I've done has been about
> > enabling.
> >
> > We gain new daemons for each driver, for the primary virt drivers:
> >
> >   virtlibxld
> 
> virtxend?
> 
> >   virtlxcd
> >   virtqemud
> >   virtvboxd
> >   virtvzd
> >
> > And again for the secondary drivers
> >
> >   virtinterfaced
> >   virtnetworkd
> >   virtnodedevd
> >   virtnwfilterd
> >   virtsecretd
> >   virtstoraged
> >
> > Finally to support IP connectivity, and also the legacy lbivirtd UNIX
> > domain socket (for the old libvirt remote driver SSH tunnelling):
> >
> >   virtproxyd
> >
> > The the sake of facilitating upgrades, the existing libvirtd still
> > exists and works the same way it always has.
> >
> > You either run libvirtd, or you run the per-driver daemons, never both.
> 
> What happens if you run both?
> (I'll try to figure out by reviewing the rest of the code and/or testing)

The drivers acquire an exclusive lock, causing the 2nd daemon to fail
to startup

$ ./src/libvirtd &

$ ./src/virtqemud 
2019-07-30 09:36:34.339+0000: 22809: info : libvirt version: 5.6.0
2019-07-30 09:36:34.339+0000: 22809: info : hostname: dhcp-16-132.lcy.redhat.com
2019-07-30 09:36:34.339+0000: 22809: error : virPidFileAcquirePath:376 : Failed to acquire pid file '/run/user/501/libvirt/qemu/run/driver.pid': Resource temporarily unavailable
2019-07-30 09:36:34.339+0000: 22809: error : virStateInitialize:688 : Initialisation of QEMU state driver failed: Failed to acquire pid file '/run/user/501/libvirt/qemu/run/driver.pid': Resource temporarily unavailable
2019-07-30 09:36:34.339+0000: 22809: error : daemonRunStateInit:821 : Driver state initialisation failed


The same works the other way around too

$ ./src/virtqemud &

$ ./src/libvirtd
2019-07-30 09:37:45.398+0000: 23109: info : libvirt version: 5.6.0
2019-07-30 09:37:45.398+0000: 23109: info : hostname: dhcp-16-132.lcy.redhat.com
2019-07-30 09:37:45.398+0000: 23109: error : virPidFileAcquirePath:376 : Failed to acquire pid file '/run/user/501/libvirt/qemu/run/driver.pid': Resource temporarily unavailable
2019-07-30 09:37:45.398+0000: 23109: error : virStateInitialize:688 : Initialisation of QEMU state driver failed: Failed to acquire pid file '/run/user/501/libvirt/qemu/run/driver.pid': Resource temporarily unavailable
2019-07-30 09:37:45.398+0000: 23109: error : daemonRunStateInit:821 : Driver state initialisation failed



the systemd unit files also have Conflicts rules which should prevent
even getting that far


Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|




More information about the libvir-list mailing list