在 2026 年,自建 NAS(Network Attached Storage)已成为高端家庭实验室和小型企业的首选方案。相较商用产品,DIY NAS 在扩展性、成本控制和自定义优化上更具优势。本文聚焦 rackmount 24 盘位机架式架构,使用 ZFS 文件系统构建条带镜像池(striped mirrors),搭配 10Gbe SFP + 网络实现多机高可用(HA)集群,并提供功耗监控的工程化参数。通过这些可落地清单,帮助读者快速搭建年功耗控制在 500W 内的冗余存储系统。
硬件选型清单:高密度与低功耗优先
核心是选择 24bay 2U/4U rackmount chassis,如 Supermicro SYS-4029GP-TRT(24x 3.5" 热插拔 SAS/SATA 盘位,支持背板扩展)。理由:高密度布局减少空间占用,支持企业级 SAS HDD(如 Seagate Exos X20 20TB,单盘闲置功耗 5W,满载 15W),总容量可达 480TB(24 盘)。
主板与 CPU:AMD EPYC 7003 系列(如 EPYC 7313P,16 核),搭配 ASRock Rack ROMED8-2T 主板。理由:ZFS ARC 缓存需求高(每 TB 1GB RAM),配置 128GB DDR4 ECC(4x32GB),支持 ZFS dedup / 压缩。NIC 选用 Mellanox ConnectX-3 10Gbe SFP + 双口卡(PCIe 3.0 x8),兼容 DAC 直连或光纤模块(SR/LR)。
电源:双冗余 1400W 80+ Platinum(如 SuperMicro PWS-1K41P-1R),确保单电源故障时负载均衡。UPS 选 APC Smart-UPS 3000VA,续航 2 小时,支持 NUT 监控。
总预算约 15000 元人民币(不含盘),闲置功耗150W,满载450W。通过 BIOS 设置 CPU C-state 和 P-state 优化,可降 10%。
ZFS 池构建:Striped Mirrors for 性能与冗余
ZFS striped mirrors 是平衡容量、性能和冗余的最佳方案。不同于 RAIDZ(parity 开销高,重建慢),mirrors 提供 1 盘故障容忍,每 vdev 双盘镜像,多个 vdev stripe 提升 IOPS / 吞吐。
创建步骤与参数(TrueNAS Scale 或 Ubuntu 24.04 proxmox):
-
盘分区:
sgdisk -Z /dev/sdX; sgdisk -n 1:0:0 -t 1:BF01 /dev/sdX(全盘 GPT)。 -
创建池:
zpool create -o ashift=12 -O compression=lz4 -O atime=off tank mirror ada0 ada1 mirror ada2 ada3 ... mirror ada22 ada23(12 个 mirror vdev,共 24 盘)。- ashift=12:4K 扇区对齐,匹配现代 HDD。
- compression=lz4:CPU 开销低,压缩比 1.5x。
- 结果:可用容量
240TB(50% 冗余),读写2GB/s(10Gbe 饱和)。
-
数据集优化:
zfs create tank/data -o recordsize=1M -o primarycache=all -o secondarycache=all(大文件 1M 块)。
ARC 大小:echo 110G > /sys/module/zfs/parameters/zfs_arc_max(留 18GB 系统)。 -
监控与维护:
- 每周 scrub:
zpool scrub tank(预计 24h,监控zpool status -v)。 - SMART 测试:cron
smartctl -t long /dev/ada0,阈值 Reallocated_Sector_Ct >10 报警。 - 风险:初始 backfill 需 48h,避免高峰期;热插拔替换时
zpool replace tank ada0 ada_new。
- 每周 scrub:
引用 Brian Moses 的 2026 NAS 构建经验,此配置在多用户 VM 备份场景下,重建时间仅 RAIDZ1 的 1/3。
10Gbe SFP + 网络与多机 HA 集群
网络骨干:10Gbe SFP + 取代铜缆千兆瓶颈。交换机选 MikroTik CRS309-1G-8S+IN(8x10G SFP+,~2000 元),LACP bond 两个 NIC(ifenslave bond0 enp1s0 enp2s0)。
多机 HA:搭建 2-3 节点 Proxmox 集群(免费),ZFS over NFS/iSCSI 共享。
- Corosync/Pacemaker:
pcs cluster auth node1 node2,资源pcs resource create vip ocf:heartbeat:IPaddr2 ip=192.168.1.100。 - 故障切换 < 5s,存储用 DRBD 镜像 ZFS 池(
drbdadm create-md r0; drbdadm up r0)。
参数:heartbeat 间隔 2s,quorum-policy=ignore(2 节点)。
备选 TrueNAS Scale HA:内置 ZFS replication,zfs send -R tank@daily | ssh node2 zfs recv tank(增量,每日)。
功耗监控与优化策略
功耗是 DIY NAS 痛点,此架构闲置 150W / 节点。工具链:
- IPMI/iDRAC:
ipmitool sdr list | grep Power,阈值 > 400W 警报。 - Telegraf+InfluxDB+Grafana:采集
powertop --csv=/tmp/power.csv,仪表盘显示 spin-up 率。 - 优化清单:
- HDD spin-down:
hdparm -S 241 /dev/sd*(30min 空闲休眠)。 - ZFS l2arc:SSD 缓存热数据,
zpool add tank cache /dev/nvme0n1。 - 服务 trim:
fstrim -av /tank每周。 - 回滚:BIOS power profile=balanced;禁用未用 SATA 端口。
- HDD spin-down:
年电费估算:150W24h365*0.6 元 /kWh=~80 元 / 节点。监控脚本:
#!/bin/bash
power=$(ipmitool sdr | grep 'Total Power' | awk '{print $NF}')
if (( $(echo "$power > 400" | bc -l) )); then
echo "High power: $power" | mail -s "NAS Alert" admin@ex.com
fi
总结与扩展
此 DIY NAS 架构以 ZFS striped mirrors 为核心,实现 10Gbe 级性能、单盘容错、多机 HA,功耗优化后适合长期运行。扩展点:GPU 转码(RTX A4000),Kubernetes 存储(Longhorn on ZFS)。实际部署前,模拟fio --name=randread --rw=randread --bs=4k --numjobs=8 --iodepth=32测试 IOPS>100k。
资料来源:
- 2026 NAS Edition by Brian Moses(硬件基准)。
- ZFS 官方手册及 Proxmox 社区实践。
(正文字数:1260)