美文网首页腾讯云Elasticsearch ServiceElasticsearch实践与分析
在线不停服迁移自建ES集群至腾讯云ES

在线不停服迁移自建ES集群至腾讯云ES

作者: bellengao | 来源:发表于2020-05-26 22:16 被阅读0次

    背景

    在之前的文章Elasticsearch跨集群数据迁移之离线迁移中,我们介绍了如何在离线场景下把自建的ES集群或者在其它云厂商购买的ES集群迁移至腾讯云的ES, 但是如果在迁移过程中业务不能中断或者不能够暂停写操作,就必须采用其它的方案进行迁移。2020年5月份,腾讯云ES上线的新版本中,对集群节点所在的网络进行了优化,使得集群节点能够反向访问到用户VPC下的ip,因此采用集群融合的方式可以实现在线不停服地迁移自建ES集群至腾讯云ES。

    整体方案

    首先要确定腾讯云上自建的ES集群节点所在的VPC,然后再腾讯云官网购买一个相同VPC下的ES集群,通过修改新集群的配置把两个集群融合成一个集群,利用ES的rebalance能力把自建ES节点上的数据迁移至腾讯云ES的节点上,最后剔除掉自建ES的节点,实现平滑迁移。

    实施步骤

    购买腾讯云ES

    在腾讯云官网控制台上购买ES, 需要特别注意以下几点:

    1. 选择和自建ES相同大版本的ES,高级特性根据需要可选基础版和开源版,注意白金版在当前场景下不可选,在完成迁移后可以在腾讯云ES控制台升级到白金版


      image
    2. 选择和自建ES集群节点所在的VPC


      image
    3. 填写集群配置名,填入自建ES集群的名称(cluster_name), 该功能需要对腾讯云账号开启白名单方可使用


      image

    集群融合

    需要提供以下信息给腾讯云ES产品的技术支持人员:

    1. 自建ES集群的节点地址列表如1.1.1.1:9200,2.2.2.2:9200;另外如果自建ES集群使用了类似于Search Guard的插件用于实现安全防护和权限校验,或者集群包含自购的X-PACK License并且开启了security功能,则需要将安全防护功能关闭才可以进行集群融合
    2. 新建的腾讯云ES集群的id

    之后腾讯云ES产品的后台技术人员会通过修改新集群的配置来融合两个集群,融合过程中业务使用ES不受影响。

    后台对自建ES集群和腾讯云ES集群进行融合的具体操作为:

    1. 融合前检查
      • 检查自建ES集群是否开启security
      • 检查在腾讯云ES集群节点上是否可以访问通自建ES集群的节点endpoint
      • 检查在自建ES节点上是否可以访问腾讯云ES集群的节点
    2. 修改腾讯云ES集群的配置进行融合
      • 修改discovery.zen.ping.unicast.hosts参数,重启集群
    3. 观察两个集群是否融合为一个集群
    4. 执行数据迁移,通过PUT _cluster/settings API修改cluster.routing.allocation.exclude._name属性为自建ES集群节点的名称列表
    5. 观察数据迁移情况
    6. 数据迁移完毕后,在业务侧修改ES集群地址为腾讯云ES集群的vpc内网地址(先验证vpc内网地址访问无误,然后在业务压力小时切换ES集群地址)
    7. 自建ES节点的节点可以下线,修改discovery.zen.ping.unicast.hosts配置为新集群的地址

    相关文章

      网友评论

        本文标题:在线不停服迁移自建ES集群至腾讯云ES

        本文链接:https://www.haomeiwen.com/subject/tmubahtx.html