LVS+Keepalived构建Director高可用

系统环境说明:
系统版本:CentOS6.2x86_64
Director的IP:主节点:192.168.56.101
    备节点:192.168.56.102
Realserver的IP:192.168.56.103
    192.168.56.104
VIP地址:192.168.56.200

一、编译安装keepalived

1、解决依赖关系
gcc
make
ipvsadm
openssl-devel
popt-devel
以上包均可通过yum安装

2、编译安装
[root@localhost ~]# tar xf keepalived-1.2.7.tar.gz
[root@localhost ~]# cd keepalived-1.2.7
[root@localhost keepalived-1.2.7]# ./configure --sysconf=/etc
[root@localhost keepalived-1.2.7]# make && make install
[root@localhost keepalived-1.2.7]# ln -s /usr/local/sbin/keepalived /sbin/keepalived


3、配置keepalived
[root@localhost ~]# vim /etc/keepalived/keepalived.conf     ==>  内容如下
# 全局定义部分
global_defs {
   notification_email {
     live1989@foxmail.com
   }                        # 设置邮件报警,接受报警邮件地址,如有多个可以每行一个  
   notification_email_from root@localhost.localdomain   # 设置报警邮件的发件人地址
   smtp_server 127.0.0.1   # smtp服务器地址
   smtp_connect_timeout 30 # smtp连接的超时时间
   router_id LVS_DEVEL  # 运行keepalived服务器的一个标识,发邮件时显示在邮件标题中
}


# vrrp实例定义部分
vrrp_instance VI_1 {  # 实例名称,自定义
    state MASTER  # 指定keepalived的角色,MASTER表示为主服务器,BACKUP表示为备用服务器
    interface eth0  # 指定监测的网络接口
    virtual_router_id 51  # 虚拟路由标识,同一个实例下MASTER和BACKUP必须相同的id
    priority 100  # 定义优先级,数字越大优先级越高,同一个实例下MASTER必须要比BACKUP优先级高
    advert_int 1  # 指定MASTER和BACKUP之间的检测的时间间隔,单位秒
    authentication {
        auth_type PASS  # 指定验证类型,主要有PASS和AH两种
        auth_pass 1111  # 设置验证密码,在同一个实例下MASTER和BACKUP必须相同,不然将无法通过认证
    }
    virtual_ipaddress {
        192.168.56.200  # 设置虚拟IP地址,可以设置多个每行一个
    }
}
# real server配置
virtual_server 192.168.56.200 80 {  # VIP的地址和端口
    delay_loop 6  # 检测realserver的时间间隔
    lb_algo wlc   # lvs的调度算法
    lb_kind DR   # lvs的转发模型
    nat_mask 255.255.255.0 
    persistence_timeout 50  # 持久连接的超时时间
    protocol TCP 
    sorry_server 192.168.56.102 80  # 当后端的realserver都不可用时,把请求转发至该IP


    real_server 192.168.56.103 80 {  # realserver的真实IP地址
        weight 1  # lvs权重
        HTTP_GET {  # 检测方法
            url {  
              path /.heartbeat.html  # 检测的url
              status_code 200  # 检测的页面返回的状态码为200,即表示正常
            }
            connect_timeout 3  # 检测的连接超时时间
            nb_get_retry 3   # 在判定为不可用前的尝试次数
            delay_before_retry 3  # 重连的时间间隔
        }
    }
    real_server 192.168.56.104 80 {
        weight 1
        HTTP_GET {
            url {
    path /.heartbeat.html
              status_code 200
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}


4、备用节点的相关配置

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/7ea82df972aed6c776f4416267a0b5c3.html