软件负载均衡之LVS
Posted IT生活杂文
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件负载均衡之LVS相关的知识,希望对你有一定的参考价值。
负载均衡可以采用硬件设备(比如F5产品),也可以采用软件负载(比如LVS)。
之前,IT君讲过硬件负载产品F5 BIG-IP LTM,由于硬件设备的成本昂贵,而且随着开源社区的日益完善和开源软件的成熟,很多中小型企业慢慢的拥抱软负载均衡(软负载有LVS、nginx、Haproxy等),其中当属LVS最有名。
一、LVS简介
LVS是Linux Virtual Server的缩写,即Linux虚拟服务器,是由章文嵩博士发起的开源软件项目,官网是www.linuxvirtualserver.org,目前的Linux内核(2.4版本以后)均已经内置了LVS功能模块,也就是说可以直接使用,无需安装。
LVS是四层负载均衡,工作在OSI模型第四层之上(Nginx和Haproxy是七层负载均衡)。
LVS使用集群技术和Linux操作系统实现的一个高性能、高可用的服务器,具有很好的可伸缩性、可靠性和可管理性。
二、LVS主要组成部分
一般情况下,用LVS搭建的服务器集群系统采用三层结构。
LVS的主要组成部分如下:
1、负载调度器(loadbalance/Director Server):位于整个集群系统的最前端,由一台或多台负载调度器(LVS模块就安装在上面,为了实现对Real Server进行监控,还需要安装Ldirectord模块)组成,负载将用户的请求发送到服务器池中的一组服务器上执行。
2、 服务器池(serverpool/Real Server):由一组实际运行各种业务的应用服务器组成,Real Server可以是Web、FTP、DNS等服务器。实际应用中,负载调度器上也可以充当Real Server来使用。
3、 共享存储(sharedstorage):是为服务器池中的所有Real Server提供共享存储空间和内容一致性的存储区域。
综上:Director Server是LVS的核心部分。
三、LVS负载均衡方式
这里就不介绍IPVS的安装了。
接下来,介绍下IPVS的工作模式,也就是LVS的负载机制。总共有三种负载机制,分别是VS/NAT、VS/TUN和VS/DR,详解如下:
VS/NAT的传输过程图解如下:
2、 VS/TUN:VS/TUN是Virtual Server via IP Tunneling的缩写,即IP隧道技术实现虚拟服务器。
它与VS/NAT的不同之处在于其转发报文的方式不同。Director将用户的请求通过IP Tunnel技术直接转发到服务器池中的某个Real Server,这个Real Server直接响应请求,没有经过Director。
VS/TUN的传输过程图解如下:
3、 VS/DR:VS/DR是Virtual Server via Direct Routing的缩写,即直接路由技术实现虚拟服务器。
VS/DR的传输过程的图解如下:
四、LVS负载均衡算法
在集群中,当Internet上的报文请求到达Director上,Director会选择某种算法,动态地选择服务器池中的某台Real Server来处理请求的报文。
这里Director涉及到的算法有8中调度算法。
调度算法分为固定调度算法和动态调度算法。
动态调度算法有:加权最小连接数算法、最小连接数算法、基于局部性的最小连接数算法、带复制的基于局部性的最小连接数算法。
接下来,粗略讲下这八种算法。
1、轮询算法:Director将请求依次分配给不同的RS,平均分配。
2、 加权轮询算法:Director按照RS的不同权值分配任务,也就是按一定的比例分配任务,权值高的RS分配到的任务也就多。
5、加权最小连接数算法:假设RSx的权值为Wx,当前的tcp连接数为Tx,则Director将以Tx/Wx为最小的RS为下一个分配任务的RS,也就是哪个RS的当前任务少的优先分配。
6、最小连接数算法:Director会根据IPVS表存储的所有活动的连接情况,通过比较连接数情况,将报文请求发送给当前连接最少的RS。
五、容灾
关于LVS集群的容灾可以分为RS容灾和LVS容灾。
RS容灾可以通过LVS上做定期健康监测,如果某台RS失效,则认为它下线了,就不会再转发报文到该RS上。
LVS的容灾可以通过主备+心跳的方式来实现,该容灾主要是靠keepalived来做的,当主LVS失去心跳,则备胎LVS将转正作为主LVS工作。
由于软件负载均衡除了LVS之外还有Nginx和Haproxy。IT君将在之后的文章中对Nginx和Haproxy进行介绍。
另外,IT君祝各位好友中秋节快乐。
以上是关于软件负载均衡之LVS的主要内容,如果未能解决你的问题,请参考以下文章