zoukankan      html  css  js  c++  java
  • Lvs+Keepalived+Mysql

    环境

    [root@node1 ~]# cat /etc/redhat-release
    CentOS Linux release 7.1.1503 (Core) 
    [root@node1 ~]# uname -a 
    Linux node1 3.10.0-229.el7.x86_64 #1 SMP Fri Mar 6 11:36:42 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

    主机

       IP         NAME      Describe
    10.0.0.10     node1       主负载
    10.0.0.11     node2       备负载
    10.0.0.12     node3        节点
    10.0.0.13     node4        节点
    10.0.0.14     node5        节点
    10.0.0.20 VIP

    安装

    [root@node1 ~]# yum install -y ipvsadm keepalived
    [root@node2 ~]# yum install -y ipvsadm keepalived

    主负载配置

    [root@node1 ~]# vim /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 192.168.200.1
       smtp_connect_timeout 30
       router_id LVS_DEVEL
       vrrp_skip_check_adv_addr
       vrrp_strict
       vrrp_garp_interval 0
       vrrp_gna_interval 0
    }
    
    vrrp_instance VI_1 {
        state MASTER
        interface eno16777736
        virtual_router_id 51
        priority 150
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            10.0.0.20/24 dev eno16777736 label eno16777736:0
        }
    }
    
    virtual_server 10.0.0.20 3306 {
        delay_loop 6
        lb_algo rr
        lb_kind DR
        persistence_timeout 50
        protocol TCP
    
        real_server 10.0.0.12 3306 {
            weight 1
             MISC_CHECK {
             misc_path "/etc/keepalived/check.sh 10.0.0.12"
             misc_dynamic
             }
        }
        real_server 10.0.0.13 3306 {
            weight 1
             MISC_CHECK {
             misc_path "/etc/keepalived/check.sh 10.0.0.13"
             misc_dynamic
             }
        }
        real_server 10.0.0.14 3306 {
            weight 1
             MISC_CHECK {
             misc_path "/etc/keepalived/check.sh 10.0.0.14"
             misc_dynamic
             }
        }
    }
    View Code

    备负载配置

    [root@node2 ~]# vim /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 192.168.200.1
       smtp_connect_timeout 30
       router_id LVS_DEVEL_BACKUP
       vrrp_skip_check_adv_addr
       vrrp_strict
       vrrp_garp_interval 0
       vrrp_gna_interval 0
    }
    
    vrrp_instance VI_1 {
        state BACKUP
        interface eno16777736
        virtual_router_id 51
        priority 50
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            10.0.0.20/24 dev eno16777736 label eno16777736:0
        }
    }
    
    virtual_server 10.0.0.20 3306 {
        delay_loop 6
        lb_algo rr
        lb_kind DR
        persistence_timeout 50
    protocol TCP
    
        real_server 10.0.0.12 3306 {
            weight 1
             MISC_CHECK {
             misc_path "/etc/keepalived/check.sh 10.0.0.12"
             misc_dynamic
             }
        }
    
        real_server 10.0.0.13 3306 {
            weight 1
             MISC_CHECK {
             misc_path "/etc/keepalived/check.sh 10.0.0.13"
             misc_dynamic
             }
        }
        real_server 10.0.0.14 3306 {
            weight 1
             MISC_CHECK {
             misc_path "/etc/keepalived/check.sh 10.0.0.14"
             misc_dynamic
             }
        }
    }
    View Code

    自定义脚本做健康检查(node1和node2配置)

    [root@node1 ~]# vim /etc/keepalived/check.sh

    插入以下配置

    #!/bin/bash
    
    mysql -uwsrep -pnx111111 -h$1 -e "select 1;" &>/dev/null
    ret=$?
    if [ $ret -eq 0 ];then
        exit 0
    else
        exit 1
    fi

    启动服务

    [root@node1 ~]# systemctl start keepalived
    [root@node2 ~]# systemctl start keepalived

    开机启动

    [root@node1 ~]#systemctl enable keepalived

    测试

    关闭主负载keepalived,查看VIP是否漂移到备负载

    [root@node1 ~]# systemctl stop keepalived

    启动主负载keepalived,查看VIP是否漂移回来

    [root@node1 ~]# systemctl start keepalived
  • 相关阅读:
    java学习day16--常用类之包装类
    String、StringBuffer、StringBuilder的异同
    java学习day15--常用类之字符串相关的类
    java学习day15--Arrays工具类
    java学习day14--二维数组
    java学习day14--可变长参数
    java学习day13--数组
    java学习day13--自定义异常类
    java学习day12--异常
    接口和抽象类的异同
  • 原文地址:https://www.cnblogs.com/wanglan/p/8085178.html
Copyright © 2011-2022 走看看