NAS相关 篇二:UNRAID下开启SRIOV——安全落地
创作立场声明:所有内容均来自网络公开资料+自我研究,纯分享。如对你有帮助,请多多支持鼓励。
上篇说了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
echo: write error: Cannot allocate memory
joker95275
校验提示文案
值友3957781744
校验提示文案
minwords
校验提示文案
真能不要再问
校验提示文案
灵KOYB
校验提示文案
Yorric
校验提示文案
真能不要再问
校验提示文案
真能不要再问
校验提示文案
Zemmy
和恩山这个老哥的类似。去看看
校验提示文案
值友2331354572
而且有的虚拟机如果不支持sr-iov驱动,是否可以在此网口上即开启sr-iov又开启纯虚拟网桥给虚拟机使用?期待大佬的回答,谢谢。
校验提示文案
moli39703
校验提示文案
骑乌龟追兔子
校验提示文案
张小可可
校验提示文案
值友1786883887
校验提示文案
值友1786883887
校验提示文案
张小可可
校验提示文案
骑乌龟追兔子
校验提示文案
moli39703
校验提示文案
值友2331354572
而且有的虚拟机如果不支持sr-iov驱动,是否可以在此网口上即开启sr-iov又开启纯虚拟网桥给虚拟机使用?期待大佬的回答,谢谢。
校验提示文案
Zemmy
和恩山这个老哥的类似。去看看
校验提示文案
真能不要再问
校验提示文案
真能不要再问
校验提示文案
真能不要再问
校验提示文案
Yorric
校验提示文案
minwords
校验提示文案
值友3957781744
校验提示文案
灵KOYB
校验提示文案
joker95275
校验提示文案