Cassandra ラックのサポートを追加する

このセクションでは、Cassandra のオペレーションをスケーリングするための一般的なガイダンスを示します。 Apigee Edge for Private Cloud ラック対応

Cassandra リングをラック対応にすることが重要な理由について詳しくは、以下をご覧ください。 リソース:

ラックとは

Cassandra ラックは、リング内の Cassandra ノードの論理グループです。Cassandra 異なる論理グループ間でレプリカを分散できるように、ラックを使用します。たとえば、 オペレーションは 1 つのノードだけでなく、それぞれが別のラック上にある複数のノードに送信されます。 フォールトトレランスと可用性に優れています

このセクションの例では 3 つの Cassandra ラックを使用します。 サポートしています。

Apigee Edge for Private Cloud の Cassandra のデフォルト インストールでは、1 つの論理ラックを前提とし、 データセンター内のノードです。この構成はインストールと管理が簡単ですが、 これらのノードのいずれかでオペレーションが失敗すると、失敗する可能性があります。

次の図は、Cassandra リングのデフォルト構成を示しています。

<ph type="x-smartling-placeholder">
</ph> 3 つのノードがある 1 つのラック
(図 1) デフォルト構成: すべてのノードが単一の ラック

より堅牢な構成では、各ノードが別々のラックに割り当てられ、オペレーションが 各ラックのレプリカでも実行されます

次の図は、3 ノードのリングを示しています。この図は、オペレーションが処理される順序を リング全体に複製(時計回り)され、同じノードに 2 つのノードがないことが ラック:

<ph type="x-smartling-placeholder">
</ph> 3 つのラック(各ラックに 1 つのノード)
(図 2) ラック対応構成: 3 つのノード(それぞれに 1 つずつ) ラック

この構成では、オペレーションはノードに送信されますが、そのノードのレプリカにも送信されます。 他のラックに取り付けます(時計回りの順に並べます)。

ラック認識を追加する(3 ノード)

Apigee Edge for Private Cloud のすべての本番環境インストール トポロジには、少なくとも 3 つの Cassandra ノードがあります。このセクションでは、これらのノードについて説明します。 は、「IP1」、「IP2」、「IP3」と呼ばれます。デフォルトでは、これらの各ノードは同じラックにありますが、 「ra-1」。

このセクションでは、Cassandra ノードを個別のラックに割り当てて、すべてのオペレーションが リング内の個別の論理グループでレプリカノードに送信されます。

インストール時に Cassandra ノードを別のラックに割り当てるには:

  1. インストーラを実行する前に、Cassandra ノードにログインして 次のサイレント構成ファイルを編集用に作成する必要があります。
    /opt/silent.conf

    このファイルが存在しない場合は作成し、「apigee」オーナーにします。

  2. CASS_HOSTS プロパティを編集します。DNS または IP アドレスではなく、スペースで区切られた IP アドレスのリストです。 ホスト名エントリ)を指定します。次の構文を使用します。
    CASS_HOSTS="IP_address:data_center_number,rack_number [...]"

    デフォルト値は 3 ノードの Cassandra リングで、各ノードはラック 1 に割り当てられており、 center 1 に配置することをおすすめします。

    CASS_HOSTS="IP1:1,1 IP2:1,1 IP3:1,1"
  3. ノード 2 がラック 2 に、ノード 3 がラック 2 に割り当てられるように、ラックの割り当てを変更します。 ラック 3 にマウントします。
    CASS_HOSTS="IP1:1,1 IP2:1,2 IP3:1,3"

    ラック割り当てを変更すると、Cassandra に 2 つの論理 グループ化(ラック)。ラックは、そのレプリカによって受信されたすべてのオペレーションを 作成します。

    CASS_HOSTS 構成プロパティの使用方法については、以下をご覧ください。 Edge 構成ファイルのリファレンス

  4. 構成ファイルへの変更を保存し、次のコマンドを実行してインストール 構成を更新した Cassandra:
    /opt/apigee/apigee-setup/bin/setup.sh -p c -f path/to/silent/config

    例:

    /opt/apigee/apigee-setup/bin/setup.sh -p c -f /opt/silent.conf
  5. リング内の各 Cassandra ノードに対して、この手順を繰り返します。 CASS_HOSTS プロパティで割り当てられています。この場合は、Cassandra のインストールまたは 次の順序で並べます。 <ph type="x-smartling-placeholder">
      </ph>
    1. ノード 1(IP1)
    2. ノード 2(IP2)
    3. ノード 3(IP3)

インストール後、Cassandra の構成を確認する必要があります。

Cassandra の構成を確認する

ラック対応の Cassandra 構成をインストールしたら、ノードが 複数のラックに割り当てた状態で nodetool status コマンドを実行できます。 次の例をご覧ください。

/opt/apigee/apigee-cassandra/bin/nodetool status

(このコマンドは Cassandra ノードの 1 つで実行します)。

結果は次のようになります。[ラック] 列は は、各ノードの異なるラック ID を示しています。

Datacenter: dc-1
========================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address         Load       Tokens  Owns    Host ID                             Rack
UN  IP1   737 MB  256     ?     554d4498-e683-4a53-b0a5-e37a9731bc5c     ra-1
UN  IP2   744 MB  256     ?     cf8b7abf-5c5c-4361-9c2f-59e988d52da3     ra-2
UN  IP3   723 MB  256     ?     48e0384d-738f-4589-aa3a-08dc5bd5a736     ra-3

Cassandra に対して JMX 認証を有効にした場合は、 パスワードを nodetool に設定します。詳細については、次をご覧ください: nodetool を使用してクラスタノードを管理する

6 ノードリングをインストールする

冗長性をさらに高めるため、Cassandra リングを 6 つのノードに拡張できます。今回は 3 つのラックのそれぞれに 2 つのノードを割り当てます。この構成では、さらに 3 つのノードが必要です。 ノード 4(IP4)、ノード 5(IP5)、ノード 6(IP6)。

次の図は、オペレーションがリング全体で複製される順序を示しています。 レプリケーション中は、隣接する 2 つのノードが同じネットワーク上にないことが ラック:

<ph type="x-smartling-placeholder">
</ph> 3 つのラック(各ラックに 2 つのノード)
(図 3) 6 ノードの Cassandra リング: 各ノードに 2 つのノード ラック 3 個

この構成では、各ノードにさらに 2 つのレプリカがあります(他の 2 つのラックのそれぞれに 1 つずつ)。対象 たとえば、ラック 1 のノード 1 のレプリカは、ラック 2 とラック 3 にあります。ノード 1 に送信されたオペレーションも 他のラックのレプリカに送信されます。

3 ノードの Cassandra リングを 6 ノードの Cassandra リングに拡張するには、 次のようにサイレント構成ファイルに追加します。

CASS_HOSTS="IP1:1,1 IP4:1,3 IP2:1,2 IP5:1,1 IP3:1,3 IP6:1,2"

Cassandra は、3 ノードリングの場合と同じ順序でインストールする必要があります。 CASS_HOSTS プロパティに表示されます。

  1. ノード 1(IP1)
  2. ノード 4(IP4)*
  3. ノード 2(IP2)
  4. Node 5(IP5)
  5. ノード 3(IP3)
  6. ノード 6(IP6)

* セットアップ ユーティリティを実行する前に、サイレント構成ファイルに変更を加えます 4 番目のノード(Cassandra のインストール順序で 2 番目のマシン)に配置します。

12 ノードに拡張する

フォールト トレランスと可用性をさらに高めるには、Cassandra の リング内のノード数を 6 から 12 に引き上げます。この構成では、さらに 6 つのノード(IP7 ~ IP12)。

次の図は、オペレーションがリング全体で複製される順序を示しています。 レプリケーション中は、隣接する 2 つのノードが同じネットワーク上にないことが ラック:

<ph type="x-smartling-placeholder">
</ph> 3 つのラック(各ラックに 4 つのノード)
(図 4) 12 ノードの Cassandra リング: 3 つのそれぞれに 4 つのノード ラック

12 ノードリングをインストールする手順は、3 ノードリングまたは 6 ノードリングをインストールする場合と同様です。 CASS_HOSTS を指定の値に設定し、指定された順序でインストーラを実行します。

12 ノードの Cassandra リングに拡張するには、サイレント モードの設定でノードを次のように構成します。 使用します。

CASS_HOSTS="IP1:1,1 IP7:1,2 IP4:1,3 IP8:1,1 IP2:1,2 IP9:1,3 IP5:1,1 IP10:1,2 IP3:1,3 IP11:1,1 IP6:1,2 IP12:1,3"

3 ノードおよび 6 ノードのリングと同様に、次の順序でノード上でインストーラを実行する必要があります。 ノードは構成ファイル内に記録されます。

  1. ノード 1(IP1)
  2. ノード 7(IP7)*
  3. ノード 4(IP4)
  4. ノード 8(IP8)
  5. ノード 2(IP2)
  6. Node 9(IP9)
  7. Node 5(IP5)
  8. Node 10(IP10)
  9. ノード 3(IP3)
  10. Node 11(IP11)
  11. ノード 6(IP6)
  12. Node 12(IP12)

* これらの変更は、Apigee Edge for Private Cloud を 7 番目のノード( Cassandra のインストール順序)が含まれます。