群晖:搭建个人和工作的数据中心

经历了多次换手机后,生活中珍贵的照片被分散在多处,如QQ空间、小米云盘、华为云盘、微信收藏等处,加大了管理难度,不仅要管理账号,还要定期给云空间续费,同时查看也非常的不方便,甚至导致一些珍贵的照片的遗失。

同时受制于网络的原因,批量管理照片也非常的不方便,这些云端相册空间,上传照片都很方便,但批量的编辑都比较麻烦。

现在的终端也越来越多,如Mac电脑(公司和家里各一台)、iPad/android平板、手机,对于工作的无缝接力就显的非常的重要。像国外的Dropbox的同步软件的作用越来越大,但受国情影响,只能通过科学上网的方式来访问,还有2G容量的限制。

经过元旦假期对群晖DS720+的摸索,总算搭建了一个让自己基本满意的数据中心,最终的应用场景如下所示:

数据中心

群晖DS720+的硬盘配制及备份

群晖DS720+只有两个硬盘位,默认不带硬盘,经过几翻折腾后,并没有采用Raid1阵列,基于如下原因:

  1. 两盘位只能采用RAID1模式,硬盘利用率减少一半,写入速度取决于最慢的硬盘
  2. 成本太高,两块HDD硬盘的噪音太大。
  3. 不是所有的数据都要备份,像电影、Android源码等等数据不需要备份。

硬盘配制情况:

  1. 一盘位:250G的SSD硬盘,basic模式,负责DSM系统加载,套件的安装盘,比起HDD盘的噪音大大减小。
  2. 二盘位:2TB希捷NAS硬盘,basic模式,所有数据的存储盘。
  3. USB盘位:1TB HDD硬盘,用作关键数据的冷备份。

数据分为如下几类:

  1. 个人重要数据,如照片,工作的资料等,数据丢失后无法找回。
  2. 可找回的数据,如下载的电影,已经提交到Github上的代码等等,数据丢失后,重新下载就可以。
  3. 整机备份文件(如Mac的TimeMachine),由于体积太大,单独使用一个SSD移动硬盘备份。

对于个人重要数据采用「3-2-1 原则」备份:

3:存储 3 份完整文件,一份原件加上两份拷贝。
2:将文件起码保持在两种不同的介质上。
1:将一份拷贝保存在异地。

重要数据的具体备份方式:

  1. 群晖NAS内置2T机械硬盘保存一份原件
  2. 通过USB Copy套件,镜像同步一份到移动硬盘,做冷备份
  3. 通过Cloud Sync套件,同步一份到云盘,最终选择的是百度云盘

备份与同步的理解

群晖NAS的备份与同步的区别:

  1. 备份:每次都是完整备份,多份历史完整备份,一般存放的是特定的备份文件格式,特定格式的无法直接查看。
  2. 同步:字面意思,数据保持一致,没有历史版本。

不同套件对于备份和同步的支持情况:

  1. Hyper Backup:NAS->各端,只支持完整备份,不支持增量备份,特定格式,不支持直接查看。
  2. USB Copy:NAS->USB硬盘,同时支持备份和同步,备份是指每次拷贝到不同的文件夹里,同步支持镜像和增量,区别在于是否同步删除。
  3. Cloud Sync:NAS->云端,支持备份和同步。
  4. Active Backup for Business:wins->NAS,整机备份,类似Mac的TimeMachine。
  5. Drive:mac/win->NAS,类拟Dropbox,支持文件的同步和备份,支持按需同步,释放本地空间。

重要数据的备份最终采用是同步方案,主要是考虑到多份完整备份,会消耗大量的时间及备份盘的容量,但如果需要做回滚,最好采用备份,而不是同步。

照片备份

通过DS Photo App,非常方便的将手机/平板里的照片及时上传到NAS,除了手动选择图片上传外,还有自动监控新增图片,自动上传的功能。如下所示:监控DCIM和WeiXin文件夹,同时及时释放手机的空间。

通过NAS里的Photo Station统一管理照片,做好分类文件夹,再使用Moments套件,实现AI识别,自动对人物、主题和位置分类。

手机上的照片上传之所以不使用Moments,是因为Moments会以照片日期来新建文件夹进行分类,当照片多了后非常不方便管理,详细可参考:群晖NAS相册的正确玩法!使用Moments的朋友必看!强烈推荐搭配DS Photo使用!

我已经把多年来各组的照片统一上传到NAS里了,包括QQ空间,小米云盘,华为云盘,Mac的照片App,移动硬盘。再通过321原则进行备份,保证照片的安全性。

多终端之间的协作

为了摆脱对于一台电脑的依赖,做到多终端之间的无缝接力,需要实现多终端之间的资料和代码的接力。

主力Macbook Pro通过Synology Drive时时同步笔记和资料到NAS上,使用上与Dropbox一样,通过监听本地的文件变动来保存同步,不影响正常的工作,网络不佳时,可以随时暂停同步。

为了减少家用Mac,手机和平板的环境配置上的麻烦,同时也是为了统一生产环境,在NAS里通过Docker搭建了Web版VSCode软件,家用Mac,手机和平台通过浏览器访问Web版VSCode接力,使用体验与VSCode的客户端没有区别,如下所示:

通过Docker部署code-server(即web版VSCode)的参考教程,具体的备份过程很简单,就不重复了,只讲一个遇到的问题:

  1. 出错信息:Service Workers are not enabled in browser
  2. 原因:要https打开code-server,service workers需要https访问
  3. 解决方案:把code-server容器里的配置文件“~/.config/code-server/config.yaml”里的cert值为true,再重启容器,通过https访问即可。

构建下载中心

通过Download Station套件,实现NAS的下载和解压功能,对大文件的下载帮助很大,如Android的源码,即可以不影响工作,同时又减少工作电脑的硬盘容量。

替换腾讯云,Docker搭建Anki Server端

通过Docker搭建Anki Server端非常的简单,搭建参考教程

Docker搭建的服务,无法通过QuickConnect实现外网访问。

QuickConnect实现内网穿透的机制如下:

  1. 获取NAS的内网IP,尝试直联,速度最快
  2. 获取NAS的公网IP,尝试直联,速度次之
  3. 通过中继服务器,网络转发,速度最慢

默认情况下,NAS是内网的IPv4地址,外网无法直连,只能通过中继服务器,做流量转发实现。

DDNS的内网穿透的方案过程:

  1. 向三大运营商申请公网IP,默认分配的是内网IP,同时让运营商把光猫的模式改为桥接模式,即把公网IP设置给路由器
  2. 给NAS配置固定的内网IP,同是在路由器里配置端口映射,可以手动配置,也可以把路由器的 UPnP 功能打开,NAS可以自由配置。
  3. 用此公网IP和服务Port,即可访问Docker搭建的服务,但此公网IP是会变的,最好的再配置DDNS,即动态DNS服务,通过域名访问。

如果分配的是IPv6地址,那本身就是公网IP,不需要额外申请,也是趋势。

参考

  1. 群晖NAS相册的正确玩法!使用Moments的朋友必看!强烈推荐搭配DS Photo使用!
  2. 群晖 NAS 选购 & 入门指南:动手打造自己的家庭数据中心
感谢您的阅读,本文由 刘阳 版权所有。如若转载,请注明出处:刘阳(https://handsomeliuyang.github.io/2021/01/03/%E7%BB%8F%E9%AA%8C%E6%80%BB%E7%BB%93/%E7%BE%A4%E6%99%96%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%92%8C%E5%B7%A5%E4%BD%9C%E7%9A%84%E6%95%B0%E6%8D%AE%E4%B8%AD%E5%BF%83/
StudyDemos的Demo列表的动态配置实现
责任链模式两种典型实现