r2wee 发表于 2014-8-6 09:13:28

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

   之前写过一个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

编辑主配置文件/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
查看主节点生成的配置

访问vip 192.168.18.18


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



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

再把Realserver2给恢复。

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

主节点下线了,备节点优先级为最高,继承资源,如果这是当主节点恢复后,资源还是会回到主节点的,因为主节点的优先级更高。
好了,这就实现了用keepalived给lvs提供高可用。

页: [1]
查看完整版本: 使用Keepalived+ipvs构建(高可用+负载均衡)环境!