`

LVS负载均衡

 
阅读更多

文章来源:

http://network.51cto.com/art/201004/195997.htm

http://network.51cto.com/art/201004/196878.htm

 

lvs的开源特点引来众多的使用者,而其中的负载均衡的支持功能又是一个强有力的优势。那么我们现在就来对lvs负载均衡的基础知识做一个简要的概括性介绍。之前我们也有细化介绍了相关内容,还希望读者们能关注我们的专题栏目。

一、lvs负载均衡转发模式及调度算法

1、负载均衡转发模式包括直接路由模式DR、网络地址转换模式NAT以及隧道模式TUN三种。在一般的互联网应用环境,选择直接路由模式是比较有利的,原因有:

(1)DR利用大多数Internet服务的非对称特点,负载调度器中只负责调度请求,而服务器直接将响应返回给客户,可以极大地提高整个集群系统的吞吐量-引用自http://www.linuxvirtualserver.org/zh/lvs3.html。从原理上可以知道,DR模式下,负载均衡器的输出和输出流量应该是基本一致的,图1证实了这个事实。

负载均衡器流量图

图1 负载均衡器流量图

(2)排错方便迅速。如果通过vip访问不到服务,则可以直接通过访问真实服务器的方式直接定位问题的所在。

(3)当负载均衡器都停止工作时,DR模式易于应急处理。通过修改dns的A记录,把先前主机名对应的vip改成真实服务器的ip地址,使服务迅速恢复起来,从而赢得时间处理负载均衡器的故障。

2、负载均衡器的调度算法

Lvs负载均衡器的调度算法有8种,详情请访问http://www.linuxvirtualserver.org/zh/lvs4.html。一般的互联网应用,多采用轮叫调度rr(Round-RobinScheduling)及加权最小连接调度wlc(WeightedLeast-ConnectionScheduling)。

二、lvs负载均衡环境安全问题

前面我们讲过,在负载均衡器上,为了获得更好的转发性能,尽量不要使用主机防火墙。那么,这怎样保证系统的安全呢?个人觉得,还是采购硬件防火墙放在负载均衡器的前面比较可靠。如果资金充裕,购买具备防ddos的硬件防火墙则更胜一筹。

三、同义词

网上有些词语有不同的说法,为了便于理解,这里给出相同意义的一些说法。

1、负载均衡器与Director为同义词。

2、真实服务器realserver与poolserver是同义词。

3、ip负载均衡技术与负载均衡模式是同义词。

四、关于负载均衡器后面真实服务器的数量

有人曾经问我:"sina是不是做了负载均衡?是不是一个负载均衡器背后放几百个服务器?"。理论上,放几百个服务器没有问题(章文嵩博士给出的数值是100),技术上也可能实现。但这不是一个好的策略。最佳的策略可能是:根据访问情况对大的应用进行分割,弄成一个个小的集群。具体到一个网站,可以把访问量大的频道独立出来,一个频道或几个频道组成一个lvs负载均衡集群。

五、话题讨论

近来nginx很受追捧,于是就有人使用了图2的架构来实现负载均衡。这种3层结构的负载均衡相对于两层的负载均衡架构,谁优谁劣?欢迎讨论。

三层结构负载均衡

图2 三层结构负载均衡

 

前面我们介绍了相关的LVS转发机制的三种方式,现在我们来归纳一下这三种机制的优点,看看他们在负载平衡中的使用有什么优势。之后,再为大家介绍一下关于这些机制的四种配置方法和架构方式。通过本文,您可以选择一个较为适合您的方式进行配置。

三种转发机制的优缺点

◆Virtual Server via NAT

VS/NAT 的优点是服务器可以运行任何支持TCP/IP的操作系统,它只需要一个IP地址配置在LVS主机上,服务器组可以用私有的IP地址。缺点是它的扩充能力有限,当服务器结点数目升到20时,LVS主机本身有可能成为系统的新瓶颈,因为在VS/NAT中请求和响应封包都需要通过负载平衡LVS主机。在 Pentium 166主机上测得重写封包的平均延时为60us,假设TCP封包的平均长度为536 Bytes,则LVS主机的最大吞吐量为8.93 MBytes/s。再假设每台服务器的吞吐量为600KBytes/s,这样一个LVS主机可以带动16台服务器。

◆Virtual Server via IP Tunneling

在VS/TUN 的集群系统中,负载平衡LVS主机只将请求分配到不同的实际服务器,实际服务器将应答的资料直接返回给用户。这样,负载平衡LVS主机就可以处理巨量的请求,而不会成为系统的瓶颈。即使负载平衡LVS主机只有100Mbps的全双工网卡,虚拟服务器的最大吞吐量可以达到几Gbps。所以,VS/TUN可以极大地增加负载平衡LVS主机分配的服务器数量,它可以用来构建高性能超级服务器。VS/TUN技术对服务器的要求是所有的服务器必须支持"IP Tunneling"或者"IP Encapsulation"协议。目前,VS/TUN 的后端服务器主要运行Linux操作系统。因为"IP Tunneling"正成为各个操作系统的标准协议,所以VS/TUN也会适用运行其它操作系统的后端服务器。

◆Virtual Server via Direct Routing

同VS/TUN 一样,VS/DRLVS主机只处理客户到服务器端的连接,响应资料可以直接从独立的网络路由返回给客户。这可以极大地提高LVS集群系统的伸缩性。同 VS/TUN相比,这种方法没有IP隧道的开销,但是要求负载平衡LVS主机与实际服务器都有一块网卡连在同一物理网段上,服务器网络设备或者设备别名不作 ARP 响应。

四种分配方法(Load-balancing Methods)

不同的分配方法建构LVS主机成四种不同的排程

负载平衡排程是以连接为单位的。在HTTP协议(nowait)中,每个对象从WEB服务器上获取都需要建立一个TCP连接,同一用户的不同请求会被分配到不同的服务器上,所以这种连接的分配完全避免了用户连结的突发性引起的负载不平衡。目前有以下4种排程算法:

轮流排程 Round-Robin Scheduling (RRS)

轮流排程算法是假设所有服务器处理性能均相同,依次将请求分配不同的服务器,算法简单,但不适用于服务器组中处理性能不一致的情况。

加权轮流排程 Weighted Round-Robin Scheduling (WRRS)

为此使用加权轮流排程算法,用相应的加权值表示服务器的处理性能,将请求数目按加权值的比例分配到各服务器。加权值高的服务器先收到连接,加权值高的服务器比加权值低的服务器处理更多的连接,相同权值的服务器处理相同数目的连接数。

最小连结数排程 Least-Connection Scheduling (LCS)

最小连结数排程是需要记录各个服务器已建立TCP连接的数目,把新的连接请求发送当前连接数最小的服务器。当各个服务器有相同的处理性能时,最小连结数排程能把负载变化大的请求平均分布到各个服务器上,所有处理时间比较长的请求不可能被发送到同一台服务器上。

加权最小连接数排程 Weighted Least-Connection Scheduling (WLCS)

但是,当各个服务器的处理能力不同时,该算法并不理想,因为TCP连接处理请求后会进入TIME_WAIT状态,TCP的TIME_WAIT 一般为2分钟,此时连接还占用服务器的资源,所以会出现这样情形,性能高的服务器已处理所收到的连接,连接处于TIME_WAIT状态,而性能低的服务器既要忙于处理所收到的连接,还要收到新的连接请求。加权最小连接分配是最小连接分配的超集,各个服务器用相应的权值表示其处理性能。假设每台服务器的权值为Wi(i=1..n),TCP连接数目为 Ti(i=1..n),依次选Ti/Wi为最小者的服务器为下一个分配到服务的服务器。

四种分配方法(Load-balancing Methods)

Round robin (RRS)

将工作平均的分配到服务器 (用于实际服务主机性能一致)

Least-connections (LCS)

向较少连接的服务器分配较多的工作(IPVS 表存储了所有的活动的连接。用于实际服务主机性能一致。)

Weighted round robin (WRRS)

向较大容量的服务器分配较多的工作。可以根据负载信息动态的向上或向下调整。 (用于实际服务主机性能不一致时)

Weighted least-connections (WLC)

考虑它们的容量向较少连接的服务器分配较多的工作。容量通过用户指定的砝码来说明,可以根据装载信息动态的向上或向下调整。(用于实际服务主机性能不一致时)

分享到:
评论

相关推荐

    lvs负载均衡集群详解

    lvs负载均衡集群详解 LVS(Linux Virtual Server)是一种开源的负载均衡解决方案,旨在帮助企业解决高访问量带来的服务器性能瓶颈问题。通过LVS,可以将多个服务器组合成一个集群,共同提供服务,提高系统的可用性...

    lvs负载均衡集群实验.docx

    lvs负载均衡集群实验 lvs负载均衡集群是基于Linux操作系统的高可用性集群解决方案,通过将多个Real Server集成到一个虚拟的IP地址(Virtual IP,VIP)上,来实现对外提供服务的目的。下面将对lvs负载均衡集群的实验...

    LVS 负载均衡配置参考

    ### LVS负载均衡配置详解 #### 一、LVS简介 LVS(Linux Virtual Server)是一种先进的集群技术,主要用于构建高性能、高可用性的服务器集群。它通过IP负载均衡技术和基于内容请求分发技术来实现这一目标。具体而言...

    lvs负载均衡源码

    LVS负载均衡器的调度算法有很多种,例如轮询(Round Robin)、最少连接(Least Connections)、短连接优先(Shortest Connection First)等,可以根据实际需求选择合适的算法来分配请求。 在“LVS-master”这个...

    高并发系统架构(LVS负载均衡、Nginx、共享存储、队列缓存)04.LVS负载均衡深入进阶实战 共13页.pptx

    高并发架构实战案例分享-概述 共19页.pptx02.Piranha安装快速搭建LVS负载均衡集群 共16页.pptx03.LVS负载均衡DR模式安装调试介绍 共13页.pptx04.LVS负载均衡深入进阶实战 共13页.pptx05.LVS调度策略及负载均衡原理...

    高并发系统架构(LVS负载均衡、Nginx、共享存储、队列缓存)02.Piranha安装搭建LVS负载均衡集群共16页.pptx

    高并发架构实战案例分享-概述 共19页.pptx02.Piranha安装快速搭建LVS负载均衡集群 共16页.pptx03.LVS负载均衡DR模式安装调试介绍 共13页.pptx04.LVS负载均衡深入进阶实战 共13页.pptx05.LVS调度策略及负载均衡原理...

    高并发系统架构(LVS负载均衡、Nginx、共享存储、队列缓存)03.LVS负载均衡DR模式安装调试介绍 共13页.pptx

    高并发架构实战案例分享-概述 共19页.pptx02.Piranha安装快速搭建LVS负载均衡集群 共16页.pptx03.LVS负载均衡DR模式安装调试介绍 共13页.pptx04.LVS负载均衡深入进阶实战 共13页.pptx05.LVS调度策略及负载均衡原理...

    基于LVS负载均衡的高性能Web站点设计与实现

    - **LVS负载均衡**:LVS作为核心负载均衡器,根据预设的策略,如轮询、最少连接、IP哈希等,将流量分配到各个服务器,确保负载的均衡分布。 3. **环境测试** 在部署完成后,需要对每个组件进行测试,确保它们能...

    利用Iptables实现LVS负载均衡集群研究

    利用Iptables实现LVS负载均衡集群研究

    英文版LVS负载均衡Tutor

    ### LVS负载均衡基础知识 #### 引言 Linux Virtual Server (LVS) 是一个开源项目,它通过在 Linux 内核中实现第四层交换技术来实现网络服务(如 Web 和邮件服务器)的负载均衡。LVS 的优势在于其能够处理数十万...

    高并发系统架构(LVS负载均衡、Nginx、共享存储、队列缓存)05.LVS调度策略及负载均衡原理深入 共16页.pptx

    高并发架构实战案例分享-概述 共19页.pptx02.Piranha安装快速搭建LVS负载均衡集群 共16页.pptx03.LVS负载均衡DR模式安装调试介绍 共13页.pptx04.LVS负载均衡深入进阶实战 共13页.pptx05.LVS调度策略及负载均衡原理...

    RAS+LVS 负载均衡

    总的来说,RAS+LVS负载均衡是利用Heartbeat实现高可用性,配合LVS进行负载分发,共同构建一个稳定、高效且具备容错能力的IT服务环境。在实际应用中,这种技术组合广泛应用于Web服务、数据库服务和其他需要高可靠性和...

    LVS负载均衡集群

    压缩文件内包涵18个LVS负载均衡相关的文档。 下载我保证你不会后悔。

    LVS负载均衡深入进阶实战.pptx

    LVS负载均衡深入进阶实战 本资源摘要信息主要讲解了LVS(Linux Virtual Server)负载均衡技术的深入实践,涵盖了LVS的基本概念、架构、配置、策略、优缺点等方面的知识点。 一、LVS概述 LVS是基于Linux操作系统的...

    LINUX集群LVS负载均衡配置.pdf

    ### LINUX集群LVS负载均衡配置知识点详解 #### 一、LVS概述与基本原理 **LVS**(Linux Virtual Server)是一种开源的负载均衡技术,主要用于实现高性能的Web服务器集群。它通过一个虚拟的IP地址(VIP)对外提供...

    MySQL群集+LVS负载均衡安装

    MySQL群集+LVS负载均衡安装配置实施

    LVS负载均衡服务器.pdf

    在搭建LVS负载均衡服务器的过程中,首先要确保系统环境满足要求。例如,在CentOS系统上,应检查内核配置中是否启用了ip_vs模块。可以通过`grep -i ip_vs /boot/config-<kernel_version>`命令查看,如果显示了如...

    PHP特级课:LVS负载均衡:搜索引擎.docx

    【PHP特级课】深入解析LVS负载均衡技术 ...通过这门课程,学员不仅可以掌握LVS负载均衡技术,还能了解网站架构设计的多个重要方面,如数据库管理、性能优化和网络监控。这些知识对于成为一名优秀的IT架构师至关重要。

Global site tag (gtag.js) - Google Analytics