1痒给、keepalived的工作原理是VRRP(Virtual Router Redundancy Protocol)虛擬路由冗余協(xié)議说墨。
2、VRRP路由器是指運(yùn)行VRRP的路由器苍柏,是物理實(shí)體尼斧,虛擬路由器是指VRRP協(xié)議創(chuàng)建的,是邏輯概念试吁。一組VRRP路由器協(xié)同工作棺棵,共同構(gòu)成一臺(tái)虛擬路由器楼咳。 Vrrp中存在著一種選舉機(jī)制,用以選出提供服務(wù)的路由即主控路由烛恤,其他的則成了備份路由母怜。當(dāng)主控路由失效后,備份路由中會(huì)重新選舉出一個(gè)主控路由缚柏,來繼續(xù)工作苹熏,來保障不間斷服務(wù)。
3币喧、節(jié)點(diǎn)A 192.168.8.4 (主節(jié)點(diǎn)), 節(jié)點(diǎn)B 192.168.8.6(備用節(jié)點(diǎn))轨域,虛擬IP(對(duì)外提供服務(wù)的IP 192.168.8.100)
在這種模式下,虛擬IP在某時(shí)刻只能屬于某一個(gè)節(jié)點(diǎn)杀餐,另一個(gè)節(jié)點(diǎn)作為備用節(jié)點(diǎn)存在干发。
當(dāng)主節(jié)點(diǎn)不可用時(shí),備用節(jié)點(diǎn)接管虛擬IP(即虛擬IP漂移至節(jié)點(diǎn)B)怜浅,提供正常服務(wù)铐然。
keepalived的原理可以這樣簡單理解:
keepalived安裝在兩臺(tái)物理服務(wù)器上,并相互監(jiān)控對(duì)方是否在正常運(yùn)行恶座。
當(dāng)節(jié)點(diǎn)A正常的時(shí)候:節(jié)點(diǎn)A上的keepalived會(huì)將下面的信息廣播出去:
192.168.8.100 這個(gè)IP對(duì)應(yīng)的MAC地址為節(jié)點(diǎn)A網(wǎng)卡的MAC地址
圖中的其它電腦如客戶端和NodeB會(huì)更新自己的ARP表搀暑,對(duì)應(yīng)192.168.8.100的MAC地址=節(jié)點(diǎn)A網(wǎng)卡的MAC地址。
當(dāng)節(jié)點(diǎn)A發(fā)生故障的時(shí)候跨琳,節(jié)點(diǎn)B上的keepalived會(huì)檢測到自点,并且將下面的信息廣播出去:
192.168.8.100 這個(gè)IP對(duì)應(yīng)的MAC地址為節(jié)點(diǎn)B網(wǎng)卡的MAC地址
圖中的其它電腦如客戶端會(huì)更新自己的ARP表,對(duì)應(yīng)192.168.8.100的MAC地址=節(jié)點(diǎn)B網(wǎng)卡的MAC地址脉让。
4桂敛、安裝
wget?http://www.keepalived.org/software/keepalived-1.4.3.tar.gz
yum install -y openssl openssl-devel
tar zxvf keepalived-1.4.3.tar.gz
cd keepalived-1.4.3
./configure
make
make install
cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
cp /usr/local/sbin/keepalived /usr/sbin/
# chkconfig keepalived on
#service keepalived start #啟動(dòng)服務(wù)
#service keepalived stop #停止服務(wù)
?#service keepalived restart #重啟服務(wù)
5、主節(jié)點(diǎn)keepalived.conf:
global_defs {
? router_id nodea? ?
}
vrrp_instance VI_1 {
? ? state MASTER?#設(shè)置為主服務(wù)器?
? ? interface eno16777984
? ? virtual_router_id 51?#主溅潜、備必須一樣?
? ? priority 100?#(主术唬、備機(jī)取不同的優(yōu)先級(jí),主機(jī)值較大滚澜,備份機(jī)值較小,值越大優(yōu)先級(jí)越高)??
? ? advert_int 1?#VRRP?Multicast廣播周期秒數(shù)
? ? authentication {
? ? ? ? auth_type PASS?#VRRP認(rèn)證方式粗仓,主備必須一致??
? ? ? ? auth_pass 1111?#(密碼)
? ? }
? ? virtual_ipaddress {
? ? ? ? 192.168.100.100/24?#VRRP?HA虛擬地址??
}
6、備節(jié)點(diǎn):
global_defs {
? router_id nodeb #命名
}
vrrp_instance VI_1 {
? ? state BACKUP? #備節(jié)點(diǎn)
? ? interface eno16777984
? ? virtual_router_id 51? #與主節(jié)點(diǎn)一致
? ? priority 90? #優(yōu)先權(quán)要比主節(jié)點(diǎn)小
? ? advert_int 1
? ? authentication {
? ? ? ? auth_type PASS? #與主節(jié)點(diǎn)一致
? ? ? ? auth_pass 1111? ? #與主節(jié)點(diǎn)一致
? ? }
? ? virtual_ipaddress {
? ? ? ? 192.168.100.100/24? #與主節(jié)點(diǎn)一致
}
7设捐、啟動(dòng):
keepalived -D -f /usr/local/etc/keepalived/keepalived.conf
8借浊、檢查VRRP廣播:
tail -f /var/log/messages