
我的个人数据备份方案
macOS app 效率
背景
最近, 我的群晖 NAS
中一块刚使用一年的硬盘开始频繁报警, 因此我重新审视了目前的备份策略. 也正因如此, 催生了这篇文章.
基础知识
3-2-1 备份策略
这部分我直接引用 Dropbox
文章中的定义, 感兴趣的读者可以参考原文: 什么是“3-2-1 备份策略”?如何使用该策略?
3-2-1
原则是一种数据备份策略, 旨在确保您的数据可以在数据丢失事件发生后快速得到恢复和还原.
简而言之, 这种常用的备份策略涉及创建
- 三份数据副本
- 其中两份副本存储在本地的不同介质上,例如一份存储在电脑的内置硬盘上,一份存储在外置硬盘等可移动存储设备上
- 一份数据副本远程存储在云备份软件等异地解决方案中
实施 3-2-1
备份策略的目, 的是为了降低『单点故障』可能造成的影响. 这意味着, 如果您的一台设备崩溃并清除了一份数据副本, 那并不是世界末日您手头还有两个选择可以挽救局面!
WebDAV
WebDAV
是一种基于 Web
的文件管理协议, 常被用于文件远程访问和同步, 便于与多种软件集成.
详细定义请参考: WebDAV - 维基百科
RAID
RAID
(Redundant Array of Independent Disks
, 独立冗余磁盘阵列) 是一种将多个硬盘组合成一个逻辑存储单元的技术, 用于提升性能或实现数据冗余, 或两者兼具.
详细定义请参考: RAID - 维基百科
旧备份方案
我的群晖是一个双盘位的 NAS
, 而在民用设备上配置 RAID 5
的做法, 其实很难做到真正的容错, 踩过坑的人都懂.
数据副本如下:
- 群晖
NAS
1
号盘位 - 群晖
NAS
2
号盘位 - Backblaze B2 (对象存储非常便宜)
- 移动硬盘 (冷备)
- 百度云
NOTE: 至于为什么需要这么多分副本, 可以参考前文提到的「3-2-1 备份策略」
其中, 1
号盘位中的 /照片归档/files
路径是主数据源, 其他备份均由 Cloud Sync
工具从此路径同步.
Backblaze B2 备份
WebDAV 备份
这里通过 WebDAV
协议实现一块磁盘向另一块磁盘备份, 算是一个比较 Tricky
的做法.
/照片归档本地备份
位于 2
号盘位中, 我选用多副本而不是 RAID 5
来保证数据可靠性.
百度云备份
他给的实在是太多了.jpg (🐶
日常备份流程
- 定期把需要备份的数据上传到
NAS
1
号盘位中的/照片归档/files
- 后续由
Cloud Sync
自动完成同步与备份
新备份方案
由于我有一套完整的 HomeLab
环境, 因此我的 NAS
使用场景其实非常有限, 故我准备完全脱离 NAS
来构建我长久的数据备份方案 (降本).
数据副本:
Mac Studio
内置硬盘:/Users/mdl/HomeLab
Mac Studio
外置移动硬盘:/Volumes/NsLib/全量备份
NUC
内置硬盘:/home/mdl/HomeLab
BackBlaze B2
:b2://NsLib-manual-backup/照片归档
- 百度云盘: 全量备份
Google Drive
: 全量备份
Mac Studio 内置硬盘 (主数据源)
这份数据是原始数据, 其他数据源均基于它来做同步.
我通过 Syncthing
工具把 /Users/mdl/HomeLab
与 NUC
上的 /home/mdl/HomeLab
做成同步盘, 实时热备.
Mac Studio 外置移动硬盘
我目前是挂载了一块三星 SSD T5 EVO
来存储大量的数据 (毕竟苹果家硬盘是金子做的).
NUC 内置硬盘
与我的 Mac Studio
数据源实时同步, 确保数据始终有两份副本.
BackBlaze B2
可以直接通过下面的命令做同步:
b2 sync "/Volumes/NsLib/全量备份/照片归档" "b2://NsLib-manual-backup/照片归档"
百度云盘 & Google Drive
目前是准备每半年手工上传一次, 不太想依赖工具, 因为长时间跨度下, 工具本身的升级维护成本其实也不小.
日常备份流程
- 日常的文件直接操作
Mac Studio
内置硬盘/Users/mdl/HomeLab
Mac Studio
和NUC
通过Syncthing
实时同步, 因此随时会有两份完整副本 (自动)- 定时任务自动同步到
BackBlaze B2
,Mac Studio
外置移动硬盘 - 每半年手工上传到百度云和
Google Drive
总结
通过这次方案重构, 我成功将核心数据从 NAS
体系中抽离, 新方案成本更低, 更利于长期维护.
未来, 我只会将 NAS
用作普通云盘, 存储一些例如电影这种不需要可靠性的数据.
TODO: 寻找 Cloud Sync
的替代品, 尝试把新方案完全自动化.