Edge for Private Cloud バージョン 4.17.05
このドキュメントでは、既存のデータセンターにデータセンター(リージョンとも呼ばれる)を追加する方法について説明します。
データセンター追加前の考慮事項
データセンターを追加する前に、データセンター全体で OpenLDAP、ZooKeeper、Cassandra、Postgres のサーバーを構成する方法を理解する必要があります。また、2 つのデータセンターのノード間で必要なポートが開いていることを確認する必要もあります。
- OpenLDAP
各データセンターには、レプリケーションを有効にして構成された独自の OpenLDAP サーバーがあります。新しいデータセンターをインストールするときは、レプリケーションを使用するように OpenLDAP を構成する必要があります。また、レプリケーションを使用するように既存のデータセンターの OpenLDAP サーバーを再構成する必要があります。 - ZooKeeper
両方のデータセンターの ZK_HOSTS プロパティには、両方のデータセンターのすべての ZooKeeper ノードの IP アドレスまたは DNS 名を同じ順序で指定し、任意のノードに「:observer」修飾子を付けます。 「:observer」修飾子が付いていないノードは「ボーター」と呼ばれます。構成内の「ボーター」の数は奇数にする必要があります。
このトポロジでは、ホスト 9 上の ZooKeeper ホストがオブザーバーです。
以下に示す構成ファイルの例では、ノード 9 に「:observer」修飾子が付いているため、5 つのボーター(ノード 1、2、3、7、8)があります。
各データセンターの ZK_CLIENT_HOSTS プロパティで、データセンター内のすべての ZooKeeper ノードのみの IP アドレスまたは DNS 名を同じ順序で指定します。 - Cassandra
すべてのデータセンターに同じ数の Cassandra ノードが必要です。
各データセンターの CASS_HOSTS には、両方のデータセンターのすべての Cassandra の IP アドレス(DNS 名ではない)を指定します。データセンター 1 では、まず、そのデータセンター内の Cassandra ノードをリストアップします。データセンター 2 の場合は、そのデータセンター内の Cassandra ノードを最初に列挙します。データセンター内のすべての Cassandra ノードを同じ順序でリストします。
すべての Cassandra ノードに「:<d>,<r>」という接尾辞を付ける必要があります。たとえば、「<ip>:1,1」はデータセンター 1 とラック/アベイラビリティ ゾーン 1、「<ip>:2,1」はデータセンター 2 とラック/アベイラビリティ ゾーン 1 を表します。
たとえば、「192.168.124.201:1,1 192.168.124.202:1,1 192.168.124.203:1,1 192.168.124.204:2,1 192.168.20 を参照
このデプロイモデルで、Cassandra の設定は次のようになります。
-
Postgres
デフォルトでは、すべての Postgres ノードがマスターモードでインストールされます。ただし、複数のデータセンターがある場合は、マスター / スタンバイ レプリケーションを使用するように Postgres ノードを構成します。これにより、マスターノードに障害が発生しても、スタンバイ ノードがトラフィックの処理を続行できます。通常、マスター Postgres サーバーは一方のデータセンターで構成し、スタンバイ サーバーはもう一方のデータセンターで構成します。
既存のデータセンターで 2 つの Postgres ノードがマスター/スタンバイ モードで実行されるように構成されている場合は、この手順の一環として既存のスタンバイ ノードを登録解除し、新しいデータセンターのスタンバイ ノードに置き換えます。
次の表に、両方のシナリオでの使用前と変更後の Postgres 構成を示します。
変更前
変更後
dc-1 に単一のマスター Postgres ノード
dc-1 のマスター Postgres ノード
dc-2 のスタンバイ Postgres ノード
dc-1 のマスター Postgres ノード
dc-1 のスタンバイ Postgres ノード
dc-1 のマスター Postgres ノード
dc-2 のスタンバイ Postgres ノード
dc-1 の古いスタンバイ Postgres ノードを登録解除します。
- ポートの要件
2 つのデータセンターのノード間で必要なポートが開いていることを確認する必要があります。ポートの図については、インストール要件をご覧ください。
既存のデータセンターの更新
データセンターを追加するには、新しいデータセンター ノードをインストールして構成する手順を行う必要がありますが、元のデータセンターのノードを更新する必要もあります。これらの変更が必要なのは、既存のデータセンターからアクセスする必要がある新しい Cassandra ノードと ZooKeeper ノードを新しいデータセンターに追加し、レプリケーションを使用するように OpenLDAP を再構成する必要があるためです。
構成ファイルの作成
以下は、インストール トポロジに示されているように、各データセンターに 6 つのノードがある 2 つのデータセンターのサイレント構成ファイルを示しています。dc-1 の構成ファイルにより、次の設定が追加されることに注意してください。
- 2 つの OpenLDAP ノード間で複製して OpenLDAP を構成する。
- dc-2 の新しい Cassandra ノードと ZooKeeper ノードを dc-1 の構成ファイルに追加します。
# Datacenter 1 IP1=IPorDNSnameOfNode1 IP2=IPorDNSnameOfNode2 IP3=IPorDNSnameOfNode3 IP7=IPorDNSnameOfNode7 IP8=IPorDNSnameOfNode8 IP9=IPorDNSnameOfNode9 HOSTIP=$(hostname -i) MSIP=$IP1 ADMIN_EMAIL=opdk@google.com APIGEE_ADMINPW=Secret123 LICENSE_FILE=/tmp/license.txt USE_LDAP_REMOTE_HOST=n LDAP_TYPE=2 LDAP_SID=1 LDAP_PEER=$IP7 APIGEE_LDAPPW=secret BIND_ON_ALL_INTERFACES=y MP_POD=gateway-1 REGION=dc-1 ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer" ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3" # Must use IP addresses for CASS_HOSTS, not DNS names. CASS_HOSTS="$IP1:1,1 $IP2:1,1 $IP3:1,1 $IP7:2,1 $IP8:2,1 $IP9:2,1" SKIP_SMTP=n SMTPHOST=smtp.example.com SMTPUSER=smtp@example.com SMTPPASSWORD=smtppwd SMTPSSL=n SMTPPORT=25 SMTPMAILFROM="My Company <myco@company.com>" |
# Datacenter 2 IP1=IPorDNSnameOfNode1 IP2=IPorDNSnameOfNode2 IP3=IPorDNSnameOfNode3 IP7=IPorDNSnameOfNode7 IP8=IPorDNSnameOfNode8 IP9=IPorDNSnameOfNode9 HOSTIP=$(hostname -i) MSIP=$IP7 ADMIN_EMAIL=opdk@google.com APIGEE_ADMINPW=Secret123 LICENSE_FILE=/tmp/license.txt USE_LDAP_REMOTE_HOST=n LDAP_TYPE=2 LDAP_SID=2 LDAP_PEER=$IP1 APIGEE_LDAPPW=secret BIND_ON_ALL_INTERFACES=y MP_POD=gateway-2 REGION=dc-2 ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer" ZK_CLIENT_HOSTS="$IP7 $IP8 $IP9" # Must use IP addresses for CASS_HOSTS, not DNS names. CASS_HOSTS="$IP7:2,1 $IP8:2,1 $IP9:2,1 $IP1:1,1 $IP2:1,1 $IP3:1,1" SKIP_SMTP=n SMTPHOST=smtp.example.com SMTPUSER=smtp@example.com SMTPPASSWORD=smtppwd SMTPSSL=n SMTPPORT=25 SMTPMAILFROM="My Company <myco@company.com>" |
新しいデータセンターを追加する手順
この手順では、データセンターに次の名前を付けます。
- dc-1: 既存のデータセンター
- dc-2: 新しいデータセンター
- dc-1 の元の Cassandra ノード上で、dc-2 の Cassandra ノードを含む新しい dc-1 構成ファイルを使用して、setup.sh を再実行します。
/opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile1 - dc-1 の Management Server ノードで setup.sh を再実行します。
> /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile1 - dc-2 で、すべてのノードに apigee-setup をインストールします。詳細については、Edge apigee-setup ユーティリティのインストールをご覧ください。
- dc-2 で、Cassandra と ZooKeeper を該当するノードにインストールします。
/opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile2 - dc-2 で、すべての Cassandra ノードで dc-1 のリージョン名を指定して rebuild コマンドを実行します。
> /opt/apigee/apigee-cassandra/bin/nodetool -h cassIP rebuild dc-1 - dc-2 で、該当するノードに Management Server をインストールします。
> /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile2 - dc-2 の Management Server ノードに apigee-provision をインストールします。これにより、apigee-adminapi.sh ユーティリティがインストールされます。
> /opt/apigee/apigee-service/bin/apigee-service apigee-provision install - dc-2 で、該当するノードに Routes と Message Processor をインストールします。
> /opt/apigee/apigee-setup/bin/setup.sh -p rmp -f configFile2 - dc-2 で、該当するノードに Qpid をインストールします。
> /opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile2 - dc-2 で、該当するノードに Postgres をインストールします。
> /opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile2 - Postgres ノードの Postgres のマスター/スタンバイを設定する。dc-1 の Postgres ノードがマスターで、dc-2 の Postgres ノードがスタンバイ サーバーです。
注: dc-1 が 2 つの Postgres ノードをマスター/スタンバイ モードで実行するように構成されている場合、この手順の一環として、dc-1 の既存のマスター Postgres ノードをマスターとして使用し、dc-2 の Postgres ノードをスタンバイ サーバーとして使用します。この手順の後半で、dc-1 の既存の Postgres スタンバイ サーバーを登録解除します。- dc-1 のマスターノードで、構成ファイルを編集して次のように設定します。
PG_MASTER=IPorDNSofDC1Master
PG_STANDBY=IPorDNSofDC2Standby - 新しいマスターでレプリケーションを有効にします。
> /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle - dc-2 のスタンバイ ノードで、構成ファイルを編集して次のように設定します。
PG_MASTER=IPorDNSofDC1Master
PG_STANDBY=IPorDNSofDC2Standby - dc-2 のスタンバイ ノードでサーバーを停止し、既存の Postgres データを削除します。
> /opt/apigee/apigee-service/bin/apigee-service apigee-postgresqlstop
> rm -rf /opt/apigee/data/apigee-postgresql/
注: データを削除する前に、必要に応じてバックアップできます。 - dc-2 でスタンバイ ノードを構成します。
> /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
- dc-1 のマスターノードで、構成ファイルを編集して次のように設定します。
- dc-1 で分析構成を更新し、組織を構成します。
- dc-1 の Management Server ノードで、Postgres ノードの UUID を取得します。
> apigee-adminapi.sh server list -r dc-1 -p analytics -t postgres-server --admin adminEmail --pwd adminPword --host localhost
UUID は、返されたデータの最後に表示されます。その値を保存します。
注: dc-1 が 2 つの Postgres ノードをマスター/スタンバイ モードで実行するように構成されている場合、出力には 2 つの IP アドレスと UUID が表示されます。両方の UUID を保存します。 どちらの UUID がマスターノードで、どの UUID がスタンバイ ノードであるかを IP から判断できます。 - dc-2 の Management Server ノードで、前の手順で示した Postgres ノードの UUID を取得します。その値を保存します。
- dc-1 の Management Server ノードで、分析グループとコンシューマ グループの名前を特定します。以下のコマンドの多くは、この情報を必要とします。
デフォルトでは、分析グループの名前は axgroup-001、コンシューマ グループの名前は consumer-group-001 です。リージョンのサイレント構成ファイルでは、AXGROUP プロパティを使用して分析グループの名前を設定できます。
分析グループとコンシューマ グループの名前がわからない場合は、次のコマンドを使用して表示します。
> apigee-adminapi.sh analytics groups list --admin adminEmail --pwd adminPword --host localhost
このコマンドは、name フィールドに分析グループ名を、consumer-groups フィールドにコンシューマ グループ名を返します。 - dc-1 の Management Server ノードで、分析グループから既存の Postgres サーバーを削除します。
- Consumer-group から Postgres ノードを削除します。
> apigee-adminapi.sh analytics groups consumer_groups datastores remove -g axgroup-001 -c consumer-group-001 -u UUID -Y --admin adminEmail --pwd adminPword --host localhost
dc-1 が 2 つの - 分析グループから Postgres ノードを削除します。
> apigee-adminapi.sh analytics groups postgres_server remove -g axgroup-001 -u UUID -Y --admin adminEmail --pwd adminPword --host localhost
dc-1 に 2 つのノードが master/server-admin Postgres で動作するように構成されている場合は、2 つのノード、
- Consumer-group から Postgres ノードを削除します。
-
dc-1 の Management Server ノードで、新しいマスター/スタンバイ Postgres サーバーを分析グループに追加します。
- 両方の Postgres サーバーを分析グループに追加します。
> apigee-adminapi.sh 分析グループ postgres_server add -g axgroup-001 -u "UUID_1,UUID_2" --admin adminEmail --pwd adminPword --host localhost
UUID_1 は dc-2 の Postgres 1 ノード、dc-2 のマスター Postgres ノードに対応します。 - PG サーバーをマスター/スタンバイとしてコンシューマ グループに追加します。
> apigee-adminapi.sh analytics groups consumer_groups datastores add -g axgroup-001 -c consumer-group-001 -u "UUID_1,UUID_2" --admin adminEmail --pwd adminPword --host localhost
- 両方の Postgres サーバーを分析グループに追加します。
- dc-2 の Qpid サーバーを分析グループに追加します。
- dc-1 の Management Server ノードで、dc-2 の Qpid ノードの UUID を取得します。
> apigee-adminapi.sh server list -r dc-2 -p central -t qpid-server --admin adminEmail --pwd adminPword --host localhost
返された UUID の UUID です。これらの値を保存します。 - dc-1 の Management Server ノードで、Qpid ノードを分析グループに追加します。
>apigee-adminapi.sh analytics groups qpid_server add -g axgroup-001 -u "UUID_1 UUID_2" --admin adminEmail --pwd adminPword --host localhost - dc-1 の Management Server ノードで、Qpid ノードをコンシューマ グループに追加します。
> apigee-adminapi.sh analytics groups consumer_groupsconsumer add -g axgroup-001 -c consumer-group-001 -u "UUID_1,UUID_2" --admin adminEmail --pwd adminPword
- dc-1 の Management Server ノードで、dc-2 の Qpid ノードの UUID を取得します。
- dc-1 から古い Postgres スタンバイ サーバーの登録を解除して削除します。
- 既存の dc-1 Postgres スタンバイ サーバーの登録を解除します。
> apigee-adminapi.sh サーバーの登録解除 -u UUID -r dc-1 -p analytics -t postgres-server -Y --admin adminEmail --pwd adminPword --host localhost
ここで、UUID は dc-1 の旧スタンバイ Postgres ノードです。 - dc-1 の既存の Postgres スタンバイ サーバーを削除します。
注: このコマンドでは、Postgres サーバーノードはアンインストールされません。Edge ノードのリストから削除されるだけです。必要に応じて、後でこのノードから Postgres をアンインストールできます。
> apigee-adminapi.sh サーバー delete -u UUID --admin adminEmail --pwd adminPword --host localhost
- 既存の dc-1 Postgres スタンバイ サーバーの登録を解除します。
- dc-1 の Management Server ノードで、Postgres ノードの UUID を取得します。
- 2 つのデータセンターの正しいレプリケーション係数で Cassandra キースペースを更新します。この手順は、いずれかのデータセンターの Cassandra サーバーで 1 回だけ実行する必要があります。
注: 以下のすべてのコマンドは、レプリケーション係数を「3」に設定し、クラスタ内に 3 つの Cassandra ノードがあることを示します。この値は実際のインストールに応じて変更してください。- Cassandra cqlsh ユーティリティを起動します。
> /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP - 「cqlsh>」プロンプトで次の CQL コマンドを実行して、Cassandra キースペースのレプリケーション レベルを設定します。
- cqlsh> ALTER KEYSPACE "identityzone" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
- cqlsh> ALTER KEYSPACE "system_traces" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
- 次のコマンドを使用してキースペースを表示します。
cqlsh> select * from system.schema_keyspaces; - cqlsh を終了します。
cqlsh> exit
- Cassandra cqlsh ユーティリティを起動します。
- dc-1 のすべての Cassandra ノードで次の nodetool コマンドを実行して、メモリを解放します。
> /opt/apigee/apigee-cassandra/bin/nodetool -h cassandraIP cleanup - データセンター全体でサポートする組織と環境ごとに、次の操作を行います。
- dc-1 の Management Server ノードで、新しい MP_POD を組織に追加します。
> apigee-adminapi.sh orgs pods add -o orgName -r dc-2 -p gateway-2 --admin adminEmail --pwd adminPword --host localhost
Gateway - 新しい Message Processor を組織と環境に追加します。
- dc-2 の Management Server ノードで、dc-2 の Message Processor ノードの UUID を取得します。
> apigee-adminapi.sh server list -r dc-2 -p gateway-2 -t message-processor --admin adminEmail --pwd adminPword --host localhost
返された UUID データの最後に表示されます。これらの値を保存します。 - dc-1 の Management Server ノードで、dc-2 の各 Message Processor を組織の環境に追加します。
> apigee-adminapi.sh orgs envs server add -o orgName -e envName -u UUID --admin adminEmail --pwd adminPword --host localhost
- dc-2 の Management Server ノードで、dc-2 の Message Processor ノードの UUID を取得します。
- dc-1 の Management Server ノードで、組織を確認します。
> apigee-adminapi.sh orgs apis deployment -o orgName -a apiProxyName --admin adminEmail --pwd adminPword --host localhost
ここで、apiProxyName は組織にデプロイされた API プロキシの名前です。
- dc-1 の Management Server ノードで、新しい MP_POD を組織に追加します。