LVS+Heartbeat 配置

LVS+Heartbeat 配置  

 |字号 订阅

LVS+Heartbeat 安装

http://xfshean.blog.163.com/blog/static/602065662012729111557850/

4、实践环境

DR1:192.168.1.80    负载服务器-主
DR2:192.168.1.81    负载服务器-备
R1: 192.168.1.82      WEB1
R2: 192.168.1.83     WEB2
VIP:192.168.1.85       虚拟IP

1、准备工作:DR1和DR1的/etc/hosts内加入以下内容:以便解析

    vi /etc/hosts

    192.168.1.80     master.30920.cn
    192.168.1.81    backup.30920.cn

2、修改  #    vi  /etc/ha.d/ha.cf     配置文件 (主、备一样)

#debugfile /var/log/ha-debug 
logfile /var/log/ha-log  #日志存放位置
#crm yes   #是否开启集群资源管理功能
logfacility        local0     #记录日志等级
keepalive 2     #心跳的时间间隔,默认时间单位为秒
deadtime 5      #超出该时间间隔未收到对方节点的心跳,则认为对方已经死亡。
warntime 3      #超出该时间间隔未收到对方节点的心跳,则发出警告并记录到日志中,但此时不会切换
initdead 10     #在某些系统上,系统启动或重启之后需要经过一段时间网络才能正常工作,该选项用于解决这种情况产生的时间间隔。取值至少为deadtime的两倍。
udpport  694    #设置广播通信使用的端口,694为默认使用的端口号。
bcast        eth0               # Linux指定心跳使用以太网广播方式,并在eth0上进行广播。"#"后的要完全删除,要不然要出错。
#ucast eth0 192.168.1.81          # 采用网卡eth0的UDP多播来组织心跳,后面跟的IP地址应为双机中对方的IP地址
auto_failback on    #在该选项设为on的情况下,一旦主节点恢复运行,则自动获取资源并取代备用节点。off主节点恢复后变为备用节点,备用为主节点。
#stonith_host *     baytech 10.0.0.3 mylogin mysecretpassword 
#stonith_host ken3  rps10 /dev/ttyS1 kathy 0
#stonith_host kathy rps10 /dev/ttyS1 ken3 0
#watchdog /dev/watchdog           
node   backup.30920.cn     #主机节点名,可通过 uname -n 查看,默认为主节点
node   master.30920.cn     #备用机节点名,默认为次节点,要注意顺序哟
#ping 192.168.1.1          # 选择ping节点,选择固定路由作为节点。ping节点仅用来测试网络连接。
ping_group group1 192.168.1.80 192.168.1.55    #并不是双机中的两个节点,仅仅用来测试网络的连通性,都不能过主动切换
respawn root /usr/lib/heartbeat/ipfail  #选配项。其中rootr表示启动ipfail进程的身份。
apiauth ipfail gid=root uid=root

3、修改资源文件(#    vi    /etc/ha.d/haresources  ) (主、备一样) 注意:DR1和DR2的资源文件要完全一致

master.30920.cn 192.168.1.85  ldirectord
#设置master.30920.cn为主节点,集群VIP为192.168.1.85,heartbeat托管的服务为ldirectord.


4、配置heartbeat的认证文件(  #   vi    /etc/ha.d/authkeys     ) (主、备一样)

auth 1              #auth后面指定的数字,下一行必须作为关键字再次出现。
1 crc
#2 sha1 HI!
#3 md5 Hello!

#最后保证文件的权限为 600
#  chmod 600 
/etc/ha.d/authkeys


5、修改 #   vi    /etc/ha.d/ldirectord.cf    (主、备一样)他的作用就是监控集群中有故障时,从集群中T出,恢复了又加入服务。他通过调用ipvsadm命令创建LVS路由表信息。

    # GlobalDirectives
    checktimeout=10                # 判定realserver出错时间
    checkinterval=10               # 指定ldirectord在两次检查之间的间隔时间
    fallback=127.0.0.1:80           # 当所有RS机器不能访问的时候WEB重写向地址
    autoreload=yes                 # 是否自动重载配置文件
    logfile="/var/log/ldirectord.log"  # 设定Ldirectord日志输出文件路径
    #logfile="local0"
    #emailalert="root@30920.cn"   
    #emailalertfreq=3600
    #emailalertstatus=all
    quiescent=yes                 # 选择为no是,如果一个节点在checktimeout设置的时间周期内没响应,将会被T除,中断现有客户端的连接。 yes新的连接不能到达。

    # Samplefor an http virtual service
    virtual=192.168.1.85:80     #  指定虚拟IP,注意在virtual这行后面的行必须缩进4个空格或以一个tab字符进行标记

            real=192.168.1.104:80 gate    #gate 为DR模式,ipip表示TUNL模式,masq表示NAT模式

            real=192.168.1.105:80 gate


            #fallback=127.0.0.1:80 gate

            #service=http                 #指定服务类型,这里对HTTP进行负载均衡

            #request="index.html"         #请求监控地址

            #receive="Test Page"          # 指定请求和应答字符串,也就是index.html的内容

            #virtualhost=some.domain.com.au  #虚拟服务器的名称可任意指定

             scheduler=wrr                 #指定调度算法,这里是wrr(加权轮叫调度算法)

            #netmask=255.255.255.255

            protocol=tcp

            checktype=connect

             checkport=80

6、在RS上加入如下脚本并运行(两台真实的RS都要加入并开机启动)# vi /etc/init.d/lvs

#!/bin/bash
#
# lvsdrrs init script to hide loopback interfaces on LVS-DR
# Real servers. Modify this script to suit
# your needs. You at least need to set the correct VIP address(es).
#
# Script to start LVS DR real server.
#
# chkconfig: 2345 20 80
# description: LVS DR real server
#
# You must set the VIP address to use here:
VIP=10.0.0.20
/etc/rc.d/init.d/functions
case "$1" in
start)
       # Start LVS-DR real server on this machine.
        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
;;
stop)
        # Stop LVS-DR real server loopback device(s).
        /sbin/ifconfig lo:0 down
;;
status)
        # Status of LVS-DR real server.
        islothere=`/sbin/ifconfig lo:0 | grep $VIP`
        isrothere=`netstat -rn | grep "lo" | grep $VIP`
        if [ ! "$islothere" -o ! "$isrothere" ];then
            # Either the route or the lo:0 device
            # not found.
            echo "LVS-DR real server Stopped."
        else
            echo "LVS-DR Running."
        fi
;;
*)
        # Invalid entry.
        echo "$0: Usage: $0 {start|status|stop}"
        exit 1
;;
esac


#   /etc/init.d/lvs start

7、启动相关

在RS1\RS2上启动
/etc/init.d/lvs start


在DR1/DR2上启动
/etc/init.d/heartbeat start

然后就可以测试了


看到有的网站上写的需要给主备heartbeat写脚本,其实是不需要的。
--------------------------------------------
HA主备切换报错,无法切换
ERROR: Could not send gratuitous arps. rc=127

解决办法:
ldd /usr/lib/heartbeat/send_arp,看看读取的libnet.so.0属于哪个路径,如果没有的话,弄个软连接过去吧。

libnet.so.1 => not found


ln -s /usr/local/lib/libnet.so.1 /lib

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值