LVS,Keepalived,HAproxy区别与联系
-
LVS
全称Linux Virtual Server,也就是Linux虚拟服务器,由章文嵩(现就职于于淘宝,正因为如此才出现了后来的fullnat模式)博士发起的Load Balance开源项目,官网地址:[www.linuxvirtualserver.org](http://)
-
keepalived
keepalived是Linux下一个轻量级别的高可用解决方案。高可用(High Avalilability,HA),广义上讲,是指整个系统的高可用行,狭义上来说就是主机的冗余和接管;
为什么是轻量级呢,keepalived通过VRRP(Vritrual Router Redundancy Protocol,虚拟路由冗余协议)实现网络不间断稳定运行;与HeartBeat RoseHA相比,HeartBeat提供了完整的HA基本功能,比如:心跳检测,资源接管,检测集群中的服务,在集群节点转移共享ip地址所有者等等。虽然功能强大,但是部署使用相对麻烦,而keepalived只需一个配置文件就可搞定; -
LVS与Keepalived的关系
keepalived起初是为LVS设计的,由于Keepalived可以实现对集群节点的状态检测,而IPVS可以实现负载均衡功能,因此,keepalived借助于第三方模块IPVS就可以很方便的搭建出一套负载均衡系统,在这里有个误区,由于keepalived可以和IPVS一起很好的工作,很多朋友以为Keepalived就是一款负载均衡软件,这种理解是错误的,他们是互补的,keepalived是可以直接操作配置LVS的!
在keepalived当中IPVS模块是可配置的,如果需要负载均衡功能,可以在编译keepalived时打开负载均衡功能,也可以通过编译参数关闭。 -
HAproxy
HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。
HAProxy实现了一种事件驱动, 单一进程模型,此模型支持非常大的并发连接数。多进程或多线程模型受内存限制 、系统调度器限制以及无处不在的锁限制,很少能处理数千并发连接。事件驱动模型因为在有更好的资源和时间管理的用户空间(User-Space) 实现所有这些任务,所以没有这些问题。此模型的弊端是,在多核系统上,这些程序通常扩展性较差。这就是为什么他们必须进行优化以 使每个CPU时间片(Cycle)做更多的工作。 -
LVS与HAproxy
LVS只工作在4层,没有流量产生,使用范围广,对操作员的网络素质要求较高;
HAproxy及支持7层也支持4层的负载均衡,更专业;
推荐模式:F5/LVS<—>Haproxy<—>Squid/Varnish<—>AppServer