我使用引导选项biosdevname=1 net.ifnames=1
以获得一致、可预测的设备名称。我开始注意到一个问题,在某些情况下,网络设备名称不一致。例如,如果我进入 dracut 调试 shell 并查看 rdsosreport.txt 的输出,我会看到:
+ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: p3p1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether a8:b4:56:50:97:08 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether a8:b4:56:50:97:09 brd ff:ff:ff:ff:ff:ff
请注意,混合了一致 (p3p1) 和传统风格 (eth1) 命名。但是,如果我查看 dracut 调试 shell 中的接口,我会看到:
initqueue:/run/initramfs# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: p3p1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether a8:b4:56:50:97:08 brd ff:ff:ff:ff:ff:ff
3: p3p2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether a8:b4:56:50:97:09 brd ff:ff:ff:ff:ff:ff
p3p1/p3p2 是正确的预期名称。出于某种原因,在 initrd 序列的早期,它们以混合格式出现。我的假设是这里正在进行某种比赛,并且给了更多时间,它(udev?)进入正确的状态,但我不确定它到底在哪里。不幸的是,这给我们的一些自动化服务器构建带来了问题,因为服务器在(安装后)首次启动之后出现,并试图eth1
在真正的接口名称为p3p2
.
我一直在挖掘 dracut 模块,试图找出问题所在,但还不能最终确定,所以寻找建议。
此外,这种行为并非一直发生。相同的服务器,启动相同的映像有时可以正常工作,而有时会出现这种混合命名行为。这也告诉我这是某种比赛——有时比赛赢了,有时输了。