快照与备份:AIO 的保险绳
先分清快照与备份
很多人把快照当备份用,这是 AIO 翻车的头号原因。快照记录的是某一时刻的内存与磁盘状态,好处是秒级完成、随手可打,坏处是它依赖原始数据本身——底层磁盘坏了,快照跟着一起没。备份则是把数据完整地复制到另一块盘、另一台机器或另一个地方,遇到硬件报废也能恢复。两者的关系是:快照管回滚,备份管救命,缺一不可。
对 AIO 来说,快照的最佳用途是升级与改配置之前压一个,失败了一键回到改之前;备份的最佳用途是定期把关键数据搬到独立的物理介质上。建议的操作组合:虚拟机层面用 PVE 自带快照做快速回滚,宿主层面用 vzdump 做完整备份到另一块盘,重要数据再做异地冷备。三层保护的成本逐层上升,但能覆盖的事故类型也逐层扩大,家庭预算下按需取前两层即可保住大部分心血。
| 维度 | 快照 | 备份 |
|---|---|---|
| 速度 | 秒级 | 分钟到小时级 |
| 占用 | 差异盘,很小 | 完整副本 |
| 防误操作 | 有效 | 有效 |
| 防硬件损坏 | 无效 | 有效 |
| 典型时机 | 升级与改配置前 | 每周或每日固定 |
给虚拟机打快照
PVE 的快照依赖存储层支持,LVM-thin 与 ZFS 都没问题。操作很简单:虚拟机右键,拍快照,起个名字加句备注。备注别偷懒,一周后你不会记得 pre-2 和 pre-3 的区别。命令行同样一行:
qm snapshot 101 pre-upgrade --description "升级OpenWrt前"
qm snapshot 201 before-config --vmstate 0
--vmstate 0 表示不保存内存状态,适合纯存储虚拟机;带内存状态的快照能恢复到运行现场,但体积更大。回滚同样右键或者 qm rollback 101 pre-upgrade,秒级回到当时状态。注意两点:快照不要长期堆着不删,每个快照都占用差异空间并拖慢随机写;装多个快照后磁盘性能下降明显,升级完成确认稳定就清掉旧快照。容器用 pct snapshot,参数与 qm 一致。
宿主本身没有快照功能,但 PVE 把宿主配置目录 /etc/pve 做成了特殊文件系统,所有虚拟机配置都在里面,用 git 给它做版本管理是非常便宜的好习惯,改崩了 git checkout 就能恢复。顺手把 /etc/network/interfaces 与 grub 配置一起纳入管理,网络改错的损失也能一键回滚。
用 vzdump 做计划备份
vzdump 是 PVE 内置的备份工具,可以把虚拟机整机备份成一个压缩文件。最方便的做法是网页数据中心里的备份任务,设定计划时间、目标存储、保留份数,剩下交给系统。也可以命令行手动跑:
vzdump 101 201 --storage backup-disk --mode snapshot --compress zstd
# 备份全部虚拟机并发数别开太大
vzdump --all --storage backup-disk --mailto you@example.com --maxfiles 7
mode 有 snapshot、suspend、stop 三种。snapshot 模式不停机,多数情况首选;数据库类虚拟机为避免数据不一致,选 stop 或 suspend 更保险。备份目标存储建议放在独立的物理盘上,在数据中心存储页添加一个 directory 类型存储并勾选备份用途即可。保留策略用 keep-last 7 这类参数控制滚动删除,配合邮件通知,失败了一次性看个明白。

恢复与验证
备份不验证等于没备份——存储圈的名言。恢复的操作很直白:网页备份页面选中记录点还原,或命令行 qmrestore 备份文件 目标ID。强烈建议定期演练:找个维护时间,把某台工具机的备份还原到新的虚拟机 ID 上,开机确认服务能起来,再决定原虚拟机的去留。演练能暴露隐蔽问题,比如备份存储空间不足、压缩参数与实际剩余空间不匹配、以及最容易忽略的一条——恢复出来的虚拟机网卡 MAC 变了,防火墙里按 MAC 绑定的规则全部失效。
恢复后还要检查三件事:网络是否冲突(IP 是否重复、MAC 依赖的规则是否更新)、自启顺序是否正确、数据是否停在预期的时间点。异地冷备同样别只是拷完就锁柜子,每年抽一次盘接到电脑上读一读,坏盘的故事每年都在发生。预算充足的话,两块冷备盘轮换使用,一块存银行办公室之类的地方,火灾与失窃的概率虽然低,但真发生时你会感谢自己。
一些容易踩的坑
存储空间是备份策略里最先失守的环节。计划任务开一个月、每台虚拟机留十份,再遇上几个大磁盘的 NAS 虚拟机,备份盘很快写满,而 vzdump 不会自动清理超出的旧文件,需要靠 keep 参数提前设好。建议计算一下每日备份总量再定保留份数,并在通知设置里打开存储不足告警。第二个坑是把备份盘也拿去做日常存储,混合读写既影响备份速度又增加损坏概率,备份盘就专心当备份盘。第三个坑是只备份虚拟机不备份宿主配置:网卡直通映射、网络接口文件、grub 参数都只在宿主上,一个 /etc 目录的 git 加定时 rsync 到移动硬盘就能解决大麻烦,成本十分钟,收益是宿主重装后半小时内恢复全套配置。
远程执行备份与恢复操作都离不开命令行,相关的登录与权限管理见 SSH 远程登录与加固。
备份的量化规划
备份策略最容易翻车的地方是空间规划,这里给一个可复制的算法:先估算单次备份体积(把各虚拟机磁盘占用加总,按 zstd 压缩后乘 0.6 作为粗略估计),再乘以并发保留份数,最后加 30% 的波动余量。比如全部虚拟机磁盘共 200GB,每天一次保留 7 份,备份盘就准备 200×0.6×7×1.3 ≈ 1.1TB。算完你会立刻明白为什么 NAS 虚拟机的数据盘不该整机备份——那是大头所在,它的备份策略应该走数据层面的同步(rsync、快照复制),而不是整机镜像。

另一个要量化的指标是恢复时间:从备份里还原一台虚拟机要多久、批量还原全家要多久。理想情况下整机镜像的还原速度由备份盘的读取速度决定,做一次实测记录下来。灾难恢复的目标定得明确——半小时恢复关键服务(路由加 NAS),还是三小时全家恢复,决定了你要不要异地冷备与备份盘的规格。
存储池的空间也建议留出运维操作空间:LVM-thin 或 ZFS 池用满后快照会失败、虚拟机会暂停写入,留 15% 到 20% 的余量是健康底线。监控里加一条空间使用率告警,超过 80% 就提醒清理,这条规则同样适用于备份盘。
还有一个新手的迷惑行为值得说说:快照当存档用。有人拍了十几个快照不舍得删,磁盘占用日益增长,最后快照层叠导致性能崩盘。快照的生命周期应该是几天到几周:变更窗口期内频繁打,稳定后立刻清。要长期保存的东西只有一条出路——转成备份文件挪走。养成这个习惯,快照功能才服务你而不是绑架你。
补充一套与快照配合的标准变更流程,给软路由玩家直接照抄:变更前 qm snapshot 打快照、记录变更摘要、执行变更、验证三分钟(基本功能联通)、确认后保留快照 72 小时、超时清理。72 小时是个经验值——当天没出问题的问题基本不会是回滚能解决的,留着只是占空间。这套流程跑顺了,家里的每一次改动都有安全网。
变更流程模板
补充一套与快照配合的标准变更流程,给软路由玩家直接照抄:变更前 qm snapshot 打快照、记录变更摘要、执行变更、验证三分钟(基本功能联通)、确认后保留快照 72 小时、超时清理。72 小时是个经验值——当天没出问题的问题基本不会是回滚能解决的,留着只是占空间。这套流程跑顺了,家里的每一次改动都有安全网。
备份介质的选择
备份写在哪里,决定了它能抗住哪一级的事故。移动硬盘是家庭冷备的性价比之王:容量大、断电可保存、随手可换盘,缺点是恢复时要手动接线;另一块内网磁盘是热备位,胜在自动化(备份任务直接写入),怕的是与主机共用电源与物理位置。云存储是异地层:只同步最重要的文档与照片,成本以订阅计,胜在无论家里发生什么都能取回。
介质组合的经典三层:本机另一盘的自动备份(抗击系统故障)、移动硬盘的周度冷备(抗击主机报废)、云端的文档同步(抗击物理灾难)。三层中任何一层单独失效都不致命,这就是冗余的意义。介质本身也会老化:移动硬盘每两三年做一次读写校验,重要的数据在两种介质各放一份。家里存照片的那个目录最值得上三层,因为它是全家唯一无法重建的数据。
延伸阅读
- 计算机网络入门:备份涉及存储与网络的多种协议,概念清晰少走弯路。
- SSH 远程登录与加固:备份与快照大量靠命令行与计划任务完成,SSH 是基础工具。
- 宝塔面板实战:需要图形化管理定时任务时可以参考面板工具的做法。
