如何解决我的 OpenSearch Service 域的存储空间不足问题?
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 域配置设置,请完成以下步骤:
-
打开 [OpenSearch Service 控制台](https://console.aws.amazon.com/aos/home)。
-
在导航窗格的**托管集群**下,选择**域**。
-
选择要为其添加存储空间的域。
-
更新您的域设置。
注意:如果使用 Amazon EBS 卷进行存储,请更新您的存储配置设置。或者,您可以更新数据节点的数量。
-
选择**提交**。
如果您的域使用 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 的操作最佳实践
相关内容
- AWS 官方已更新 2 年前
- AWS 官方已更新 2 年前
- AWS 官方已更新 2 个月前
- AWS 官方已更新 2 年前