1. TrueNAS Scale 移植到 ARM 平台的背景与意义
TrueNAS 作为企业级存储解决方案的代表,长期以来仅支持 x86-64 架构。这个限制在 2023 年被社区开发者 Joel0 打破,他成功将 TrueNAS Scale 移植到了 64 位 ARM 平台。这个非官方移植版本的出现,为嵌入式设备和小型服务器带来了企业级存储解决方案的可能性。
注意:这个移植版本目前仍处于实验阶段,不建议在生产环境中使用。特别是容器和应用功能尚未完善,更适合技术爱好者尝鲜和测试。
传统 x86 架构的 NAS 设备通常功耗较高,而 ARM 平台以其出色的能效比著称。以树莓派为例,一个完整的树莓派 5 系统加上硬盘的功耗可能只有 15-20W,而同等性能的 x86 系统至少需要 50W 以上。这种能效优势使得 ARM 平台特别适合作为 24/7 运行的家庭或小型办公室 NAS。
2. 硬件要求与兼容性分析
2.1 基本硬件需求
这个 ARM 移植版对硬件有明确的最低要求:
- 64 位 ARM (AArch64) 处理器
- 至少 8GB 内存
- 16GB 以上的启动存储设备
- 支持 UEFI 启动的固件
在实际测试中,我发现内存需求可能比官方建议的更高。当同时运行多个服务或处理大量小文件时,16GB 内存会提供更流畅的体验。启动存储方面,建议使用 SSD 而非 microSD 卡,因为后者在持续读写场景下性能较差且寿命有限。
2.2 兼容设备清单
目前已知兼容的设备包括:
- 树莓派 4/5(需 UEFI 固件)
- Radxa Orion O6
- Rockchip RK3588 系列开发板
- Mac Studio M4(通过 VMware Fusion)
特别值得一提的是 Radxa Penta SATA HAT,这款扩展板可以为树莓派提供 5 个 SATA 接口,配合 TrueNAS 的软件 RAID 功能,可以构建一个相当实用的存储系统。我在测试中使用的是 Radxa Rock 5B + Penta SATA HAT 的组合,能够稳定驱动 5 块 4TB 硬盘。
3. 系统安装与配置详解
3.1 准备工作
首先需要下载移植版的 ISO 镜像(TrueNAS-SCALE-25.04.2-aarch64.iso)。由于是社区版本,建议从官方 Git 仓库获取最新版本。安装前需要准备:
- 一个至少 16GB 的 USB 闪存盘(用于制作安装介质)
- 有线网络连接(WiFi 驱动可能不完善)
- 显示器和键盘(首次安装需要)
制作启动盘的过程与 x86 版本相同,可以使用 balenaEtcher 或 dd 命令。我更喜欢使用 dd,因为它在 Linux 系统上更可靠:
dd if=TrueNAS-SCALE-25.04.2-aarch64.iso of=/dev/sdX bs=4M status=progress请务必将 /dev/sdX 替换为你的实际设备节点。
3.2 安装过程
安装过程与官方版本基本一致,但有几点需要特别注意:
- UEFI 设置:确保你的设备设置为 UEFI 启动模式,关闭 Legacy/CSM 支持
- 存储配置:建议为系统单独分配一个 SSD,数据盘使用另外的驱动器
- 网络配置:静态 IP 更利于后续管理,特别是如果你计划使用 VLAN
安装完成后,系统会提示你访问 Web 管理界面。默认地址通常是 https://[IP地址],使用 root 账户和你设置的密码登录。
4. 功能测试与性能评估
4.1 基本功能验证
在我的 Radxa Rock 5B 测试平台上,以下功能工作正常:
- ZFS 文件系统创建与管理
- SMB/NFS 共享
- iSCSI 目标服务
- 基本的用户权限管理
然而,正如开发者提到的,应用和容器功能目前无法使用。这是因为 Docker 和 Kubernetes 组件尚未针对 ARM 平台完全适配。
4.2 性能测试数据
使用 5 块 4TB 硬盘组建 RAIDZ1 阵列,通过 1Gbps 网络测试得到以下数据:
- 顺序读取:~110MB/s
- 顺序写入:~90MB/s
- 4K 随机读取:~3500 IOPS
- 4K 随机写入:~2800 IOPS
这些数据表明,ARM 平台的性能足以满足家庭和小型办公室的需求。当然,与高端 x86 NAS 相比仍有差距,但考虑到功耗和成本,这个表现已经相当不错。
5. 常见问题与解决方案
5.1 启动问题排查
如果系统无法启动,可以尝试以下步骤:
- 检查 UEFI 固件是否为最新版本
- 确认启动模式为纯 UEFI(非 Legacy)
- 尝试不同的 USB 端口(某些 ARM 板只有特定端口支持启动)
- 检查电源是否足够(带多块硬盘时需要 3A 以上的电源)
5.2 网络连接问题
网络问题在 ARM 平台上较为常见,特别是使用非标准网卡时:
- 检查 dmesg 输出确认网卡驱动已加载
- 尝试手动加载模块(如 r8169 或 realtek 相关驱动)
- 考虑使用 USB 转以太网适配器作为临时解决方案
5.3 ZFS 性能优化
在 ARM 平台上,ZFS 可能需要一些特殊调优:
# 减少 ARC 内存占用(适用于内存有限的系统) echo "options zfs zfs_arc_max=4294967296" >> /etc/modprobe.d/zfs.conf # 禁用不必要的 ZFS 特性 echo "options zfs l2arc_noprefetch=1" >> /etc/modprobe.d/zfs.conf这些设置可以在 /etc/modprobe.d/zfs.conf 中配置,然后重启生效。
6. 扩展应用与未来展望
虽然当前版本功能有限,但已经为 ARM 平台上的 TrueNAS 应用打开了大门。社区正在积极工作以解决容器支持问题。同时,这个移植版也为其他开源 NAS 系统在 ARM 上的实现提供了参考。
对于想要深度参与的用户,可以关注项目的 Git 仓库和 GitHub issue 跟踪器。开发者 Joel0 在 TrueNAS Tech Talk 的采访中提到,他欢迎更多的测试反馈和代码贡献。
我在测试过程中发现,这个移植版特别适合作为:
- 家庭媒体服务器的后端存储
- 开发环境中的廉价测试 NAS
- 教育场景下的存储系统教学工具
随着 ARM 服务器芯片性能的不断提升,未来我们可能会看到更多企业级存储解决方案向 ARM 架构迁移。这个 TrueNAS 的 ARM 移植版,或许就是这个趋势的一个早期信号。