Fork Me
利用LVS+Keepalived实现高性能高可用负载均衡服务器
05 Nov 2014 - by @ssdr

##LVS LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项 目之一。LVS集群采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序。目前有三种IP负载均衡技术(VS/NAT、VS/TUN和VS/DR),八种调度算法(rr, wrr, lc, wlc, lblc, lblcr, dh, sh)。

##Keepalvied Keepalived功能主要包括两个方面:

  1. 失败切换(failover)。通过IP漂移,实现服务的高可用:服务器集群共享一个虚拟IP,同一时间只有一个服务器占有虚拟IP并对外提供服务,若该服务器不可用,则虚拟IP漂移至另一台服务器并对外提供服务;
  2. 健康检查。对LVS应用服务层的应用服务器集群进行状态监控:若应用服务器不可用,则keepalived将其从集群中摘除,若应用服务器恢复,则keepalived将其重新加入集群中。健康检查的手段有tcp三次握手、icmp请求、http请求和udp echo请求等。
    负载均衡高可用 ###Keepalived原理 Keepalived的实现基于VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议),而VRRP是为了解决静态路由的高可用。虚拟路由器由多个VRRP路由器组成,每个VRRP路由器都有各自的IP和共同的VRID(0-255),其中一个VRRP路由器通过竞选成为MASTER,占有VIP,对外提供路由服务,其他成为BACKUP,MASTER以IP组播(组播地址:224.0.0.18)形式发送VRRP协议包,与BACKUP保持心跳连接,若MASTER不可用(或BACKUP接收不到VRRP协议包),则BACKUP通过竞选产生新的MASTER并继续对外提供路由服务,从而实现高可用。
    VRRP ###Keepalived配置 Keeaplived的配置包含三部分:

    1)全局配置,配置邮件等; 2)VRRP配置,配置VRRP实例; 3)LVS配置,配置LVS的应用服务器;

若只是单独使用keepalived,通过IP漂移实现服务的高可用,则只需要配置前两部分就可以;
ip

若结合LVS使用,实现LVS负载均衡层的高可用、应用服务层的状态监控,则还需要配置第三部分。
lvs

##测试环境
lvs-dr ###查看系统和内核版本 more /etc/issue uname -a more /proc/version

###ipvs模块和ipvsadm工具包 ipvs模块加载和查询 modprobe ip_vs lsmod | grep ip_vs


参考地址:51CTO博客