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——倒序输出Map集合
    java——assert(断言)方法
    Linux文件列表查询ll和ls区别
    Java——关键字和保留字
    Java——动态创建Class(不写入文件,直接从内存中创建class)
    web项目——启动时tomcat报错:Server Tomcat v7.0 Server at localhost failed to start.
    eclipse——管理远程资源的缓存,例如从Internet下载的资源。
  • 原文地址:https://www.cnblogs.com/wanglan/p/8085178.html
Copyright © 2011-2022 走看看