【问题标题】:Elasticsearch no disk space availableElasticsearch 没有可用的磁盘空间
【发布时间】:2016-02-01 10:06:39
【问题描述】:

我有一个 3 个节点的 Elasticsearch 集群,它耗尽了每个节点的磁盘空间。每个节点都是一个 EC2 实例。集群现在完全没有响应。

我有什么解决方案来释放空间?

在集群中添加一个节点是否会释放另一个节点中的空间,因为现在集群将在其他节点上重新分发信息?

或者是我唯一但绝对不是首选的解决方案是在侧面创建一个更大的集群并从第一个集群迁移数据?

非常欢迎任何其他想法/解决方案。

每个节点(elasticsearch.yml)上的集群配置如下:

cluster.name: AutoSearchCluster
node.name: i-asd4352
plugin.mandatory: cloud-aws
discovery.zen.ping.multicast.enabled: false
discovery.type: ec2
cloud.aws.region: us-west-2
discovery.ec2.groups: prod-group
gateway.recover_after_nodes: 2
gateway.expected_nodes: 3
gateway.recover_after_time: 5m
indices.fielddata.cache.size: 40%

提前致谢。

【问题讨论】:

  • 一些有关配置的信息会有所帮助。是否启用了数据压缩?
  • 谢谢。添加问题中的配置。
  • 添加另一个节点。如果你的空间完全用完了,很可能你有一些损坏......取决于 ES 版本,无论是在索引本身还是在 translog 中。

标签: elasticsearch


【解决方案1】:

EC2 根实例卷可能没有大量磁盘空间,因此在添加新节点之前,请检查您的 EC2 AMI 规格(您使用的是什么 AMI id?),了解什么是设备根存储(EBS 与内部)。之后,如果需要,您添加的任何新节点都应使用所需大小的 EBS 卷来定义,ES 将在其中存储数据(或增加的 EBS 根卷)

短期内,如果为索引定义的分片数量(默认为5)大于3,是的,你可以添加与分片数量一样多的节点,并且会有一些改进(因为一些当前位于现有节点中的分片将转到新节点)。

此外,如果您有 1 个或多个副本(分片 * 副本 > 节点),添加一个新节点将为您带来一些改进(因为一些副本会转到新节点)。

但是,如果您的索引有 3 个分片和零个副本,则添加新节点将无济于事。

【讨论】:

    【解决方案2】:

    您可以向集群添加一个新节点并重新排列分片,将分片重新路由/移动到新节点,但在继续之前备份您的数据。 您还可以将网络连接的硬盘挂载到您的 EC2 并将您的 ES 配置到不同的存储路径。

    【讨论】:

      猜你喜欢
      • 2012-11-15
      • 1970-01-01
      • 1970-01-01
      • 2019-12-12
      • 2010-11-26
      • 2011-02-19
      • 1970-01-01
      • 2012-01-25
      • 2011-01-13
      相关资源
      最近更新 更多