码迷,mamicode.com
首页 > 其他好文 > 详细

使用Keepalived+ipvs构建(高可用+负载均衡)环境!

时间:2014-08-05 11:29:30      阅读:366      评论:0      收藏:0      [点我收藏+]

标签:高可用   lvs   负载均衡   keepalived   

    之前写过一个heartbeat-ldirectord实现LVS的高可用,这里引入一个轻量级的程序Keepalived基于VRRP协议工作,也能为服务提供高可用功能,这个程序的开发初衷是为了给lvs提供高可用。


下面我们来看看如何使用keepalived+ipvs实现高可用+负载均衡。

在RHEL6.4以后就提供了rpm格式的安装包,这里我们用源码编译安装。

先去官网下载源码包http://keepalived.org/

解压源程序包,预编译配置,编译程序,安装程序。

tar zxvf keepalived-1.2.13.tar.gz

./configure  --prefix=/usr/local/keepalived  --sysconfdir=/etc/

make && make install

编辑服务脚本,修改程序路径。

vim /etc/init.d/keepalived

bubuko.com,布布扣

编辑主配置文件/etc/keepalived/keepalived.conf

! Configuration File for keepalived


global_defs {    //全局配置段

   notification_email {   //收件人邮箱

        root@localhost

   }

   notification_email_from keepadmin@localhost    //发件人

   smtp_server 127.0.0.1     //邮件服务器

   smtp_connect_timeout 30   //等待超时时间

   router_id LVS_DEVEL

}


vrrp_instance VI_1 {   //定义一个VRRP路由实例

    state MASTER    //初始状态(备节点改为BACKUP)

    interface eth0

    virtual_router_id 51  //路由实例ID(唯一)

    priority 100     //优先级 (备节点的值要设置比主的低)

    advert_int 1     //通告频率

    authentication {    //认证配置

        auth_type PASS   //认证类型

        auth_pass 1111   //密码

    }

    virtual_ipaddress {    //虚拟IP

        192.168.18.18

    }

 notify_master "/etc/keepalived/notify.sh master"  //状态转换通知,要自己写好脚本。

 notify_backup "/etc/keepalived/notify.sh backup"

 notify_fault "/etc/keepalived/notify.sh fault"

}


virtual_server 192.168.18.18 80 {   //定义虚拟服务

    delay_loop 6   

    lb_algo wlc    //指定调度算法

    lb_kind DR     //指定工作模型

    nat_mask 255.255.255.0  

    persistence_timeout 0    //持久连接

    protocol TCP


    real_server 192.168.18.203 80 {     //定义RealServer

        weight 1      //设置权重 

        HTTP_GET {    //配置HTTP健康状态检测

            url {

              path /   //检测的路径

              status_code 200   //响应的状态信息

            }

            connect_timeout 3   //超时时间

            nb_get_retry 3      //重试次数

            delay_before_retry 3  //每一次重试之前等待的时间

        }

    }

    real_server 192.168.18.204 80 {

        weight 2

        HTTP_GET {

            url {

              path /

              status_code 200

            }

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

        }

    }

}

把配置文件同步到备节点,修改我上面提到的两个地方即可,两个节点启动Keepalived服务。

RealServer配置(略)

scp /etc/keepalived/keepalived.conf admin2:/etc/keepalived/

/etc/init.d/keepalived start

查看主节点生成的配置

bubuko.com,布布扣

访问vip 192.168.18.18

bubuko.com,布布扣


刷新一下,请求自动转发到第二台realserver。

bubuko.com,布布扣



这时我们模拟坏了一台RealServer,将Realserver2-192.168.18.203网络服务给stop,再看看状态。

bubuko.com,布布扣

再把Realserver2给恢复。

bubuko.com,布布扣

这时我们模拟主Director故障了,把主节点网络服务stop。

我们来到备节点

bubuko.com,布布扣

主节点下线了,备节点优先级为最高,继承资源,如果这是当主节点恢复后,资源还是会回到主节点的,因为主节点的优先级更高。

好了,这就实现了用keepalived给lvs提供高可用。


有问题欢迎与我交流QQ1183710107


本文出自 “坏人的博客” 博客,转载请与作者联系!

使用Keepalived+ipvs构建(高可用+负载均衡)环境!,布布扣,bubuko.com

使用Keepalived+ipvs构建(高可用+负载均衡)环境!

标签:高可用   lvs   负载均衡   keepalived   

原文地址:http://tchuairen.blog.51cto.com/3848118/1535840

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!