简单的LVS+HEARTBEAT+LDIRECTORD组成的一个LB+HA的集群案例(欢迎装载http://space.itpub.net/22779291/)
lvs+heartbeat+ldirectord
________
| client |
|________|
CIP= SGW =192.168.55.1/24 (eth0)
|
|
__________ |
| director | |
| primiary |---| DIP=192.168.55.2/24 (eth0)
|__________| |
| |
| |
| | VIP=192.168.55.9/32 (eth0:0)*
| | heartbeat ,ldirectord,ipvsadm
_____|____ |
| director | |
| backup |---| DIP=192.168.55.3/24 (eth0)
|__________| |
|
|
-----------------------------------
| |
| |
RIP=192.168.55.7/24 (eth0) RIP=192.168.55.8/24 (eth0)
VIP=192.168.55.9/32 (lo:0) VIP=192.168.55.9/32 (lo:0)
____________ ____________
| | | |
| realserver | ----------- | realserver |
|____________| arptables |____________|
1.安装软件
调度器
perl*
arptables_jf.i386
heartbeat-2.1.3-3.el5.centos.i386.rpm
heartbeat-devel-2.1.3-3.el5.centos.i386.rpm
heartbeat-gui-2.1.3-3.el5.centos.i386.rpm
heartbeat-ldirectord-2.1.3-3.el5.centos.i386.rpm
heartbeat-pils-2.1.3-3.el5.centos.i386.rpm
heartbeat-stonith-2.1.3-3.el5.centos.i386.rpm
ipvsadm.i386
heartbeat-ldirectord-2.1.3-3.el5.centos
真实服务器
arptables_jf.i386
2.复制文件
cp /usr/share/doc/heartbeat-2.1.3/ha.cf /etc/ha.d/
cp /usr/share/doc/heartbeat-2.1.3/haresources.cf /etc/ha.d/
cp /usr/share/doc/heartbeat-2.1.3/authkeys /etc/ha.d/
cp /usr/share/doc/heartbeat-ldirectord-2.1.3/ldirectord.cf /etc/ha.d/
3.修改各个配置文件
a.vi /etc/ha.d/ha.cf
logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 30
warntime 10
initdead 120
udpport 694
baud 19200
mcast eth0 225.0.0.1 694 1 0
auto_failback on
node raca
node racb
ping_group group1 192.168.55.2 192.168.55.3
respawn root /usr/lib/heartbeat/ipfail
apiauth ipfail gid=root uid=root
--------------------------------------------
logfile /var/log/ha-log 生成日志
logfacility local0 日志级别
keepalive 2 心跳时间
deadtime 30 死亡时间(没有心跳间隔时间)
warntime 10 延迟时间(主从之间进行联系,在这时间段中如果没有联系,则在日志中写 入一个警告日志)
initdead 120 重新启动网络初始化时间
udpport 694 以udp端口进行广播(ha所有)
mcast eth0 225.0.0.1 694 1 0 组播 1表示TTL值
ucast eth0 192.168.1.2 point-to-point的方式
auto_failback on =off时,则不能进行主从切换
stonith baytech /etc/ha.d/conf/stonith.baytech watchdog服务
node ken3 主从节点主机名
ping 10.10.10.254 以广播方式
ping_group group1 10.10.10.254 10.10.10.253 一般ping gateway
ping_group group1 192.168.2.2 192.168.2.3
hbaping fc-card-name fc网络
respawn hacluster /usr/lib/heartbeat/ipfail 服务再生能力(ipfail做vip的转换)
respawn root /usr/lib/heartbeat/ipfail
apiauth ipfail uid=root gid=root 认证方式
------------------------------------------------
b.vi /etc/ha.d/haresources
raca IPaddr::192.168.55.9/24/eth0 lvsds ldirectord (主调度器的名字,)
c.vi /etc/ha.d/authkey
auth 1
1 crc
chmod 600 /etc/ha.d/authkey
d.vi /etc/ha.d/lidirectord
virtual=192.168.55.9:80
real=192.168.55.7:80 gate
real=192.168.55.8:80 gate
fallback=127.0.0.1:80 gate
service=http
request="ha-index.html"
receive="Test"
virtualhost=some.domain.com.au
scheduler=wlc
persistent=30
#netmask=255.255.255.255
protocol=tcp
checktype=negotiate
checkport=80
request="ha-index.html"
receive="Test"
virtualhost=www.x.y.z
4.将配置文件复制到备份服务器上面
注意权限的更改
5.写脚本支持chkconfig命令
a.调度器端
vi /etc/init.d/lvsds
#!/bin/bash
#
# lvsds Startup script. for the lvsds
#
# chkconfig: - 75 06
# description: lvsds
# processname: lvsds
# config: /etc/sysconfig/httpd
#
. /etc/rc.d/init.d/functions
#
if [ -f /etc/sysconfig/lvsds.conf ];then
. /etc/sysconfig/lvsds.conf
else
echo -n "not find /etc/sysconfig/lvsds.conf" && failure
echo
exit 1
fi
start() {
/sbin/ifconfig $VIPDEV $VIP broadcast $VIP netmask 255.255.255.255 up
/sbin/route add -host $VIP dev $VIPDEV
$IPVSADM -C
$IPVSADM -A -t $VIP:$VPORT -s $SCHEDULER -p $PERSISTENT
for i in $SIPS;do
$IPVSADM -a -t $VIP:$VPORT -r $i:$VPORT -g
done
echo -n $"starting LVSDS"&&success
}
stop() {
$IPVSADM -C
/sbin/route del -host $VIP dev $VIPDEV
/sbin/ifconfig $VIPDEV $VIP broadcast $VIP netmask 255.255.255.255 down
echo -n $"stoping LVSDS"&&success
}
case "$1" in
start)
start
;;
stop)
stop
;;
*)
echo -n $"Usage:$0 {start|stop}"
esac
echo
b.vi /etc/sysconfig/lvsds.conf
#
#define default options for lvsds
#
IPVSADM=/sbin/ipvsadm
VIP=192.168.55.9
RIPS="192.168.55.7 192.168.55.8"
VIPDEV=eth0:0
SCHEDULER=wlc
PERSISTENT=30
VPORT=80
chmod a+x /etc/init.d/lvsds
chkconfig --add lvsds
chkconfig --level 2345 lvsds on
将脚本复制到备份调度器
真实服务
a.vi /etc/init.d/lvs
#!/bin/bash
#
# lvs Startup script. for the lvs
#
# chkconfig: - 75 07
# description: lvs
# processname: lvs
# config: /etc/sysconfig/lvs
#
. /etc/rc.d/init.d/functions
#
if [ -f /etc/sysconfig/lvs.conf ];then
. /etc/sysconfig/lvs.conf
else
echo -n "not find /etc/sysconfig/lvs.conf" && failure
echo
exit 1
fi
start() {
arptables -F
arptables -A IN -d $VIP -j DROP
arptables -A OUT -s $VIP -j mangle --mangle-ip-s $RIP
/sbin/ifconfig $VIPDEV $VIP broadcast $VIP netmask 255.255.255.255 up
/sbin/route add -host $VIP dev $VIPDEV
echo -n $"starting LVS"&&success
}
stop() {
arptables -F
/sbin/route del -host $VIP dev $VIPDEV
/sbin/ifconfig $VIPDEV $VIP broadcast $VIP netmask 255.255.255.255 down
echo -n $"stoping LVS"&&success
}
case "$1" in
start)
start
;;
stop)
stop
;;
*)
echo -n $"Usage:$0 {start|stop}"
esac
echo
chmod a+x /etc/init.d/lvs
chkconfig --add lvs
chkconfig --level 2345 lvs on
b.vi /etc/sysconfig/lvs.conf
#
#define default options for lvsds
#
VIP=192.168.55.9
RIP=192.168.55.7
VIPDEV=eth0:0
将脚本复制到其它服务器上面,注意权限
不用设置等待时间30m那样会很慢调度的时候会等待30m才调度到其它电脑上面去
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22779291/viewspace-664261/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/22779291/viewspace-664261/