近几个月折腾NAS的踩坑记

早在2019年,我便购置一台通过网线互动的硬盘阵列箱(简称“NAS”)以备份资料。过了一年半,我了解到“3-2-1 备份原则”,认为单靠一台在线备份设备并不保险;此外,我也正为每回同步照片和插画,都得手工操作而苦恼。遂启动了新一轮折腾之旅。

我的目标:

  1. 给数据确定备份优先级,划分为“值得执行 3-2-1 原则”、“双副本”与“单副本”;
  2. 建立半自动的离线备份池,偶尔上线,备份“3-2-1”与“双副本”数据;
  3. NAS和手机间建立牢靠的同步联系,最好能穿透内网;
  4. 支出尽可能少。

零、点兵

折腾之前,清点了“前世”留下的硬件资源:

  • “蜗牛星际”牌 NAS 一台,配备两块 2TB 硬盘(互为镜像);
  • 闲置的一块 1TB 移动硬盘、三块 500GB 硬盘、一块 250GB 硬盘;
  • 一台笔记本,配备 500GB 机械硬盘,经手了“前世”于 2005~2020 年间产生的所有零碎数据;
  • 一部台式机,无机械硬盘(以下不会用到它);
  • 闲置的 Athlon 250 准系统,百兆网卡;
  • 闲置的 A8-5600K 准系统,千兆网卡;
  • U 盘与存储卡若干;
  • 其它配件若干。

数据方面,NAS 累积了约 1.2 TB 资料,笔记本上有约 300GB 的未经整理分级的数据,还有散落于闲置硬盘内的杂项若干。

athlon
——老掉牙的Athlon平台,“前世”拾掇破烂的集大成之作

一、归类

不少资料过于陈旧,现不再为我所爱,也徒增存储负担。经过筛选,大致成了以下结构:

资料类型NAS移动硬盘云盘或离线备份池笔记本
照片-
插画-
Miku 相关音乐、现场录像等-
新电影、动画和其它音乐--
归档资料,含老电影、动画等---
文档(只属于我的)-
其它文档--
我尚可接受的“前世”的老嗜好,包括:
软件安装包、网络图片及视频等
--
“前世”的其它嗜好,包括:
游戏安装包、系统镜像等
---

这其中,插画也以 2021 年元旦为界,此前收藏过的全部归档了。

二、打铁

2.1 一打白铁精——准系统之抉择

为了免于破费,离线备份池要从两个闲置平台着手。它们缺点显著:A8 平台功耗可达百瓦(!),而 Athlon 平台网卡是个硬伤。就我的需求而言,千兆网卡是必需品,无奈先用 A8 平台测试软件系统……

功耗太高,用着总觉得有些膈应。这几天决定在 Athlon 平台上再试一试,甚至为其购置了千兆网卡。其 SATA 接口完全能喂饱网卡;唯一担心的是性能不足(后来亦印证了这点)。

RTL

什么鬼!这就是我 15 块买来的网卡!网口都不焊一个,叫什么网卡!
——于是再破费五十准备网口及其它电子器件(与本项目无关)。

本轮耗资:65 米

2.2 二打白铁精——硬盘之抉择

手上的闲置硬盘经ReadSpeed软件测试,结果如下:

硬盘年份容量(G)最大读速(MB/s)预计用途
A2010500123.8新电影、动画等
B2011500124.6照片、插画、文档等
C2018500188.5保留备用
D2008250102安装包、镜像、网络图片视频等
E20131000N/AMiku 相关音乐及录像,照片

起初,为保险起见,我以新硬盘 C 自动同步照片、插画等数目多而且经常增添的文件。然而,这个系统最终要转移到 Athlon 平台上运行,我感觉还是消耗旧硬盘的剩余价值为好,其速度正好赶得上网卡。最新的安排写在表格里了。

2.3 三打白铁精——软件之抉择,窘迫至极

离线备份池的功能只有一个:作为 Rsync 客户端,开机后定时拉取指定位置的内容。先前,我曾尝试用 Windows 承担这项任务,但 Windows 本身过于臃肿,对宝贵的 SATA 接口必占其一;且易被网内其它 Windows 设备影响(如病毒感染)。遂从非 Windows 方案里拔尖子:

  • UNRAID:口碑较好,高度可定制,不过需要商业授权 可以试用。
  • TrueNAS:支持传说中的 ZFS 分区格式,内存也管够,不过操作逻辑不太能理解……插件功能依赖GitHub,在大陆相对不管用。
  • OpenMediaVault(OMV):操作界面简洁易用,有清华大学镜像站撑腰,硬件消耗(看似)极小。

就决定是你了,OMV!快到我的 U 盘里来!

……
……
等会儿,事情不应该这样发展……我堂堂一个比机械盘还快的 U 盘,屡屡卡在安装过程中。我相当迷茫,没有别的 U 盘可堪大用了。
趁 618 这当儿整来俩铠侠 U 盘(型号:U202),我想品牌货应该至少能承载一个轻度系统……结果这玩意磨洋工,完成安装需三小时;登录管理界面,卡顿感明显,顿觉上当。
经此一役,我彻底丧失对 U 盘的信任,决定另购固态硬盘;最终在百元以下的一堆破烂中,选择了联想 SL700(傲腾是个好东西,可惜平台太老,不支持)。关键的 4K 读写能力强了上百倍;用三分钟(!)完成了安装。但让它承载 OMV 这个不超过 2GB 的轻量系统,是不是大材小用……以及,这用在 Athlon 平台上相当尴尬——两个 SATA 接口仅剩一个了。
对于 OMV,我还有另一个要求:空闲时停转硬盘。但这功能,不知怎的,未能按预期工作:建立完同步任务与 SMB 共享,硬盘会每分钟尝试停转,而后又恢复转动,后台记录显示其无法取消该硬盘的挂载。
结论是 OMV 不大行。得试试旁的方案了。

UNRAID本体约 300 MB,被浓缩在五个文件里,即便装进最孱弱的 U 盘(例如U202)也可快速响应。这是它给我最直观的感受。
进去一看,它仅提供了基本的共享功能,要别的都得装插件。自带 Rsync,但只能以命令行调用;第三方 Rsync 应用也搞不明白。
往 Community Apps 里头一看,有 Syncthing 耶!第 3.3 节再研究它。

TrueNAS的话,在管理界面里,Rsync 支持通过 SSH 或模块连接。关于“模块”,我不确定是否跟 OMV 里头指定目录那样使用,也没有“密码”选项,试了下连不上。SSH 更不可能,NAS(群晖)管理界面不存在注入公钥的入口,用命令行也有风险,怕不小心搞坏了NAS。

……
最终,敲定了 Rsync 命令加计划任务crontab 的方案。给 A8 平台安装完整 Linux 系统——Deepin,备份之余,体验下国产系统的精致美。

本轮耗资:约 120 米

三、搭桥

这两年,我遇到一个“老大难”问题:每当搜罗插画,我的插画集总要经历狂风骤雨,原来没被归类的移去这个或者那个目录;不宜公开者转去更机密的地方;重复下载的要删除;等等。而这个在笔记本上做的更改,只跟NAS确立了同步关系;手机、离线备份池等总要手动拉取,费劲得很。
至于内网之穿透,一直以来,我并不具备剩余的财力(以至精力)去解决。当然,仅在家中进行同步也能凑合过日子,不过多个添头总归是好的。
于是着手研究起了各种同步方案:

3.1 给手机穿针引线

  • Synology DS File
    ——群晖DSM 6.x 手机应用之一,可浏览文件及同步手机相册。经试验,其同步功能失效。
  • Resilio Sync
    ——应该可以在家中同步,在外面不太灵。大概是因为仅需单向添加“设备ID”,而吃了闭门羹。这里就不试了。
  • 微力同步
    ——Resilio的一种替代品,软件闭源,我不太信任其可靠性。
  • Syncthing
    ——Resilio的另一种替代品,开源,比起Resilio应该不太容易完蛋。
    作为 DSM 套件安装后,其能够选择 NAS 上的任意目录对外共享。当手机也安装上Syncthing客户端,互相添加“设备ID”,便可以“文件夹ID”为暗号接应了。同样地,手机端也可选择任意目录存取共享文件。可以说极其契合我的需求。

3.2 NAS与电脑的连接

这里以19.7GB、近8000张插画作为测试样本。

  • Synology Drive
    ——NAS系统自带之方案。当同步插画时,效率不尽人意,每秒处理近20张,硬盘占用25~60%。
  • Syncthing
    ——手机上可以,不如电脑也试试看?“加好友”之后,握手用了一两分钟,此后以约30M/s的速度传输,硬盘占用60~90%。中途断开了三四回。

没什么好说的。稳字当头,群晖套装够用。

3.3 NAS与离线备份池的连接

  • Synology Drive
    ——诚然,我们可以在这安装 Windows 或 Ubuntu/Debian,专门跑这个客户端。不过,Windows 臃肿且易受牵连(我再强调一遍),Ubuntu 也用腻了。
    事实上,Rsync 能完成的任务,不必交给这么个效率低下、配置繁琐(又得做成“团队文件夹”,在我看来,越少越好)的家伙来干。
  • Hyper Backup
    ——群晖DSM套件之一,将整个共享文件夹备份到外部硬盘。经查询,其备份形式为一份独有格式的文件,不合要求。
  • USB Copy
    ——群晖DSM套件之一,直接复制文件到USB存储器。……算了吧,只有那移动硬盘需要这项服务,况且我一定不会让它持续通电的。
  • WebDAV
    ——搞不明白。
  • Syncthing
    ——这货真是万金油,作为Docker容器出现在了UNRAID系统里。在 Athlon 平台上连接 NAS,同步插画,CPU 近乎吃满(70~98%),同时速度仅有 20M/s 不到。这个平台没法再用了,性能不够。
    这里所需配置繁杂得多(原来仅分享 2 个目录,现在要 6 个,还必须分配“可读写”所有目录的权限——我对此不放心),便不再于 A8 平台上测试。
  • Rsync
    ——可在绝大多数 Linux 发行版上完成同步,也为 OMV、TrueNAS 等支持。
    用在 A8 平台上运行的 Deepin Linux 进行测试。速度尚佳,650 秒完成了 41.8GB、近 24000 张插画的拉取;这当儿硬盘反而略微跟不上网速;CPU 占用 50~60%(其中一线程 80~90%,其余约 50%)。

rsync

3.4 内网穿透

嗯,之前都在内网测试。家中同时通了电信与广电宽带,这里尝试从广电网络访问通了电信的NAS。

  • QuickConnect
    ——正版群晖提供的穿透功能,我财力有限,暂不考虑。
  • 蒲公英
    ——商业服务,可免费串联三台设备。三台……现在刚好够,将来不大确定够。
  • Zerotier、微力同步
    ——服务可靠性比较令我担忧。
  • Syncthing
    ——这几天似乎开始被人盯上,而且广电宽带刚刚断了,无法再做测试。

算了,没这功能也不会少几块肉。

四、总结与展望

近三个月的折腾,最终以花掉近 200 块(其中过半等于白给)、寥寥几条定时命令草草收场。关键在于,我又没有什么 All in One、什么视频转码、什么旁路由等等的需求,那些NAS系统的可玩性对我而言,不仅多余,而且冗杂,那些配置指南实在难以下咽。
我甚至不需要做定时同步;只要开机后跑一趟写了几条 Rsync 命令的脚本,也就完成任务了。让它开着只是徒增电费。

至于手机端同步,这次完美达成了。

我边做试验,边写这篇札记,第五天可以画句号了。原来我的需求竟是如此简单……
近期将着手自制气象站——先前购置的电子器件实际是为此准备的。
哦还有那个 Athlon 平台……鉴于 A8 这套随时可能送人,我打算升级四核。就这样。