LVS ipvsadm+heartbeat+ldirecrtord安裝配置指南
VIP 172.16.6.250
master 172.16.6.204
backup 172.16.6.205
real 172.16.6.206
real 172.16.6.207
提供的服務器爲web端口80
用到如下程序,ipvsadm,heartbeat,ldirecrtord,libnet,mailtools
libnet和mailtools是用來支持heartbeat和ldirecrtord的
編譯安裝ipvsadm
tar zxf ipvsadm-1.24.tar.gz
cd ipvsadm-1.24/
make
make install
編譯安裝libnet
tar zxf libnet-1.1.2.1.tar.gz
cd libnet
./configure
make
make install
編譯安裝mailtools
tar zxf MailTools-2.04.tar.gz
cd MailTools-2.04
perl Makefile.PL
make
make test
make install
編譯安裝heartbeat和ldirecrtord,他兩在一塊兒
tar jxf Heartbeat-STABLE-2-1-STABLE-2.1.4.tar.bz2
cd Heartbeat-STABLE-2-1-STABLE-2.1.4
./ConfigureMe configure
make
make install
編譯安裝完成後會在/etc/ha.d中生成一些文件,可是配置文件仍是須要咱們手動來建立或者cp默認的模板,位置在Heartbeat-STABLE-2-1-STABLE-2.1.4/doc中
你能夠cp authkeys,ha.cf,haresources,../ldirectord/ldirectord.cf文件到/etc/ha.d目錄中
下一步咱們來修改主配置文件ha.cf
vi ha.cf
debugfile /var/log/ha-debug
logfile /var/log/ha-log 日誌文件的路徑
logfacility local0
keepalive 2 心跳檢測的平率爲2秒一次
deadtime 30 若是30秒內沒有相應心跳就作切換
warntime 10 指明心跳的延時爲10秒作警告記錄一條日誌,沒有其餘動做
initdead 120 這個值設置成deadtime的兩倍就能夠了
udpport 694 數據通訊的端口
bcast eth1 eth1爲心跳工做接口
ucast eth1 192.168.1.3 檢測對端心跳接口的地址
auto_failback on 當主節點回復後,自動切換
node lvs_master 主控機計算機名 //主控機的在前面
node lvs_backup 備用機計算機名 //備用機的在後面
ping 172.16.6.254 檢測網絡是否正常,能夠設置成網關地址
respawn root /usr/lib/heartbeat/ipfail ipfail文件的路徑
apiauth ipfail gid=root uid=root 啓用ipfail進程的用戶是root
vi haresources
lvs_master 172.16.6.250 ipvs ldirectord
lvs_master只主節點的計算機名 172.16.6.250是VIP地址,ipvs和ldirecrtord是啓動腳本,當主節點宕機或者備用節點宕機後都會經過這個腳本文件去啓動服務,ldirecrtord腳本的位置能夠再/etc/rc.d/init.d中找到,ipvs是手工建立的
vi ipvs
ipvs
#!/bin/sh
VIP=172.16.6.250
RIP1=172.16.6.206
RIP2=172.16.6.207
. /etc/rc.d/init.d/functions
case "$1" in
start)
echo " start LVS "
# # set the Virtual IP Address
/sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up
# /sbin/route add -host $VIP dev eth0:1
/sbin/ipvsadm -C
/sbin/ipvsadm -A -t $VIP:80 -s rr
/sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g
/sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g
;;
stop)
echo "close LVS Director"
/sbin/ipvsadm -C
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
配置驗證文件
vi authkeys
auth 1
1 crc
一共有三個級別,本身工具狀況選擇吧,我用的是第一種默認的
配置ldirecrtord.cf
checktimeout=3 檢測超時
checkinterval=1 檢測間隔
autoreload=yes 重新載入客戶機
logfile="/var/log/ldirectord.log" 日誌路徑
logfile="local0"
quiescent=no
virtual=172.16.6.250:80 VIP地址監聽80端口
real=172.16.6.206:80 gate 真機IP地址和端口 路由模式
real=172.16.6.207:80 gate
fallback=127.0.0.1:80 gate
service=http 服務是http
request="test.html" 這個文件必定要在real的web目錄中存在,而且可以正常訪問的,ipvs經過它來判斷客戶端是否存活
receive="test" 文件內容
scheduler=rr
protocol=tcp
checktype=negotiate
checkport=80
把上面全部的配置文件複製到backup機上,別忘了ipvs的腳本文件也同樣要複製的,惟一要改的地方是ha.cf中ucast eth1 192.168.1.3把他修改爲主節點的心跳監聽接口的地址
下面我來配置real
real不須要安裝任何軟件,我這裏從網上找了一個腳本效果還不錯
vi /etc/rc.d/init.d/real.sh
#!/bin/bash
#description : start realserver
VIP=172.16.6.250
/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
修改它的執行權限,而後用./real.sh start來啓動它
在master上運行/etc/rc.d/init.d/heartbeat start和/etc/rc.d/init.d/ldirectord start這兩個服務
Backup上只運行/etc/rc.d/init.d/heartbeat start 就能夠了ldirectord 服務器會在主節點宕機後自動經過讀取haresources文件來啓動
這樣整個lvs結構就配置完成了,能夠經過
http://172.16.6.250來訪問web了 在lvs上能夠經過ipvsadm -lnc來查看具體的信息