V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要把任何和邀请码有关的内容发到 NAS 节点。

邀请码相关的内容请使用 /go/in 节点。

如果没有发送到 /go/in,那么会被移动到 /go/pointless 同时账号会被降权。如果持续触发这样的移动,会导致账号被禁用。
0x663
V2EX  ›  NAS

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

  •  
  •   0x663 · 17 天前 · 5672 次点击
    从周六开始一直到昨天晚上,基本每天都折腾到凌晨
    主板 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 ,又不行了。
    54 条回复    2025-05-06 09:46:31 +08:00
    ererrrr
        1
    ererrrr  
       17 天前
    尝试过一次 unraid 拆分核显,个个都说 unraid 虚拟机多好用
    结果我一用,真的很费劲
    现在已经不喜欢这些了,直接买两台算了
    esee
        2
    esee  
       17 天前
    你这主板居然有两个 sata 控制器?
    Radeon
        3
    Radeon  
       17 天前   ❤️ 1
    为什么非要把 Disk IO 直连?用软件作 Disk IO 中间层有很多好处呀,比如可以设非常高的 buffer ,或者非常低的 flush 频次。不香吗?
    yusha
        4
    yusha  
       17 天前
    看这个板子, 是微星 mag mortar b660m?
    这个板子好像是 SATA_A 和 SATA_B 走的额外附加的 sata 控制器,方便直通。
    dilidilid
        5
    dilidilid  
       17 天前   ❤️ 6
    PCIE 直通 raw 设备根本不是虚拟化的正常使用方式,你 PCIE 直通越多遇到问题的机会越大,属于是要实现一些功能不得已的妥协,不知道为啥现在各种乱七八糟的教程喜欢把这玩意儿当成灵丹妙药。虚拟化的一个重要目的就是迁移+容灾,PCIE 直通之后一不小心虚拟机直接带崩宿主机一起死机,还容个屁的灾。

    很多消费级硬件不支持真正的虚拟化,只能直通一把梭,问题是很多厂家(比如黄狗)一开始就没有给你直通预留兼容性,出什么问题完全是不可预料的。不是发烧友没必要浪费时间跟厂家对抗
    fuckfaker
        6
    fuckfaker  
       17 天前
    你有空余的 pcie 插槽的话,可以买个 sas 直通卡,LSI2308 就行,然后把 sas 卡直通给 truenas ,或者虚拟机,比你这样折腾靠谱一点
    vhisky
        7
    vhisky  
       17 天前
    1 、系统盘没必要组 raid1,pve 只要备份好虚拟机,系统坏了,重装后再恢复虚拟机就行。有的人甚至把系统装进 U 盘里。
    2 、可以把系统盘装在 m.2 的一个盘上,直通 SATA 控制器准没问题。一般一个主板都是一个 SATA 控制器。
    3 、SRIOV 没折腾过,折腾过 8 代 cpu 直通核显用的 GVTg
    4 、也可以试试飞牛 nas ,也能搞
    swordsmile
        8
    swordsmile  
       17 天前
    试试在 /etc/default/grub 添加 pcie_acs_override 参数,看分组是否多一些

    GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt pcie_acs_override=downstream,multifunction"

    update-grub
    0x663
        9
    0x663  
    OP
       17 天前
    @esee 是的
    0x663
        10
    0x663  
    OP
       17 天前
    @dilidilid 是的,我这就纯瞎折腾。
    wuyadaxian
        11
    wuyadaxian  
       17 天前   ❤️ 1
    m.2 装系统,sata 直通就行。sata 崩了不会影响系统,不要怕。
    0x663
        12
    0x663  
    OP
       17 天前
    @swordsmile 加了 /etc/default/grub /etc/kernel/cmdline
    0x663
        13
    0x663  
    OP
       17 天前
    @fuckfaker 有两条空余的 PCIe 插槽。本来是想买的,但感觉自己的硬盘不多就直接用的主板自带的两个 sata 控制器了。
    0x663
        14
    0x663  
    OP
       17 天前
    @vhisky unraid 就是
    0x663
        15
    0x663  
    OP
       17 天前
    @wuyadaxian
    @vhisky
    m2 的那块 250G 的三星 970evo 0e 了。所以没敢做系统盘,只把它拿来用作缓存盘。
    0x663
        16
    0x663  
    OP
       17 天前
    @ererrrr 哈哈哈,我其实是就喜欢折腾这些,所以不嫌烦。消磨时光的手段之一。
    marquina
        17
    marquina  
       17 天前   ❤️ 1
    pve 直通 sata 设备的标准姿势:

    [Passthrough Physical Disk to Virtual Machine (VM) - Proxmox VE]( https://pve.proxmox.com/wiki/Passthrough_Physical_Disk_to_Virtual_Machine_(VM))

    按设备直通就行,不需要直通 sata 控制器
    marquina
        18
    marquina  
       17 天前
    laminux29
        19
    laminux29  
       17 天前
    PVE 群主说过,不建议直通,因为直通是一种反虚拟化的方式,会阻碍备份、迁移与容灾,除非你不需要这些功能。
    0x663
        20
    0x663  
    OP
       17 天前
    @laminux29 老哥哪个群?
    ExplodingFKL
        21
    ExplodingFKL  
       17 天前   ❤️ 3
    为什么要跑 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
        22
    0x663  
    OP
       17 天前
    @ExplodingFKL 你说的有道理,应该先整理需求再折腾机器。
    gunner168
        23
    gunner168  
       17 天前 via Android
    为啥系统盘要做 raid1 ,装好系统做个备份不就行了,出问题直接还原
    Angus007
        24
    Angus007  
       17 天前   ❤️ 1
    俺是 unraid
    存储池 1:两条 m.2 1T 做的 raid1 用来放虚拟机、docker 、热文件,目的是挂了一个盘直接替换,省去恢复备份的麻烦,每隔 6 个小时自动快照,目前是 btrfs 格式,以后有空换成 zfs 格式
    存储池 2:三块 12T 组的 zfs z1 ,用途是存放片子和备份
    存储池 3:一块 1T 的盘做 PT 下载盘,其实可以加块盘,两块盘做 raid0
    存储池 4:虚拟 debian 直通了一块 4T 做冷备,定时自动开机用 rsync 做增量备份,备份后自动快照,然后关机
    每个池都做了快照,防止勒索病毒,目前个人认为比较完美的方案,重要文件也加密压缩上云了
    YsHaNg
        25
    YsHaNg  
       17 天前
    @ererrrr unraid 虚拟机从来没好用过 lxc 了事 还能好多个容器共享硬件 压根不折腾直通
    metory
        26
    metory  
       17 天前 via Android   ❤️ 1
    乐趣就在于折腾,折腾好累就退烧了
    14
        27
    14  
       17 天前
    还有一个思路,买一个 PCIe 转 SATA 的扩展卡,然后这个 PCI 设备可以整体直通,亲测可用
    GobyHsu
        28
    GobyHsu  
       17 天前
    @vhisky 如果你在宿主机进行了很多个性化配置,重新折腾宿主机是很麻烦的。写配置脚本、Ansible Playbook 之类的也不一定可靠,因为没有条件妥善地对这些脚本的可靠性进行测试
    k9982874
        29
    k9982874  
       17 天前
    不直通,硬盘 mount 到 pve 宿主机,开 nfs 共享给 vm ,不过 nfs 的性能有时候有点拙计
    spike1123
        30
    spike1123  
       17 天前 via iPhone
    用的什么机箱
    bao3
        31
    bao3  
       16 天前   ❤️ 2
    把 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
        32
    ryd994  
       16 天前 via Android
    我是直接装 truenas scale ,就不需要考虑直通的问题。truenas scale 可以跑 docker 可以跑虚拟机。

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

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

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

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

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

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

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

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

    还有 LVM volume group 分 LV 的,动不动就用全部剩余空间。既然可以随时扩容,为什么要一开始就全给分了?留一些空间,将来万一有个什么需求也灵活啊。
    zaaad
        36
    zaaad  
       16 天前
    @marquina 这种直通方式在 vm 里看不到 smart 信息,在宿主机里才能看到
    totoro625
        37
    totoro625  
       16 天前   ❤️ 1
    @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
        38
    xbin  
       16 天前
    @ExplodingFKL #21 请教一下,文件共享部署在宿主机还是 VM 或者 LXC?
    waifu2x
        39
    waifu2x  
       16 天前
    @xbin 个人感觉 lxc 就行了, 宿主机把硬盘挂在 lxc 里,然后 lxc 里开 smb
    Kiriya
        40
    Kiriya  
       16 天前
    直接用 win10 做宿主机,其他系统运行在 vmware 上,免折腾
    0x663
        41
    0x663  
    OP
       16 天前
    @spike1123 银欣 CS382
    vczyh
        42
    vczyh  
       16 天前
    @0x663 这个机箱做工太烂了
    laminux29
        43
    laminux29  
       16 天前
    @0x663 K 佬的群,你加他微信,让他拉你进 PVE 群,KernerX
    esile
        44
    esile  
       16 天前
    搞直通和 aio 推荐用 z 系列或者 x 系列的平台,之前我用 b 系列搞了好几次都每成功,用 z 和 x 的轻轻松松直通显卡和硬盘。
    ExplodingFKL
        45
    ExplodingFKL  
       16 天前
    @X_Del #33 @xbin #38

    nfs / smb / webdav 是由 lxc 提供 , 这样可以利用到页面的快照功能 (虽然 cli 也可以)

    只不过我我只用到了 minio ,其他的用不上, 代码备份靠 gitea , 照片视频备份用 immich
    findex
        46
    findex  
       16 天前 via iPhone
    应该是第一次玩 PVE 。

    折腾完之后感觉应该不会 7/24 开机,最后还是会一个品牌机做 NAS 或者纯服务器。然后留着这个 PVE 继续折腾。

    PVE 还有不宕机集群玩法,节点崩溃其他节点无缝替换。然后 PVE 还有备份服务器、还有 API 编程玩法,等等。
    bytesfold
        47
    bytesfold  
       16 天前 via iPhone
    前几天又把树莓派 5 三节点的 PVE 集群搭起来,但是如果用 zfs 的话内存不够用;还是想要塔式的
    anonymity
        48
    anonymity  
       15 天前
    12500 核显拆 vgpu 之后给 jellyfin 转码性能如何?
    另外它支持黑群晖 SA6400 吗
    msg7086
        49
    msg7086  
       14 天前
    其实我不懂为什么一定要直连控制器而不是直连块设备。
    sky96111
        50
    sky96111  
       13 天前 via Android   ❤️ 1
    @msg7086 直连控制器可以让 nas 的虚拟机获取到所有磁盘信息,温度、转速、健康度等。直通块设备就只能看到一个虚拟的 qemu hdd disk
    guiys
        51
    guiys  
       13 天前 via Android
    18 楼的办法就是我现在用的,从来不搞啥直通。甚至我在安装 pve 时候硬盘只给 8g(再小安装不给过),进系统之后就把这块硬盘里剩下的空间 fdisk 几个 sda4,5,6 ,然后再 qm set 给虚拟机。这样做好处就是虚拟机空间不会越用越小,也不用重新删除添加存储释放空间。当然也是要挂全挂,反正就存点热门电视剧
    0x663
        52
    0x663  
    OP
       10 天前
    @gunner168 备份也做了
    0x663
        53
    0x663  
    OP
       10 天前
    @findex 确实首次玩 PVE
    0x663
        54
    0x663  
    OP
       10 天前
    @anonymity 没拆,直接用 pve 的虚拟核显了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2713 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 14:42 · PVG 22:42 · LAX 07:42 · JFK 10:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.