1.
规划与前置准备
- 确认机房位置与提供商:列出台湾多个节点运营商并确认是否提供BGP/MPLS、多线出口。
- 资源清单:列出需要的公网IP、私有网段(如10.10.0.0/16)、VLAN ID、交换机端口与冗余路由器。
- 文档化:把拓扑图画在Visio或draw.io,标注链路速率、冗余路径与故障恢复时间目标(RTO/RPO)。
2.
物理与交换层配置
- 交换机VLAN划分:例如管理VLAN100、前端VLAN200、后端VLAN300。配置示例:interface vlan 200 ip address 10.10.200.1/24。
- 端口聚合与冗余:启用LACP(EtherChannel)聚合上行链路至两台核心交换机,保证单链路故障不影响流量。
- SFP链路备份:主链路光纤与备用链路分开走不同管线,避免物理同点故障。
3.
路由与多线接入(BGP/静态)
- 若供应商支持BGP:申请AS号或与ISP对接,配置邻居并做路由策略(prefix-list、MED、本地优先级)。
- 静态或双上行:两家ISP可用VRRP/GLBP做默认路由主备。示例(Quagga/FRR):router bgp 64512 neighbor x.x.x.x remote-as 65001。
- 流量策略:按业务(源IP或端口)做策略路由,实现出口分流。
4.
负载均衡与浮动IP实现
- 前端使用HAProxy或LVS:HAProxy配置frontend/backend,开启健康检查(option httpchk)。
- Keepalived实现VIP(VRRP):示例配置片段:vrrp_instance VI_1 { virtual_router_id 51 state MASTER interface eth0 virtual_ipaddress { 10.10.200.100 } }。
- 健康脚本:keepalived调用脚本检测HAProxy进程或后端服务,失败时触发VIP迁移。
5.
存储与数据库高可用设计
- 存储:小规模可用DRBD做块级同步,示例:drbdadm create-md r0 && drbdadm up r0 && drbdadm -- --overwrite-data-of-peer primary r0。
- 文件同步:使用rsync+cron或lsyncd做实时同步;大规模推荐Ceph或NFS HA集群。
- 数据库:MySQL推荐主主或主从+MHA/Orchestrator管理。示例主从配置:CHANGE MASTER TO MASTER_HOST='主IP', MASTER_USER='repl', MASTER_PASSWORD='pwd', MASTER_AUTO_POSITION=1; START SLAVE; 并定期检查show slave status\\G。
6.
监控、告警与故障演练
- 监控:部署Prometheus+Grafana、Zabbix或Nagios,覆盖链路、CPU、磁盘、服务健康。
- 自动化恢复:结合Ansible脚本实现节点替换、配置回滚与VIP切换。
- 演练:定期进行切换演练(模拟主链路断开、主节点宕机),记录RTO/RPO并调整策略。
7.
常见问题与优化建议(问答1)
问:如何在台湾机房实现最低延迟的链路冗余?
答:优先选择多线BGP接入并与本地主要骨干直连,使用LACP聚合减少单链路拥塞;在应用层做就近访问策略(GeoDNS/Anycast)与TCP调优(tcp_tw_reuse、拥塞算法bbr)。
8.
运维注意点(问答2)
问:VIP切换后会不会导致会话中断?
答:通过会话保持(HAProxy stick-table或LVS persistence)与后端会话复制(MySQL会话恢复、应用层redis持久化)可减少中断;必要时采用会话同步或在切换窗口使用短暂流量引导。
9.
部署检查清单(问答3)
问:上线前必须核对哪些关键点?
答:核对路由与BGP邻居、交换机VLAN与LACP状态、VIP高可用测试、数据库复制延迟、存储同步一致性、监控告警到位与应急恢复手册。
来源:台湾托管服务器网络拓扑与高可用设计实战分享