+ -
当前位置:首页 → 问答吧 → LVS+Keepalived+mysql高可用性的配置出现些问题,请高手帮忙!

LVS+Keepalived+mysql高可用性的配置出现些问题,请高手帮忙!

时间:2011-07-07

来源:互联网

VIP(虚拟ip地址):192.168.11.129
director server :192.168.11.131(master),192.168.11.132(backup)
real server(3个sql节点):192.168.11.130/131/132

我用的 debian 507 ,mysql和keepalived以及ipvsadm都是更新软件包后直接apt-get安装的。
现在集群运行正常。高可用的相关配置文件都弄好后,启动keepalived,但是通过ipvsadm -l查看
显示的却是下面的信息:

[Copy to clipboard] [ - ]
CODE:
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  localhost:mysql rr persistent 50
  -> localhost:mysql              Route   1      0          0
  -> localhost:mysql              Local   1      0          0
  -> localhost:mysql              Route   1      0          0

我弄了几天了也找不到原因,曾经第一次配的时候ipvs可以显示出正确的信息的,如下:

[Copy to clipboard] [ - ]
CODE:
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.11.129:3306 rr persistent 50
  -> 192.168.11.132:3306          Local   1      0          0
  -> 192.168.11.131:3306          Route   1      0          0
  -> 192.168.11.130:3306          Route   1      0          0

但是运行过一段时间后就变成第一个只显示localhost的了,本人高可用性是刚学没两天
就是找网上的方法配置的,唯一不同的就是安装keepalived时候,网上是编译安装并且
引用了内核的include文件什么的,我的安装方式是直接apt-get install安装。请高手指点下
哪里的问题,小弟这里感激不尽。

作者: duzq1985   发布时间: 2011-07-07

这楼贴下配置文件信息:

keepalived的/etc/keepalived/keepalived.conf

[Copy to clipboard] [ - ]
CODE:
global_defs {
   notification_email {
     [email][email protected][/email]
   }
   notification_email_from [email][email protected][/email]
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}
vrrp_instance VI_1 {
    state MASTER    # ha2 机器为 BACKUP
    interface eth0
    virtual_router_id 51
    priority 150        # ha2 机器为<150
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
       192.168.11.129
    }
}
virtual_server 192.168.11.129 3306 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    persistence_timeout 50   # 默认50秒钟都访问同一台机器
    protocol TCP
    real_server 192.168.11.130 3306 {
        weight 1
        TCP_CHECK {
            connect_port 3306
            connect_timeout 10     #10秒无响应超时
            nb_get_retry 3              #重试次数
            delay_before_retry 3    #重试间隔
        }
    }
    real_server 192.168.11.131 3306 {
        weight 1
        TCP_CHECK {
            connect_port 3306
            connect_timeout 10
            nb_get_retry 3
            delay_before_retry 3
        }
    }
    real_server 192.168.11.132 3306 {
        weight 1
        TCP_CHECK {
            connect_port 3306
            connect_timeout 10
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

这个是在3个real server上运行的脚本,禁用arp转发和配置虚拟ip的:

[Copy to clipboard] [ - ]
CODE:
#!/bin/bash
VIP=192.168.11.129
case "$1" in
stop)
        # close lo:0 interface
        echo $"Close lo:0 interface"
        /sbin/route del -host $VIP dev lo:0
        /sbin/ifconfig lo:0 down
        echo "0">/proc/sys/net/ipv4/conf/all/arp_announce
        echo "0">/proc/sys/net/ipv4/conf/all/arp_ignore
        echo "0">/proc/sys/net/ipv4/conf/lo/arp_announce
        echo "0">/proc/sys/net/ipv4/conf/lo/arp_ignore
;;
start)
        # start lo:0 interface
        echo $"Start lo:0 interface"
        /sbin/ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP up
        /sbin/route add -host $VIP dev lo:0
        echo "2">/proc/sys/net/ipv4/conf/all/arp_announce
        echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore
        echo "2">/proc/sys/net/ipv4/conf/lo/arp_announce
        echo "1">/proc/sys/net/ipv4/conf/lo/arp_ignore
;;
*)
        echo $"Usage: $0 (start|stop)"
        exit 1
;;
esac

望好心的大侠帮忙下!

作者: duzq1985   发布时间: 2011-07-07

相关阅读 更多

热门下载

更多