LVS 介绍

LVS 介绍

说明:
  • LVS是Linux Virtual Server的简称
  • LVS是一个实现负载均衡的开源软件项目
  • LVS效率要高于Nginx
  • LVS工作在ISO的第4层(传输层)
LVS架构有三层:
  • 最前端的:负载均衡层(Loader Balancer)
  • 中间的:服务器群组层(Server Array)
  • 最底层的:数据共享存储层(Shared Storage)

LVS三种工作模式:

  • NAT:调度器将请求的目标IP即vip地址改为Real server的ip,返回数据包也经过调度器调度把原地址改为vip
  • TUN:调度器将请求来的数据包封装加密通过ip隧道转发到后端的real server上,而real server 会直接把数据返回给客户端,不再经过调度器。
  • DR:调度器将请求来的数据包的目标mac地址改为real server的mac地址,返回的时候也不经过调度器直接返回给客户端。

LVS八种算法:

  • 轮叫调度(Round Robin)(简称rr):平均分发给每个请求
  • 加权轮叫(Weighted Round Robin)(简称wrr):定义某个机器的轮询次数
  • 最少链接(least connection)(简称LC):判断哪个机器处理链接少(处理请求快)就多发送请求。
  • 加权最少链接(Weighted Least Connections)(简称WLC):在最少链接的基础上,加入权重。
  • 基于局部性的最少链接(Locality-Based Least Connections)
  • 带复制的基于局部性最少链接(Locality-Based Least Connections with Replication)
  • 目标地址散列(Destination Hashing)
  • 源地址散列(Source Hashing)

LVS的体系架构如图:

 


LVS三层架构

负载均衡层

  Load Balancer层:位于整个集群系统的最前端,有一台或者多台负载调度器(Director Server)组成,LVS模块就安装在Director Server上,而Director的主要作用类似于一个路由器,它含有完成LVS功能所设定的路由表,通过这些路由表把用户的请求分发给Server Array层的应用服务器(Real Server)上。同时,在Director Server上还要安装对Real Server服务的监控模块Ldirectord,此模块用于监测各个Real Server服务的健康状况。在Real Server不可用时把它从LVS路由表中剔除,恢复时重新加入。

服务器群组层

  Server Array层:由一组实际运行应用服务的机器组成,Real Server可以是WEB服务器、MAIL服务器、FTP服务器、DNS服务器、视频服务器中的一个或者多个,每个Real Server之间通过高速的LAN或分布在各地的WAN相连接。在实际的应用中,Director Server也可以同时兼任Real Server的角色。

数据共享存储层

  Shared Storage层:是为所有Real Server提供共享存储空间和内容一致性的存储区域,在物理上,一般有磁盘阵列设备组成,为了提供内容的一致性,一般可以通过NFS网络文件系统共享数 据,但是NFS在繁忙的业务系统中,性能并不是很好,此时可以采用集群文件系统,例如Red hat的GFS文件系统,oracle提供的OCFS2文件系统等。


LVS工作模式

NAT模式

  特点:防火墙的转发、不同网段通信、数据流量消耗比较大。

  LVS/NAT: 即(Virtual Server via Network Address Translation)也就是网络地址翻译技术实现虚拟服务器,当用户请求到达调度器时,调度器将请求报文的目标地址(即虚拟IP地址)改写成选定的Real Server地址,同时报文的目标端口也改成选定的Real Server的相应端口,最后将报文请求发送到选定的Real Server。在服务器端得到数据后,Real Server返回数据给用户时,需要再次经过负载调度器将报文的源地址和源端口改成虚拟IP地址和相应端口,然后把数据发送给用户,完成整个负载调度过程。可以看出,在NAT方式下,用户请求和响应报文都必须经过Director Server地址重写,当用户请求越来越多时,调度器的处理能力将称为瓶颈。

TUN模式

  特点:更改目标的IP地址、服务端接收请求数据后直接交给客户端,不通过调度器。

  LVS/TUN :即(Virtual Server via IP Tunneling) 也就是IP隧道技术实现虚拟服务器。它的连接调度和管理与VS/NAT方式一样,只是它的报文转发方法不同,VS/TUN方式中,调度器采用IP隧道技术将用户请求转发到某个Real Server,而这个Real Server将直接响应用户的请求,不再经过前端调度器,此外,对Real Server的地域位置没有要求,可以和Director Server位于同一个网段,也可以是独立的一个网络。因此,在TUN方式中,调度器将只处理用户的报文请求,集群系统的吞吐量大大提高。

DR模式

  特点:更改目标mac地址、服务端接收请求数据后直接交给客户端,不通过调度器。

  VS/DR: 即(Virtual Server via Direct Routing) 也就是用直接路由技术实现虚拟服务器。它的连接调度和管理与VS/NAT和VS/TUN中的一样,但它的报文转发方法又有不同,VS/DR通过改写请求报文的MAC地址,将请求发送到Real Server,而Real Server将响应直接返回给客户,免去了VS/TUN中的IP隧道开销。这种方式是三种负载调度机制中性能最高最好的,但是必须要求Director Server与Real Server都有一块网卡连在同一物理网段上。


原文地址:https://www.cnblogs.com/xiangsikai/p/8426965.html