什么是b2c網(wǎng)站營(yíng)銷存在的問題及改進(jìn)
1、定義
keepalived為lvs應(yīng)運(yùn)而生的高可用服務(wù)。lvs的調(diào)度器無(wú)法做高可用,keepalived實(shí)現(xiàn)的是調(diào)度器的高可用,但keepalived不只為lvs集群服務(wù)的,也可以做其他代理服務(wù)器的高可用,比如nginx+keepalived也可實(shí)現(xiàn)高可用(重點(diǎn))
2、作用
解決代理服務(wù)器的高可用問題
lvs的高可用集群:主調(diào)度器和備調(diào)度器(一主一備、一主兩備)
3、工作方式
主調(diào)度器能夠正常運(yùn)行時(shí),由主調(diào)度器進(jìn)行后端真實(shí)服務(wù)器的分配處理,其余的備用調(diào)度器都處于冗余狀態(tài),不參與集群的運(yùn)轉(zhuǎn),當(dāng)主調(diào)度器出現(xiàn)故障無(wú)法運(yùn)行時(shí),備用調(diào)度器承擔(dān)主調(diào)度器的工作,一旦主調(diào)度器恢復(fù)工作,繼續(xù)由主調(diào)度器進(jìn)行處理,備調(diào)度器又處于冗余狀態(tài)
4、keepalived是基于VRRP協(xié)議實(shí)現(xiàn)lvs服務(wù)的高可用,解決了調(diào)度器單節(jié)點(diǎn)的故障問題
5、VRRP協(xié)議:提高網(wǎng)絡(luò)路由器的可靠性開發(fā)的一種協(xié)議
工作原理:
(1)選舉主備。預(yù)先設(shè)定好主和備的優(yōu)先級(jí),選舉出主和備。主的優(yōu)先級(jí)較高,備的優(yōu)先級(jí)低,一旦開啟服務(wù),優(yōu)先級(jí)高的會(huì)自動(dòng)搶占主的位置
(2)檢測(cè)主備。依靠VRRP組播通信檢測(cè)主、備是否正常運(yùn)轉(zhuǎn)。組播通信地址:224.0.0.18。VRRP協(xié)議當(dāng)中的主備服務(wù)器通過組播地址進(jìn)行通信,交換主備服務(wù)器之間的運(yùn)行狀態(tài),主服務(wù)器會(huì)周期性的發(fā)送VRRP報(bào)文消息,告知其他備服務(wù)器主服務(wù)器現(xiàn)在的狀態(tài)
(3)主備切換。主服務(wù)器發(fā)生故障或者不可達(dá),VRRP協(xié)議會(huì)把請(qǐng)求轉(zhuǎn)移到備服務(wù)器。通過組播地址224.0.0.18,VRRP可以迅速的通知其他服務(wù)器立即主備切換,并確保新的主服務(wù)器可以正常的處理客戶端的請(qǐng)求
(4)故障恢復(fù)。一旦主服務(wù)器恢復(fù)通信,由組播地址224.0.0.18進(jìn)行通信,發(fā)現(xiàn)恢復(fù)的主服務(wù)器優(yōu)先級(jí)更高,會(huì)搶占原主服務(wù)器的位置,成為主服務(wù)器調(diào)度和接收請(qǐng)求
6、LVS-DR模式結(jié)合keepalived數(shù)據(jù)流向
7、keepalived的體系模塊
全局模塊:core模塊。負(fù)責(zé)整個(gè)keepalived的啟動(dòng)、加載和維護(hù)
VRRP模塊:實(shí)現(xiàn)VRRP協(xié)議,主備切換
check模塊:配置在真實(shí)服務(wù)器的模塊中。負(fù)責(zé)健康檢查,檢查后端真實(shí)服務(wù)器的健康狀況
8、(重點(diǎn))腦裂:主備同時(shí)擁有VIP地址
1、定義:在高可用系統(tǒng)中,聯(lián)系兩個(gè)節(jié)點(diǎn)的心跳線,本來是一體的,是一個(gè)動(dòng)作協(xié)調(diào)的高可用系統(tǒng)。若心跳線斷開后分裂成兩個(gè)獨(dú)立的個(gè)體,主備之間失去了聯(lián)系,都以為對(duì)方出現(xiàn)了故障,兩個(gè)調(diào)度器像腦裂人一樣開始搶占主的位置和VIP地址,此時(shí)主服務(wù)器有VIP地址,備服務(wù)器也有VIP地址,導(dǎo)致整個(gè)集群失敗
2、問題原因
- 軟件層面:
重啟主備服務(wù)器的keepalived服務(wù)(先重啟主,再重啟備,再模擬一下故障恢復(fù))
①配置文件
②tcpdump抓包分析
- 網(wǎng)絡(luò)層面:
高可用服務(wù)器之間心跳線檢測(cè)失敗(主備之間無(wú)法進(jìn)行通信,ping測(cè)試一下)
- 硬件層面:
①連接主備之間的心跳線老化
②網(wǎng)卡或網(wǎng)卡的驅(qū)動(dòng)失效
③IP地址配置沖突
④防火墻沒有配置心跳線消息的傳輸通道,導(dǎo)致檢測(cè)失敗(VRRP消息發(fā)不出去)
⑤后端服務(wù)器的配置問題(心跳方式不同、心跳廣播沖突、軟件bug等)
3、如何解決腦裂問題?
①硬件:準(zhǔn)備兩條心跳線,這樣斷了一條依然能夠傳送心跳消息
②設(shè)置防火墻,一定讓心跳消息通過
③依靠監(jiān)控軟件實(shí)時(shí)監(jiān)測(cè)(zabbix軟件)
環(huán)境:
dev開發(fā)環(huán)境——開發(fā)人員專用(與運(yùn)維無(wú)關(guān))
sit測(cè)試環(huán)境——測(cè)試人員使用(開發(fā)、運(yùn)維都可以用)
pre預(yù)生產(chǎn)環(huán)境——運(yùn)維和開發(fā)使用(和最終的生產(chǎn)環(huán)境保持一致)
prd生產(chǎn)環(huán)境——面向用戶的最終環(huán)境
常用的是開發(fā)、測(cè)試環(huán)境一塊用,再加上生產(chǎn)環(huán)境
9、LVS+keepalived實(shí)現(xiàn)高可用實(shí)驗(yàn)
keepalived不能有注釋;啟動(dòng)keepalived會(huì)自動(dòng)生成ipvsadm配置,不需要配置ipvsadm配置文件;keepalived配置錯(cuò)誤照樣能重啟
實(shí)驗(yàn)條件:
test1——主調(diào)度器——20.0.0.10——keepalived、ipvsadm服務(wù)
test2——備調(diào)度器——20.0.0.20——keepalived、ipvsadm服務(wù)
nginx1——后端真實(shí)服務(wù)器1——20.0.0.11——nginx服務(wù)
nginx2——后端真實(shí)服務(wù)器2——20.0.0.21——nginx服務(wù)
nginx3——客戶端——20.0.0.31
VIP地址:20.0.0.100(自定義,必須和DIP和RIP在同一網(wǎng)段)
實(shí)驗(yàn)步驟:
1、主調(diào)度器test1——20.0.0.10
(1)安裝、重啟keepalived、ipvsadm服務(wù)
保存配置文件:ipvsadm-save > /etc/sysconfig/ipvsadm
(2)保存配置文件
(3)修改keepalived配置文件,綁定VIP地址和后端真實(shí)服務(wù)器地址
主和備的名稱不能一樣,否則報(bào)錯(cuò)
虛擬路由器的id號(hào)(virtual_router_id 51),主備一致
(4)關(guān)閉主服務(wù)器的轉(zhuǎn)發(fā)功能和重定向
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
2、備份服務(wù)器test2——20.0.0.20
(1)安裝ipvsadm、keepalived服務(wù)
(2)備份keepalived配置文件
(3)遠(yuǎn)程復(fù)制主服務(wù)器的keepalived配置文件
(4)修改keepalived配置文件vim /etc/keealived/keepalived.conf
3、檢測(cè)此時(shí)VIP地址在哪臺(tái)服務(wù)器上
4、后端服務(wù)器nginx1、nginx2設(shè)置靜態(tài)頁(yè)面,便于檢測(cè)輪詢
5、后端服務(wù)器nginx1、nginx2配置虛擬網(wǎng)卡,綁定VIP地址
(1)nginx1
①配置虛擬接口
②綁定回環(huán)接口
③內(nèi)核參數(shù)優(yōu)化(只有真實(shí)服務(wù)器的RIP地址可以返回響應(yīng)結(jié)果)
(2)nginx2
①配置虛擬接口
②綁定回環(huán)接口
③內(nèi)核參數(shù)優(yōu)化(只有真實(shí)服務(wù)器的RIP地址可以返回響應(yīng)結(jié)果)
6、測(cè)試
7、模擬故障
(1)主服務(wù)器故障——驗(yàn)證高可用,主備是否切換
結(jié)論:主備切換成功
(2)主服務(wù)器恢復(fù)正常運(yùn)行——VIP地址是否能切換到原主服務(wù)器
(3)節(jié)點(diǎn)服務(wù)器出現(xiàn)故障——假設(shè)RS1故障
測(cè)試結(jié)果:只能訪問另一個(gè)后端真實(shí)服務(wù)器
(4)節(jié)點(diǎn)服務(wù)器恢復(fù)正常運(yùn)行——假設(shè)RS1正常運(yùn)行
測(cè)試結(jié)果:根據(jù)輪詢算法后端真實(shí)服務(wù)器
10、nginx+keepalived實(shí)現(xiàn)高可用實(shí)驗(yàn)
nginx依靠腳本檢測(cè)主備服務(wù)器的健康生命體征
實(shí)驗(yàn)條件:
nginx4——主服務(wù)器——20.0.0.41——keepalived、ipvsadm服務(wù)
nginx5——備服務(wù)器——20.0.0.51——keepalived、ipvsadm服務(wù)
nginx6——客戶端——20.0.0.61——nginx服務(wù)
VIP地址:20.0.0.100(自定義,必須和DIP和RIP在同一網(wǎng)段)
實(shí)驗(yàn)步驟:
1、主服務(wù)器nginx4
(1)安裝ipvsadm、keepalived服務(wù)
(2)備份keepalived配置文件
(3)修改keepalived配置文件
(4)創(chuàng)建周期性執(zhí)行腳本check_nginx.sh
(5)下載腳本文件到桌面 sz check_nginx.sh
(6)建立靜態(tài)頁(yè)面,便于識(shí)別
2、備服務(wù)器nginx5
(1)安裝ipvsadm、keepalived服務(wù)
(2)備份keepalived配置文件
(3)遠(yuǎn)程連接復(fù)制主服務(wù)器的keepalived配置文件
(4)修改keepalived配置文件
(5)下載剛剛的周期性腳本執(zhí)行文件并賦權(quán)
(6)建立靜態(tài)頁(yè)面,便于識(shí)別
3、檢測(cè)VIP 地址。此時(shí)VIP地址在主服務(wù)器上
4、測(cè)試。沒有輪詢算法
5、模擬主服務(wù)器故障
測(cè)試結(jié)果:備服務(wù)器頂替主服務(wù)器工作
6、模擬備服務(wù)器故障
測(cè)試結(jié)果:主服務(wù)器恢復(fù)正常運(yùn)行