备份没那么简单:从 rsnapshot 到 3-2-1 策略
Backups Aren't Simple
我曾以为把照片拷到移动硬盘就万事大吉,直到父亲误格式化导致全家照片差点永久丢失。这次教训让我意识到,备份远非简单的文件复制。从避免单点故障到应对 Ransomware,从设定 Recovery Point Objective (RPO) 到实施 GFS 轮转策略,再到利用 rsnapshot 进行增量去重备份,每一步都充满陷阱。Docker 容器权限、数据库一致性、S3 对象存储的元数据丢失以及小文件上传成本,这些细节让自建备份系统变得异常复杂。最终,我们不得不依赖 Borg 或 Restic 等专业工具来构建加密、分块去重且符合 3-2-1 原则的云端备份方案。记住,未经恢复测试的备份毫无价值。
世界上只有两种人:那些已经经历过灾难性数据丢失的人,和那些终将经历的人。
HN 评论区
211- publlus_enigma
我一生中经历过四次令人后悔的数据丢失事件。
第一次是我家外面的电线杆被雷直接击中。那不仅是我听过最响的声音,电流顺着电话线涌入内部的传真调制解调器,把周围所有东西都烧毁了。那时我 10 岁。我确实有备份,但只有软盘,而且并没有覆盖所有内容。
第二次是将数据存在 OneDrive 上——他们关于“终身”不限额存储的条款发生了变化(这点很容易被忽略),加上客户端下载速度慢到无法使用,以及数据提取的截止日期,导致我丢失了大部分文件。
第三次是度假时数码相机里的 SD 卡故障,控制芯片彻底损坏,导致卡片完全无法识别。那是一张全新的 Sony 128GB 卡,由 Toshiba 制造,这似乎是一个常见问题。我现在会同时向两张卡拍摄。
而第四次是……在进行备份时。一个出错的脚本删除了源内容,但我为了腾出空间给新备份,也删除了现有的备份。因此,我有一段时间对使用可重写介质心存顾虑,但我认为备份本身就是一种高风险活动。
- dirkc
> “世界上只有两种人:那些经历过灾难性数据丢失的人,和那些将会经历的人。”
当我还是十几岁的少年时,我曾两次导致我爸数据丢失。两次都是因为我在重新分区硬盘以安装 Linux。
你本以为这会给我上一堂关于备份的课,相反,它时不时提醒我要感激有一位超棒的父亲,并立志将来面对自己的孩子时也能以同样的方式处理情况 :)
- AdieuToLogic
我的一位朋友曾在 Veritas[0] 工作,负责制作企业级数据保留解决方案。当我提到他们的产品是“做备份”时,他纠正我说:
我们不在备份行业。我们在恢复行业。
- Helmut10001
我真的很喜欢 ZFS 快照配合使用 Jim Salter 的 sanoid/syncoid [1] 进行的异地拉取模式同步。ZFS 是所有在其之上的操作系统/文件系统的基石。如果你有一套良好的系统来组织 ZFS 数据集,并将临时数据与持久化数据分离(例如 [2]),那么这已经满足了 90% 的备份需求。
[1]: https://github.com/jimsalterjrs/sanoid
[2]: https://du.nkel.dev/blog/2026-05-16_rootless_docker_virtiofs_proxmox/
- Kinrany
应该有一个备份标准,使得(可能是分布式的)系统能够与备份系统进行通信,并保存或恢复快照。
- crossroadsguy
如果你不控制数据量,它最终会控制你和你的备份选择,这最终会导致许多本可避免的灾难性后果。不知何故,这一点在数据存储和备份规划中经常被忽视。
- ebrahimh
我正在为我的 3 台主机基础设施设置类 3-2-1 备份,并且非常倾向于使用 Restic + Backrest。
我所有的运行着相同的 CoreOS 设置(https://github.com/ebrahim37/infra-template),其中容器卷都放在一个中央 volumes/ 文件夹中,这也是我唯一需要备份的东西。
我计划这样实施:
vps1:
- 带有自定义 sh 入口点的 restic 容器,每 24 小时将 volumes/ 备份到 homelab
homelab:
- backrest 容器,用于备份 volumes/,执行 prune/check,并将仓库复制到异地
- rest-server 容器,存储来自 vps1、homelab 和异地的备份
offsite:
- restic 容器,每 24 小时将 volumes/ 备份到 homelab
- rest-server 容器,存储来自 homelab 的备份副本
唯一的注意事项是数据库备份,要么必须:停止容器,备份卷/数据库数据,启动容器;要么使用 pg dump 等工具。
去重功能很棒,你可以为过去一年的每一周保留一个快照,而不会产生疯狂的存储成本。
- bloomingeek
“加密、块级去重、GFS 轮换、时间点归档、云端、3-2-1 备份解决方案”现在是我最新的密码,没有逗号。(别告诉任何人!)