聊一下数据灾备方案和NAS暴毙之后的数据恢复

长话短说

  1. 无论是 Qnap、Synology 还是其他不面向商业公司的 NAS,都不应该拿来存放重要数据(除非是少量,如 100G 以内,并能够全量备份到 1 个或更多云存储上,BAT 等企业提供的没有数据完整性保障的云盘不算云存储)
  2. 不要在服务器系统以外的任何地方使用除 Raid1 以外的任何阵列格式,Raid 不是数据灾备手段
  3. 如果真要保存重要数据在非商用 NAS 上,使用云存储或者同步软件进行多点备份
  4. 目前看来,民用 NAS 的最佳使用方式是使用最基础的存储结构(单盘存储/Raid1)、存放重新下载到的音视频/文件、对重要文件自动多点备份到云端、自动离线下载、作为 HTPC/点播机,任何比这更复杂的任务,譬如说虚拟机、容器化,建议老老实实买洋垃圾机架服务器,有钞能力的可以买商用方案,譬如联想 HP 戴尔之类的都有提供。
  5. 综上所述,那些宣传花里胡哨的功能,卖大几千的 NAS 都不值得买,你只需要考虑你除去重要数据(如文档资料、照片)外需要存储的数据大小(如能重复下载的视频、素材图片等),然后买最便宜的双/四盘位 NAS 即可,双盘位配合最大的单盘 HDD 可以做到 32TB、四盘 64TB,相信目前很少人能存这么多数据,超过这个存储量的人,譬如视频工作者建议买 DAS 或者机架式存储服务器。

前一阵子很得意地写了篇博文,晒晒新到手的 NAS,没想到不到一个月就光速翻车了,原因很可能是暴毙的前一天晚上弹窗提示的更新,由于当时我在修改文章,于是点了推迟更新,第二天下班回来发现机子已经无法联网了,各种尝试都没有反应,于是只能去申请维修了。

机子可以慢慢修,但是我不能等大半个月机子回来才重新拿出数据,于是把硬盘们接到电脑上,准备登录 Ubuntu 挂载,结果系统引导完,发现少了一块,当时就纳闷,查了半天发现硬盘通电之后过两秒就没动静了,怕是已经凉了,拿出来单独接硬盘盒也是一样的状态。先把硬盘放一边,心想还好组了 Raid1,剩下的盘还能保持数据完整性,结果 lvscan 一下,发现报了一堆错:

WARNING: Unrecognised segment type tier-thin-pool
WARNING: Unrecognised segment type thick
WARNING: Unrecognised segment type flashcache

查了半天,发现这是一个 Qnap 给 lvm 开发的私有模块,在开启了 Qtier 的时候就是这个类型,而且没有开源,也没有提供能给其他 Linux 使用的二进制,导致无法在外部挂载,那恢复数据也就无从谈起了。客服一问三不知,也无法手动修复,只能在开机状态让工程师远程连过来修复,机子都连不了网拿头来远程?综上所述,我与非商用数据存储方案的蜜月期已经结束了,不过现在该关注的是要怎么恢复出数据。

虽说存储池在机子回来之前已经无法读取了,但是我还有另外两块硬盘存放了 Qnap 的 HBS 套件的全盘备份,赶紧接到电脑上,下载 Qnap 提供的备份读取工具QuDedup Extract Tool经过了一天多的恢复,终于把两周多前备份的最新数据还原到硬盘上,并来到第二个翻车点--稍作浏览后发现有不少文件的大小不完整或者数据变成了全 0,而且文件创建/修改时间没有恢复:

损坏的文件
损坏的文件

还好这一点问题不大,首先大量的小文件,譬如文档之类的,我是集中放在一个文件夹里,然后开个 rclone 的容器,定期地向 GDrv/1Drv 同步。先把文件 clone 回来,检查了一下发现都没有问题,于是覆盖到对应位置。稍作观察后发现剩下的文件,主要分为 3 部分:

第一部分是准备处理的数据,譬如说自动下载的新番、游戏等等,这一部分可以通过 RSS 把近期种子拖回来,然后对着保存位置一顿 hash,就可以把损坏文件揪出来,然后自动下载缺的数据;第二部分同样是下载的数据,是一些压制组制作的 BDRip,这一部分同样可以通过种子修复完成;最后一部分是一些旧存档数据,譬如以前拍的照片视频,源代码之类的,对于这类重要数据,我使用 Resilio Sync 的加密同步功能在公司开发机和放在老家的电脑上进行同步,并定时 rclone 到各种云存储服务上,由于这一部分已经三四个月没有修改过了,所以我可以直接创建个只读同步,把目标设置为还原目录,就可以把损坏数据移除掉,然后把完好数据填回去了,同步完成之后再改为读写同步即可。

至此数据已经完整恢复出来,总结一下就是三大方针:频繁修改的小文件多地(NAS/云存储)备份;下载的文件留好下载记录,通过种子筛查并修复数据;不经常修改的数据通过同步软件多地同步/加密存到云端(这里我备份到云端的数据是 Resilio Sync 的加密同步数据),最后加上全盘备份减少恢复时的下载量。

但是这里由于 HBS 套件的不可靠性--备份恢复出来的数据居然损坏了部分,导致需要下载的数据远超预期,这令我十分不满,升级系统居然让机子无法联网,这也是其软件稳定性的又一例证,除此之外在机架式服务器上跑了大半年的都没问题的硬盘,插到 Qnap 上居然半个月就暴毙了,也让我十分怀疑其供电系统,还好这块硬盘买回来的时候只是一两百块,也不算心疼。

虽然其易用性远超机架式服务器,但是技术方案过于封闭,在出现风险的时候只能依靠技术部门远程修复,我已经计划等机子换新回来之后,丢回老家作为 HTPC 使用了--老老实实用 4 盘 Raid1+厚分区,即使想恢复数据也可以在 Linux 下轻松挂载,只作为 HTPC 使用的话只要装个 Resilio Sync+QT 就完事了,由于支持遥控器,还可以直接接电视上开 Kodi 看视频。至于我自己的数据,还是老老实实捡洋垃圾服务器搭 NAS 吧。