単一データ・センターのシード・ノードの設定

新しいデータ・センターのシード・ノードの設定の概要。

この概要では、ノードが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

手順

  1. 新しいデータ・センターの各ノードにDSEをインストールします(「DSEのインストール」を参照)。サービスを開始したり、ノードを再起動しないでください。
    重要: クラスターのすべてのノードに同じバージョンのDSEを使用します。
  2. nodeA、nodeB、およびnodeCについて、シード・ノードとしてnodeAのみを構成します。
    1. cassandra.yamlの場合:
      seed_provider:
          - class_name: org.apache.cassandra.locator.SimpleSeedProvider
                - seeds: 110.82.155.0
  3. シード・ノードを一度に1つずつ(nodeA、nodeB、次にnodeCというように)起動します。
  4. nodeA、nodeB、およびnodeCについて、シード・ノードとしてnodeA、nodeB、およびnodeCを構成するためにcassandra.yamlを変更します。
    1. cassandra.yamlの場合:
      seed_provider:
          - class_name: org.apache.cassandra.locator.SimpleSeedProvider
                - seeds: 110.82.155.0, 110.82.155.1, 110.54.125.1
    cassandra.yamlでシード・ノードのエントリを変更した後でnodeA、nodeB、またはnodeCを再起動する必要はありません。ノードによってシード・ノードが再度読み込まれます。
  5. nodeDおよびnodeEについて、cassandra.yamlを変更してnodeA、nodeB、およびnodeCをシード・ノードとして構成します。
    1. cassandra.yamlの場合:
      seed_provider:
          - class_name: org.apache.cassandra.locator.SimpleSeedProvider
                - seeds: 110.82.155.0, 110.82.155.1, 110.54.125.1
  6. nodeDおよびnodeEを起動します。
    結果:データ・センター内のすべてのノードが同じシード・ノード(nodeA、nodeB、nodeC)を持つようになります。