下载

1下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 LVS集群中的IP负载均衡技术

LVS集群中的IP负载均衡技术.doc

LVS集群中的IP负载均衡技术

罗裕民
2019-05-26 0人阅读 举报 0 0 暂无简介

简介:本文档为《LVS集群中的IP负载均衡技术doc》,可适用于IT/计算机领域

LVS集群中的IP负载均衡技术前言在前面文章中讲述了可伸缩网络服务的几种结构它们都需要一个前端的负载调度器(或者多个进行主从备份)。我们先分析实现虚拟网络服务的主要技术指出IP负载均衡技术是在负载调度器的实现技术中效率最高的。在已有的IP负载均衡技术中主要有通过网络地址转换(NetworkAddressTranslation)将一组服务器构成一个高性能的、高可用的虚拟服务器我们称之为VSNAT技术(VirtualServerviaNetworkAddressTranslation)。在分析VSNAT的缺点和网络服务的非对称性的基础上我们提出了通过IP隧道实现虚拟服务器的方法VSTUN(VirtualServerviaIPTunneling)和通过直接路由实现虚拟服务器的方法VSDR(VirtualServerviaDirectRouting)它们可以极大地提高系统的伸缩性。VSNAT、VSTUN和VSDR技术是LVS集群中实现的三种IP负载均衡技术我们将在文章中详细描述它们的工作原理和各自的优缺点。在以下描述中我们称客户的socket和服务器的socket之间的数据通讯为连接无论它们是使用TCP还是UDP协议。下面简述当前用服务器集群实现高可伸缩、高可用网络服务的几种负载调度方法并列举几个在这方面有代表性的研究项目。实现虚拟服务的相关方法在网络服务中一端是客户程序另一端是服务程序在中间可能有代理程序。由此看来可以在不同的层次上实现多台服务器的负载均衡。用集群解决网络服务性能问题的现有方法主要分为以下四类。基于RRDNS的解决方法NCSA的可伸缩的WEB服务器系统就是最早基于RRDNS(RoundRobinDomainNameSystem)的原型系统,。它的结构和工作流程如下图所示:图:基于RRDNS的可伸缩WEB服务器(注:本图来自文献【】)有一组WEB服务器他们通过分布式文件系统AFS(AndrewFileSystem)来共享所有的HTML文档。这组服务器拥有相同的域名(如wwwncsauiucedu)当用户按照这个域名访问时,RRDNS服务器会把域名轮流解析到这组服务器的不同IP地址从而将访问负载分到各台服务器上。这种方法带来几个问题。第一域名服务器是一个分布式系统是按照一定的层次结构组织的。当用户就域名解析请求提交给本地的域名服务器它会因不能直接解析而向上一级域名服务器提交上一级域名服务器再依次向上提交直到RRDNS域名服器把这个域名解析到其中一台服务器的IP地址。可见从用户到RRDNS间存在多台域名服器而它们都会缓冲已解析的名字到IP地址的映射,这会导致该域名服器组下所有用户都会访问同一WEB服务器出现不同WEB服务器间严重的负载不平衡。为了保证在域名服务器中域名到IP地址的映射不被长久缓冲RRDNS在域名到IP地址的映射上设置一个TTL(TimeToLive)值过了这一段时间域名服务器将这个映射从缓冲中淘汰。当用户请求它会再向上一级域名服器提交请求并进行重新影射。这就涉及到如何设置这个TTL值若这个值太大在这个TTL期间很多请求会被映射到同一台WEB服务器上同样会导致严重的负载不平衡。若这个值太小例如是0会导致本地域名服务器频繁地向RRDNS提交请求增加了域名解析的网络流量同样会使RRDNS服务器成为系统中一个新的瓶颈。第二用户机器会缓冲从名字到IP地址的映射而不受TTL值的影响用户的访问请求会被送到同一台WEB服务器上。由于用户访问请求的突发性和访问方式不同例如有的人访问一下就离开了而有的人访问可长达几个小时所以各台服务器间的负载仍存在倾斜(Skew)而不能控制。假设用户在每个会话中平均请求数为负载最大的服务器获得的请求数额高于各服务器平均请求数的平均比率超过百分之三十。也就是说当TTL值为时因为用户访问的突发性也会存在着较严重的负载不平衡。第三系统的可靠性和可维护性差。若一台服务器失效会导致将域名解析到该服务器的用户看到服务中断即使用户按“Reload”按钮也无济于事。系统管理员也不能随时地将一台服务器切出服务进行系统维护如进行操作系统和应用软件升级这需要修改RRDNS服务器中的IP地址列表把该服务器的IP地址从中划掉然后等上几天或者更长的时间等所有域名服器将该域名到这台服务器的映射淘汰和所有映射到这台服务器的客户机不再使用该站点为止。基于客户端的解决方法基于客户端的解决方法需要每个客户程序都有一定的服务器集群的知识进而把以负载均衡的方式将请求发到不同的服务器。例如NetscapeNavigator浏览器访问Netscape的主页时它会随机地从一百多台服务器中挑选第N台最后将请求送往wwwNnetscapecom。然而这不是很好的解决方法Netscape只是利用它的Navigator避免了RRDNS解析的麻烦当使用IE等其他浏览器不可避免的要进行RRDNS解析。SmartClient是Berkeley做的另一种基于客户端的解决方法。服务提供一个JavaApplet在客户方浏览器中运行Applet向各个服务器发请求来收集服务器的负载等信息再根据这些信息将客户的请求发到相应的服务器。高可用性也在Applet中实现当服务器没有响应时Applet向另一个服务器转发请求。这种方法的透明性不好Applet向各服务器查询来收集信息会增加额外的网络流量不具有普遍的适用性。基于应用层负载均衡调度的解决方法多台服务器通过高速的互联网络连接成一个集群系统在前端有一个基于应用层的负载调度器。当用户访问请求到达调度器时请求会提交给作负载均衡调度的应用程序分析请求根据各个服务器的负载情况选出一台服务器重写请求并向选出的服务器访问取得结果后再返回给用户。应用层负载均衡调度的典型代表有Zeus负载调度器、pWeb、ReverseProxy和SWEB等。Zeus负载调度器是Zeus公司的商业产品它是在ZeusWeb服务器程序改写而成的采用单进程事件驱动的服务器结构。pWeb就是一个基于Apache服务器程序改写而成的并行WEB调度程序当一个HTTP请求到达时pWeb会选出一个服务器重写请求并向这个服务器发出改写后的请求等结果返回后再将结果转发给客户。ReverseProxy利用Apache中的Proxy模块和Rewrite模块实现一个可伸缩WEB服务器它与pWeb的不同之处在于它要先从Proxy的cache中查找后若没有这个副本再选一台服务器向服务器发送请求再将服务器返回的结果转发给客户。SWEB是利用HTTP中的redirect错误代码将客户请求到达一台WEB服务器后这个WEB服务器根据自己的负载情况自己处理请求或者通过redirect错误代码将客户引到另一台WEB服务器以实现一个可伸缩的WEB服务器。基于应用层负载均衡调度的多服务器解决方法也存在一些问题。第一系统处理开销特别大致使系统的伸缩性有限。当请求到达负载均衡调度器至处理结束时调度器需要进行四次从核心到用户空间或从用户空间到核心空间的上下文切换和内存复制需要进行二次TCP连接一次是从用户到调度器另一次是从调度器到真实服务器需要对请求进行分析和重写。这些处理都需要不小的CPU、内存和网络等资源开销且处理时间长。所构成系统的性能不能接近线性增加的一般服务器组增至或台时调度器本身可能会成为新的瓶颈。所以这种基于应用层负载均衡调度的方法的伸缩性极其有限。第二基于应用层的负载均衡调度器对于不同的应用需要写不同的调度器。以上几个系统都是基于HTTP协议若对于FTP、Mail、POP等应用都需要重写调度器。基于IP层负载均衡调度的解决方法用户通过虚拟IP地址(VirtualIPAddress)访问服务时访问请求的报文会到达负载调度器由它进行负载均衡调度从一组真实服务器选出一个将报文的目标地址VirtualIPAddress改写成选定服务器的地址报文的目标端口改写成选定服务器的相应端口最后将报文发送给选定的服务器。真实服务器的回应报文经过负载调度器时将报文的源地址和源端口改为VirtualIPAddress和相应的端口再把报文发给用户。Berkeley的MagicRouter、Cisco的LocalDirector、Alteon的ACEDirector和F的BigIP等都是使用网络地址转换方法。MagicRouter是在Linux版本上应用快速报文插入技术使得进行负载均衡调度的用户进程访问网络设备接近核心空间的速度降低了上下文切换的处理开销但并不彻底它只是研究的原型系统没有成为有用的系统存活下来。Cisco的LocalDirector、Alteon的ACEDirector和F的BigIP是非常昂贵的商品化系统它们支持部分TCPUDP协议有些在ICMP处理上存在问题。IBM的TCPRouter使用修改过的网络地址转换方法在SP系统实现可伸缩的WEB服务器。TCPRouter修改请求报文的目标地址并把它转发给选出的服务器服务器能把响应报文的源地址置为TCPRouter地址而非自己的地址。这种方法的好处是响应报文可以直接返回给客户坏处是每台服务器的操作系统内核都需要修改。IBM的NetDispatcher是TCPRouter的后继者它将报文转发给服务器而服务器在nonARP的设备配置路由器的地址。这种方法与LVS集群中的VSDR类似它具有很高的可伸缩性但一套在IBMSP和NetDispatcher需要上百万美金。总的来说IBM的技术还挺不错的。

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/5

LVS集群中的IP负载均衡技术

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利