將 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 節點上:
- 使用「-p c」重新執行 setup.sh建立設定檔與新設定檔:
/opt/apigee/apigee-setup/bin/setup.sh -p c -f updatedConfigFile
在新的節點上安裝 Cassandra
請按照以下程序在新節點上安裝 Cassandra。
在每個新的 Cassandra 節點上:
- 在三個節點上安裝 Cassandra:
- 在以下裝置上安裝「
apigee-setup
」 請參閱安裝 Edge Apigee-setup 公用程式。 - 使用更新的設定檔在第一個節點上安裝 Cassandra:
/opt/apigee/apigee-setup/bin/setup.sh -p c -f updatedConfigFile
- 對其他新的 Cassandra 節點重複這兩個步驟。
- 在以下裝置上安裝「
- 重建三個新的 Cassandra 節點,並將區域名稱指定為資料中心
新增節點的所屬節點 (
dc-1
、dc-2
等)。 在這個範例中為dc-1
:- 在第一個節點上執行:
/opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h nodeIP rebuild dc-1
其中 nodeIP 是 Cassandra 節點的 IP 位址。
只有在下列情況下,您才需要傳送使用者名稱和密碼 為 Cassandra 啟用 JMX 驗證。
- 在其餘的新 Cassandra 節點上重複執行這個步驟。
- 在第一個節點上執行:
重新設定管理伺服器
在 Management-Server 節點上
- 重新執行 setup.sh,為新增的 Cassandra 節點更新管理伺服器:
/opt/apigee/apigee-setup/bin/setup.sh -p ms -f updatedConfigFile
重新啟動所有路由器和訊息 處理器
- 在所有路由器上:
/opt/apigee/apigee-service/bin/apigee-service edge-router restart
- 在所有訊息處理器上:
/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 使用情形說明文件。