StorageGRID 拡張が失敗し、「 stroting cassandra 」というエラーが表示される。エラー:開始できませんでした。再試行中 '
に適用されます
- StorageGRID Webscale 11.1
- StorageGRID Webscale 11.0
問題
複数のノードを拡張しようとしているComplete
が、「」を使用するストレージノード以外のノードを除いて、 Grid 管理インターフェイス( GMI )ではストレージノードが以下のように表示される。
'Waiting for Cassandra nodes to join the cluster'
'Starting Cassandra. Error: Failed to start. Retrying'
'Waiting to Start Services'
の下にあるノードの Cassandra ログファイルに/var/local/log/cassandra/system.log
次のエラーが表示されます。
ERROR [main] 2018-08-31 10:40:14,250 CassandraDaemon.java (line 678) Exception encountered during startup
java.lang.RuntimeException: A node with address localhost-grid/<IP_Address> already exists, cancelling join. Use cassandra.replace_address if you want to replace this node.
at org.apache.cassandra.service.StorageService.checkForEndpointCollision(StorageService.java:559) ~[cassandra-all-3.0.15.162564.jar:3.0.15.162564]
at org.apache.cassandra.service.StorageService.prepareToJoin(StorageService.java:889) ~[cassandra-all-3.0.15.162564.jar:3.0.15.162564]
at org.apache.cassandra.service.StorageService.initServer(StorageService.java:666) ~[cassandra-all-3.0.15.162564.jar:3.0.15.162564]
at org.apache.cassandra.service.StorageService.initServer(StorageService.java:614) ~[cassandra-all-3.0.15.162564.jar:3.0.15.162564]
at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:354) [cassandra-all-3.0.15.162564.jar:3.0.15.162564]
at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:582) [cassandra-all-3.0.15.162564.jar:3.0.15.162564]
at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:665) [cassandra-all-3.0.15.162564.jar:3.0.15.162564]
原因
- ノードのセットを拡張する場合は、ストレージノードを Cassandra サービスレベルでグループとして追加する必要があります。
- Cassandra でエラーが発生しているストレージノードがある場合、もう一方のストレージノードはそのノードのプロセスが完了するまで待機します。そのため、ノードのエラーが解決されるまで拡張プロセス全体が一時停止します。
- 一方、管理ノードやゲートウェイノードなどのストレージ以外のノードには、このような依存関係はありません。他のノードを待たずに拡張プロセスを完了できます。
解決策
エラー'Starting Cassandra. Error: Failed to start. Retrying
が表示されたストレージノードで次の手順を実行します。 ' :
- 次のコマンドを実行して、ノードに SSH 接続し、 root 権限に昇格します。
su -
- 次の
/etc/cassandra/cassandra-env.sh
コマンドを実行して、既存の Cassandra 環境ファイルをバックアップします。cp /etc/cassandra/cassandra-env.sh /etc/cassandra/cassandra-env.sh_bk
- Cassandra 環境ファイルの末尾に次の 2 行を追加します。
JVM_OPTS="$JVM_OPTS -Dcassandra.replace_address=<SG_Node_IP>"
JVM_OPTS="$JVM_OPTS -Dcassandra.allow_unsafe_replace=true"
- Cassandra サービスを開始します。
service cassandra start
- 表示されたノードに SSH で接続します
Waiting for Cassandra nodes to join the cluster
- Cassandra サービスが開始されたことを確認します。
service cassandra status
- クラスタの Cassandra レベルでノードのステータスを確認します。
nodetool status
- ノードが元々エラーになっている場合(ステップ 2 )、「 UN 」と表示される。 ( up および normal )と入力し、エラーノードの次へ進みます
- Cassandra サービスが開始されたことを確認します。
- 手順 2 で追加した 2 つの行を削除またはコメントアウトします。
- ストレージノードで中断された拡張プロセスでエラーが発生します。
touch /tmp/unhalt
拡張プロセス全体が GMI で短時間で再開されます。