2015-11-01 175 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個分片和零個副本,則添加新節點將不會執行任何操作。