高效能集群軟體Keepalived之基礎知識篇

2021-09-22 05:10:56 字數 2356 閱讀 8376

在現實的網路環境中,主機之間的通訊都是通過配置靜態路由(預設閘道器)完成的,而主機之間的路由器一旦出現故障,通訊就會失敗,因此,在這種通訊模式中,路由器就成了乙個單點瓶頸,為了解決這個問題,就引入了vrrp協議。

熟悉網路的讀者對vrrp協議應該並不陌生。它是一種主備模式的協議,通過vrrp可以在網路發生故障時透明地進行裝置切換而不影響主機間的資料通訊,這其中涉及兩個概念:物理路由器和虛擬路由器。

vrrp可以將兩台或多台物理路由器裝置虛擬成乙個虛擬路由器,這個虛擬路由器通過虛擬ip(乙個或多個)對外提供服務,而在虛擬路由器內部,是多個物理路由器協同工作,同一時間只有一台物理路由器對外提供服務,這台物理路由器被稱為主路由器(處於master角色)。一般情況下master由選舉演算法產生,它擁有對外服務的虛擬ip,提供各種網路功能,如arp請求、icmp、資料**等。而其他物理路由器不擁有對外的虛擬ip,也不提供對外網路功能,僅僅接收master的vrrp狀態通告資訊,這些路由器被統稱為備份路由器(處於backup角色)。當主路由器失效時,處於backup角色的備份路由器將重新進行選舉,產生乙個新的主路由器進入master角色繼續提供對外服務,整個切換過程對使用者來說完全透明。

每個虛擬路由器都有乙個唯一標識,稱為vrid,乙個vrid與一組ip位址構成了乙個虛擬路由器。在vrrp協議中,所有的報文都是通過ip多播形式傳送的,而在乙個虛擬路由器中,只有處於master角色的路由器會一直傳送vrrp資料報,處於backup角色的路由器只接收master發過來的報文資訊,用來監控master執行狀態,因此,不會發生backup搶占的現象,除非它的優先順序更高。而當master不可用時,backup也就無法收到master發過來的報文資訊,於是就認定master出現故障,接著多台backup就會進行選舉,優先順序最高的backup將成為新的master,這種選舉並進行角色切換的過程非常快,因而也就保證了服務的持續可用性。

keepalived工作在tcp/ip參考模型的第

三、第四和第五層,也就是網路層、傳輸層和應用層。根據tcp/ip參考模型各層所能實現的功能,keepalived執行機制如下。

從圖中可以看出,keepalived的體系結構從整體上分為兩層,分別是使用者空間層(user space)和核心空間層(kernel space).下面介紹keepalived兩層結構的詳細組成及實現的功能。

核心空間層處於最底層,它包括ipvs和netlink兩個模組。ipvs模組是keepalived引入的乙個第三方模組,通過ipvs可以實現基於ip的負載均衡集群。ipvs預設包含在lvs集群軟體中。而對於lvs集群軟體,相信做運維的朋友並不陌生:在lvs集群中,ipvs安裝在乙個叫做director server的伺服器上,同時在director server上虛擬出乙個ip位址來對外提供服務,而使用者必須通過這個虛擬ip位址才能訪問服務。這個虛擬ip一般稱為lvs的vip,即virtual ip。訪問的請求首先經過vip到達director server,然後由director server從伺服器集群節點中選取乙個服務節點響應使用者的請求。

keepalived最初就是為lvs提供服務的,由於keepalived可以實現對集群節點的狀態檢測,而ipvs可以實現負載均衡功能,因此,keepalived借助於第三方模組ipvs就可以很方便地搭建一套負載均衡系統。在這裡有個誤區,由於keepalived可以和ipvs一起很好地工作,因此很多初學者都以為keepalived就是乙個負載均衡軟體,這種理解是錯誤的。

在keepalived中,ipvs模組是可配置的,如果需要負載均衡功能,可以在編譯keepalived時開啟負載均衡功能,反正,也可以通過配置編譯引數關閉。

netlink模組主要用於實現一些高階路由框架和一些相關的網路功能,完成使用者空間層netlink reflector模組發來的各種網路請求。

使用者空間層位於核心空間層之上,keepalived的所有具體功能都在這裡實現,下面介紹、幾個重要部分所實現的功能。

watchdog是計算機可靠性領域中乙個極為簡單又非常有效的檢測工具,它的工作原理是針對被監視的目標設定乙個計數器和乙個閾值,watchdog會自己增加此計數值,然後等待被監視的目標周期性地重置該計數值。一旦被監控目標發生錯誤,就無法重置此計數值,watchdog就會檢測到,於是就採取對應的恢復措施,例如重啟或關閉。

這是keepalived最基礎的功能,也是最主要的功能,可實現對伺服器執行狀態檢測和故障隔離。

這是keepalived後來引入的vrrp功能,可以實現ha集群中失敗切換(failover)功能。keepalived通過vrrp功能再結合lvs負載均衡軟體即可部署一套高效能的負載均衡集群系統。

用來實現高可用集群中failover時虛擬ip(vip)的設定和切換。netlink reflector的所有請求最後都傳送到核心空間的netlink模組來完成。

高效能集群軟體Keepalived

keepalived是乙個linux下乙個輕量級的高可用集群方案,keepalived主要虛擬路由冗餘來實現高可用功能,keepalived部署和使用非常簡單,所有的配置只需乙個配置檔案即可。keepalived起初是為lvs設計的,專門用來監控伺服器集群中各個服務節點的狀態,它參考tcp ip模型...

高效能集群軟體keepalived

keepalived主要是通過虛擬路由冗餘來實現高可用功能 部署和使用簡單,所有配置只需要乙個配置檔案 1,keepalived 起初為lvs設計 伺服器章台檢測和故障隔離功能 專門用來監控集群幾桶中各個服務節點的狀態 根據tcp ip參考模型的第 三 第四和第五層交換機制檢測每個服務節點的狀態 自...

高效能集群軟體Keepalived之安裝配置篇

一 keepalived的安裝過程 root keepalived master keepalived 1.2.12 configure sysconf etc with kernel dir usr src kernels 2.6.32 431.5.1.el6.x86 64 root keepal...