既存のクラスターへのvnodeの追加
既存クラスター内のデータ・センターに仮想ノードを追加するための手順。
仮想ノード(vnode)により、既存のクラスターへのノードの追加が大幅に簡素化されます。
- トークンを計算して各ノードに割り当てる必要はなくなりました。
- また、データ・センターに参加するノードがデータを均等に引き受けるため、データ・センターのバランス調整をする必要はなくなりました。
vnodeの仕組みの詳細な説明については、「仮想ノード」を参照してください。
注: vnodeを使用しない場合は、「クラスターへの単一トークン・ノードの追加」を参照してください。
手順
クラスターのすべてのノードに同じバージョンのDataStax Enterpriseがインストールされていることを確認してください。「DataStax Enterprise 5.1.xパッチ・リリースのインストール」を参照してください。
- 新しいノードにDataStax Enterpriseをインストールします。ただし、DataStax Enterpriseを起動しないでください。
-
同じセンターのデータ・センター内の別のノードから、追加対象のノードへとスニッチ・プロパティ・ファイルをコピーします。
- cassandra-topology.propertiesファイルはPropertyFileSnitchによって使用されます。
新しいノード、
IP_address=dc_name:rack_name
用のエントリーを追加します。 - cassandra-rackdc.propertiesファイルはGossipingPropertyFileSnitch、Ec2Snitch、Ec2MultiRegionSnitch、およびGoogleCloudSnitchによって使用されるため、必要に応じて、ラック番号を調整します。
cassandra-topology.propertiesファイルの場所は、インストールのタイプによって異なります。パッケージ・インストールInstaller-Servicesインストール
/etc/dse/cassandra/cassandra-topology.properties tarボール・インストールInstaller-No Servicesインストール
installation_location/resources/cassandra/conf/cassandra-topology.properties cassandra-rackdc.propertiesファイルの場所は、インストールのタイプによって異なります。パッケージ・インストールInstaller-Servicesインストール
/etc/dse/cassandra/cassandra-rackdc.properties tarボール・インストールInstaller-No Servicesインストール
installation_location/resources/cassandra/conf/cassandra-rackdc.properties cassandra.yamlファイルの場所は、インストールのタイプによって異なります。パッケージ・インストールInstaller-Servicesインストール
/etc/dse/cassandra/cassandra.yaml tarボール・インストールInstaller-No Servicesインストール
installation_location/resources/cassandra/conf/cassandra.yaml - 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
ファイルに存在します。コメント解除して設定してください。警告: シード・ノードは、ブートストラップを行えません。新しいノードが-seedsリストにないことを確認してください。すべてのノードをシード・ノードにしないでください。「ノード間のコミュニケーション(ゴシップ)」を参照してください。 - データ・センター内のキースペース・レプリケーション係数に基づいて動的にトークンを割り当てる場合:
- cassandra.yamlファイルおよびcassandra-topology.propertiesまたはcassandra-rackdc.propertiesファイルの既存のクラスターに対して行ったその他のデフォルト以外の設定を変更します。diffコマンドを使用して、既存のノードと新しいノードの違いを見つけて出力します。
- ノードのブーストラップを開始し、「DataStax Enterpriseをサービスとして起動」または「DataStax Enterpriseをスタンドアローン・プロセスとして起動」を参照します。
- nodetool statusを使用して、ノードが完全にブーストラップされていることを確認します。その他のすべてのノードはアップ(UN)状態で、他の状態ではない必要があります。
-
新しいノードをすべて起動したら、既存のノードのそれぞれでnodetool cleanupを実行し、これらのノードに属さなくなったキーを削除します。1つのノードでクリーンアップが完了するまで待ってから、次のノードのnodetool cleanupを実行してください。
クリーンアップは、利用が少ない時間帯まで延期しても安全です。