防偽碼:不必向我訴說春天,我的心里并沒有秋寒
第六章 構(gòu)建LVS+Keepalived高可用群集
前言:keeplived是專門針對(duì)LVS設(shè)計(jì)的一款輔助工具,主要功能是實(shí)現(xiàn)故障切換和健康檢查,官方網(wǎng)站:http://www.keepalived.org。類似于我們以前學(xué)習(xí)過的HSRP熱備份路由協(xié)議,HSRP是思科的私有協(xié)議,而VRRP是通用協(xié)議,都是為了實(shí)現(xiàn)故障切換,當(dāng)一臺(tái)路由器發(fā)生故障的時(shí)候,另一臺(tái)馬上接替工作,用戶感覺不到服務(wù)器發(fā)生了問題,而且不會(huì)中斷服務(wù)。我們今天學(xué)習(xí)的雙機(jī)熱備是就是利用了VRRP虛擬路由冗余協(xié)議,和HRSP一樣都擁有一個(gè)虛擬的ip地址對(duì)外提供服務(wù),而不是真正的服務(wù)器ip地址,也擁有一臺(tái)主服務(wù)器和多臺(tái)備份服務(wù)器,優(yōu)先級(jí)高的做主路由器,備份服務(wù)器處于冗余狀態(tài),當(dāng)主服務(wù)器發(fā)生故障的時(shí)候,從服務(wù)器會(huì)變成主服務(wù)器,當(dāng)主服務(wù)器修好之后,會(huì)重新成為主路由器。這里和HSRP不同的是,HSRP需要配置占先權(quán),而這里不用配置,默認(rèn)都有占先權(quán)。
綜上所述,VRRP即一主 + 多備,共用同一個(gè)IP地址,但優(yōu)先級(jí)不同。
實(shí)驗(yàn)案例:構(gòu)建LVS+Keepalived高可用群集
實(shí)驗(yàn)分析:
Keepalived的設(shè)計(jì)目標(biāo)是構(gòu)建高可用的LVS負(fù)載均衡群集,可以調(diào)用ipvsadm工具來創(chuàng)建虛擬服務(wù)器、管理服務(wù)器池,而不僅僅用作雙機(jī)熱備。使用Keepalived構(gòu)建LVS群集更加簡(jiǎn)便易用,主要優(yōu)勢(shì)體現(xiàn)在:對(duì)LVS負(fù)載調(diào)度器實(shí)現(xiàn)熱備切換,提高可用性;對(duì)服務(wù)器池中的節(jié)點(diǎn)進(jìn)行健康檢查,自動(dòng)移除失效節(jié)點(diǎn),恢復(fù)后再重新加入。
本節(jié)將以DR模式的LVS群集為基礎(chǔ),增加一臺(tái)從負(fù)載調(diào)度器,使用Keepalived來實(shí)現(xiàn)主、從調(diào)度器的熱備,從而構(gòu)建兼有負(fù)載均衡、高可用兩種能力的LVS網(wǎng)站集群平臺(tái),如圖所示:
實(shí)驗(yàn)基礎(chǔ):
1、配置主調(diào)度器
1)安裝支持軟件(開發(fā)內(nèi)核包kernel-devel、openssl-devel,popt-devel支持庫)
2)編譯安裝Keepalived
3)使用Keepalived服務(wù)(手動(dòng)添加為系統(tǒng)服務(wù))
4)配置主調(diào)度器
Vi /etc/keepalived/keepalived.conf
詳解配置參數(shù):
! Configuration File for keepalived
global_defs {
notification_email { //接收郵件的地址,需要postfix,這里可不寫
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 127.0.0.1 //郵件服務(wù)器地址,這里填寫本機(jī)地址
smtp_connect_timeout 30
router_id R1 //主調(diào)度器路由器名稱(注意與從調(diào)度器不能相同)
}
vrrp_instance VI_1 {
state MASTER //熱備狀態(tài),主為MASTER,備為BACKUP
interface eth0 //承載VIP地址的物理接口,即外網(wǎng)卡的名稱
virtual_router_id 1 //虛擬路由器的ID號(hào),每個(gè)熱備組保持一致
priority 100 //優(yōu)先級(jí),數(shù)值越大優(yōu)先級(jí)越高
advert_int 1 //通告間隔秒數(shù)(心跳頻率)
authentication { //認(rèn)證信息,每個(gè)熱備組保持一致
auth_type PASS //認(rèn)證類型
auth_pass 1111 //密碼字串
}
virtual_ipaddress { //漂移地址(VIP),可以有多個(gè)
172.16.16.200
}
}
virtual_server 172.16.16.200 { //虛擬服務(wù)器地址(VIP)
delay_loop 6 //健康檢查的間隔時(shí)間(秒)
lb_algo rr //輪詢(rr)調(diào)度算法
lb_kind DR //群集工作模式(DR即路由模式)
persistence_timeout 50 //連接保持時(shí)間
protocol TCP //應(yīng)用服務(wù)采用的是TCP協(xié)議
real_server 172.16.16.173 { //第一個(gè)節(jié)點(diǎn)的地址
weight 1 //節(jié)點(diǎn)的權(quán)重
TCP_CHECK { //健康檢查方式
connect_timeout 3 //連接超時(shí)
nb_get_retry 3 //重試次數(shù)
delay_before_retry 3 //重試間隔(秒)
}
}
}
real_server 172.16.16.174 { //同上
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
5)開啟keepalived服務(wù)
注:inet 172.16.16.200/32 scope global eth0 //漂移地址,通俗來講,誰是主,誰優(yōu)先級(jí)高,跟著誰
6)從調(diào)度服務(wù)器的配置
首先安裝keepalived,和主服務(wù)器一樣,在配置的時(shí)候主要有三個(gè)地方不一樣:優(yōu)先級(jí)99,調(diào)度器名稱R2,熱備狀態(tài)為BACKUP
Vi /etc/keepalived/keepalived.conf(使用scp命令遠(yuǎn)程拷貝一份)
7)啟動(dòng)從服務(wù)器的Keepalived服務(wù)
8) 測(cè)試lvs+keepalived群集
在客戶機(jī)上訪問172.16.16.172,可以正常訪問,效果如下:
然后把主調(diào)度器的外網(wǎng)卡斷掉,如果客戶端依然可以訪問網(wǎng)站,說明成功。
再次訪問網(wǎng)站
在從調(diào)度器上查看網(wǎng)卡配置,可以看到虛擬ip顯示了,說明現(xiàn)在從服務(wù)器成為了主調(diào)度器。
9) 測(cè)試聯(lián)通性
在客戶機(jī)上ping 172.16.16.172 -t,然后斷掉主調(diào)度器的外網(wǎng)卡,發(fā)現(xiàn)斷掉一下之后馬上又恢復(fù)通信,說明今天的實(shí)驗(yàn)成功了,
當(dāng)然最關(guān)鍵還是當(dāng)主服務(wù)器故障之后,用戶訪問網(wǎng)站沒有感覺,web節(jié)點(diǎn)的網(wǎng)頁也要完全一樣。
結(jié)語:通過主、從調(diào)度器的/var/log/messages日志文件,可以跟蹤故障切換過程;若要查看負(fù)載分配情況,可以執(zhí)行“ipvsadm -ln或ipvsadm -lnc”等命令。
最終可以驗(yàn)證LVS+Keepalived高可用負(fù)載均衡群集的健壯性。
謝謝觀看,真心的希望能幫到您!
本文出自 “一盞燭光” 博客,謝絕轉(zhuǎn)載!
更多建議: