LVS与集群技术

一、LVS与集群

 1.集群

    集群是指一群相同系统的计算机组,以高速的网络实现互联,共同提供一种服务,共享一个数据库,在客户端来看就像在访问一台主机.

 

2.集群分类

 1)HPC 高性能计算集群

       HPC是高性能计算(High Performance Computing)机群的简称。指能够执行一般个人电脑无法处理的大资料量与高速运算的电脑,其基本组成组件与个人电脑的概念无太大差异,但规格与性能则强大许多。

 2)LB 负载均衡集群

    负载均衡,英文名称为Load Balance,其含义就是指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行,例如FTP服务器、Web服务器、企业核心应用服务器和其它主要任务服务器等,从而协同完成工作任务。负载均衡构建在原有网络结构之上,它提供了一种透明且廉价有效的方法扩展服务器和网络设备的带宽、加强网络数据处理能力、增加吞吐量、提高网络的可用性和灵活性。

  3)HA 高可用集群

 HA(High Available),高可用性集群,是保证业务连续性的有效解决方案,一般有两个或两个以上的节点,且分为活动节点及备用节点。通常把正在执行业务的称为活动节点,而作为活动节点的一个备份的则称为备用节点。当活动节点出现问题,导致正在运行的业务(任务)不能正常运行时,备用节点此时就会侦测到,并立即接续活动节点来执行业务。从而实现业务的不中断或短暂中断。

 

3,LVS

       LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一.

  LVS集群采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序。为此,在设计时需要考虑系统的透明性、可伸缩性、高可用性和易管理性。

  LVS负载均衡调度技术是在LINUX内核中实现的,因此被称之为LINUX虚拟服务器。我们使用该软件配置LVS时候,不能直接配置内核中的IPVS,而需要使用IPVS的管理工具ipvsadm进行管理,当然我们也可以通过keepalived软件直接管理IPVS,并不是通过ipvsadm来管理ipvs

LVS与集群技术_第1张图片

LVS技术点小结:

1、真正实现调度的工具是IPVS,工作在LINUX内核层面。

2、LVS自带的IPVS管理工具是ipvsadm。

3、keepalived实现管理IPVS及负载均衡器的高可用。

4、Red hat 工具Piranha WEB管理实现调度的工具IPVS(不常用)。

 

4.LVS与集群的关系

  如果说集群是一种抽象概念,那么LVS就是集群的具体实现,LVS支持高可用集群与负载均衡集群

 

二、LVS的工作原理

1.LVS的三层结构

一般来说,LVS集群采用三层结构,其主要组成部分为:

A、负载调度器(load balancer),它是整个集群对外面的前端机,负责将客户的请求发送到一组服务器上执行,而客户认为服务是来自一个IP地址(我们可称之为虚拟IP地址)上的。

B、服务器池(server pool),是一组真正执行客户请求的服务器,执行的服务有WEB、MAIL、FTP和DNS等。

C、共享存储(shared storage),它为服务器池提供一个共享的存储区,这样很容易使得服务器池拥有相同的内容,提供相同的服务。

 

2.LVS工作原理

     LVS 的 IP 负载均衡技术是通过 IPVS 模块来实现的,IPVS 是 LVS集群系统的核心软件,它的主要作用是:安装在 Director Server 上,同时在 Director Server上虚拟出一个IP 地址,用户必须通过这个虚拟的 IP 地址访问服务器。这个虚拟 IP 一般称为 LVS 的VIP,即 Virtual IP。访问的请求首先经过 VIP 到达负载调度器,然后由负载调度器从Real Server 列表中选取一个服务节点响应用户的请求。 在用户的请求到达负载调度器后,调度器如何将请求发送到提供服务的 Real Server 节点,而 Real Server节点如何返回数据给用户,是 IPVS 实现的重点技术

 

3.LVS专业术语

LVS与集群技术_第2张图片

 

三、LVS的三种工作模式

1.VS/DR模式

   Virtual Server/Direct Routing  虚拟服务/直连路由模式

 从左到右客户端(CIP)-->负载均衡服务器(DIP/VIP)-->真实服务器(DIP/VIP)

   需要区别负载均衡服务器与真实服务器的区别,首先这两者的VIP是同一IP,只是前者的VIP是可以被访问的,而后者的VIP是一个伪装IP,不能够被访问,但是它能以VIP访问其他主机.所以当客户机访问VIP的时候总是会访问LVS服务器,而真实服务器以VIP的名义返回的请求得到的回应也必定会先经过LVS

LVS与集群技术_第3张图片

1)工作流程:

①.客户端将请求发往前端的负载均衡器,请求报文源地址是CIP,目标地址为VIP。

②.负载均衡器收到报文后,发现请求的是在规则里面存在的地址,那么它将客户端请求报文的源MAC地址改为自己DIP的MAC地址,目标MAC改为了RIP的MAC地址,并将此包发送给RS。

③.RS发现请求报文中的目的MAC是自己,就会将次报文接收下来,处理完请求报文后,将响应报文通过lo接口(虚拟接口)送给eth0网卡直接发送给客户端。

2)以网卡为单位的访问流程:

从左到右: Client 真实网卡eth0-->LVS虚拟网卡eth0:0-->LVS真实网卡eth0-->RealServer真实网卡eth0-->RealServer虚拟网卡lo:0-->Client真实网卡eth0

3)总结

  ①调度器器进行MAC地址转发:通过在调度器 LB 上修改数据包的目的 MAC 地址实现转发。注意源地址仍然是 CIP,目的地址仍然是 VIP 地址。

  ②调度器只进不出:请求的报文经过调度器,而 RS 响应处理后的报文无需经过调度器 LB,因此并发访问量大时使用效率很高(和 NAT 模式比)

  ③调度器与服务器同局域网:因为 DR 模式是通过 MAC 地址改写机制实现转发,因此所有 RS 节点和调度器 LB 只能在一个局域网里面

  ④伪装IP和AP抑制:RS 主机需要绑定 VIP 地址在 LO 接口(掩码32 位,定址)上,并且需要配置 ARP 抑制(抑制除调度器之外的服务器)

       ⑤保证RS可以出网:RS 节点的默认网关不需要配置成 LB,而是直接配置为上级路由的网关(如果调度器之前没有网关则填写0.0.0.0默认网关),能让 RS 直接出网就可以

       ⑥端口一致性:由于 DR 模式的调度器仅做 MAC 地址的改写,所以调度器 LB 就不能改写目标端口,那么 RS 服务器就得使用和 VIP 相同的端口提供服务

优点

和TUN(隧道模式)一样,负载均衡器也只是分发请求,应答包通过单独的路由方法返回给客户端。与VS-TUN相比,VS-DR这种实现方式不需要隧道结构,因此可以使用大多数操作系统做为物理服务器。

DR模式的效率很高,但是配置稍微复杂一点,因此对于访问量不是特别大的公司可以用haproxy/nginx取代。日1000-2000W PV或者并发请求1万一下都可以考虑用haproxy/nginx。

缺点

所有 RS 节点和调度器 LB 只能在一个局域网里面。

2.VS/TUN模式

    Vitural Server/Tunnel 虚拟服务/隧道模式

LVS与集群技术_第4张图片 

1)工作流程

①.客户端将请求发往前端的负载均衡器,请求报文源地址是CIP,目标地址为VIP。

②.负载均衡器收到报文后,发现请求的是在规则里面存在的地址,那么它将在客户端请求报文的首部再封装一层IP报文,将源地址改为DIP,目标地址改为RIP,并将此包发送给RS。

③.RS收到请求报文后,会首先拆开第一层封装,然后发现里面还有一层IP首部的目标地址是自己lo接口上的VIP,所以会处理次请求报文,并将响应报文通过lo接口送给eth0网卡直接发送给客户端。

注意:

需要设置lo接口的VIP不能在共网上出现。

总结:

1.TUNNEL 模式必须在所有的 realserver 机器上面绑定 VIP 的 IP 地址

2.TUNNEL 模式的 vip ------>realserver 的包通信通过 TUNNEL 模式,不管是内网和外网都能通信,所以不需要 lvs vip 跟 realserver 在同一个网段内

3.TUNNEL 模式 realserver 会把 packet 直接发给 client 不会给 lvs 了

4.TUNNEL 模式走的隧道模式,所以运维起来比较难,所以一般不用。

优点

负载均衡器只负责将请求包分发给后端节点服务器,而RS将应答包直接发给用户。所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,就能处理很巨大的请求量,这种方式,一台负载均衡器能够为很多RS进行分发。而且跑在公网上就能进行不同地域的分发。

缺点:

隧道模式的RS节点需要合法IP,这种方式需要所有的服务器支持”IP Tunneling”(IP Encapsulation)协议,服务器可能只局限在部分Linux系统上。

 

3.VS/NAT模式

 Vitural Server/Network Address Translation模式

   请求过程: Client (CIP)-->LVS(VIP)-->-->LVS(DIP)-->RealServer(RIP)-->LVS(DIP)-->LVS(VIP)

LVS与集群技术_第5张图片

 1)工作流程

  ①客户端将请求发往前端的负载均衡器,请求报文源地址是CIP(客户端IP),后面统称为CIP),目标地址为VIP(负载均衡器前端地址,后面统称为VIP)。

  ②负载均衡器收到报文后,根据调度算法选择一个真实服务器,将请求转发给真实服务器,源地址为CIP请求地址更改为RIP。

  ③报文送到Real Server后,由于报文的目标地址是自己,所以会响应该请求,并将响应报文返还给LVS。

  ④然后LVS将此报文的源地址修改为本机VIP地址并发送给客户端。

注意:

在NAT模式中,Real Server的网关必须指向LVS,否则报文无法送达客户端,详细见NAT模式的工作模式(NAT技术:https://blog.csdn.net/ck784101777/article/details/97931779)

特点:

1、调度服务器的工作量大:NAT 技术将请求的报文和响应的报文都需要通过 LB (负载均衡Load Balance)进行地址改写,因此网站访问量比较大的时候 LB 负载均衡调度器有比较大的瓶颈,一般要求最多之能 10-20 台节点,与DR和TUN模式不同,NAT进出都需要经手LVS

2、只需要一个IP:只需要在 LB 上配置一个公网 IP 地址(VIP)就可以了。

3、真实服务器的网关为调度器:每台内部的 realserver 服务器的网关地址必须是调度器 LB 的内网地址(DIP)。

4、NAT地址转换:真实服务到调度服务器采用NAT地址转换,即私网IP转公网IP,调度服务器作为真实服务器的出口.NAT 模式支持对 IP 地址和端口进行转换。即用户请求的端口和真实服务器的端口可以不一致,DR模式不可以更改端口。

优点:

集群中的物理服务器可以使用任何支持TCP/IP操作系统,只有负载均衡器需要一个合法的IP地址,服务器和调度服务器都可以通过配置内网IP来互通。

缺点

扩展性有限。当服务器节点(普通PC服务器)增长过多时,负载均衡器将成为整个系统的瓶颈,因为所有的请求包和应答包的流向都经过负载均衡器。当服务器节点过多时,大量的数据包都交汇在负载均衡器那,速度就会变慢!

 

四、三种工作模式比较

 

工作模式 VS/NAT VS/TUN VS/DR
Real server(节点服务器) Config dr gw Tunneling Non-arp device/tie vip
Server Network Private LAN/WAN LAN
Server number(节点数量) Low 10-20 High 100 High 100
Real server gateway Load balance Own router Own router
优点 地址和端口转换 Wan环境加密数据 性能最高
缺点 效率低 需要建立隧道 不能跨LAN

 

五、LVS调度算法

在内核中的连接调度算法上,IPVS已实现了以下八种调度算法:

  • 轮叫调度(Round-Robin Scheduling)
  • 加权轮叫调度(Weighted Round-Robin Scheduling)
  • 最小连接调度(Least-Connection Scheduling)
  • 加权最小连接调度(Weighted Least-Connection Scheduling)
  • 基于局部性的最少链接(Locality-Based Least Connections Scheduling)
  • 带复制的基于局部性最少链接(Locality-Based Least Connections with Replication Scheduling)
  • 目标地址散列调度(Destination Hashing Scheduling)
  • 源地址散列调度(Source Hashing Scheduling)

固定调度算法:rr,wrr,dh,sh

动态调度算法:wlc,lc,lblc,lblcr

常用算法:rr wrr dh

 

------------------------------------------------------------------------------------------------------------------------------------------------------

参考文章:

https://www.cnblogs.com/yangliheng/p/5692068.html

https://www.cnblogs.com/gaoxu387/p/7941381.html

你可能感兴趣的:(LVS)