fnOS 是一个免费的 NAS 系统,发布以来受到不少自组 NAS 玩家追捧。我通过 PVE 安装 fnOS 一直在使用,本文就来分享一下我的使用感受和经验。
一、PVE 安装 fnOS 稳定性如何?
我的 fnOS 基于 PVE 虚拟机安装(PVE 作为 All-In-One 主机的主系统,fnOS 作为 NAS 系统来管理机械硬盘)。硬件上给 fnOS 直通了 SATA 控制器(方便接入硬盘)、虚拟化直通了核显(方便视频解码)。目前使用挺稳定的。
我的 All-In-One 主机配置:
二、PVE 开启 Intel 核显虚拟化
PVE 开启核显虚拟化的好处是“核显复用”:1、一个核显可供多个虚拟机使用;2、核显既可以虚拟化直通给虚拟机,又可以主系统显示输出。
AMD 核显可以直通但不能虚拟化,所以目前讨论核显虚拟化基本指 Intel 核显。下图是 Intel 显卡 SR-IOV 虚拟化支持情况:
如果你的设备是独显、AMD 核显可以考虑直通给 fnOS 调用来解码,但我个人觉得最安逸的方案还是 Intel 核显虚拟化直通:既保留了 PVE 主系统视频输出,又可以供虚拟机调用核显解码。
接下来就介绍一下 PVE 开启 Intel 核显虚拟化的具体操作:首先主板 BIOS 必须开启 VT-D 虚拟化并支持 SR-IOV,可以查看各家主板使用手册或者网上找下教程。
然后开始安装 Intel 核显驱动,目前主要有两个方案(我建议新手用第二个方案):
方案一编译安装:https://github.com/strongtz/i915-sriov-dkms
方案二安装包安装:https://github.com/MoetaYuko/intel-gpu-i915-backports
1、驱动有可能不支持最新版本内核,如果需要降低 PVE 内核版本,可以用如下命令安装指定版本内核:
#查看 PVE 版本及内核版本pveversion#安装并切换到指定版本内核apt install pve-headers-6.5.13-3-pveapt install pve-kernel-6.5.13-3-pveproxmox-boot-tool kernel pin 6.5.13-3-pveproxmox-boot-tool refresh reboot
2、安装必备文件
#安装必备文件apt updateapt install pve-kernel-$(uname -r)proxmox-boot-tool kernel pin $(uname -r)apt install pve-headers-$(uname -r)apt install build-* git dkms sysfsutils flex bison -y
3、下载核显驱动安装包并上传到 PVE,通过 dpgk 命令安装 deb 软件包:
dpkg -i "intel-i915-dkms-xxx.deb"
4、修改 grub 文件并更新引导:
vim /etc/default/grub#修改如下内容GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on i915.enable_guc=3 i915.max_vfs=3"
5、修改完毕后更新引导并重启 PVE:
update-grubupdate-initramfs -u reboot
6、通过如下命令查看核显驱动和 IOMMU 划分是否成功生效:
dkms statusdmesg | grep -e DMAR -e IOMMU
7、通过如下命令设定核显拆分数量:
echo "devices/pci0000:00/0000:00:02.0/sriov_numvfs = 3" > /etc/sysfs.conf
8、然后通过如下命令查看拆分结果。如果显示多个核显设备,则表示虚拟化拆分正常。注意 00:02.0 为原生核显不能用于虚拟机直通:
lspci|grep 00:02
三、PVE 安装 fnOS
去 fnOS 官网下载最新安装镜像:https://www.fnnas.com/ 并上传到 PVE。接下来介绍 PVE 安装 fnOS 的设置。有网友反馈: 自己的 fnOS 虚拟机核显虚拟化直通后无法开启硬解,我这里告诉大家问题在哪及如何解决。
1、新建虚拟机,机器类型选择 q35,且勾选高级选项:在高级选项的 vIOMMU 设置里选择 Intel(AMD Compatible)。
2、添加 PCI 设备,选择虚拟化核显编号(不要选择 00.02.0 这是主显卡不要直通)。显卡设置如下:不勾选 Primary GPU、不勾选 All Function、不勾选 PCI-Express:
我建议可以的话把 SATA 管理器也直通给 fnOS ,这样管理硬盘会更加方便(接近原生安装的硬盘管理体验)。我给 fnOS 分配了 2 个固态硬盘空间:32G 用于系统安装、80G 用于 docker 和程序安装。
3、能不能添加虚拟显示器呢?答案是可以!我会添加虚拟显示器,这样在 PVE 主界面可以通过命令行管理维护 fnOS:
安装系统的流程就不赘述了。安装完毕后通过 SSH 连接 fnOS ,输入命令 ls /dev/dri 能正常显示如下显卡信息就能正常硬解了( card0 是 PVE 虚拟显示器,card1 是虚拟化直通核显):
我们可以在飞鸟影视设置里正常选择核显开启硬解:
虽然实现了硬解,但在 fnOS 系统里不会显示核显占用情况。如果你想查看显卡是否被调用,我这里有个方法:首先 SSH 连接 PVE 主机安装 intel-gpu-tools 然后通过下面的命令查看显卡使用率:
apt install intel-gpu-toolsintel_gpu_top -d sriov
我测试了核显可以正常硬解,通过容器部署的 jellyfin 也能正常硬解。