Cassandra ノードをクラスタに追加する場合は、次の 2 つの重要なポイントを考慮することが重要です。
- ストリーミングを最小限に抑え、リングのバランスを維持するため、Cassandra リング内のノードの位置は変更しないでください。
- すべてのデータセンターでノード数は一定である必要があります。
最初の目標を確実に達成するには、新しいノードを追加するたびに Cassandra クラスタ内のノード数を 2 倍にすることが重要です。
たとえば、2 つのデータセンターに分散された標準の 12 ノードクラスタ インストール トポロジから開始した場合、合計 6 つの Cassandra ノード(各データセンターに 3 つ)が存在することになります。このクラスタを拡張するには、各データセンターに 3 つのノードを追加し、合計ノード数を 12(各データセンターに 6 つのノード)に増やします。さらに拡張が必要な場合は、各データセンターに 6 つのノードを追加して、合計ノード数は 24 になります(各データセンターに 12 ノード)。
このドキュメントでは、既存の Edge for Private Cloud インストールに 3 つの新しい Cassandra ノードを追加する手順について説明します。同じ手順でノードを追加できます。クラスタを拡張するときは、必ずノード数を 2 倍にしてください。
Cassandra ノードのシステム要件の一覧については、インストール要件をご覧ください。
既存の Edge 構成
本番環境システムでサポートされているすべての Edge トポロジでは、3 つの Cassandra を使用するように指定されています。
説明します。3 つのノードは、構成ファイルの CASS_HOSTS
プロパティで指定されます
次のように指定します。
IP1=10.10.0.1 IP2=10.10.0.2 IP3=10.10.0.3 HOSTIP=$(hostname -i) ADMIN_EMAIL=opdk@google.com APIGEE_ADMINPW=Secret123 LICENSE_FILE=/tmp/license.txt MSIP=$IP1 USE_LDAP_REMOTE_HOST=n LDAP_TYPE=1 APIGEE_LDAPPW=secret MP_POD=gateway REGION=dc-1 ZK_HOSTS="$IP1 $IP2 $IP3" ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3" # Must use IP addresses for CASS_HOSTS, not DNS names. CASS_HOSTS="$IP1:1,1 $IP2:1,1 $IP3:1,1" SKIP_SMTP=n SMTPHOST=smtp.example.com SMTPUSER=smtp@example.com SMTPPASSWORD=smtppwd
REGION
プロパティではリージョン名に「dc-1」が指定されています。必要なのは
情報を追加してください。
構成ファイルを変更して 3 つの新しい Cassandra ノードと
この例では、3 つの新しい Cassandra ノードは次の IP アドレスにあります。
- 10.10.0.14
- 10.10.0.15
- 10.10.0.16
まず、Edge 構成ファイルを更新して新しいノードを追加する必要があります。
IP1=10.10.0.1 IP2=10.10.0.2 IP3=10.10.0.3 # Add the new node IP addresses. IP14=10.10.0.14 IP15=10.10.0.15 IP16=10.10.0.16 HOSTIP=$(hostname -i) ADMIN_EMAIL=opdk@google.com ... # Update CASS_HOSTS to add each new node after an existing nodes. # Must use IP addresses for CASS_HOSTS, not DNS names. CASS_HOSTS="$IP1:1,1 $IP14:1,1 $IP2:1,1 $IP15:1,1 $IP3:1,1 $IP16:1,1"
これにより、既存のノードのトークンの初期設定と、最初のトークンが 各新しいノードのトークン値の中間の値になります。
Edge を構成する
構成ファイルを編集したら、次の操作を行います。
- 既存の Cassandra ノードを再構成する
- 新しいノードに Cassandra をインストールする
- Management Server の再構成
既存の Cassandra を再構成する ノード
既存の Cassandra ノードで次のようにします。
- 「-p c」を指定して setup.sh を再実行するプロファイルと新しい構成ファイルが次のように変更されます。
/opt/apigee/apigee-setup/bin/setup.sh -p c -f updatedConfigFile
新しいノードに Cassandra をインストールする
以下の手順で、新しいノードに Cassandra をインストールします。
新しい Cassandra ノードで、次の操作を行います。
- 3 つのノードに Cassandra をインストールします。
<ph type="x-smartling-placeholder">
- </ph>
apigee-setup
のインストール先: (インストールする手順で説明されているように、最初のノードに Edge apigee-setup ユーティリティ。- 更新された構成ファイルを使用して、最初のノードに Cassandra をインストールします。
/opt/apigee/apigee-setup/bin/setup.sh -p c -f updatedConfigFile
- 残りの新しい Cassandra ノードに、これらの 2 つのステップを繰り返します。
- データセンターにするリージョン名を指定して、3 つの新しい Cassandra ノードを再構築します。
(
dc-1
、dc-2
など)。 この例ではdc-1
です。 <ph type="x-smartling-placeholder">- </ph>
- 最初のノードで、次のコマンドを実行します。
/opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h nodeIP rebuild dc-1
ここで、nodeIP は Cassandra ノードの IP アドレスです。
ユーザー名とパスワードを渡す必要があるのは、 Cassandra に対して JMX 認証が有効になっている。
- 残りの新しい Cassandra ノードで、この手順を繰り返します。
- 最初のノードで、次のコマンドを実行します。
Management Server の再構成
Management-Server ノードの場合
- setup.sh を再実行して、新しく追加した Cassandra ノード用に Management Server を更新します。
/opt/apigee/apigee-setup/bin/setup.sh -p ms -f updatedConfigFile
すべての Router と Message を再起動する 決済代行業者
- すべての Router で次のようにします。
/opt/apigee/apigee-service/bin/apigee-service edge-router restart
- すべての Message Processor で、次のコマンドを実行します。
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
既存のディスクの空き容量 Cassandra ノード
新しいノードを追加したら、次のコマンドで nodetool cleanup
コマンドを実行できます。
既存のノードを削除してディスク スペースを解放します。このコマンドは、サービス アカウントが存在しない構成トークンを
既存の Cassandra ノードによって所有されなくなったということを意味します。
新しいノードを追加した後に既存の Cassandra ノードのディスク スペースを解放するには、次のコマンドを実行します。 次のコマンドを実行します。
/opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassandraIP cleanup
ユーザー名とパスワードを渡す必要があるのは、 Cassandra に対して JMX 認証が有効になっている。
再ビルドの確認
次のコマンドを使用して、再ビルドが成功したことを確認します。
nodetool [-u username -pw password] -h nodeIP netstats
ノードが稼働していてインデックスが稼働している場合、このコマンドは MODE: Normal
を示すはずです。
構築します。
nodetool [-u username -pw password] -h nodeIP statusthrift
Thrift サーバーが実行されていることを示します。これにより、Cassandra は新しいクライアントを受け入れることができます。 できます。
nodetool [-u username -pw password] -h nodeIP statusbinary
ネイティブ トランスポート(またはバイナリ プロトコル)が実行されていることを示します。
nodetool [-u username -pw password] -h nodeIP describecluster
新しいノードが古いノードと同じスキーマ バージョンを使用していることを示しています。
nodetool
の使用の詳細については、以下をご覧ください。
nodetool の使用に関するドキュメント。