日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

[集群] Heartbeat LVS ldirectord構(gòu)建可伸縮網(wǎng)絡服務 (兩...

 Colin收藏 2012-02-17
[集群] Heartbeat + LVS + ldirectord構(gòu)建可伸縮網(wǎng)絡服務 (兩臺服務器)
2010-08-01 0:35
網(wǎng)絡環(huán)境:
機器數(shù)量:2
操作系統(tǒng)Centos 5.0,Centos 5.2
機器名:centos50,centos52
機器IP:
Centos 5.0: 10.2.20.15
Centos 5.2: 10.2.20.88
虛擬IP: 10.2.20.17


需要的軟件
httpd:提供web服務
LVS:對web服務器按照一定的規(guī)則進行轉(zhuǎn)發(fā)
Heartbeat:提供ip漂移服務,在主服務器宕機后,備份服務器接管虛擬ip
ldirectord:提供lvs控制,監(jiān)控真實服務器,出現(xiàn)問題后,對輪循列表進行更新,去除出現(xiàn)問題的服務器


機器角色:

centos50:主負載均衡器+真實服務器
centos52:備份負載均衡器+真實服務器


實現(xiàn)功能:

兩臺服務器做為負載均衡器進行主從互備,并充當真實服務器功能,對外提供服務,當真實服務器出現(xiàn)問題后,主負載均衡器能夠檢測到,并從負載均衡輪循列表清除有問題的真實服務器。
當主負載均衡器出現(xiàn)問題后,備份負載均衡器能夠接管負載均衡服務,使服務不受影響。


1.最小化安裝操作系統(tǒng);

2.在兩臺機器上配置機器名
在/etc/hosts文件中添加主機名記錄,確保兩臺機器能夠通過主機名相互ping通


3.安裝httpd,heartbeat,ldirectord
centos 5.2內(nèi)核已經(jīng)包含lvs,不用安裝,只安裝httpd,heartbeat,ldirectord
yum install httpd,heartbeat,heartbeat-ldirector


4.配置lvs,在兩臺機器上進行如下操作
1).為回環(huán)接口配置虛擬ip
cp /etc/sysconfig/network-scripts/ifcfg-lo /etc/sysconfig/network-scripts/ifcfg-lo:0
修改/etc/sysconfig/network-scripts/ifcfg-lo:0文件,內(nèi)容如下:
DEVICE=lo:0
IPADDR=10.2.20.16       #虛擬ip地址
NETMASK=255.255.255.255
BROADCAST=255.255.255.255
ONBOOT=yes
NAME=loopback
啟動lo:0接口
ifup lo:0
2).修改arp轉(zhuǎn)發(fā)規(guī)則
修改/etc/sysctl.conf文件,添加如下內(nèi)容:
net.ipv4.ip_forward = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
運行sysctl -p命令,使用配置生效
3).編寫lvs真實服務器啟動腳本
在/etc/init.d目錄下新建文件realserver,內(nèi)容如下:
#!/bin/sh
#Create on 2007-11-21
#Description start lvs,disable arp response
VIP=10.2.20.17    #虛擬ip
#. /etc/rc.d/init.d/functions
case "$1" in
start)
echo "lvs start"
/sbin/ifconfig lo:0 down
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
;;
stop)
echo "lvs stop"
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
/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
;;
*)
echo "Usage0 {start|stop}"
exit
;;
esac
修改文件權(quán)限,使腳本有執(zhí)行權(quán)限
chmod +x realserver


5.配置Heartbeat
1).在/etc/ha.d目錄新建ha.cf文件,內(nèi)容如下:
logfile    /var/log/ha-log    #heartbeat日志文件位置
logfacility    local0    #將heartbeat日志記錄到系統(tǒng)日志中,可選
keepalive 2    #設定heartbeat之間的檢測時間間隔為2秒
deadtime 30    #在無響應30秒后宣布節(jié)點死亡
warntime 10    #在日志中發(fā)出“l(fā)ate heartbeat“警告之前等待的時間,單位為秒
initdead 60    #在某些配置下,重啟后網(wǎng)絡需要一些時間才能正常工作。這個單獨的”deadtime”選項可以處理這種情況。它的取值至少應該為通常deadtime的兩倍。
udpport    694    #使用端口694進行bcast和ucast通信。這是默認的,并且在IANA官方注冊的端口號
auto_failback on    #auto_failback設置為on時,一旦主節(jié)點重新恢復聯(lián)機,將從從節(jié)點取回所有資源。若該選項設置為off,主節(jié)點便不能重新獲得資源。
watchdog /dev/watchdog    #可以在檢測到heartbeat不正常狀態(tài)持續(xù)一分鐘后自動重新啟動系統(tǒng)
node    centos50    #集群中機器的主機名,與“uname –n”的輸出相同,主結(jié)點
node    centos52    #同上,備份結(jié)點
ping 10.2.20.254    #用來為ipfail等模塊檢查網(wǎng)絡連接情況的,這里不應是集群節(jié)點
respawn hacluster /usr/lib64/heartbeat/ipfail    #在heartbeat啟動進運行的程序,ipfail插件的用途是檢測網(wǎng)絡故障,并作出合理的反應
2).在/etc/ha.d目錄新建authkeys文件,內(nèi)容如下
auth 1
1 crc
這個文件用來在集群機器間進行認證,如果您的Heartbeat運行于安全網(wǎng)絡之上,可以使用crc,從資源的角度來看,這是代價最低的方法。如果網(wǎng)絡并不安全,但您也希望降低CPU使用,則使用md5。最后,如果您想得到最好的認證,而不考慮CPU使用情況,則使用sha1,它在三者之中最難破解。
3).在/etc/ha.d目錄新建haresources文件,內(nèi)容如下
centos50 realserver IPaddr::10.2.20.17 ldirectord
centos50:集群主節(jié)點,它應該與uname -n命令輸出的內(nèi)容相同
realserver,IPaddr,ldirectord:服務腳本,Heartbeat會在以下路徑中尋找有相同名字的服務腳本:/etc/ha.d/resource.d ,/etc/init.d,所以我們的腳本應該在這兩個目錄下
::10.2.20.17:腳本參數(shù),若要向教本傳遞參數(shù),格式應該為: <scriptname>::<argument>
heartbeat 在啟動會使用<scriptname> start形式運行腳本,啟動順序是先運行realserver腳本,再運行IPaddr腳本,最后運行l(wèi)directord腳本,停止時會使用<scriptname> stop運行腳本,停止順序是先停止ldirectord腳本,再停止IPaddr腳本,最后停止realserver腳本。

注意:realserver 腳本的作用比較特殊,我們這里兩臺機器充當?shù)慕巧容^多,包括主從備份結(jié)點,負載均衡器,提供服務的真實服務器。為了實現(xiàn)真實服務器功能,我們需要在lo 接口綁定虛擬ip,并修改內(nèi)核arp轉(zhuǎn)發(fā)規(guī)則,使負載均衡功能正常。所以在操作系統(tǒng)啟動時我們配置自動啟動配置了虛擬ip的lo:0接口,并修改內(nèi)核 arp轉(zhuǎn)發(fā)規(guī)則。

主結(jié)點heartbeart啟動時,如果不關閉lo:0接口,IPaddr腳本就會運行不正常,不能在真實網(wǎng)卡上綁定虛擬ip。所以在主節(jié)點啟動時我們要將lo:0接口關閉,以使IPaddr腳本正常運行,將虛擬ip綁定到真實網(wǎng)卡;在主結(jié)點不正常時再通過 realserver腳本啟動lo:0接口,實現(xiàn)真實服務器功能。

備份結(jié)點heartbeat啟動時,會檢測主結(jié)點狀態(tài),如果主結(jié)點狀態(tài)正常,它只充當真實服務器角色,不會運行haresources里面的內(nèi)容,這樣 lo:0接口不會關閉,備份結(jié)點的真實服務器功能就可以實現(xiàn);在檢測到主結(jié)點出現(xiàn)問題后,備份結(jié)點要先把lo:0接口關閉,然后在真實網(wǎng)卡綁定虛擬ip,并通過ldirectord配置lvs輪循列表,充當負載均衡器。

這段話比較啰嗦,不知道我說明白沒有!
4).在/etc/ha.d目錄新建ldirectord.cf文件,內(nèi)容如下
checktimeout=3
checkinterval=5
fallback=127.0.0.1:80
autoreload=yes
logfile="/var/log/ldirectord.log"
quiescent=yes

virtual=10.2.20.17:80
real=10.2.20.15:80 gate 5
real=10.2.20.88:80 gate 5
fallback=127.0.0.1:80 gate
service=http
request="test.html"
receive="Test Page"
scheduler=wlc
checktype=negotiate
文件內(nèi)容的含義,在網(wǎng)上找找,寫不下去了
在web服務器根目錄新建文件test.html,內(nèi)容:Test Page
在web服務器根目錄新建文件index.html,內(nèi)容:This is server1


5).將以上文件全部復制到另一臺機器
scp ha.cf authkeys haresources ldirectord.cf root@xxx.xxx.xxx.xxx:/etc/ha.d/
修改authkeys文件權(quán)限為600
在web服務器根目錄新建文件test.html,內(nèi)容:Test Page
在web服務器根目錄新建文件index.html,內(nèi)容:This is server2


6.在兩臺機器上啟動heartbeat
service heartbeat start


7.測試服務器狀態(tài)
通過ifconfig命令查看主結(jié)點是否在真實網(wǎng)卡上綁定了虛擬ip
通過ipvsadm -l 命令查看主結(jié)點lvs輪循列表是否正常
通過虛擬ip訪問web服務,并刷新,看負載均衡功能是否正常
通過拔掉主結(jié)點網(wǎng)線,查看備份結(jié)點是否能夠接管虛擬ip

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多