我想在网络接口上配置单个 SR-IOV VF。我使用下面列出的配置让它工作,但是如果我尝试在 PF 之后过早启动 VF,我会收到错误,因为 VF 尚未准备好。我可以创建一个 shell 脚本来循环并等待 VF 准备就绪,但这感觉有点像 hack。有没有办法以更规范的方式处理这种设备相互依赖性?
以下是我正在使用的 NetworkManager 配置:
SR-IOV PV:/etc/NetworkManager/system-connections/sriovPF.nmconnection
[connection]
id=sriovPF
uuid=da82bf14-4af6-4cf6-a091-00d5ea1e73bc
type=ethernet
interface-name=enp216s0f1
[ethernet]
[sriov]
total-vfs=64
vf.0=spoof-check=true vlans=100
[ipv4]
method=disabled
[ipv6]
addr-gen-mode=default
method=disabled
[proxy]
SR-IOV VF:/etc/NetworkManager/system-connections/sriovPFv0.nmconnection
[connection]
id=sriovPFv0
uuid=0f0876aa-0aae-44e3-8360-acfc3ba194ce
type=ethernet
autoconnect=false
interface-name=enp216s0f1v0
[ethernet]
[ipv4]
address1=192.168.2.10/30
method=manual
[ipv6]
addr-gen-mode=default
method=disabled
[proxy]
如果我尝试在 PF 之后过早启动 VF,则会出现以下错误:
$ nmcli con up sriovPF
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/14)
$ sudo nmcli con up sriovPFv0
Error: Connection activation failed: No suitable device found for this connection (device br0 not available because profile is not compatible with device (mismatching interface name)).
(wait 1 min)
$ nmcli con up sriovPFv0
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/16)
这是一个奇怪的错误,br0
与 SR-IOV 接口无关!如果我等一分钟再试,VF 接口就会出现,不会出现错误。
给出的任何解决方案都不需要使用 NetworkManager。我很乐意考虑使用其他东西来配置网络(例如 systemd-networkd)。
我这样解决了我的问题:
connection.autoconnect
设置为false
)NetworkManager-wait-online
不幸的是我不记得我从哪里得到了这个想法,否则我会归功于其来源!