Search:

Search all manuals
Search this manual
Manual
Couchbase Server マニュアル 2.0
Community Wiki and Resources
Couchbase Server 2.0をダウンロード
Couchbase 開発者ガイド 2.0
クライアントライブラリ
Couchbase Server フォーラム
Additional Resources
Community Wiki
Community Forums
Couchbase SDKs
Parent Section
5.7 クラスターの拡張と縮小(リバランス)
Chapter Sections
Chapters

5.7.2. リバランスの実行

5.7.2.1. クラスタへのノードの追加
5.7.2.2. クラスタからのノードの除去
5.7.2.3. リバランスの開始

クラスタのリバランスは、追加/除去ノードにマークすることも含みます。そして、新しい構造を反映させるためにクラスタ内でデータを移動する操作を開始します。

Couchbaseの管理Webコンソールで、クラスタ構造がノードの増減やフェイルオーバーによって変更されたことがわかるため、いつクラスタをリバランスすべきかを知ることができます。リバランスを必要とするサーバーの数が通知されます。その場合の例を、以下のManage Server Nodespageの図に示します。

図5.2 リバランス—保留中のサーバーのリバランス

リバランス保留中のサーバーのリバランス—

クラスタをリバランスするため、リバランスプロセスを初期化する必要があります。詳細は以下を御覧ください「リバランスの開始」

5.7.2.1. クラスタへのノードの追加

クラスタにノードを追加するために利用可能な方法はいくつかあります。それぞれの方法で同じ結果となり、ノードがクラスタに追加されるようにマークされていますが、リバランス操作を実行するまで、ノードがアクティブなメンバーではありません。

次の方法があります:

  • インストール中のWeb Console—

    新しいCouchbase Serverのインストールセットアップを実行しているとき(「Couchbase Serverの設定 」を参照)、既存のクラスタに新しいノードを結合するオプションがあります。

    最初のステップで、下図にあるようにJoin a cluster nowを選択します

    図5.3 リバランス—セットアップ中に新しいノードを追加する

    セットアップ中に新しいノードを追加してリバランスする —

    次の3つの情報を入力する必要があります:

    • IP アドレス

      参加させたいクラスタ内のいずれかのノードのIPアドレス

    • ユーザーネーム

      ターゲットクラスタの管理者のユーザーネーム

    • パスワード

      ターゲットクラスタの管理者のパスワード

    ノードは新しいクラスタとして作成されますが、以下の例のように、新しいクラスタ内の保留ノードのステータスが、ClusterOverviewのページに表示されます。

    図5.4 リバランス—セットアップ中にノードを追加する

    セットアップ中に追加されたノードのリバランス —

  • インストール後にWeb Consoleを使用する—

    インストール後にManage Server NodesAdmin Consoleの部分にある Add Serverボタンをクリックして、既存クラスタにノードを追加できます。下図のボタンを利用します。

    図5.5 リバランス—Webコンソールを使用してノードを追加する

    Webコンソールを使用して追加したノードのリバランス—

    以下に示すように、ダイアログボックスが表示されます。Couchbase Serverがインストールされていて、通常のセットアップ手順に従って設定されている必要があります。また、以前にこのクラスタの一部であったサーバーや、この方法で作成した別のクラスタを追加することもできます。CouchbaseServerが稼働している必要があります。

    図5.6 リバランス—新規ノード追加のダイアログ

    リバランス—新規ノード追加のダイアログ

    以下の情報を入力する必要があります:

    • サーバのIPアドレス

      追加したいサーバーのIPアドレス

    • ユーザーネーム

      ターゲットノードの管理者のユーザーネーム

    • パスワード

      ターゲットノードの管理者のパスワード

    この操作が破壊的であるということを知らせる警告が出ます。現在サーバーに保存されているデータは全て削除され、もしサーバーが他のクラスタの一部として機能しているのであれば、クラスタ内でフェールオーバーとしてマークされ除去されます。

    いったん情報が正常に入力されると、ノードはクラスタに追加する準備完了としてマークされ、リバランス保留中のサーバカウントが更新されます。

  • REST APIの利用

    REST APIを使用して、データ・ペイロードの一部としてIPアドレス、管理者のユーザー名とパスワードを入力することで、クラスタにノードを追加することができます。例えば、 curlを使用して、新しいノードを追加することができます:

    shell> curl -u cluster-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 \
          -u cluster-username -p cluster-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インターフェイスを介して操作を取り消すことができます。

5.7.2.2. クラスタからのノードの除去

ノードを除去すると、クラスタから除去するノードがマークされ、そのノードはクラスタとしてのすべての仕事から開放されます。除去されたノードは、もはやクラスタの一部ではなくなり、停止したり更新またはアップグレードすることができます。

Best Practice: ノード除去のためのキャパシティ確保

クラスタからノードを除去する前に、ワークロードを処理するためにクラスタノードが十分な容量を持っていることを確認する必要があります。 考慮しなければならないことの詳細は クラスタを縮小する場合を御覧ください 最良の結果を得るために、除去したいノードを交換するためのスワップリバランスを使用し、ノードを交換するべきでしょう。 スワップの詳細については、「スワップリバランス」を参照して下さい。

ノードを追加するように、ノードを除去するためのソリューションもいくつかあります:

  • Webコンソール

    下図のように、WebコンソールのManage Server Nodesセクション内からクラスタのノードを除去することができます。

    除去したいノードの隣にあるRemove Serverボタンをクリックしてノードを除去します。本当に除去するか確認する警告が表示されます。除去するためのノードをマークするには、Removeをクリックします。

  • コマンドラインの利用

    リバランス操作を開始せずに、コマンドラインから除去するためのノードをマークすることはできません。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

    リバランス操作の詳細については、以下を参照してください「リバランスの開始」

ノードの除去によって、ノードがリクエストを処理することが止まることはありません。代わりに、クラスタから除去する準備ができたノードにマークだけをつけます。実際に除去プロセスを完了するには、リバランス操作を実行する必要があります。

5.7.2.3. リバランスの開始

クラスタにノードを追加したり、削除するノードを設定した後は、リバランス操作を実行する必要があります。データをクラスタ全体に分散し、プロセス内の異なるノードにデータを追加したり削除するために、クラスタ内でデータを移動します。

CouchbaseServerがノードの増減やフェイルオーバーによりリバランスが必要だと判断すると、クラスタはリバランス 待ちの状態になります。これは、クラスタの動作には影響しません、リバランス操作は、設定された状態にクラスタを移行するために必要であることを示します。

リバランス操作を開始する方法:

  • Webコンソールの利用

    管理WebコンソールのManage Server Nodesエリアで、リバランス操作が保留されているクラスタはRebalanceボタンが有効となっています。

    図5.7 リバランス—リバランスの開始

    リバランス—リバランスの開始

    このボタンをクリックすると、すぐにリバランス操作を開始します。 Webコンソールを介してリバランス操作の進行状況を監視することができます。vBucketsの移動の進行状況が、各サーバーの移動プロセスのパーセンテージで示されます。

    図5.8 リバランス—リバランスの監視

    リバランス—リバランスの監視

    Stop Rebalanceボタンをクリックすることで、処理中でもリバランスを中断することができます。リバランスを停止することはできますが、処理自体を取り消すことはできません。リバランス操作を完了する必要があります。

  • コマンドラインの利用

    couchbase-clirebalanceコマンドを使用して、リバランスを開始することができます。

    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で使用することで、リバランス操作を中断することができます。

リバランスにかかる時間は、サーバー数、データ量、クラスタ性能、クラスタアクティビティの状況等に依存し、正確に予測または推定することはできません。

リバランス操作中は、正しく完了したことを確認するため、進捗を監視する必要があります。「リバランス中のモニタリング」も参照してください。