从腾讯云到阿里云,ES集群跨云迁移技术原理及最佳实践

云掣YunChe2周前客户案例56

本文旨在通过一次腾讯云ES集群在线迁移至阿里云ES集群的成功客户案例,结合云掣在多次客户数据迁移过程中总结出的宝贵经验,与大家详细地分享快照迁移ES集群的技术原理和最佳实践,有助于满足各行业领域客户跨云迁移数据库的需求,希望本文的分享能够帮助到更多有需要的客户。


方案背景


北京一家以中小学培训为主的教辅公司,主营业务是中小学的线上培训,会涉及到诸多面向学生、家长、老师的服务,如课程教材的搜索、购买等。客户公司目前使用的数据库需要跨云,由阿里云RDS数据库通过VPN线路,将数据实时同步到腾讯云ES集群,其VPN带宽仅有200Mbps,会对服务器产生一定影响。为了更便于管理维护和节约成本,客户公司目前想要将腾讯云的七套ES集群全部迁移至阿里云ES,再进行VPN的退订。

 现存痛点

 涉及的数据量庞大

客户公司在腾讯云共有七套ES集群,其中包括一套测试环境和六套生产环境,最大数据量(包括系统索引)为4TB左右,最小数据量200GB左右。

 数据搬运过程复杂

客户公司所使用的腾讯云版本为6.4.3白金版,且其ES插件为开源插件,需要将数据进行梳理并完全迁移至目前购买的6.7.0版阿里云ES集群。

 跨云实施流程漫长


本次实施涉及到已经投入使用过的七套腾讯云ES集群,且均需要一对一迁移至阿里云ES集群。


 建设方案

 方案简介


基于以上场景需求,最终选择采用快照迁移的方式进行集群迁移,解决方案流程如图所示 。

图片

首先将腾讯云的ES集群全量快照备份至腾讯云COS中,待全量快照备份完成后,再使用阿里云的在线迁移服务功能,将腾讯云COS中的快照数据在线迁移至阿里云OSS。快照数据迁移完毕后,登录阿里云ES集群进行快照恢复操作即可,当所有的索引健康状态变为green,就表明快照恢复任务完成。
增量快照的备份恢复流程与全量快照的备份流程一致,区别仅在于,增量快照的备份恢复流程进行到最后一步快照恢复操作时,需要提前将阿里云ES集群中的索引状态修改为close,待快照数据全部恢复完成后,索引的健康状态会默认变为green。


 建设内容

Step1:环境准备


预先在阿里云购买可1:1安装的集群,即资源规格、集群插件与当前腾讯云ES集群一致的阿里云6.7.0版本ES集群,然后提前将腾讯云中全量的ES集群数据通过快照迁移的方式迁移到阿里云ES集群中。


Step2:代码验证


客户公司的研发人员对迁移后的集群数据进行灰度测试,包括客户端连接、写入、读取等功能的代码测试。


Step3:割接前的流程梳理确认

  1. 确定写入的链路,并读取业务方负责人信息;
  2. 准备好防止数据丢失和保障数据一致的预案;
  3. 明确回滚方案。

Step4:割接前的数据迁移

  1. 关闭阿里云ES集群的白名单,禁止研发测试的数据写入,保障集群环境单一可靠;
  2. 清空阿里云ES集群的脏数据、数据验证、历史快照的恢复和同步记录;
  3. 进行增量快照的恢复和同步,并保持验证,直至割接前;
  4. 如果第2步和第4步有重合的部分,为了防止数据污染,需要在阿里云ES集群中再进行一次历史数据清空和增全量恢复的动作。

Step5:割接开始

  1. 研发人员提前将配置文件的地址修改为阿里云ES集群连接内网的地址,并设置业务不上线生效;
  2. 关闭腾讯云ES集群的业务数据写入;
  3. 最后一次进行增量数据快照和恢复动作,将数据补齐;
  4. 开启阿里云ES集群的白名单;
  5. 设置切换配置生效,并进行上线动作,完成读写业务后,再切换到阿里云ES集群;
  6. 进行读写验证;
  7. 关闭腾讯云ES集群的白名单;
  8. 测试工程师进行回归测试

Step6:回滚

  1. 将阿里云ES集群的白名单关闭,停止写入数据;
  2. 恢复腾讯云ES集群的白名单,并将配置文件的地址改回腾讯云ES集群生效;
  3. 回滚方案生效,业务数据(kafka、mysql)重新消费写入腾讯云ES集群。



 知识拓展

 快照备份


ES集群基于快照的迁移方式
需通过 snapshot api 接口进行迁移,基本原理是从源ES集群创建索引快照,然后在目标ES集群中进行快照恢复。通过snapshot api方式进行数据迁移时,特别需要注意ES集群的版本,目标ES集群的主版本号要大于等于源ES集群的主版本号。
例如:6.x中的6为主版本号,那么此集群所创建的快照就不能在7.x版本的集群中恢复。
快照迁移支持索引数据的增量备份和恢复迁移
由于二次快照是在前一次快照的索引数据基础之上,再增加新数据的快照,包括了索引数据的增、删、改等新变动。那么在二次快照之后,新的ES集群实例恢复后,新数据与源ES集群实例数据将保持一致。
二次快照备份恢复的时长
由于二次快照的数据量低于首次快照,所以耗时会比首次快照备份的时间短。


 logstash迁移同步


logstash的版本
应与目标ES集群的主版本号相同。例如:目标ES集群为6.8.2版本,则logstash也需要使用6.8版本。
索引type的问题
不同版本的ES集群对索引type的约束也不同,所以在跨大版本迁移ES集群时,可能会出现因为索引type而导致目标集群写入失败等情况。这是因为logstash的增量数据同步基于时间字段,所以要求字段类型为@timetamp时,才能按照时间同步数据。若时间字段为long、text等非标准的类型,则无法按照时间同步数据。
硬件和网络配置要求
logstash对网络带宽和服务器CPU、内存、磁盘的要求较高,如果想实时同步大量数据,就必须提升硬件和网络配置。


 总结


此次迁云方案效率实现了业务停机时间的最小化,迅速响应了客户公司的需求,并确保了迁移前后数据的一致性。


此外,通过安全精准的操作,大大降低迁云风险成功将全量+增量的业务数据从腾讯云ES集群迁移至阿里云ES集群环境中,有效避免了数据丢失或遗漏等问题的发生


相关文章

全面提升|支付企业系统上云实践

全面提升|支付企业系统上云实践

近年来,得益于中央政府一系列的扶持政策以及云计算、大数据和AI等技术在支付领域的深化应用,面向小微企业、个体工商户等群体的普惠支付有了极大的发展。 某支付机构基于创新科技和完善风控能力,聚焦...

案例分享|某医院数据上云性能优化

案例分享|某医院数据上云性能优化

01 前言 之前在和小伙伴在做技术分享的时候,分享了他们做的某医院数据上云方案。该医院因为数据延迟问题,病人无法及时看到检验报告。当时大致了解了一下这个案例的情况:客户的数据是存储...

ACOS统一监控-医保交付案例

ACOS统一监控-医保交付案例

1.项目背景目前某省会级医保信息系统全面上线,系统采用医疗保障应用框架HSAF,该框架推动平台从集中式走向分布式,统一了应用框架。医保信息系统正式上线后,需要服务医保定点机构,市民医保结算及大量的业务...

可观测运维作战实践-ACOS全链路监控案例

可观测运维作战实践-ACOS全链路监控案例

在时间十分紧迫前提下为客户建设一套监控体系实践就是一次作战!下面问题怎么解呢?1、客户现状痛点?2、适合客户全链路监控怎么搭建?3、故障突袭应急筹备方案?4、acos团队面临内外夹击挑战?5、作战结果...

数据库高可用架构建设

数据库高可用架构建设

项目背景    某互联网+健康医疗整体解决方案提供商,通过构建线上实名认证卡管系统、虚拟账户结算管理系统、移动互联网平台、远程运维监控平台、预约挂号系统平台,并辅以线下排队及信息发...

技术实践分享|用友NC财务系统上云

技术实践分享|用友NC财务系统上云

本文分享一次成功将用友NC财务系统上云的经验,主要涉及阿里云上Oracle ASM存储扩容,阿里云ESC RAC服务器扩容,阿里云上Oracle RAC数据库迁移等相关技术,一起来看看吧!1 客户数据...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。