新增 Cassandra 節點

將 Cassandra 節點新增至叢集時,請務必考慮下列兩個重點:

  • Cassandra 環中的節點現有位置不應變更,以將串流作業降到最低,並維持平衡的環狀。
  • 所有資料中心中的節點數量均須保持一致。

為確保第一個目標,每次新增節點時,Cassandra 叢集內的節點數量就必須加倍。

舉例來說,如果您一開始從分散於兩個資料中心的標準 12 節點叢集安裝拓撲開始,則總共將有六個 Cassandra 節點 (每個資料中心有 3 個)。如要擴展這個叢集,請為每個資料中心新增三個節點,這樣的總節點數就會增加到 12 個 (每個資料中心的 6 個節點)。如果必須進一步擴充,請為每個資料中心額外新增六個節點,這樣總共有 24 個節點 (每個資料中心 12 個節點)。

本文件說明如何將三個新的 Cassandra 節點新增至 Private Cloud 安裝的現有 Edge。您可以按照相同的步驟新增更多節點。請務必確保擴充叢集時,節點數量是兩倍。

如需 Cassandra 節點的系統需求清單,請參閱安裝規定一節。

現有 Edge 設定

實際工作環境系統支援的所有 Edge 拓撲都指定為使用三個 Cassandra 節點。這三個節點已指定至設定檔中的 CASS_HOSTS 屬性 如下所示:

IP1=10.10.0.1
IP2=10.10.0.2
IP3=10.10.0.3
HOSTIP=$(hostname -i)
ADMIN_EMAIL=opdk@google.com
APIGEE_ADMINPW=Secret123
LICENSE_FILE=/tmp/license.txt
MSIP=$IP1 
USE_LDAP_REMOTE_HOST=n
LDAP_TYPE=1
APIGEE_LDAPPW=secret
MP_POD=gateway
REGION=dc-1
ZK_HOSTS="$IP1 $IP2 $IP3"
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" 
SKIP_SMTP=n
SMTPHOST=smtp.example.com
SMTPUSER=smtp@example.com
SMTPPASSWORD=smtppwd

請注意,REGION 屬性會將區域名稱指定為「dc-1」。必須 相關資訊

修改要新增的設定檔 三個新的 Cassandra 節點

在這個範例中,三個新的 Cassandra 節點位於以下 IP 位址:

  • 10.10.0.14
  • 10.10.0.15
  • 10.10.0.16

您必須先更新 Edge 設定檔才能新增節點:

IP1=10.10.0.1
IP2=10.10.0.2
IP3=10.10.0.3
# Add the new node IP addresses.
IP14=10.10.0.14
IP15=10.10.0.15
IP16=10.10.0.16
HOSTIP=$(hostname -i)
ADMIN_EMAIL=opdk@google.com
...
# Update CASS_HOSTS to add each new node after an existing nodes. 
# Must use IP addresses for CASS_HOSTS, not DNS names.
CASS_HOSTS="$IP1:1,1 $IP14:1,1 $IP2:1,1 $IP15:1,1 $IP3:1,1 $IP16:1,1" 
敬上

這麼做可確保現有節點保留初始權杖設定和初始權杖 每個新節點的符記值落在現有節點的符記值之間

設定 Edge

編輯設定檔後,您必須:

  • 重新設定現有的 Cassandra 節點
  • 在新的節點上安裝 Cassandra
  • 重新設定管理伺服器

重新設定現有的 Cassandra 節點

在現有的 Cassandra 節點上:

  1. 使用「-p c」重新執行 setup.sh建立設定檔與新設定檔:
    /opt/apigee/apigee-setup/bin/setup.sh -p c -f updatedConfigFile

在新的節點上安裝 Cassandra

請按照以下程序在新節點上安裝 Cassandra。

在每個新的 Cassandra 節點上:

  1. 在三個節點上安裝 Cassandra:
    1. 在以下裝置上安裝「apigee-setup」 請參閱安裝 Edge Apigee-setup 公用程式
    2. 使用更新的設定檔在第一個節點上安裝 Cassandra:
      /opt/apigee/apigee-setup/bin/setup.sh -p c -f updatedConfigFile
    3. 對其他新的 Cassandra 節點重複這兩個步驟。
  2. 重建三個新的 Cassandra 節點,並將區域名稱指定為資料中心 新增節點的所屬節點 (dc-1dc-2 等)。 在這個範例中為 dc-1
    1. 在第一個節點上執行:
      /opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h nodeIP rebuild dc-1

      其中 nodeIP 是 Cassandra 節點的 IP 位址。

      只有在下列情況下,您才需要傳送使用者名稱和密碼 為 Cassandra 啟用 JMX 驗證

    2. 在其餘的新 Cassandra 節點上重複執行這個步驟。

重新設定管理伺服器

在 Management-Server 節點上

  1. 重新執行 setup.sh,為新增的 Cassandra 節點更新管理伺服器:
    /opt/apigee/apigee-setup/bin/setup.sh -p ms -f updatedConfigFile

重新啟動所有路由器和訊息 處理器

  1. 在所有路由器上:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  2. 在所有訊息處理器上:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

現有可用磁碟空間 Cassandra 節點

新增節點後,您可以在nodetool cleanup 以釋出磁碟空間。這個指令會清除 長久保留原本的 Cassandra 節點物件

如要在新增節點後釋出既有的 Cassandra 節點磁碟空間,請執行 以下指令:

/opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassandraIP cleanup

只有在下列情況下,您才需要傳送使用者名稱和密碼 為 Cassandra 啟用 JMX 驗證

驗證重新建構

請使用下列指令確認重新建構作業是否成功:

nodetool [-u username -pw password] -h nodeIP netstats

這個指令應指示 MODE: Normal 節點已啟動且索引 建構應用程式

nodetool [-u username -pw password] -h nodeIP statusthrift

應表示等待伺服器正在執行,讓 Cassandra 接受新的用戶端 要求。

nodetool [-u username -pw password] -h nodeIP statusbinary

應表示原生傳輸 (或「二進位通訊協定」) 正在運作。

nodetool [-u username -pw password] -h nodeIP describecluster

應該會顯示新節點使用與舊節點相同的結構定義版本。

如要進一步瞭解如何使用 nodetool,請參閱 nodetool 使用情形說明文件