PYC7D12 8盘3.5寸机械+多盘nvme闪存 【25G高性能】 NAS搭建方案分享

长文+多图警告!
如题,分享的是一个超强的NAS复合存储方案。 该方案可在一个21.3升的小型nas机箱内容纳8个机械硬盘和十余个nvme闪存盘,且支持并几乎跑满25gbe高速网络。
价格放到最顶:整机含50TB硬盘约1个w整
continue。。。
这段时间着手搭建有几点:
1、今年洋lj硬件真便宜
2、618闪存价格大跳水,nvme ssd价格跌到逼近hdd,比ahci(sata)ssd更低,速度更快。
so需要一个能放得下大量剁手买来的nvme盘的NAS方案,最好避免使用昂贵的asmedia/plx拆分芯片和nvme阵列卡,且要能支持按需扩展(单盘扩容)并保证安全性。
3、苹果WWDC23发布了船新的apple silicon Mac pro,顺利成章apple silicon官宣安排上了mellanox网卡(适配cx4-cx7)。arm Mac由于全系标配雷电,用扩展坞转出PCIe*4即可蹭上Mac pro 的驱动。
(Intel MAC盼了近十年都没给mellanox驱动…还记得上万rmb的atto 40gbe网卡吗…)。到这个节点放出来,只能说懂得都懂。

Mac若能用25g网络连接到NAS,难不成Mac内置黄金存储就可以迎来解放, 再也不用给雷电盘交智商税了。。。吗?
4、新家入住解锁了homelab存放位置,然后希望NAS同时能够再跑一些extra load,如家庭影院、视频转码、相册备份识别、HA智能家居、娱乐串流,挂机下载等等。
5、楼主的电脑硬盘已满,急需大容量安全高速的存储阵列。
综上五条,汇总后即极为迫切的需要一个性能强、功耗低、扩展性好的虚拟化平台。同时运行hdd阵列和ssd阵列以及若干应用。
硬件选型过程中,因为一颗漂洋过海而来的四舍五入不要钱的神秘7d12,所以选择了epyc霄龙作为虚拟化平台。
接下来,我将详细介绍硬件选择、安装过程、系统设置和性能测试。
1️⃣硬件选型

CPU
大船货AMD EPYC 7D12,属OEM定制 ZEN2 Rome罗马系列。与锐龙3000系同源的Starship/Matisse架构,32核心64线程128兆L3。主频不高1.8-2.0ghz,但功耗极低,双烤最大83w。且pcie通道多达128条。很契合需求。
瘦死的骆驼比马大,32c@2.0ghz也能轻松cpuz过万,用锐龙8核的功耗换来16核的性能,香~
这款CPU在闲鱼上可以拿到600元左右的价格。直接买三通道残废版也许可以砍到500
机箱
机箱这个很重要,提到前面说。
首先由于lz的homelab存放地——储藏柜深度只有600mm,所以没法捡各路便宜大碗的2U/4U准系统;
这就将视野放在了小体积8盘位的nas专用机箱上。由于epyc平台标准主板最小就是ATX(排除妖板/节点板),所以刚需7扩展槽。
ATX+8盘以上+7pcie槽,小体积。。。那就是半人马座咯,1200r,咬牙掏吧。


半人马座β版。21.3L极限尺寸,风道和开孔配h11ssl不多不少。sff8643的位置很舒适。
上层据说有150瓦的解热,实测成功压住。**但用全套猫扇依旧很吵,零距离摆放需佩戴降噪耳机,(应该)不能摆放在卧室环境。**
主板
主板方面,选择了超微H11SSL-C。

有8个SATA和2个SFF8643,SFF8643可以插8个SAS盘。
有三个pcie x16插槽和三个pcie x8插槽,双千兆i210和一个IPMI远程管理接口,1000元左右,
应该是最便宜的EPYC ATX标准规格主板。
预算充足的话更推荐用超微H12SSL,多28条PCIe通道,且PCIe3.0 → PCIe4.0
内存
内存方面,选择了三根32GB DDR4 2400 ECC REG内存条组96GB三通道。由于7D12的缺陷最终没有用上四通道,不过96GB已经可以很好满足需求。
硬盘
硬盘方面,闪存池选用了长江颗粒+联芸MAP1202无缓 【最低速最便宜】方案作为全闪nas的数据硬盘。长江颗粒懂得都懂便宜耐艹,5条2T平均每条400。
机械池选用了7个珍藏多年的准新SAS 3TB企业盘和1个18TB HC550硬盘作为阵列(7盘小盘体阵列保障安全和速度)和冷存储(不考虑安全)。插满机箱8盘位。
如果存储满了还可以考虑在留空的PCIe槽位扩展sas光纤卡(sas 4i4e规格)外接3.5寸机头,加个几十个盘位没问题。或者考虑下lto5磁带机做二级冷备份?
网卡
网卡方面,选用了mellanox的mcx4121a-acat,属CX4-lx系列,是小mac核心所以温度不会特别高,不放心扎带绑一个4cm小风扇即可压住。
cx4121目前可兼容apple silicon设备。支持SRIOV和RDMA RocEV2技术(macOS不支持),准新300元左右。

显卡
显卡方面,用的也是和7d12一样漂洋过海的大船英伟达tesla p4。虽然不适合玩游戏,但是可以提供视频编解码、图像处理,以及**CUDA**。
还有就是支持vGPU,可以切给虚拟机。
vGPU的方案是可以将图形任务和计算任务隔离,例如分配两个grid-p4-4q虚拟工作站实例给两个Windows虚拟机或者Linux+Windows,同时满足图形桌面渲染+娱乐和后台gpu compute任务(编解码,图像识别,推流等)
价格是400元左右,原装被动散热,**有负载必过热**,40买个涡轮扇可解决过热问题。就是橙色的那个。

电源
看评测随便挑了一个,sfx电源预算足建议买1.5元一瓦以上。
散热器
散热器方面,是买主板送的2U散热器。风扇规格6025,换猫扇后满载不超过75度。
另机箱风扇是利民8015、猫头鹰12025。cpu-内存两个8015用利民静音扇实测可行。PCI槽位的8015风扇可以用风量更大的,比如双滚珠12V0.4a规格。
至此,硬件介绍完毕。
2️⃣系统配置:
软硬件架构以及基本的周边设备
线框图 一图流:建议放大查看

为了提高该方案的性能、稳定性、扩展性和效率,我可以提出以下几点:
要尽可能利用PCIe槽位给闪存设备,最好只留一张网卡和一张显卡其他都用nvme闪存盘。这样使闪存池容量最大化,同时利用SR-IOV和Nvidia vGPU技术将网卡和显卡的功能分配给多个虚拟机,实现单设备功能复用。

尽可能使用RDMA技术减少高速转发带来的CPU负担,因为nvme闪存的速度已经远超过网络和常规链路层支持的速度上限,如果不采取措施,高速的闪存数据会堵塞在网络上增加CPU的负担。RDMA技术可以让闪存数据直接通过网络传输,不需要经过CPU的处理。
使用【25gbps/每用户】的网络带宽满足全闪NAS的性能需求,是因为Windows资源管理器的单线程传输速度受限(1.9-2GB/S);macOS对smb协议的支持不佳,而apple silicon的雷电接口也存在写入限速的硬件bug(1.5GB/S)。所以,即使使用40G或更高的网络接口,也无法充分利用网卡带宽。在这种情况下,提高网络带宽的收益很小。40Gbe等一众QSFP+网卡光模块价格也会高很多。
如果用户数量很少,nvme闪存组阵列几乎没有意义。单盘nvme ssd足以跑满带宽。

宿主系统
选用基于debian的开源系统proxmox ve(pve)作为虚拟化平台。
在pve上暂时用了5个虚拟机来实现需求。

1、TRUENAS scale
一是truenas scale,在truenas scale虚拟机中,7个希捷es3 3TB机械硬盘组成一个raidz阵列,还有一块18TB HC550氦气盘做单盘条带。总共有32TiB的可用空间。raidz阵列可容忍1个硬盘同时损坏而不丢失数据,还有快照、压缩、去重、加密等高级功能。作为服务机,分配32个vCPU,兼用机械盘nas和轻量应用平台。作为nas服务端,分配2个VF虚拟25g网卡。
因为存储池总容约40TB,所以分配40GB的内存作为ARC一级缓存。建议ARC=存储池总容量的0.1%

缓存vdev设置,缓存vdev即L2ARC。这里取了个巧,给truenas分配了2个虚拟磁盘,如图开启写入同步和ssd仿真,因为pve现版本virtio虚拟盘实测读写效能非常优秀,也就是说成功省下两块物理缓存盘。建议L2ARC=存储池容量的1%

这是qemu虚拟磁盘的读写跑分,pve宿主盘是致态PC005。

2、windows server 2022
作为服务机,分配32个vCPU和一个vGPU,兼用闪存nas和多媒体应用平台。作为nas服务端,分配2个VF虚拟25g网卡。
书接上文,RDMA目前最简单的实现方案就是使用2012以上版本Windows server,客户端使用 Windows 专业工作站版
~~或2012以上版本Windows server~~
,技术开箱即用。
且smbd(smaba-direct)技术目前为winserver独占,smbd同样在Windows上开箱即用。
RDMA我认为是全闪nas需使用到的关键技术,rdma启用后,可直接网卡对网卡传输数据,利于提供更高速和低延迟的网络传输和共享。
以及要实现上文提到的支持按需扩展(单盘扩容),这里使用了付费的stablebit drivepool实现磁盘合并,以及开源免费的snapraid实现数据安全保障。
Stablebit DrivePool是一款磁盘池化应用程序,可以将多个物理硬盘组合成一个大的虚拟驱动器。

支持随时修改存储池映射位置,可随意增加/减少池内硬盘。存储池的存取速度取决于读写时使用的特定硬盘的速度。

要实现数据安全需要同时部署snapraid。
SnapRAID是一款备份程序,可以为磁盘阵列存储奇偶校验信息,从而在最多六个磁盘损坏的情况下恢复数据。SnapRAID主要适用于存储大量不经常变化的文件,如家庭媒体中心。SnapRAID的特点有:
可以在不格式化或重新分区的情况下,使用已经有文件的磁盘。
可以在任何时候添加或删除磁盘,磁盘可以有不同的大小。
可以为任何文件夹设置奇偶校验盘,保护数据的完整性和安全性。
可以检测和修复数据的损坏,避免静默错误。
可以恢复意外删除的文件。
不会锁定数据,可以随时停止使用SnapRAID,而不影响数据的访问
这里编辑snapraid的config文件或使用第三方开发的GUI界面Elucidate进行简单配置,将剩余的一个数据盘设定为检验盘,根据readme教程走即可。
snapraid是快照式备份,若设置恰当将不会影响Stablebit存储池的性能。

winserver也可以部署其他服务,比如我正在跑的jellyfin、阿里ddns、家庭相册、某torrent等。
3、Windows10专业工作站版
作为客户机,分配56个vCPU和一个vGPU,用于娱乐和cpu负载场景。作为nas客户端,分配2个VF虚拟25g网卡。
部署handbrake、davinchi media server等。
cpuz宿主空载跑分9400-10000左右,压片神器。宿主后台重负载也能跑到9000分以上。供参考。

4、win10ltsc
作为客户机的win10ltsc,用于整活和测试
5、nvlic
用于nvidia vgpu的nvlic服务

三、配置过程(概要)
这里只列举了一些踩坑的内容,剩余部分基本不存在难度,善用搜索引擎即可完成整个部署流程。
也可以看看这篇:告别单盘组建TrueNAS SCALE终极家用OpenZFS File Server, VM & More - 电脑讨论(新) - Chiphell - 分享与交流用户体验
0、修改bios设置
启用IOMMU,SVM,ABOVE 4G,ARI SUPPORT,AER SUPPORT,SR-IOV,ACS ENABLE,

M2拓展卡对应的pcie插槽分配改成x4x4x4x4模式
启动UEFI引导
1、安装pve7操作系统
2、打开系统shell,备份并修改软件源
备份
编辑,添加清华镜像源
编辑完文件后按“Ctrl + X” > “Y” > “回车”
编辑企业源
编辑完文件后按“Ctrl + X” > “Y” > “回车”
更新
3、修改grub
打开PVE节点的shell,输入命令:
PVE的shell中输入:
在文件下面添加新内容
编辑完文件后按“Ctrl + X” > “Y” > “回车”,继续输入以下命令。更新配置信息并重启PVE主机
4、配置uefi Windows
创建Windows虚拟机,选择引导方式为uefi,创建完成后不要启动,PVE的shell中输入:
添加这些命令行(添加它们的位置并不重要,只要它们位于新行即可。保存后 Proxmox 会为您移动内容):
虚拟机选项调整磁盘引导顺序,Windows安装盘第一,系统盘第二,virtio驱动光盘第三
uefi引导过程中敲击任意键,启动安装程序
磁盘列表为空,就需要手动加载virtio驱动盘。virtio驱动盘至此下载:
https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win.iso
安装并启动,记得删除Windows安装盘。
进系统后设备管理器里手动加载驱动,启用virtio 虚拟网卡。
5、启用mellanox网卡sriov功能
【mellanox网卡驱动pve已预装,请勿尝试手动安装!!!】
查看网卡编号lspci -nn
或至webui-节点-网络页面 中 查找
举例,这里网卡编号是 enp66s0f0np0 和enp66s0f1np1
跳转目录
编辑配置文件
逐条执行以下命令,应用保存重启
重启后打开shell,输入lspci,确认是否开出vf(virtual function)


虚拟机-PCI设备,选中vf分配即可,注意:
1、同一物理端口下vfpf可任意连通,但不能跨物理端口(双端口卡也就是分成了两组);
2、vfvf之间跑通需要物理端口state up,若空着物理端口,内部虚拟网卡则无法使用。
6、配置vGPU
隔壁小黄鱼请
四、性能测试
客户机分别用Windows10专业工作站版和macOS14.0beta测试。
1、读写速度:使用crystal disk mark4软件测试nas上各个存储池的读写速度。结果如下:
5个2TB nvme ssd条带存储池:
host顺序读写速度为3.57G/s和3.17G/s
guest(Windows10工作站版)顺序读写速度为2.87G/s和2.59G/s
guest(macOS Sonoma 14.0beta)顺序读写速度为1.74G/s和0.37G/s


但若使用物理机win10工作站host对macOS Sonoma 14.0beta guest,速度则会更高,推测可能是SR-IOV的性能开销,这里再放一张物理机对连的跑分:顺序读写速度为2.54G/s和0.44G/s。

Truenes scale7个3TB机械硬盘阵列:
guest(Windows10工作站版)顺序读写速度为2.18G/s和1.63G/s
guest(macOS Sonoma 14.0beta)顺序读写速度为2.15G/s和0.23G/s


2、功耗
使用一个智能插座测试nas的功耗。分别在nas空闲、满载状态下测量功耗。
家里智能插座似乎不准这条后续补在评论区。
3、温度
ipmi自带的监控功能测试温度。
空闲状态:cpu温度为69℃,显卡温度为54℃,nvme ssd温度为42-50℃,机械硬盘温度为35℃。

烤鸡半小时状态:cpu温度为83℃,显卡温度为73℃,nvme ssd温度为43-53℃,机械硬盘满载温度为50℃。空载盘35℃


4、噪音
手机app测试,距离服务器直线距离一米,无遮挡。
启动 40db,持续运行 44db,满载(风扇拉满) 47db。
未完待续
对你有帮助的话,收藏点赞别忘了哦🙏
再想到什么评论区补充吧。