[systemd-devel] Utility for persistent alternative driver binding

Charles (Chas) Williams 3chas3 at gmail.com
Tue Dec 8 06:46:13 PST 2015


 On Tue, 2015-12-08 at 14:21 +0000, Daniel P. Berrange wrote:
> On Tue, Dec 08, 2015 at 09:14:17AM -0500, Charles (Chas) Williams wrote:
> > On Tue, 2015-12-08 at 11:34 +0200, Panu Matilainen wrote:
> > > Hmm, got a pointer? I dont think PCI slots change between reboots 
> > > without physically swapping hardware, the "ethX-problem" comes from the 
> > > order of device discovery being unstable across boots, which is a 
> > > different issue and not relevant for this case.
> > 
> > With virtual machines the ordering of PCI devices isn't always the same.
> > This is especially true with OpenStack which regenerates the
> > configurations on the fly.  The only thing that seems to be consistent
> > is the MAC address.
> 
> The MAC address is not guaranteed to be unique of course - you can have
> multiple NICs with the same MAC provided they're connected to different
> subnets.

Typically not done but yes it can happen.  I was referring specifically
to the OpenStack case though where it causes the most trouble for me.

> For OpenStack we're working on a feature that allows the user booting
> an OpenStack instance to associate an arbitrary tag with each device
> they have on their VM. The info about the tags and the currently assigned
> device addresses is then exposed to the guest OS via the metadata service
> and/or config drive and/or firmware. There will be a utility that can read
> this metadata and then register tags against the corresponding devices in
> the udev database.
> 
> The idea is that people building OpenStack compatible cloud images can
> configure their image to look for the device in udev with the desired
> user "tag" string. That way they don't need to care about specific
> device addresses directly. More info on OpenStack plans is here:
> 
>   http://specs.openstack.org/openstack/nova-specs/specs/mitaka/approved/virt-device-role-tagging.html

That would be a huge step forward but I need this to work when someone
hotplugs an interface to a running image.  The config drive doesn't work
here since it wouldn't have the tag information.  The metadata service
might work (although I think cloud-init blackholes the metadata service
after boot).  Exposing this via the PCI device with some ACPI mechanism
would be nice.




More information about the systemd-devel mailing list