關於 ZooKeeper 維護

Private Cloud v. 4.17.05 專用 Edge

ZooKeeper 集體設計為保持運作,不會遺失資料, 一或多個 ZooKeeper 節點。這項彈性可用於在 ZooKeeper 節點,無須系統停機。

關於 ZooKeeper 和 Edge

在 Edge 中,ZooKeeper 節點含有與 各種 Edge 元件,並通知不同設定變更元件所有語言 正式環境系統支援 Edge 拓撲,且指定至少使用三個 ZooKeeper 節點。

使用 ZK_HOSTSZK_CLIENT_HOSTS 屬性中的 用於指定 ZooKeeper 節點的邊緣設定檔。測驗用

ZK_HOSTS="$IP1 $IP2 $IP3" 
ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3" 

其中:

  • ZK_HOSTS - 指定 ZooKeeper 節點的 IP 位址IP 位址必須按照 所有 ZooKeeper 節點。

    在多資料中心環境中,列出所有資料中心的所有 ZooKeeper 節點。
  • ZK_CLIENT_HOSTS - 指定這個資料中心僅使用的 ZooKeeper 節點 IP 位址。IP 位址必須以與資料中心內所有 ZooKeeper 節點相同的順序列出。

    在單一「資料中心」安裝程序中,這些節點與 ZK_HOSTS 所指定的節點相同。在 多資料中心環境,每個資料中心的 Edge 設定檔應該只列出 該資料中心的 ZooKeeper 節點

根據預設,所有 ZooKeeper 節點都會指定為 voter 節點。也就是說 都參與選出 ZooKeeper 領導者。您可以在 使用「:observer」修飾符與 ZK_HOSTS 表示 這則附註是「observer」節點,不是選民。觀察器節點未參與 因此主要是

您通常在建立多個邊緣資料時指定「:observer」修飾符 或單一資料中心有大量 ZooKeeper 節點時。例如,在 12 主機裝設了兩個資料中心,位於資料中心 2 節點 9 的 ZooKeeper 觀察器:

然後在資料中心 1 的設定檔中使用下列設定:

ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer"
ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3"

資料中心的應用

ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer"
ZK_CLIENT_HOSTS="$IP7 $IP8 $IP9"

關於主管、追蹤者 和觀眾

在多節點 ZooKeeper 安裝中,其中一個節點會指定為領導者。 所有其他 ZooKeeper 節點會指定為追蹤者。雖然讀取作業可以 ZooKeeper 節點,所有寫入要求都會轉送至領導者。舉例來說 已將處理器新增至 Edge。該資訊會寫入 ZooKeeper 領導者。所有追蹤者 然後複製資料

在 Edge 安裝期間,您可以將各個 ZooKeeper 節點指定為選民或觀察者。 接著,系統會由所有選民 ZooKeeper 節點選出首席。其中一項規定是 領導者是必須能有仲裁的 ZooKeeper 選民節點可用。A 罩杯 仲裁的意思是所有資料中心的所有選民 ZooKeeper 節點當中 以及功能正常運作

如果選票上沒有可用的選民節點,就無法選出領導者。在這個情境中 Zookeeper 無法處理要求。這表示您無法向 Edge Management 提出要求 伺服器、處理 Management API 要求,或登入 Edge UI,直到仲裁還原為止。

舉例來說,在單一資料中心安裝作業中:

  • 您已安裝三個 ZooKeeper 節點
  • 所有 ZooKeeper 節點都是選民
  • 仲裁是兩個運作中的選民節點
  • 如果只可用一個選民節點,ZooKeeper 組合無法運作

安裝有兩個資料中心時:

  • 您已為每個資料中心安裝三個 ZooKeeper 節點,總共有六個節點
  • 資料中心 1 有三個選民節點
  • 資料中心 2 有兩個選民節點和一個觀察者節點
  • 仲裁依據兩個資料中心的五位投票者,因此符合 三個正常運作的選民節點
  • 如果只有兩個以下的選民節點可用,ZooKeeper 成員無法合併 函式

將節點新增為選民 觀察者

您的系統需求可能需要將額外的 ZooKeeper 節點新增至 Edge 安裝。新增 ZooKeeper 節點說明文件 說明如何將其他 ZooKeeper 節點新增至 Edge。新增 ZooKeeper 節點時,您必須 請將要新增的節點類型納入考量:選民或觀察者。

必須確保有足夠的投票者節點,當一或多個選民節點故障時 整體而言,ZooKeeper 的組件依然可以正常運作,意味著還有數群選民 廣告。加入選民節點可以提高仲裁的數量,進而 容許更多選民節點遭到關閉

不過,新增更多投票者節點,可能會對寫入效能造成負面影響,因為寫入 運作需要仲裁者達成共識。決定勝出版本所需的時間 是根據選民節點人數計算,並隨著投票數增加而增加。 因此,您不想讓所有節點投票者。

您可以新增觀察者節點,而不新增選民節點。新增觀察器節點增加次數 整體系統讀取效能並不會增加選擇勝出版本負擔 觀察節點不會投票,也不會影響仲裁大小。因此,如果觀察器節點 但這不會影響到選領導者的能力。不過,遺失觀察器 節點可能會導致 ZooKeeper 整體的讀取效能降低 服務資料要求可用的節點減少了

Apigee 建議在單一資料中心的投票者人數不超過五位 觀察器節點數量Apigee 建議在兩個資料中心內 不到九位選民 (一是資料中心的五位,另一家則為四人)。等您想加入的 Pod 視系統需求而定。

維護作業注意事項

ZooKeeper 可以在功能完整運作的情況下執行維護,無需停機 只會一次處理一個節點確認只有一個 ZooKeeper 節點停止運作 您將確保隨時有大量的選民節點可供挑選 領先

維護作業範圍: 多個資料中心

使用多個資料中心時,別忘了 ZooKeeper 整體運作模式 區分資料中心ZooKeeper 團隊集結了所有 ZooKeeper 節點 整合資料中心

指定資料中心的選民節點位置並非 ZooKeeper 運作時的考量因素 仲裁計算。個別節點可以跨越資料中心,但只要仲裁 在整個整體運作中,ZooKeeper 依然正常運作。

維護造成的影響

在不同時候,您必須關閉 ZooKeeper 節點以進行維護,他們可以是選民 節點或觀察器節點例如,您可能需要升級節點上的 Edge 版本 代管 ZooKeeper 的機器可能故障 發生網路錯誤等情況

如果停止運作的節點是觀察器節點,當節點數量可能略有降低 將 ZooKeeper 的效能集中在節點還原前。如果節點為選民 節點時,這可能會影響 ZooKeeper 集體的可行性,因為系統會遺失 參與主要選舉流程無論選民節點為何 至關重要

維護程序

您應先確認 ZooKeeper,再考慮執行任何維護程序 整體運作情形這個假設觀測器節點運作正常且數量足夠 維護期間可以使用的選民節點來保留仲裁。

符合這些條件時,ZooKeeper 無論大小為何,都能容許 遺失單一節點,既不會遺失資料,也不會影響效能。這個 因此,只要節點位於其中一個節點,您就可以自由執行維護作業 節點平行處理

執行維護作業時,請按照下列程序,決定 ZooKeeper 節點 (領導者、選民或觀察者):

  1. 如未安裝在 ZooKeeper 節點上,請安裝 nc:
    >sudo yum install nc
  2. 在節點上執行下列 nc 指令:
    >echo 統計資料 |nc localhost 2181

    其中 2181 是 ZooKeeper 連接埠。您應該會看到以下格式輸出內容:
    Zookeeper 版本:3.4.5-1392090, 建立時間:2012 年 9 月 30 日 17:52 GMT
    用戶端:/a.b.c.d:xxxx[0](queued=0,recved=1,sent=0)
    延遲時間下限/平均值/上限:0/0/0
    已收到:1
    已傳送:0
    連線數量:1
    未付帳款:0
    Zxid:0xc00000044
    模式:追蹤者
    節點數量:653 個


    在輸出內容的「Mode」列中 關於節點,您應該會看到「observer」、「leader」或「follower」 (代表非選民 取決於節點設定。

    注意:在安裝單一 ZooKeeper 節點的 Edge 中, 「Mode」設為「獨立」
  3. 在每個 ZooKeeper 節點上重複步驟 1 和 2。

摘要

如要在 ZooKeeper 整體上執行維護,最好的方法就是以 讓應用程式從可以最快做出回應的位置 回應使用者要求請注意:

  • 你必須在維護期間維護一組選民,才能確保 ZooKeeper 整體運作不中斷
  • 刪除觀察器節點不會影響仲裁,也不會影響選出領導者的能力
  • 仲裁的計算依據為所有資料中心中的所有 ZooKeeper 節點
  • 先前的伺服器運作正常後,繼續維護下一個伺服器
  • 使用 nc 指令檢查 ZooKeeper 節點