小璋的家庭数据存储方案(一)(又名:给硬盘里的小姐姐找个家)

Posted by zhang on

背景

不谈背景讲需求都是耍流氓!

数字化时代的来临让大家拥有了越来越的电子设备,随之产生了越来越多的数据文件。我就是其中一个。

单反一张 RAW 格式的照片动辄几十兆,即便是手机拍出来的照片也都有几兆。作为一个经常抱着相机四处拍、平时拿着手机随手拍(虽然没拍出啥好片子)的「伪」摄影爱好者,从大学到现在积攒了1、2个 T 的照片原始数据。

自己工作中、生活中积累的各种资料分散在两块移动硬盘、百度云盘、Dropbox还有电脑上,大概也有个 3T 的数据。

下载的一些美剧也很占地方,虽然我下载之后很少看。。。(这里没有小姐姐,也不开车,如果是为了小姐姐而来的,你们看到这里算是替我刷个阅读就可以走了,哈哈哈~)

另外,zhangsubo.cn 这个博客我维护了近十年,数据量虽然不大,但是很多文章、图片因为历史原因都仅存于服务器上,万一哪天服务器崩溃或者忘记续费,OMG~

最重要的一点是,我的一个移动硬盘跟了我十多年,另一个也跟了我四五年了。我真怕哪天它们撑不住就跟我拜拜了,我的青春……

对了,我还有不止一台电脑。Mac 和 Windows 的硬盘模式不怎么兼容(虽然有Paragon NTFS、Mounty for NTFS等让 Mac 支持 NTFS 读写的工具,但是总感觉不是那么稳定)

存储方案目标

上边说了这么多,其实我的目标很简单:

  • 重要数据可以安全且长久的保存
  • 多设备多系统的互联互通,毕竟我的 MBP、iPad、iPhone 和MI 8。家里还有一台华硕 N53在老骥伏枥。

如果单纯解决第一个目标,那么移动硬盘或者硬盘盒就可以解决我的困境、很早以前我也是这么解决的。家里的台式PC 最多的时候挂了三块硬盘,我现在手头也两个共计 3T 的移动硬盘。

但是如何让 MacOS、iOS、Windows 还有 Android 互联互通这可就让我煞费苦心。最终我将目光凡在 NAS 上。

到底啥是 NAS

在跟朋友说到我买了 NAS 的时候,很多人(包括身边的程序猿和 IT 男们)都是一脸的茫然:啥?NAS?那是啥?可以吃么?所以我觉得有必要介绍下这个东西。

NAS 的全名是 Network Attached Storage(网络附属存储)。按字面理解就是一个在网络上具备存储功能的装置,它专用于数据存储。

via:图片来自群晖官网

随着个人数据量的越来越多,NAS也渐渐的从商用走向了家庭。你可以把它理解成是你家里的一台小型服务器,它有 CPU、主板、内存,以及最重要的多个硬盘。它可以通过磁盘列阵等方式提高存储系统的可靠性或者其他性能而且功耗低、噪音小。你可以将你的照片、视频、文档等数据文件存放在上边并通过网络去上传或者下载这些文件。简单说来它就是你的私人云盘。

既然我都说了「私人」云盘,那为什么不选择百度云盘之类的呢?因为众所周知的原因,之前一段时间包括 360 云盘、华为网盘等多家网盘纷纷关张,而 115 网盘价格越来越贵。你存在百度云盘上的一些电影也不时会变成八秒钟教育片。

via:图片来自网络截图

我都有哪些设备用来构造存储体系

不废话,先上图:

目前我的存储系统是通过以下设备来构成的:

  1. Newifi 3
  2. 群晖 218+ NAS
  3. 蜗牛星际改装的NAS
  4. 坚果云
  5. 百度云盘
  6. APC Backup-UPS

Newifi 3

自如的房子都会提供网络服务,我租的这个房子是联通的宽带入户(忘了是百兆还是 50 兆了)。并且提供了路由器。

可能有人看到了我在图上画了两个无线路由,既然有一个了为什么还需要另外一个?

因为作为北漂,居无定所、四海为家(小白菜音乐起)。为了不每换一个房子就把一堆包括电脑手机巴啦啦一堆挨个连WiFi。趁着矿难,我入手了一台 Newifi 3。因为区块链挖矿崩盘,造成市面上有大量的全新或者二手的Newifi 3,而且价格很便宜,全新的也就 100 多块,二手的很多也就几十块。应该是目前最便宜的千兆路由器了。至于性能看配置和小米路由器 PRO 配置相差不大,仅在 ROM 和 WIFI 最高速率上不及小米路由器 PRO,但胜在便宜。

via:图片来自网络

我将它刷了 breed 系统,并写入了潘多拉固件,至于为啥要刷固件我只能说我是为了实现内网穿透以及路由器端广告过滤,不管你信不信反正我信了。同时这台 Newifi 3 也成为我其他设备组有线局域网成为了可能。

群晖 218+ NAS

作为一个追求数码产品极致性价比的我,之所以购买群晖这个性价比很低的坑货,主要还是因为据无价。虽然网上黑裙的方案很多,但是花多点钱买个心安。

目前它和两块西部的 4T 数据盘是我的核心存储工具,并通过群晖的 QuickConnect 功能实现内网穿透,下一步我将直接通过 Newifi 3 和 DDNS 直接实现减少延迟。

两个数据盘做了 SHR,SHR 是群晖所独有的一个自动化磁盘列阵管理系统,相当于是 RAID1 +RAID 5,一个硬盘用来容错。对于 218+只能插两块硬盘来说,就是一个 RAID 1。以牺牲一半的容量来换取了数据的相对安全。

蜗牛星际改装的NAS

蜗牛星际也是因为矿难小璋捡的垃圾,不过现在看来这个垃圾捡的不如Newifi 3 实惠。买到之后我对其进行拆机,里边的做工真的是为了「骗人而生」只能说能用。(实际也是这样,老板按 5000 多一台卖,然后卷了不少钱跑路,具体事由去大家去百度就好了。)

我花钱换了它噪音感人的风扇,本来还想换掉它的电源但是第一次买错了买成了 1U电源,实际应该买个小 1U flex 电源。退掉之后感觉似乎还能用,就没有在更新。

这台 NAS 我用的是万由的 U-NAS 系统,还是没有做黑裙(虽然黑裙有一键安装包,U-NAS 得自己搞)。两块 2T 的数据盘,直接采用 JBOD/Spanning 方案来简单叠加容量。毕竟这个设备都不一定能活得很好,这里我也不敢存什么特别重要的数据。主要用来做下载服务器、追求容量最大就好了。

via:图片来源见水印

坚果云和百度云盘

这两个我就不用多说了,坚果云用来同步我的工作文件,真香,我马上就要付费了,不要拦我!
百度云盘,5T 的容量各种乱七八糟的东西都放上去吧,不过放上去之后很难管理。

APC Backup-UPS

这是个什么鬼?看名字你应该就知道了——不间断电源(Uninterruptible Power System/Uninterruptible Power Supply)。这是个重量级选手——6.9 公斤,里边是铅酸蓄电池。

via:图片来自JD 店家

之所以买它是因为血的教训,因为合租的室友们(包括我自己)都是在没电了之后才去充电费,经常造成 NAS 的非正常掉电关机,频繁的掉电关机会对硬盘造成不可逆的伤害。不说数据就这几个硬盘就好几千块大洋啊,咬咬牙买了个 UPS 作为电源备份。

施耐德的这款家/工作室用 UPS 还算是比较高端的,可以直接通过数据通讯接口在断电后通知 NAS 自动关机,从而避免数据损害。不过它只有一个接口,而我有两台 NAS。所以综合网上的一些方案,我把两台 NAS 接到了这台 UPS 上并把数据通信接口接在了群晖上(毕竟群晖更重要),路由器则继续接在市电上。就形成了这样一个方案:

  1. 市电断电后,UPS 自动通知群晖关机。我设置的延迟四分钟,如果单纯的是欠电费一般情况下我们都会在几分钟内充钱,在 UPS 可以支撑的时间内避免频繁 NAS 开关机。
  2. 蜗牛靠的是自力更生了,我在蜗牛上写了一个 shell 脚本(U-NAS 是基于 Ubuntu 开发的),通过 corn 定时去 ping TP-Link 的 ip。如果 4 分钟内 ping 不通,它就自动执行关机命令。之所以也有延时是因为考虑到路由器有重启之类的操作。

这样,两台 NAS 就实现了在市电断电后自主关机的功能,从而避免意外掉电造成的磁盘损坏。

我的两地三中心与冷热备份

目前针对我的照片文件,我已经实现了堪(chui)比(niu)商(bu)业(shang)级(shui)的「两地三中心容灾」和「冷热备份」方案。说来搞笑:「两地三中心」我特意实现的,我做完之后才后知后觉,跟大家分享下。

首先,我之前的照片都在我的移动硬盘里。通过 FreeFileSync 这个开源免费的通过工具,实现了通过 MBP 与群晖定期同步备份。首次同步后,我以后的所有增删都通过群晖来实现。而移动硬盘则作为冷备份载体定期与群晖进行同步。

其次,利用群晖的 Cloud Sync 实现与百度云盘的同步。其实这个 Cloud Sync 还可以支持包括阿里云 OSS、亚马逊 S3 等多种公共云同步方式,还支持 webDAV,我的坚果云就是通过 webDAV 来实现的数据传递。

最后,通过 Rsync 功能与蜗牛来进行单向备份,为了减少体积,只备份了单一版本。

这样,就实现了我的照片数据的两地(家、百度云盘)三中心(群晖、蜗牛、百度云盘)以及冷数据备份(移动硬盘)可以极大的提高数据的安全性,当然成本也是最高的,相当于占掉了数据大小*4的空间。所以我只对照片数据做了可以说是夸张的数据备份方案。(貌似这么想来坚果云的数据也差不多——公司电脑、坚果云、群晖,其原因更多的为了同步数据用。)

而类似电影、电视剧这些就被我随意的丢在了蜗牛的盘里,丢了也就丢了。

我的媒体串流平台

这里给大家安利一个软件:Plex,如果你没有公网播放的需求,免费版就够用了。它是一个 C/S 架构的软件,你需要在视频存储的电脑或者 NAS 上播放 Server 端,在播放端安装 Client 端实现多媒体的串流。

我在整理好蜗牛星际之后,就把原先分布在群晖、移动硬盘和电脑里的电影和视频转移了过去,通过 webDAV 挂在到群晖上,利用群晖上的 Plex Server 端配合投影仪的Plex Client端实现电影的播放。

这里大家注意到一点,我把电影放在蜗牛,却在群晖上安装 Server 端,还需要把蜗牛挂载到群晖上,似乎是多此一举。其实原因是这样的:Plex 依靠的是服务端解码,蜗牛的 J1900 实在是难堪重任,群晖的J3355 相对好些。

这里给大家提一个建议,也是我未来的演进方案:就是通过 Kobi 这个软件实现播放端本地解码,这样可以充分发挥盒子或者投影仪的解码能力,实现更优质的画质输出。

好了,时间已经过了十二点暂时就写到这里,更多的是抛转引玉。如果大家有兴趣,我可以就某一个方面详细的写一些东西出来,也欢迎大家来跟我交流 NAS 使用中的一些小技巧,毕竟我也刚玩了很短的一段时间。