lvs+heartbeat+ldirectord

简单的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/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值