我的 Amazon OpenSearch Service 集群中的一个节点已关闭。或者,我的 OpenSearch Service 节点不断崩溃。
解决方法
出现集群节点故障可能是因为 Java 虚拟机 (JVM) 压力或 CPU 使用率过高使节点过载。当硬件故障导致运行状况检查失败时,也会出现集群节点故障。
检查是否存在故障节点
完成以下步骤:
- 打开 OpenSearch Service 控制台。
- 在导航窗格的 Managed clusters(托管集群)下,选择 Domains(域)。
- 选择您的 OpenSearch Service 域。
- 选择 Cluster health(集群运行状况)选项卡,然后选择 Nodes(节点)。如果节点数少于您为集群配置的数量,则节点已关闭。
**注意:**在集群配置更改或服务的例行维护期间,Nodes 指标可能不准确。这是预料之中的情况。
识别过载的节点并对其进行故障排除
CPU 和 JVM 压力过高可能会导致节点因高流量而从集群中断开。当节点无法管理负载时,它可能会变得无响应并崩溃。
要对此问题进行故障排除,请重启节点。确保遵守节点重启要求。
如果您仍然遇到问题,请检查并降低 OpenSearch Service 集群上的 CPU 利用率和 JVM 内存压力。
识别硬件故障问题并对其进行故障排除
硬件故障可能会影响集群节点的可用性。OpenSearch Service 定期对每个节点执行运行状况检查。如果节点未通过运行状况检查,则 OpenSearch Service 允许其重新加入集群,或自动将其替换为新的运行状况良好的节点。
使用复制来降低数据丢失的风险
运行以下命令,为索引启用副本,以便在 OpenSearch Service 替换崩溃节点时用作备份:
curl -XPUT 'domain-endpoint/indexname/_settings' -H 'Content-Type: application/json' -d'{ "index" : { "number_of_replicas" : 0 }}
**注意:**将 domain-endpoint 替换为您的域端点,将 indexname 替换为您的索引名称。
副本分片提供数据冗余,即使主分片不可用,也允许集群继续处理请求。最佳做法是为每个索引至少配置一个副本。没有副本分片的多节点集群存在数据丢失的风险。有关详细信息,请参阅调整 Amazon OpenSearch Service 域的大小。
最佳做法是在每个集群中使用多个数据节点。您不能将副本分片用于单节点集群,因为您无法将主分片和副本分片分配给同一个节点。如果节点崩溃,则会丢失数据。即使您为集群启用了细粒度的访问控制,也会发生这种情况。如果您的单节点集群崩溃,请使用索引快照恢复丢失的数据。
**重要事项:**您只能恢复在最新快照中捕获的数据。
配置多可用区域
当您配置多可用区域时,OpenSearch Service 会在多个可用区启动数据节点。OpenSearch Service 将主分片及其相应的副本分片分发到不同的可用区。如果一个节点或区域出现故障,则您的数据仍然可用。
相关信息
Amazon OpenSearch Service 的最佳操作实践
如何提高 OpenSearch Service 域的容错能力?
如何纵向扩展或横向扩展 OpenSearch Service 域?
为什么我的 OpenSearch Service 域卡滞在"Modifying"状态?