這篇文章將為大家詳細(xì)講解有關(guān)如何使用LVS+heartbeat構(gòu)建高可用web集群,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
為龍華等地區(qū)用戶(hù)提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及龍華網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、龍華網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專(zhuān)業(yè)、用心的態(tài)度為用戶(hù)提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶(hù)的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
從事運(yùn)維兩年多以來(lái)一直沒(méi)有去碰heartbeat,以前凡是牽扯到HA的應(yīng)用一般都是用keepalived。原因是因?yàn)閔eartbeat太笨重,配置起來(lái)不不像keepalived那么簡(jiǎn)單,如果一個(gè)應(yīng)用越是復(fù)雜,那么它的故障并發(fā)率必然也就越高,恢復(fù)故障時(shí)用的時(shí)間也就越長(zhǎng)。這次接觸heartbeat是被逼無(wú)奈,因?yàn)楣揪€上的集群環(huán)境是用LVS+heartbeat為后端應(yīng)用做的分發(fā)。所以要血補(bǔ)一下heartbeat上的知識(shí)。搭建heartbeat時(shí)遇到一些小麻煩,在此分享一下lvs+heartbeat的部署過(guò)程和搭建時(shí)該注意細(xì)節(jié)
準(zhǔn)備工作:
1、在master和backup系統(tǒng)的hosts文件中添加如下信息
10.10.10.1 master
10.10.10.2 backup
2、開(kāi)啟master節(jié)點(diǎn)和backup節(jié)點(diǎn)系統(tǒng)的IP轉(zhuǎn)發(fā)功能
# vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
一、安裝LVS、heartbeat
#tar zxvf ipvsadm-1.24.tar.gz
#cd ipvsadm-1.24
#ln -s /usr/src/kernels/2.6.18-164.el5-i686/ /usr/src/linux
#make && make install
#tar zxvf libnet-1.1.2.1.tar.gz
#cd libnet
#./configure
#make && make install
#groupadd -g 694 haclient
#useradd -u 694 -g haclient hacluster
#tar zxvf heartbeat-2.0.8.tar.gz
#cd heartbeat-2.0.8
#./ConfigureMe configure
#make && make install
二、配置heartbeat和LVS
安裝完heartbeat后系統(tǒng)會(huì)生成一個(gè)/etc/ha.d/目錄,此目錄用于存放heartbeat的有關(guān)配置文件。Heartbeat自帶配置文件的注釋信息較多,我們?cè)诖耸止ぞ帉?xiě)有關(guān)配置文件,heartbeat常用配置文件有四個(gè),分別是:
ha.cf:heartbeat主配置文件
ldirectord.cf:資源管理文件
haresources:本地資源文件
authkeys:認(rèn)證文件
1 、配置 ha.cf
#vi /etc/ha.d/ha.cf
logfile /var/log/ha.log #日志文件放置路徑 keepalive 2 #心跳頻率,默認(rèn)為秒 deadtime 10 #判斷節(jié)點(diǎn)死亡時(shí)間 warntime 5 #警告時(shí)間 initdead 30 #deadtime的最少兩倍 udpport 694 #監(jiān)聽(tīng)端口 bcast eth2 #心跳使用的網(wǎng)絡(luò)接口 auto_failback off #當(dāng)主節(jié)點(diǎn)恢復(fù)正常后,是否切換到主節(jié)點(diǎn) node master #主節(jié)點(diǎn) node backup #備用節(jié)點(diǎn) ping_group group1 192.168.1.103 192.168.1.104 #real server地址 respawn hacluster /usr/lib/heartbeat/ipfail apiauth ipfail gid=haclient uid=hacluster |
2 、配置 ldirectord.cf
# vi /etc/ha.d/ldirectord.cf
checktimeout=5 #檢測(cè)超時(shí)時(shí)間 checkinterval=1 #檢測(cè)時(shí)間 autoreload=yes #配置文件改動(dòng)時(shí)是否自動(dòng)加載 logfile="/var/log/ldirectord.log" # ldirectord日志路徑 quiescent=no #檢測(cè)到real server異常后是否保留該real server的配置 virtual=192.168.1.100:80 #VIP real=192.168.1.103:80 gate #real server real=192.168.1.104:80 gate #real server service=http checkport=80 protocol=tcp persistent=600 #連接會(huì)話(huà)保持時(shí)間 scheduler=wlc #LVS負(fù)載算法 checktype=negotiate #通過(guò)交互來(lái)判斷服務(wù)是否正常 |
3 、配置 haresources
#vi /etc/ha.d/haresources
master IPaddr::192.168.1.100 ipvsadm ldirectord |
注:master為L(zhǎng)VS主節(jié)點(diǎn)主機(jī)名稱(chēng);IPaddr為VIP;ipvsadm ldirectord為所要監(jiān)視的應(yīng)用
4 、配置 authkeys
# vi /etc/ha.d/authkeys
auth 3 3 md5 test |
# chmod 600 /etc/ha.d/authkeys
注:權(quán)限一定要設(shè)置為600,不然heartbeat啟動(dòng)時(shí)會(huì)報(bào)錯(cuò)
5 、配置 IPVS
#vi /etc/sysconfig/ipvsadm
-A -t 192.168.1.100:80 -s wlc -p 600 -a -t 192.168.1.100:80 -r 192.168.1.103:80 -g -a -t 192.168.1.100:80 -r 192.168.0.104:80 -g |
注:-p 600的意思是會(huì)話(huà)保持時(shí)間為600秒,應(yīng)該和ldirectord.cf文件配置一致
6 、啟動(dòng) heartbeat
# /etc/init.d/heartbeat start
#echo "/etc/init.d/heartbeat start" >>/etc/rc.local
注:?jiǎn)?dòng)heartbeat后注意觀察三點(diǎn):①:檢查系統(tǒng)UDP694是否啟動(dòng);②:觀察heartbeat日志,看是否有錯(cuò)誤信息輸出,本次啟動(dòng)heartbeat時(shí)日志中報(bào)錯(cuò)信息如下
ResourceManager[11840]: 2011/04/09_19:56:51 ERROR: Return code 2 from /etc/init.d/ldirectord
ResourceManager[11840]: 2011/04/09_19:56:51 ERROR: Resource script for ldirectord probably not LSB-compliant.
后來(lái)經(jīng)過(guò)排查是發(fā)現(xiàn)系統(tǒng)通過(guò)heartbeat去啟動(dòng)ldirectord時(shí)無(wú)法啟動(dòng),報(bào)錯(cuò)信息如下:
Can’t locate LWP/UserAgent.pm
原因是因?yàn)槿鄙傧鄳?yīng)perl模塊,安裝上libwww-perl 、perl-MailTools后ldirectord便可正常啟動(dòng)。③檢查網(wǎng)卡是否加載上了VIP,啟動(dòng)heartbeat約15秒左右,系統(tǒng)會(huì)自動(dòng)生成VIP并自動(dòng)加載到eth0:0網(wǎng)卡,可使用ifconfig查看
7 、查看 LVS 是否載入了 real server
# watch ipvsadm –ln
Every 2.0s: ipvsadm -ln Tue Apr 12 00:33:58 2011
IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.1.100:80 wlc persistent 600 -> 192.168.1.104:80 Route 1 0 0 -> 192.168.1.103:80 Route 1 0 0 |
現(xiàn)在還LVS還無(wú)法正常處理訪問(wèn)分發(fā),原因是因?yàn)楝F(xiàn)在LVS只知道如何把請(qǐng)求轉(zhuǎn)向后端服務(wù)器,但是后端服務(wù)器還不知道如何處理返回的請(qǐng)求。因此,還需要在real server上綁定LVS服務(wù)器
注:本次環(huán)境lvs+heartbeat在master和backup節(jié)點(diǎn)上的安裝、配置均一模一樣,所以在此不再累述backup節(jié)點(diǎn)的安裝和配置
三、配置real server(web1和web2)
在web1和web2上分別編寫(xiě)如下腳本,然后啟動(dòng)即可,啟動(dòng)后系統(tǒng)會(huì)在回環(huán)接口上自動(dòng)綁定一個(gè)虛擬IP
# vi /etc/sysconfig/real.sh
#!/bin/bash #description : start realserver VIP=192.168.1.100 /etc/rc.d/init.d/functions case "$1" in start) echo " start LVS of REALServer" /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce ;; stop) /sbin/ifconfig lo:0 down echo "close LVS Directorserver" echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce ;; *) echo "Usage: $0 {start|stop}" exit 1 esac |
# chmod +x /etc/sysconfig/real.sh
# /etc/sysconfig/real.sh start
#echo "/etc/sysconfig/real.sh start" >>/etc/rc.local
四、測(cè)試
1、關(guān)閉web1或者web1上任意一臺(tái)web服務(wù),看訪問(wèn)VIP是否正常
2、停止master節(jié)點(diǎn)上的heartbeat進(jìn)程,看VIP是否會(huì)自動(dòng)切換到backup節(jié)點(diǎn);恢復(fù)master節(jié)點(diǎn),停止backup上的heartbeat進(jìn)程,看VIP是否會(huì)自動(dòng)切換到master節(jié)點(diǎn)
3、將master節(jié)點(diǎn)關(guān)機(jī),看VIP是否會(huì)自動(dòng)切換到backup;開(kāi)啟master節(jié)點(diǎn),關(guān)閉backup,看VIP是否會(huì)自動(dòng)切換到master節(jié)點(diǎn)。測(cè)試時(shí)多觀察一下heartbeat日志
注:本環(huán)境中backup節(jié)點(diǎn)與bmaster節(jié)點(diǎn)安裝配置均相同,所以在此不再累述backup節(jié)點(diǎn)的配置。
關(guān)于“如何使用LVS+heartbeat構(gòu)建高可用web集群”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。
分享文章:如何使用LVS+heartbeat構(gòu)建高可用web集群
瀏覽地址:http://m.kartarina.com/article44/jecohe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、網(wǎng)站排名、全網(wǎng)營(yíng)銷(xiāo)推廣、網(wǎng)站設(shè)計(jì)、虛擬主機(jī)、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)