跳转至

HA 备份灾备 8 问:快照/异地/恢复演练,一次讲清怎么不丢数据

备份灾备这事儿,翻车的不是"没备份",而是**"备份了却恢复不出"**——恢复出来配置缺一块、Add-on 数据没了、或者从来没真恢复过一次,出事才发现快照是坏的。这 8 问按"选形态 → 备份 → 异地 → 演练 → 回滚 → 版本化 → 灾难自救"的顺序讲,每问给可直接照做的命令。

完整操作步骤看 备份与恢复实操;升级相关的回滚看 HA OS 升级与回滚。

第 1 问:备份有几种形态,怎么选

形态 适用 做法
HA OS 快照 装 HA OS 的盒子/虚机 Supervisor 自带,UI 一键
Docker volume 塞进现成 Linux 的 Docker 版 自己 rsync /config 与 Add-on volume
虚拟机宿主快照 PVE/ESXi 上的 HA 虚机 宿主层打快照,整机回退

结论:按你装的形态选。HA OS 用快照最省事;Docker 必须自己管 volume;虚机用宿主快照兜底。

第 2 问:快照必须勾"含 Add-on 数据"

这是最常见的恢复翻车点。 默认快照可能不含 Add-on 数据,恢复出来 Mosquitto 的账号、Node-RED 的 flow 全没了。

# 在 设置 → 系统 → 备份 手动建快照时,务必勾选:
# [x] 包含 Add-on 数据
# 自动快照也确认这项开启

结论:不勾 Add-on 数据 = 白恢复。每次建快照确认这项。

第 3 问:备份频率与保留

  • 每日自动:HA OS 在 Supervisor 里设自动快照,兜底日常。
  • 升级前手动全量:大改动前手动来一份,记下版本号。
  • 保留策略:每日滚动保留 7~30 天;关键节点(升级、大改)额外留一份带日期的归档。

结论:自动管日常,手动管节点,滚动保留防快照本身过期。

第 4 问:异地备份怎么落

本机备份挡不住机器烧毁。异地三选一或叠加:

# 把 /config 同步到 NAS(SSH,增量)
rsync -a --delete /opt/ha/config/ nas:/backup/ha/config/

# 或同步整个快照目录
rsync -a /opt/ha/backups/ nas:/backup/ha/snapshots/

加密后上云也可,但别把含 token 的文件明文传。

结论:异地副本才是真灾备。rsync 到 NAS / 另一台机器 / 加密云,至少一份。

第 5 问:恢复演练必须真做

别等出事才第一次恢复。 定期挑一份快照,在测试环境或空闲机器上真恢复一次,验证:配置完整、Add-on 数据在、自动化能跑。很多"恢复失败"是第一次恢复才发现快照不全。

结论:恢复演练和备份同等重要。每季度真恢复一次,确认快照可用。

第 6 问:升级前必备份 + 回滚路径

大版本每月第一个周三发布。升级前:

  1. 手动全量快照(含 Add-on 数据);
  2. 升级后看 设置 → 系统 → 修复 面板,按引导修弃用配置;
  3. 某自动化不跑,开它的 Trace 看断点;
  4. 救不回 → Supervisor 一键回滚到升级前快照。

完整动作看 HA OS 升级与回滚。

结论:升级前备份是铁律;回滚路径提前确认,别出事现找。

第 7 问:配置即代码进 git

把可文本化的配置版本化,比只靠快照细粒度:

# 只提交配置,绝不提交 secrets.yaml(含 token)
git add configuration.yaml automations.yaml scripts.yaml
git commit -m "add guest mode automation"

误删或改坏能 git diff 回溯到任意版本。

结论:configuration.yaml 等进 git(排除 secrets),误删可回溯,比快照更精准。

第 8 问:灾难场景各自怎么救

场景 救法
SD 卡坏 换 NVMe/SSD,从最新快照恢复(含 Add-on 数据)
机器烧毁 异地副本 + 新机器装 HA OS,恢复快照
误删配置 git 回溯到上一版,或快照恢复单文件
升级崩 Supervisor 回滚到升级前快照

结论:三类副本(本地快照 / 异地 / git)对应不同灾难,缺一个就有一个场景救不回来。

附:快照为什么会被误以为"有备无患"

不少人建了自动快照就再没管过,直到真出事才发现三类隐性故障:快照因磁盘满只写入了一半、Add-on 数据那一项没勾导致恢复出来缺一块、自动任务某天悄悄失败没人发现。所以"有快照"和"能恢复"之间,隔着一次真恢复演练。下面几段把不同安装形态的备份做法和恢复步骤讲透,确保你手里这份备份真能在出事时顶上,而不是安慰自己的摆设。

附:Docker 版怎么备份 volume

没装 HA OS、自己跑 Docker 的,Supervisor 快照用不了,得自己管 volume:

# 停容器后打包 /config 与 Add-on volume
docker stop homeassistant
tar -czf /backup/ha-config-$(date +%F).tar.gz /opt/ha/config
docker start homeassistant

# 或者让 volume 直接 rsync 出去
rsync -a /var/lib/docker/volumes/ha_config/_data/ nas:/backup/ha/config/

结论:Docker 版没有"一键快照",volume 必须自己备份,否则配置和 Add-on 数据一起没,恢复时两手空空。

附:一次真恢复演练怎么做

别只在脑子里想"能恢复"。挑一份快照,在空闲机器或测试容器上走一遍:

  1. 新装同版本 HA OS(或 Docker 起同版本镜像);
  2. 传快照进去,设置 → 系统 → 备份 → 恢复,务必勾选"含 Add-on 数据";
  3. 恢复完查三件事:Mosquitto 账号在不在、Node-RED 的 flow 在不在、自动化列表能不能跑;
  4. 任一项缺失 → 说明快照不全,回去补备份策略,别等真出事才发现。

附:自动异地用 cron 兜底

# 每天 3 点把快照目录 rsync 到 NAS,成功/失败各发一个 webhook 通知
0 3 * * * rsync -a /opt/ha/backups/ nas:/backup/ha/snapshots/ \
  && curl -s "https://ha.local/api/webhook/backup_ok" \
  || curl -s "https://ha.local/api/webhook/backup_fail"

结论:自动异地 + 定期真恢复,两者缺一不可。"灾备就绪"不是配了快照就完事,是验证过能恢复才算数。

8 问实操的最小动作清单

  1. 按形态选备份方式(第 1 问)。
  2. 快照勾含 Add-on 数据(第 2 问)。
  3. 每日自动 + 升级前手动全量,滚动保留(第 3 问)。
  4. rsync 异地至少一份(第 4 问)。
  5. 每季度真恢复演练(第 5 问)。
  6. 升级前备份 + 确认回滚路径(第 6 问)。
  7. configuration.yaml 等进 git,排除 secrets(第 7 问)。
  8. 三类副本覆盖 SD 坏/烧毁/误删(第 8 问)。

一句话总结:备份不是终点,能恢复才是。快照勾全、异地一份、演练真做、配置进 git——四件事凑齐,HA 才算真正灾备就绪。

相关教程