在 Amazon OpenSearch Service 中配置多 AZ 域 - 亚马逊 OpenSearch 服务

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 Amazon OpenSearch Service 中配置多 AZ 域

为了防止数据丢失并在服务中断时最大限度地减少 Amazon OpenSearch Service 集群停机时间,您可以在同一个区域中的两个或三个可用区之间分配节点,这种配置称为多 AZ。可用区是每个 AWS 区域内的隔离位置。

对于运行生产工作负载的域,建议使用带待机功能的多可用区部署选项,该选项可创建以下配置:

  • 跨三个区域部署域。

  • 为专用主节点和数据节点选择最新一代实例类型。

  • 三个专用主节点和三个(或三倍)数据节点。

  • 您的域中每个索引至少有两个副本,或者三倍的数据副本(包括主节点和副本)。

本节的其余部分提供了有关这些配置的解释和背景。

带待机功能的多可用区

带待机功能的多可用区是 Amazon OpenSearch Service 域的部署选项,可提供 99.99% 的可用性、稳定的生产工作负载性能,并可简化域配置和管理。当您使用带待机功能的多可用区时,域可以抵御基础设施故障,而不会影响性能或可用性。此部署选项通过强制执行一些最佳实践(例如指定的数据节点数、主节点数、实例类型、副本数量、软件更新设置和开启自动调整)来达到这一标准。

当您使用带待机功能的多可用区时,OpenSearch Service 会跨三个可用区创建一个域,每个可用区都包含完整的数据副本,并且数据在每个区中均匀分布。您的域让其中一个区中的节点处于待机状态,这意味着它们不响应搜索请求。当 OpenSearch Service 检测到底层基础设施出现故障时,便会在一分钟内自动激活处于待机状态的节点。域可以继续提供索引和搜索请求服务,而影响仅限于执行故障转移所耗费的时间。但不会对数据或资源进行重新分配,所以集群性能不会受到影响,而且也不会出现可用性下降的风险。带待机功能的多可用区完全免费。

您可以通过两种方式在 AWS Management Console 上创建带有待机状态的域。首先,您可以使用轻松创建创建方法创建域,OpenSearch Service 将自动使用预先确定的配置,其中包括以下内容:

  • 三个可用区,其中一个可处于待机状态

  • 三个专用的主节点和数据节点

  • 已在域上启用自动调整

  • 数据节点的 GP3 存储

您也可以选择标准创建创建方法,然后选择不带待机状态的域作为部署选项。您可以自定义域,同时仍必需使用具有待机状态的域的关键功能,例如三个区和三个主节点。建议选择三倍(可用区数量)的数据节点数。

创建域后,您可以导航到域详细信息页面,然后在集群配置选项卡中,确认可用区下显示带待机功能的 3-AZ

如果您在将现有域迁移到带待机功能的多可用区时遇到问题,请参阅故障排除指南中的迁移到带待机功能的多可用区时出错

限制

在设置带待机功能的多可用区的域时,请考虑以下限制:

  • 节点上的分片总数不能超过 1000,集群上的分片总数不能超过 75000,单个分片的大小不能超过 65 GB。

  • 带待机功能的多可用区仅适用于 m5c5r5r6gc6gm6gr6gdi3 实例类型。有关所支持实例类型的更多信息,请参阅支持的实例类型

  • 您只能使用预调配 IOPS 固态硬盘、通用型 SSD (GP3) 或带待机功能的实例备份存储。

不带待机功能的多可用区

OpenSearch Service 仍然支持不带待机功能的多可用区,可用性为 99.9%。节点分布在各个可用区中,可用性取决于可用区的数量和数据副本。而在带有待机功能的情况下,您必须按照最佳实践配置您的域,而在没有待机功能的情况下,您可以自己选择可用区、节点和副本的数量。除非您的现有工作流程会因创建带有待机功能的域而中断,否则我们不建议使用此选项。

如果您选择此选项,我们仍然建议您选择三个可用区,以保持对节点、磁盘和单可用区故障的弹性。发生故障时,集群会在剩余资源之间重新分配数据,以保持可用性和冗余。这种数据移动会增加集群的资源使用量,并可能对性能产生影响。如果集群的大小不正确,其可用性可能会降低,这在很大程度上违背了多可用区的目的。

在 AWS Management Console 上配置不带待机功能的域的唯一方法是选择标准创建创建方法,然后选择不带待机功能的域作为部署选项。

分片分配

如果您启用不带待机功能的多可用区,则应该为集群中的每个索引创建至少一个副本。如果没有副本,OpenSearch Service 便无法将数据的副本分发到其他可用区。幸运的是,所有索引的默认配置均为副本数量等于 1。如下图所示,OpenSearch Service 尽最大努力将主分片及其对应的副本分片分配到不同的区域。

除了按可用区分配分片外,OpenSearch Service 还按节点分配分片。但是,某些域配置可能会导致分片计数不平衡。考虑以下域:

  • 5 个数据节点

  • 5 个主分片

  • 2 个副本

  • 3 个可用区

在这种情况下,OpenSearch Service 必须使一个节点过载,以便跨区域分配主分片和副本分片,如下图所示。

为避免这些可能导致单个节点紧张并损害性能的情况,如果您计划每个索引有两个或更多副本,建议您选择带待机功能的多可用区或一个为三的倍数的实例计数。

专用主节点分配

即使您在配置域时选择了两个可用区,OpenSearch Service 也会自动在三个可用区中分配专用主节点。此分发有助于在区域遇到服务中断时防止集群停机。如果您使用推荐的三个专用主节点并且一个可用区域关闭,则您的集群仍具有配额数量 (2) 的专用主节点,并且可以选择新的主节点。下图演示了此配置。

如果您选择三个可用区中不可用的较旧一代实例类型,则以下方案适用:

  • 如果您为域选择了三个可用区,则 OpenSearch Service 会引发错误。请选择其他实例类型,然后重试。

  • 如果您为域选择了两个可用区,则 OpenSearch Service 会在两个区域中分配专用主节点。

可用区中断

可用区中断很少见,但仍会出现。下表列出了中断期间的不同多 AZ 配置和行为。表中的最后一行适用于带待机功能的多可用区,而所有其他行的配置仅适用于不带待机功能的多可用区。

一个区域中的可用区数量 您选择的可用区数量 专用主节点的数量 一个可用区遇到中断时的行为
2 或更多 2 0

停机时间。您的集群丢失了一半的数据节点,并且必须替换剩余可用区中的至少一个,然后才能选择主节点。

2 2 3

50/50 机会的停机时间。OpenSearch Service 将两个专用主节点分配到一个可用区中,将一个分配到另一个可用区中:

  • 如果具有一个专用主节点的可用区遇到中断,则剩余可用区中的两个专用主节点可以选择主节点。

  • 如果具有两个专用主节点的可用区遇到中断,则在剩余可用区恢复之前,集群不可用。

3 或更多 2 3

无停机时间。OpenSearch Service 会自动在三个可用区中分配专用主节点,因此剩余的两个专用主节点可以选择主节点。

3 或更多 3 0

无停机时间。大约三分之二的数据节点仍可用于选择主节点。

3 或更多 3 3

无停机时间。其余两个专用主节点可以选择主节点。

所有配置中,无论原因如何,节点故障都可能导致集群的剩余数据节点经历一段时间的负载增加,而 OpenSearch Service 会自动配置新节点以替换现在缺失的节点。

例如,如果三区域配置中发生可用区中断,则三分之二的数据节点必须处理所有集群请求。当它们处理这些请求时,其余节点也会在新节点上线时将分片复制到新节点上,这可能会进一步影响性能。如果可用性对您的工作负载至关重要,请考虑向集群中添加资源以缓解此问题。

注意

OpenSearch Service 透明地管理多可用区区域,因此,您无法手动模拟可用区中断。