升级 Amazon OpenSearch Service 域 - Amazon Opensearch Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

升级 Amazon OpenSearch Service 域

注意

服务软件更新不同于 OpenSearch 和 Elasticsearch 版本升级。有关为您的 OpenSearch Service 域更新服务软件的信息,请参阅 Amazon OpenSearch Service 中的服务软件更新

Amazon OpenSearch Service 为运行 OpenSearch 1.0 或更高版本或 Elasticsearch 5.1 或更高版本的域提供了就地升级。如果您使用 Amazon Kinesis Data Firehose 或 Amazon CloudWatch Logs 等服务将数据流式传输至 OpenSearch Service,请在迁移前检查这些服务是否支持较新版本的 OpenSearch。

当前,OpenSearch Service 支持以下升级路径。

之前版本 目标版本
OpenSearch 1.x OpenSearch 1.x
Elasticsearch 7.x

Elasticsearch 7.x或 OpenSearch 1.x

重要

OpenSearch 1.x 引入了许多突破性的变更。有关详细信息,请参阅Amazon OpenSearch Service - 更改摘要

Elasticsearch 7.10 在动态模板方面引入了一个突破性的变更。有关更多信息,请参阅 映射器在索引时解析异常

Elasticsearch 6.8

Elasticsearch 7.x或 OpenSearch 1.x

重要

Elasticsearch 7.0 和 OpenSearch 1.0 包含许多突发性更改。启动就地升级之前,我们建议拍摄 6.x 域的手动快照并在测试 7.x 域或 OpenSearch 1.x 中还原,然后使用该测试域来识别潜在的升级问题。有关 OpenSearch 1.0 中的突破性变更,请参阅 Amazon OpenSearch Service - 更改摘要

与 Elasticsearch 6.x 相似,索引只能包含一种映射类型,但该类型现在必须名为 _doc。因此,特定 API 在请求正文中不再需要映射类型(例如 _bulk API)。

对于新索引,自托管 Elasticsearch 7.x和 OpenSearch 1.x 具有默认分片计数 1。在 Elasticsearch 7.x上的 OpenSearch Service 域和更高版本后保留之前的原定设置值 5。

Elasticsearch 6.x

Elasticsearch 6.x

Elasticsearch 5.6

Elasticsearch 6.x

重要

在版本 6.x 中创建的索引不再支持多个映射类型。在版本 5.x 中创建的索引在还原到 6.x 集群后仍然支持多个映射类型。请检查您的代码是否仅为每个索引创建一个映射类型。

为了在从 Elasticsearch 5.6 到 6.x 的升级过程中最大程度地减少停机时间,OpenSearch Service 将 .kibana 索引重建为 .kibana-6,删除了 .kibana,创建了一个名为 .kibana 的别名,并将新索引映射到新别名。

Elasticsearch 5.x Elasticsearch 5.6

升级过程包括三个步骤:

  1. 升级前检查 - OpenSearch Service 对可能阻碍升级的问题执行一系列检查,除非这些检查成功,否则不会继续下一步。

  2. 快照 - OpenSearch Service 拍摄 OpenSearch 或 Elasticsearch 集群的快照,除非快照拍摄成功,否则不会继续下一步。如果升级失败,OpenSearch Service 将使用此快照将集群还原到其原始状态。有关此快照的更多信息,请参阅 升级后无法降级

  3. 升级 - OpenSearch Service 开始升级,这可能需要 15 分钟到几个小时才能完成。OpenSearch 控制面板可能在部分或全部升级中不可用。

排查升级问题

就地 升级需要正常运行的域。您的域可能不符合升级条件或出于各种原因无法升级。下表显示了最常见的问题。

问题 描述
一个节点的分片过多 OpenSearch 和 Elasticsearch 7.x 版本的 的原定设置为每个节点不超过 1,000 个分片。如果当前集群中的节点超过了此设置,OpenSearch Service 不允许您升级。有关问题排查选项,请参阅超过最大分片限制
域正在处理中 域正在接受配置更改。在操作完成后检查升级资格。
红色集群状态 集群中的一个或多个索引为红色。有关问题排查步骤,请参阅红色集群状态
高错误率 在尝试处理请求时,集群返回大量 5xx 错误。此问题通常是因为同时读取或写入了过多的请求。请考虑减少流向集群的流量或扩展您的域。
裂脑 脑裂意味着您的集群有多个主节点并且已拆分成两个绝不会自行重新联接的集群。您可以通过使用推荐数量的专用主节点避免裂脑。为了帮助您从裂脑恢复,请联系 Amazon Web Services Support
找不到主节点 OpenSearch Service 无法找到集群的主节点。如果您的域使用了多 AZ,一个可用区故障可能已导致集群失去仲裁节点数且无法选择新的主节点。如果该问题无法自行解决,请联系 Amazon Web Services Support
待处理任务过多 主节点处于高负载状态,且具有很多待处理任务。请考虑减少流向集群的流量或扩展您的域。
存储卷受损 一个或多个节点的磁盘卷无法正常运行。此问题通常与其他问题一起发生,例如高错误率或待处理任务过多。如果它是独立发生的且无法自行解决,请联系 Amazon Web Services Support
KMS 密钥问题 用于加密域的 KMS 密钥无法访问或丢失。有关更多信息,请参阅 监控对静态数据进行加密的域
快照拍摄正在进行中 域当前正在拍摄快照。在快照拍摄完成后检查升级资格。还要检查您是否可以列出手动快照存储库,在这些存储库中列出快照,并拍摄手动快照。如果 OpenSearch Service 无法检查快照拍摄是否正在进行中,升级可能会失败。
快照拍摄超时或失败 升级前快照拍摄所需的时间过长或失败。检查集群运行状况并重试。如果问题仍存在,请联系 Amazon Web Services Support
索引不兼容 一个或多个索引与目标 版本不兼容。如果您从较旧版本的 OpenSearch 或 Elasticsearch 迁移索引,则可能出现此问题。重建索引并重试。
高磁盘使用率 集群的磁盘使用率高于 90%。删除数据或扩展域,然后重试。
高 JVM 使用率 JVM 内存压力高于 75%。减少流向集群的流量或扩展域,然后重试。
Open Ssearch 控制面板别名问题 .kibana 已被配置为一个别名并映射到不兼容的索引,可能是来自早期版本的 OpenSearch 控制面板的索引。重建索引,然后重试。
红色控制面板状态 Opensearch 控制面板状态为红色。尝试在升级完成时使用控制面板。如果红色状态仍然存在,请手动解决该问题,然后重试。
跨集群兼容性

仅当升级之后源域与目标域之间保持跨集群兼容性时,才能升级。在升级过程中,会识别任何不兼容的连接。要继续,请删除远程域或删除不兼容的连接。请注意,如果域上的复制处于活动状态,则在删除连接后无法恢复复制。

其他 OpenSearch Service 服务问题 OpenSearch Service 本身的问题可能会导致您的域显示没有升级资格。如果上述情况都不适用于您的域且该问题持续超过一天,请联系 Amazon Web Services Support

开始升级

升级过程是不可撤销的,并且无法暂停或取消。在升级过程中,您无法对域进行配置更改。在开始升级之前,请仔细确认您是否要继续。您可以使用这些相同步骤执行升级前检查而不实际开始升级。

如果集群具有专用主节点,则无需停机即可完成升级。否则,集群在选择主节点时可能会在升级后几秒钟无响应。

将域升级到更高版本的 OpenSearch 或 Elasticsearch(控制台)

  1. 创建您的域的手动快照。此快照用作备份,如果需要恢复为使用之前的 OpenSearch 版本,您可以在新域上恢复

  2. 转至 http://aws.amazon.com,然后选择登录到控制台

  3. Analytics 下,选择 Amazon OpenSearch Service

  4. 在导航窗格中的 Domains(域)下,选择要升级的域。

  5. 选择 Actions(操作)Upgrade(升级)

  6. 选择要升级到的版本。如果要升级到 OpenSearch 版本,出现启用兼容模式选项。如果启用此设置,OpenSearch 会将其版本报告为 7.10,以允许 Elasticsearch OSS 客户端和插件(如日志记录)继续使用 Amazon OpenSearch Service。

  7. 选择 Upgrade

  8. 检查域控制面板上的 Status(状态)以监控升级的状态。

要将域升级到更高版本的 Opensearch 或 Elasticsearch(Amazon CLI 和 SDK)

您可以通过以下操作为您的域识别正确版本的 OpenSearch 或 Elasticsearch,启动就地升级,执行升级前检查,并查看进度:

  • get-compatible-versions (GetCompatibleVersions)

  • upgrade-domain (UpgradeDomain)

  • get-upgrade-status (GetUpgradeStatus)

  • get-upgrade-history (GetUpgradeHistory)

有关更多信息,请参阅 Amazon CLI 命令参考Amazon OpenSearch Service 的配置 API 参考

使用快照迁移数据

就地升级是将域升级到更高的 OpenSearch 或 Elasticsearch 版本的更方便、更快捷、更可靠的方法。如果您需要从 5.1 之前的 Elasticsearch 版本迁移或想要迁移到全新的集群,那么快照是一个很好的选择。

下表显示了如何使用快照将数据迁移到使用不同 OpenSearch 或 Elasticsearch的 版本的域。有关制作和还原快照的更多信息,请参阅在 Amazon OpenSearch Service 中创建索引快照

之前版本 目标版本 迁移过程
Elasticsearch 6.x 或 7.x OpenSearch 1.x
  1. 请查看 OpenSearch 1.0 的重大更改,了解是否需要对索引或应用程序做出调整。有关其他注意事项,请参阅升级 Amazon OpenSearch Service 域 中的表。

  2. 创建 Elasticsearch 7.x 或 6.x域的手动快照。

  3. 创建 Opensearch 1.x域。

  4. 将快照从 Elasticsearch 域还原到 Opensearch 域。在操作期间,您可能需要在新名称下还原 .kibana 索引:

    POST _snapshot/<repository-name>/<snapshot-name>/_restore { "indices": "*", "ignore_unavailable": true, "rename_pattern": ".kibana", "rename_replacement": ".backup-kibana" }

    然后,您可以在新域上为 .backup-kibana 重新建立索引,并为其分配别名 .kibana

  5. 如果您不再需要您的原始域,请将其删除。否则,您仍需为该域付费。

Elasticsearch 6.x Elasticsearch 7.x
  1. 请查看 7.0 的重大更改,了解是否需要对索引或应用程序做出调整。有关其他注意事项,请参阅升级 Amazon OpenSearch Service 域 中的表。

  2. 创建 6.x 域的手动快照。

  3. 创建 7.x 域。

  4. 将快照从原始域还原到 7.x 域。在操作期间,您可能需要在新名称下还原 .kibana 索引:

    POST _snapshot/<repository-name>/<snapshot-name>/_restore { "indices": "*", "ignore_unavailable": true, "rename_pattern": ".kibana", "rename_replacement": ".backup-kibana" }

    然后,您可以在新域上为 .backup-kibana 重新建立索引,并为其分配别名 .kibana

  5. 如果您不再需要您的原始域,请将其删除。否则,您仍需为该域付费。

Elasticsearch 6.x Elasticsearch 6.8
  1. 创建 6.x 域的手动快照。

  2. 创建 6.8 域。

  3. 将快照从原始域还原到 6.8 域。

  4. 如果您不再需要您的原始域,请将其删除。否则,您仍需为该域付费。

Elasticsearch 5.x Elasticsearch 6.x
  1. 请查看 6.0 的重大更改,了解是否需要对索引或应用程序做出调整。有关其他注意事项,请参阅升级 Amazon OpenSearch Service 域 中的表。

  2. 创建 5.x 域的手动快照。

  3. 创建 6.x 域。

  4. 将快照从原始域还原到 6.x 域。

  5. 如果您不再需要 5.x 域,请将其删除。否则,您仍需为该域付费。

Elasticsearch 5.x Elasticsearch 5.6
  1. 创建 5.x 域的手动快照。

  2. 创建 5.6 域。

  3. 将快照从原始域还原到 5.6 域。

  4. 如果您不再需要您的原始域,请将其删除。否则,您仍需为该域付费。

Elasticsearch 2.3 Elasticsearch 6.x

Elasticsearch 2.3 快照与 6.x 不兼容。要将您的数据直接从 2.3 迁移到 6.x,则必须在新域中手动重新创建您的索引。

或者,您也可以执行本表中的步骤 2.3 至 5.x 步骤,在新的 5.x 域中执行 _reindex 操作,将 2.3 索引转换为 5.x 索引,然后执行 5.x 改为 6.x 步骤。

Elasticsearch 2.3 Elasticsearch 5.x
  1. 请查看 5.0 的重大更改,了解是否需要对索引或应用程序做出调整。

  2. 创建 2.3 域的手动快照。

  3. 创建 5.x 域。

  4. 将快照从 2.3 域还原到 5.x 域。

  5. 如果您不再需要 2.3 域,请将其删除。否则,您仍需为该域付费。

Elasticsearch Elasticsearch 5.x

1.5 快照与 5.x 不兼容。要将您的数据从 1.5 迁移到 5.x,则必须在新域中手动重新创建您的索引。

重要

1.5 快照与 2.3 兼容,但 OpenSearch Service 2.3 域不支持 _reindex 操作。由于您无法为它们重新编制索引,因此 1.5 域中发出的索引仍无法从 2.3 快照还原到 5.x 域。

Elasticsearch Elasticsearch 2.3
  1. 使用迁移插件了解是否可以直接升级到 2.3 版。您可能需要在迁移前对数据进行更改。

    1. 在 Web 浏览器中,打开 http://domain-endpoint/_plugin/migration/

    2. 选择立即运行检查

    3. 检查结果,如果需要,按照说明更改您的数据。

  2. 创建 1.5 域的手动快照。

  3. 创建 2.3 域。

  4. 将快照从 1.5 域还原到 2.3 域。

  5. 如果您不再需要 1.5 域,请将其删除。否则,您仍需为该域付费。