广告
返回顶部
首页 > 资讯 > 精选 >LVS是什么意思
  • 355
分享到

LVS是什么意思

2023-06-16 19:06:37 355人浏览 八月长安
摘要

这篇文章主要介绍LVS是什么意思,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、LVS概念LVS是linux Virtual Server的简称,也就是Linux虚拟服务器。这是一个由章文嵩博士发起的一个开源项目,

这篇文章主要介绍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是什么意思

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集群的特点

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,查阅更详细的信息。

2 高可用性

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

3 高可靠性

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

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等。

5 开源软件

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

以上是“LVS是什么意思”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网精选频道!

--结束END--

本文标题: LVS是什么意思

本文链接: https://www.lsjlt.com/news/284943.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • LVS是什么意思
    这篇文章主要介绍LVS是什么意思,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、LVS概念LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器。这是一个由章文嵩博士发起的一个开源项目,...
    99+
    2023-06-16
  • J2EE是什么意思2又是什么意思
    J2EE是Java 2 Platform, Enterprise Edition的缩写,意思是Java 2企业级平台。它是一种用于开...
    99+
    2023-09-20
    J2EE
  • xml是什么意思
    一、元素定义 XML的元素定义是由开发者自行确定的,每个元素都由一个开始标签和一个结束标签组成,元素中可以包含文本、其他元素或者属性。 二、属性和值 XML元素可以包含属性,每个属性都有一个名称和一个值。例如,在一个XML...
    99+
    2023-10-29
    xml
  • dashboard是什么意思
    dashboard是一个用于可视化数据和监控系统的工具。用于展示和监控应用程序的关键指标和数据的用户界面,提供了一个集中的平台,让你能够快速了解应用程序的性能和运行状况,就像掌握了你家中各种设备的状态一样。dashboard就像一个商店的橱...
    99+
    2023-11-22
    dashboard
  • Rust是什么意思
    小编给大家分享一下Rust是什么意思,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Rust 是什么Rust 是一种系统编程语言,它运行速度惊人,并且可以避免几乎所...
    99+
    2023-06-16
  • chatgpt是什么意思
    chatgpt是美国OpenAI开发的全新聊天机器人模型,它能通过学习和理解人类的语言进行对话,并根据聊天的上下文进行互动,协助人类...
    99+
    2023-02-08
    chatgpt
  • mybatis是什么意思
    这篇文章主要为大家展示了“mybatis是什么意思”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“mybatis是什么意思”这篇文章吧。什么是mybatis:Mybatis本质是一种半自动化的OR...
    99+
    2023-06-27
  • JMS是什么意思
    小编给大家分享一下JMS是什么意思,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用...
    99+
    2023-06-27
  • ingress是什么意思
    ingress是基于域名的网络转发资源的意思。ingress是对集群中服务的外部访问进行管理的API对象,典型的访问方式是HTTP和HTTPS。Ingress可以提供负载均衡、SSL和基于名称的虚拟托管。ingress简介ingress是基...
    99+
    2023-07-10
  • ed是什么意思
    Ed是一种基本的文本编辑器,最早于1971年在Unix操作系统中开发。Ed编辑器的操作方式与其他编辑器不同,没有图形界面,所有操作都通过键盘命令完成。在Unix系统中,Ed编辑器通常被用作系统故障或其他紧急情况下的默认编辑器,因为它在资源受...
    99+
    2023-08-17
  • display:none是什么意思
    "display:none" 是CSS中一种样式属性,用于隐藏元素,使其不在页面上显示。当一个元素的"display"属性值设置为"...
    99+
    2023-08-30
    意思
  • mysqlinstaller是什么意思
    MySQLInstaller是MySQL官方提供的一个安装程序,用于方便地下载、安装和配置MySQL数据库服务器以及相关组件,使用MySQL Installer可以简化MySQL的安装和设置过程。本教程操作系统:Windows10系统、My...
    99+
    2023-08-02
  • remove是什么意思
    remove是从数据结构中删除一个元素、节点或字符的意思,具体的实现方式取决于所使用的编程语言和数据结构。无论是数组、链表还是字符串,remove操作都是程序员经常使用的操作之一,对于数据处理和算法实现都非常重要。本教程操作环境:windo...
    99+
    2023-08-04
  • c#是什么意思
    c#是一种通用的面向对象编程语言,由微软公司开发并推出。它是在.NET框架上运行的一种编程语言,可以用于开发各种类型的应用程序,包括桌面应用、Web应用、移动应用和游戏等。C#还提供了许多高级特性,如委托、事件、属性和泛型等,使得开发者可以...
    99+
    2023-08-08
  • visible是什么意思
    visible属性是一个布尔类型的值,通常用于控制对象、控件或窗口的可见性,当visible属性设置为true时,表示对象是可见的,它将在屏幕上显示出来,而当visible属性设置为false时,表示对象是隐藏的,它将不会在屏幕上显示。Vi...
    99+
    2023-08-10
  • pm是什么意思
    PM是Project Manager的缩写,意为项目经理,项目经理是一个管理项目的专业角色,在软件开发等领域中尤为重要,负责项目的规划、组织、管理和监督,需要具备多方面的能力,包括管理、沟通、领导和技术知识,确保项目按时交付、在预算范围内,...
    99+
    2023-08-10
  • mysql 是什么意思
    MySQL是一种开源的关系型数据库管理系统(RDBMS),它是由瑞典MySQL AB公司开发的,现在属于Oracle公司。MySQL...
    99+
    2023-09-05
    mysql
  • href是什么意思
    href是HTML中的属性,用于指定链接的目标地址。它通常用于锚点标签()中,可以将链接指向另一个网页、文件或特定位置。例如,点击这...
    99+
    2023-09-26
    href
  • numpy是什么意思
    numpy是一个用于科学计算的Python库。提供了一个强大的多维数组对象和处理这些数组的工具,可以方便地进行数值计算、数据操作、线性代数计算等等。numpy的ndarray对象可以存储同类型的数据,比Python原生的列表对象更高效,还支...
    99+
    2023-11-21
    numpy numpy库
  • php 是什么意思
    本文操作环境:Windows7系统、PHP7.4版、DELL G3电脑php是什么意思 ?PHP(全称:PHP:Hypertext Preprocessor,即“PHP:超文本预处理器”)是一种开源的通用计算机脚本语言,尤其适用于网络开发并...
    99+
    2015-10-12
    php
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作