6. 不败之地:重建系统备份和数据备份

计划

核心目标:控制数据可恢复,系统可重建

【备份策略矩阵】
  s500data  → ZFS 本地快照 + rsync 到移动硬盘(可浏览)
  repos     → ZFS 本地快照 + rsync 到移动硬盘(可浏览)
  docker    → ZFS 本地快照 + rsync 到移动硬盘(可浏览)
  vms       → ZFS 本地快照 + zfs send -c 块级增量到移动硬盘
  
【本地自动快照(Sanoid)】
  策略:s500data/repos/docker/vms 4个小时,7个日,4个周,12个月,3个年
  回滚:zfs rollback dataset/s500data@autosnap_xxx
  
【冷备】
  首次初始化:
    zpool create backup_pool /dev/disk/by-id/移动硬盘
    zfs create backup_pool/vms
    mkdir -p /mnt/backup-rsync/{s500data,repos,docker}
  日常同步:
    rsync -a --delete --inplace /dataset/s500data/ /mnt/backup-rsync/s500data/
    rsync -a --delete --inplace /dataset/repos/    /mnt/backup-rsync/repos/
    rsync -a --delete --inplace /dataset/docker/   /mnt/backup-rsync/docker/
    sanoid --take-snapshot=manual dataset/vms
    syncoid --no-privilege-elevation --sendoptions="-c" dataset/vms backup_pool/vms
    zpool export backup_pool && 拔盘
  触发方式:手动执行 backup.sh,或通过 Hermes-Host 说“执行冷备”

【验证机制】
  日常:rsync 后 diff -r 抽查;zfs send 后 zstreamdump 校验
  季度:隔离 VM 中执行完整恢复演练


【灾难重建 S.O.P】
  1. 新盘装 NixOS LiveUSB
  2. 挂载 /dataset,git clone 配置,nixos-rebuild switch
  3. rsync 恢复 s500data、repos、docker
  4. zfs receive 恢复 vms
  5. 全量复活,< 30 分钟

【空间估算】
  rsync 副本 ~600GB(三个目录合计)+ zfs send 流 ~200GB = 800GB
  2TB 移动硬盘剩余 1.2TB 缓冲