クラスタのローリング再起動を実行する必要がある場合、クラスタはオンラインと実行中のままですが、いったんノードをオフラインを行います。
一般的な原因は、Elasticsearchは、サーバ自体、または(例えばOSのアップデートやハードウェアなど)のメンテナンスのいくつかの種類をアップグレードしています。いずれの場合も、ローリングリスタートを実行するための特別な方法があります。
基本的に、Elasticsearchは、あなたのデータが完全にコピーし、バランスの取れたことにしたいです。あなたがメンテナンスのために単一のノードをオフにした場合、クラスタノードはすぐに損失を認識し、再分散を開始します。あなたはノードが短期的に維持して知っている場合は多少時間がかかることがあり、非常に大きなスライスをリバランスするので、これは、迷惑かもしれません。
私たちがしたいの外部要因の私達のクラスタの状態がより理解しているので、Elasticsearchはリバランスを延期教えです。次のような手順は以下のとおりです。
可能な場合は、新しいデータのインデックスを停止し、同期リフレッシュを実行してください。これは常に可能ではありませんが、回復時間をスピードアップに役立つだろう。同期リフレッシュ要求は、「ベストエフォート」操作です。保留中の索引付け操作がある場合、それは失敗しますが、必要に応じて、数回安全要求を再発行してください。
POST / _flush /同期
スライスの割り当てを無効にします。これは、特に指定のない限りElasticsearchは、失われたフラグメントをリバランス防ぐことができます。あなたがメンテナンスウィンドウが非常に短いことを知っているならば、それは良い考えです。次のように割り当てられて無効にすることができます。
カールxput -d '{ "過渡":{ "cluster.routing.allocation.enable": "なし"}}'
:ノードを再起動する必要が停止し XPUTカールHTTP:// IP:ポート/ _cluster /ノード/ _local / _SHUTDOWN
ノードを再起動し、それがクラスタに参加していることを確認。
繰り返し手順3と残りのノードの4。
次のように割り当てられたスライスを再度有効にします。
カールxputはhttp:// IP:9092 / _cluster /シャード/ -d設定 '{ "一過性":{ "cluster.routing.allocation.enable": "すべて"}}'
デブリリバランスは時間がかかる場合があります。クラスタが状態に戻るまで待って
green
続行する前に。(あなたが前に停止した場合)この時点で、あなたは安全にインデックスを復元することができますが、インデックスの前に、回復のプロセスをスピードアップするのに役立ちます完璧なバランスクラスタを待ちます。