1.
迁移前准备:资产盘点与迁移策略选择
- 盘点:列出所有实例、IP、DNS记录、数据库、存储桶、证书、任务计划与依赖服务(Redis、MQ 等)。
- 分类:按重要性分为:核心业务(数据库、API)、前端(静态资源)、批处理。定义每类的 RPO(数据可接受丢失量)与 RTO(可接受恢复时间)。
- 策略选择:冷迁移(停机搬迁)、暖迁移(同步后切换)、热迁移(实时复制)。建议生产线上优先选择“先同步后切换(暖迁)”。
2.
搭建目标环境:网络、权限与基础镜像
- 网络规划:在菲律宾区域(如 Metro Manila)创建 VPC、子网、路由表与安全组,确保和原环境 CIDR 不冲突。
- 权限与密钥:创建最低权限的 IAM 用户/角色用于迁移工具(rsync、scp、Ansible、Terraform)。生成 SSH 密钥对并在源/目标服务器部署公钥。
- 基础镜像:在目标云中准备相同或更优的 OS 镜像(Ubuntu/CentOS)、安装相同版本的运行时(PHP/Java/Python)、并打包为镜像以便扩容。
3.
数据迁移:文件与数据库的同步操作步骤
- 文件同步(示例 rsync):先进行一次全量同步,命令:rsync -avz --delete -e "ssh -i /path/key" /var/www/ user@target:/var/www/。验证权限及文件完整性(ls -l、md5sum)。
- 数据库迁移(MySQL 示例):1) 在低峰使用 mysqldump --single-transaction --routines --triggers -u root -p dbname > dump.sql;2) 将 dump.sql scp 到目标;3) 在目标导入 mysql -u root -p dbname < dump.sql。对于高可用要求,使用主从复制或物理备份工具(Percona xtrabackup)。
- 增量同步:设置二进制日志复制或使用工具(如 Debezium、AWS DMS 或自建 binlog relay)来实现源数据库更改的持续复制,直到切换窗口。
4.
应用配置与环境一致性校验
- 配置同步:将环境变量、配置文件(/etc/nginx/nginx.conf、php.ini)以及 secrets(使用 Vault 或云 KMS)同步并逐一校验。
- 依赖检查:确认 Redis、MQ、外部 API 的访问权限与网络连通性(telnet/nc 检查端口)。
- 预发布验证:在目标环境部署测试 URL(内部子域),执行端到端测试脚本(Selenium 或 curl 测试接口返回码与响应时间)。
5.
切换与回滚流程(详细切换步骤)
- 切换窗口准备:选择低峰时间,通知业务方并准备回滚计划与负责人名单。
- 最终数据冻结:短暂停止写操作或应用进入维护模式;执行最后一次增量同步(rsync --delete 或 apply remaining binlogs)。
- DNS 切换:建议先减少 TTL(如 300 秒)提前 24 小时;切换时修改 DNS A 记录或负载均衡后端,监测 2×TTL 时间确认流量完全切换。
- 回滚方案:保持源环境在可回滚的状态(不开通新写入或保持 binlog),若切换失败,按 DNS 回滚步骤逆向操作并再次验证。
6.
监控建设:指标、日志与告警的配置步骤
- 指标收集:在每台服务器安装 node_exporter(Prometheus)、应用端埋点(Prometheus client),示例:systemctl enable --now node_exporter。
- Prometheus 配置:在 prometheus.yml 中添加 scrape_configs 指向目标 IP 和 /metrics 路径,重载配置 curl -XPOST localhost:9090/-/reload。
- 日志集中:部署 Filebeat 或 fluentd 收集 /var/log/nginx/*.log 与应用日志,输出到 Elasticsearch 或云日志服务(检索和可视化)。
- 告警规则:在 Alertmanager 中定义阈值(CPU>80% 5min、错误率>5% 10min),告警通过邮件、钉钉或 Slack webhook 推送并包含运行 playbook 链接。
7.
容灾设计:备份策略与多区域部署实操
- 备份策略:文件快照(每日增量、每周全量),数据库备份(每日全量 + 每小时增量 binlog),备份保留策略(如 30 天)。示例:使用 cron + aws s3 cp 或 rclone 同步到异地存储。
- 多可用区/多区域:将关键服务在菲律宾主区域做主、邻近区域做从(跨区域复制)。配置跨区域负载均衡与健康检查,确保流量可在故障时自动切换。
- 灾难恢复演练:每季度进行一次恢复演练:1)从备份恢复数据库并验证完整性;2)模拟单区域不可用并验证负载均衡与 DNS 的故障切换;3)记录问题并更新 runbook。
8.
问:迁移到菲律宾云服务器时,如何最小化停机时间?
- 答:采用“先同步后切换”的暖迁移流程。先全量同步文件与数据库,再开启 binlog/增量复制保持同步;切换窗口只需短暂停写、执行最后一次增量同步与 DNS/负载均衡切换。配合降低 DNS TTL、使用负载均衡逐步导流和事前压测,可以把停机时间缩短到数分钟级。
9.
问:如何在菲律宾云上实现有效的监控与告警?
- 答:按三层监控实施:基础监控(node_exporter 收集 CPU/内存/磁盘)、应用监控(业务指标、错误率、响应时延)、日志监控(ELK/云日志)。Prometheus + Grafana 做指标采集与可视化,Alertmanager 发送告警并结合 Runbook 链接与自动化重启脚本,确保告警可执行且无噪音。
10.
问:容灾演练具体步骤包括哪些,如何验证恢复有效性?
- 答:容灾演练步骤:1) 从冷备份恢复到临时环境并验证数据一致性(行数、关键业务查询比对);2) 切断主区域流量,启用备用区域并验证服务可用性;3) 在恢复后执行端到端交易并检查日志错误率为零;4) 完成后记录所需时间(RTO 实测)与数据差异(RPO 实测),并根据结果调整备份频率与自动化脚本。
来源:菲律宾云服务器三问三答 关于迁移、监控与容灾的实用建议