上次更新日期:2021 年 1 月 5 日
我无法将我的 Amazon Elasticsearch Service (Amazon ES) 索引从热存储迁移到 ultraWarm 存储。如何解决此问题?
解决方法在将索引迁移到 Amazon ES 中的 ultraWarm 存储时,可能会收到以下错误消息:
{ "error": { "root_cause": " } ], "type": "illegal_argument_exception", "reason": "Rejecting migration request for index since there isn't enough disk space on hot node to perform force merge" }, "status": 400 }
Before an UltraWarm storage migration, Amazon ES validates the amount of available hot disk space.(在 UltraWarm 存储迁移之前,Amazon ES 会验证可用热磁盘空间的大小。)Amazon ES 在磁盘空间验证期间自动运行强制合并操作。当检测到磁盘空间不足时,强制合并操作请求将被阻挡。请求被阻挡,因为强制合并操作每次处理一个分片。此外,每个分片需要当前占用的热磁盘空间的两倍,每个节点需要额外的 20 GB 可用存储空间。
要在索引迁移之前解决任何磁盘空间不足的问题,请执行以下操作:
1.检查索引中存在哪些节点的分片:
GET _cat/shards/INDEXNAME?v
2.检查每个节点的可用磁盘空间:
GET /_cat/allocation?v
节点必须有足够的可用存储空间来满足迁移操作的磁盘空间要求(分片大小的两倍加 20 GB)。有关计算索引的所需大小磁盘的详细信息,请参阅计算存储需求。
3.(可选)如果您没有足够的磁盘空间,请删除旧的或不使用的索引。此删除操作将可释放节点上的磁盘空间,以使强制合并操作能够成功。
4.(可选)如果您无法从节点中删除索引,请增加 EBS 卷。有关详细信息,请参阅如何将存储空间添加到 Amazon Elasticsearch Service (Amazon ES) 域?
其他提示:
从索引中删除旧文档或不使用的文档。文档过多会增加分片大小,从而减慢迁移速度。注意:删除文档不会立即释放磁盘空间。有关详细信息,请参阅为什么我的 Amazon Elasticsearch Service 集群中的“已删除文档”指标如此高? 在 Amazon CloudWatch 中监控磁盘利用率指标(例如 FreeStorageSpace)。有关详细信息,请参阅 ClusterBlockException。