LVS是什么意思

59次阅读
没有评论

共计 4547 个字符,预计需要花费 12 分钟才能阅读完成。

这篇文章主要介绍 LVS 是什么意思,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

一、LVS 概念

LVS 是 Linux Virtual Server 的简称,也就是 Linux 虚拟服务器。这是一个由章文嵩博士发起的一个开源项目,它的官方网站是 http://www.linuxvirtualserver.org/. 现在 LVS 已经是 Linux 内核标准的一部分。

使用 LVS 可以达到的技术目标是:通过 LVS 达到的负载均衡技术和 Linux 操作系统实现一个高性能高可用的 Linux 服务器群集,它具有良好的可靠性,可拓展性和可操作性。从而以低廉的成本实现 *** 的性能。

LVS 从 1998 年开始,发展到现在已经是一个比较成熟的项目了。利用 LVS 技术可以实现高性能,高可压缩的网路服务,例如 WWW 服务,FTP 服务,MAIL 服务等。比较著名的就是 www.linux.com 以及 www.real.com.

二、LVS 的体系架构

使 用 LVS 架设的服务器集群系统有三个部分组成:最前端的负载均衡层(Loader Balancer),中间的服务器群组层,用 Server  Array 表示,*** 层的数据共享存储层,用 Shared  Storage 表示。在用户看来所有的应用都是透明的,用户只是在使用一个虚拟服务器提供的高性能服务。

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 结构可以看出,Director  Server 是整个 LVS 的核心,目前,用于 Director  Server 的操作系统只能是 Linux 和 FreeBSD,linux2.6 内核不用任何设置就可以支持 LVS 功能,而 FreeBSD 作为 Director Server 的应用还不是很多,性能也不是很好。对于 Real  Server,几乎可以是所有的系统平台,Linux、windows、Solaris、AIX、BSD 系列都能很好的支持。

三、 LVS 集群的特点

3.1  IP 负载均衡与负载调度算法

1.IP 负载均衡技术

负载均衡技术有很多实现方案,有基于 DNS 域名轮流解析的方法、有基于客户端调度访问的方法、有基于应用层系统负载的调度方法,还有基于 IP 地址的调度方法,在这些负载调度算法中,执行效率 *** 的是 IP 负载均衡技术。

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

当用户的请求到达负载调度器后,调度器如何将请求发送到提供服务的 Real Server 节点,而 Real Server 节点如何返回数据给用户,是 IPVS 实现的重点技术,IPVS 实现负载均衡机制有三种,分别是 NAT、TUN 和 DR,详述如下:

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

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

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 都有一块网卡连在同一物理网段上。

2.负载调度算法

上面我们谈到,负载调度器是根据各 个服务器的负载情况,动态地选择一台 Real  Server 响应用户请求,那么动态选择是如何实现呢,其实也就是我们这里要说的负载调度算法,根据不同的网络服务需求和服务器配置,IPVS 实现了如下 八种负载调度算法,这里我们详细讲述最常用的四种调度算法,剩余的四种调度算法请参考其它资料。

轮叫调度(Round Robin)

“轮叫”调度也叫 1:1 调度,调度器通过“轮叫”调度算法将外部用户请求按顺序 1:1 的分配到集群中的每个 Real Server 上,这种算法平等地对待每一台 Real Server,而不管服务器上实际的负载状况和连接状态。

加权轮叫调度(Weighted Round Robin)

“加 权轮叫”调度算法是根据 Real Server 的不同处理能力来调度访问请求。可以对每台 Real  Server 设置不同的调度权值,对于性能相对较好的 Real Server 可以设置较高的权值,而对于处理能力较弱的 Real  Server,可以设置较低的权值,这样保证了处理能力强的服务器处理更多的访问流量。充分合理的利用了服务器资源。同时,调度器还可以自动查询 Real  Server 的负载情况,并动态地调整其权值。

最少链接调度(Least Connections)

“最少连接”调度算法动态地将网络请求调度到已建立的链接数最少的服务器上。如果集群系统的真实服务器具有相近的系统性能,采用“最小连接”调度算法可以较好地均衡负载。

加权最少链接调度(Weighted Least Connections)

“加权最少链接调度”是“最少连接调度”的超集,每个服务节点可以用相应的权值表示其处理能力,而系统管理员可以动态的设置相应的权值,缺省权值为 1,加权最小连接调度在分配新连接请求时尽可能使服务节点的已建立连接数和其权值成正比。

其它四种调度算法分别为:基于局部性的最少链接(Locality-Based Least  Connections)、带复制的基于局部性最少链接(Locality-Based Least Connections with  Replication)、目标地址散列(Destination Hashing)和源地址散列(Source  Hashing),对于这四种调度算法的含义,本文不再讲述,如果想深入了解这其余四种调度策略的话,可以登陆 LVS 中文站点 zh.linuxvirtualserver.org,查阅更详细的信息。

3.2 高可用性

LVS 是一个基于内核级别的应用 软件,因此具有很高的处理性能,用 LVS 构架的负载均衡集群系统具有优秀的处理能力,每个服务节点的故障不会影响整个系统的正常使用,同时又实现负载的合 理均衡,使应用具有超高负荷的服务能力,可支持上百万个并发连接请求。如配置百兆网卡,采用 VS/TUN 或 VS/DR 调度技术,整个集群系统的吞吐量可高 达 1Gbits/s;如配置千兆网卡,则系统的 *** 吞吐量可接近 10Gbits/s。

3.3 高可靠性

LVS 负载均衡集群软 件已经在企业、学校等行业得到了很好的普及应用,国内外很多大型的、关键性的 web 站点也都采用了 LVS 集群软件,所以它的可靠性在实践中得到了很好的证 实。有很多以 LVS 做的负载均衡系统,运行很长时间,从未做过重新启动。这些都说明了 LVS 的高稳定性和高可靠性。

3.4 适用环境

LVS 对前端 Director Server 目前仅支持 Linux 和 FreeBSD 系统,但是支持大多数的 TCP 和 UDP 协议,支持 TCP 协议的应用有:HTTP,HTTPS,FTP,SMTP,,POP3,IMAP4,PROXY,LDAP,SSMTP 等等。
支持 UDP 协议的应用有:DNS,NTP,ICP,视频、音频流播放协议等。
LVS 对 Real Server 的操作系统没有任何限制,Real Server 可运行在任何支持 TCP/IP 的操作系统上,包括 Linux,各种 Unix(如 FreeBSD、Sun Solaris、HP Unix 等),Mac/OS 和 Windows 等。

3.5 开源软件

LVS 集群软件是按 GPL(GNU Public License)许可证发行的自由软件,因此,使用者可以得到软件的源代码,并且可以根据自己的需要进行各种修改,但是修改必须是以 GPL 方式发行。

以上是“LVS 是什么意思”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注丸趣 TV 行业资讯频道!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-16发表,共计4547字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)