このセクションでは、Cassandra のオペレーションをスケーリングするための一般的なガイダンスを示します。 Apigee Edge for Private Cloud ラック対応
Cassandra リングをラック対応にすることが重要な理由について詳しくは、以下をご覧ください。 リソース:
- レプリケーション(Cassandra のドキュメント)
- Cassandra 建築、レプリケーション係数戦略
ラックとは
Cassandra ラックは、リング内の Cassandra ノードの論理グループです。Cassandra 異なる論理グループ間でレプリカを分散できるように、ラックを使用します。たとえば、 オペレーションは 1 つのノードだけでなく、それぞれが別のラック上にある複数のノードに送信されます。 フォールトトレランスと可用性に優れています
このセクションの例では 3 つの Cassandra ラックを使用します。 サポートしています。
Apigee Edge for Private Cloud の Cassandra のデフォルト インストールでは、1 つの論理ラックを前提とし、 データセンター内のノードです。この構成はインストールと管理が簡単ですが、 これらのノードのいずれかでオペレーションが失敗すると、失敗する可能性があります。
次の図は、Cassandra リングのデフォルト構成を示しています。
<ph type="x-smartling-placeholder">より堅牢な構成では、各ノードが別々のラックに割り当てられ、オペレーションが 各ラックのレプリカでも実行されます
次の図は、3 ノードのリングを示しています。この図は、オペレーションが処理される順序を リング全体に複製(時計回り)され、同じノードに 2 つのノードがないことが ラック:
<ph type="x-smartling-placeholder">この構成では、オペレーションはノードに送信されますが、そのノードのレプリカにも送信されます。 他のラックに取り付けます(時計回りの順に並べます)。
ラック認識を追加する(3 ノード)
Apigee Edge for Private Cloud のすべての本番環境インストール トポロジには、少なくとも 3 つの Cassandra ノードがあります。このセクションでは、これらのノードについて説明します。 は、「IP1」、「IP2」、「IP3」と呼ばれます。デフォルトでは、これらの各ノードは同じラックにありますが、 「ra-1」。
このセクションでは、Cassandra ノードを個別のラックに割り当てて、すべてのオペレーションが リング内の個別の論理グループでレプリカノードに送信されます。
インストール時に Cassandra ノードを別のラックに割り当てるには:
- インストーラを実行する前に、Cassandra ノードにログインして
次のサイレント構成ファイルを編集用に作成する必要があります。
/opt/silent.conf
このファイルが存在しない場合は作成し、「apigee」オーナーにします。
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"
- ノード 2 がラック 2 に、ノード 3 がラック 2 に割り当てられるように、ラックの割り当てを変更します。
ラック 3 にマウントします。
CASS_HOSTS="IP1:1,1 IP2:1,2 IP3:1,3"
ラック割り当てを変更すると、Cassandra に 2 つの論理 グループ化(ラック)。ラックは、そのレプリカによって受信されたすべてのオペレーションを 作成します。
CASS_HOSTS
構成プロパティの使用方法については、以下をご覧ください。 Edge 構成ファイルのリファレンス。 - 構成ファイルへの変更を保存し、次のコマンドを実行してインストール
構成を更新した 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
- リング内の各 Cassandra ノードに対して、この手順を繰り返します。
CASS_HOSTS
プロパティで割り当てられています。この場合は、Cassandra のインストールまたは 次の順序で並べます。 <ph type="x-smartling-placeholder">- </ph>
- ノード 1(IP1)
- ノード 2(IP2)
- ノード 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">この構成では、各ノードにさらに 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(IP1)
- ノード 4(IP4)*
- ノード 2(IP2)
- Node 5(IP5)
- ノード 3(IP3)
- ノード 6(IP6)
* セットアップ ユーティリティを実行する前に、サイレント構成ファイルに変更を加えます 4 番目のノード(Cassandra のインストール順序で 2 番目のマシン)に配置します。
12 ノードに拡張する
フォールト トレランスと可用性をさらに高めるには、Cassandra の リング内のノード数を 6 から 12 に引き上げます。この構成では、さらに 6 つのノード(IP7 ~ IP12)。
次の図は、オペレーションがリング全体で複製される順序を示しています。 レプリケーション中は、隣接する 2 つのノードが同じネットワーク上にないことが ラック:
<ph type="x-smartling-placeholder">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(IP1)
- ノード 7(IP7)*
- ノード 4(IP4)
- ノード 8(IP8)
- ノード 2(IP2)
- Node 9(IP9)
- Node 5(IP5)
- Node 10(IP10)
- ノード 3(IP3)
- Node 11(IP11)
- ノード 6(IP6)
- Node 12(IP12)
* これらの変更は、Apigee Edge for Private Cloud を 7 番目のノード( Cassandra のインストール順序)が含まれます。