REST APIを介してリバランス処理を開始するには、取り除かれるようにマークされているノードのリスト、およびクラスタ内に登録されているノードのリストを含む2つの引数を指定する必要があります。「Couchbaseのノードの管理」から現在のノード構成を取得することによって、この情報を取得することができます。これは、REST APIリクエストを行うクライアントが、現在のクラスタ構成を把握していることを確認するためです。ノードは、事前に追加したり、適切な方法で削除対象としてマークされている必要があります。
情報は、/controller/rebalance
エンドポイントへのPOST
操作としてejectedNodes
とknownNodes
パラメータとして指定する必要があります。例:
shell> curl -v -X -u admin:password POST 'http://Administrator:Password@192.168.0.77:8091/controller/rebalance' \ -d 'ejectedNodes=&knownNodes=ns_1%40192.168.0.77%2Cns_1%40192.168.0.56'
対応する生のHTTPリクエスト:
POST /controller/rebalance HTTP/1.1 Authorization: Basic QWRtaW5pc3RyYXRvcjpUYW1zaW4= User-Agent: curl/7.24.0 (x86_64-apple-darwin12.0) libcurl/7.24.0 OpenSSL/0.9.8r zlib/1.2.5 Host: 192.168.0.77:8091 Accept: */* Content-Length: 63 Content-Type: application/x-www-form-urlencoded
操作が正常に送信された場合、レスポンスは200(OK)となります。
間違ったノード情報が提出されていれば、不一致エラーを持つJSONが返されます:
{"mismatch":1}
リバランス操作の進行状況は、「リバランスの進捗状況の取得」を使用することによって得ることができます。