负载均衡集群介绍
负载均衡集群可以使用LVS、keepalived、haproxy、nginx等开源软件来实现。
之前了解到了nginx的代理及负载均衡,LVS与nginx主要的区别在于LVS属于4层(网络OSI7层模型),nginx属于7层,它们有本质上的区别,haproxy即可以认为是4层,也可以当做7层来使用。
keepalived的负载均衡功能其实就是lvs(内置的)。
LVS这种4层的负载均衡是可以分发除80外的其他端口通信的,比如mysql的,而nginx仅仅支持http、https、mail。haproxy也可用来支持mysql这种的负载均衡。
相比较来说,LVS这种4层的更稳定,能承受更多的请求,而nginx这种7层的更加灵活,能够实现更多的个性化需求。
LVS介绍
LVS是由国人章文嵩博士开发的,是一个世界知名的软件,很多企业都在使用,流行度不亚于apache的httpd,基于TCP/IP做的路由和转发,稳定性和效率都很高。
LVS最新版本基于linux内核2.6,已经有好多年为更新了。
LVS有3种常见的模式:NAT、DR、IP Tunnel
LVS架构中有一个核心角色叫做分发器(Load balancer),它用来分发用户的请求,还有诸多处理用户请求的服务器(Real Server ,简称rs )
LVS的NAT模式
该种模式借助iptables的nat表来实现,当用户的请求到达分发器后,通过预设的iptables规则,把请求的数据包转发到后端的rs(真正的服务器)上去,rs需要设定网关为分发器的内网ip,当rs接收到请求后,将处理后的结果再回给Load balancer(分发器),分发器再返回给用户。这时分发器就成为了一种瓶颈,当访问量较大时,分发器的请求量也很大,还要将处理的结果通过分发器再返回给用户,那么这时的分发器就严重的影响了效率。
使用NAT模式,请求量不能太大,一般规模为10台以下,超过10台就会显得有点力不从心,当然可以提高分发器的配置,网卡和网线都是千兆级别的,这样也可以提升效率。
在NAT模式中,只需要分发器有公网ip即可,所以比较节省公网IP资源。
LVS的IP Tunnel模式
这种模式,需要有一个公共的IP配置在分发器上和所有rs上,我们把它叫做VIP
客户端请求的目标I