2017-02-23 4 views
1

私は4つのelasticsearchノードのクラスタを持っていて、それらはすべてnode.data = trueです。私はそれらの1つを非データノードに変換したいと思います。 yamlファイルを変更して再起動するだけの簡単なことですか?それを行うとデータが失われる危険がありますか?ElasticSearchデータノードをデータ損失なしで非データノードに変換できますか?

他のVMを立ち上げて、非データノードとしてクラスタに追加する方がよいでしょうか?

答えて

2

これを達成するには、データ損失を避ける方法がいくつかあります。

アプローチ-1:次に、ノードXを停止シャード割り当てフィルタリング設定を使用して他のデータノードにデータノードXから全ての断片が、非データ・ノードとして起動

移動。

あなたはシャード割り当てフィルタリング設定を使用して破片を記憶からホワイトリスト(index.routing.allocation.include.{attribute})またはブラックリストのいずれか(index.routing.allocation.exclude.{attribute})データノード缶。あなたはそれについてもっと読むことができますhere

Warning: If you have very large indices spread across the cluster then this approach may take long time to move shards and it depends on your bandwidth. 

アプローチ-2:

作る確認Xが、非データ・ノードとして起動少なくとも1 停止データノードの複製断片を有するすべてのインデックス

これはシンプルに見えるかもしれませんが少し危険なです。クラスタの状態は、redからyellowと​​になります。この場合の詳細はhereです。

そのはいつもここで

Xあなたは非データノードに変換するデータノードでクラスタ化するために、変更のこれらの種類を行う前に、全データのバックアップを取ってお勧めします。

+0

ありがとうございます。それは魅力的なように機能しました(私はアプローチ2を取っていましたが、フィルタリングで何かを混乱させる可能性が低いため、リスクが高いように見えました。 – Bret

関連する問題