Keepalived原理與配置

2021-07-23 17:32:16 字數 3751 閱讀 2423

keepalived

介紹:keepalived是所謂的高可用或熱備用來防止單點故障的一種手段。

keepalived是乙個類似於layer3, 4 & 5交換機制的軟體,也就是我們平時說的第3層、第4層和第5層交換。

作用:keepalived的作用是檢測web伺服器的狀態,lvs+keepalived實現負載

原理:keepalived是利用vrrp(虛擬路由冗餘)協議來實現的高可用(ha),完全遵守vrrp協議包括競選機制等等。

keepalived是乙個類似於layer3, 4 & 5交換機制的軟體,layer3,4&5工作在ip/tcp協議的ip層,tcp層,及應用層,原理分別如下:

layer3:keepalived使用layer3的方式工作式時,keepalived會定期向伺服器群中的伺服器

傳送乙個icmp的資料報(既我們平時用的ping程式),如果發現某台服務的ip位址沒有啟用,keepalived便報告這台伺服器失效,並將它從伺服器群中剔除,這種情況的典型例子是某台伺服器被非法關機,當web伺服器工作正常後keepalived自動將web伺服器加入到伺服器群中,這些工作全部自動完成,不需要人工干涉,需要人工做的只是修復故障的web伺服器。layer3的方式是以伺服器的ip位址是否有效作為伺服器工作正常與否的標準。

layer4: layer4主要以tcp埠的狀態來決定伺服器工作正常與否。如webserver的服務

埠一般是80,如果keepalived檢測到80埠沒有啟動,則keepalived將把這台伺服器從伺服器群中剔除。

layer5:layer5就是工作在具體的應用層了,比layer3,layer4要複雜一點,在網路上占用的頻寬也要大一些。keepalived將根據使用者

的設定檢查伺服器程式的執行是否正常,如果與使用者的設定不相符,則keepalived將把伺服器從伺服器群中剔除。

vip即虛擬ip,是附在主機網絡卡上的,即對主機網絡卡進行虛擬,此ip仍然是占用了此網段的某個ip。

keepalived的應用:

一台為主伺服器(master),一台為備份伺服器(backup),但是對外表現為乙個虛擬ip,主伺服器會傳送特定的訊息給備份伺服器,當備份伺服器收不到這個訊息的時候,即主伺服器宕機的時候,備份伺服器就會接管虛擬ip,繼續提供服務,從而保證了高可用性

keepalived也是模組化設計不同模組複雜不同

core: 是keepalived的核心,負責主程序的啟動和維護全域性配置檔案的載入解析等

check:負責healthchecker(健康檢查)包括了各種健康檢查方式以及對應的配置的解析包括lvs的配置解析

vrrp: vrrpd子程序,vrrpd子程序就是來實現vrrp協議的

keepalived啟動後會有三個程序

記憶體管理子程序

vrrp子程序

healthchecker子程序

配置檔案:

keepalived只有乙個配置檔案keepalived.conf,裡面主要包括以下幾個配置區域,分別是global_defs、static_ipaddress、static_routes、vrrp_script、vrrp_instance和virtual_server。

global_defs區域:主要是配置故障發生時的通知物件以及機器標識

global_defs

notification_email_from [email protected] #指定發件人

smtp_server localhost #指定smtp伺服器位址

smtp_connect_timeout 30 #指定smtp連線超時時間

enable_traps #開啟snmp陷阱(****** network management protocol)

router_id lvs_devel #執行keepalived機器的乙個標識

}static_ipaddress和static_routes區域:static_ipaddress和static_routes區域配置的是是本節點的ip和路由資訊。如果你的機器上

已經配置了ip和路由,那麼這兩個區域可以不用配置。其實,一般情況下你的機器都會有ip位址和路由資訊的,因此沒必要再在這兩個區域配置。

vrrp_script區域:用來做健康檢查的,當時檢查失敗時會將vrrp_instance的priority減少相應的值。

vrrp_script check_running

以上意思是如果script中的指令執行失敗,那麼相應的vrrp_instance的優先順序會減少10個點。

vrrp_instance和vrrp_sync_group區域

vrrp_instance用來定義對外提供服務的vip區域及其相關屬性。

vrrp_rsync_group用來定義vrrp_intance組,使得這個組內成員動作一致。舉個例子來說明一下其功能:

兩個vrrp_instance同屬於乙個vrrp_rsync_group,那麼其中乙個vrrp_instance發生故障切換時,另乙個vrrp_instance也會跟著切換(即使這個instance沒有發生故障)。

vrrp_sync_group vg_1

notify_master /path/xx.sh #指定當切換到master時,執行的指令碼

netify_backup /path/xx.sh #指定當切換到backup時,執行的指令碼

notify_fault "path/xx.sh vg_1" #故障時執行的指令碼

notify /path/xx.sh

smtp_alert #使用global_defs中提供的郵件位址和smtp伺服器傳送郵件通知

}vrrp_instance inside_network

mcast_src_ip #傳送多播包的位址,如果不設定預設使用繫結網絡卡的primary ip

garp_master_delay #在切換到master狀態後,延遲進行gratuitous arp請求

virtual_router_id 50 #vpid標記

priority 99 #優先順序,高優先順序競選為master

advert_int 1 #檢查間隔,預設1秒

nopreempt #設定為不搶占 注:這個配置只能設定在backup主機上,而且這個主機優先順序要比另外一台高

preempt_delay #搶占延時,預設5分鐘

debug #debug級別

authentication

virtual_ipaddress

}virtual_server_group和virtual_server區域:virtual_server_group一般在超大型的lvs中用到,一般lvs用不過這東西,因此不多說

helo_name | #smtp helo請求命令引數,可選

}misc_check

}keepalived主從切換

主從切換比較讓人蛋疼,需要將backup配置檔案的priority選項的值調整的比master高50個點,然後reload配置檔案就可以切換了。當時你也可以將master的keepalived停止,這樣也可以進行主從切換。

vrrp參考:

Keepalived 原理 元件 核心配置

keepalived是乙個類似於layer2,4,7交換機制的軟體。是linux集群管理中保證集群高可用的乙個服務軟體,其功能是用來防止單點故障。keepalived是基於vrrp協議實現的保證集群高可用的乙個服務軟體,主要功能是實現真機的故障隔離和負載均衡器間的失敗切換,防止單點故障。在了解kee...

keepalived工作原理和配置

keepalived是集群管理中保證集群高可用的乙個服務軟體,用來防止單點故障。keepalived是以vrrp協議為實現基礎的,keepalive類似於ylayer3,4 5交換機制的軟體,vrrp全稱virtual router redundancy protocol,即虛擬路由冗餘協議。虛擬路...

keepalived安裝與配置

一 安裝keepalived 1.2.2 yum y install gcc make openssl openssl devel wget kernel devel mkdir p usr local src hasoft cd usr local src hasoft wget tar zxvf...