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