首页 > 解决方案 > 如何在 Elasticsearch 未运行时清理 Elasticsearch 节点上的完整磁盘

问题描述

我有 Elasticsearch 7.4,有 1 个主节点和 5 个数据节点(Amazon ec2 实例)。我有 cluster.routing.allocation.disk.threshold_enabled 设置 = false 现在节点中的一个磁盘已满,并且由于磁盘已满错误而停止了弹性搜索。

ElasticsearchException[failed to load metadata]; nested: IOException[No space left on device];

/dev/nvme1n1p1  493G  468G     0 100% /disk1

在此之后,集群仅显示 4 个数据节点,9 个分片仍未分配,搜索请求被拒绝,而其他节点的磁盘上仍有足够的空间。

我想通过 POST API 删除旧数据来腾出一些空间,但这在这种情况下不起作用。

现在我的问题是,如何清理这个节点上的磁盘,而它只包含弹性搜索数据并且在集群中不可用。

谢谢您的帮助。

标签: elasticsearchamazon-ec2disk

解决方案


elasticsearch 使用 UUID 将索引文件保存在 DATA 文件夹中。您可以在 elasticsearch.yml 中找到您的 DATA 文件夹路径。

你也可以找到索引UUIDGET /_cat/indices?v

考虑到我假设您有基于时间的索引并且可以删除索引。如果你想删除一些离线索引的文档,那是不可能的。


推荐阅读