JBODを使用した単一ディスク障害からの復旧

JBODを使用したディスク・アレイの単一ディスク障害からの復旧。

JBOD(Just a bunch of disks)を使用してディスク・アレイの単一ディスク障害から復旧する方法

ノードを再起動できる場合

  1. Cassandraを停止 Cassandraを停止し、ノードをシャットダウンします。
  2. 障害が発生したディスクを交換します。
  3. ノードとCassandraCassandraを起動します。
  4. ノード上でnodetool repairを実行します。

ノードを再起動できない場合

ノードを再起動できない場合は、システム・ディレクトリーが壊れている可能性があります。上記の手順を行っても、ノードを再起動できない場合は、「デッド・ノードまたはデッド・シード・ノードの置き換え」を参照してください。

vnodeを使用している場合:
  1. Cassandraを停止Cassandraを停止し、ノードをシャットダウンします。
  2. 障害が発生したディスクを交換します。
  3. 正常なノードで以下のコマンドを実行します。
    $ nodetool ring | grep ip_address_of_node | awk ' {print $NF ","}' | xargs
    C:\> nodetool ring ip_address_of_node
  4. nodetool ringの出力をスプレッドシートにコピーします(スペース区切り)。
  5. 出力を編集すると、トークンのリストは維持されますが、他のカラムは削除されます。
  6. 新しいディスクのノードに、前のステップで得たcassandra.yamlファイルのinitial_tokenにあるトークンのリストを(コンマで区切って)追加します。
  7. 機能している各ドライブの各systemディレクトリーを消去します。

    disk1に障害が発生しており、各ドライブのcassandra.yamldata_file_directoriesが以下のように設定されているとします。

    -/mnt1/cassandra/data -/mnt2/cassandra/data -/mnt3/cassandra/data
    -\data1\cassandra\data -\data2\cassandra\data -\data3\cassandra\data
    以下のコマンドを実行します。
    $ rm -fr /mnt2/cassandra/data/system
    $ rm -fr /mnt3/cassandra/data/system
    C:\> rmdir /s \data2\cassandra\data\system
    C:\> rmdir /s \data3\cassandra\data\system
  8. ノードとCassandraCassandraを起動します。
  9. nodetool repairを実行します。
  10. ノードがクラスターに完全に統合された後は、通常のvnode設定に戻すことを推奨します。
ノードが割り当てられたトークンを使用する場合(単一トークン・アーキテクチャー):
  1. Cassandraを停止Cassandraを停止し、ノードをシャットダウンします。
  2. 障害が発生したディスクを交換します。
  3. 機能している各ドライブの各systemディレクトリーを消去します。

    disk1に障害が発生しており、各ドライブのcassandra.yamldata_file_directoriesが以下のように設定されているとします。

    -/mnt1/cassandra/data -/mnt2/cassandra/data -/mnt3/cassandra/data
    -\data1\cassandra\data -\data2\cassandra\data -\data3\cassandra\data
    以下のコマンドを実行します。
    $ rm -fr /mnt2/cassandra/data/system
    $ rm -fr /mnt3/cassandra/data/system
    C:\> rmdir /s \data2\cassandra\data\system
    C:\> rmdir /s \data3\cassandra\data\system
  4. ノードとCassandraCassandraを起動します。
  5. ノード上で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