本節將透過建立 Cassandra 的方式,提供 Cassandra 資源調度作業的一般指引 適用於 Private Cloud 機架感知的
如要進一步瞭解為何需要讓 Cassandra 環狀機架感知重要,請參閱以下資訊: 資源:
- 複製 (Cassandra 說明文件)
- Cassandra 建築複製因素策略
什麼是機架?
Cassandra 機架是環狀的 Cassandra 節點分組。Cassandra 使用機架,確保備用資源會分配到不同的邏輯群組。身為 因此作業只會傳送至一個節點,也可傳送多個節點 (每個節點都位於獨立機架上), 以獲得更高的容錯能力與可用性。
本節中的範例使用三個 Cassandra 機架,也就是 在實際工作環境拓撲中支援 Apigee
在 Private Cloud 適用的 Apigee Edge 中,預設安裝 Cassandra 是假設單一邏輯機架和所有 資料中心內資料中心的節點雖然這項設定容易安裝及管理 如果其中一個節點上的作業失敗,則可能會失敗。
下圖顯示 Cassandra 環的預設設定:
![1 個機架含 3 個節點](https://docs.apigee.com/static/private-cloud/images/cassandra-3nodes1rack.png?authuser=1&hl=zh-tw)
在更穩健的設定中,系統會將每個節點指派給個別的機架和作業 也會在各機架上的備用資源執行
下圖顯示一個 3 個節點的環。這張圖片顯示作業的順序 跨越圓環 (順時針方向) 複製而來,並突顯出沒有兩個節點都在同一步 機架:
![3 個機架,每個機架有 1 個節點](https://docs.apigee.com/static/private-cloud/images/cassandra-3nodering.png?authuser=1&hl=zh-tw)
在這項設定中,作業會傳送至節點,但也會傳送至該節點的備用資源 在其他機架上 (依順時針順序)。
新增機架感知 (含有 3 個節點)
Apigee Edge for Private Cloud 的所有實際工作環境安裝拓撲都至少有三個 Cassandra 節點,這個部分是本節 統稱為「IP1」、「IP2」和「IP3」。按照預設,這些節點都位於同一個機架中 「ra-1」。
本節說明如何將 Cassandra 節點指派給個別機架,以便所有作業 都會傳送到環形中個別邏輯群組內的備用資源節點。
如要在安裝期間將 Cassandra 節點指派給不同機架:
- 執行安裝程式之前,請登入 Cassandra 節點並開啟
下列靜音設定檔進行編輯:
/opt/silent.conf
若檔案不存在,請務必建立「apigee」將使用者視為擁有者
- 編輯
CASS_HOSTS
屬性,這是以空格分隔的 IP 位址清單 (非 DNS 或 主機名稱項目) 使用的語法如下:CASS_HOSTS="IP_address:data_center_number,rack_number [...]"
預設值為三個節點 Cassandra 環,每個節點都指派給機架 1 和資料 如以下範例所示:
CASS_HOSTS="IP1:1,1 IP2:1,1 IP3:1,1"
- 變更機架指派,以便指派節點 2 指派給機架 2 和節點 3
機架 3,如以下範例所示:
CASS_HOSTS="IP1:1,1 IP2:1,2 IP3:1,3"
透過變更機架指派,您將指示 Cassandra 建立兩個額外的邏輯 分組 (機架),就會提供備用資源來接收伺服器接收的所有作業 第一個節點
如要進一步瞭解如何使用
CASS_HOSTS
設定屬性,請參閱 邊緣設定檔參考資料。 - 將變更儲存至設定檔,然後執行下列指令來安裝
含有更新設定的 Cassandra:
/opt/apigee/apigee-setup/bin/setup.sh -p c -f path/to/silent/config
例如:
/opt/apigee/apigee-setup/bin/setup.sh -p c -f /opt/silent.conf
- 按照節點順序,對環形中的每個 Cassandra 節點重複執行這項程序
已在
CASS_HOSTS
屬性中指派。在這種情況下,您必須安裝 Cassandra 順序:- 節點 1 (IP1)
- 節點 2 (IP2)
- 節點 3 (IP3)
安裝完成後,您應檢查 Cassandra 設定。
檢查 Cassandra 設定
安裝機架感知 Cassandra 設定後,您可以檢查節點是否
透過 nodetool status
指令指派至不同機架,
範例如下:
/opt/apigee/apigee-cassandra/bin/nodetool status
(請在其中一個 Cassandra 節點上執行這個指令)。
結果應會如下所示,其中的 Rack 資料欄 會顯示各節點的不同機架 ID:
Datacenter: dc-1 ======================== Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns Host ID Rack UN IP1 737 MB 256 ? 554d4498-e683-4a53-b0a5-e37a9731bc5c ra-1 UN IP2 744 MB 256 ? cf8b7abf-5c5c-4361-9c2f-59e988d52da3 ra-2 UN IP3 723 MB 256 ? 48e0384d-738f-4589-aa3a-08dc5bd5a736 ra-3
如果您為 Cassandra 啟用 JMX 驗證,也必須傳送使用者名稱,
密碼傳送給 nodetool
。若需更多資訊,請參閲
使用 nodetool 管理叢集節點。
安裝六個節點環
如需額外的備援功能,您可以將 Cassandra 環延伸至六個節點。在這個範例中 分別指派兩個節點給三個機架。這項設定需要額外的三個節點: 節點 4 (IP4)、節點 5 (IP5) 和節點 6 (IP6)。
下圖顯示了跨環形複製作業的順序 (順時針) 並強調在複製過程中,沒有任何兩個相鄰節點位於相同的事實 機架:
![3 個機架,每個機架有 2 個節點](https://docs.apigee.com/static/private-cloud/images/cassandra-6nodering.png?authuser=1&hl=zh-tw)
在此設定中,每個節點還有兩個備用資源:分別在另外兩個機架中。適用對象 舉例來說,機架 1 中的節點 1 在 Rack 2 和 Rack 3 中具有備用資源。傳送到節點 1 的作業也 按照順時針順序傳送至其他機架中的備用資源。
如要擴充包含六個節點 Cassandra 圓環的三個節點 Cassandra 環,請在 :
CASS_HOSTS="IP1:1,1 IP4:1,3 IP2:1,2 IP5:1,1 IP3:1,3 IP6:1,2"
與三個節點環一樣,您必須按照節點的順序安裝 Cassandra
在 CASS_HOSTS
屬性中顯示:
- 節點 1 (IP1)
- 節點 4 (IP4)*
- 節點 2 (IP2)
- 節點 5 (IP5)
- 節點 3 (IP3)
- 節點 6 (IP6)
* 在執行設定公用程式「之前」,在無訊息設定檔中進行變更 第 4 個節點 (以 Cassandra 安裝順序排列的第二部機器)。
展開至 12 個節點
如要進一步提高容錯能力和可用性,您可以增加 Cassandra 的數量 將數量從 6 到 12 個這項設定需要額外的六個節點 (IP7 到 IP12)。
下圖顯示了跨環形複製作業的順序 (順時針) 並強調在複製過程中,沒有任何兩個相鄰節點位於相同的事實 機架:
![3 個機架,每個機架有 4 個節點](https://docs.apigee.com/static/private-cloud/images/cassandra-12nodering.png?authuser=1&hl=zh-tw)
安裝 12 節點環與安裝三或六個節點環的程序類似:
將 CASS_HOSTS
設為指定值,然後按指定順序執行安裝程式。
如要展開為 12 個節點的 Cassandra 環,請以下列在無訊息內容中的方式設定節點 設定檔:
CASS_HOSTS="IP1:1,1 IP7:1,2 IP4:1,3 IP8:1,1 IP2:1,2 IP9:1,3 IP5:1,1 IP10:1,2 IP3:1,3 IP11:1,1 IP6:1,2 IP12:1,3"
就像使用三節點與六個節點環一樣,您必須依序在節點上執行安裝程式。 節點中的節點會顯示在設定檔中:
- 節點 1 (IP1)
- 節點 7 (IP7)*
- 節點 4 (IP4)
- 節點 8 (IP8)
- 節點 2 (IP2)
- 節點 9 (IP9)
- 節點 5 (IP5)
- 節點 10 (IP10)
- 節點 3 (IP3)
- 節點 11 (IP11)
- 節點 6 (IP6)
- 節點 12 (IP12)
* 您必須進行這些變更,才能在第 7 個節點 (第二節點) 安裝 Apigee Edge for Private Cloud )。