Undetermenistic network interfaces naming in the Ubuntu bootstrap
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mirantis OpenStack |
Fix Released
|
High
|
MOS Linux | ||
7.0.x |
Fix Released
|
High
|
Sergii Rizvan | ||
8.0.x |
Fix Released
|
High
|
MOS Linux |
Bug Description
Ubuntu 14.04 uses asynchronous device initialization (as well as Ubuntu bootstrap does). Therefore the naming of devices (in particular network interfaces) is not guaranteed to be persistent or stable.
For example, we have 2 NICs on the node. On the first boot, for the first of them "eth0" name assigned, and "eth1" for the second.
NIC1 <-> eth0
NIC2 <-> eth1
But if we turn this node off and boot it again, such mapping is not guaranteed and if NIC2 initializes prior to NIC1, it's possible to get:
NIC1 <-> eth1
NIC2 <-> eth0
It happens only on a first boot of the node. Then nailgun generates udev rules to make device mapping stable. So, it's not a problem to a deployed node. However the bootstrap nodes have no information (e.g. MAC addresses) to make a consistent "ethX" naming (bootstrap is assumed to discover that data).
Also, virtual nodes are not affected because virtual NICs have constant initialization time.
As for baremetal nodes, the user should check each node and reassign the networks (admin, data, management, etc) to the correct interfaces. It can be a problem for huge clusters (>50 nodes).
To solve the problem we propose to use "predictable" interface naming (http://
tags: | added: docs |
tags: | added: release-notes |
tags: | added: done |
tags: | removed: done release-notes |
tags: | added: done release-notes |
Changed in mos: | |
assignee: | Fuel Documentation Team (fuel-docs) → ologvinova (ologvinova) |
Changed in mos: | |
status: | In Progress → Fix Committed |
tags: |
added: release-notes-done removed: release-notes |
tags: | added: rn7.0 |
tags: | added: area-linux |
tags: | added: on-verification |
Ubuntu based bootstrap is an experimental feature in MOS 7.0. Moving the milestone to MOS 8.0