Keepalived 使用指南

2021-09-06 12:30:10 字數 2826 閱讀 7548

負載均衡是虛擬服務的一種好的處理方案。當設計一種負載均衡的拓撲時一定要考慮到如下兩點:

真實伺服器的可用性使用健康檢測機制。

負載均衡器的可用性使用故障轉移協議。

負載均衡真實服務,提供了乙個全域性的高可用虛擬服務。為增加負載均衡服務的可用性,需要檢測每個真實伺服器節點的狀態。這個問題可以通過使用健康檢測框架來操作乙個伺服器池來解決。

另一方面,當使用乙個負載均衡器director,對虛擬服務引入了乙個故障節點。因負載均衡器的高可用性必須被處理,使用專用的路由協議對director的故障轉移/虛擬化。

keepalived解決這兩個問題:一方面,增加乙個強壯和健壯的監控檢測框架;另一方面,實現了乙個熱待機協議。這兩個框架可以處理lvs框架來操作lvs真實伺服器池,對lvs真實服務池的操作可以通過增加或者刪除基於健康檢測的真實伺服器來完成。

lvs 代表了linux virtual server. lvs 是linux 核心內嵌的乙個負載均衡工具。更多資訊參考工程主頁: lvs作為乙個網橋(通過nat)來負載均衡tcp/udp流。lvs路由器元件如下:

lvs元件:

vip: 可以被所有使用者訪問的虛擬ip,所有的使用者通過這個ip訪問伺服器。

真實伺服器:應用服務部署在真實的伺服器上,處理使用者的請求。上圖中的web server1 和webserver2 即是。

伺服器池:一組真實伺服器。

虛擬服務: 關聯到vip的tcp/udp服務。

vrrp 元件:

vrrp:虛擬路由器冗餘協議是一種選擇協議,它可以把乙個虛擬路由器的責任動態分配到區域網上的 vrrp 路由器中的一台。

vrrp例項:a thread manipulating vrrpv2 specific set of ip addresses。

乙個vrrp例項可以作為乙個或者多個vrrp例項的備份。

備機狀態:一種vrrp例項狀態,當當前的處於主機狀態的vrrp例項宕機時,處於該狀態的vrrp例項有能力處理傳送來的請求。

真實負載均衡器:執行乙個或者多個vrrp例項的乙個lvs director。

虛擬負載均衡器:一組真實負載均衡器。

被同步例項:乙個將要被同步的vrrp例項,被監控的vrrp例項。

通知:傳送給處於一組處於主機狀態的vrrp例項的乙個簡單vrrpv2包的名稱。

軟體架構涉及4個linux 核心元件:

lvs核心框架:kernel2.2使用setsockopt,kernel 2.4使用setsockopt netfilter。

ipchains 框架:kernel 2.2 lvs nat架構使用內部的ipchains 包裝器來傳送masq鏈到核心。這個僅僅在linux 2.2核心上執行。在kernel 2.4 ipvs**使用netfilter call來處理特定的nat規則。

netlink介面:對於熱待機協議(vrrp),我們使用netlink介面來設定/去除vrrp的vip.

組播:對於vrrp部分,通告被傳送到組播組。

下面將闡述keepalived軟體的內部實現元件。keepalived使用乙個基於**i/o復用器的多執行緒框架。2個主要的元件如下:

健康檢測工作執行緒:每個健康檢測被註冊到全域性的排程框架。這些工作執行緒在keepalived 健康檢測框架下執行健康檢測。健康檢測框架當前執行3個檢測:

tcp檢測:應用第三層檢測。

http get:檢測乙個遠端http伺服器的html 內容完整性。

ssl get:檢測乙個遠端ssl伺服器的html內容完整性。

混合檢測:應用使用者定義的完整性檢測。

vrrp 包分發器:解服用特定i/o來處理vrrp例項的響應。

這兩個主要元件使用到下面的底層primitives

smtp通知:乙個smtp包裝器使用非同步資料流處理。這個primitive使得keepalived可以傳送郵件通知。

ipvs框架:lvs nat,dr&tun等。

netlink:提供vrrp vip操作。

組播:使用多播來傳送vrrp通告。

ipchains框架,如上所述。

syslog: 所有後台通知訊息使用syslog後台來記錄。

如上《略》

為了director故障轉移,keepalived實現了vrrp協議。這個協議可以這樣簡潔的描述為:

虛擬路由器冗餘協議(vrrp)是一種選擇協議,它可以把乙個虛擬路由器的責任動態分配到區域網上的 vrrp 路由器中的一台。控制虛擬路由器 ip 位址的 vrrp 路由器稱為主路由器,它負責**資料報到這些虛擬 ip 位址。一旦主路由器不可用,這種選擇過程就提供了動態的故障轉移機制,這就允許虛擬路由器的 ip 位址可以作為終端

主機的預設第一跳路由器。使用 vrrp 的好處是有更高的預設路徑的可用性而無需在每個終端

主機上配置動態路由或路由發現協議。 vrrp 包封裝在 ip 包中傳送。[ 引用自rfc2338]。

配置檔案分為三個部分:

Keepalived 使用指南

負載均衡是虛擬服務的一種好的處理方案。當設計一種負載均衡的拓撲時一定要考慮到如下兩點 真實伺服器的可用性使用健康檢測機制。負載均衡器的可用性使用故障轉移協議。負載均衡真實服務,提供了乙個全域性的高可用虛擬服務。為增加負載均衡服務的可用性,需要檢測每個真實伺服器節點的狀態。這個問題可以通過使用健康檢測...

Ubuntu apt 使用指南

起初gnu linux系統中只有.tar.gz。使用者必須自己編譯他們想使用的每乙個程式。在debian出現之後,人們認為有必要在系統中新增 一種機制用來管理安裝在計算機上的軟體包。人們將這套系統稱為dpkg。至此著名的 package 首次在gnu linux上出現。不久之後紅帽子也 開始著手建立...

CImageList使用指南

1.綜述 在mfc 中cimagelist 類封裝了 影象列表控制項的功能,影象列表是乙個具有相同大小的 影象 可以是不同 型別 的集合,其主要用於 應用程式中大規模 圖示的儲存。該控制項是不可 見的,通常與其它如 clistbox ccombobox ccomboboxex ctabctrl 以及...