随着家庭及中小型企业对存储和共享需求的日益增长,高效、可靠的文件存储系统成为支撑各类应用的关键。
在众多存储系统中,TrueNAS以其卓越的数据完整性与可靠性、简洁高效的应用程序部署和管理、灵活的虚拟化应用添加能力,以及出色的可用性,赢得了广大用户的青睐。
然而,目前TrueNAS主要支持x86平台,限制了其在成本更低、功耗更小的ARM平台上的应用。
为了提升NAS系统的整体性能,更适应存储应用的软硬件系统,土星云团队经过深入研究与开发,成功将TrueNAS移植至ARM系统,推出了具有创新性的NAS存储服务器。
-
一、环境准备
- TrueNAS版本:23.10.1.2
- 系统要求:Debian 10及以上(支持VM或ARM裸板)
- 内存需求:16G
- 磁盘空间:≥15G
二、部署流程
2.1 安装开发环境
使用以下命令安装必要的软件环境:
~$ sudo apt install build-essential debootstrap git python3-pip python3-venv squashfs-tools unzip libjson-perl rsync
2.2 构建与适配TrueNAS系统
2.2.1 构建流程
基于TrueNAS的scale-build构建框架,我们在TS-23.10.1.2版本基础上进行适配。首先克隆构建框架的Git仓库:
~$ git clone -b TS-23.10.1.2 https://github.com/truenas/scale-build.git
在环境准备完成后,通过运行make命令(需以root或sudo权限执行)开始完整的构建流程。该构建包括以下步骤:
- 1)make checkout 从网上获取最新的软件源,置于source目录下;
- 2)make packages 从拉取下来的源构建所有*.deb包;
- 3)make update 生成独立的更新文件;
- 4)make ISO 生成ISO映像,位于tmp/release目录下;
2.2.2 适配ARM平台
由于TrueNAS原生支持x86架构,为了在RK3588平台上运行,我们需要对构建框架进行一系列适配工作:
1)修改软件源
TrueNAS的软件源定义在conf/build.manifest文件中。其中所有的软件包来源于apt-repos中url定义的源路径。默认情况下,这个源路径指向TrueNAS自行维护的源,其中仅包含AMD64架构的软件包。因此,需要将其修改为开源的Debian apt源,以支持ARM64架构,并将相关AMD64架构的软件包改为ARM64架构的软件包。如下图:
2)修改git源
在conf/build.manifest文件中。repo参数定义的是远程git仓库的路径。可根据自己的需求修改或移除源路径。
其中需要注意的是,为了让系统运行在rk3588,需要将kernel的repo路径替换为rk3588的内核源码路径,并确保内核版本为6.x.x。
3)deb打包调整
debian软件包构建系统是通过一系列标准化文件和工具,定义了软件包的构建和安装过程。每个git软件源里面都包含了debian目录,它们描述了软件包的元数据、构建步骤、依赖关系和安装路径等信息。其中:
- debian/control:包含软件包的元数据,如名称、维护者、依赖关系等;
- debian/changelog:描述软件包的更改历史。使用 dch 工具来生成这个文件;
- debian/rules:这是一个Makefile,定义了如何构建软件包;
- debian/source:用于指定源包的格式和相关选项;
- debian/copyright:描述软件包的版权和许可信息;
需要特别关注的是debian/control和debian/rules这两个文件。在debian/control文件中,会定义deb软件包的构建依赖,这些依赖位于Build-Depends属性下。我们首先需要将其中指定的AMD64架构的软件包替换为相应的ARM架构的软件包。此外,对于那些只在AMD64架构上特有的软件包,需要适当地进行移除。与此同时,还需要检查debian/rules文件,确保其中的构建规则和指令也适用于ARM架构,必要时进行相应的修改和调整。这些步骤将确保软件包能够在ARM架构下正确构建和运行。
4)ISO制作调试
在修改完相关的软件源、git源和debian规则之后,可以通过单步执行上述的make命令进行调试。编译过程产生的日志将生成在scale-build下的log文件夹。通过逐步运行构建过程中的各个命令,并分析相关日志,可以详细观察每一步的输出和行为,从而更精准地发现和修复错误。最终生成可以适配rk3588平台的ISO映像文件。
通过一系列的适配工作,我们成功将TrueNAS系统移植至ARM平台,并在土星云网络存储服务器DN110M-CS产品中得到了验证,为用户带来了全新的存储体验。该产品不仅继承了TrueNAS系统的优势特性,还融入了ARM系统低功耗、资源占用小、自主研发及成本较低等优势,为用户提供了全方位的NAS存储一体化解决方案。
我们致力于为用户提供卓越的存储体验,让数据存储变得更加简单、高效。