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...