スニッチの切り替え

スニッチを切り替えるための手順。

Cassandraがどのようにレプリカに分散させるかは、スニッチによって決まるため、スニッチを切り替える手順は、クラスターのトポロジー変更があるかどうかによって異なります。
  • データがクラスターに挿入されていない場合は、ネットワークのトポロジーに変更はありません。つまり、必要なのはスニッチを設定するだけで、他のステップは必要ありません。
  • データがクラスターに挿入されている場合、トポロジーは変更され、さらにステップが必要になります。
トポロジーの変更とは、ノードが置かれるデータ・センターとラックのどちらかまたは両方に変更があることを意味します。トポロジーの変更は、新しいスニッチによってレプリカが別の場所に置かれる場合に生じることがあります。 具体的には、レプリケーション・ストラテジは、新しいスニッチによって提供される情報に基づいてレプリカを配置します。 以下の例は、相違を示しています。
  • トポロジーの変更なし

    1つのデータ・センターにSimpleSnitchを使用しているノードが5つあり、GossipingPropertyFileSnitchなどのネットワーク・スニッチを使用して、1つのデータ・センターおよび1つのラックの5つのノードに変更する場合。

  • トポロジーの変更

    1つのデータ・センターにSimpleSnitchを使用しているノードが5つあり、PropertyFileSnitchを使用して、2つのデータ・センターの5つのノードに変更する場合。

    注: 1つのデータ・センターを2つに分割する場合、分割するキースペースのスキーマを変更する必要があります。さらに、それに従って、データ・センター名も変更する必要があります。
  • トポロジーの変更

    1つのデータ・センターにSimpleSnitchを使用しているノードが5つあり、RackInferringSnitchを使用して、1つのデータ・センターおよび2つのラックの5つのノードに変更する場合。

手順

  1. データ・センターとラックの情報を持つ、プロパティ・ファイルを作成します。
  2. クラスターのすべてのノードのCassandra構成ディレクトリーにcassandra-rackdc.propertiesまたはcassandra-topology.propertiesファイルをコピーします。それらは、新しいスニッチが有効になるまでは使用されません。
    cassandra-topology.propertiesファイルの場所は、インストールのタイプによって異なります。
    パッケージ・インストール /etc/cassandra/cassandra-topology.properties
    tarボール・インストール install_location/conf/cassandra-topology.properties
    Windowsインストール C:\Program Files\DataStax Community\apache-cassandra\conf\cassandra-topology.properties
    cassandra-rackdc.propertiesファイルの場所は、インストールのタイプによって異なります。
    パッケージ・インストール /etc/cassandra/cassandra-rackdc.properties
    tarボール・インストール install_location/conf/cassandra-rackdc.properties
    Windowsインストール C:\Program Files\DataStax Community\apache-cassandra\conf\cassandra-rackdc.properties
    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
  3. クラスターの各ノードのcassandra.yamlファイル内で各ノードのスニッチを変更します。例:
    endpoint_snitch:GossipingPropertyFileSnitch
  4. トポロジー変更がなければ、各ノードを1つずつ再起動することができます。

    cassandra.yamlファイルに変更を加えた場合は、必ずノードを再起動する必要があります。

  5. ネットワークのトポロジー変更があった場合:
    1. すべてのノードをシャットダウンしてから再起動します。
    2. 各ノードで、シーケンシャルなリペアおよびnodetool cleanupを実行します。