从腾讯云到阿里云,ES集群跨云迁移技术原理及最佳实践
本文旨在通过一次腾讯云ES集群在线迁移至阿里云ES集群的成功客户案例,结合云掣在多次客户数据迁移过程中总结出的宝贵经验,与大家详细地分享快照迁移ES集群的技术原理和最佳实践,有助于满足各行业领域客户跨云迁移数据库的需求,希望本文的分享能够帮助到更多有需要的客户。
方案背景
北京一家以中小学培训为主的教辅公司,主营业务是中小学的线上培训,会涉及到诸多面向学生、家长、老师的服务,如课程教材的搜索、购买等。客户公司目前使用的数据库需要跨云,由阿里云RDS数据库通过VPN线路,将数据实时同步到腾讯云ES集群,其VPN带宽仅有200Mbps,会对服务器产生一定影响。为了更便于管理维护和节约成本,客户公司目前想要将腾讯云的七套ES集群全部迁移至阿里云ES,再进行VPN的退订。
现存痛点
涉及的数据量庞大
客户公司在腾讯云共有七套ES集群,其中包括一套测试环境和六套生产环境,最大数据量(包括系统索引)为4TB左右,最小数据量200GB左右。
数据搬运过程复杂
客户公司所使用的腾讯云版本为6.4.3白金版,且其ES插件为开源插件,需要将数据进行梳理并完全迁移至目前购买的6.7.0版阿里云ES集群。
跨云实施流程漫长
建设方案
方案简介
基于以上场景需求,最终选择采用快照迁移的方式进行集群迁移,解决方案流程如图所示 。
建设内容
Step1:环境准备
Step2:代码验证
Step3:割接前的流程梳理确认
确定写入的链路,并读取业务方负责人信息; 准备好防止数据丢失和保障数据一致的预案; 明确回滚方案。
Step4:割接前的数据迁移
关闭阿里云ES集群的白名单,禁止研发测试的数据写入,保障集群环境单一可靠; 清空阿里云ES集群的脏数据、数据验证、历史快照的恢复和同步记录; 进行增量快照的恢复和同步,并保持验证,直至割接前; 如果第2步和第4步有重合的部分,为了防止数据污染,需要在阿里云ES集群中再进行一次历史数据清空和增全量恢复的动作。
Step5:割接开始
研发人员提前将配置文件的地址修改为阿里云ES集群连接内网的地址,并设置业务不上线生效; 关闭腾讯云ES集群的业务数据写入; 最后一次进行增量数据快照和恢复动作,将数据补齐; 开启阿里云ES集群的白名单; 设置切换配置生效,并进行上线动作,完成读写业务后,再切换到阿里云ES集群; 进行读写验证; 关闭腾讯云ES集群的白名单; 测试工程师进行回归测试。
Step6:回滚
将阿里云ES集群的白名单关闭,停止写入数据; 恢复腾讯云ES集群的白名单,并将配置文件的地址改回腾讯云ES集群生效; 回滚方案生效,业务数据(kafka、mysql)重新消费写入腾讯云ES集群。
知识拓展
快照备份
logstash迁移同步
总结
此外,通过安全精准的操作,大大降低迁云风险,成功将全量+增量的业务数据从腾讯云ES集群迁移至阿里云ES集群环境中,有效避免了数据丢失或遗漏等问题的发生。