デッド・ノードまたはデッド・シード・ノードの置き換え

ハードウェアの故障など、何らかの原因でデッド状態となったノードを置き換える手順。

ハードウェアの故障など、何らかの原因でデッド状態となったノードを置き換える手順。置き換えノードを準備および起動してから、これをクラスターに関連付けます。クラスターで置き換えノードを実行した後は、デッド・ノードを削除してください。

デッド・シード・ノードの置き換え

  1. クラスターの各ノードのcassandra.yamlファイルで、-seedsリストに既存のノードのIPアドレスを加えることで、そのノードをシード・ノードに昇格させ、デッド・シード・ノードのIPアドレスを削除(降格)します。
  2. 次のセクションの説明に従って、デッド・ノードを置き換えます。

デッド・ノードの置き換え

置き換えノードを準備および起動してクラスターに組み込んだら、デッド・ノードを取り除きます。

手順

クラスターの他のノードにインストールされているバージョンと同じバージョンのCassandraがインストールされていることを確認してください。「以前のリリースのインストール」を参照してください。

  1. nodetool statusを使用して、ノードがデッド状態であることを確認します。

    nodetoolコマンドは、デッド・ノード(DN)のダウン状態を表示します。

  2. デッド・ノードのアドレスをメモします。これは、ステップ5で使用します。
  3. 新しいノードにCassandraをインストールします。ただし、Cassandraを起動しないでください。

    Debian/Ubuntuインストールを使用した場合、ノードを停止停止して、データを消去消去してください。

  4. 各ノードについて、cassandra.yamlで以下のプロパティを設定します。また、スニッチに応じて、cassandra-topology.propertiesまたはcassandra-rackdc.properties構成ファイルを設定します。
    • auto_bootstrap - このオプションがfalseに設定されている場合、trueに設定する必要があります。このオプションは、デフォルトのcassandra.yaml構成ファイルには記述されておらず、デフォルトでtrueになります。
    • cluster_name - 新しいノードが参加するクラスターの名前。
    • listen_address/broadcast_address - 通常、空欄のままです。そうでなければ、Cassandraの他のノードが新しいノードに接続するために使用するIPアドレスまたはホスト名を使用します。
    • endpoint_snitch - Cassandraがノードを見つけたり、要求を経路指定したりするために使用するスニッチ。
    • num_tokens - ノードに割り当てるvnodeの数。クラスターのノード間でハードウェアの能力が異なる場合、比例する数のvnodeを大きいマシンに割り当てることができます。
    • seed_provider - 新しいノードが既存のクラスター内の少なくとも1つのノードのリストにあることを確認してください。クラスターについて学習したり、ゴシップのプロセスを確立したりするために、新しいノードが問い合わせる必要があるノードは、この設定の-seedsリストによって決まります。
      注: シード・ノードは、ブートストラップを行えません。新しいノードが-seedsリストにないことを確認してください。すべてのノードをシード・ノードにしないでください。ノード間のコミュニケーション(ゴシップ)」を参照してください。
    • cassandra.yamlファイルおよびcassandra-topology.propertiesまたはcassandra-rackdc.propertiesファイルの既存のクラスターに対して行ったその他のデフォルト以外の設定を変更します。diffコマンドを使用して、既存のノードと新しいノードの違いを見つけて出力します。
  5. replace_addressオプションを使用して、置き換えノードを起動します。
    • パッケージ・インストール: 以下のオプションをcassandra-env.shファイルに追加します。
      JVM_OPTS="$JVM_OPTS -Dcassandra.replace_address=デッド・ノードのアドレス
    • tarボール・インストール: このオプションで、Cassandraを起動します。
      sudo bin/cassandra -Dcassandra.replace_address=デッド・ノードのアドレス
    以下のオプションをcassandra-env.ps1ファイルに追加します。
    JVM_OPTS="$env:JVM_OPTS -Dcassandra.replace_address=address_of_dead_node
  6. パッケージ・インストールを使用する場合、新しいノードがブートストラップを完了した後で、ステップ5で追加したオプションを削除します。

次のタスク

cassandra-topology.propertiesファイルの場所は、インストールのタイプによって異なります。
パッケージ・インストール /etc/cassandra/cassandra-topology.properties
tarボール・インストール install_location/conf/cassandra-topology.properties
Windowsインストール C:\Program Files\DataStax Community\apache-cassandra\conf\cassandra-topology.properties
cassandra-rackdc.propertiesファイルの場所は、インストールのタイプによって異なります。
パッケージ・インストール /etc/cassandra/cassandra-rackdc.properties
tarボール・インストール install_location/conf/cassandra-rackdc.properties
Windowsインストール C:\Program Files\DataStax Community\apache-cassandra\conf\cassandra-rackdc.properties
cassandra.yamlファイルの場所は、インストールのタイプによって異なります。
パッケージ・インストール /etc/cassandra/cassandra.yaml
tarボール・インストール install_location/resources/cassandra/conf/cassandra.yaml
Windowsインストール C:\Program Files\DataStax Community\apache-cassandra\conf\cassandra.yaml
cassandra-env.shファイルの場所は、インストールのタイプによって異なります。
パッケージ・インストール /etc/cassandra/cassandra-env.sh
tarボール・インストール install_location/conf/cassandra-env.sh
cassandra-env.ps1の場所:
Windowsインストール C:\Program Files\DataStax Community\apache-cassandra\conf\cassandra-env.ps1