NAS 备忘录其三:一文解读 TrueNAS Scale 如何替代群晖和部分核心功能

2024-01-16 19:29:15 10点赞 53收藏 14评论

许久不见!跟许多值友一样,笔者相当钟爱群晖系统,它提供了简洁的操作环境、稳定的服务质量、堪用的扩展空间;2022 年筹备资料服务器(NAS)时便引进了群晖系统。尽管其依旧十分可靠、任劳任怨,但时间一长,许多问题浮出水面,也让笔者不禁要为系统的可持续性着想;于是有了本次迁移过程。细节繁多,且看笔者一一道来。

零、起因

最早到 2019 年秋,笔者便开始接触群晖系统,四年间其基本满足了笔者的需求:文件服务和备份、文档同步、Docker 等等。那么为何笔者决意要脱离群晖系统这个舒适圈?主要有以下考量:

  • 系统安全性不足,新版限制较多。四年间,所用群晖系统停留于 6.2 版本;自 7.0 版本发布以来,群晖不仅逐渐收缩对 6.2 版本之支持,且在新系统中做出更多针对非授权设备的限制。非授权设备普遍有个特点,即不能随意升级系统,否则后续不可引导;得不到更新,也便增加一分受到网络攻击的风险。即使要升级,很不幸,Redpill、RR 等引导程序相继停止更新或不再公开,后续第三方维护版本是否可靠有待商榷。

  • 内核版本陈旧。尽管当前群晖系统所用内核(Linux 4.4)可以基本适配资料服务器,但它也有安全性和对未来新硬件(如十二代 Core)的兼容性问题,可能不利于日后的进一步升级。TrueNAS、Unraid 所用内核(6.1.x)要先进很多。

  • 内网传输速度有隐性限制。不知为何,通过 SMB 从服务器下载时,速度被限制于 60 MB/秒。

  • 应用版本较旧或依赖于第三方分发源。以 Docker 和 Tailscale 为例,前者因群晖停止支持,停留于 20.3 版本;后者则需从“矿神”软件库获取,随着群晖 6.2 版本日薄西山,该软件库结束支持只是时间问题。

旧的不去,新的不来;是时候回炉再造,拥抱新技术了。

另及,目前资料服务器配备为:

  • 机箱/电源/主板:惠普 800 G3 SFF

  • 处理器:Pentium G4600

  • 内存:三星 DDR4-2133 4GB x2

  • 固态硬盘联想 SL700 (128GB)

  • 普通硬盘 #1:希捷 Exos X16 (16TB)

  • 普通硬盘 #2:希捷 SkyHawk (4TB)

该服务器和《其一》所述是同一台,不同在于后续增加 4GB 内存一根。

一、理论考究

凡事做好功课,方可有备无患。笔者开始就新软硬件方案进行考究。

1.1 操作系统考究

笔者对新操作系统的要求是:安全、可靠,软硬件易于升级和维护,免于破费,支持 Docker。汇总一下较流行的、可用于资料服务器的操作系统:

  • TrueNAS Core/Scale

  • Unraid

  • Open Media Vault (0MV)

  • 群晖

  • 普通 Linux 系统

  • Windows

其中,TrueNAS Core 基于 FreeBSD 内核,不具备支持 Docker 之基础,故略过。
Unraid 需购买授权(有“开心”的办法,但如此则软件升级受阻);需通过 U 盘运行,可靠性稍逊。略过。
OMV 系统在早年是有试水经验的;功能马马虎虎,软件获取有一定阻碍,浅尝辄止。
只要给以恰当的配置和足够大的软件源,普通 Linux 也有成为资料服务器的潜力——不过笔者当下没那份闲心去重温 Arch Linux 安装之路……
至于 Windows,自身的资源开销就不小,Docker 支持则要绕些弯路(依赖 Linux 子系统,微软文档有详细说明 ,笔者对网上各种授权工具也不放心。
仅剩下 TrueNAS Scale:基于 Debian Linux 而建,稳定可靠且完全免费,对新平台和 Docker 支持较佳。

1.2 TrueNAS Scale 相关特性考究

新系统在很多特性上无疑是区别于群晖系统的——尤其是 ZFS 文件系统的支持。针对这种文件系统,笔者特意做了相关调查,结论是:ZFS 文件系统之可靠性基本与 BTRFS 相当;现有硬件无需调整即可支持新系统;可以引入 NVMe 固态盘用于引导或缓存。

具体而言,笔者通读了 Jason Rose 撰写的《TrueNAS 和 OpenZFS 入门详解》以及诸社交平台的帖子,其中和硬件相关的有:

  • 处理器需求。一般“四核”处理器可堪一用,部分需求如 ZFS 加密需更高算力。

  • 内存需求。TrueNAS 会利用闲置内存空间作为一级缓存;8 GB 是底线,16 GB 适合小型服务器;并发用户越多、文件访问频次越高,内存需求越大。考虑到家中几乎只有笔者一个用户,故现有内存无需调整。
    此外,据传 ZFS 文件系统有“每 1TB 存储需耗费 1GB 内存”之要求;经查证,该要求当且仅当存储池的区块去重(Deduplication)功能启用时成立,其余情况下,内存仅略为影响系统的读取性能,即缓存命中率。

    对于内存校验功能(ECC),TrueNAS 官方文档和《详解》称并非强制要求,但推荐使用。考虑到内存比特翻转风险极低,即使在进行全盘校验(即“数据清理”或 Scrubbing)时,发生不可逆错误的风险也微乎其微。此前在群晖系统中曾进行多次数据清理,未见错误报告;故 ECC 不是目前需要关注的特性。此外,如将来有就地升级处理器之需,如七代 Core i5,则新处理器连支持 ECC 的余地也剥夺了。

  • 二级缓存需求。选项有“二级动态切换式缓存(L2ARC)”“独立 ZFS 意向暂存(SLOG)”以及“元数据专用分区(Special Metadata VDev)”。L2ARC 对并发读取有益,SLOG 对并发写入有益,但在家庭环境中罕见并发操作;据官方文档,“元数据分区”是和存储池强绑定的,一荣俱荣,一损俱损。最终决定通过 SLOG 试水——毕竟这次硬切换要求从多地往回倾倒数据,可以验证 SLOG 是否适用于当前环境。

  • 固态硬盘需求。TrueNAS 支持从 NVMe 固态盘引导,非常可靠;系统本身占地较小,小至 16GB 的固态盘也足以承载——这里包括笔者垂涎已久的蓝厂 Optane(傲腾)固态盘。既有 120G 固态盘可用于托管 Docker 容器数据。

  • 其余硬件需求不影响新系统之运作。

对于软件,我比较关心的是如何管理各种应用。得知新系统依赖 Kubernetes 容器提供额外服务,但要连接国际开源交流平台方可获得这些容器必需的信息,且据传容器管理方式和 Docker 稍有不同;早期版本(注意,这是个伏笔)的 Scale 对 Docker 有充分支持。可以考虑绕过系统管理界面,安装 Portainer 以便统一管理诸容器。

二、前期准备和系统安装

这次迁移要求格式化文件系统,故需要清空资料服务器的一切数据。笔者准备总计 11 TB 的海量空间来备份,均为既有硬盘,分布于移动硬盘盒、联想个人云 A1 和旧资料服务器(蜗牛星际)。其中文档、照片、音乐等重要资料需有两个副本(总大小不足 1 TB),其余保留单副本。既有 Docker 容器数据一律遗弃(当然可以保留,不过笔者希望另起炉灶)。

如上文所述,硬件需求基本等同于群晖系统;此次出于尝鲜和寻求耐久度高的二级缓存之需,购置 Optane 固态盘三根,作价 38.7 元。此外准备了佳翼牌 PCIe—M.2 转接卡两片,成本 30.8 元。主机配备四个 PCIe 槽位和两处 M.2 槽位(分别供无线网卡和固态盘使用),故三根 Optane 可一并安装。

Optane 固态盘全家福Optane 固态盘全家福

服务器支持从 NVMe 固态盘引导,故安装 TrueNAS 至其中一根 Optane。系统版本为当前最新的 23.10.1。硬盘均格式化为 ZFS;希捷 16 TB 硬盘划入主存储池,另两根 Optane 分别划为主存储池 SLOG应用级二级缓存池(实为普通存储池,分配数据集给 Docker 容器使用);启用 SMB 服务,向主存储池恢复数据。恢复完毕后,取回希捷 4TB 硬盘并格式化,作为热备份存储池

格式化后,可见主存储池之可用容量为 14.42 TB,较群晖系统中的 13.97 TB 增加良多——增量近乎 500 GB。但是,热备份池的容量仅增加 0.02 TB。

三、调试和验证

基本存储服务就绪,让我们为它增添更多可能性!

3.1 SLOG 在实际环境中的可行性

从监测数据可见,在持续两日的恢复资料过程中,SLOG 的吞吐量接近于零,证明其对经 SMB 共享产生的请求没有响应。数日后取消 SLOG,改为将这根 Optane 划入缓存池,进行后续测试。

自 1 月 5 日起 SLOG 所属硬盘的吞吐情况自 1 月 5 日起 SLOG 所属硬盘的吞吐情况

3.2 数据集/目录访问权限

数据集/目录权限的设置难度明显高于群晖系统。一般设置下,选项有目录所有人、所属用户组,以及所有人、用户组和其他用户的访问权限。同时有高级访问控制(ACL),可以认为 ACL 功能与群晖系统的权限管理基本一致。比较简明的做法是,将根数据集以下一切数据集/目录的所有者一律改为可公开访问的非 root 用户(组),且赋予其读写权限。

3.3 Docker 可用性

系统自备的 Charts 应用服务不尽人意。一方面,Charts 列表要从国际开源交流平台下载,不可能直连,“镜像”更新频率也不高;另一方面,“Custom App”在唯一一个 Charts 列表不可用的情况下根本没有入口,即使有入口,设置也让人摸不着头脑。同时,Charts 可用的软件远不及 Docker 要多。

正当笔者试图以命令行操作 Docker 时,出现意想不到的情况:Docker 命令根本不存在!这意味着最新版 Scale 23.10.1 根本没有预装 Docker!试图利用 apt 时,又发现尽管 Apt 命令存在,却不能提权使用;换言之,iXsystems 故意取消了 apt 的执行权限!通过 chmod +x /usr/bin/apt 给予权限后,再来搜索官方仓库,确有提供 Docker,虽版本较早(20.10.24),但聊胜于无,遂安装。(引入普通 Debian 软件库的话,虽可加速下载,但笔者担心有破坏某些定制组件的可能,故未采用。)

中文社区就此问题有零星讨论,这里找到了一篇知乎专栏,其介绍通过 Jailmaker 引入 Docker,供值友参考。

参考网上教程,在命令行下部署 Portainer,此处不复赘述。

3.4 Docker 应用安装

登录 Portainer 部署其它应用。笔者所需应用有:

  • 媒体管理:Jellyfin、Plex

  • 私有 Git 服务:Gitea

  • 文件同步:NextCloud + MariaDB、Syncthing

  • 离线下载:qBittorrent

  • Docker 容器管理:Portainer

  • 内网穿透:Tailscale

  • 文件在线管理:File Browser

不同于群晖,Portainer 界面不会提供 Docker Hub 等仓库的搜索结果,需要手打镜像名称(分支)来引入(因此,需要另辟蹊径来获得镜像的具体地址,当然下面截图有)。但创建容器时,Portainer 提供的选项远远丰富于群晖:例如,GPU 等硬件设备可以单独指定,毋须给予高权限即可调用。

群晖的文件同步功能非常实用;为替代之,选择 Nextcloud 及其依赖的 MySQL (MariaDB) 并安装。MariaDB 需要预先指定以下设置:

  • 环境变量:MYSQL_DATABASE / MYSQL_USER / MYSQL_PASSWORD / MYSQL_ROOT_PASSWORD。前三者是初始数据库名称和用户,供 Nextcloud 使用;后者是数据库最高权限密码。

  • 命令行参数:--transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW

  • 映射目录 /var/lib/mysql,存储数据库。

  • 分支:lts。无需跟进最新版本 latest

  • 主机名称(Hostname):mariadb。

二者被划入独立的内联网络。Nextcloud 预先指定的设置有:

  • 环境变量:MYSQL_DATABASE / MYSQL_USER / MYSQL_PASSWORD / MYSQL_HOST 。必须和 MariaDB 的设置一致。后者填写数据库主机名称“mariadb”。

  • 映射目录 /var/www/html,存储网页、凭证、同步文件夹等。

Gitea、Jellyfin 等应用设置与在群晖系统上基本无异。其中,Jellyfin 和 Plex 单独指定 GPU /dev/dri/renderD128 以便转码,无需再赋予高权限。

如果在容器的环境变量中指定用户(PUID)和用户组(PGID),需要注意被映射的数据集/目录所有者要与设置一致,且有读写权限。这两项设置并非强制;笔者在 Jellyfin 和 Plex 的设置当中并未指定用户(组)。在群晖系统,管理员帐户被赋予一切共享文件夹的读写权限,平时仅指定管理员帐户,故这个问题并不明显。

应用部署完毕应用部署完毕

关于 Jellyfin 运行表现:

由于早前放弃了刮削好的数据库,这回要重新刮削。将刮削所需接口对应的 IP 写入主机系统的 Hosts,重启容器,刮削基本正常。

需人工检索 IP 地址的有:

api.themoviedb.org
api.thetvdb.com
image.tmdb.org

转码表现正常,如下图所示,转码某动画片时有 75 fps 的速率。

转码情况转码情况

同时观察到转码产生的临时文件被均匀写入缓存池的两根 Optane。现在缓存池有约 21.3 GB 空间,以转码目标码率为 10 Mbps 计算,可存储约 12 小时的视频,那么可应付至少 4 部电影的转码视频流——堪称实用。

3.5 热备份和容灾设置

数据安全方面,TrueNAS 管理界面提供多种方案:数据清理、云同步、定期快照、Rsync 同步、复制和硬盘运行参数(SMART)检查,和群晖系统基本一致。云同步支持较有限,仅有国外云服务商接口和 SFTP、WebDAV 等通用协议可用。联想个人云支持 WebDAV 挂载。最终作出以下安排:

  • 数据清理:所有存储池每月一次。

  • 云同步:文档、照片同步至联想个人云,每日一次。

  • 快照:Docker 容器数据和重要资料每日一次;前者保留两日,后者保留两周。

  • Rsync 同步:无。

  • 复制:Docker 容器数据和重要资料从固态盘、主存储池复制到热备份池,每日一次。群晖系统中,与“复制”相似的做法是设置一个定期运行 Rsync 的任务。

  • 硬盘运行参数检查:短检查每两周一次,长检查每四个月一次。

3.6 不间断电源支持

去年“双十一”,笔者购得硕天牌不间断电源(UPS)UT650EGC 一台,群晖对其支持良好;网上资料称该品牌同样受 TrueNAS 支持。在“服务 - UPS”设置中选用 “usbhid-ups” 为驱动(型号任意),随后启动 UPS 服务即可。

四、评价

TrueNAS 仪表板TrueNAS 仪表板

作为推出两年有余的新分支,TrueNAS Scale 在其最基本的用途——网络存储服务上是非常称职的;阵列冗余、数据保护、外地备份、SSH 公钥鉴权,应有尽有。但在其余方面,该系统似乎不大上心:例如在管理界面,“仪表板”上可见网络实时吞吐量是实际值的 8 倍(或为单位运用错误),以及线程由“零”起计;Charts 和应用系统在大陆的可用性存疑,而 Docker 不再随新版系统预装;apt 包管理命令被故意锁定;自带功能远不及群晖丰富;等等。尽管如此,其自由度仍远超群晖系统,免授权亦使其不复有后顾之忧。 行百里者半九十;望再接再厉。

这也是首次尝试将多个 Optane 固态硬盘应用于资料服务器上。Optane 因耐久度高,用于缓存是非常合适的,但也需因地制宜;家用环境中鲜见并发访问和 iSCSI 这类并发应用,因此作为存储池的二级缓存作用有限;而作为独立的缓存池时,实用性更强,但也受制于容量,仅部分应用可从中受益。如有大缓存之需,应考虑采用企业级 NAND 固态盘产品。

有任何疑问可以留言,笔者会尽量答疑解惑~

展开 收起

联想个人云A1nas网络云存储【单盘位免安装内置3T西部数据红盘】2G内存私有云家庭网盘企业硬盘

联想个人云A1nas网络云存储【单盘位免安装内置3T西部数据红盘】2G内存私有云家庭网盘企业硬盘

暂无报价

JEYI佳翼海星M.2转pci-e4.0转接卡nvme固态硬盘扩展卡pciex1转m2

JEYI佳翼海星M.2转pci-e4.0转接卡nvme固态硬盘扩展卡pciex1转m2

¥19.9起 去购买

硕天cyberpowerups不间断电源220v家用停电备用电源兼容群辉威联通极空间nasupsUT650EGC/360w手机APP

硕天cyberpowerups不间断电源220v家用停电备用电源兼容群辉威联通极空间nasupsUT650EGC/360w手机APP

暂无报价

硕天ups不间断电源威联通群晖NAS备用电源智能稳压断电延时

硕天ups不间断电源威联通群晖NAS备用电源智能稳压断电延时

248元起

Lenovo 联想 个人云A1 nas网络云存储 2G内存 内置4T西数红盘

Lenovo 联想 个人云A1 nas网络云存储 2G内存 内置4T西数红盘

1019元起

联想个人云T2 网络存储服务器nas 四核CPU+2G内存 私有云 网盘企业硬盘 X1 4G五盘位+配2块西部数据4TB

联想个人云T2 网络存储服务器nas 四核CPU+2G内存 私有云 网盘企业硬盘 X1 4G五盘位+配2块西部数据4TB

暂无报价

联想个人云A1 nas网络云存储 【单盘位 免安装 内置3T西部数据红盘】2G内存 私有云 家庭网盘企业硬盘

联想个人云A1 nas网络云存储 【单盘位 免安装 内置3T西部数据红盘】2G内存 私有云 家庭网盘企业硬盘

1295元起

联想个人云T2 网络存储服务器nas 四核CPU+2G内存 私有云 网盘企业硬盘

联想个人云T2 网络存储服务器nas 四核CPU+2G内存 私有云 网盘企业硬盘

暂无报价

联想个人云T2 网络存储服务器nas 四核CPU+2G内存 私有云 网盘企业硬盘 T2 敦煌版 +配2块4TB硬盘

联想个人云T2 网络存储服务器nas 四核CPU+2G内存 私有云 网盘企业硬盘 T2 敦煌版 +配2块4TB硬盘

2399元起

UGREEN 绿联 DX4600 Pro 4盘位NAS(奔腾N6005、8GB)

UGREEN 绿联 DX4600 Pro 4盘位NAS(奔腾N6005、8GB)

1849元起

ZSpace 极空间 私有云 Z4Pro 8G版 4盘位NAS存储(N97、8GB)

ZSpace 极空间 私有云 Z4Pro 8G版 4盘位NAS存储(N97、8GB)

2485.01元起

ZSpace 极空间 私有云 Z4Pro 性能版 NAS存储(N305、16GB)

ZSpace 极空间 私有云 Z4Pro 性能版 NAS存储(N305、16GB)

3499元起

UGREEN 绿联 DX4600 四盘位NAS存储 (赛扬N5105、8GB)

UGREEN 绿联 DX4600 四盘位NAS存储 (赛扬N5105、8GB)

1749元起

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

2849元起

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

2474.51元起

ZSpace 极空间 私有云 Z4Pro 16G版 4盘位NAS存储(N97、16GB)

ZSpace 极空间 私有云 Z4Pro 16G版 4盘位NAS存储(N97、16GB)

2799元起

ZSpace 极空间 私有云 Z423 旗舰版 8盘位NAS存储(锐龙R7-5825U、64GB)

ZSpace 极空间 私有云 Z423 旗舰版 8盘位NAS存储(锐龙R7-5825U、64GB)

5899元起

UGREEN 绿联 DX4600+ 4盘位NAS(赛扬N5105、8GB)

UGREEN 绿联 DX4600+ 4盘位NAS(赛扬N5105、8GB)

1999元起

ASUS 华硕 AS6702T 4盘位NAS存储 黑色(Core2 Quad Q8300、4GB)

ASUS 华硕 AS6702T 4盘位NAS存储 黑色(Core2 Quad Q8300、4GB)

4299元起
14评论

  • 精彩
  • 最新
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
53
扫一下,分享更方便,购买更轻松