1.
需求与总体方案确认
- 明确RTO/RPO(比如RTO≤1小时,RPO≤5秒)与业务优先级。
- 确定站点数量(主站+同城备/跨区备),通常为香港A/B两地+远端冷站。
- 决定同步方式:同城主备同步(同步复制/同步复制介质)用于关键交易;异地备份使用异步复制。
2.
机房与网络拓扑设计
- 采用至少两个物理独立机房(同城多机房或邻近机柜)做活跃-活跃或活跃-被动。
- 网络分层:边界防火墙、三层交换、内网VLAN/VRF分隔前端/应用/数据库流量。
- 双ISP BGP或静态冗余,配合任何播(Anycast)或VIP漂移以实现IP层高可用。
3.
服务器与虚拟化层实施步骤
- 先准备裸金属或虚拟化平台(VMware vSphere或KVM+OpenStack),配置冗余管理网络。
- 对于KVM,安装并配置libvirt/qemu,创建模板镜像并开启cloud-init以便自动化配置。
- 使用Ansible/Terraform统一推送基础配置:主机名、NTP、监控Agent、防火墙策略。
4.
存储与数据同步具体实施
- 如果使用SAN/NAS,配置同步卷组(例如Dell/EMC/NetApp的MetroCluster或同步镜像),在两机房间做同步复制。
- 对于本地SSD阵列,使用DRBD做块级双写(主主或主备)并配置STONITH以防脑裂(示例DRBD流程:安装drbd-utils→创建资源文件→drbdadm create-md→drbdadm up→drbdadm primary)。
- 测试断网场景,验证写入一致性与故障切换时间。
5.
数据库高可用配置步骤
- Oracle:配置Data Guard或Active Data Guard,设置同步Redo传输并验证物理同步。
- PostgreSQL:使用PG-HA(Patroni + etcd/consul)实现Leader选举与故障迁移;步骤:部署etcd→部署Patroni配置文件→启动并验证switchover。
- SQL Server:使用Always On Availability Groups,注意子网与监听器(listener)配置以支持客户端VIP。
6.
应用层与会话管理实操
- 设计无状态应用:把会话存储到Redis/Memcached集群或使用JWT,避免单点会话存储。
- Redis集群可用Sentinel或Redis Cluster模式部署,步骤:安装Redis→配置replicaof→部署Sentinel文件并设置监控脚本→模拟主故障验证自动切换。
- 部署自动化扩缩容脚本(通过Kubernetes HPA或自定义监控触发脚本)。
7.
负载均衡与VIP漂移详细实施
- 前端部署双活负载均衡(F5或HAProxy + keepalived)。
- keepalived配置:定义vrrp_instance、state、interface、virtual_router_id、virtual_ipaddress,并设置优先级与追踪脚本;示例:在主节点设置优先级100,备节点90。
- 配置健康检查脚本(HTTP/TCP)用于通知keepalived切换;测试过程:停掉后端服务观察VIP漂移时间并记录。
8.
监控、告警与自动化运维步骤
- 部署监控体系(Prometheus + Grafana 或 Zabbix),监控主机、网络、数据库复制延迟、磁盘IO、应用响应等。
- 建立告警策略:复制延迟>5s、主机不可达、VIP漂移失败,触发SMS/邮件/PagerDuty。
- 使用Ansible/CICD流水线管理配置变更,所有变更先在预发布环境跑一遍自动化回滚测试。
9.
演练与灾备(DR)步骤清单
- 定期做全量演练:步骤包括触发主站故障→等待VIP漂移→数据库失效切换→应用流量切换→验证交易一致性。
- 演练前准备:备份配置/数据库快照、通知业务方、编写详细Runbook(每一步命令和负责人)。
- 演练后做复盘,记录RTO实际值、问题清单并修订方案。
10.
安全与合规实操要点
- 数据在传输和静态都需加密:使用TLS、IPsec或光纤通道加密,数据库字段敏感信息采用透明加密或HSM。
- 访问控制:使用LDAP/AD集中认证,启用多因素认证,限制管理口通过堡垒机访问并记录审计日志。
- 遵循香港监管要求(如HKMA指引),准备审计材料与变更记录。
11.
常见故障与排错步骤(问)
- 问:如果数据库主备切换后应用出现错误,排错第一步是什么?
12.
常见故障与排错步骤(答)
- 答:第一步检查DNS/VIP是否指向新主节点(使用dig/arp/arping/IP route),然后确认应用到数据库的连接字符串是否更新或是否使用了监听器;接着查看数据库复制状态和错误日志,必要时回滚并执行演练回归。
13.
演练频率与合格标准(问)
- 问:演练多久一次才算合格,如何量化通过标准?
14.
演练频率与合格标准(答)
- 答:建议月度小演练(配置/单点故障)与年度全面演练;合格标准按RTO/RPO达标、业务交易完整性无丢失、关键监控告警未漏报来判定,演练记录需以Runbook中的每一步成功与否作为评分依据。
来源:银行级项目案例中国香港银行服务器设计中的高可用策略