浅谈负载均衡器LVS
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅谈负载均衡器LVS相关的知识,希望对你有一定的参考价值。
Linux Virtual Server 项目由章文嵩博士在1998年5月发起创立,是国内最早的自由软件项目之一。Linux Virtual Server 针对高可伸缩、高可用网络服务的需求,提出了基于IP 层和基于内容请求分发的负载均衡调度解决方案。由于该项目的负载调度技术是在 Linux 内核中实现的,所以称之为“Linux 虚拟服务器”(LinuxVirtual Server),简称为LVS。在开始讨论LVS之前,先普及一下集群方面的知识,这有助于更好理解LVS的应用场合。
常见集群系统分类:
1. 高可用性集群(High Availability Cluster)HA
运 行于两个或多个节点上,目的是在系统出现某些故障的情况下,最大限度地减少服务中断时间,保障应用程序持续提供服务的能力。这类集群中比较著名的有 TurbolinuxTurboHA、Heartbeat、Kimberlite 等。对于此类集群还有很多通俗的名称,如“双机热备”, “双机互备”等。
2. 负载均衡集群(Load Balance Cluster)LB
提供和节点个数成正比的负载能力,这种集群适合需要提供大负载访问量的服务,如Web。这类集群中比较著名的有Turbolinux Cluster Server、Linux Virtual Server。此类集群把负载压力根据某种算法合理分配到集群中的每一台计算机上,以减轻主服务器的压力,降低对主服务器的硬件和软件要求。
3. 科学计算集群(High Performance Computing Cluster)HPC
利用超级计算集群软件将多个节点的计算机联结在一起,完成通常只有超级计算机才能完
成的计算任务。这类软件有Turbolinux EnFusion、SCore 等。
回到主题,LVS 集群的特点可以归结如下:
功能:基于内容的请求分发技术和3 种IP 负载均衡技术,十种连接调度算法
适用性:后端服务器可运行Linux,Unix,Mac/OS 和Windows NT/2000 等多种操作系统。支持绝大多数的TCP 和UDP 协议
灵活性:无需对客户机和服务器作任何修改
性能:支持几百万并发连接,系统的最大吞吐量可接近10Gbits/s
可靠性:已经在很多大型的、关键性的站点的应用
软件许可证:基于GPL 许可证发行
LVS 集群系统已在美、英、德、澳等国的几十个站点上正式使用,例如:
英国国家 JANET Cache Service(www.cache.ja.net)
Linux 的门户站点(www.linux.com)
SourceForge(sourceforge.net)
Real 公司(www.real.com)
NetWalk(www.netwalk.com)
LVS 体系结构介绍:
LVS 通过前端一个负载调度器(Load Balancer,也叫负载均衡器)无缝地将网络请求调度到真实服务器上,从而使得服务器集群的结构对客户是透明的,客户访问集群系统提供的网络服务就像 访问一台高性能、高可用的服务器一样。客户程序不受服务器集群的影响不需作任何修改。系统的伸缩性通过在服务器机群中透明地加入或删除一个节点来达到,通 过检测节点或服务进程故障和正确地重置使系统达到高可用性。
LVS 的抽象体系结构分为三个层次:负载调度器(load balancer)、服务器池(server pool)、共享存储(shared storage)
LVS 负载均衡模型:
LVS 的三种负载均衡模型(地址转换(NAT)、IP 隧道(IP Tunneling)和直接路由(DR))
地址转换(NAT)
NAT 模式下的服务器节点使用的是私有IP,均衡器是集群的唯一出入口,网络结构呈现为一种类似防火墙的私有网结构,服务器结点无法和客户端直接通信,所有数据都需要经过均衡器进行处理(分发/路由/NAT),这里负载均衡器就会成为一个性能瓶颈。
IP 隧道(IP Tunneling)
VS/TUN 模式采用开放的网络结构,负载均衡器仅仅处理进入集群的请求数据包,而返回数据包不经过负载均衡器。服务器结点拥有合法的公网IP 地址,可将应答包直接返回给客户端。负载均衡器和服务器结点的连接可以是同一LAN 上,也可以跨越WAN 在不同的网段上。
负载均衡器通过 IPIP 协议将客户端的请求包封装为新的IP 包,发给服务器节点。服务器结点收到均衡器发来的IPIP 数据包后,将包解开,根据包内的客户端源地址将处理结果,直接返回给客户端。
直接路由(DR)
DR 模式下服务器节点的应答数据不经过均衡器,而是直接返回给客户端。服务器结点也必须拥有合法IP 地址。而且,负载均衡器和服务器结点必须位于同一个网段。
负载均衡器接收到客户端请求数据包后,选择合适的服务器结点,将请求包的MAC 地址改写为目的服务器结点的MAC 地址,再将此包广播到服务器器节点所在网段。每个服务器结点都设定一个虚拟的网络设备(lo:0),这个设备绑定了和均衡器一样的VIP,只是该设备并不 响应对VIP 的ARP 解析,不会和均衡器的VIP 产生地址冲突。负载均衡器收到符合自身MAC的IP 包后,经过处理后直接将应答数据返回给客户。
LVS 常用负载调度算法:
轮叫(Round Robin):以顺序循环将服务请求分配到集群中的内容服务器上,所有服务器地位平等,不考虑服务器上实际的连接数和系统负载。
加权轮叫(Weighted Round Robin):循环方式调度,但在循环中给每个内容服务器分配指定权重的连接,从而充分考虑各内容服务器处理能力之间的差异。
最少链接(Least Connections):将新到的连接请求动态地分配给现有活跃连接数最少的内容服务器。如果集群系统的真实服务器具有相近的系统性能,可考虑采用“最小连接”。
加权最少链接(Weighted Least Connections):在最少链接的算法基础上,增加权重参考值,较高权值的服务器承受较大比例的负载。在集群系统中的服务器性能差异较大的情况下,建议采用“加权最少链接”。
本文出自 “Share Linux” 博客,请务必保留此出处http://sharelinux.blog.51cto.com/11163444/1743215
以上是关于浅谈负载均衡器LVS的主要内容,如果未能解决你的问题,请参考以下文章