JBODを使用した単一ディスク障害からの復旧
JBODを使用したディスク・アレイの単一ディスク障害からの復旧。
JBOD(Just a bunch of disks)を使用してディスク・アレイの単一ディスク障害から復旧する方法
ノードを再起動できる場合
- Cassandraを停止 し、ノードをシャットダウンします。
- 障害が発生したディスクを交換します。
- ノードとCassandraを起動します。
- ノード上でnodetool repairを実行します。
ノードを再起動できない場合
ノードを再起動できない場合は、システム・ディレクトリーが壊れている可能性があります。上記の手順を行っても、ノードを再起動できない場合は、「デッド・ノードまたはデッド・シード・ノードの置き換え」を参照してください。
vnodeを使用している場合:
- Cassandraを停止し、ノードをシャットダウンします。
- 障害が発生したディスクを交換します。
- 正常なノードで以下のコマンドを実行します。
$ nodetool ring | grep ip_address_of_node | awk ' {print $NF ","}' | xargs
- 新しいディスクのノードに、前のステップで得たcassandra.yamlファイルのinitial_tokenにあるトークンのリストを(コンマで区切って)追加します。
- 機能している各ドライブの各systemディレクトリーを消去します。
disk1に障害が発生しており、各ドライブのcassandra.yamlのdata_file_directoriesが以下のように設定されているとします。
-/mnt1/cassandra/data -/mnt2/cassandra/data -/mnt3/cassandra/data
以下のコマンドを実行します。$ rm -fr /mnt2/cassandra/data/system $ rm -fr /mnt3/cassandra/data/system
- ノードとCassandraを起動します。
- nodetool repairを実行します。
- ノードがクラスターに完全に統合された後は、通常のvnode設定に戻すことを推奨します。
- num_tokens:number_of_tokens
- #initial_token
ノードが割り当てられたトークンを使用する場合(単一トークン・アーキテクチャー):
- Cassandraを停止し、ノードをシャットダウンします。
- 障害が発生したディスクを交換します。
- 機能している各ドライブの各systemディレクトリーを消去します。
disk1に障害が発生しており、各ドライブのcassandra.yamlのdata_file_directoriesが以下のように設定されているとします。
-/mnt1/cassandra/data -/mnt2/cassandra/data -/mnt3/cassandra/data
以下のコマンドを実行します。$ rm -fr /mnt2/cassandra/data/system $ rm -fr /mnt3/cassandra/data/system
- ノードとCassandraを起動します。
- ノード上でnodetool repairを実行します。
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 |