スニッチの切り替え
スニッチを切り替えるための手順。
データベースがどのようにレプリカに分散させるかは、スニッチによって決まるため、スニッチを切り替える手順は、クラスターのトポロジー変更があるかどうかによって異なります。
- データがクラスターに挿入されていない場合は、ネットワークのトポロジーに変更はありません。つまり、必要なのはスニッチを設定するだけで、他のステップは必要ありません。
- データがクラスターに挿入されている場合、トポロジーは変更され、さらにステップが必要になります。
トポロジーの変更とは、ノードが置かれるデータ・センターとラックのどちらかまたは両方に変更があることを意味します。トポロジーの変更は、新しいスニッチによってレプリカが別の場所に置かれる場合に生じることがあります。具体的には、レプリケーション・ストラテジは、新しいスニッチによって提供される情報に基づいてレプリカを配置します。以下の例は、相違を示しています。
トポロジーの変更なし
変更元:単一データ・センター内のDseSimpleSnitch(デフォルト)を使用した5つのノード
変更先:1つのデータ・センター内の5つのノードとネットワーク・スニッチを使用する1つのラック(例:GossipingPropertyFileSnitch)
- トポロジーの変更
-
変更元:単一データ・センター内のDseSimpleSnitch(デフォルト)を使用した5つのノード
変更先:GossipingPropertyFileSnitchを使用する2つのデータ・センター内の5つのノード(データ・センターを追加)。注: 1つのデータ・センターを2つに分割する場合、新しいノードで新しいデータ・センターを作成します。今存在するその2つのデータ・センターを反映させるために本来存在していたキースペースのキースペース・レプリケーションの設定を変更します。データが新しいデータ・センターに複製されたら、新しいデータ・センターに「移動」された元のデータ・センターからノード数を削除します。 -
変更元:単一データ・センター内のDseSimpleSnitch(デフォルト)を使用した5つのノード
変更先:GossipingPropertyFileSnitchを使用する1つのデータ・センターと2つのラック内の5つのノード(ラック情報を追加)。
-
cassandra.yaml
cassandra.yamlファイルの場所は、インストールのタイプによって異なります。パッケージ・インストール | /etc/dse/cassandra/cassandra.yaml |
tarボール・インストール | installation_location/resources/cassandra/conf/cassandra.yaml |
cassandra-rackdc.properties
cassandra-rackdc.propertiesファイルの場所は、インストールのタイプによって異なります。パッケージ・インストール | /etc/dse/cassandra/cassandra-rackdc.properties |
tarボール・インストール | installation_location/resources/cassandra/conf/cassandra-rackdc.properties |
cassandra-topology.properties
cassandra-topology.propertiesファイルの場所は、インストールのタイプによって異なります。パッケージ・インストール | /etc/dse/cassandra/cassandra-topology.properties |
tarボール・インストール | installation_location/resources/cassandra/conf/cassandra-topology.properties |
手順
-
データ・センターとラック情報を持つ、プロパティ・ファイルを作成します。
- cassandra-rackdc.properties
GossipingPropertyFileSnitch、Amazon EC2シングルリージョン・スニッチの構成、およびAmazon EC2マルチリージョン・スニッチの構成のみ。
- cassandra-topology.properties
その他のすべてのネットワーク・スニッチ
- cassandra-rackdc.properties
-
すべてのクラスターのノード上の構成ディレクトリへ cassandra-rackdc.properties またはcassandra-topology.properties をコピーします。それらは、新しいスニッチが有効になるまでは使用されません。
-
ノードのcassandra.yaml ファイルを使用してクラスターの各ノードのスニッチを変更します。例を次に示します。
endpoint_snitch: GossipingPropertyFileSnitch
-
トポロジー変更がなければ、各ノードを1つずつ再起動することができます。
cassandra.yamlファイルに変更を加えた場合は、必ずノードを再起動する必要があります。
-
ネットワークのトポロジー変更があったにもかかわらず、データ・センターが追加されていない場合。
- すべてのノードをシャットダウンしてから再起動します。
- 各ノードで、シーケンシャルなリペアおよびnodetool cleanupを実行します。
-
ネットワークのトポロジー変更があり、データ・センターが追加されている場合。
- PropertyFileSnitchからGossipingPropertyFileSnitchへ移行する場合は、移行が完了した後に、新しいクラスターの各ノードからcassandra-topology.propertiesファイルを削除します。