我正在尝试使用 Fuel 9.0 - Openstack Mitaka-9.0 创建一个 openstack 环境。Ubuntu 在所有节点上干净加载,然后 OpenStack 开始在所有节点上加载,但最终在控制器节点上出现以下错误。
2017-05-02 21:13:30 ERR 错误:参数“enx8cae4cfe75f2.101”错误:“name”太长 2017-05-02 21:13:30 ERR 命令‘ip link add link enx8cae4cfe75f2 name enx8cae4cfe75f2.101 type vlan id 101’失败,exit_code=255。
该问题与创建 vlan 链接时带有 vlan id 号的网络名称超过 16 个字符长度有关,因此失败。
原因:有 2 个节点和一个 Fuel 服务器。两个节点都启动并从 Fuel 服务器(通过 PXE)检索 Ubuntu 映像。然后使用 Fuel 仪表板创建一个 OS 环境,该环境查询网络中的任何节点并收集网络接口的逻辑名称以及所有硬件属性(内存、核心等)。
一旦创建了环境并选择部署,部署就会首先加载 ubuntu。此过程在两个节点上完成,然后在两个节点上加载 Openstack,这就是问题开始的地方。在大约 28% 的控制节点上,phyton 脚本想要创建一个 IP VLAN 链接
由于网络接口的逻辑名称已经是 14(由 Fuel Dashboard 在发现节点时确定),它会尝试添加 vlan ID,该 vlan ID 比 16 个字符的最大值多出 3 个字符。因此它失败了,openstack 堆栈部署也失败了。
我正在寻找解决方案 - 请帮忙
答案1
我的建议是找回ethX
名称。为此,您必须编辑 grub 文件。
$ sudo nano /etc/default/grub
查找GRUB_CMDLINE_LINUX
并添加以下内容net.ifnames=0 biosdevname=0
。
从:
GRUB_CMDLINE_LINUX=""
到:
GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"
使用以下命令生成一个新的 grub 文件。
$ sudo grub-mkconfig -o /boot/grub/grub.cfg
Generating grub configuration file ...
Warning: Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported.
Found linux image: /boot/vmlinuz-4.4.0-15-generic
Found initrd image: /boot/initrd.img-4.4.0-15-generic
Found memtest86+ image: /memtest86+.elf
Found memtest86+ image: /memtest86+.bin
done
此后,重新启动服务器。
一些解释
从 Ubuntu 15.10(Wily Werewolf)开始,systemd/udev
将自动为所有本地以太网、Wlan 和 Wwan 接口分配可预测、稳定的网络接口名称。
udev 现在原生支持以下不同的网络接口命名方案:
- 包含固件/BIOS 为板载设备提供的索引号的名称(例如:eno1)
- 包含固件/BIOS 的名称提供的 PCI Express 热插拔插槽索引号(例如:ens1)
- 包含硬件连接器的物理/地理位置的名称(例如:enp2s0)
- 包含接口 MAC 地址的名称(例如:enx78e7d1ea46da)
经典的、不可预测的内核原生命ethX
名(例如:eth0)- 已弃用
尝试一下也许对你有帮助。