Keepalived是基於vrrp協議的一款高可用軟件。Keepailived有一臺主服務器和多臺備份服務器,在主服務器和備份服務器上面部署相同的服務配置,使用一個虛擬IP地址對外提供服務,當主服務器出現故障時,虛擬IP地址會自動漂移到備份服務器。安全
VRRP(Virtual Router Redundancy Protocol,虛擬路由器冗餘協議),VRRP是爲了解決靜態路由的高可用。VRRP的基本架構虛擬路由器由多個路由器組成,每一個路由器都有各自的IP和共同的VRID(0-255),其中一個VRRP路由器經過競選成爲MASTER,佔有VIP,對外提供路由服務,其餘成爲BACKUP,MASTER以IP組播(組播地址:224.0.0.18)形式發送VRRP協議包,與BACKUP保持心跳鏈接,若MASTER不可用(或BACKUP接收不到VRRP協議包),則BACKUP經過競選產生新的MASTER並繼續對外提供路由服務,從而實現高可用。服務器
虛擬路由器:Virtual Router
虛擬路由器標識:VRID(0-255)
物理路由器:架構
- master :主設備
- backup :備用設備
- priority:優先級
VIP:Virtual IP
VMAC:Virutal MAC (00-00-5e-00-01-VRID)
GraciousARP
app
[root@masga ~]# yum install openssl-devel popt-devel libnl libnl-devel libnfnetlink-devel gcc -y [root@masga ~]# cd /usr/local/src/ [root@masga src]# wget http://www.keepalived.org/software/keepalived-2.0.0.tar.gz [root@masga src]# tar zxvf keepalived-2.0.0.tar.gz [root@masga src]# mkdir -p ../keepalived [root@masga src]# cd keepalived-2.0.0 [root@masga keepalived-2.0.0]# ./configure --prefix=/usr/local/keepalived Keepalived configuration ------------------------ Keepalived version : 2.0.0 Compiler : gcc Preprocessor flags : Compiler flags : -Wall -Wunused -Wstrict-prototypes -Wextra -Winit-self -g -O2 -D_GNU_SOURCE -fPIE -Wformat -We rror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches Linker flags : -pie Extra Lib : -lcrypto -lssl -lnl Use IPVS Framework : Yes IPVS use libnl : Yes IPVS syncd attributes : No IPVS 64 bit stats : No fwmark socket support : Yes Use VRRP Framework : Yes Use VRRP VMAC : Yes Use VRRP authentication : Yes With ip rules/routes : Yes Use BFD Framework : No SNMP vrrp support : No SNMP checker support : No SNMP RFCv2 support : No SNMP RFCv3 support : No DBUS support : No SHA1 support : No Use Json output : No libnl version : 1 Use IPv4 devconf : No Use libiptc : No Use libipset : No init type : systemd Build genhash : Yes Build documentation : No [root@masga keepalived-2.0.0]# make && make install [root@masga keepalived-2.0.0]# cp /usr/local/src/keepalived-2.0.0/keepalived/etc/init.d/keepalived /etc/init.d/ [root@masga keepalived-2.0.0]# cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ [root@masga keepalived-2.0.0]# mkdir /etc/keepalived [root@masga keepalived-2.0.0]# cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/ [root@masga keepalived-2.0.0]# cp /usr/local/keepalived/sbin/keepalived /usr/sbin/ [root@masga keepalived-2.0.0]# echo "/etc/init.d/keepalived start" >> /etc/rc.local [root@masga keepalived-2.0.0]# chmod +x /etc/rc.d/init.d/keepalived [root@masga keepalived-2.0.0]# chkconfig keepalived on