背景
我们的客户需要将现有的Elasticsearch集群无缝迁移到移动云平台上,目标是确保在迁移过程中业务停机时间最小化。为了满足这一需求,我们计划采用一种精细的迁移策略,旨在保持数据的一致性和完整性。
实现方式
我们将采用成熟的INFINI网关来实现数据的双写功能。这种机制将在集群切换恢复过程中记录数据变更。在全部数据恢复后,我们将追平后续的增量数据。为了确保数据的一致性,我们将在追平增量后进行校验,然后切换流量。通过这种方式,我们可以确保数据的无缝迁移,同时最小化业务停机时间。
总体流程
以下是迁移的总体流程:
1. 客户业务代码调整,开始切流量,并进行双写。在此期间,所有的新增变更都会被记录在网关本地,而移动云端的增量数据消费将暂时被暂停。
2. 迁移11月的数据,包括创建快照并将快照上传到S3存储。
3. 将S3中的文件下载到移动云平台。
4. 在移动云上恢复11月份的快照到相应的索引。
5. 开启移动云端的增量数据消费。
6. 等待增量数据追平(接近追平时)。
7. 按照预定的时间条件(例如:时间A,即当前时间往前30分钟)验证文档数据量,并进行Hash校验等。
8. 暂停业务的写入操作,同时暂停腾讯云的写入操作(暂停时间为10分钟)。
9. 等待剩余的增量数据追完。
10. 对时间A之后的增量数据进行校验。
11. 切换所有流量至移动云平台,此时业务端可直接访问移动云的Elasticsearch服务。
关于迁移的时间节点:
备份11月数据:约需30分钟(从19号开始)
备份数据下载到移动云:预计2-3天
备份恢复到移动云集群:约需30分钟
11月增量备份及操作:从21号开始,包括双写、下载到移动云、恢复增量等步骤,总体时间根据具体增量数据大小而定。
追平增量数据、校验比对、流量切换等后续操作所需时间视具体情况而定。
ES集群信息
我们的ES集群版本为7.10.1,包含2个热节点和3个温节点,总数据量约为1.9TB。索引数量为1041,分片数量为2085。集群中使用了update_by_query和delete_by_query功能。当前日增文档数约为1千万,目标日增文档数为上亿。
迁移操作手册(参考)
环境准备:包括自建的ES 5.4.2、ES 5.6.8、ES 7.5.0等多个集群,以及极限网关服务器、云端负载均衡器等。
场景描述:若干个自建的Elasticsearch集群需要平滑迁移到移动云,且业务在迁移过程中需要保持持续写入,无需进行代码改动。
数据架构:通过部署INFINI网关来实现数据的双写功能,请求同步转发给自建的ES集群,同时网关记录所有的写入请求。云端和自建的ES集群之间的数据同步通过网关进行确保。
在终端中,您开始了程序的下载之旅。您以root权限在服务器上创建了一个名为“gateway”的目录,路径为/opt/gateway。紧接着,您迅速切换到了这个新创建的目录,仿佛准备在这里开展一场重大的任务。
随后,您执行了一条wget命令,准备下载一个名为gateway-1.6.0_SNAPSHOT-649-linux-amd64.tar.gz的文件。这个文件来自于infinilabs公司的release服务器上的一个快照版本。时间显示,下载开始于2022年5月19日的上午10点16分25秒。
安装并配置网关:详细指南
在安装并配置网关的过程中,你可能遇到各种各样的文件与指令。下面是对一个具体过程的生动描述,同时保持原文风格特点。
你收到一个名为“gateway-1.6.0_SNAPSHOT-649-linux-amd64.tar.gz”的文件,大小为7430568字节,下载速度达到惊人的22.8MB/s。你迅速将其保存到服务器的一个目录中。紧接着,使用tar命令解压缩这个文件,得到了一系列文件及目录。
浏览解压后的文件,你会发现其中包含了许多以“.yml”为后缀的示例配置文件。这些配置文件包含了各种各样的设置与参数,可以满足不同集群的需求。此时你需要将这些示例配置复制到你的网关配置目录,并根据你的集群信息进行适当的修改。
假设你想修改一个名为“cross-cluster-replication.yml”的示例配置文件以适应你的集群需求。首先复制该文件,并重命名为适合你的集群名称的文件名,例如“5.4.2TO5.6.16.yml”。然后你就可以开始修改配置了。
首先修改集群的身份信息。这部分信息对于集群间的通信至关重要,确保每个节点都能正确识别彼此的身份。接下来是修改集群的注册信息,这将确保新加入的节点能够被主节点正确接纳并加入到集群中。之后根据需要修改网关监听的端口以及是否开启TLS。如果你的应用客户端通过HTTP协议访问ES,那么需要将entry.tls.enabled的值改为false。不同的集群可以使用不同的配置并监听不同的端口,这样有助于业务的分开访问和管理。还有许多其他的配置选项可以根据需要进行调整和优化。例如可以设置请求过滤规则、异步批量索引等。最终确保你理解了每个配置选项的含义和功能后,再根据你的需求进行相应设置。完成配置后保存并重启网关服务以使新的配置生效。至此你就成功完成了网关的配置过程。在这个过程中需要细心和耐心以确保每个步骤都正确无误地完成。希望你在接下来的使用中能够充分利用这些配置来满足你的业务需求并实现高效稳定的运行效果。启动网关之旅
启动网关并应用刚刚创建的配置,操作如下:
在命令行界面,以root身份执行以下命令:
```bash
[root@iZbp1gxkifg8uetb33pvcoZ gateway] ./gateway-linux-amd64 -config 5.4.2TO5.6.16.yml
```
瞬间,你将会看到一系列启动信息,显示出强大的轻量级、高性能的Elasticsearch网关正在启动并运行。这个网关名为“[GATEWAY]”,版本为“1.6.0_SNAPSHOT”,时间戳为“2022-05-18 11:09:54”。你还看到了关于配置文件的路径、工作空间、API监听地址等详细信息。
为了让网关在后台运行,可以使用以下命令:
```bash
[root@iZbp1gxkifg8uetb33pvcoZ gateway] nohup ./gateway-linux-amd64 -config 5.4.2TO5.6.16.yml &
```
接下来,为了应用授权,使用curl命令向localhost的2900端口发送POST请求,携带license信息:
```bash
应用授权curl -XPOST -d'{"license": "XXXXXXXXXXXXXXXXXXXXXXXXX"}'
```
至此,你的网关已经启动并正在运行,并且已经应用了授权。为了更好地管理多个集群之间的切换,你可以使用INFINI Console。这个控制台工具设计得既方便又直观,能够帮助你在多个集群间快速切换,轻松管理你的Elasticsearch环境。
在这个启动和配置的过程中,你的网关已经准备好处理高流量的Elasticsearch请求,展现出其轻量级、高性能的特点。你的数据已经得到了保护,并且你拥有了一个强大的工具来管理你的集群。现在,你可以继续探索这个强大的Elasticsearch网关的更多功能,进一步挖掘其潜力。安装与配置 INFINI Console
在命令行界面,你开始了对 INFINI Console 的下载安装。当 wget 命令发出请求时,你的控制台正在与 release.infinilabs.com 建立连接,不久后,一个名为 console-0.3.0_SNAPSHOT-596-linux-amd64.tar.gz 的文件被迅速下载并保存至你的服务器。接着,你解压了这个文件,并发现了 console.yml 配置文件。
深入了解 console.yml 配置
打开 console.yml 文件,你会看到关于 Elasticsearch 的配置信息。对于系统集群,建议使用 Elasticsearch v7.3 版本或更高。你还看到了关于基本身份验证的信息,包括用户名和密码。还有关于 discovery 的配置,当前处于禁用状态。
启动 INFINI Console 服务
完成配置后,你成功安装了 console 服务并启动了它。你可以通过访问主机的 9000 端口来打开 Console 后台。
Console 后台操作
在 Console 后台中,你打开了 System 和 Cluster 菜单,注册了需要管理的 Elasticsearch 集群和网关地址。这样做能更快速地管理你的集群。
测试 INFINI Gateway
为了验证网关是否正常工作,你可以通过 INFINI Console 来快速测试。通过走网关的接口创建一个索引并写入一个文档。之后,查看不同版本集群的数据情况,如果一切正常,那么你的网关配置就完成了验证。
调整网关的消费策略
在进行全量数据迁移之前,你需要暂停增量数据的消费。这是因为你要确保在全量数据迁移完成后,再进行增量数据的追加。这是一个重要的步骤,以确保数据的完整性和准确性。在完成迁移后,你可以根据需求调整网关的消费策略,以满足你的业务需求。随着业务需求的不断增长和对数据安全的日益重视,数据迁移成为了企业发展中不可或缺的一环。本文将详细介绍一个数据迁移流程,包括从自建Elasticsearch集群迁移到云端集群的整个过程。在这个过程中,网关扮演了重要的角色,它帮助我们实现了数据的平滑迁移,确保了数据的完整性和安全性。
一、网关配置调整在开始数据迁移之前,我们需要对网关进行一系列配置调整。修改Pipeline中的auto_start参数为false,表示不自动启动相关任务。修改完成后,需要重新启动网关以确保配置生效。为了方便管理,可以使用INFINI Console来注册和管理网关。
二、流量切换接下来,我们需要将业务流量切换到网关。将之前指向ES 5.4.2的地址改为网关地址。如果5.4.2集群开启了身份验证,业务端代码需要传递身份信息。切换流量后,用户的请求仍然以同步方式访问自建集群,但消费会暂停。如果业务端使用了ES的SDK并支持Sniff功能,建议关闭Sniff以避免直接链接到后端ES节点。
三、全量数据迁移流量切换到网关后,我们开始了全量数据迁移。全量迁移的方式有很多种,包括通过快照恢复、使用工具导出导入等。我们以一个具体的实例来说明:假设待迁移的索引为demo_5_4_2,只有四个文档。我们使用网关自带的迁移功能进行数据迁移,并修改样例文件以适应我们的需求。创建好模板和索引后,就可以开始数据的迁移了。执行完成后,我们需要确认数据的情况。
四、增量数据迁移在全量导入过程中,可能存在增量数据修改。这部分请求已经通过网关完整记录下来,我们只需要开启网关的消费任务即可将挤压的请求应用到云端Elasticsearch集群。通过观察和操作队列来判断增量数据是否迁移完成。
五、数据比对为了确保数据的完整性,我们需要进行数据比对。可以使用网关自带的数据比对工具来进行比对。修改配置文件中的集群和索引信息,并加上过滤条件,如时间范围窗口来进行增量Diff。执行比对程序后,我们可以得到两个集群的数据差异情况。
六、切换集群经过验证,如果两个集群的数据完全一致,我们可以将程序切换到新集群,或者将网关的配置进行主备互换,同步写5.6集群。双集群在线运行一段时间后,待业务完全验证无误后,再安全下线旧集群。如遇问题,也可随时回切到老集群。
本文详细介绍了从自建Elasticsearch集群迁移到云端集群的整个过程,包括网关的配置调整、流量切换、全量数据迁移、增量数据迁移、数据比对和集群切换等关键步骤。通过这个过程,我们可以确保数据的完整性和安全性,为企业的业务发展提供有力支持。通过采用极限网关这一强大的工具,用户自建的Elasticsearch集群(简称ES集群)可以轻松无缝地迁移到移动云ES平台。这一迁移过程得益于网关的出色功能,它将两套集群通过网关巧妙地解耦,从而实现了版本的无缝升级,即使版本不同也不必担心。如果您在迁移过程中遇到任何问题,欢迎随时与我联系,期待与您深入交流。
关于极限网关(INFINI Gateway),它是专为Elasticsearch设计的高性能应用网关。该网关具有一系列强大的功能,并且使用极为简便。网关的工作原理类似于常见的反向代理。通常,我们将网关部署在Elasticsearch集群前端,这样所有原本直接发送到Elasticsearch的请求都会先发送到网关,再由网关转发到后端的Elasticsearch集群。
由于网关位于用户端和后端Elasticsearch之间,因此它拥有极大的灵活性,可以在中间执行多种任务。例如,网关可以实现索引级别的限速限流,对常见查询进行缓存加速,对查询请求进行审计,甚至对查询结果进行动态修改等等。这些功能极大地增强了Elasticsearch集群的性能和安全性。
想要了解更多关于极限网关的信息,可以访问其官网文档,地址是:[
文章来自《钓虾网小编|www.jnqjk.cn》整理于网络,文章内容不代表本站立场,转载请注明出处。