新增 Cassandra 節點

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

  • 為減少串流並維持平衡的環,Cassandra 環中節點的現有位置不應變更。
  • 所有資料中心的節點數量必須一致。

為了達成第一個目標,每次新增節點時,請務必將 Cassandra 叢集中的節點數量加倍。

舉例來說,如果您一開始採用標準的 12 節點叢集安裝程序拓撲,並分散在兩個資料中心,則總共有六個 Cassandra 節點,每個資料中心各有三個。如要擴充這個叢集,請在每個資料中心新增三個節點,將節點總數增加到 12 個 (每個資料中心有六個節點)。如果需要進一步擴充,請在每個資料中心額外新增六個節點,總節點數量為 24 (每個資料中心 12 個節點)。

本文件提供操作說明,說明如何在現有的 Edge for Private Cloud 安裝中新增三個 Cassandra 節點。您可以按照相同步驟新增其他節點。請務必確保在擴充叢集時,節點數量會加倍。

如需 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 節點

在本例中,三個新的 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. 依照「安裝 Edge apigee-setup 公用程式」一文的說明,在第一個節點上安裝 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 節點重複執行這個步驟。

重新設定管理伺服器

在管理伺服器節點上

  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

這個指令可指出是否正在執行原生傳輸 (或二進位通訊協定),讓 Cassandra 接受新的用戶端要求。

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

這項指令會指出原生傳輸 (或二進位通訊協定) 是否正在執行。

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

這個指令會顯示新節點是否使用與舊節點相同的架構版本。

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