新增 Cassandra 機架支援

本節將透過建立 Cassandra 的方式,提供 Cassandra 資源調度作業的一般指引 適用於 Private Cloud 機架感知的

如要進一步瞭解為何需要讓 Cassandra 環狀機架感知重要,請參閱以下資訊: 資源:

什麼是機架?

Cassandra 機架是環狀的 Cassandra 節點分組。Cassandra 使用機架,確保備用資源會分配到不同的邏輯群組。身為 因此作業只會傳送至一個節點,也可傳送多個節點 (每個節點都位於獨立機架上), 以獲得更高的容錯能力與可用性。

本節中的範例使用三個 Cassandra 機架,也就是 在實際工作環境拓撲中支援 Apigee

在 Private Cloud 適用的 Apigee Edge 中,預設安裝 Cassandra 是假設單一邏輯機架和所有 資料中心內資料中心的節點雖然這項設定容易安裝及管理 如果其中一個節點上的作業失敗,則可能會失敗。

下圖顯示 Cassandra 環的預設設定:

1 個機架含 3 個節點
(圖 1) 預設設定:單一叢集中所有節點 機架

在更穩健的設定中,系統會將每個節點指派給個別的機架和作業 也會在各機架上的備用資源執行

下圖顯示一個 3 個節點的環。這張圖片顯示作業的順序 跨越圓環 (順時針方向) 複製而來,並突顯出沒有兩個節點都在同一步 機架:

3 個機架,每個機架有 1 個節點
(圖 2) Rack 感知設定:三個節點,每個節點一個 機架

在這項設定中,作業會傳送至節點,但也會傳送至該節點的備用資源 在其他機架上 (依順時針順序)。

新增機架感知 (含有 3 個節點)

Apigee Edge for Private Cloud 的所有實際工作環境安裝拓撲都至少有三個 Cassandra 節點,這個部分是本節 統稱為「IP1」、「IP2」和「IP3」。按照預設,這些節點都位於同一個機架中 「ra-1」。

本節說明如何將 Cassandra 節點指派給個別機架,以便所有作業 都會傳送到環形中個別邏輯群組內的備用資源節點。

如要在安裝期間將 Cassandra 節點指派給不同機架:

  1. 執行安裝程式之前,請登入 Cassandra 節點並開啟 下列靜音設定檔進行編輯:
    /opt/silent.conf

    若檔案不存在,請務必建立「apigee」將使用者視為擁有者

  2. 編輯 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"
  3. 變更機架指派,以便指派節點 2 指派給機架 2 和節點 3 機架 3,如以下範例所示:
    CASS_HOSTS="IP1:1,1 IP2:1,2 IP3:1,3"

    透過變更機架指派,您將指示 Cassandra 建立兩個額外的邏輯 分組 (機架),就會提供備用資源來接收伺服器接收的所有作業 第一個節點

    如要進一步瞭解如何使用 CASS_HOSTS 設定屬性,請參閱 邊緣設定檔參考資料

  4. 將變更儲存至設定檔,然後執行下列指令來安裝 含有更新設定的 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
  5. 按照節點順序,對環形中的每個 Cassandra 節點重複執行這項程序 已在 CASS_HOSTS 屬性中指派。在這種情況下,您必須安裝 Cassandra 順序:
    1. 節點 1 (IP1)
    2. 節點 2 (IP2)
    3. 節點 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 個節點
(圖 3) 6 節點 Cassandra 環:每個節點有兩個節點 三個機架

在此設定中,每個節點還有兩個備用資源:分別在另外兩個機架中。適用對象 舉例來說,機架 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. 節點 1 (IP1)
  2. 節點 4 (IP4)*
  3. 節點 2 (IP2)
  4. 節點 5 (IP5)
  5. 節點 3 (IP3)
  6. 節點 6 (IP6)

* 在執行設定公用程式「之前」,在無訊息設定檔中進行變更 第 4 個節點 (以 Cassandra 安裝順序排列的第二部機器)。

展開至 12 個節點

如要進一步提高容錯能力和可用性,您可以增加 Cassandra 的數量 將數量從 6 到 12 個這項設定需要額外的六個節點 (IP7 到 IP12)。

下圖顯示了跨環形複製作業的順序 (順時針) 並強調在複製過程中,沒有任何兩個相鄰節點位於相同的事實 機架:

3 個機架,每個機架有 4 個節點
(圖 4) 12 節點 Cassandra 環:各三個節點 (共三個節點) 機架

安裝 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. 節點 1 (IP1)
  2. 節點 7 (IP7)*
  3. 節點 4 (IP4)
  4. 節點 8 (IP8)
  5. 節點 2 (IP2)
  6. 節點 9 (IP9)
  7. 節點 5 (IP5)
  8. 節點 10 (IP10)
  9. 節點 3 (IP3)
  10. 節點 11 (IP11)
  11. 節點 6 (IP6)
  12. 節點 12 (IP12)

* 您必須進行這些變更,才能在第 7 個節點 (第二節點) 安裝 Apigee Edge for Private Cloud )。