[openstack-dev] Blueprint to change (expand) traditional Ethernet interface naming schema in Fuel

Steven Hardy shardy at redhat.com
Thu Oct 8 10:44:34 UTC 2015


On Thu, Oct 08, 2015 at 12:46:53PM +0300, Albert Syriy wrote:
>    Hello,A 
>    I would like to pay your attention to the changing interface naming
>    schema, which is proposed to be implemented in FuelA [1].A In brief,
>    Ethernet network interfaces may not be named as ethX, and there is a
>    reported bug about itA [2]
>    There are a lot of reasons to switch to the new naming schema, not only
>    because it has been used in CentOS 7 (and probably will be used in next
>    Ubuntu LTS), but becauseA new naming schema gave more predictable
>    interface namesA [3]. There is a reported bug related to the topicA [4]
>    I suspect, that changing interface naming schema may impact to the current
>    Fuel code, manifests and tests, because hard-coded Ethernet interface
>    names (like eth* ) should be removed from the code.A 
>    Any comment on the blueprint?
>    [1]A https://blueprints.launchpad.net/fuel/+spec/new-network-interfaces-naming-schema
>    [2]A https://bugs.launchpad.net/fuel/+bug/1494223
>    [3]A http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/
>    [4]A https://bugs.launchpad.net/mos/+bug/1487044

You might be interested to look at the os-net-config tool - we faced this
exact same issue with TripleO, and solved it via os-net-config, which
provides abstractions for network configuration, including mapping device
aliases (e.g "nic1") to real NIC names (e.g "em1" or whatever).

https://github.com/openstack/os-net-config

Although it was developed by TripleO folks, it's a standalone tool and
there's no reason why it can't be consumed by any other deployment
solution.

Here's some examples of how it works:

https://github.com/openstack/os-net-config/blob/master/etc/os-net-config/samples/interface.yaml

https://github.com/openstack/os-net-config/blob/master/etc/os-net-config/samples/bond_mapped.yaml

https://github.com/openstack/os-net-config/blob/master/etc/os-net-config/samples/mapping.yaml

Basically the "name" of the interface can either be the biosdevname of an
actual NIC, or you can use "nic1" etc, and os-net-config uses a sorted list
of the system names.

If you require more control than that, and/or you want to avoid the risk
that the mapping changes (e.g if the link goes down, because atm it looks
only for link-up devices), you can specify an explicit mapping by either
device name or MAC address:

https://github.com/openstack/os-net-config/blob/master/etc/os-net-config/samples/mapping.yaml

Personally I think it'd be great to see more collaboration on these sorts
of common requirements, vs reinventing different solutions to the same
problems in the various deployment orientated projects :)

Steve



More information about the OpenStack-dev mailing list