我的数据备份方案

写这篇文章时,就已经感觉到这可能是我数据备份方式的一个里程碑式的事件。

简单来说,基于我自己的使用需求,我终于找到了一个数据备份的完美方案。

在此分享记录。

前因

喜欢电子产品的人,对于数据备份的重要性,应该都有一个清晰的认知。

我正是因为对于数据备份重要性的看重,于是在 2021 年初,自己组建了一套黑群晖。

主板用的是爱国嘉的 B365m,cpu 用的是 G5420T。

之所以这么买,也是经过认真做作业的。G5420T 能够支持群晖核显硬解,对于 nas 来说性能够用,功耗还低;B365m 自带 6 个 sata 口。

这么搭配下来,扩展性和功能性都达到了一个完美的平衡。

对于 nas 系统来说,cpu、主板、电源、内存这些,反而是花费中占比最少的,真正花钱的大头在硬盘。

我买了 6 块 8T 的国行企业级机械硬盘 HC320,单硬盘的花费就在 5400 元。

我还给它配上了万兆网卡,和我的主力电脑直连,windows 下的读写速度能跑满。

这套系统很稳定,从来没出过问题。于是我把所有的照片和文件都存在了这台 nas 上。

然后,悲剧的事情来了。

事故

在 2023 年 11 月份左右,突然我的黑群晖 smb 共享无法连接了。

一番排障下来,我惊讶的发现,硬盘居然有 5 块损坏了,无法读取。

当时已然是懵了。

联系了硬盘卖家,还在保内,全部给换了新的。

但是,我这些年存在 nas 上的所有的数据,包括文件和照片全丢了,也没有备份。

事后我溯源全过程,猜测到可能的原因:

我的 nas 和电脑都在书房,而书房靠近阳台,强电的线路和阳台上的电器是一股。

阳台上有光电一体的太阳能和洗衣机,以前就经常性的出现太阳能电加热和洗衣机一起用时跳闸的现象,这也意味着我在书房的设备都要时刻经历着电涌的冲击。

这也就导致了我书房的电压经常出现不稳定的情况。对于机械硬盘来说,电压不稳定是致命的。

挨过来想想,我的 nas 的机械硬盘在这种环境下能撑 3 年,只能说不愧是企业级的机械硬盘吗?

转变

所幸的是,我的照片,因为这些年里用过不少网盘,多少备份了一些。

翻遍了各种网盘,最终找回了大约 80%的照片。

在庆幸的同时,我对于大公司的产品也有一些新的看法。

以前总觉得自己的技术水平,给大公司交钱买一些服务完全是智商税,完全可以用更低的成本自己搭建来平替。经过这次事故,我也发现了大公司服务的好处。

虽然有隐私等个方面的担忧,但是大公司提供的服务,终究是稳定啊。

关键时刻,大公司提供的产品,是能够给你兜低的。

教训

因为这次事故,我对家里的 nas 又做了一些改变。

首先是花了 280 元,买了一台 hp400 D4 的小主机,搭配上我以前买的 2TB 的 nvme 固态硬盘,重新安装了一台黑群晖。

我在使用上一台机械硬盘黑群晖时就发现,经过了 3 年使用,6 块 8T 硬盘组的 nas,最终空间使用不过 1T 左右。所以这次组的黑群晖完全够用。

其次,我以 199 元/年 的价格,买了 office 365 的服务。这个套餐自带office 正版授权和 1TB 的 onedrive 空间。我准备每年都付费了。

花钱买大公司服务,还是为了数据多一份安全保障。而且 onedrive 的云盘技术评价比较高,还有正版 office 可用,很值。

我的计划是,手机里的照片数据先保存在本地黑群晖里,然后通过群晖的同步程序,再上传到 onedrive 里。这样既有了本地传输、查看、使用数据的便利性,又有了大公司提供的数据存储的安全性。

整套方案总体看来,从效果上来说,相当于实现了全套的异地容灾备份方案。

波折

原来的计划是,手机上安装 onedrive 客户端,利用 onedrive 来备份手机照片,再同步到本地黑群晖里。

可是我发现,onedrive 这个烂程序,居然不支持自定义照片同步文件夹。

这就导致了不同手机拍的照片、不同应用的照片全挤到了一个文件夹里。

而我的需求是不同手机拍的照片,可以放在自己建立的文件夹里来区分。

而且家里每个人的手机,也都有不同的文件夹来存储。

onedrive 目前来说做不到这一点。

而且,我是 windows、linux、mac 这 3 个系统都用的人。由于最近几年微软越来越作死,包括不仅于 windows 更新经常导致系统损坏、windows 系统里弹出广告、windows 系统质量下降等问题,我是越来越爱用 linux 来作为主系统了。

而 onedrive 的另一个问题就是在 linux 下没有官方的客户端,第三方的客户端又有功能不全、使用不便等问题,于是在 linux 使用 onedrive 来同步数据就成了无解的难题。

最终方案

因为上面说的难题,于是再次改变思路。

最终采用了先把照片、文件等数据同步到本地黑群晖 nas 上,再使用 nas 同步到 onedrive 网盘里的方案。

虽然只是备份和同步的顺序变了一下,但带来的好处是巨大的,可以说是完全满足了我的所有需求。

实现

简单来说,有以下几步:

  1. 在手机上安装群晖 photos 应用,
  2. 在群晖的 SMB 共享文件夹里建立 onedrive 目录。
  3. 利用群晖的 cloud sync 双向同步本地 nas 和 onedrive 网盘数据。
  4. 使用 webdav server 把用户目录下的照片文件夹同步到 smb 共享文件里的 onedrive 目录里,自动同步到远程 onedrive 网盘里。

通俗来说,就是利用群晖的 webdav server 服务双向同步用户文件夹下的照片目录到群晖共享文件下的 onedrive 目录下的 Pics 里,再利用群晖的 cloud sync 应用把 onedrive 目录和 onedrive 网盘做双向同步。

好处

首先,群晖的 photos 应用,是支持自定义备份目的地的。这样我就可以把不同设备、不同用户的手机照片备份到不同文件夹里。

其次,使用群晖的 vebdav server 应用,把群晖用户目录下的照片文件夹,双向实时同步到群晖 samba 共享文件夹下里的 onedrive 文件夹下的 pics 目录里,实现了本地群晖 2 个文件夹实时同步功能。

再次,群晖的共享 smb 文件下的 onedrive 目录,可以使用 cloud sync 应用自动和远程的 onedrive 网盘同步,实现了数据本地和远程的双备份。

最后,由于 onedrive 的同步目录是放在群晖的 smb 共享文件夹下的,所以在 windows、linux、mac 下都可以使用 smb 挂载的方式,共享群晖的 smb 文件夹,而且如果是放在群晖 smb 共享下的 onedrive 目录里还可以实时自动和 onedrive 同步。这也就变相解决了 onedrive 没有 linux 客户端的问题。