リバランスに関する、一般的な質問と回答を以下に記します。
どのぐらいの時間がかかりますか?
リバランス操作はRAMやディスクに格納されたデータを移動し、クラスタはクライアントからのリクエストを処理し続けるので、リバランスにかかる時間はクラスタによって様々です。オブジェクトの数やサイズ、ストレージの速度、ネットワーク帯域などの要素も、リバランスの速度に影響を与えます。
忙しいクラスタはリバランス操作を完了するためにかなりの時間がかかることがあります。 同様に、クラスタ上のノード間で移動する大量のデータを有するクラスタも、操作が完了するまでに時間がかかります。大量のデータをもち、かつ忙しいクラスタであれば、リバランス完了までに相当な時間を要します。
一回の操作で、何台までノードを追加したり削除出来ますか?
機能的には、一回の操作で追加または削除することができるノード数に制限はありません。しかし、実運用上では、一度に追加または削除するノード数には慎重になるべきでしょう。
クラスタを拡張する場合は、より多くのノードを追加し、より少ないリバランスを実行するのがオススメです。
ノードを削除する場合には、大量に削除し、クラスタの容量と性能を大幅に減らすことがないように気をつける必要があります。
加えて、ノードの削除と同時にノードを追加できることを覚えておいてください。追加するノードと削除するノード数が同じである場合、別々の操作で追加と削除を実行せず、一度の操作でやってしまうほうが良いでしょう。
保守のためにノードをスワップアウトしている場合は、クラスタのサイズと性能を一定に保つためにこの方法を使うことができます。
リバランス中は、クラスタの性能に影響がありますか?
設計上、アプリケーションのパフォーマンスに重大な影響があってはいけません。しかし、データがノード間で転送されるような操作は特に、クラスタ内のノード、ネットワークとディスクI / Oパフォーマンスに余分な負荷がかかってしまうことは事実です。
理想的には、実行中のアプリケーションへの影響を軽減するためにアプリケーションへの負荷が小さい期間中にリバランス操作を実行するのが良いでしょう。
リバランス操作を停止することができますか?
クラスタ内vBucketsは個別に移動されます。 これは、いつでもリバランス操作を停止できることを意味します。 完全に移行されたvBucketsだけがアクティブになります。一旦停止したプロセスを継続するため、いつでもリバランスを再開することができます。移行が完全に終わっていないvBucketsはアクティブになりません。
クラスタからノードを削除するときは、このルールに例外があります。リバランスを停止すると、ノードの削除をキャンセルします。リバランス操作を継続する前に、削除するノードに再度マークを付ける必要があります。
必要なクリーンアップを確実に実行するため、リバランスを停止すると、リバランスを再開できるまでに5分間の猶予が与えられます。これにより、リバランスを再度要求される前にクラスタが安定した状態であることを保証します。