keepalived是乙個類似於layer2,4,7交換機制的軟體。是linux集群管理中保證集群高可用的乙個服務軟體,其功能是用來防止單點故障。
keepalived是基於vrrp協議實現的保證集群高可用的乙個服務軟體,主要功能是實現真機的故障隔離和負載均衡器間的失敗切換,防止單點故障。在了解keepalived原理之前先了解一下vrrp協議。
vrrp協議:virtual route redundancy protocol虛擬路由冗餘協議。是一種容錯協議,保證當主機的下一跳路由出現故障時,由另一台路由器來代替出現故障的路由器進行工作,從而保持網路通訊的連續性和可靠性。在介紹vrrp之前先介紹一些關於vrrp的相關術語:
虛擬路由器:由乙個 master 路由器和多個 backup 路由器組成。主機將虛擬路由器當作預設閘道器。
vrid:虛擬路由器的標識。有相同 vrid 的一組路由器構成乙個虛擬路由器。
master 路由器:虛擬路由器中承擔報文**任務的路由器。
backup 路由器: master 路由器出現故障時,能夠代替 master 路由器工作的路由器。
優先順序: vrrp 根據優先順序來確定虛擬路由器中每台路由器的地位。
非搶占方式:如果 backup 路由器工作在非搶占方式下,則只要 master 路由器沒有出現故障,backup 路由器即使隨後被配置了更高的優先順序也不會成為master 路由器。
搶占方式:如果 backup 路由器工作在搶占方式下,當它收到 vrrp 報文後,會將自己的優先順序與通告報文中的優先順序進行比較。如果自己的優先順序比當前的 master 路由器的優先順序高,就會主動搶占成為 master 路由器;否則,將保持 backup 狀態。
keepalived是模組化設計,不同模組負責不同的功能,core模組為keepalived的核心,負責主程序的啟動、維護以及全域性配置檔案的載入和解析。check負責健康檢查,包括常見的各種檢查方式。vrrp模組是來實現vrrp協議的。下面是keepalived的元件 :
核心元件:
vrrp stack
checkers
控制項:配置檔案分析器
io復用器
記憶體管理元件
a)core
是keepalived的核心,負責主程序的啟動和維護,全域性配置檔案的載入解析等 。
b)check
負責healthchecker(健康檢查),包括了各種健康檢查方式,以及對應的配置的解析包括lvs的配置解析 。
c)vrrp
vrrpd子程序,vrrpd子程序就是來實現vrrp協議的 。
d)libipfwc
iptables(ipchains)庫,配置lvs會用到 。
f)libipvs*
配置lvs會用到
[root@localhost ~]# cat /etc/sysconfig/keepalived
# options for keepalived. see `keepalived --help' output and keepalived(8) and
# keepalived.conf(5) man pages for a list of all options. here are the most
# common ones :
## --vrrp -p only run with vrrp subsystem.
# --check -c only run with health-checker subsystem.
# --dont-release-vrrp -v dont remove vrrp vips & vroutes on daemon stop.
# --dont-release-ipvs -i dont remove ipvs topology on daemon stop.
# --dump-conf -d dump the configuration data.
# --log-detail -d detailed log messages.
# --log-facility -s 0-7 set local syslog facility (default=log_daemon)
#keepalived_options="-d"
keepalived只有乙個配置檔案keepalived.conf,裡面主要包括以下幾個配置區域,分別是global_defs、static_ipaddress、static_routes、vrrp_script、vrrp_instance和virtual_server。
如下keepalived.conf預設配置檔案
[root@localhost ~]# cat /etc/keepalived/keepalived.conf
! configuration file for keepalived
global_defs
notification_email_from [email protected]
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id lvs_devel
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}vrrp_instance vi_1
virtual_ipaddress
}virtual_server 192.168.200.100 443
url
connect_timeout 3
nb_get_retry 3
delay_before_retry 3}}
}virtual_server 10.10.10.2 1358
url
url
connect_timeout 3
nb_get_retry 3
delay_before_retry 3}}
real_server 192.168.200.3 1358
url
connect_timeout 3
nb_get_retry 3
delay_before_retry 3}}
}virtual_server 10.10.10.3 1358
url
url
connect_timeout 3
nb_get_retry 3
delay_before_retry 3}}
real_server 192.168.200.5 1358
url
url
connect_timeout 3
nb_get_retry 3
delay_before_retry 3}}
}
幫助示例參照/usr/share/doc/keepalived-1.3.5/samples目錄 Keepalived工作原理
keepalived是以vrrp協議為實現基礎的,vrrp全稱virtual router redundancy protocol,即虛擬路由冗餘協議。虛擬路由冗餘協議,可以認為是實現路由器高可用的協議,即將n臺提供相同功能的路由器組成乙個路由器組,這個組裡面有乙個master和多個backup,m...
Keepalived工作原理
keepalived是以vrrp協議為實現基礎的 vrrp virtual router redundancy protocol 虛擬路由冗餘協議 可以認為是實現路由器高可用的協議,即將n臺提供相同功能的路由器組成乙個路由器組,這個組裡面有乙個master和多個backup,master上面有乙個對...
keepalived原理詳解
keealived介紹一下 keepalived keepalived是常用的一種高可用技術,它起初就是專門為lvs設計的,為了監控並檢查lvs下面的集群結點的狀態,並且具有配置lvs的功能,後來加入了實現高可用的vrrp功能,使得他不僅可以支援lvs,還可以支援nginx,mysql的高可用服務。...