0%

homelab系列-数据备份

前言

这个系列的第一篇先来说一说数据备份。毕竟很多人(包括我)组建nas的第一需求,就是用于数据备份,保护自己的数据安全。

我也是趁着这次重新组建的机会,重新整理了自己的数据备份需求。

开始之前

在规划一切方案之前,有一件我一直觉得很重要的事情,就是先要识别自己有哪些数据资产。这件事情并不简单,甚至可以说很难,使用过的设备越多,在互联网上留下的足迹越多,这些数据可能就越散乱。有些数据可能就在哪部电脑或者手机里装着,而有些则可能只存在于某个供应商提供的网盘里,甚至有些数据,服务商觉得并不属于你,你只是被授权访问了…

识别有效的数据资产是件很繁杂的事情,这里就不展开讲了。总之,在开始之前,我已经把所有我觉得需要做备份的数据都标识好了,这是一切的起点。

基本策略

数据备份有个被称为“3-2-1”的原则。即一份数据包含三份副本,保存在两种不同的介质上,并保持有一份数据存放在异地。

这个原则对于个人用户来说,最简单的实践方案是这样

  1. 在原始设备上(比如手机、电脑)存一份
  2. 定期将数据备份到移动硬盘或NAS
  3. 再存一份数据到云盘

我个人并不反感云存储,所以这个策略对于多数数据备份场景都是合适的。很多人会提到对于网盘,需要区分”同步“和”备份“。原因是”同步盘“无法防止误操作,如果本地误删除了某个重要文件,”同步盘”会在云端同步删除文件。

对于这一点,我个人觉得很难界定。一些同步网盘也会提供如历史版本、近期删除的文件等功能,来弥补“同步”的缺陷。但是回过头来说,很多“同步盘”都提供了像“文件随选”这样的功能,文件只在需要的时候才会下载到本地来,这时候就要注意了。

其实对于云盘,多数时候我并不担心数据丢失的风险,这本是供应商会考虑的问题。但是从近几年的情况来看,云盘或者说云存储的商业模式并不稳定,这反倒是需要担心的。

对我而言,还有另外一种情况需要关注,就是对于一些大文件(比如照片、视频),单一设备可能存不下的时候,可能本地只会在nas上留存了一份,这时候就需要有额外的方案了。

备份需求

当然,也不是所有数据我都会遵从“3-2-1”原则来处理,实际上我大概把数据分了三类。

  1. 第一类是不希望丢失的重要数据,会严格遵从“3-2-1”模式。
  2. 第二类是在一定程度上可容忍丢失的数据。比如手机、电脑如果故障坏了,能够完全恢复当然好,但是只要圈定的重要数据不丢,重新装一遍系统、应用,做一遍配置之类的,也不是不能接受。这类数据我会挑最简单的备份方案来执行,比如手机、平板就用厂商提供的云服务,实在恢复不了就算了。
  3. 第三类主要是网上下载的各类资源,这类数据定期记录一下目录信息就好,丢了的话再下一遍就好了。

商业上在容灾方案中,经常会提到RTO、RPO指标,通俗来讲,这两个分别指故障发生后,恢复需要花费的时间,以及,能够容忍的丢失数据时长。

对个人用户来说,前者通常是一个相对宽裕的值。假如我电脑坏了,需要买台新的,耽搁几天再正常不过,没什么不能接受的。

后者就需要自己好好评估了,如果觉得丢失一天数据都无所谓,那每天晚上做一次备份就足够了。如果丢失一两个小时的数据都不能接受,那可能就需要在使用的工具软件上做好方案,能够支持更及时的备份。

不过其实我提到这个,是我觉得需要结合这两个指标评估好自己能管理好的数据范围。比如我NAS上管理的数据如果有50TB,假如有一天硬盘全挂了,我需要重新买一套硬盘再把数据从网盘下回来,结果发现网速太慢,光是下载数据就要花6个月…这也是不能接受的。

工具与实施

明确了策略和需求以后,实际实施起来就没有多复杂。主要用的工具包括:

  • syncthing,用于实时同步文档,当然这里的同步并不是备份。
  • borgbackup,用于本地备份,同时兼顾增量备份、保留历史等需求。
  • rclone、BaiduPCS-Go,用于将文件备份到云盘。

其中syncthing会安装在nas和常用的电脑上,将变更的文件实时同步回来。

另外其他如相机上的照片、视频,或是电脑上录制的视频,定期拷到nas上以后,原设备上会删除,需要额外备份一份。这里我暂时没想到特别好的方案,只是刚好旧nas的硬盘(已经使用6~7年)并没有故障,所以就先拿来做备份副本使用,用borg backup制作备份副本的同时进行加密,也解决了上传云盘(主要是百度网盘)的安全问题。

云盘的备份我现在同时在用百度网盘和onedrive。前者单价更低,但是即使文件已经做了加密,我依旧担心会因为各种原因导致文件在云端不可用,因为office365赠送了tb级别的onedrive空间,所以姑且先拿来用。使用rclone可以直接将原始文件加密备份到onedrive上。不过因为onedrive的空间较小,而且分散在多个用户下,使用上还是有一些不便。另外云厂商的提供的对象存储也是可以考虑使用的,可靠性比云盘可能会略好一些,不过价格也略高,对可靠性要求高,数据量不是特别大的话可以考虑使用。

本地的备份前后零零散散大概花了一周左右做完,之后上传两个网盘则在半个月左右(总共4t左右数据)。随着直播行业的热捧,国内宽带的上行带宽略有好转,百兆以上宽带基本提供了30兆左右的上行速度,额外加钱也有套餐可以提升到百兆的上行带宽。另外也有临时的方案,电信提供了为期1天的加速包,可以临时将上行速度提升到百兆,在跑满的情况下,一天可以上传700G左右的文件,我在处理数据备份的这几天使用,很快就完成了全部文件的上传备份。