zoukankan      html  css  js  c++  java
  • VRRP笔记二:配置keepalived为实现haproxy高可用的配置文件示例

    ! Configuration File for keepalived  
      
    global_defs {  
       notification_email {  
             linuxedu@foxmail.com
             mageedu@126.com  
       }  
       notification_email_from kanotify@magedu.com 
       smtp_connect_timeout 3  
       smtp_server 127.0.0.1  
       router_id LVS_DEVEL  
    }  
     
    vrrp_script chk_haproxy {  
        script "killall -0 haproxy"  
        interval 1  
        weight 2  
    }  
     
    vrrp_script chk_mantaince_down {
       script "[[ -f /etc/keepalived/down ]] && exit 1 || exit 0"
       interval 1
       weight 2
    }
     
    vrrp_instance VI_1 {  
        interface eth0  
        state MASTER  # BACKUP for slave routers
        priority 101  # 100 for BACKUP
        virtual_router_id 51 
        garp_master_delay 1 
      
        authentication {  
            auth_type PASS  
            auth_pass password  
        }  
        track_interface {  
           eth0    
        }  
        virtual_ipaddress {  
            172.16.100.1/16 dev eth0 label eth0:0 
        }  
        track_script {  
            chk_haproxy  
            chk_mantaince_down
        }  
      
     
        notify_master "/etc/keepalived/notify.sh master"  
        notify_backup "/etc/keepalived/notify.sh backup"  
        notify_fault "/etc/keepalived/notify.sh fault"  
    } 
     
     
    注意:
    1、上面的state为当前节点的起始状态,通常在master/slave的双节点模型中,其一个默认为MASTER,而别一个默认为BACKUP。
    2、priority为当关节点在当前虚拟路由器中的优先级,master的优先级应该大于slave的;
     
     
    下面是一个notify.sh脚本的简单示例:
    #!/bin/bash
    # Author: MageEdu <linuxedu@foxmail.com>
    # description: An example of notify script
    # 
     
    vip=172.16.100.1
    contact='root@localhost'
     
    Notify() {
        mailsubject="`hostname` to be $1: $vip 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
            /etc/rc.d/init.d/haproxy start
            exit 0
        ;;
        backup)
            notify backup
            /etc/rc.d/init.d/haproxy restart
            exit 0
        ;;
        fault)
            notify fault
            exit 0
        ;;
        *)
            echo 'Usage: `basename $0` {master|backup|fault}'
            exit 1
        ;;
    esac
     
     
  • 相关阅读:
    RMAN 高级恢复
    从问题域出发认识Hadoop生态系统
    下一代 Hadoop YARN :相比于MRv1,YARN的优势
    Sensei:分布式, 实时, 半结构化数据库
    盘点2012:云计算的春天
    Apache Tajo:一个运行在YARN上支持SQL的分布式数据仓库
    实现多个jetty实例开机后自动启动
    淘宝在数据处理领域的项目及开源产品介绍
    SenseiDB架构设计分析
    在Hadoop上运行SQL:程序员需知晓的13种数据工具
  • 原文地址:https://www.cnblogs.com/djoker/p/6396762.html
Copyright © 2011-2022 走看看