我做了一个8盘的全固态NAS!

在分享设计方案之前,我想先唠唠,我为啥做这个项目。
事情是这样的。
我之前设计了一个LattePanda Mu PCIe 底板,用来外接万兆网卡、NVMe扩展卡和显卡。
主要实现网络加速、存储扩展、本地AI计算。
俗话说的好,人往高处走,水往高处流。
——我能否进一步挑战其扩展能力,同时接入8个SSD + 1个网卡,搭建一台8盘位的全固态NAS?
这样一来,我就能部署本地AI模型仓库,拥有更快的持续读写和调用速度,以及更大的储存空间……
这个看似疯狂的方案,我通过一个PCIe转四路M.2 NVMe 扩展卡(本项目) 实现了!
设计方案如下↓
原理图
PCB图
正面实物图
反面实物图
-
PCIe 时钟缓冲:9DBL411BGLFT
-
DC-DC 降压:SY8156IADC
-
PCIe/M.2 连接器:91302-32-067RDM
实现“一拖四”,要软硬件的深度协同。
首先,是PCIe拆分
之前做的LattePanda Mu 拥有9条 PCIe 3.0 x1通道,所以,这次我设计的底板引出了3个PCIe插槽,1个PCIe x1+2个PCIe x4 。
接着,修改 BIOS 固件,再将原有的PCIe x4通道拆分为四组独立的PCIe x1通道。
接着,时钟扇出
接入多个PCIe设备的挑战在于主机的PCIe参考时钟 (REFCLK) 的不足。
之前设计的Lattepanda Mu,仅提供5路REFCLK,而我想要的是满配8盘位+1个网卡,这需要9路时钟,如何解决呢?
我采用了 Fanout Buffer (时钟扇出缓冲) 方案。
我选用了芯片9DBL411BGLFT (立创商城编号 C2649348)。该芯片能把输入的1路参考时钟,经过内部整形与缓冲,输出为4路独立时钟。因此,扩展卡只需占用一路时钟信号,即可同时驱动4个 PCIe 设备,完美解决了时钟资源短缺的问题。
依此类推,再配合2张此类扩展卡,即可轻松接入8个NVMe SSD和1个网卡,硬件框图如下:
终于,8盘位全固态NAS新鲜出炉!
有了“满血”的硬件支持,我使用:
-
2块 PCIe 转四路 M.2 扩展卡
-
8块 NVMe SSD
-
1个 2.5G 网卡
-
1个 LattePanda Mu核心模块
-
1块 LattePanda Mu PCIe底板
搭建出了一台全固态的“存储怪兽”,如下图。
当然,若对网络传输速度有更高需求,也可选用RTL8127万兆网卡(价格略高^_^)。
原理完美,实战表现如何?现在,咱们来看看吧。
首先是硬件识别:如下图所示,成功识别了1张网卡和8块NVMe SSD,所有设备均工作在PCIe x1速率。
接着进行性能测试:随机选取一块SSD进行连续读写测试,如下图所示,读写速度表现稳定,符合PCIe x1速度的预期。
开源网址:
https://oshwhub.com/mr_light_up/pcie-x4-to-four-m-2-sockets
打开后,可在网页编辑器查看电路,也可以下载开源工程附件。