1.
准备与评估
1) 确认业务时间窗与RTO/RPO目标(例如RTO 30分钟,RPO 1小时)。
2) 评估现有菲律宾机房带宽与峰值流量(例:95th流量200Mbps)。
3) 列出所有服务:Web(80/443)、SSH(22)、MySQL(3306)、Redis(6379)、邮件(25/587)。
4) 评估DDoS防护需求:是否需要Anycast、L7清洗或云端CDN+WAF。
5) 选择目标环境:本地PH机房(e.g., 本地VPS)或云上节点(如新加坡/香港节点),并确认公网吞吐(例1Gbps端口)。
2.
迁移策略选择
1) 冷迁移:停服快照迁移,适用于非实时业务,RTO较长。
2) 热迁移(增量同步):使用rsync/DRBD/双向复制,适合数据库+静态文件并行同步。
3) 双活+流量切换:源站与目标站并行,使用DNS低TTL或Global Server Load Balancing切换。
4) CDN前置:将静态内容放CDN,降低切换时的回源压力。
5) DDoS策略:上游清洗(ISP/云厂商)+中间件限流,必要时启用Cloudflare/Incapsula防护。
3.
数据同步与实时复制步骤
1) 初始全量数据传输:建议使用rsync -aHX --delete --progress /var/www/ user@target:/var/www/,并在网络条件下估算时间(例如100GB在200MB/s带宽理论需约8分,但实际限速25MB/s约1.1小时)。
2) 数据库全量导出:使用mysqldump或xtrabackup,示例:
- xtrabackup --backup --target-dir=/data/backup --user=root --password=xxx
3) 增量复制:配置MySQL主从或GTID复制,并验证binlog同步延迟小于RPO。
4) 文件增量同步:在全量后启用rsync增量循环(每5分钟一次),或使用lsyncd实时监听。
5) 最终切换前的短暂停止写入:在切换窗口内将应用置为只读或使用maintenance模式,等待最后一轮增量同步并验证一致性。
4.
DNS/域名与CDN切换操作
1) 事先将域名TTL降至60s或更低,便于快速回滚。
2) 切换顺序:先切换CDN回源配置(指向新IP),再切换A记录或使用CNAME。
3) 使用带有监控的自动化脚本验证切换后页面/接口响应码(200/401验证)。
4) 如果使用Anycast或GSLB,配置健康探测与权重,逐步将流量拉至目标机房。
5) 切换完成后将TTL恢复至常规值(300-3600s),避免过度DNS查询。
5.
DDoS防御与安全加固
1) 在迁移前确保上游提供商可临时调整防护策略(黑洞/清洗)。
2) 采用云端WAF+CDN作为第一道防线,示例:Cloudflare Pro绑定域名并开启"Under Attack"模式。
3) 在机房侧启用iptables/ufw限流策略,限制ssh暴力登录与异常请求。
4) 配置BGP Anycast(若服务商支持)以分散网络层洪水。
5) 跟踪并记录流量峰值,迁移后30天持续观察以调整规则。
6.
真实案例与配置数据举例
1) 真实案例:某菲律宾电商在促销前迁移从本地PH机房A到云上PH机房B的过程。
2) 源站配置(机房A):2 vCPU / 4GB RAM / 80GB SSD / 1Gbps,峰值带宽200Mbps;MySQL单主(binlog开启)。
3) 目标配置(机房B):4 vCPU / 8GB RAM / 160GB SSD / 1Gbps,开启云防护与CDN回源。
4) 迁移结果数据统计(初次全量+增量同步):见下表。
5) 切换中断窗口控制在18分钟内,最终RTO 18分钟,RPO 2分钟内达成。
7.
回滚与切换后验证
1) 制定回滚触发条件:如线上错误率>5%或API失败率>3%。
2) 回滚步骤:恢复DNS至旧IP,更新CDN回源并确认日志中请求回流。
3) 切换后验证点:页面加载时间、数据库主从延迟、错误率及DDoS警告。
4) 完成切换后保留冗余7天快照并监控性能指标。
5) 总结与优化:记录迁移耗时、瓶颈点(如磁盘IO或带宽),为下次迁移调整配置。
来源:菲律宾服务器服务商迁移策略与数据同步切换的实操步骤