對不起,這可能是一個廣泛的問題,但我沒有找到解決方案來解決這個問題。爲動態Elasticsearch集羣保存節點數據的策略
我嘗試使用Docker容器在Mesos到Marathon之間運行Elasticsearch集羣。因此,我構建了一個Docker image,它可以從Marathon開始並通過前端或API動態擴展。
這對測試設置非常有用,但問題仍然是如何保持數據,以便如果集羣縮小(我知道這也是關於索引配置本身)或停止,並且我想稍後重新啓動(或放大)相同的數據。
問題是,馬拉松決定運行節點的位置(在哪個Mesos Slave上),所以從我的角度來看,如果在重新啓動時所有數據都可用於「新」節點,但我試圖保留通過Docker卷將數據發送到Docker主機。
這使我心中唯一的事情是:
使用分佈式文件系統HDFS一樣或NFS,與安裝的卷要麼泊塢主機或泊塢窗圖像本身上。不過,這會留下的問題是如何在新的羣集啓動期間,如果「老」集羣有例如8個節點加載所有數據,而新的只有4
使用Elasticsearch的Snapshot API保存到一個普通的驅動器在網絡的某個地方。我認爲這將有性能懲罰...
有沒有其他辦法可以解決這個問題?有什麼建議嗎?不幸的是,我沒有找到關於這類話題的好資源。提前致謝。
Elasticsearch和NFS不是最好的朋友;-)。你不想在NFS上運行集羣,速度太慢,而且當存儲速度更好時,Elasticsearch的效果會更好。如果你在這個方程中引入網絡,你會遇到麻煩。我不知道Docker或Mesos。但肯定我建議反對NFS。使用快照/恢復。 –
@AndreiStefan非常感謝有關NFS的見解。如果我們擁有100GB的數據,Snapshot API真的是一種方式嗎? – Tobi
後續快照是增量式的。所以,第一個快照需要一些時間,但其餘的快照應該佔用更少的空間和更少的時間。總共100GB的數據或100GB的初始化(無副本)?另外請注意,「增量」是指文件級別的增量,而不是文檔級別。 –