1. 总体设计概述
目标:实现台湾地区站群跨可用区(AZ)高可用、快速自动恢复及可演练的容灾体系。
要点:VPC多AZ子网、跨AZ负载均衡、状态复制(文件/DB)、健康检查与自动重建策略、DNS或浮动IP切换、演练流程。
2. 网络与分区设计(VPC/子网)
步骤:在台湾Region创建VPC后,至少建立两个AZ(AZ-A、AZ-B)子网:Web子网、应用子网、数据库子网。
细节:配置路由表、NAT网关(若需出网)、安全组最小化端口权限(80/443、DB端口私网)。
3. 镜像与实例模板准备
步骤:在AZ-A部署好基础镜像(操作系统、agent、监控与日志收集),制作AMI/镜像或镜像快照。
细节:确保cloud-init/ssh key与自动化脚本集成,准备基于镜像的启动脚本用于自动重建(userdata/启动脚本)。
4. 存储与文件同步策略
步骤:选择块存储+定期快照或网络文件系统(NFS/类似Ceph)。跨AZ同步可用rsync或实时同步(lsyncd/DRBD视是否支持)。
实操示例:在主节点设置定期rsync(crontab) -> rsync -az --delete /var/www/ user@backup:/var/www/;或使用l syncd做近实时同步。
5. 数据库跨AZ复制
步骤:采用主从(异步)或半同步复制(MySQL/MariaDB/Postgres)。配置主库在AZ-A,从库在AZ-B。
操作要点:启用GTID或binlog,执行mysqldump或基于xtrabackup的基线复制,保存复制位点并验证:SHOW SLAVE STATUS\G;定期检测延迟。
6. 负载均衡与健康检查
步骤:部署云厂商的跨AZ负载均衡器(或HAProxy+keepalived跨AZ),配置健康检查路径(/health)。
细节:HTTP 200判定健康,设置失败阈值(例如连续5次失败下线),并配置健康恢复检测间隔。
7. DNS与故障转向策略
步骤:将站群域名接入支持健康检查与低TTL的DNS服务(例如带健康检查的DNS或外部DNS+脚本)。
实操:把主LB IP写入A记录,TTL设为60s;当主LB不可达时,通过健康探测自动修改DNS指向备用LB或使用API更新记录。可辅以浮动IP/弹性IP+keepalived做秒级切换。
8. 自动重建(Auto Recovery)流程
步骤:利用Auto Scaling组或云监控触发器,当实例出现硬件/系统故障时自动以镜像启动新实例并自动加入LB。
示例:配置监控告警(CPU/心跳/agent离线),触发Terraform/Ansible脚本或云API调用恢复,自动挂载最新快照并同步数据。
9. 演练与验证
步骤:制定月度/季度演练计划,包括强制断AZ-A、DB主切换、回滚流程。
验证点:RTO(恢复时间)是否满足SLA;RPO(数据丢失窗口)通过复制延迟监控确认;记录演练日志并改进Runbook。
10. 监控、告警与日志聚合
步骤:部署Prometheus/Grafana或云监控,收集实例/应用/DB指标。
要点:设置告警策略(例如复制延迟>10s告警),日志集中化到Elasticsearch或云日志,并确保告警通知到值班群组。
11. 运维自动化脚本示例
文件同步脚本:#!/bin/bash
rsync -az --delete /var/www/ backup@192.0.2.2:/var/www/ >> /var/log/rsync.log 2>&1
DB切换示例:通过脚本执行STOP SLAVE;CHANGE MASTER TO ...;START SLAVE;并验证IO/SQL线程。
12. 备份与快照管理
策略:日备份+重要时间点保留、块存储快照每小时、异地复制到另一Region或冷存储。
恢复演练:定期从快照启动实例并完成应用验证,确保备份可用。
13. 常见故障与应对要点
示例故障:跨AZ网络中断 -> 触发DNS/浮动IP切换;主库宕机 -> 自动提交主从提升并更新DNS与应用配置。
建议:编写清晰的Runbook、自动化脚本并保持联系人列表和回滚方案。
14. 问:跨可用区切换时如何保证最小化站群流量中断?
答:将DNS TTL设低(如60s),使用云级跨AZ负载均衡或浮动IP+keepalived实现秒级切换;并确保实例模板与数据同步到备用AZ以免冷启动造成延迟。
15. 问:数据库主从切换如何自动化并保证数据一致性?
答:使用半同步或GTID复制减少数据丢失;编写提升脚本(检测主故障、在从库上停止复制并提升为主、更新应用配置/DB连接);在切换后校验binlog位点与应用连接。
16. 问:如何定期验证容灾能力并持续改进?
答:制定演练计划(模拟AZ宕机、主库故障),记录RTO/RPO并复盘;每次演练后更新Runbook与自动化脚本,确保演练覆盖真实流量及依赖服务。
来源:台湾站群云主机高可用架构设计 跨可用区容灾与自动恢复策略