レプリケーションが正常に完了したことを確認するために、リバランス中からリバランスが終わった後もシステムを監視する必要があります。
レプリケーションには大きく2つの段階があります:
バックフィリング
これはレプリケーションの第一段階で、指定されたアクティブなvBucketの全データを読み込み、レプリカを担当するサーバへ送信します。これはディスクサブシステムとネットワーク帯域の負荷を高めますが、クライアントの動作には一切影響を与えないように設計されています。
cbstats tapを使用して、このタスクの進捗を監視することができます。
shell> cbstats <node_IP>:11210 -b bucket_name -p bucket_password tap | grep backfill
どちらも、TAPバックフィルプロセスのリストを返し、実行中(true)もしくは完了(false)を返します。
すべてが完了したら、総アイテム数(curr_items_tot
)がアクティブなアイテム数×レプリカ数に等しくなるはずです。
システムにデータを追加し続けている状況であれば、これらの値はその時点の正確な値と異なるかもしれません。ただし、2つの値の差が意味のあるものなのかを判断できるでしょう。
この処理が完了するまで、まだレプリケートされていないデータが失われる可能性があるため、"フェイルオーバー"機能を使用することは避けてください。
ドレイニング
バックフィルプロセスが完了すると、全てのノードは生成したレプリカをディスクに永続化する必要があります。リバランス操作が完了するまで、クラスタに要求される書き込み負荷及びディスクI/Oを達成することができるように、ディスク書き込みキューおよびメモリ使用量の監視を継続することが重要です。