我运行了一套自托管方案,两年都没出过岔子,尽管底下埋着一颗巨大的定时炸弹。它存储了数千张家庭照片、Docker和数据库配置,却没有任何真正的数据保护措施。我一直拖着不备份,因为觉得太费事了。

幸运的是,你不需要精通命令行脚本才能保护数据,这个用起来毫无门槛的容器,让我的整套系统从完全没有备份变成了安心无忧。整个过程只花了一个下午。

我告诉自己,我的 homelab 不需要备份

我告诉自己,我的 homelab 不需要备份

一直没出过事,而这恰恰就是问题所在

一直没出过事,而这恰恰就是问题所在

当我开始这个 homelab 时,它本不该是什么重要的东西;只是一个用来随便折腾的试验场。后来,测试了一个容器之后,它就成了我大部分工作的支柱。多年来,媒体服务器积累了自定义元数据,我数千个珍贵回忆都存到了 Immich 上。里面还存着好几个 Docker 卷配置,重建起来得花好几个小时。

我知道备份对这套系统来说至关重要,但这事儿我每个周末都说要做,却一直没真正动手。我就这么一直拖着,因为什么都没坏过。但真正的风险在于:你觉得既然一直没出事,就永远不会出事。

然而,某天晚上,当我坐下来思考自己在这套配置里搭建的一切,却没有任何实实在在的保护措施时,我才猛然醒悟过来。我和真正的灾难之间,唯一的屏障纯粹就是运气。

把这一切想清楚之后,我才真正被敲响了警钟。

冗余阵列能应对硬盘挂掉的情况,却挡不住手贱敲了个 rm -rf 或者更新搞砸了,所以说 RAID 从来就不能真正算作备份。

真正难的是迈出第一步

真正难的是迈出第一步

每个备份方案都让人觉得又得搭进去一个周末

每个备份方案都让人觉得又得搭进去一个周末

每次要调仪表板或者试试新的媒体管理器,我都挺来劲的,但一想到备份这事儿,就跟要交作业似的。

选择太多也是一大原因。在自托管的世界里,备份选项实在太多了,每当我探索一个选项时,总会掉进一些没完没了的坑里。有时是要自己写 shell 脚本,有时是要学一套新的 CLI 操作流程,有时是要把配置文件调得一丝不差。这些事儿其实都不难,真做起来顶多一个下午就能搞定,但就是让人想拖着不做。

当我最终选择Kopia时,并不仅仅是因为它号称加密有多强、架构有多巧妙。我注意到好几个自托管的人说,这东西部署一次之后就不用再管了。我要的就是这个。就算它不是功能最强的,至少我能把它装完。

Kopia 不过是又一个容器罢了

Kopia 不过是又一个容器罢了

整个安装过程平淡得让我纳闷,为什么拖了这么久才动手

整个安装过程平淡得让我纳闷,为什么拖了这么久才动手

拉完镜像、建好仓库、指向存储、设好密码,基本上就搞定了。它不偏向任何一家云服务商,也不强推哪一家。我只需选择我想要的:本地存储、NAS、Backblaze B2 或兼容 S3 的存储都可以。这种灵活性意味着我不用重新折腾我的 homelab。

Kopia 不会帮你存也不会帮你找回这个密码,所以趁还没忘,赶紧记在 homelab 以外的地方。

Kopia 几乎不用怎么管。选好要保护的文件夹和卷之后,点几下就能设好自动快照。第一次备份跑起来的时候,我早就在想别的事了。

这让我很好奇它背后是怎么运作的。它用的是增量快照,所以每次只传输第一次完整备份之后有改动的部分。它还用了去重功能,避免重复的数据被存进去。

真正打动我的是,这些备份快照用起来就像插到电脑上的真实物理硬盘一样。

如果让我现在重新搭,这会是我最先部署的容器之一

如果让我现在重新搭,这会是我最先部署的容器之一

回想起来,我犯的错不只是没给家庭实验室做备份就跑起来了,更是觉得补上这个缺口会是个很复杂的工程。

我认为,对于习惯使用终端的人来说,Restic 和 Borg 都是非常不错的选择。不过,考虑到我想怎么管理自己的服务器,Kopia 反而更合适。它在灵活的存储、不用自己折腾的加密,以及安装配置的简便性之间,找到了一个特别好的平衡点。虽然它并没有神奇地一下子解决我的备份问题,但它把门槛降得足够低,让这件事变得容易上手。

现在我会在日历上设一个循环提醒,每隔几个月就随机挑一个文件做一次恢复测试,因为一个最近没验证过的备份,说白了也就是一种抱着希望的猜测。

以后如果我在家里搭实验环境,它已经成了我会最先安装的容器之一。最主要的原因是,和大多数同类工具相比,它更能减少折腾。