新增資料中心

Private Cloud v. 4.17.01 版

本文說明如何在現有資料中新增資料中心 (又稱為「區域」) 中央。

新增資料中心前的考量事項

安裝之前,請務必瞭解如何設定 OpenLDAP, 可以跨資料中心使用 ZooKeeper、Cassandra 和 Postgres 伺服器。您也必須確保 兩個資料中心的節點之間會開啟必要的通訊埠。

  • OpenLDAP
    每個資料中心都有自己的 OpenLDAP 伺服器,而且已設定複製功能。當您 安裝新的資料中心,您必須將 OpenLDAP 設為使用複製功能,並且 請在現有資料中心重新設定 OpenLDAP 伺服器,才能使用複製功能。
  • ZooKeeper
    針對以下項目的 ZK_HOSTS 屬性: 請同時指定這兩個資料中心內所有 ZooKeeper 節點的 IP 位址或 DNS 名稱 並以「:observer」修飾符標記任何節點 不含「:observer」修飾符的節點稱為「voters」。一定是奇數 「選民」人數配置狀態

    在這個拓撲中,主機 9 的 ZooKeeper 主機是觀察器:



    在下列設定檔範例中,節點 9 標有 「:observer」修飾符,可以有五位投票者:節點 1、2、3、7 和 8。

    針對 ZK_CLIENT_HOSTS 屬性,請僅指定 ZooKeeper 的 IP 位址或 DNS 名稱 資料中心中的所有 ZooKeeper 節點,以相同的順序排列 中央。
  • Cassandra
    所有資料中心的 Cassandra 節點數量都必須相同。

    適用於每項資料的 CASS_HOSTS 中心,請務必為兩項資料指定所有 Cassandra IP 位址 (而非 DNS 名稱) 例如 AI 開發原則針對資料中心 1,請先列出該資料中心的 Cassandra 節點。資料中心適用 2,請先列出該資料中心內的 Cassandra 節點。列出相同的 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.124.205:2,1 192.168.124.206:2,1 吋

    每個資料中心在機架/供應可用區 1 中的第一個節點將做為種子使用 伺服器在這個部署模型中,Cassandra 設定看起來會像這樣:


  • Postgres
    根據預設,Edge 會在主模式中安裝所有 Postgres 節點。不過 資料中心,請將 Postgres 節點設為使用主要執行個體待命複製功能, 主要節點故障,待命節點可以繼續提供流量。通常您需要設定 一個位於一個資料中心的主要 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 中的舊 Standby Postgres 節點

  • 通訊埠需求
    您必須確保必要的通訊埠在兩個資料中心的節點之間開啟。 如需通訊埠圖表,請參閱安裝 相關規定

更新現有的資料中心

新增資料中心時,您必須執行安裝及設定新資料的步驟 但也需要更新原始資料中心中的節點。這些 因為您要在新的 Cassandra 和 ZooKeeper 節點中新增 Cassandra 和 ZooKeeper 節點,因此需要修改 資料中心必須可供現有資料中心存取,且必須重新設定 以便使用複製功能。

建立設定檔

以下顯示兩座資料中心的無訊息設定檔,其中各資料 Center 有 6 個節點,如安裝 拓撲。請注意,dc-1 的設定檔新增了其他設定:

  • 設定在兩個 OpenLDAP 節點間複製的 OpenLDAP。
  • 將新的 Cassandra 和 ZooKeeper 節點從 dc-2 新增至 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
# 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

新增資料中心的程序

在此程序中,資料中心的名稱為:

  • dc-1:現有的資料中心
  • dc-2:新的資料中心
  1. 在 dc-1 上,使用新 dc-1 重新在原始 Cassandra 節點上執行 setup.sh 含 dc-2 中的 Cassandra 節點的衝突檔案:
    /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile1
  2. 在 dc-1 上,重新在管理伺服器節點上執行 setup.sh:
    &gt; /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile1
  3. 在 dc-2 上,在所有節點上安裝 apigee-setup。詳情請參閱安裝 Edge apigee-setup 公用程式。 資訊
  4. 在 dc-2 上,在適當的節點上安裝 Cassandra 和 ZooKeeper:
    /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile2
  5. 在 dc-2 上,於所有 Cassandra 節點上執行重新建構指令,並指定 dc-1 的區域名稱:
    &gt; /opt/apigee/apigee-cassandra/bin/nodetool -h cassIP 重建。 dc-1
  6. 在 dc-2 上,在適當的節點上安裝管理伺服器:
    &gt; /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile2
  7. 在 dc-2 上,於適當的安裝路徑和訊息處理器 節點數:
    &gt; /opt/apigee/apigee-setup/bin/setup.sh -p rmp -f configFile2
  8. 在 dc-2 上,在適當的節點上安裝 Qpid:
    &gt; /opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile2
  9. 在 dc-2 上,在適當的節點上安裝 Postgres:
    &gt; /opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile2
  10. 設定 Postgres 節點的 Postgres 主要執行個體/待命。dc-1 中的 Postgres 節點是 而 dc-2 中的 Postgres 節點是待命伺服器。

    注意:如果 dc-1 已設為有兩個 Postgres 在主要/待命模式下執行的節點,並且作為此程序的一部分,使用 dc-1 中的現有主要 Postgres 節點做為主要節點, dc-2 中的 Postgres 節點做為待命伺服器。在這項程序的後續階段中 將取消註冊 dc-1 中的現有 Postgres 待命伺服器。
    1. dc-1 的主要節點上,編輯以下設定檔進行設定:
      PG_MASTER=IPorDNSofDC1Master
      PG_STANDBY=IPorDNSofDC2Standby
    2. 啟用新主要執行個體的複製功能:
      &gt; /opt/apigee/apigee-service/bin/apigee-postgresql setup-replication-on-master -f configFIle
    3. dc-2 的待命節點上,編輯以下設定檔進行設定:
      PG_MASTER=IPorDNSofDC1Master
      PG_STANDBY=IPorDNSofDC2Standby
    4. dc-2 的待命節點上,停止伺服器,然後刪除任何 現有 Postgres 資料:
      &gt; /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
      &gt;rm -rf /opt/apigee/data/apigee-postgresql/

      注意:如有需要,您可以先備份這些資料再刪除。
    5. dc-2 中設定待命節點:
      &gt; /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
  11. 在 dc-1 上更新 Analytics 設定並設定機構。
    1. 在 dc-1 的 Management Server 節點上,取得 Postgres 的 UUID 節點:
      &gt;apigee-adminapi.sh 伺服器 list -r dc-1 -p analytics -t postgres-server --admin adminEmail --pwd adminPword --host localhost

      UUID 會顯示在傳回資料的結尾處。儲存該值。

      注意:如果 dc-1 設為有兩個 Postgres 節點運作, 主要執行個體/待命模式,您會在輸出結果中看到兩個 IP 位址和 UUID。儲存兩個 UUID。 您應能從 IP 中判斷哪個 UUID 用於主要執行個體,以及哪些適用於 待命節點
    2. 在 dc-2 的 Management Server 節點上,取得 Postgres 的 UUID 如前一步驟所示儲存該值。
    3. 在 dc-1 的管理伺服器節點上,找出 數據分析和用戶群組以下許多指令都需要這項資訊。
      根據預設,分析群組名稱為 axgroup-001,以及用戶的名稱 則是 consumer-group-001在區域的靜音設定檔中,您可以設定名稱 AXGROUP 屬性建立數據分析群組的資料。

      如果您不確定數據分析資料或消費者群組名稱,請使用下列指令 顯示指令:
      &gt;apigee-adminapi.sh 數據分析 群組清單 --admin adminEmail --pwd adminPword --host localhost

      這個指令會傳回「name」欄位的 Analytics 群組名稱,以及消費端群組 。
    4. 在「管理伺服器 dc-1 的節點」上,移除現有的 Postgres 伺服器:
      1. 從 consumer-group 中移除 Postgres 節點:
        &gt;apigee-adminapi.sh 分析群組 consumer_groups 資料儲存庫移除 -g axgroup-001 -c consumer-group-001 -u UUID -Y --admin adminEmail --pwd adminPword --host localhost

        如果 dc-1 設為在以下環境中執行兩個 Postgres 節點: 主節點/待機模式,請移除以下兩者:
        &gt;apigee-adminapi.sh 分析群組 consumer_groups 資料儲存庫移除 -g axgroup-001 -c consumer-group-001 -u "UUID_1,UUID_2" -Y --admin adminEmail --pwd adminPword --host localhost
      2. 從數據分析群組中移除 Postgres 節點:
        &gt;apigee-adminapi.sh Analytics 群組 postgres_server remove -g axgroup-001 -u UUID -Y --admin adminEmail --pwd adminPword --host localhost

        如果 dc-1 設為透過主要/待命模式執行兩個 Postgres 節點,請移除 兩者:
        &gt;apigee-adminapi.sh Analytics 群組 postgres_server remove -g axgroup-001 -u UUID1,UUID2 -Y --admin adminEmail --pwd adminPword --host localhost
    5. 在 dc-1 的 Management Server 節點上新增主要/待命節點 傳送至分析群組的 Postgres 伺服器:
      1. 將兩個 Postgres 伺服器新增至分析群組:
        &gt;apigee-adminapi.sh Analytics 群組 postgres_server add -g axgroup-001 -u「UUID_1,UUID_2」 --admin adminEmail --pwd adminPword --host localhost

        其中 UUID_1 對應於 dc-1UUID_2 會對應至待命 Postgres dc-2 中的節點。
      2. 將 PG 伺服器新增至取用端群組,做為主要/待命伺服器:
        &gt;apigee-adminapi.sh 分析群組 consumer_groups 資料儲存庫新增 -g axgroup-001 -c consumer-group-001 -u 「UUID_1,UUID_2」--admin adminEmail --pwd adminPword --host localhost
    6. 將 Qpid 伺服器從 dc-2 新增至數據分析群組:
      1. 在 dc-1 的 Management Server 節點上,取得 Qpid 的 UUID dc-2 中的節點:
        &gt;apigee-adminapi.sh 伺服器清單 -r dc-2 -p central -t qpid-server --admin adminEmail --pwd adminPword --host localhost

        UUID 會顯示在傳回資料的結尾處。儲存這些值。
      2. 在 dc-1 的 Management Server 節點上,將 Qpid 節點新增至 Analytics 群組:
        &gt;apigee-adminapi.sh Analytics 群組 qpid_server add -g axgroup-001 -u UUID_1 --admin adminEmail --pwd adminPword --host localhost
        >apigee-adminapi.sh 數據分析群組 qpid_server add -g axgroup-001 -u UUID_2 --admin adminEmail --pwd adminPword --host localhost
      3. 在 dc-1 的 Management Server 節點上,將 Qpid 節點新增至 用戶群組:
        &gt;apigee-adminapi.sh 分析群組 consumer_groups 消費者 add -g axgroup-001 -c consumer-group-001 -u "UUID_1,UUID_2" --admin adminEmail --pwd adminPword --host localhost
    7. 從 dc-1 取消註冊並刪除舊的 Postgres 待命伺服器:
      1. 取消註冊現有的 dc-1 Postgres 待命伺服器:
        &gt;apigee-adminapi.sh 伺服器取消註冊 -u UUID -r dc-1 -p analytics -t postgres-server -Y --admin adminEmail --pwd adminPword --host localhost

        其中 UUID 是舊的待命執行個體 Postgres 節點 (位於 dc-1)。
      2. 刪除現有的 dc-1 Postgres 待命伺服器:
        注意:這個指令不會解除安裝 Postgres 伺服器節點。這項服務 只會將其從 Edge 節點清單中移除您之後可以前往下列網站解除安裝 Postgres: 節點 (如有需要的話)
        &gt;apigee-adminapi.sh 伺服器刪除 -u UUID --admin adminEmail --pwd adminPword --host localhost
  12. 使用正確的複製係數更新兩個資料中心的 Cassandra 索引鍵空間。個人中心 這個步驟只需要在任一資料中心的任何 Cassandra 伺服器上執行一次:

    注意:下列所有指令都會將複製係數設為「3」,表示 叢集內的三個 Cassandra 節點進行安裝時,請視需要修改這個值。
    1. 啟動 Cassandra cqlsh 公用程式:
      &gt; /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. 在「cqlsh>」執行下列 CQL 指令設定複製作業的提示 Cassandra 索引鍵空間的層級:
      1. cqlsh&gt;替代 KEYSPACE「identityzone」WITH 複製 = { 'class': 'NetworkTopologyStrategy', 「dc-1」:'3','dc-2': '3'};
      2. cqlsh&gt;替代命名空間 「system_traces」WITH 複製 = { 'class': 'NetworkTopologyStrategy', 'dc-1': 「3','dc-2」:'3'};
      3. 使用下列指令查看索引鍵空間:
        cqlsh&gt;從中選取 * system.schema_keyspaces;
      4. 離開 cqlsh:
        cqlsh&gt;結束
  13. 為釋出記憶體的 dc-1 中的所有 Cassandra 節點執行下列 nodetool 指令:
    &gt; /opt/apigee/apigee-cassandra/bin/nodetool -h cassandraIP 資源清理
  14. 針對您要在各資料上支援的每個機構和環境建立指標 中心:
    1. 在 dc-1 的管理伺服器節點上,將新的 MP_POD 新增至 機構:
      &gt;apigee-adminapi.sh 機構 Pod add -o orgName -r dc-2 -p gateway-2 --admin adminEmail --pwd adminPword --host localhost

      其中 gateway-2 是 MP_POD 定義的閘道 Pod 名稱 屬性。
    2. 將新的訊息處理器新增至機構和環境:
      1. 在 dc-2 的 Management Server 節點上,取得 dc-2 中的訊息處理器節點:
        &gt;apigee-adminapi.sh 伺服器清單 -r dc-2 -p gateway-2 -t message-processor --admin adminEmail --pwd adminPword --host localhost

        UUID 會顯示在傳回資料的結尾處。儲存這些值。
      2. 在 dc-1 的 Management Server 節點上 (個別訊息處理器) 位於 dc-2 內,將「訊息處理器」新增至機構的環境:
        &gt;apigee-adminapi.sh 機構 envs 伺服器 add -o orgName -e envName -u UUID --admin adminEmail --pwd adminPword --host localhost
    3. 在 dc-1 的管理伺服器節點上檢查機構:
      &gt;apigee-adminapi.sh orgs API Deploy -o orgName -a apiProxyName --admin adminEmail --pwd adminPword --host localhost

      其中 apiProxyName 是部署在 並根據貴機構的使命 價值觀和目標進行調整