回填
集群的元数据迁移完成后,您可以使用捕获代理数据复制和快照将数据回填到下一个集群。
捕获代理数据复制
如果您有兴趣在迁移期间捕获实时流量,迁移助手包含一个应用程序负载均衡器,用于将流量路由到捕获代理和目标集群。上游客户端流量必须通过捕获代理路由,以便稍后重放请求。在使用捕获代理之前,请记住以下几点:
- 应用程序负载均衡器上游的层与应用程序负载均衡器侦听器上的证书兼容,无论是针对客户端还是网络负载均衡器。
cdk.context.json
中的albAcmCertArn
可能需要提供,以确保客户端信任应用程序负载均衡器证书。 - 如果网络负载均衡器直接位于应用程序负载均衡器上游,则必须使用 TLS 侦听器。
- 上游资源和安全组必须允许网络访问迁移助手应用程序负载均衡器。
要设置捕获代理,请转到 AWS 管理控制台并导航到 EC2 > 负载均衡器 > 迁移助手应用程序负载均衡器。复制应用程序负载均衡器 URL。复制 URL 后,您可以使用以下选项之一。
如果您使用的是 网络负载均衡器 → 应用程序负载均衡器 → 集群
- 确保入口直接提供给捕获代理的应用程序负载均衡器。
- 为迁移助手应用程序负载均衡器在端口
9200
上创建一个目标组,并将健康检查设置为HTTPS
。 - 将此目标组与您现有网络负载均衡器上的新侦听器关联,用于测试。
- 验证健康检查是否成功,并通过新的侦听器端口对一些客户端执行冒烟测试。
- 一旦您准备好迁移所有客户端,请将迁移助手应用程序负载均衡器目标组从测试网络负载均衡器侦听器中分离,并修改现有网络负载均衡器侦听器以将流量引导到此目标组。
- 现在客户端请求将通过代理路由(一旦它们建立新的连接)。验证应用程序指标。
如果您使用的是 网络负载均衡器 → 集群
如果您不想修改应用程序逻辑,请在集群前面添加一个应用程序负载均衡器,并按照网络负载均衡器 → 应用程序负载均衡器 → 集群的步骤进行操作。否则
- 为应用程序负载均衡器在端口
9200
上创建一个目标组,并将健康检查设置为HTTPS
。 - 将此目标组与您现有网络负载均衡器上的新侦听器关联。
- 验证健康检查是否成功,并通过新的侦听器端口对一些客户端执行冒烟测试。
- 一旦您准备好迁移所有客户端,请部署更改,使客户端访问新的侦听器。
如果您未使用网络负载均衡器
如果您的迁移技术仅使用回填,请进行客户端/DNS 更改,将客户端路由到端口 9200
上的迁移助手应用程序负载均衡器。
Kafka 连接
根据您的用例路由客户端后,请使用以下步骤测试针对 HTTP 请求添加记录:
在迁移控制台中,运行以下命令:
console kafka describe-topic-records
记录日志主题中的记录。
稍后,再次执行相同的命令,并将增加的记录数与预期的 HTTP 请求进行比较。
创建快照
使用以下命令为回填创建快照:
console snapshot create
要检查快照的进度,请使用以下命令:
console snapshot status --deep-check
根据源集群中的数据大小和为快照分配的带宽,此过程可能需要一些时间。使用 --max-snapshot-rate-mb-per-node
选项调整源集群节点创建快照的最大速率。提高快照速率将消耗更多节点资源,这可能会影响集群处理正常流量的能力。
将文档回填到源集群
根据您为源集群创建的快照,您可以开始将文档回填到目标集群。一旦启动此过程,一批工作节点将启动,读取快照并将文档重新索引到目标集群中。这批工作节点可以扩展,以提高文档重新索引到目标集群的速度。
检查集群的初始状态
您可以通过运行 cat-indices
命令检查源集群和目标集群的索引和文档计数。这可用于监视任何迁移场景中源和目标之间的差异。使用以下命令检查两个集群的索引:
console clusters cat-indices
您应该会收到以下响应
SOURCE CLUSTER
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
green open my-index WJPVdHNyQ1KMKol84Cy72Q 1 0 8 0 44.7kb 44.7kb
TARGET CLUSTER
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
green open .opendistro_security N3uy88FGT9eAO7FTbLqqqA 1 0 10 0 78.3kb 78.3kb
开始回填
使用以下命令开始回填并部署工作节点:
console backfill start
您应该收到类似于以下内容的响应
BackfillStatus.RUNNING
Running=1
Pending=0
Desired=1
Shards total: 48
Shards completed: 48
Shards incomplete: 0
Shards in progress: 0
Shards unclaimed: 0
即使所有分片都已迁移,状态仍将为 Running
。
扩展工作节点群
为了加快传输速度,您可以扩展工作节点的数量。这些额外的工作节点可能需要几分钟才能上线。以下命令将把工作节点群的大小更新为 10:
console backfill scale 5
我们建议在监控目标集群的健康指标的同时,缓慢扩展工作节点群,以避免其过载。Amazon OpenSearch Service 域提供了许多可提供此洞察的指标和日志。
暂停迁移
要暂停迁移,请使用以下命令:
console backfill pause
这将停止所有现有工作节点的运行,同时将回填操作保留在可以重新启动的状态。当您想要重新启动迁移时,请执行以下操作之一:
- 运行
console backfill start
。 - 通过运行
console backfill scale <worker_count>
扩展工作节点数量。
停止迁移
完成回填过程需要手动停止迁移。停止迁移会关闭所有工作节点,并清除用于跟踪和协调迁移的所有元数据。一旦状态检查报告您的数据已完全迁移,您可以使用以下命令停止迁移:
console backfill stop
迁移助手应返回以下响应:
Backfill stopped successfully.
Service migration-aws-integ-reindex-from-snapshot set to 0 desired count. Currently 0 running and 5 pending.
Archiving the working state of the backfill operation...
RFS Workers are still running, waiting for them to complete...
Backfill working state archived to: /shared-logs-output/migration-console-default/backfill_working_state/working_state_backup_20241115174822.json
您无法重新启动已停止的迁移。相反,您可以使用 console backfill pause
暂停回填过程。
Amazon CloudWatch 指标和仪表板
迁移助手会创建一个名为 MigrationAssistant_ReindexFromSnapshot_Dashboard
的 Amazon CloudWatch 仪表板,您可以使用它来可视化回填过程的健康状况和性能。它结合了回填工作节点的指标,对于迁移到 Amazon OpenSearch Service 的用户,还包括目标集群的指标。
您可以在 CloudWatch 控制台中,根据部署迁移助手的 AWS 区域找到回填仪表板。目标集群的指标图表将为空白,直到您从仪表板顶部的下拉菜单中选择要迁移到的 OpenSearch 域。
验证回填
回填完成后且工作节点已停止,请使用 Refresh API 和 Flush API 检查集群内容。以下示例使用控制台 CLI 和 Refresh API 检查回填状态:
console clusters cat-indices --refresh
这将显示目标集群中每个索引的文档数量,如以下示例响应所示:
SOURCE CLUSTER
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
green open my-index -DqPQDrATw25hhe5Ss34bQ 1 0 3 0 12.7kb 12.7kb
TARGET CLUSTER
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
green open .opensearch-observability 8HOComzdSlSWCwqWIOGRbQ 1 1 0 0 416b 208b
green open .plugins-ml-config 9tld-PCJToSUsMiyDhlyhQ 5 1 1 0 9.5kb 4.7kb
green open my-index bGfGtYoeSU6U6p8leR5NAQ 1 0 3 0 5.5kb 5.5kb
green open .migrations_working_state lopd47ReQ9OEhw4ZuJGZOg 1 1 2 0 18.6kb 6.4kb
green open .kibana_1
您可以针对目标集群运行额外的查询,以模拟您的生产工作流并仔细检查结果。