新聞中心
heartbeat+lvs實現(xiàn)高可用負(fù)載均衡原理:

成都創(chuàng)新互聯(lián)服務(wù)項目包括埇橋區(qū)網(wǎng)站建設(shè)、埇橋區(qū)網(wǎng)站制作、埇橋區(qū)網(wǎng)頁制作以及埇橋區(qū)網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,埇橋區(qū)網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到埇橋區(qū)省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
兩臺heartbeat(ldirectord)主機構(gòu)成高可用集群,同時監(jiān)管著lvs(負(fù)載均衡集群)整體構(gòu)成了heartbeat+lvs的高可用負(fù)載均衡集群.在使用heartbeat的時候加載了watchdog模塊,用來檢測heartbeat服務(wù),當(dāng)heartbeat服務(wù)出現(xiàn)故障,會進行重啟主機。
注意:但是,當(dāng)內(nèi)核崩潰了,watchdog也無能了(modprobe softdog),因為watchdog是基于內(nèi)核級別的軟件服務(wù)(相當(dāng)于軟fence一種硬件保護機制)
實驗環(huán)境:CentOS 6.4
系統(tǒng)架構(gòu)主要由四臺主機組成,兩臺heartbeat主機作為lvs和heartbeat,兩臺Real Server主機作為真實服務(wù)器。
實驗準(zhǔn)備:
1.在本地/etc/hosts文件中定義各個節(jié)點的解析。
2.關(guān)閉selinux和iptables
3.軟件下載:heartbeat-3.0.4-1.el6.x86_64.rpm heartbeat-devel-3.0.4-1.el6.x86_64.rpm
ldirectord-3.9.2-1.2.x86_64.rpm heartbeat-libs-3.0.4-1.el6.x86_64.rpm
實驗步驟:
一、heartbeat安裝及配置:
# yum localinstall *.rpm 使用yum方式安裝,能夠解決本地rpm包所需要依賴(前提得需要yum源)
#less /etc/ha.d/README.config
ha.cf Main configuration file heartbeat高可用主配置文件
haresources Resource configuration file 資源文件
authkeys Authentication information 認(rèn)證文件
# cd /usr/share/doc/heartbeat-3.0.4/
# cp authkeys haresources ha.cf /etc/ha.d/
# vim ha.cf
debugfile /var/log/ha-debug
logfile /var/log/ha-log
keepalive 2 指定心跳間隔為2s
deadtime 30 備用節(jié)點在30s后自動接管資源
warntime 10 心跳延遲10s,10s內(nèi)備用機不接受主節(jié)點心跳 就會發(fā)出警告
initdead 60 重啟后恢復(fù)網(wǎng)絡(luò)的時間(至少deadtime的2倍)
udpport 666 廣播通信使用的端口
bcast eth0 使用廣播()
auto_failback on 故障轉(zhuǎn)換
watchdog /dev/watchdog 這個得加載一個模塊
node server66.cdxwcx.com 主節(jié)點和輔助節(jié)點
node server68.cdxwcx.com
ping 192.168.0.253 測試連通性,***是網(wǎng)關(guān)
respawn選項是可選的,列出與heartbeat一起啟動和關(guān)閉的進程,該進程一般是和heartbeat集成的插件,這些進程遇到故障可以自動重啟。默認(rèn)使用ipfail
respawn hacluster /usr/lib64/heartbeat/ipfail 檢測和處理網(wǎng)絡(luò)故障
#apiauth client-name gid=gidlist uid=uidlist
apiauth ipfail gid=haclient uid=hacluster ipfail的運行用戶和組
加載watchdog,軟fence監(jiān)控heartbeat并且重啟
# modprobe softdog
# vi /etc/rc.local 設(shè)置開機自動加載
modprobe softdog
# vim authkeys 認(rèn)證文件權(quán)限必須600
auth 3
#1 crc
#2 sha1 HI!
3 md5 Hello!
# chmod 600 authkeys
# vim haresources
server68.cdxwcx.com IPaddr::192.168.0.234/24/eth0 httpd 定義主節(jié)點,虛擬ip和監(jiān)控的服務(wù)
要確定主節(jié)點的httpd服務(wù)啟動了
heartbeat默認(rèn)可用監(jiān)控一下目錄的服務(wù):
/etc/init.d/ ;/etc/ha.d/resource.d/ ;/etc/ha.d/rc.d/
heartbeat安裝配置完成,此時可以在另外一臺主機上安裝heartbeat,并且進行相應(yīng)的配置。(注意,在配置集群的時候,盡量選擇相同配置的主機,這樣便于以后管理和排錯)
測試heartbeat:
#/etc/init.d/heartbeat start 分別在兩臺heartbeat主機上啟動服務(wù)
#tail -f /var/log/message 查看日志發(fā)現(xiàn)server68主機接管VIP資源,此時可以ping同VIP
同時heartbeat服務(wù)監(jiān)控本地httpd服務(wù),發(fā)現(xiàn)httpd也會開啟
二、構(gòu)建lvs負(fù)載均衡集群
在之前兩臺heartbeat主機上進行相同的安裝配置操作(部分參數(shù)得指定)
使用lvs負(fù)載均衡會使用到三種工作方式(NAT/DR/TNU)和八種調(diào)度算法,這里就做說明。
lvs的配置一般有三種方式:通過ipvsadm命令配置
通過ldirectord(heartbeat插件)來配置
通過紅帽可視化piranha軟件進行配置
通過ipvsadm命令配置lvs:
# ipvsadm -A -t 192.168.0.224:80 -s rr 定義一個VIP,使用輪詢
# ipvsadm -a -t 192.168.0.224:80 -r 192.168.0.103:80 -g 定義rs使用DR模式
# ipvsadm -a -t 192.168.0.224:80 -r 192.168.0.191:80 -g
本章將使用ldirectord配置lvs:
ldirectord工作原理:
ldirectord 需要你在真實服務(wù)器內(nèi)啟用apache服務(wù)器,并在每臺真實服務(wù)器web服務(wù)器的根目錄下建立你在配置文件所指定的文件與內(nèi)容,然后ldirectord 通過循環(huán)檢查此文件來確定真實服務(wù)器是否存活,如果不存活,則自動將其權(quán)重設(shè)為0,以確保后面客戶的連接不會再導(dǎo)向失效的真實服務(wù)器,如果真實服務(wù)修復(fù)上線后,則其又將它的權(quán)重設(shè)為以使它能夠繼續(xù)為客端連接提供服務(wù)。
ldirectord主要是通過調(diào)用ipvsadm來創(chuàng)建ipvs虛擬服務(wù)器表。
#yum install ipvs -y
#yum localinstall ldirectord****.rpm
perl-IO-Socket-INET6 ldirectord啟動時需要的包
#/etc/init.d/ldirectord start
使用ldirectord來配置lvs,并將ldirectord交給heartbeat控管:
將lvs交給ldirectord來監(jiān)控:
注意:heartbeat上安裝ldirectord
heartbeat上安裝lvs
主備配置文件一致
#cp -r /usr/share/doc/packages/ldirectord/ldirectord.cf /etc/ha.d/
#vim /etc/ha.d/ldirectord.cf
virtual=192.168.0.224:80 定義虛擬資源VIP
real=192.168.0.103:80 gate 指定后端真實服務(wù)器,采用DR調(diào)度模式
real=192.168.0.191:80 gate
fallback=127.0.0.1:80 gate 當(dāng)真實服務(wù)器宕機,本機自動接管
service=http
scheduler=rr 使用輪詢調(diào)度算法
#persistent=600
#netmask=255.255.255.255
protocol=tcp
checktype=negotiate
checkport=80
#vim /etc/init.d/ldirectord
#. /etc/ha.d/shellfuncs 注釋掉
#/etc/init.d/ldirectord start
Real Server需要進行一下配置:
注意:在配置lvs負(fù)載均衡時,后端真實服務(wù)器需要制定VIP和禁止arp(使用arptables軟件)
#yum install arptables_jf -y
#ifconfig lo:0 192.168.0.224 netmask 255.255.255.255
#arptables -A IN -d 192.168.0.224 -j DROP VIP設(shè)置
#arptables -A OUT -s 192.168.0.224 -j mangle --mangle-ip-s 192.168.0.103 增加RS
#/etc/init.d/arptables_jf save
#chkconfig arptables_jf on
lvs負(fù)載均衡集群配置成功
測試:在瀏覽器中訪問http://192.168.0.224 會自動加載103和191的web發(fā)布頁面,刷新會自動跳轉(zhuǎn)則配置成功。
三、整合heartbeat+lvs實現(xiàn)高可用負(fù)載均衡
首先在另外一臺heartbeat主機上安裝并且配置LVS,并且啟動相應(yīng)的服務(wù)。
修改heartbeat資源配置文件:
# vim haresources
server68.cdxwcx.com IPaddr::192.168.0.224/24/eth0 httpd ldirectord
注意:主備心跳節(jié)點必須同步哦
這樣,就可以使用heartbeat來監(jiān)控和控制lvs了(其實是heartbeat能夠監(jiān)控三個目錄里的腳本文件,就直接監(jiān)控了ldirectord,而ldirectord又用來配置和監(jiān)控LVS)
測試:現(xiàn)在直接關(guān)閉ldirectord
開啟heartbeat,會發(fā)現(xiàn)ldirectord開啟了,同時訪問流量器能夠訪問RS的內(nèi)容
其實是lvs負(fù)載均衡過來的哦
測試高可用性和負(fù)載均衡性吧!
1.當(dāng)關(guān)閉任何一個heartbeat主機,另外一個heartbeat主機會進行檢測和接管服務(wù)(VIP和ldirectord,ldirectord其實監(jiān)控的lvs),因此不會影響客戶對后端真實服務(wù)的訪問。
2.負(fù)載均衡測試:在不斷的刷新過程中,會刷新出不同Real Server主機發(fā)布的頁面。
文章標(biāo)題:heartbeat+lvs構(gòu)建高可用負(fù)載均衡集群
當(dāng)前URL:http://www.5511xx.com/article/cdcodig.html


咨詢
建站咨詢
