既存のクラスターへのvnodeの追加

既存クラスター内のデータ・センターに仮想ノードを追加するための手順。

仮想ノード(vnode)により、既存のクラスターへのノードの追加が大幅に簡素化されます。

  • トークンを計算して各ノードに割り当てる必要はなくなりました。
  • また、データ・センターに参加するノードがデータを均等に引き受けるため、データ・センターのバランス調整をする必要はなくなりました。

vnodeの仕組みの詳細な説明については、「仮想ノード」を参照してください。

注: vnodeを使用しない場合は、「クラスターへの単一トークン・ノードの追加」を参照してください。

手順

クラスターのすべてのノードに同じバージョンのDataStax Enterpriseがインストールされていることを確認してください。「DataStax Enterprise 5.1.xパッチ・リリースのインストール」を参照してください。
  1. 新しいノードにDataStax Enterpriseをインストールします。ただし、DataStax Enterpriseを起動しないでください。
    警告: DataStax Enterpriseインストールが自動的に開始しない場合は、ノードを停止し、データを消去する必要があります。
  2. 同じセンターのデータ・センター内の別のノードから、追加対象のノードへとスニッチ・プロパティ・ファイルをコピーします。
    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
  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ファイルに存在します。コメント解除して設定してください。

    警告: シード・ノードは、ブートストラップを行えません。新しいノードが-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を実行してください。

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