zoukankan      html  css  js  c++  java
  • keepalived 实现双机热备

    yum -y install keepalived # 两节点都需部署
    
    # 172.16.25.109
    # vi /etc/keepalived/keepalived.conf
    ! Configuration File for keepalived
    global_defs {
       notification_email {
             root@localhost
       }
       notification_email_from admin@lnmmp.com
       smtp_connect_timeout 3
       smtp_server 127.0.0.1
       router_id LVS_DEVEL
    }
    vrrp_script chk_maintaince_down {
       script "[[ -f /etc/keepalived/down ]] && exit 1 || exit 0"
       interval 1
       weight 2
    }
    vrrp_script chk_haproxy {
        script "/etc/keepalived/chk_haproxy.sh"
        interval 1
        weight 2
    }
    vrrp_instance VI_1 {
        interface eth0
        state MASTER
        priority 100
        virtual_router_id 125
        garp_master_delay 1
        authentication {
            auth_type PASS
            auth_pass 1e3459f77aba4ded
        }
        track_interface {
           eth0
        }
        virtual_ipaddress {
            172.16.25.10/16 dev eth0 label eth0:0
        }
        track_script {
            chk_haproxy
        }
        notify_master "/etc/keepalived/notify.sh master 172.16.25.10"
        notify_backup "/etc/keepalived/notify.sh backup 172.16.25.10"
        notify_fault "/etc/keepalived/notify.sh fault 172.16.25.10"
    }
    vrrp_instance VI_2 {
        interface eth0
        state BACKUP
        priority 99
        virtual_router_id 126
        garp_master_delay 1
        authentication {
            auth_type PASS
            auth_pass 7615c4b7f518cede
        }
        track_interface {
           eth0
        }
        virtual_ipaddress {
            172.16.25.11/16 dev eth0 label eth0:1
        }
        track_script {
            chk_haproxy
    chk_maintaince_down
        }
        notify_master "/etc/keepalived/notify.sh master 172.16.25.11"
        notify_backup "/etc/keepalived/notify.sh backup 172.16.25.11"
        notify_fault "/etc/keepalived/notify.sh fault 172.16.25.11"
    }
    
    # 172.16.25.110
    # vi /etc/keepalived/keepalived.conf
    ! Configuration File for keepalived
    global_defs {
       notification_email {
             root@localhost
       }
       notification_email_from admin@lnmmp.com
       smtp_connect_timeout 3
       smtp_server 127.0.0.1
       router_id LVS_DEVEL
    }
    vrrp_script chk_maintaince_down {
       script "[[ -f /etc/keepalived/down ]] && exit 1 || exit 0"
       interval 1
       weight 2
    }
    vrrp_script chk_haproxy {
        script "/etc/keepalived/chk_haproxy.sh"
        interval 1
        weight 2
    }
    vrrp_instance VI_1 {
        interface eth0
        state BACKUP
        priority 99
        virtual_router_id 125
        garp_master_delay 1
        authentication {
            auth_type PASS
            auth_pass 1e3459f77aba4ded
        }
        track_interface {
           eth0
        }
        virtual_ipaddress {
            172.16.25.10/16 dev eth0 label eth0:0
        }
        track_script {
            chk_haproxy
    chk_maintaince_down
        }
        notify_master "/etc/keepalived/notify.sh master 172.16.25.10"
        notify_backup "/etc/keepalived/notify.sh backup 172.16.25.10"
        notify_fault "/etc/keepalived/notify.sh fault 172.16.25.10"
    }
    vrrp_instance VI_2 {
        interface eth0
        state MASTER
        priority 100
        virtual_router_id 126
        garp_master_delay 1
        authentication {
            auth_type PASS
            auth_pass 7615c4b7f518cede
        }
        track_interface {
           eth0
        }
        virtual_ipaddress {
            172.16.25.11/16 dev eth0 label eth0:1
        }
        track_script {
            chk_haproxy
        }
        notify_master "/etc/keepalived/notify.sh master 172.16.25.11"
        notify_backup "/etc/keepalived/notify.sh backup 172.16.25.11"
        notify_fault "/etc/keepalived/notify.sh fault 172.16.25.11"
    }
    
    # vi /etc/keepalived/notify.sh
    #!/bin/bash
    # Author: Jason.Yu <admin@lnmmp.com>
    # description: An example of notify script
    #
    contact='root@localhost'
    notify() {
        mailsubject="`hostname` to be $1: $2 floating"
        mailbody="`date '+%F %H:%M:%S'`: vrrp transition, `hostname` changed to be $1"
        echo $mailbody | mail -s "$mailsubject" $contact
    }
    case "$1" in
        master)
            notify master $2
            /etc/rc.d/init.d/haproxy start
            exit 0
        ;;
        backup)
            notify backup $2
            /etc/rc.d/init.d/haproxy stop
            exit 0
        ;;
        fault)
            notify fault $2
            /etc/rc.d/init.d/haproxy stop
            exit 0
        ;;
        *)
            echo 'Usage: `basename $0` {master|backup|fault}'
            exit 1
        ;;
    esac
    
    # 刚才两个节点 均要有 的监测脚本文件 , 防止 haproxy 停止而 keepalived 不切换的情况
    # vim /etc/keepalived/chk_haproxy.sh
    #
    #
    #!/bin/bash
    #
    if ! `pidof haproxy &> /dev/null`; then
        /etc/rc.d/init.d/haproxy  start
    fi
    sleep 2
    if ! `pidof haproxy &> /dev/null`; then
        /etc/rc.d/init.d/keepalived stop
    fi
    

    启动服务

    service keepalived start # 在两个节点上都需要启动
    
  • 相关阅读:
    flex 布局
    5个有用的 CSS 布局生成器
    js 函数
    js 类定义的方法(最终)
    js && ||
    css position 盒子模型
    eldatepicker选择时间,限定选择的时间段
    Java基础学习总结——Java对象的序列化和反序列化
    pytorch自定义算子
    网站上视频下载后保存为MP4格式
  • 原文地址:https://www.cnblogs.com/sanduzxcvbnm/p/14572720.html
Copyright © 2011-2022 走看看