3.8.5 备份介质与保存周期
3.8.5 备份介质与保存周期#
备份介质与保存周期需要与RPO/RTO、成本与合规要求匹配,并形成可执行的“存放位置+保留规则+轮换机制”。
介质选择与分层原则
- 热数据:本地磁盘/RAID、NAS(恢复快)
- 温数据:对象存储、云备份(扩展弹性)
- 冷数据:磁带/离线介质(成本低、长期归档)
原理草图:3-2-1 与分层保存
保存周期模型示例(GFS)
- 日备:保留7天
- 周备:保留4周
- 月备:保留12个月
- 关键节点:版本发布/财务结算长期保留
示例:本地 + NAS + 对象存储的分层备份
# 1) 本地全量备份(每日)
tar -czf /backup/daily/$(date +%F).tar.gz /etc /var/www
# 说明:将配置与网站目录打包,文件名为日期
# 2) 同步到NAS(每晚)
rsync -avz --delete /backup/daily/ backup@nas01:/data/backup/daily/
# 说明:--delete 保证NAS与本地一致,避免历史垃圾
# 3) 上传到对象存储(每周)
# 安装 awscli(示例以Amazon S3为例)
# Ubuntu/Debian:
apt-get install -y awscli
# RHEL/CentOS:
yum install -y awscli
aws s3 sync /backup/daily/ s3://ops-backup/daily/ --storage-class STANDARD_IA
# 说明:STANDARD_IA 为低频存储,降低成本
保存周期清理脚本示例(保留7日/4周/12月)
# 文件路径:/usr/local/bin/backup_retention.sh
#!/bin/bash
set -e
BASE=/backup
# 1) 日备保留7天
find $BASE/daily -type f -mtime +7 -name "*.tar.gz" -delete
# 2) 周备保留4周(以周日为周备)
find $BASE/weekly -type f -mtime +28 -name "*.tar.gz" -delete
# 3) 月备保留12个月
find $BASE/monthly -type f -mtime +365 -name "*.tar.gz" -delete
echo "Retention done: $(date)"
介质标识与台账示例
备份介质台账(示例字段)
- 介质编号:TAPE-001 / DISK-03 / NAS01
- 保存范围:2024-10-01 全量
- 存放位置:机房A柜3层
- 责任人:ops01
- 状态:可用/归档/报废
命令解释要点
- rsync -avz --delete:递归同步并删除目标多余文件,保持镜像一致
- aws s3 sync:将目录增量同步到对象存储,可指定存储类型
- find -mtime +N -delete:清理超过N天的历史备份
排错与验证
- NAS连接失败:
# 检查网络与端口
ping nas01
nc -zv nas01 22
# 检查权限
ssh backup@nas01 "ls -ld /data/backup"
- 对象存储上传失败:
aws sts get-caller-identity
aws s3 ls s3://ops-backup/
# 检查凭据与网络代理设置
- 备份文件损坏:
tar -tzf /backup/daily/2024-10-01.tar.gz >/dev/null
# 说明:tar能正常列出目录即通过基础校验
练习
1. 设计一个适用于“核心数据库+日志”的介质分层策略,并给出保存周期。
2. 将示例脚本改造为“保留最近10天日备、6周周备、24个月月备”。
3. 模拟NAS不可达场景,写出故障排查步骤与恢复流程。