zoukankan      html  css  js  c++  java
  • LVS+Keepalived搭建MyCAT高可用負載均衡集群

    1.前面我们已经搭建好mysql主主,并且用mycat实现双写功能,主要配置文件:

    [root@mycat2 conf]# cat schema.xml
    <?xml version="1.0"?>
    <!DOCTYPE mycat:schema SYSTEM "schema.dtd">
    <mycat:schema xmlns:mycat="http://io.mycat/">
    <schema name="test" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1">
    </schema>
    <dataNode name="dn1" dataHost="192.168.6.163" database="infosys" />
    <dataHost name="192.168.6.163" maxCon="1000" minCon="10" balance="1"
    writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
    <heartbeat>select user()</heartbeat>
    <!-- can have multi write hosts -->
    <writeHost host="192.168.6.163" url="192.168.6.163:3306" user="root"
    password="******" >
    </writeHost>
    <writeHost host="192.168.6.167" url="192.168.6.167:3306" user="root" password="*******" >
    </writeHost>
    </dataHost>
    </mycat:schema>

    两边都一样:

    2.安裝keepalived和ipvsadm

    安装原理很简单,直接给配置:

    [root@java1 ~]# cat /etc/keepalived/keepalived.conf
    ! Configuration File for keepalived

    global_defs {
    notification_email {
    acassen@firewall.loc
    failover@firewall.loc
    sysadmin@firewall.loc
    }
    notification_email_from Alexandre.Cassen@firewall.loc
    smtp_server 172.0.0.1
    smtp_connect_timeout 30
    router_id LVS_DEVEL
    }

    vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 99
    advert_int 1
    authentication {
    auth_type PASS
    auth_pass 1111
    }
    virtual_ipaddress {
    192.168.6.113
    }
    }

    virtual_server 192.168.6.113 8066 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    nat_mask 255.255.248.0
    persistence_timeout 50
    protocol TCP

    real_server 192.168.6.155 8066 {
    weight 1
    TCP_CHECK { #realserver的状态检测设置部分,单位是秒
    connect_timeout 3 #表示3秒无响应超时
    nb_get_retry 3 #表示重试次数
    delay_before_retry 3 #表示重试间隔
    connect_port 8066
    }
    }
    real_server 192.168.6.168 8066 {
    weight 1
    TCP_CHECK { #realserver的状态检测设置部分,单位是秒
    connect_timeout 3 #表示3秒无响应超时
    nb_get_retry 3 #表示重试次数
    delay_before_retry 3 #表示重试间隔
    connect_port 8066
    }
    }
    }

    第二台机器稍微改动一下  priority 99 #修改優先順序

    3.在两台Mycat上面执行脚本:

    #!/bin/bash
    #description: Config realserver
    
    VIP=192.168.244.10
     
    /etc/rc.d/init.d/functions
     
    case "$1" in
    start)
           /sbin/ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP
           /sbin/route add -host $VIP dev lo:0
           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
           sysctl -p >/dev/null 2>&1
           echo "RealServer Start OK"
           ;;
    stop)
           /sbin/ifconfig lo:0 down
           /sbin/route del $VIP >/dev/null 2>&1
           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 "RealServer Stoped"
           ;;
    *)
           echo "Usage: $0 {start|stop}"
           exit 1
    esac
     
    exit 0
    这个直接分配vip
    4.都启动起来验证:

    只要是两台互补的,掉了其中一台,都可以正常使用mysql服务,避免单点儿故障,好简单对吧!!!!不怕从0开始,就怕不开始。

    
    
  • 相关阅读:
    【无旋转treap】模板
    线性选择算法好题
    【codeforces】305C GCD,容斥
    双连通
    线段树(3)
    线段树(2)
    线段树
    2015 Multi-University Training Contest 2
    2015 Multi-University Training Contest 1
    Codeforces Round #302 (Div. 1)
  • 原文地址:https://www.cnblogs.com/Jt00/p/7345004.html
Copyright © 2011-2022 走看看