软件负载均衡之LVS

Posted IT生活杂文

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件负载均衡之LVS相关的知识,希望对你有一定的参考价值。


负载均衡可以采用硬件设备(比如F5产品),也可以采用软件负载(比如LVS)

之前,IT君讲过硬件负载产品F5 BIG-IP LTM,由于硬件设备的成本昂贵,而且随着开源社区的日益完善和开源软件的成熟,很多中小型企业慢慢的拥抱软负载均衡(软负载有LVSnginxHaproxy),其中当属LVS最有名。

 

一、LVS简介

LVSLinux Virtual Server的缩写,即Linux虚拟服务器,是由章文嵩博士发起的开源软件项目,官网是www.linuxvirtualserver.org,目前的Linux内核(2.4版本以后)均已经内置了LVS功能模块,也就是说可以直接使用,无需安装。

LVS四层负载均衡,工作在OSI模型第四层之上(NginxHaproxy是七层负载均衡)

LVS使用集群技术和Linux操作系统实现的一个高性能、高可用的服务器,具有很好的可伸缩性、可靠性和可管理性。

二、LVS主要组成部分

一般情况下,用LVS搭建的服务器集群系统采用三层结构。

LVS的主要组成部分如下:

1、负载调度器(loadbalance/Director Server):位于整个集群系统的最前端,由一台或多台负载调度器(LVS模块就安装在上面,为了实现对Real Server进行监控,还需要安装Ldirectord模块)组成,负载将用户的请求发送到服务器池中的一组服务器上执行。

2、 服务器池(serverpool/Real Server):由一组实际运行各种业务的应用服务器组成,Real Server可以是WebFTPDNS等服务器。实际应用中,负载调度器上也可以充当Real Server来使用。

3、 共享存储(sharedstorage):是为服务器池中的所有Real Server提供共享存储空间和内容一致性的存储区域。

综上:Director ServerLVS的核心部分。

三、LVS负载均衡方式

这里就不介绍IPVS的安装了。

接下来,介绍下IPVS的工作模式,也就是LVS的负载机制。总共有三种负载机制,分别是VS/NATVS/TUNVS/DR,详解如下:

软件负载均衡之LVS(一)

VS/NAT的传输过程图解如下:

软件负载均衡之LVS(一)

2、  VS/TUNVS/TUNVirtual Server via IP Tunneling的缩写,即IP隧道技术实现虚拟服务器。

它与VS/NAT的不同之处在于其转发报文的方式不同。Director将用户的请求通过IP Tunnel技术直接转发到服务器池中的某个Real Server,这个Real Server直接响应请求,没有经过Director

VS/TUN的传输过程图解如下:

软件负载均衡之LVS(一)

3、 VS/DRVS/DRVirtual Server via Direct Routing的缩写,即直接路由技术实现虚拟服务器。

软件负载均衡之LVS(一)

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的主要内容,如果未能解决你的问题,请参考以下文章

Linux负载均衡之lvs基本介绍

负载均衡之LVS集群

Linux负载均衡之lvs部署与配置

负载均衡之Haproxy安装配置篇

思维导图终极之战LVS负载均衡

基于LVS的负载均衡实现之NAT