vnode対応クラスターへのノードの追加
既存のvnode対応クラスター内のデータ・センターにノードを追加するための手順。
仮想ノード(vnode)は既存のクラスターへのノードの追加を大幅に簡素化します。
- トークンを計算して各ノードに割り当てる必要はなくなりました。
- また、データ・センターに参加するノードがデータを均等に引き受けるため、データ・センターのバランス調整をする必要はなくなりました。
vnodeの仕組みの詳細な説明については、「仮想ノード」を参照してください。
注意: 割り当てアルゴリズムを使用して複数のノードをクラスターに追加する場合は、必ず、一度に1つずつノードを追加してください。ノードが同時に追加されると、アルゴリズムによって、同じトークンが複数のノードに割り当てられます。
注: Vnodeを使用しない場合は、「クラスターへの単一トークン・ノードの追加」を参照してください。
cassandra-topology.properties
cassandra-topology.propertiesファイルの場所は、インストールのタイプによって異なります。パッケージ・インストール | /etc/dse/cassandra/cassandra-topology.properties |
tarボール・インストール | installation_location/resources/cassandra/conf/cassandra-topology.properties |
cassandra.yaml
cassandra.yamlファイルの場所は、インストールのタイプによって異なります。パッケージ・インストール | /etc/dse/cassandra/cassandra.yaml |
tarボール・インストール | installation_location/resources/cassandra/conf/cassandra.yaml |
cassandra-rackdc.properties
cassandra-rackdc.propertiesファイルの場所は、インストールのタイプによって異なります。パッケージ・インストール | /etc/dse/cassandra/cassandra-rackdc.properties |
tarボール・インストール | installation_location/resources/cassandra/conf/cassandra-rackdc.properties |
手順
インストールの手順の説明に従って、クラスターのすべてのノードに同じバージョンのDataStax Enterpriseがインストールされていることを確認してください。
- 新しいノードにDataStax Enterpriseをインストールします。ただし、DataStax Enterpriseを起動しないでください。
-
同じデータ・センター内の別のノードのファイルから追加対象のノードへスニッチ・プロパティ・ファイルをコピーします。
- cassandra-topology.properties ファイルはPropertyFileSnitchによって使用されます。
新しいノード、
IP_address=dc_name:rack_name
用のエントリーを追加します。 - cassandra-rackdc.properties ファイルがGossipingPropertyFileSnitchで使用される場合は、Amazon EC2シングルリージョン・スニッチの構成、Amazon EC2マルチリージョン・スニッチの構成、およびGoogle Cloud Platformスニッチの構成必要に応じてラック番号を調整します。
- cassandra-topology.properties ファイルはPropertyFileSnitchによって使用されます。
-
次のプロパティをcassandra.yaml ファイルに追加します。
- データ・センター内のキースペース・レプリケーション係数に基づいて動的にトークンを割り当てる場合:
auto_bootstrap: true cluster_name: 'cluster_name' listen_address: endpoint_snitch: snitch_name num_tokens: 8 allocate_tokens_for_local_replication_factor: RF_number seed_provider: - class_name: seedprovider_name parameters: - seeds: "IP_address_list"
注: RF_numberについては、データ・センター内のキースペースのレプリケーション係数(RF)が異なる場合は、最もデータ集約的なキースペースの係数を使用し、データ強度が等しい複数のキースペースが存在する場合は、最も高いRFを使用します。複数のノードを追加する場合、異なるRFを交互に使用します。 - ランダムにトークンを割り当てる場合:
auto_bootstrap: true cluster_name: 'cluster_name' listen_address: endpoint_snitch: snitch_name num_tokens: 128 seed_provider: - class_name: seedprovider_name parameters: - seeds: "IP_address_list"
cassandra.yamlにauto_bootstrap設定が存在しない場合は、手動で追加します。他の設定はデフォルトの
cassandra.yaml
ファイルに存在します。コメント解除して設定してください。警告: シード・ノードは、bootstrapを行えません。新しいノードが-seedsリストにないことを確認してください。すべてのノードをシード・ノードにしないでください。「ノード間のコミュニケーション(ゴシップ)」を参照してください。 - データ・センター内のキースペース・レプリケーション係数に基づいて動的にトークンを割り当てる場合:
- cassandra.yamlファイルおよびcassandra-topology.propertiesまたはcassandra-rackdc.propertiesファイルの既存のクラスターに対して行ったその他のデフォルト以外の設定を変更します。diffコマンドを使用して、既存のノードと新しいノードの違いを見つけて出力します。
- ブートストラップ・ノードを起動します。「DataStax Enterpriseをサービスとして起動」または「DataStax Enterpriseをスタンドアローン・プロセスとして起動」を参照してください。
- nodetool statusを使用して、ノードが完全にブートストラップされていることを確認します。その他のすべてのノードはアップ(UN)状態で、他の状態ではない必要があります。
-
新しいノードをすべて起動したら、既存のノードのそれぞれでnodetool cleanupを実行し、これらのノードに属さなくなったキーを削除します。1つのノードでクリーンアップが完了するまで待ってから、次のノードのnodetool cleanupを実行してください。
クリーンアップは、利用が少ない時間帯まで延期しても安全です。