1.
总体架构与目标
- 目标:实现RPO(恢复点目标)≤5分钟、RTO(恢复时间目标)≤15分钟。
- 架构:主可用区A(生产)、异地可用区B(备份/热备),使用文件级同步(rsync/rsnapshot)与数据库主从或异步复制(MySQL/MariaDB GTID / PostgreSQL streaming replication)。
2.
磁盘与快照策略
- 操作:对关键数据盘启用增量快照,每小时1次,保留72小时;每日全量快照保留30天。
- 示例命令(按云API或CLI):aws ec2 create-snapshot/azure disk snapshot/gcloud compute disks snapshot,配合脚本轮询和标签管理。
3.
数据库复制与PITR(点时间恢复)
- MySQL:启用binlog、设置GTID,配置从库在异地。若用mysqldump做冷备,建议结合binlog位置保存,实现从binlog回放。
- PostgreSQL:配置wal_level=replica,启用archive_command备份WAL,定期basebackup。
4.
文件同步与一致性快照
- 步骤:1) 暂停写入或使用文件锁2) 执行rsync增量:rsync -az --delete /data user@backup:/data 3) 触发远端快照。
- 验证:比较文件清单(md5sum -c list.md5)并记录时间戳。
5.
网络与DNS容灾设计
- 预案:降低DNS TTL到60秒;主故障时将域名指向备机公网IP或使用全局流量负载器/Anycast BGP切换。
- 操作步骤:在故障前将TTL设置为低值;演练时执行DNS切换并监控生效时间。
6.
健康检查与自动化故障转移
- 配置:负载均衡器(或Keepalived+VRRP)进行HTTP/TCP健康检查,若检测到多次失败触发自动切换脚本。
- 自动化示例:使用Consul/HAProxy脚本结合云API(停止主实例路由,启动备实例并更新DNS/负载器)。
7.
演练前准备清单
- 清单项:备份可用性验证(快照可用、备份完整)、备机镜像构建、自动化脚本测试、团队通讯链路、回滚计划。
- 运行前:通知业务方、降低DNS TTL、记录基线性能指标。
8.
一次完整容灾演练的详细步骤(操作指南)
- 步骤1:验证最近快照与binlog/WAL完好。
- 步骤2:在备区按镜像启动新实例:attach快照为数据盘,挂载并检查权限。
- 步骤3:同步增量数据:rsync --partial --append-verify。
- 步骤4:将数据库从备份点恢复并应用binlog/WAL到目标时间点。
- 步骤5:修改应用配置(指向新DB/后端),在负载均衡上加入备机并逐步转流量(10% → 50% → 100%)。
9.
恢复后验证与回归测试
- 验证项:接口功能测试、数据一致性(随机样本校验)、性能基准(TPS/延迟)、日志无异常。
- 回滚条件:若关键错误出现,立即使用快照回滚备机并重新指回主区DNS,同时记录故障点。
10.
自动化脚本与示例命令
- 文件同步脚本示例:rsync -azP --delete /var/www backup@10.0.0.2:/backup/www && echo "$(date): rsync done" >> /var/log/backup.log。
- 快照脚本示例伪代码:for disk in DISKS; do cloud-cli snapshot create --disk $disk --desc "auto-$(date +%F-%T)"; done。
11.
演练频率与评估指标
- 建议:季度全量演练(含数据恢复)、月度小型切换演练(DNS/流量切换)、每周备份完整性检查。
- 指标:成功恢复率、平均RTO、恢复后数据差异量、演练中发现的工单数量。
12.
常见故障与故障处理流程
- 故障例子:快照失败(检查配额与权限)、数据库延迟高(回滚到近似时间点恢复)、DNS切换不生效(TTL或缓存问题)。
- 处理:按Runbook逐步执行,记录每步时间与负责人,必要时升为应急响应并回滚。
13.
问:如何在演练中保证数据一致性而不影响线上写入?
- 答:采取先在主库开启binlog/WAL并做基线快照,使用从库或临时从库进行一致性快照;文件层面使用文件系统快照或LVM快照避免停止写入,若必须短暂停写可在低峰执行并记录停写窗口。
14.
问:若主机在美国多地被网络隔离,切换到备机具体要多久?
- 答:若预先完成数据同步与镜像,主要操作为启动备机、切换负载均衡/更新DNS与健康检查,目标RTO≤15分钟;若需全量恢复时间取决于数据量与网络带宽,建议演练测算并优化并行恢复步骤。
15.
问:演练后如何归档与改进恢复流程?
- 答:演练结束后产出事后报告,记录恢复时间、问题清单与动作项,归档日志与快照ID,按优先级修正Runbook并在下一次演练验证改进效果。
来源:高可用备份 美国大带宽云服务器的容灾演练与恢复流程设计