Proxmox VE SR-IOV 开启流量统计
默认配置下,网卡开启 SR-IOV 后需要将虚拟机的网卡类型改为 PCIe 直通,修改为直通后 Proxmox VE 无法正常读取统计信息。提供一个不太优雅的解决方法。
前提条件
需要使用到 VF Representors 接口(下文简称 Reps)。网卡必须支持并开启 SwitchDev 特性。
- mlx5 网卡开启 E-Switch 分载、SwitchDev 特性可以阅读这篇文章。
Reps 接口命名
Proxmox VE 9 及更新版本中,Reps 接口的系统默认命名规则是 PFNAMErVFID
如果使用老版本,Reps 接口命名规则由网卡驱动决定,以 NVIDIA/Mellanox 网卡为例,命名规则为 PFNAMEpfXvfY,X 为 PF 接口号,Y 为 VF 接口号。
修改前检查
SR-IOV 接口有网络活动时,宿主机上的 VF Representors 接口统计数据会正常更新。
1 | |
确认接口数据正常后即可修改 PVE 代码。
操作步骤
先找到 SR-IOV VF 对应的 Representor 接口。
修改
/usr/share/perl5/PVE/ProcFSTools.pm
找到read_proc_net_dev函数,大概位置在第 375 行。
在return前加入下面代码:
1 | |
TAP-DEV修改为tapXXXiY,XXX为 VMID,Y为网卡序号(任意非负整数,且不与已存在的序号重复)VF-REP-DEV修改为 Representor 接口名。
如果存在多个接口、多个 VM,则为每个接口、每个 VM 重复上面的步骤。
重启 pvestatd :
systemctl restart pvestatd
操作完成后即可看到 WebUI 正常显示流量统计:
关闭更新
此步骤是可选的。
系统更新可能会覆盖上述更改。
使用下面的命令阻止更新:
1 | |
使用下面的命令恢复更新:
1 | |