1) 目标:为香港自营站群构建多机房容灾体系,确保单机房故障时业务可在RTO≤5分钟、RPO≤1分钟内恢复。
2) 覆盖范围:涵盖Web主站、API、图片/静态资源和邮件服务,涉及物理服务器、VPS、域名解析与CDN。
3) 可用性目标:年度可用性目标99.95%(年宕机时间≈4.38小时)。
4) 业务分级:将站群按流量与重要性分为A/B/C三类,A类要求主动热备,B类冷备/次热备,C类快照恢复。
5) 合规与运维:满足香港本地数据主权考虑,并保证自动化演练与回滚能力,运维工单SLA≤30分钟响应。
1) 拓扑设计:主机房(HK-Primary) + 灾备机房(HK-Secondary或CN/SG跨区),采用双活或主备+Anycast DNS。
2) BGP与网络:每个机房至少2个BGP出口,多运营商接入(PCCW/NTT/ChinaMobile HK),冗余链路带宽建议至少10Gbps以上用于突发流量。
3) 负载均衡:内部使用LVS/HAProxy/Nginx做四层/七层负载分发,前端可用云LB结合Anycast加速(TTL=30s)。
4) 专线与互联:建议关键数据走MPLS或私有VPN,机房间链路延迟目标≤20ms,丢包率≤0.1%。
5) 健康检查:结合BFD(子分钟物理链路故障检测)、HTTP(S)探测与应用层心跳,触发自动切换策略。
1) 物理主机(示例):Dell R740x2,CPU Intel Xeon Silver 4216 x2(32核),内存64GB ECC,NVMe 1.92TB(RAID1),10GbE双口,公网带宽10Gbps。
2) 数据库主机(示例):Dell R640,CPU Xeon Gold 5218(16核),内存128GB,NVMe 3.84TB,RAID10,10GbE。
3) VPS示例:香港VPS 4核/8GB/80GB NVMe,带宽1Gbps(按需弹性扩容至5Gbps)。
4) 存储与对象:本地NAS + 对象存储(S3兼容)异地复制,冷备快照每小时一次,保留7天。
5) 下表列出主/备机房典型节点配置(供参考):
| 位置 | 角色 | CPU/内存 | 存储 | 带宽 |
|---|---|---|---|---|
| HK-Primary | Web/API/DB | 2xXeon 32c /64-128GB | NVMe 2-4TB RAID | 10Gbps 公网 |
| HK-Secondary | 热备/缓存 | 1xXeon 16c /64GB | NVMe 2TB | 5Gbps 公网 |
| SG/JP(跨区) | 异地备份 | VPS 4c/16GB | 对象存储 S3 | 1-2Gbps |
1) 检测机制:链路层使用BFD(检测周期200ms,故障触发3次),L4/L7使用TCP/HTTP探测(30s/10s)。
2) 切换策略:短时网络故障采用本地LB绕开故障节点,机房级故障触发Anycast+DNS切换或BGP撤销路由。
3) DNS策略:使用低TTL(30秒)与主动DNS监控(健康检测失败触发DNS更新),并在必要时配合CDN做流量吸收。
4) 自动化执行:故障触发由监控系统(Prometheus+Alertmanager/自研)下发Ansible/Script执行切换操作并通知运维。
5) 指标与目标:期望RTO≤5分钟(自动化),人工回退SLA≤30分钟,切换成功率≥99%。
1) 同步方案:数据库采用主从同步(MySQL GTID),主库binlog实时复制,异地延迟目标≤200ms。
2) 文件同步:静态文件使用rsync增量+librsync或使用Ceph/RADOS跨机房复制(multi-site)。
3) 强一致性:关键业务走同步复制或半同步(semi-sync),RPO控制在1分钟内。
4) 备份策略:全量快照每日一次,增量每小时一次,保留策略30天;重要数据异地归档90天。
5) 恢复演练:月度演练数据库回放和恢复验证,恢复时间目标(DB restore)≤30分钟(从最近快照)。
1) CDN接入:静态资源与热点内容全部接入CDN(Cloudflare/Alibaba/AWS CloudFront),减少源站压力并做边缘缓存。
2) DDoS防护:前端采用云端清洗(抗DDoS容量≥100Gbps,建议按峰值流量2-3倍购买),并使用WAF规则防止应用层攻击。
3) 流量调度:在DDoS情况下启用Rate-limit与Challenge(JS/CAPTCHA),并将恶意流量导流至清洗中心。
4) 防护示例:采用Cloudflare Spectrum + 本地BGP anycast,已承受过单次攻击峰值120Gbps并保持主要站点可用。
5) 日志与溯源:结合CDN日志、WAF与NetFlow做攻击溯源,配置黑白名单与自动封堵规则,平均响应时间≤5分钟。
1) 客户背景:某广告站群客户A,日均访问量4000万PV,主要部署在HK-Primary(自营机房)。
2) 故障概况:2024年5月演练中模拟主机房核心交换故障,部分路由中断导致主站无法对外服务。
3) 实施过程:检测触发(BFD+HTTP探针)在40s内发现异常,自动化脚本在90s内撤销BGP并切换到HK-Secondary,DNS TTL更新在120s内生效。
4) 指标结果:演练总切换时间约3分20秒,RTO目标达成(≤5分钟),流量下降不到8%,未造成数据丢失(RPO=0,使用半同步+binlog)。
5) 经验教训:建议将DNS TTL进一步优化为15s(对SEO影响可窗体化处理),并在高峰期外增加一次跨区冷启动演练。
1) 总体建议:采用主备+Anycast+CDN的混合架构,结合自动化监控与剧本化切换,能在保障可用性的同时控制成本。
2) 投资重点:优先投入带宽冗余、BGP多线、对象存储与自动化备份、以及云端DDoS清洗能力。
3) 演练频次:至少季度一次全流程故障演练,月度窗口级别回归测试。
4) 监控与报警:指标覆盖链路、主机、应用与业务关键路径,报警分级并自动化触发恢复脚本。
5) 下一步计划:基于当前架构制定详细SOP、实现蓝绿与流量分片切换并与域名注册商/托管商签署应急支持协议。