温馨提示×

CentOS Stream 8的备份与恢复策略

小樊
34
2025-12-29 05:50:28
栏目: 智能运维

CentOS Stream 8 备份与恢复策略

一 策略总览与维护状态

  • 面向CentOS Stream 8,建议采用“全量 + 增量”与“本地 + 异地/云端”的组合策略,覆盖系统配置、业务数据与数据库,并配套定期校验与演练
  • 重要提示:CentOS Stream 8 已于 2024-05-01 终止维护,存在持续暴露风险;在备份与恢复的同时,优先规划迁移至Rocky Linux 8/9AlmaLinux 8/9,以降低安全与合规风险。

二 备份范围与工具选择

  • 备份范围建议
    • 系统配置:/etc、/usr/local、/boot(若单独分区)、关键服务的配置与密钥(如 /root、/home 以外的应用配置)。
    • 业务数据:/var(日志、网站根目录、容器/数据库数据等)、用户数据盘。
    • 数据库:使用数据库原生工具执行逻辑备份物理备份(如 MySQL/MariaDB:mysqldump、Percona XtraBackup)。
  • 工具与方法
    • 文件级:tar(全量归档)、rsync(增量/差异同步,便于日常备份与快速回滚)。
    • 系统级:ReaR(Relax-and-Recover,生成可启动恢复介质,适合灾难恢复)。
    • 文件系统:XFS 使用 xfsdump/xfsrestoreLVM 快照用于短期一致性点。
    • 块级/整盘:ddClonezilla 做磁盘/分区克隆(适合同构硬件快速恢复)。

三 推荐备份方案与示例

  • 示例一 文件级全量 + 增量(tar + rsync)
    • 全量(示例排除虚拟与临时文件系统):
      sudo tar --listed-incremental=/backups/snapshots/snap.s0 -czpf \
        /backups/full/centos8_full_$(date +%F).tar.gz \
        --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/run \
        --exclude=/mnt --exclude=/media --exclude=/lost+found \
        --one-file-system /
      
    • 增量(基于同一快照文件,每日执行):
      sudo tar --listed-incremental=/backups/snapshots/snap.s0 -czpf \
        /backups/incr/centos8_incr_$(date +%F).tar.gz \
        --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/run \
        --exclude=/mnt --exclude=/media --exclude=/lost+found \
        --one-file-system /
      
    • 说明:首次创建全量后保留快照文件 snap.s0;后续增量复用该快照文件,便于合成与回滚。
  • 示例二 目录同步与数据库备份(rsync + mysqldump)
    # /etc 与 /var 增量同步(按日)
    sudo rsync -aHAX --delete --info=progress2 \
      --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} \
      /etc/  /backups/rsync/etc_$(date +%F)/
    sudo rsync -aHAX --delete --info=progress2 \
      --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} \
      /var/  /backups/rsync/var_$(date +%F)/
    
    # MySQL 逻辑备份(全库)
    mysqldump -u root -p --single-transaction --routines --triggers --databases your_dbs \
      > /backups/db/full_$(date +%F).sql
    
  • 示例三 系统级灾难恢复镜像(ReaR)
    sudo dnf install -y rear
    # 编辑 /etc/rear/local.conf,设置 OUTPUT=ISO、BACKUP=NETFS 等
    sudo rear -v mkbackup
    
  • 自动化与保留
    • 使用 cron 定时执行(如每日全量、每小时增量),并配置 logrotate保留策略(如 7 天日备、4 周日备、3 月月备)
    • 定期做恢复演练校验和验证(如 sha256sum/校验脚本),确保可用。

四 恢复场景与步骤

  • 场景一 文件/目录级恢复(tar 或 rsync)
    # 从全量/增量归档恢复
    sudo tar xzpf /backups/full/centos8_full_2025-08-01.tar.gz -C /
    
    # 从 rsync 备份回滚
    sudo rsync -aHAX --delete /backups/rsync/etc_2025-08-01/ /etc/
    sudo rsync -aHAX --delete /backups/rsync/var_2025-08-01/ /var/
    
  • 场景二 数据库恢复
    mysql -u root -p < /backups/db/full_2025-08-01.sql
    
  • 场景三 系统级灾难恢复(ReaR)
    • 使用生成的 ISO 启动,选择恢复流程,按向导从备份介质恢复系统;适用于系统无法启动或引导损坏的情况。
  • 场景四 整盘/分区克隆恢复(Clonezilla)
    • 通过 Clonezilla 启动介质选择“device-image”,加载镜像并恢复到目标磁盘,适合同构环境快速还原。

五 关键注意事项与加固建议

  • 一致性:数据库备份使用事务一致性选项;文件系统尽量在只读/单用户/维护窗口执行;LVM 快照可用于短时间一致性点。
  • 引导与 SELinux:系统级恢复后执行 grub2-installdracut 重建 initramfs;使用 restorecon -R / 修复 SELinux 安全上下文;必要时检查 /etc/fstabUUID
  • 验证与演练:每次备份后进行可恢复性验证抽样恢复演练;保留离线/异地副本,降低单点风险。
  • 升级与迁移:鉴于 CentOS Stream 8 已停止维护,恢复完成后应尽快迁移至 Rocky Linux 8/9 或 AlmaLinux 8/9,并在新系统上重建备份策略。

0