如何解决我的 OpenSearch Service 域的存储空间不足问题?

2 分钟阅读
0

Amazon OpenSearch Service 域的存储空间不足,我因此收到了错误。

简短描述

您的 OpenSearch Service 域对处理工作负载有存储空间要求。之所以发生 ClusterBlockException 错误,可能是因为您的 OpenSearch Service 域的存储空间已用完。例如,在向集群节点分配存储空间时,该空间有多达 20% (20 GB) 是预留空间。此外,像 Linux 之类的操作系统会预留 5% 的文件系统,用于支持根用户执行的任何关键进程。有关 OpenSearch Service 存储空间要求的更多信息,请参阅计算存储要求

要解决存储空间不足问题,请完成以下步骤:

  • 更新您的集群分片策略,以便在所有节点上均匀分布分片。
  • 增加域的 Amazon Elastic Block Store (Amazon EBS) 卷的大小。您还可以向 OpenSearch Service 域添加更多集群节点。
  • 减少存储在您域中的数据量。您可以删除不必要的文件、优化旧索引或减少域的副本数。请务必首先手动拍摄快照
    **注意:**减少域的副本数会降低容错能力。最佳实践是为每个索引至少配置一个副本。
  • 使用索引状态管理 (ISM) 来管理存储空间不足问题。
  • 使用 Amazon CloudWatch 指标来监控集群中的可用存储空间量。

解决方法

更新您的存储配置设置

**重要事项:**在更新配置设置之前,请验证可以发起蓝绿部署的](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-configuration-changes.html)配置更改[。此外,请确保您的专用主节点类型是推荐的节点类型。

使用 cat allocation(从 Elastic 网站)命令来检查您的集群中的每个节点有多少可用存储空间:

curl -XGET "es_endpoint/_cat/allocation?v"

要更新您的 OpenSearch Service 域配置设置,请完成以下步骤:

  1. 打开 [OpenSearch Service 控制台](https://console.aws.amazon.com/aos/home)。
    
  2. 在导航窗格的**托管集群**下,选择**域**。
    
  3. 选择要为其添加存储空间的域。
    
  4. 更新您的域设置。
    

注意:如果使用 Amazon EBS 卷进行存储,请更新您的存储配置设置。或者,您可以更新数据节点的数量。

  1. 选择**提交**。
    

如果您的域使用 EBS 卷进行数据存储

如果域使用 EBS 卷进行数据存储,请执行以下操作之一:

  • 增加 EBS 卷的大小最大卷大小取决于节点的实例类型或 Elasticsearch 版本类型。例如,Elasticsearch 版本 1.5 的最大卷大小是 512 GiB。
  • 如果您无法增加 EBS 卷的大小,请添加节点纵向扩展您的域,并选择新的 EBS 限制。有关 EBS 卷的更多信息,请参阅 EBS 卷大小配额
  • 在您的 Amazon Simple Storage Service (Amazon S3) 存储桶中创建不需要的索引的备份。然后,从 OpenSearch Service 集群中删除这些索引以释放磁盘空间。或者,您可以使用 Curator 在 OpenSearch Service 中轮换数据(从 Python 软件包索引网站)。您也可以使用 ISM 在 OpenSearch Service 中轮换索引。
    **注意:**您必须设置手动快照存储库才能创建任何备份。

如果您的域使用 Amazon Elastic Compute Cloud (Amazon EC2) I3 实例进行数据存储

如果您使用 Amazon EC2 I3 实例进行数据存储,请执行以下操作之一:

  • 向您的 OpenSearch Service 集群添加更多节点。
  • 纵向扩展实例类型以获取更多存储空间。
  • 从您的 OpenSearch Service 集群中删除任何不需要的索引。

删除未使用或旧的索引

您可以使用以下命令来检查索引的创建日期:

GET _cat/indices?h=h,s,i,id,p,r,dc,dd,ss,creation.date.string&s=creation.date.string:desc

要删除单个索引,请运行以下命令:

DELETE <index-name>

要删除多个索引,请运行以下命令:

DELETE cwl-index-*

使用 ISM 来管理存储空间不足问题

ISM 允许您自动执行例行任务,然后将其应用于 OpenSearch Service 中的索引和索引模式。借助 ISM,您可以定义有助于维护诸如磁盘空间不足等问题的自定义管理策略。例如,您可以使用 rollover 操作和 ISM 策略,以便根据索引大小等条件来自动删除旧索引。当现有索引满足定义的条件时,rollover 操作会将目标滚动到新索引。

以下 ISM 策略示例会在 50 分钟后删除索引:

PUT _plugins/_ism/policies/delete_ism_policy
{
    "policy": {
        "policy_id": "delete_ism_policy",
        "description": "A simple default policy that deletes old unused indices“,
        "last_updated_time": 1658834661281,
        "schema_version": 13,
        "error_notification": null,
        "default_state": "example_hot_state",        #Default state
        "states": [
            {
                "name": "example_hot_state",
                "actions": [],
                "transitions": [
                    {
                        "state_name": "delete",
                        "conditions": {
                            "min_index_age": “50m”   #Note that after 50 minutes index will transit from hot_state to delete state
                        }
                    }
                ]
            },
            {
                "name": "delete",                    #Indices moved to delete state
                "actions": [
                    {
                        "delete": {}
                    }
                ],
                "transitions": []
            }
        ],
        "ism_template": [
            {
                "index_patterns": [                  #This ISM policy attaches to all indices for the index pattern and you can mention your index pattern here
                    "sample*"
                ],
                "priority": 100,                     #Priority can be set from 0 to 100
                "last_updated_time": 1658834436349
            }
        ]
    }
}

使用以下 API 调用将 ISM 策略手动附加到索引:

POST _plugins/_ism/add/your-index-*
{
     "policy_id": "<policy_id>"
}

有关更多信息,请参阅如何使用 ISM 来管理 Amazon OpenSearch Service 存储空间不足问题?

使用 CloudWatch 警报来监控存储

您可以使用 CloudWatch FreeStorageSpace 指标来监控集群中的可用存储空间量。要在存储空间不足时接收通知,请配置 CloudWatch 警报

有关更多信息,请参阅使用 Amazon CloudWatch 监控 OpenSearch 集群指标

相关信息

Amazon OpenSearch Service 的操作最佳实践

如何提高 Amazon OpenSearch Service 域的容错能力?

为什么我的 Amazon OpenSearch Service 集群处于红色或黄色状态?

AWS 官方
AWS 官方已更新 2 年前