2021-05-31 10:34:24
26点赞
90收藏
41评论
创作立场声明:所有内容均来自网络公开资料+自我研究,纯分享。如对你有帮助,请多多支持鼓励。 上篇说了unraid下开启SRIOV的方法。 不知道机油们是否顺利开启了? 今天我们把最后的部分补上。 主要是三部分。 第一、如何屏蔽虚拟设备(VF),让虚拟机可以调用虚拟设备。 第二、如何固定虚拟设备的MAC地址,避免每次开机MAC地址随机变动。 第三、补充注意点 不多毕毕,下面教程马上开始。 第一部分延续上一篇,在已经开启网卡SRIOV的情况下。 我们来到工具-系统信息看一下硬件信息。 可以看到我们的Virtual Function设备(VF),以及ID信息。 我这里的VF设备ID是8086:1515 用过直通的小伙伴们都知道,直通之前要先屏蔽设备。 我们再次修改MAIN-FLASH。 在UNRAID OS中加入下面语句。 vfio-pci.ids=8086:1515 注意这里ID大家不要照抄,根据自己实际情况填写! 保存以后我们重启unraid 然后到新建虚拟机界面 就可以看到可以选用许许多多的VF网卡啦 设备太多截图都截不完。 纯展示,大家实际使用没必要虚拟那么多。 只要给你的虚拟机分配需要的VF设备就可以啦。 第二部分我们要做的就是给你的VF网卡固定MAC地址。 因为不固定的话每次重启MAC地址都会随机变动。 还记得篇一中提醒大家记下的UNRAID网络接口设置信息吗。 我这里用作开启SRIOV示例的X540的01.00.0网口,对应的是eth5。 查看eth接口信息的命令是 ip link show dev 网络接口名称 所以我们输入以下命令查看eth5接口所有的连接信息。 ip link show dev eth5 可以看到最上面的是网口物理MAC地址,下面所有的VF虚拟网口MAC地址都是00:00:00:00:00:00。 我们要做的就是把VF虚拟网口的MAC手动指定,绑定好固定下来,虚拟机在使用这些虚拟网口的时候,MAC才不会变化。 其实绑定MAC地址的命令非常简单。 命令如下。 ip link set eth接口名 vf vf序号 mac MAC地址 示例执行 ip link set eth5 vf 0 mac 00:54:0b:00:00:00 这里意思就是配置eth5接口0号VF的MAC地址为00:54:0b:00:00:00 然后再用 ip link show dev eth* 命令来验证一下 可以看到VF0的MAC已经成功配置为 00:54:0b:00:00:00 如果想配置其他VF网口,只要把命令改成对应的参数就可以啦。 这里我演示一下配置前6个VF网口。 执行以下全部命令即可。 ip link set eth5 vf 0 mac 00:54:0b:00:00:00 ip link set eth5 vf 1 mac 00:54:0b:00:00:01 ip link set eth5 vf 2 mac 00:54:0b:00:00:02 ip link set eth5 vf 3 mac 00:54:0b:00:00:03 ip link set eth5 vf 4 mac 00:54:0b:00:00:04 ip link set eth5 vf 5 mac 00:54:0b:00:00:05 再验证一下。 配置成功,非常完美 。最后,我们只要把所有的MAC配置命令写进go文件,每次开机自动执行就可以啦! 老规矩 执行 nano /boot/config/go 添加命令 改好以后按 ctrl+X 然后键入y 再回车保存即可。 提醒一下。你给VF的MAC地址里,最好用你自己看得懂的办法,标记一下这些VF是哪个网口开启的。方便多VM的情况下区分。比如我上面的MAC里就有540,意思就是X540。 到这里整个unraid下的SR-IOV配置流程就结束了。 大家可以根据自己实际情况实际需求来进行具体配置。 第三部分后面说一下需要注意的地方。 开启了SR-IOV功能的网口,就不能用作物理直通了。 所以,有直通部分网口需求的朋友,只用部分网口开启SR-IOV即可。 而且在设备ID相同的情况下(同一张网卡所有网口的硬件ID都相同),不能直接用屏蔽设备ID的方法来开启直通。 想要实现部分网口直通,部分网口开启SR-IOV,要用下面的方法来。 在unraid6.9.1和unraid6.9.2下,来到设置-虚拟机管理器-打开右上角的高级视图。 PCIe ACS 覆盖 设置为 两者;VFIO 允许不安全的中断 设置为 是。 应用以后重启unraid。 再来到工具-系统设备 勾选上你需要直通的网口(未配置过SR-IOV的网口),再点击下方的“在引导时对VFIO选择了绑定”按钮,然后重启unraid即可。 重启之后就可以在虚拟机编辑界面选择你需要的任意网口了,带有Virtual Function的是VF虚拟网口,不带的就是物理网口。 这里还要提醒一点。 如果改变了物理网口直通配置,unraid会直接屏蔽或者放弃屏蔽对应网口。 而剩下的网口对应的eth数值也会改变! 所以这里要特别注意了。可能之前配置的绑定SR-IOV虚拟网口MAC地址的命令会失效,因为网口eth数值已经变了! 所以每次改变物理网口直通配置以后,都要去设置-网络设置里,检查网口对应的eth值。 对照之前的数值,可以看到网口eth值已经发生改变。 检查确认好以后,再根据当前网口对应的eth值,去改已经写入go文件的MAC绑定参数。 所以这里又延伸出一个知识点。 如果你已经规划好了网络结构,最好先配置好物理直通,再操作开启配置网卡SR-IOV功能。 这里贴一下我自己实际的配置,仅供参考。 我的情况 X540T2的第一个口用作SRIOV,开启了8个VF,第二个口用作直通。 I350T4的第一第二个口用作SRIOV,各自做了7个VF,第三口第四口用作直通。 大家自己举一反三就可以了。 以上就是教程的全部。 最后为了开启这个SR-IOV功能。 先是参考人生观大佬的教程,开启失败。 以为自己主板不支持。从8代U+z370mpro4,换成了主板有单独SR-IOV开关的十代设备。结果失败。 以为是网卡问题又买了好几张网卡。还是失败。 觉得是系统问题,又折腾了好久ESXI。发现ESXI6.0以后的版本都不支持1G网卡开启SR-IOV,只支持10G以上网卡开启。再次失败。 后来的后来,换到PVE,发现终于可以开启了!简直不要太高兴。 结果抱着试试的心态换回8代 +z370mpro4,发现居然也能开启! 这就是痛并快乐着吗? 最后参考PVE下的方法,配合自己的亿一点点奇思妙想。终于搞定unraid下开启SR-IOV。 前前后后耗时无数,钱也花了不少(还好硬件能卖)。 不管怎样,最后结果是好的,总算安全落地。 估计会有人问,这有啥意义? 我只想说:可以不用,不能没有。 最后的最后,希望大家都能顺利开启用上,完结撒花~! 参考资料(排名不分先后): 如何:在具有 1GB/10GB/40GB 网络接口卡 (NIC) 的 UNRAID 中使用 SR-IOV |
|