跳转到内容

备份策略:冗余不是备份 ​

读完这一篇,你能列出自己 NAS 上的数据分几类、每一类用什么工具备份、放在哪几份、多久一次,并且知道哪些东西看起来像备份其实不是。后面七篇是具体工具,这一篇决定你该用哪几个。

冗余、快照、备份是三件事 ​

手段典型做法能防防不了
冗余RAID1/5/6、Btrfs RAID1、ZFS 镜像、SnapRAID一块(或几块)硬盘坏掉后服务不中断误删、误改、勒索软件、软件 bug 写坏数据、文件系统损坏、火灾、被盗
快照Btrfs 共享文件夹快照、ZFS 快照误删、误改、客户端上的勒索软件硬盘坏、文件系统损坏、整机丢失(快照和源数据在同一个文件系统里)
备份另一块盘、另一台机器、云端上的独立副本以上所有情况,前提是副本本身没被同时破坏备份没做、没人看失败通知、没演练过恢复

RAID 会瞬间把误删同步到每一块盘,所以 RAID1 不是备份。omv-extras 的维护文档用的类比是:RAID 是备用轮胎,备份是第二辆车。

3-2-1 规则 ​

  • 3 份副本:正在使用的那份,加上两份备份。
  • 2 种不同的介质或设备:例如 NAS 内置盘加一块外置 USB 盘,不要两份都放在同一个硬盘柜里。
  • 1 份在异地:另一个房间不算,要能扛住火灾、水灾和被盗。

家用 NAS 做到「内置盘(正在用)+ 外置 USB 盘(轮换)+ 云端或亲友家的一份」就是合格的 3-2-1。再进一步,是让其中一份离线,或者用只追加(append-only)模式,让被入侵的客户端也删不掉历史备份。

先把数据分三类 ​

数据在哪里主要备份手段详见
用户数据:照片、文档、媒体、手机和电脑备份到 NAS 的文件数据盘上的共享文件夹rsync 任务、USB 备份、borg 或 restic;Btrfs 快照作为快速回滚层rsync 任务、USB 备份、快照
容器数据:compose 文件、应用配置、数据库Compose 插件设置的共享文件夹和 Docker 存储Compose 插件的计划备份(会先停容器再备份),再把备份目录纳入上一类的备份更新与备份容器
系统与配置:OMV 设置、用户、插件、证书系统盘backup 插件备份系统盘;定期留一份 config.xml;把配置写成文档备份系统盘、配置留底

两个容易漏掉的点:

  • 手机相册、Time Machine、Windows 文件历史备份到 NAS 之后,NAS 上这份就成了唯一或其中一份副本,它们同样要按第一类备份。
  • 容器的数据库不能在运行中直接拷文件。让 Compose 插件的备份去做,或者在应用里先导出,否则恢复出来的数据库可能是坏的。
  • Compose 插件的备份默认只备份不大于 1 GB 的卷,更大的卷会被跳过,要在插件设置里调大最大尺寸,或者另行备份。

每类数据回答五个问题 ​

  1. 最多能丢多久的数据? 决定频率。照片一周变一次,每天备份就够;财务文档天天改,就要更频繁。
  2. 丢了之后多久必须恢复? 决定放在哪里。要「当天恢复」就不能只放在云端,下载几 TB 要好几天。
  3. 放在哪几份? 对照 3-2-1。
  4. 保留多久的历史? 只做镜像的话,今天删掉的文件明天备份里也没有了。需要找回上个月的版本,就要用有历史的工具(borg、restic、rsnapshot、快照)。
  5. 谁告诉你备份失败了? 配置好邮件通知(配置邮件通知),并且在任务里勾选发送邮件。没有人看的备份等于没有备份。

下面是一个起步方案,按自己的数据变化量调整,不是标准答案:

数据频率保留放哪里
用户数据每晚一次至少一份有历史另一块盘(rsync 任务或 USB 盘)加一份异地
容器数据每周一次,重大变更前手动一次最近几份备份目录并入用户数据的备份
系统盘每周一次,升级前手动一次最近 3 到 7 份数据盘上的备份共享文件夹,再复制一份出去
config.xml 副本每次改动较大后,或每周一次最近几份和系统盘备份放在一起

快照在策略里的位置 ​

快照在冗余和备份之间:它几秒钟就能拍一张,几乎不占空间,非常适合「刚才误删了」的场景。但快照和源数据在同一个文件系统里,盘坏了一起没。所以:快照用来快速回滚,备份用来保命,两者配合,不能互相替代。详见 共享文件夹快照(Btrfs)。

同步不是备份 ​

下面这些工具能把文件复制到另一处,但默认不保留历史,不要当成备份的全部:

  • rsync 任务:目标和源保持一致。勾选「删除」后,误删会同步过去;不勾选,目标会堆积旧文件,但被勒索软件加密的新版本也会覆盖掉好文件。
  • Syncthing、OneDrive 同步这类双向同步工具:一边删,另一边跟着删。见 Syncthing 和 同步 OneDrive。
  • 把备份盘一直插在 NAS 上:雷击、误操作、勒索软件同样会波及它。

需要历史版本,用 BorgBackup、restic 或 rsnapshot。

NAS 跑在 Proxmox VE 虚拟机里

虚拟机备份只覆盖 PVE 存储上的虚拟磁盘;直通进虚拟机的物理盘不在 vzdump 备份里。分工见姊妹站的 OpenMediaVault:在 PVE 上跑一台轻量 NAS。

检查结果 ​

把下面这张表抄进你的笔记,每一行都能填出来,策略才算落地。

数据现有几份分别在哪上一次成功时间谁通知我失败上次演练
用户数据
容器数据
系统盘
config.xml

再问自己一个问题:今晚这台机器被偷了或进水了,明天我能恢复什么? 答不上来的部分就是下一步要补的。

常见问题 ​

RAID1 加一块热备算备份吗? 不算。热备只是更快地重建冗余,误删仍然会同步到所有盘。

备份要加密吗? 放在家里、你自己能控制的盘上,加密不是必须;放到云端或别人家,必须加密,并且把口令和密钥保存在 NAS 之外,见异地与云端备份。

多久演练一次恢复? 文件级每月或每季度一次,容器级每季度一次,系统级每年一次或大版本升级前一次。具体做法见恢复演练。

我只有一块数据盘,怎么办? 先买一块外置 USB 盘,用 USB 备份插件,这是成本最低、最实用的第二份。

参考资料 ​

OpenMediaVault 非官方中文使用指南,与 openmediavault 项目及其开发者无隶属关系。