JBODを使用した単一ディスク障害からの復旧
JBOD(Just a bunch of disks)を使用してディスク・アレイの単一ディスク障害から復旧するための手順。
JBOD(Just a bunch of disks)を使用してディスク・アレイの単一ディスク障害から復旧するための手順。
DataStax Enterpriseでは、JBODアレイの単一ディスクの損失が原因では障害が発生しないと考えられますが、以下の場合に一部の読み取りおよび書き込みが失敗することがあります。
- 操作の整合性レベルがALLである。
- 要求対象となる、または書き込み対象となるデータが欠陥のあるディスクに格納されている。
- コンパクション対象のデータが不良ディスク上にある。
単にディスクを交換し、DataStax Enterpriseを再起動し、nodetool repairを実行することで解決できる場合もあります。ただし、ディスクのクラッシュによってシステム・テーブルが破損した場合は、アレイのその他のディスクから不完全なデータを削除する必要があります。これを行うための手順は、クラスターがVnodeを使用しているか、または単一トークン・アーキテクチャーを使用しているかによって異なります。
cassandra-env.sh
cassandra-env.shファイルの場所は、インストールのタイプによって異なります。パッケージ・インストール | /etc/dse/cassandra/cassandra-env.sh |
tarボール・インストール | installation_location/resources/cassandra/conf/cassandra-env.sh |
cassandra.yaml
cassandra.yamlファイルの場所は、インストールのタイプによって異なります。パッケージ・インストール | /etc/dse/cassandra/cassandra.yaml |
tarボール・インストール | installation_location/resources/cassandra/conf/cassandra.yaml |
手順
-
ノードに不良ディスクが存在することを確認し、その影響を受けるノードのログを確認してディスクを特定します。
ディスク障害は
FILE NOT FOUND
エントリーに記録されており、障害が発生したマウント・ポイントまたはディスクを特定できます。 - ノードが実行されている場合は、DSEを停止し、ノードをシャットダウンします。
- 不良ディスクを交換し、ノードを再起動します。
-
ノードを再起動できない場合:
-
ノードをブートストラップせずにDataStax Enterpriseの再起動を試行します。
パッケージ・インストール:
- 次のオプションをcassandra-env.shファイルに追加します。
JVM_OPTS="$JVM_OPTS -Dcassandra.allow_unsafe_replace=true
- DataStax Enterpriseをサービスとして起動。
- ノードのブートストラップ後、cassandra-env.shから
-Dcassandra.allow_unsafe_replace=true
パラメーターを削除します。 - DataStax Enterpriseをサービスとして起動。
tarボール・インストール:
- 以下のオプションを指定して、DataStax Enterpriseを起動します。
sudo bin/dse cassandra Dcassandra.allow_unsafe_replace=true
tarボールのパス:installation_location
- 次のオプションをcassandra-env.shファイルに追加します。
-
ノードをブートストラップせずにDataStax Enterpriseの再起動を試行します。
- DataStax Enterpriseが再起動したら、ノード上でnodetool repairを実行します。リペアが成功しなかった場合は、ノードを置き換えます。
- リペアが成功すると、ノードはプロダクションに復元されます。それ以外の場合は、「7」または「8」に進んでください。
-
vnodeを使用しているクラスターの場合:
-
クラスターの単一トークン・ノードの場合: