2015-11-01 157 views
1

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

我有什么解决方案可以腾出空间?

是否会在群集中释放节点以释放其他节点中的空间,因为现在群集将通过其他节点重新分配信息?

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

任何其他想法/解决方案都是值得欢迎的。

上的每个节点(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% 

THX。

+0

有关配置的一些信息将会有所帮助。是否启用数据压缩? –

+0

Thx。在问题中添加了配置。 –

+0

添加另一个节点。如果你的空间用完了,最有可能的情况是你有一些腐败......取决于ES版本,无论是在索引本身还是在超时日志中。 –

回答

-3

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

0

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

在短期内,如果为索引定义的分片数量(默认为5)大于3,是的,您可以添加尽可能多的节点数作为分片数量,并且会有一些改进(因为目前存在于现有分片中的一些分片节点将转到新节点)。另外,如果您有一个或多个副本(分片*副本>节点),添加一个新节点会为您提供一些改进(因为某些副本将转到新节点)。

但是,如果您的索引包含3个分片和零个副本,则添加新节点将不会执行任何操作。