keepalived簡介

contents:

什么是Keepalived
VRRP協議簡介
Keepalived原理
Keepalived配置文件詳解
Keepalived配置示例

一 什么是Keepalived?

保持存活,在網絡里面就是保持在線了,即高可用或熱備,用來防止單點故障(單點故障是指一旦某一點出現故障就會導致整個系統架構的不可用)發生。VRRP協議是keepalived實現的基礎。

keepalived + LVS實現負載均衡

二 VRRP協議簡介

網絡設計須考慮冗余容災,包括線路冗余,設備冗余等,防止網絡存在單點故障。
在路由器或三層交換機處實現冗余就顯得尤為重要,Keepalived就是巧用VRRP協議來實現高可用性(HA)

LAN客戶端判定哪個路由器應該為其到達目標主機的下一跳網關的方式有動態及靜態決策兩種方式,其中,常見的動態路由發現方式有如下幾種:

1 Proxy ARP

客戶端使用ARP協議獲取其想要到達的目標,而后,由某路由以其MAC地址響應此ARP請求;

2 Routing Protocol

客戶端監聽動態路由更新(如通過RIP或OSPF協議)并以之重建自己的路由表;

3 ICMP IRDP (Router Discovery Protocol)

客戶端 —— 客戶端主機運行一個ICMP路由發現客戶端程序;

動態路由發現協議不足:
引起客戶端一定的配置和處理方面的開銷,并且,如果路由器故障,切換至其它路由器的過程會比較慢。
解決此類問題的一個方案是為客戶端靜態配置默認路由設備,這大大簡化了客戶端的處理過程,但也會帶來單點故障類的問題。默認網關故障時,LAN客戶端僅能實現本地通信。

VRRP通過在一組路由器(一個VRRP組)之間共享一個虛擬IP(VIP)解決靜態配置問題,僅需客戶端以VIP作為其默認網關。

VLAN拓撲

上圖顯示了一個基本的VLAN拓撲,其中:

Router A、B、C共同組成一個VRRP組,其VIP為10.0.0.1,配置在路由器A的物理接口上,因此A為master路由器,B和C為backup路由器。

VRRP組中,master(路由器A)負責負責轉發發往VIP地址的報文,客戶端A、B、C都以此VIP作為其默認網關。

一旦master故障,backup路由器B和C中具有最高優先級的路由器將成為master并接管VIP地址,而當原來的master路由器A重新上線時,其將重新成為master路由器。

VRRP是一個“選舉”協議,它能夠動態地將一個虛擬路由器的責任指定至同一個VRRP組中的其它路由器上,從而消除了靜態路由配置的單點故障。

三 Keepalived原理

keepalived也是模塊化設計,不同模塊復雜不同的功能,下面是keepalived的組件

core check vrrp libipfwc libipvs-2.4 libipvs-2.6

core:是keepalived的核心,復雜主進程的啟動和維護,全局配置文件的加載解析等
check:負責healthchecker(健康檢查),包括了各種健康檢查方式,以及對應的配置的解析包括LVS的配置解析
vrrp:VRRPD子進程,VRRPD子進程就是來實現VRRP協議的
libipfwc:iptables(ipchains)庫,配置LVS會用到
libipvs*:配置LVS會用到

注意,keepalived和LVS完全是兩碼事,只不過他們各負其責相互配合而已

keepalived原理

keepalived啟動后會有三個進程

父進程:內存管理,子進程管理等等
子進程:VRRP子進程
子進程:healthcheckers子進程

兩個子進程都被系統WatchDog看管,兩個子進程各自負責自己的事;

healthcheckers子進程復雜檢查各自服務器的健康程度,例如HTTP,LVS等等;

如果healthcheckers子進程檢查到MASTER上服務不可用了,就會通知本機上的兄弟VRRP子進程,讓他刪除通告,并且去掉虛擬IP,轉換為BACKUP狀態

四 Keepalived配置

詳見http://maoqiu.blog.51cto.com/8570467/1405675

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,923評論 18 139
  • Nginx+Keepalived實現站點高可用 公司內部 OA 系統要做線上高可用,避免單點故障,所以計劃使用2臺...
    meng_philip123閱讀 1,925評論 2 18
  • 一、高可用集群 (一)提升系統高可用性的解決方案:冗余(redundant) 工作模式active/passive...
    哈嘍別樣閱讀 1,745評論 2 5
  • Keepalive:http://www.keepalived.org/《老男孩Linux運維》 Keepaliv...
    Zhang21閱讀 4,882評論 0 10
  • 昨天我全家四口和親朋好友一起把姥姥送走了,三天的忙碌最終還是歸于平靜。在過往的三十年,從出生到上學,從立業...
    牛散小堅強閱讀 407評論 0 0