単一データ・センターのシード・ノードの設定
新しいデータ・センターのシード・ノードの設定の概要。
この概要では、ノードが5つある新しいデータ・センターのシード・ノードを設定する簡単な例について取り上げます。
シード・ノードについて:
- シード・ノードは、クラスターに追加する新しいノードのゴシップ・プロセスをブートストラップするために使用します。
- リングのトポロジーを学習するために、参加するノードは、 cassandra.yamlにリストされている-seedsリスト内のいずれかのノードにコンタクトします。
- 新しいクラスターのノードを初回起動する際、1つのノードのみがシード・ノードになっています。
- -seedsリストはアドレスをカンマで区切ったリストです。このサンプル・クラスターには5つのノードが含まれているため、このリストを、デフォルト値
"127.0.0.1"
からいずれか1つのノードのIPアドレスに変更する必要があります。 - すべてのノードが追加された後、データ・センター内のすべてのノードを、同じシード・ノードを使用するように構成する必要があります。
cassandra.yaml
cassandra.yamlファイルの場所は、インストールのタイプによって異なります。パッケージ・インストール | /etc/dse/cassandra/cassandra.yaml |
tarボール・インストール | installation_location/resources/cassandra/conf/cassandra.yaml |
ゴシップ通信での問題を回避する
ゴシップ通信の問題を回避するには、クラスターにあるすべてのノードで同じシード・ノードのリストを使用します。これは、ノードが初めて起動するときに最も重要になります。デフォルトでは、ノードは以降の再起動のたびに、それまでのゴシップ相手を記憶しています。シード・ノードの指定には、クラスターに新しく参加するノードのゴシップ・プロセスをブートストラップする以外に目的はありません。シード・ノードは単一障害点ではなく、ノードのブートストラップ以外、クラスター運用上の特別な目的はありません。
重要: 保守タスクが増え、ゴシップのパフォーマンスが低下するため、すべてのノードをシード・ノードにすることは推奨しません。ゴシップの最適化は重要ではありませんが、シード・リストを小さくすることを推奨します(データ・センターあたり約3つのノード)。
この単一データ・センターの例には5つのノードがあり、nodeA、nodeB、およびnodeCがシード・ノードです。
ノード | IPアドレス | シード |
---|---|---|
nodeA | 110.82.155.0 | ✓ |
nodeB | 110.82.155.1 | ✓ |
nodeC | 110.54.125.1 | ✓ |
nodeD | 110.54.125.2 | |
nodeE | 110.54.155.2 |
手順
-
新しいデータ・センターの各ノードにDSEをインストールします(「DSEのインストール」を参照)。サービスを開始したり、ノードを再起動しないでください。
重要: クラスターのすべてのノードに同じバージョンのDSEを使用します。
-
nodeA、nodeB、およびnodeCについて、シード・ノードとしてnodeAのみを構成します。
- シード・ノードを一度に1つずつ(nodeA、nodeB、次にnodeCというように)起動します。
-
nodeA、nodeB、およびnodeCについて、シード・ノードとしてnodeA、nodeB、およびnodeCを構成するためにcassandra.yamlを変更します。
cassandra.yamlでシード・ノードのエントリを変更した後でnodeA、nodeB、またはnodeCを再起動する必要はありません。ノードによってシード・ノードが再度読み込まれます。
-
nodeDおよびnodeEについて、cassandra.yamlを変更してnodeA、nodeB、およびnodeCをシード・ノードとして構成します。
-
nodeDおよびnodeEを起動します。
結果:データ・センター内のすべてのノードが同じシード・ノード(nodeA、nodeB、nodeC)を持つようになります。