介绍
目前版本默认没有开启iommu分组,体现在一张多网口网卡不能只直通一个网口
SR-IOV 技术是一种基于硬件的虚拟化解决方案,可提高性能和可伸缩性。SR-IOV 标准允许在虚拟机之间高效共享 PCIe(Peripheral Component Interconnect Express,快速外设组件互连)设备,并且它是在硬件中实现的,可以获得能够与本机性能媲美的 I/O 性能
下面就教大家如何开启iommu分组和开启网卡的SR-IOV
iommu开启
用ssh工具链接NAS
nano /usr/share/grub/default/grub
在GRUB_CMDLINE_LINUX_DEFAULT="quiet"
内加入intel_iommu=on
iommu=pt
pcie_acs_override=downstream
按Ctrl +X 退出,Y 保存
最终为
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt pcie_acs_override=downstream"
如果是AMD的CPU,那就是
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt pcie_acs_override=downstream"
然后更新一下
update-grub
重启生效,系统更新后失效(除非官方加入参数)
如果未生效
添加允许不安全的中断的配置
echo "options vfio_iommu_type1 allow_unsafe_interrupts=1" > /etc/modprobe.d/iommu_unsafe_interrupts.conf
刷新内核
update-initramfs -u
重启一下验证
开启网卡SR-IOV
查询网卡是否支持SR-IOV
lspci -nn | grep Eth
这里可以看到我的网卡和地址,下面查询万兆网卡(03:00.0 )是否支持SR-IOV
lspci -s 03:00.0 -vvv | grep Capabilities
可以看到最后面写了SR-IOV,那就是支持,没有写就是不支持
查询网卡最大虚拟设备数
cat /sys/bus/pci/devices/0000:设备ID/sriov_totalvfs
如图我的这个网卡支持最大虚拟设备数为63
测试SR-IOV网卡生成
测试虚拟4个网口
echo 4 > /sys/class/net/enp3s0f1/device/sriov_numvfs
enp3s0f1是系统里的网卡名,执行ip addr
查看或者在webUI-网络查看
然后执行
lspci
查看是否成功
如图成功了
注册系统服务,固定SR-IOV
首先创建启动脚本
cd /etc/systemd/system
vi sriov.service
也可以用finalshell编辑
[Unit]
Description=Script to enable SR-IOV on boot
[Service]
Type=simple
#start SR-IOV
ExecStartPre=/usr/bin/bash -c '/usr/bin/echo 4 > /sys/class/net/enp3s0f1/device/sriov_numvfs'
#set VF MAC
ExecStartPre=/usr/bin/bash -c '/usr/bin/ip link set dev enp3s0f1 vf 0 mac 86:24:72:8c:91:00'
ExecStartPre=/usr/bin/bash -c '/usr/bin/ip link set dev enp3s0f1 vf 1 mac 86:24:72:8c:91:01'
ExecStartPre=/usr/bin/bash -c '/usr/bin/ip link set dev enp3s0f1 vf 2 mac 86:24:72:8c:91:02'
ExecStartPre=/usr/bin/bash -c '/usr/bin/ip link set dev enp3s0f1 vf 3 mac 86:24:72:8c:91:03'
#set PF up
ExecStartPre=/usr/bin/bash -c '/usr/bin/ip link set enp3s0f1 up'
#set VF up
ExecStartPre=/usr/bin/bash -c '/usr/bin/ip link set enp3s0f1v0 up'
ExecStartPre=/usr/bin/bash -c '/usr/bin/ip link set enp3s0f1v1 up'
ExecStartPre=/usr/bin/bash -c '/usr/bin/ip link set enp3s0f1v2 up'
ExecStart=/usr/bin/bash -c '/usr/bin/ip link set enp3s0f1v3 up'
Restart=on-failure
[Install]
WantedBy=multi-user.target
注册开机启动服务
systemctl daemon-reload
systemctl enable sriov.service
重启
reboot
5 条评论
我在Turenas里本地用户里面root修改完密码并从网页端重新登录,用命令行 nano修改完按Ctrl +X 退出 显示 error writing /usr/share/grub/default/grub: Read-only file system ssh用root登录总是显示密码不对,用admin可以登录,但是也是只读不能修改grub,请问是什么问题?
失效了嘛???
update-initramfs -uTrueNAS-SCALE-23.10.0.1
错误如先:
update-initramfs: Generating /boot/initrd.img-6.1.55-production+truenas
/usr/sbin/mkinitramfs: 287: dpkg: Permission denied
grep: /etc/initramfs-tools/modules: No such file or directory
grep: /etc/initramfs-tools/modules: No such file or directory
grep: /etc/initramfs-tools/modules: No such file or directory
grep: /etc/initramfs-tools/modules: No such file or directory
grep: /etc/initramfs-tools/modules: No such file or directory
grep: /etc/initramfs-tools/modules: No such file or directory
grep: /etc/initramfs-tools/modules: No such file or directory
grep: /etc/initramfs-tools/modules: No such file or directory
grep: /etc/initramfs-tools/modules: No such file or directory
grep: /etc/initramfs-tools/modules: No such file or directory
grep: /etc/initramfs-tools/modules: No such file or directory
grep: /etc/initramfs-tools/modules: No such file or directory
grep: /etc/initramfs-tools/modules: No such file or directory
grep: /etc/initramfs-tools/modules: No such file or directory
/usr/share/initramfs-tools/hooks/intel_microcode: 98: dpkg: Permission denied
/usr/share/initramfs-tools/hooks/intel_microcode: 132: dpkg: Permission denied
亲,我truenas虚拟机直通时提示了[EFAULT] internal error: qemu unexpectedly closed the monitor: 2023-01-19T08:13:58.821697Z qemu-system-x86_64: -device vfio-pci,host=0000:06:00.0,id=hostdev0,bus=pci.0,addr=0x6: vfio 0000:06:00.0: group 8 is not viable Please ensure all devices within the iommu_group are bound to their vfio bus driver.
我的机器是AMD的4750GE+B550M, 想要直通的是主板自带的螃蟹2.5g网卡,请教我是哪里配置可能有问题? 感谢你的回复thx
bios设置把pci ari support打开(在iommu一个页面)
我用的华硕z270,zai bios里面没有找到与ari相关的设置
求帮忙指点一下