クラスタのリバランスは、追加/除去ノードにマークすることも含みます。そして、新しい構造を反映させるためにクラスタ内でデータを移動する操作を開始します。
クラスタにノードを追加する方法については、以下を参照してください「クラスタへのノードの追加」 。
クラスタからノードを削除する方法については、以下を参照してください「クラスタからのノードの除去」 。
フェイルオーバーの状況が発生した場合、クラスタを正常な状態に戻し、再度レプリカを有効化するためにリバランスする必要があります。フェイルオーバーを処理する方法の詳細については、以下を参照してください。「ノードのフェイルオーバ」
Couchbaseの管理Webコンソールで、クラスタ構造がノードの増減やフェイルオーバーによって変更されたことがわかるため、いつクラスタをリバランスすべきかを知ることができます。リバランスを必要とするサーバーの数が通知されます。その場合の例を、以下のManage Server Nodespageの図に示します。
クラスタをリバランスするため、リバランスプロセスを初期化する必要があります。詳細は以下を御覧ください「リバランスの開始」 。
クラスタにノードを追加するために利用可能な方法はいくつかあります。それぞれの方法で同じ結果となり、ノードがクラスタに追加されるようにマークされていますが、リバランス操作を実行するまで、ノードがアクティブなメンバーではありません。
次の方法があります:
インストール中のWeb Console—
新しいCouchbase Serverのインストールセットアップを実行しているとき(「Couchbase Serverの設定 」を参照)、既存のクラスタに新しいノードを結合するオプションがあります。
最初のステップで、下図にあるようにJoin a cluster nowを選択します
次の3つの情報を入力する必要があります:
IP アドレス
参加させたいクラスタ内のいずれかのノードのIPアドレス
ユーザーネーム
ターゲットクラスタの管理者のユーザーネーム
パスワード
ターゲットクラスタの管理者のパスワード
ノードは新しいクラスタとして作成されますが、以下の例のように、新しいクラスタ内の保留ノードのステータスが、ClusterOverviewのページに表示されます。
インストール後にWeb Consoleを使用する—
インストール後にManage Server NodesAdmin Consoleの部分にある ボタンをクリックして、既存クラスタにノードを追加できます。下図のボタンを利用します。
以下に示すように、ダイアログボックスが表示されます。Couchbase Serverがインストールされていて、通常のセットアップ手順に従って設定されている必要があります。また、以前にこのクラスタの一部であったサーバーや、この方法で作成した別のクラスタを追加することもできます。CouchbaseServerが稼働している必要があります。
以下の情報を入力する必要があります:
サーバのIPアドレス
追加したいサーバーのIPアドレス
ユーザーネーム
ターゲットノードの管理者のユーザーネーム
パスワード
ターゲットノードの管理者のパスワード
この操作が破壊的であるということを知らせる警告が出ます。現在サーバーに保存されているデータは全て削除され、もしサーバーが他のクラスタの一部として機能しているのであれば、クラスタ内でフェールオーバーとしてマークされ除去されます。
いったん情報が正常に入力されると、ノードはクラスタに追加する準備完了としてマークされ、リバランス保留中のサーバカウントが更新されます。
REST APIの利用
REST APIを使用して、データ・ペイロードの一部としてIPアドレス、管理者のユーザー名とパスワードを入力することで、クラスタにノードを追加することができます。例えば、 curlを使用して、新しいノードを追加することができます:
shell> curl -ucluster-username
:cluster-password
\ localhost:8091/controller/addNode \ -d "hostname=192.168.0.68
&user=node-username
&password=node-password
"
詳細については、以下「クラスタへのノードの追加」を参照して下さい。
コマンドラインの利用
既存のクラスタに1つ以上のノードを追加するのに、Couchbaseの-CLIコマンドラインツールを使用することができます。新しいノードにもCouchbaseServerがインストールされていて、各ノード上でCouchbaseServerが起動している必要があります。
追加するには、次のコマンドを実行します。
shell> couchbase-cli server-add \ --cluster=localhost:8091
\ -ucluster-username
-pcluster-password
\ --server-add=192.168.0.72:8091
\ --server-add-username=node-username
\ --server-add-password=node-password
ここで:
パラメータ | 説明 |
---|---|
--cluster
| 既存のクラスタ内のノードのIPアドレス |
-u
| 既存のクラスタのユーザー名 |
-p
| 既存のクラスタのパスワード |
--server-add
| クラスタに追加するノードのIPアドレス |
--server-add-username
| 追加されるノードのユーザー名 |
--server-add-password
| 追加されるノードのパスワード |
追加処理が成功した場合は、次のレスポンスが返ります:
SUCCESS: server-add 192.168.0.72:8091
失敗した場合、失敗の種類が通知されます。
複数の--server-add
コマンドラインオプションを指定することで、同時に複数のノードを追加することができます。
サーバーの追加に成功すると、CouchbaseServerクラスタは操作を完了させるためにリバランスが必要であることを示します。
リバランス操作を実行することなく、クラスタへのノードの追加をキャンセルすることができます。操作をキャンセルすると、リバランスが行われてデータを転送したり交換したりすることなく、クラスタからサーバーを除去します。Webインターフェイスを介して操作を取り消すことができます。
ノードを除去すると、クラスタから除去するノードがマークされ、そのノードはクラスタとしてのすべての仕事から開放されます。除去されたノードは、もはやクラスタの一部ではなくなり、停止したり更新またはアップグレードすることができます。
クラスタからノードを除去する前に、ワークロードを処理するためにクラスタノードが十分な容量を持っていることを確認する必要があります。 考慮しなければならないことの詳細は クラスタを縮小する場合を御覧ください 最良の結果を得るために、除去したいノードを交換するためのスワップリバランスを使用し、ノードを交換するべきでしょう。 スワップの詳細については、「スワップリバランス」を参照して下さい。
ノードを追加するように、ノードを除去するためのソリューションもいくつかあります:
Webコンソール
下図のように、WebコンソールのManage Server Nodesセクション内からクラスタのノードを除去することができます。
除去したいノードの隣にある
ボタンをクリックしてノードを除去します。本当に除去するか確認する警告が表示されます。除去するためのノードをマークするには、 をクリックします。コマンドラインの利用
リバランス操作を開始せずに、コマンドラインから除去するためのノードをマークすることはできません。rebalance
コマンドは、1つ以上の--server-add
と/もしくは--server-remove
オプションとともに使用されます。これにより、サーバーをクラスタから追加/除去し、すぐにリバランス操作を開始します。
例えば、リバランス操作中にノードを削除するには:
shell> couchbase-cli rebalance --cluster=127.0.0.1:8091 \ -u Administrator -p Password \ --server-remove=192.168.0.73
リバランス操作の詳細については、以下を参照してください「リバランスの開始」 。
ノードの除去によって、ノードがリクエストを処理することが止まることはありません。代わりに、クラスタから除去する準備ができたノードにマークだけをつけます。実際に除去プロセスを完了するには、リバランス操作を実行する必要があります。
クラスタにノードを追加したり、削除するノードを設定した後は、リバランス操作を実行する必要があります。データをクラスタ全体に分散し、プロセス内の異なるノードにデータを追加したり削除するために、クラスタ内でデータを移動します。
CouchbaseServerがノードの増減やフェイルオーバーによりリバランスが必要だと判断すると、クラスタはリバランス 待ちの状態になります。これは、クラスタの動作には影響しません、リバランス操作は、設定された状態にクラスタを移行するために必要であることを示します。
リバランス操作を開始する方法:
Webコンソールの利用
管理WebコンソールのManage Server Nodesエリアで、リバランス操作が保留されているクラスタは ボタンが有効となっています。
このボタンをクリックすると、すぐにリバランス操作を開始します。 Webコンソールを介してリバランス操作の進行状況を監視することができます。vBucketsの移動の進行状況が、各サーバーの移動プロセスのパーセンテージで示されます。
ボタンをクリックすることで、処理中でもリバランスを中断することができます。リバランスを停止することはできますが、処理自体を取り消すことはできません。リバランス操作を完了する必要があります。
コマンドラインの利用
couchbase-cliとrebalance
コマンドを使用して、リバランスを開始することができます。
shell> couchbase-cli rebalance -c 127.0.0.1:8091 -u Administrator -p Password INFO: rebalancing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SUCCESS: rebalanced cluster
ノードの追加や削除をするには、このメソッドを使用して、単一のコマンドでリバランス操作を開始することができます。追加したいノードを--server-add
オプションで指定し、削除したいノードは--server-remove
で指定します。複数のオプションを使用できます。たとえば、2つのノードを追加し、2つのノードを削除し、直ちにリバランス操作を開始する場合です
shell> couchbase-cli rebalance -c 127.0.0.1:8091 \ -u Administrator -p Password \ --server-add=192.168.0.72 \ --server-add=192.168.0.73 \ --server-remove=192.168.0.70 \ --server-remove=192.168.0.69
コマンドラインは、進捗状態を表示し、リバランス操作が完了するか、障害が発生した場合に終了します。
stop-rebalance
コマンドをcouchbase-cliで使用することで、リバランス操作を中断することができます。
リバランスにかかる時間は、サーバー数、データ量、クラスタ性能、クラスタアクティビティの状況等に依存し、正確に予測または推定することはできません。
リバランス操作中は、正しく完了したことを確認するため、進捗を監視する必要があります。「リバランス中のモニタリング」も参照してください。