收起左侧

飞牛虚拟机初试1 —— USB与网卡直通

7
回复
3500
查看
[ 复制链接 ]

1

主题

21

回帖

0

牛值

fnOS系统内测组

2025-1-21 14:56:33 显示全部楼层 阅读模式

[i=s] 本帖最后由 绯竹x 于 2025-1-21 15:08 编辑 [/i]<br /> <br />

飞牛的最新内测版本更新了虚拟机应用,比起之前增加了直通功能。直通之前在PVE上简单玩过,但在遇到过的NAS虚拟机系统相对少见,比如群晖仅提供USB直通,而绿联则完全没有直通功能,抱着好奇之心用一用,以下记录一下自己的体验过程,以便后查,如果能为其它牛友提供些参考则是更好了。

直通容易崩,心态保持稳

首先需要知道直通可能会导致各种虚拟机甚至是宿主机稳定性方面的问题,必须提前知道这个风险,并提前好做各种的预案,比如:

  1. 如果这台NAS非常重要,那么不建议折腾。
  2. 在尝试把设备直通进虚拟机之前,对虚拟机先建好快照。

另外即使做对了一切,基于不同的平台不同的设备,直通的成功率也无法保证,所以心态放稳,能通大赚,不能通不亏。

直通设备 & 虚拟机情况

搞了一台Thinkpad t470笔记本来安装FNOS,带双网卡。

image.png

虚拟机方面,准备安装个windows玩下,听说win10直通的兼容性比win11好,就直接安装了win10,不知有没有有经验的玩家说说看这个是不是真的

无痛直通:USB无线网卡

玩过直通的都知道,有时直通需要在系统上各种命令行捣鼓了才能直通进去,非常痛苦,所以我给自己定义一个词,叫无痛直通,就是只在GUI页面上点点点,然后选进去就完事,一点也不痛苦。这次看看飞牛上是怎么的体验。

先把win10虚拟机装好,快照打好,然后开始直通之旅。本来想把无线网卡给直通了,但PCI列表还不能选,看了一下应该是iommu分组没开,那待会再来,先插张USB无线网卡看下效果。为了看看低速USB设备直通是否正常,把一套USB键盘鼠标也直通进去看看。

image.png

保存完直接点开机,虚拟机顺利的开起来了,查看一下设备,键鼠网卡都在,网卡挂在USB3.0上也没错,连上WIFI打开个视频网站,一切正常,USB直通还是比较无痛的。但speedtest测速效果不是很理想,想上速度可能还得PCI网卡。

image.png

无痛直通:PCI无线网卡

下一步试试直通PCI的无线网卡。

要直通PCI设备需要打开iommu开关,我这台机器的打开方式是,先ssh到NAS上,编辑 /etc/default/grub ,在GRUB_CMDLINE_LINUX_DEFAULT一行的末尾添加上intel_iommu=on。如果是amd的话则改成amd_iommu=on。

image.png

保存文件后执行update-grub,然后重启。重启后dmesg | grep iommu,看到下面这种Adding to iommu group的信息,就说明iommu分组成功开启了。

image.png

之后再打开虚拟机应用,解锁完成,可以选择了。

image.png

之前的一些经验,在直通PCI设备之前,有时需要提前先把设备与宿主机的驱动剥离并挂载到vfio上,但有时虚拟机也能自己完成这个操作,这次先不自己动手,看下虚拟机能不能给到这个无痛的体验。

先执行下面的命令观察到设备当前挂载的驱动。那个pci_0000_04_00_0就是之前留意的那个设备地址,对于其它设备来说,基于实际的地址替换后面的部分就可以。

sudo virsh nodedev-dumpxml pci_0000_04_00_0

可以看到当前的驱动值

image.png

然后直接启动虚拟机,这次成功开起来了,再执行一次相同的命令查看一下驱动情况,发现这次已经挂载到了vfio-pci上面,虚拟机成功的完成了从宿主机驱动中剥离并挂到vfio上的工作。去看下系统设置中的网络情况,的确只剩1个有线网口了。

image.png

虚拟机开机完成后,查看设备情况,已经能成功看到网卡,看样子没什么问题。然后把虚拟机关闭,观察一下驱动情况,已经成功的重新回到宿主机上了。网口也恢复成了2个。

image.png

无痛直通:PCI有线网卡

最后一步,试试看直通PCI的有线网卡,这里注意把飞牛的访问地址换成无线网口的IP,否则直通的一瞬间就无法通过有线网口IP进行访问了。

把有线网卡添加到虚拟机中,虚拟机应用直接把整个IOMMU分组的设备全加进来了。因为直通其实是按IOMMU分组为单位进行,不允许只把分组中的某几个设备直通进去。上面的无线网卡相对独立,自己单独一个组,而一些集成度比较高的硬件,往往都分配在同一个组内,如果只想直通某一部分,只能另寻它法了。

image.png

同样先观察驱动,设备pci_0000_00_1f_6当前的驱动是e1000e,启动虚拟机,发现驱动变成vfio,看来是成了。

image.png

跑一下速,还算不错。

image.png

image.png

关闭虚拟机,再观察驱动和网口情况,成功回到宿主机中

image.png

简单小结

今天尝试了把USB设备和两张PCI网卡直通到虚拟机中,过程还是比较顺利无痛的。之前听说有一些设备,需要在宿主机中做额外的预留工作,今天都没有遇到。

下一阶段计划试试看显卡,显卡尤其是核显是直通中比较麻烦的设备,到时再看看会不会遇到一些新的问题。

收藏
送赞 6
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

0

主题

1

回帖

0

牛值

飞牛官方人员

2025-1-21 15:21:16 显示全部楼层
向大佬学习

1

主题

54

回帖

35

牛值

社区共建团

社区上线纪念勋章社区共建团荣誉勋章飞牛百度网盘玩家

2025-1-21 15:34:19 显示全部楼层
向大佬学习
科学技术这一仗,一定要打,而且必须打好。

                                                -------**

0

主题

1

回帖

0

牛值

飞牛官方人员

2025-1-21 15:35:15 显示全部楼层
向大佬学习
2025-1-22 10:07:50 显示全部楼层
畅网n100的四口小主机我还是搞不定,对虚拟机使用还是思路不清晰。

9

主题

63

回帖

0

牛值

fnOS系统内测组

2025-1-23 01:03:21 显示全部楼层
好奇。但苦于没有物理环境。
不知道当物理主机拥有多个SATA控制器的时候,能否把非飞牛OS占用的SATA控制器直通给虚拟机?
这样我可以把物理机的PVE换成飞牛了。

0

主题

3

回帖

0

牛值

江湖小虾

2025-1-25 21:33:25 显示全部楼层
要好好学习一下

2

主题

6

回帖

0

牛值

江湖小虾

2025-2-27 13:29:42 显示全部楼层
大佬你好,我在直通PCI的有线网卡之前,没有把飞牛的访问地址换成无线网口的IP,直通的一瞬间就无法通过有线网口IP了,有什么办法可以挽救吗?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则