全闪NAS(5*M.2 NVMe)暨软路由AIO,N100作业
本帖最后由 hawie 于 2023-9-30 00:31 编辑前言
这是一份历时三个月的作业。
联芸MAP1602+长江存储232L的国货精品,省电(待机不到0.1瓦, 峰值最高3.98瓦)、省钱(999/4TB、499/2TB)、省空间(M.2 2280),掀开了利用M.2 NVMe组建全闪NAS的需求。由此,产生了再DIY一台迷你NAS的想法。
这台迷你NAS的理想目标,是功耗必须低(家用7*24h运行),尽可能多用途(用途多设备少,能降低总体功耗),性能不能太弱,部署要简单、维护要方便。
经历长达三个月艰辛曲折的努力,最终达成:
[*]体积1.3升的5盘位M.2 NVMe全闪NAS;
[*]ROS L6+OP软路由,兼4端口2.5Gbps交换机;
[*]7*24h稳定运行, 满血性能约为i9-9900的77.6%(单核)、46.6%(多核);
[*]整机功耗(含5个NVMe盘),约13瓦(待机,PCDN功耗附后)。
下面,进入正题。
起点与选型
既然低功耗是组建这台NAS的一个优先目标,那么CPU就从节能系列架构中挑选了。
J1900、J3455、J4125、N5105、N100、……这些都是一代代走过来的经典,从成熟度、口碑、应用广泛程度,J4125当之无愧,是低功耗NAS最受欢迎的经典之中的经典了。
不过,其最大支持6条仅PCIe 2.0的规格,已难以满足NVMe对于带宽的需求。
而其最新的继任者,当红的N100,能否取代J4125,达到功耗与性能的新均衡呢?
从规格上看,N100 属于Intel的Alder Lake-N处理器系列,该系列基于节能的 Gracemont 架构,采用 Intel 7 工艺,4 核 4 线程,睿频 3.4GHz,核显为 24EU,TDP 仅为 6W。支持PCIe Gen 3,PCI Express 通道数的最大值为9。
同比 J4125 属于 Gemini Lake Refresh 系列,14nm 工艺,运行在 2.0-2.7GHz,核显 12EU,TDP 为10W。PCIe Gen 2,PCI Express 通道数的最大值为6。
从已知成绩看,N100 性能提高接近一倍,能耗降低40%。
可见,N100 规格与性能较先前经典 J4125 有显著提高,基本符合设定目标,值得尝试,就选它了!
CPU确定之后,进一步对市面上搭载N100的纯NAS主板、小主机,M.2 NVMe支援情况等关键指标进行了解,从众多的厂家之中,寻找了一款最接近理想目标的产品,规格为N100、2xM.2 NVMe、4x2.5Gbps(i226-V),12V3A。按厂家PPT,后续会推出4x1拓展板,将其中一个M.2 NVMe所用的PCIe3.0x4通道,转接为4个M.2 NVMe,每个M.2 NVMe占用1条PCIe 3.0x1通道;以及会推出1个三合一SATA拓展板,将另一个M.2 NVMe所用的PCIe3.0x1通道,转接为1个SATA(NGFF/SATA/mSATA)。这样计算,最大可支持4个M.2 NVMe,1个M.2 NGFF SATA,共5个M.2的SSD。
那么,有几个未确定因素出来了:
一,5个M.2 SSD,每个只占用一条PCIe3.0x1,CPU或PCIe是否构成瓶颈,综合性能能否跑满4x2.5Gbps,即10Gbps、双向共有20Gpbs的网络吞吐率呢?
二,能否组成5*M.2 NVMe呢?假如不使用三合一SATA拓展板,那本身那一个使用PCIe3.0x1通道的M.2 NVMe,是否可以保留,与4x1转接板共同构成5个M.2 NVMe呢?
三,i226-V,是否仍然断流呢?
这些疑问,没有得到明确的答复,大致说是这个不太确定,或可能不支持。那就保守估计,至少应可以达到1 M.2 SATA + 4 M.2 NVMe。跟群晖官方系统强制要求必须至少有一个SATA进行引导,保持了一致,也是不错的。
其他的配套,
内存考虑性能,选择了支持2*32bit双通道的最小容量16GB;
M.2 NVMe盘,选择了明确标识待机功耗与最大峰值功耗的,功耗最低的一款。
TF盘,考虑需要在USB2.0上使用,选择了目前最高性能的一款。
USB盘,选择了最迷你又不发热的一款。
功课做到这,就实际入手来验证那些疑问吧。
实际的行动起始于618前夕,5.31号陆续入手了一台小主机、16GB DDR5 SODIMM内存条、64GB TF卡、5块 2TB M.2 NVMe SSD固态硬盘,正式着手迷你全闪NAS的组建。
开箱
包装,合影
主机本体,及电源
配件一,M.2 WIFI位,PCIe 3.0x1,转接1盘位M.2 NVMe @PCIe 3.0x1
配件二,M.2 WIFI位,PCIe 3.0x1,转接1盘位SATA(NGFF/SATA/mSATA)
配件三,M.2 NVMe位,PCIe 3.0x4,转接4盘位M.2 NVMe @PCIe 3.0x1。不需拆分芯片的黑科技。
新版优化了结构以及同时多个1TB以上大容量硬盘的兼容性问题。
对照图。左侧为初始版,右侧为新版。新版尺寸加大,四角通过立柱与底板固定。初始版无固定。新版增加独立供电。
配件四,NVMe散热加强组件。支持安装外置8010风扇,给NVMe盘加强散热。
效果图方便直观:
其他配件,TF卡、U盘。性能强,运行温度低。
其他配件,内存 1条、NVMe盘 5个。
内存Crucial 16GB DDR5 4800; NVMe,5 * P7000Z 2TB(第一颗2TB入手时,4TB未上货,考虑RAID需要,后续均按同容量购买)。
其他配件,闲置风扇。
主机支持PWM,安装闲置风扇一枚。将风扇线从内部经机壳缝隙引出,三明治叠在本体之上,辅助散热。
内部安装,四层堆叠。约1L体积安装多个NVMe盘。
第一层,主板/底板,已预装
第二层,WIFI位安装转接板,转接安装1个M.2 NVMe
第三层:M.2 NVMe位(PCIe 3.0x4)安装4x1转接底座
第四层:在4x1转接底座之上,安装4x1转接板,转接安装4个M.2 NVMe
主要功能性能
一、SSD,5 * M.2 NVMe
RootPort PCIe资源分配情况。N100 9条PCIe3.0资源完全用满,5条给了5个NVMe(ID 1602),4条给了4个2.5Gbps网口(ID 125C)。
Windows:
Linux:
RAID0性能,5盘 @ PCIe3.0x1 ,Windows带区卷模拟
RAID F1(RAID5)性能,5盘 @ PCIe3.0x1 ,PVE虚拟DS3622xs+环境模拟
使用linux dd简测,读写性能约1.5GB/s,确认性能高于4*2.5Gbps(10Gbps)并发访问带宽需求。
即,PCIe拆分后,5条PCIe3.0x1组成的RAID,在虚拟机中也未构成整机性能瓶颈。
单盘 @ PCIe3.0x4 性能,底板M.2 NVMe槽位测试
单盘 @ PCIe3.0x1 性能,转接板M.2 NVMe槽位测试
二、PVE
基础配置
Proxmox Virtual Environment 8.0.3,TF引导,NVMe PCIe直通。考虑USB2.0限制,配置无SWAP,local仅存OS引导,其他NFS存储。
其中,
在PVE 8.0早期的内核版本之中,存在P7000Z 2TB多盘识别不了的问题,这是联芸MAP1602主控刚推出来、Linux内核还没有适配的缘故,是所有联芸MAP1602主控的共性现象。
现在升级至最新内核,可正常识别多盘。之后出的联芸MAP1602主控某些4TB版本,可能仍需要修改内核才支持。具体修改与安装方法,可参见我前面的发文https://www.chiphell.com/thread-2524660-1-1.html
SR-IOV配置
N100的核显为12代,确认支持开启IOMMU、SR-IOV共享,可将同一设备虚拟为多个设备,直通给需要核显硬件加速的虚拟机。比如Jeffylin/Emby/Plex、Windows/Ubuntu等。
开启方法:
0. 安装基础包,apt install -y build-* git dkms sysfsutils
1. git clone https://github.com/strongtz/i915-sriov-dkms.git 并拷贝为/usr/src/i915-sriov-dkms-6.2;
git clone https://github.com/strongtz/i915-sriov-dkms.git
cp -r i915-sriov-dkms /usr/src/i915-sriov-dkms-6.22. 修改/usr/src/i915-sriov-dkms-6.2/dkmf.conf
PACKAGE_NAME="i915-sriov-dkms"
PACKAGE_VERSION="6.2"3. 执行dkms install -m i915-sriov-dkms -v 6.2 --force 编译安装
4. 修改/etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on i915.enable_guc=3 i915.max_vfs=7"5. 修改/etc/modules, 增加
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd6. 更新引导
update-grub
update-initramfs -u7. 修改/etc/sysfs.conf,增加
devices/pci0000:00/0000:00:02.0/sriov_numvfs = 3重启后
lspci验证,出现多个核显设备:
网络配置
集成的I226,实测在某些场景仍会存在断流现象,关闭TSO之后解决。具体方法为:
1. 创建执行文件/etc/systemd/system/off_tso.service,内容如下
Description=Turn off TSO for NIC
Type=oneshot
ExecStart=/usr/sbin/ethtool -K enp5s0 tso off
ExecStart=/usr/sbin/ethtool -K enp6s0 tso off
ExecStart=/usr/sbin/ethtool -K enp7s0 tso off
ExecStart=/usr/sbin/ethtool -K enp8s0 tso off
RemainAfterExit=yes
WantedBy=multi-user.target2. 使能、设置为自动启动:
systemctl enable --now off_tso.service
systemctl daemon-reload
三、NAS
NAS系统,选取了TrueNAS Scale及DS3622xs+/SA6400等DSM系统进行评估。
最后以使用维护方便为优先考虑因素,确定主用系统为,PVE环境下的DS3622xs+。备用的系统则为,物理机环境下的SA6400。
系统主要配置,RAID F1、Photos、Docker。
RAID F1,是群晖针对全闪NAS,在RAID5基础上的改进,非常适合用于组建全闪NAS。
白名单,M.2 NVMe盘识别正常,无告警信息,符合系统要求。
Docker安装了几个测试程序,懂的都懂。
功耗
开启Docker中的几个测试程序之后,其中PCDN业务上传带宽约占60Mbps。
此时功耗提升为22瓦。未开启时,约为13瓦(BIOS设置平台PL2为10瓦)。似乎12代之后的Intel CPU有个共性,负载功耗提升特别快。
通过小米功率计查看当天18小时用电为0.4度(刚好看到0.3跳为0.4),平均约为22.22瓦。
四、NAS之外的AIO性能
1. ROS/OP软路由
ROS自带N100主机所用I226网卡驱动,验证可以物理安装、PVE直通安装、VIRTIO虚拟网卡安装。
使用virtio虚拟网卡安装时,虚拟virtio端口之间的性能近20Gbps,这是PVE下的性能。VMM下,virtio的性能约10Gbps。
简测:开启ROS流控,使用电信运营商测速站点,轻松跑满外网千兆,同时ping外网无丢包与延迟增加。
2. Windows系统
支持SR-IOV的核显加速,远程访问时,系统UI流畅。
N100,R23:
N100,R24:
3. Linux作业系统
Geekbench 6,单核1242、多核3332。约为i9-9900官方成绩单核1601、多核7144的77.6%、46.6%。
Geekbench 5,单核1051、多核2998。
4. Jellyfin性能
核显加速,在线拖动进度图4K转码,流畅播放,无明显迟钝。
五、AIO风险规避方法
复杂的AIO系统,最担心AIB异常发生。
这里构建全闪NAS兼AIO的同时,采取了一些方法,避免风险。
1. 所有数据均存储在NAS当中,包括PVE各虚拟机的系统。只要保障好NAS,从而就可以有效规避AIB。
2. 上述构建的以PVE为底层承载的NAS系统(DS3622xs+,主用系统),和以物理机直接运行的NAS系统(SA6400,备用系统),经实践检验,一定的预先配置之后,可以自由转换无需迁移,直接运行。方法(简述),前者在引导时选择TF卡启动,后者选择U盘启动,NAS系统的配置数据保存在各自引导之中,其他数据保存在相同的磁盘阵列(RAID F1,5*M.2 NVMe SSD物理盘),所以,两者切换时,NAS系统不会进入迁移,而是使用之前保存在引导中的参数直接运行,进入对应的系统。
3. 得益于前一条,复杂的AIO系统可以随时转换为单一的NAS系统。方便异常维护,也可以互为备用。
总结
这三个月来的亲身实践,曲曲折折没有尽表,许多艰难险阻经历过后也不足为道,还好终于从理想化需求,初步按预期目标达成——低功耗全闪NAS暨软路由AIO。
所选机型不需要拆分芯片,将PCIe资源拆分为多个PCIe3.0x1的黑科技,无疑将给全闪NAS市场带来腾飞机遇的里程碑。
未来使用具有更多PCIe资源的CPU,是否能组成更多的M.2 NVMe PCIe3.0x1呢?完全可以期待。
或许,我们见证了以新一代低功耗CPU,开启组建全闪NAS暨软路由AIO的新篇章。
起初以为是软路由,结果是高端NAS, 点赞。哈哈。 目前看到最完美的全闪NAS 有自己的想法,很钦佩 应该有大神做板子,做箱子,全M.2的NAS,外带跑跑PCDN等 增加点隔远点的全景照就好了[喜欢] 结果是高端NAS, 点赞。 点赞,又有新目标了 请教一下,开启SR-IOV一定需要bios支持吗?我看很多主板好像都没有这个选项。 找个黑科技厉害 这个还真是不错啊,厉害厉害。
感谢这个思路 真高端!! 此帖厉害在SR-IOV啊,直接虚拟一拆四,之前PCIeX
16拆4个X4还要类似PLX芯去拆~ 委屈PCIe4.0*4的固态了,被降级到PCIe3.0*1 一直想组M2的Nas,买原厂的太贵,
而且除了致钛,其他原厂的TLC SSD发热巨大,P3 Plus之类QLC的写入太坑爹
买白片又要担心掉盘的问题,估计要再等等,希望LZ顺利上车
不想折腾,以后直接ASUSTOR Flashstor 一套PCIe3.0x1 确实委屈了这盘。
不过确实是全闪NAS啊
希望群晖啊QNAP啊能看到这些
赶紧上全闪机型(1290fx什么的那价格就邪灵退散吧) 专业,这样的nas 再弄个10G网卡,用来减视频完美了
proxmox直通有比较全面的教程吗?最近在搞,直通了核显和板载sata控制器,然后proxmox就崩溃了 全闪不配合100g网卡等于没来 SSD价格确实便宜不少了。可是,SSD不是一直都说不适合做NAS吗。。。 支持国货 多谢楼主分享。
不过一直有个疑问,全闪NAS,sata接口的固态硬盘是不是更实用一些?
没有pcie通道限制,体积大散热情况估计也好一些。 同在看这套。
考虑直接上N305的,看中x宝畅网的 fs6712X 买回来没开箱 我觉得这方案应该量产,毕竟未来几年,大家可能越来越需要全低价国产SSD组NAS,那么RAID6甚至RAID60这样的NAS方案就会非常吃香。 主板第一层插内存处咋看上去有个上层小板?没看懂请解释一下,谢谢! 不装个刀客跑网心,对不起4T盘,另外爱国者暴毙的可能性比较大,建议选大华那个10年保的。 牛掰~
这个主板我愣是没看明白什么造型~ 我是N100+QNAS mini机箱,上2.5寸ssd,真香,感觉比你这个实用多了 本帖最后由 danety 于 2023-10-3 06:44 编辑
这个是厂家优化了供电的第二版?