这几天折腾 PVE AIO 有点上头了

2025 年 4 月 29 日
 0x663
从周六开始一直到昨天晚上,基本每天都折腾到凌晨
主板 MSI B660M 迫击炮
CPU i5 12500
sata ssd *2
sata hhd *2
m2 nvme *2

前两天是折腾核显,主板开启了 VT-D 和 Intel SRIOV
通过 i915-sriov-dkms 虚拟出来 7 个
完成了以后尝试直通硬盘

因为主板有两个 sata 控制器,我想着是两块 sata ssd 组 zfs(raid1)做系统盘,然后另一个 sata 控制器直通给 Truenas 虚拟机。然后我就直接去根据 iommu 的编号去找到这俩 sata 控制器,尝试把 b660 芯片组的 sata 控制器直通给 Truenas 虚拟机,然后就直接死机了,第二次安装发现是因为 iommu 分组没拆开

然后就一通检索去看相关问题,后来发现一个强制拆分 iommu 分组,但是要改源码并且评论区说这是掩耳盗铃遂弃,然后就去折腾 BIOS 看到有一个“集成外围设备”的选项,关闭这个之后可以正常拆分 iommu 了。

我原本以为会很顺利美滋滋的去直通 sata 控制器并开启虚拟机,又有问题了
这里我的系统盘最初插到的是 sata7 和 sata8 ,因为这两个口离其他的比较远所以我认为是另一个单独的 sata 控制器控制的。这就是不认真阅读文档的代价吧。

开主机重新插 sata 接口调整好以后再去尝试 SRIOV ,又不行了。
9599 次点击
所在节点    NAS
54 条回复
ExplodingDragon
2025 年 4 月 29 日
为什么要跑 kvm ?
要解决什么需求?
什么情况下必须要 kvm 而不是 lxc ?
直通核显后如果宿主机出现灾难性错误如何排错?

关于媒体:lxc 做 qsv / vaapi 简直就是开箱即用,而且还不影响宿主机显示
关于存储:用 proxmox 来管理磁盘也是开箱即用,zfs raid 在 web 端即可完成所有操作,还有原生的快照支持,如果需要文件共享自行部署 nfs server / smb server / wevdav / s3(minio)
关于 Windows: 别在 nas 上面跑 windows 了,all in one == all in boom

与其折腾这个不如把监控、ups 、备份配置好,数据安全比什么都重要
0x663
2025 年 4 月 29 日
@ExplodingFKL 你说的有道理,应该先整理需求再折腾机器。
gunner168
2025 年 4 月 29 日
为啥系统盘要做 raid1 ,装好系统做个备份不就行了,出问题直接还原
Angus007
2025 年 4 月 29 日
俺是 unraid
存储池 1:两条 m.2 1T 做的 raid1 用来放虚拟机、docker 、热文件,目的是挂了一个盘直接替换,省去恢复备份的麻烦,每隔 6 个小时自动快照,目前是 btrfs 格式,以后有空换成 zfs 格式
存储池 2:三块 12T 组的 zfs z1 ,用途是存放片子和备份
存储池 3:一块 1T 的盘做 PT 下载盘,其实可以加块盘,两块盘做 raid0
存储池 4:虚拟 debian 直通了一块 4T 做冷备,定时自动开机用 rsync 做增量备份,备份后自动快照,然后关机
每个池都做了快照,防止勒索病毒,目前个人认为比较完美的方案,重要文件也加密压缩上云了
YsHaNg
2025 年 4 月 29 日
@ererrrr unraid 虚拟机从来没好用过 lxc 了事 还能好多个容器共享硬件 压根不折腾直通
metory
2025 年 4 月 29 日
乐趣就在于折腾,折腾好累就退烧了
14
2025 年 4 月 29 日
还有一个思路,买一个 PCIe 转 SATA 的扩展卡,然后这个 PCI 设备可以整体直通,亲测可用
GobyHsu
2025 年 4 月 29 日
@vhisky 如果你在宿主机进行了很多个性化配置,重新折腾宿主机是很麻烦的。写配置脚本、Ansible Playbook 之类的也不一定可靠,因为没有条件妥善地对这些脚本的可靠性进行测试
k9982874
2025 年 4 月 29 日
不直通,硬盘 mount 到 pve 宿主机,开 nfs 共享给 vm ,不过 nfs 的性能有时候有点拙计
spike1123
2025 年 4 月 29 日
用的什么机箱
bao3
2025 年 4 月 29 日
把 pve 安装到 usb 盘上,不是普通的 U 盘,是那种 MLC 的 16G 足够。买 2 个,然后 pve 用 ZFS 方式,把 2 个 USB MLC 盘做成 mirror 。
这样一来,你的系统稳如狗,你只要在 ssd 上随便找个位置,弄个 4G 、8G 给前面的 ZFS mirror 做 缓存,可以设置为 ZFS 的 special (需要 2 个 ssd 上)或者 cache (一个 ssd ),这样你的 pve 就飞快。

当你要做系统设置时,你就先用 zfs 拍个快照。万一你把系统搞挂了,你就 zfs 恢复快照就可以了。

由于只是使用了 usb 2.0 口,所以你所有的硬盘都可以随意折腾,而不必担心系统崩了。
ryd994
2025 年 4 月 29 日
我是直接装 truenas scale ,就不需要考虑直通的问题。truenas scale 可以跑 docker 可以跑虚拟机。

我用的是洋垃圾,不存在 iommu 拆不开的问题。以前折腾过虚拟化的 freenas ,其实没什么意思。搞虚拟化无非是为了跑点应用,基础设施不应该虚拟化。不要为了 PVE 而 PVE

我同意楼上的观点,而且更激进:系统盘只用一颗 U 盘,我用的是 SATA SSD 加硬盘盒。正规服务器用 raid0 是为了保在线率。家里自用不需要考虑 sla 。定期备份配置文件就足够了。

@GobyHsu #28 那也不需要备份系统盘。定期导出配置文件就好了。如果无法导出,那是系统没选好。

@marquina #17 不推荐这样用。这样用只是 PVE 的虚拟储存驱动直接读写硬盘。缺点是无法检测温度和 smart 信息。而且性能有影响,hdd 问题不大不是瓶颈,SSD 这样直通就不行了。
X_Del
2025 年 4 月 30 日
@ExplodingFKL nfs / smb / webdav 是由宿主机提供还是 VM 提供?一台 AIO ,各种服务是应该由 VM 提供还是应该由宿主机提供?

@laminux29 如果有得选谁想直通呢,PVE 自身对 smart 信息的展示有限,很多玩家不想在 PVE 本体上跑各种服务,或者有监控磁盘状态的需求,那就只能在 VM 上 跑 NAS ,让 VM 直接管理硬盘。
dilidilid
2025 年 4 月 30 日
@X_Del PVE 主机直接管理硬件相关的部分(比如 smart 、ups 之类的),剩下比如 smb 、webdav 、各种 docker 啥的全交给 VM 管理,硬盘用 PVE 的虚拟存储半直通给 VM 就可以了。虽然像楼上说的确实有性能损耗,但 99%的人的 AIO 用途(说白了就是跑个 NAS )来说完全过剩
ruidoBlanco
2025 年 4 月 30 日
@dilidilid 是的,很多人动不动就要求「极致性能」其他全部不管了。然而大部分时候根本用不上这样压榨性能也够了,压榨性能造成的额外维护的复杂度,往往就不提了。

「做人留一线,日后好相见」

直通对比直接用虚拟盘,就是个例子。

还有 xfs 对比 ext4 的,不知道都是看了哪年的黄历说 xfs 性能好过 ext4 的,很多人就执着于 xfs ,我估计他们是不知道 xfs 出事之后比 ext4 麻烦多了。

还有 LVM volume group 分 LV 的,动不动就用全部剩余空间。既然可以随时扩容,为什么要一开始就全给分了?留一些空间,将来万一有个什么需求也灵活啊。
zaaad
2025 年 4 月 30 日
@marquina 这种直通方式在 vm 里看不到 smart 信息,在宿主机里才能看到
totoro625
2025 年 4 月 30 日
@ruidoBlanco #35 总结的很对
折腾多年 NAS 总结的经验教训:
1 、不要在乎性能、虚拟化损失、最重要的是简单易于维护、可备份、高容灾
千兆网络当做 800M 玩,不用纠结为何跑不满 1000M ,能节省 99%的烦恼
磁盘阵列当做单机械硬盘看,能跑 80M/s 就足够,不需要追求极致性能,能节省 99%的烦恼
2 、SSD 尾部不要全部用完
PVE 系统盘,坚决尾部预留几个 G ,因为分完用全部剩余空间真的会导致有 BUG (我吃过亏)
如果是 ZFS 的 cache/logs 磁盘,尾部更加要留一点空间,没必要全部占上,不需要极致的占用

我的 NAS 也是 AIO /t/979429
提前规划好:
PVE 系统盘独占一块 M2 NVME
数据盘全部都是 SATA ,由 PVE 负责 ZFS
PVE 的 SWAP ,虚拟机的 SWAP ,ZFS 的 slog+l2arc 共享一块 M2 NVME
ZFS 的 slog+l2arc 额外共享一块 M2 NVME ,便于 slog 的 mirror
虚拟机全部用 lxc ,尽量不用 vm
数据全部存储在 ZFS
在宿主机 PVE 上设置定时备份任务,备份到异地、云端
xbin
2025 年 4 月 30 日
@ExplodingFKL #21 请教一下,文件共享部署在宿主机还是 VM 或者 LXC?
waifu2x
2025 年 4 月 30 日
@xbin 个人感觉 lxc 就行了, 宿主机把硬盘挂在 lxc 里,然后 lxc 里开 smb
Kiriya
2025 年 4 月 30 日
直接用 win10 做宿主机,其他系统运行在 vmware 上,免折腾

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/1128824

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX