本節提供在 Apigee Edge 上偵測私有雲機架的 Cassandra,提供有關 Cassandra 資源調度作業的一般指南。
如需進一步瞭解為何讓 Cassandra 環架感知到這點很重要,請參閱下列資源:
- 複製 (Cassandra 說明文件)
- Cassandra 架構和複製係數策略
什麼是機架?
Cassandra 機架是環中的 Cassandra 節點邏輯群組。Cassandra 使用機架,確保備用資源能在不同邏輯群組之間分散。因此,作業不只是一個節點,而是多個節點,每個節點都位於獨立的機架上,提供更高的容錯能力和可用性。
本節中的範例使用三個 Cassandra 機架,也就是 Apigee 在實際工作環境拓撲中支援的機架數量。
預設在 Apigee Edge 中安裝 Cassandra 時,預設會安裝單一邏輯機架,並將所有節點放在資料中心內。雖然這種設定容易安裝及管理,但如果其中一個節點上的作業失敗,就有可能會失敗。
下圖顯示 Cassandra 環的預設設定:
在較可靠的設定中,每個節點會指派給個別機架,系統也會在各個機架的備用資源上執行作業。
下圖顯示有 3 個節點的環。這張圖片顯示運算跨環複製的順序 (順時針),並強調沒有兩個節點位於同一個機架上:
在這樣的設定中,作業會傳送至節點,但也會傳送至該節點在其他機架上 (依順時針順序) 的備用資源。
新增機架感知功能 (含 3 個節點)
適用於私有雲的 Apigee Edge 正式安裝拓撲有至少三個 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 和資料中心 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
設定屬性,請參閱 Edge 設定檔參考資料。 - 將變更儲存至設定檔,然後執行下列指令,使用更新後的設定安裝 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
- 按照
CASS_HOSTS
屬性中指派節點的順序,對環中的每個 Cassandra 節點重複這項程序。在這種情況下,您必須按照下列順序安裝 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)。
下圖顯示運算跨環 (順時針) 複製的順序,並強調在複製過程中,兩個相鄰節點未位於同一個機架上:
在這項設定中,每個節點還有兩個備用資源,分別位於另外兩個機架中。例如,機架 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"
與三節點環一樣,您必須按照 CASS_HOSTS
屬性中顯示的節點順序安裝 Cassandra:
- 節點 1 (IP1)
- 節點 4 (IP4)*
- 節點 2 (IP2)
- 節點 5 (IP5)
- 節點 3 (IP3)
- 節點 6 (IP6)
* 在第四個節點 (採用 Cassandra 安裝順序的第二台機器) 上執行設定公用程式之前,請在靜音設定檔中進行變更。
展開至 12 個節點
如要進一步提高容錯能力和可用性,您可以將環中的 Cassandra 節點數量從六個增加到 12。這項設定需要額外的六個節點 (IP7 至 IP12)。
下圖顯示運算跨環 (順時針) 複製的順序,並強調在複製過程中,兩個相鄰節點未位於同一個機架上:
安裝 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 個節點 (以 Cassandra 安裝順序中的第二部機器) 安裝 Apigee Edge 以私有雲。