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がインストールされていることを確認してください。
  1. 新しいノードにDataStax Enterpriseをインストールします。ただし、DataStax Enterpriseを起動しないでください。
    警告: DataStax Enterpriseインストールが自動的に開始しない場合は、ノードを停止し、データを消去する必要があります。
  2. 同じデータ・センター内の別のノードのファイルから追加対象のノードへスニッチ・プロパティ・ファイルをコピーします。
  3. 次のプロパティを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リストにないことを確認してください。すべてのノードをシード・ノードにしないでください。ノード間のコミュニケーション(ゴシップ)」を参照してください。
  4. cassandra.yamlファイルおよびcassandra-topology.propertiesまたはcassandra-rackdc.propertiesファイルの既存のクラスターに対して行ったその他のデフォルト以外の設定を変更します。diffコマンドを使用して、既存のノードと新しいノードの違いを見つけて出力します。
  5. ブートストラップ・ノードを起動します。「DataStax Enterpriseをサービスとして起動」または「DataStax Enterpriseをスタンドアローン・プロセスとして起動」を参照してください。
  6. nodetool statusを使用して、ノードが完全にブートストラップされていることを確認します。その他のすべてのノードはアップ(UN)状態で、他の状態ではない必要があります。
  7. 新しいノードをすべて起動したら、既存のノードのそれぞれでnodetool cleanupを実行し、これらのノードに属さなくなったキーを削除します。1つのノードでクリーンアップが完了するまで待ってから、次のノードのnodetool cleanupを実行してください。

    クリーンアップは、利用が少ない時間帯まで延期しても安全です。