1.
概述与目标定义
- 目标:在台湾为站群(大量独立站点/子域)实现多地域容灾(跨可用区/邻近地域),将单点故障对站群影响降到最小。
- 要点:明确RTO(恢复时间目标)与RPO(数据丢失容忍),决定冷备/温备/热备策略,并评估带宽、成本与合规性。
2.
拓扑与部署方案选择
- 常见拓扑:主动-被动(主台湾节点 + 异地备份),主动-主动(两个或多个地域都对外提供服务,负载均衡层分流)。
- 推荐:对站群建议混合使用主动-被动(成本控)与主动-主动(关键站点),并配合DNS智能解析与全局流量管理。
3.
供应商与地域选择实操
- 步骤:列出可用的台湾节点与邻近地域(如香港、新加坡或云商在台机房),对比带宽、延迟、网络出口与合约条款。
- 操作建议:在选定提供商控制台开通至少两个地域的VPC/私有网络与安全组,记录公网IP段与ASN以便后续网络策略。
4.
DNS与流量切换策略配置
- 配置步骤:降低主域名TTL为60秒或更低用于切换测试;在DNS供应商启用“健康检查+故障转移”或使用第三方DNS(具备地理/延迟路由)。
- 实操命令示例:在DNS控制台增加备用A/AAAA记录和按健康检查条件的权重。测试:在本地hosts临时替换主IP验证切换流程。
5.
负载均衡与入口层部署
- 步骤:在每个地域部署反向代理/负载均衡(Nginx/HAProxy或云LB),并配置健康检查指向后端站点。
- 小提示:启用会话粘滞或将会话迁移到共享会话存储(例如Redis),避免用户在切换时丢失登录状态。
6.
文件与静态资源同步(图片、附件)
- 推荐方案:优先使用对象存储(OSS/S3)作为静态资源中心,两个地域双写或跨区域复制(开启Bucket复制)。
- 若使用主机文件系统:使用rsync+cron或lsyncd做实时同步,示例rsync命令:rsync -az --delete /var/www/html/ user@backup:/var/www/html/。并配置ssh密钥与限速。
7.
数据库容灾配置(以MySQL为例)
- 架构选择:主从异地复制(主在台湾,被在异地);关键站点建议主主双写或使用中间层复制(ProxySQL + Galera/Group Replication)。
- 实操步骤(主从简单GTID示例):
1) 在my.cnf开启:server-id、log-bin、gtid_mode=ON、enforce_gtid_consistency=ON。
2) 在主库执行:CHANGE MASTER TO MASTER_HOST='主IP', MASTER_USER='repl', MASTER_PASSWORD='pwd', MASTER_AUTO_POSITION=1; START SLAVE; SHOW SLAVE STATUS\G。
3) 定期备份:mysqldump或Percona XtraBackup做热备。
8.
会话与缓存同步(Redis/Session)
- 推荐做法:将会话从本地文件/内存移到集中式Redis集群,Redis可用配置为主从+Sentinel或Cluster,并在两个地域各部署节点与异步复制/备份。
- 操作提示:配置应用使用Redis连接池,调整过期策略;启用Redis持久化(AOF+RDB)并定期把RDB传到异地对象存储。
9.
自动故障检测与切换实现
- 实操组件:使用云厂商健康检查、Prometheus Alertmanager、或自建脚本结合DNS API实现自动切换。
- 示例流程:Prometheus检测主站不可用→Alertmanager触发Webhook到自建切换服务→调用DNS提供商API更新解析并缩短TTL→通知监控/运维。
10.
备份策略与保留策略
- 步骤:制定差异化备份策略(数据库:每日全量+每小时增量;文件:每日快照),并把备份异地存储(对象存储/冷存储)。
- 操作要点:备份要能独立恢复,定期做恢复演练并记录恢复步骤与耗时。
11.
测试演练与演习步骤(必做)
- 演练清单:1) 单节点故障;2) 整个地域网络中断;3) 数据回滚;4) 灾难恢复恢复时间计量。
- 实操建议:先在低风险时间窗口测试,使用预先设定的验证脚本(检查页面、数据库主从状态、文件一致性),并记录RTO/RPO是否达标。
12.
监控、告警与日志集中化
- 配置项:Prometheus + Grafana监控主机与应用;ELK/EFK集中化日志;设置关键告警(HTTP 5xx、延迟、复制滞后)。
- 操作建议:告警要有明确负责人与SOP,自动化工单或短信/电话通知确保有人响应。
13.
安全与合规注意事项
- 注意点:跨地域传输敏感数据需加密(使用TLS、VPN或私有网络互联),备份加密并管理密钥。
- 操作建议:定期做漏洞扫描、开通WAF防护,确认台湾/地区法律对个人信息的合规要求并落地。
14.
运行与成本优化建议
- 成本控制:对低优先级站点使用冷备或周期性同步;利用对象存储作静态CDN前端减少带宽。
- 优化步骤:按业务重要性分组站群,给关键站点分配热备资源,非关键站点采用集中共享资源模型。
15.
故障演练问:如何判断RTO与RPO是否满足业务要求?
- 回答步骤:先与业务方沟通明确目标;在演练中记录实际恢复时间与数据差距(最后写入时间);将演练结果与目标对比,若不达标,优化复制频率或提升热备级别。
16.
故障演练问:在台湾节点网络中断时,最简单的手动切换步骤是什么?
- 回答步骤:1) 在运维控制台或DNS供应商控制台将主域解析指向备节点IP或备用LB;2) 确保备节点数据库为最新或可回滚到主写入点;3) 缩短TTL并通知监控团队验证站点可用性;4) 在主节点恢复后按SOP回切并同步数据。
17.
故障演练问:如何控制跨地域同步带来的带宽和一致性成本?
- 回答步骤:1) 对非关键静态内容使用对象存储与CDN代替实时同步;2) 数据库采用异步复制并将重要业务使用半同步或双写;3) 使用增量备份与压缩传输(rsync -z)降低传输量;4) 对站群按优先级分层,关键站点走热备,低优先级走日备。