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