ノード上のゴシップ状態のパージ

ゴシップ状態の問題の修正。

DataStax Enterpriseヘルプ・センターでは、トラブルシューティング情報も提供しています。

ゴシップ情報は、ゴシップ通信を待つ必要なしにノード再起動後すぐに使用するために、各ノードによってローカルに保持されます。

cassandra-env.sh

cassandra-env.shファイルの場所は、インストールのタイプによって異なります。
パッケージ・インストール /etc/dse/cassandra/cassandra-env.sh
tarボール・インストール installation_location/resources/cassandra/conf/cassandra-env.sh

手順

ゴシップの状態に問題が生じて、それを修正する必要が万一発生した場合は、以下のようにします。
  1. nodetool assassinateを使用して、問題のあるノードをシャットダウンします。

    この処理が完了するまでに、約35秒かかるため、ノードが削除されたという確認メッセージが表示されるまで待ってください。

  2. この方法で問題が解決しない場合は、クライアントのアプリケーションからクラスターに書き込みを送信することを停止してください。
  3. クラスター全体をオフラインにします。
    1. 各ノードをドレーンします
      nodetool options drain
    2. 各ノードを停止します
  4. peersディレクトリーからデータを消去し、peers-UUIDディレクトリー内のすべてのディレクトリーを削除します(UUIDは適切なノードに対応する特定のディレクトリー)。
    sudo rm -r /var/lib/cassandra/data/system/peers-UUID/*
    注意:
    この手順を行う際は十分に注意してください。この操作はデータベースから内部システム・データを消去するため、安易に実行して結果を検証すると、アプリケーション障害を引き起こす場合があります。結果を検証するには、次のクエリを個別に各ノードで実行して、すべてのノードがその他のすべてのノードを表示できることを確認します。
    select * from system.peers;
  5. ノードの起動時に、ゴシップ状態を消去します。
    • tarボールまたはInstaller No-Servicesインストールの場合は、コマンドライン・オプションを使用するか、cassandra-env.shを編集します。コマンドラインを使用するには、以下のように入力します。
      installation_location/bin/cassandra -Dcassandra.load_ring_state=false
    • パッケージ・インストールまたはInstaller Servicesインストールの場合、または上記のコマンドライン・オプションを使用しない場合は、以下の行をcassandra-env.shファイルに追加してください。
      JVM_OPTS="$JVM_OPTS -Dcassandra.load_ring_state=false"
  6. クラスターを、1ノードずつシード・ノードから始めて順にオンラインにします。
    DataStax Enterpriseの起動と停止」を参照してください。

次のタスク

cassandra-env.shファイルに追加したラインを削除します。