网络负载均衡是由多台
服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。通过某种负载分担技术,将外部发送来的请求均匀分配到对称结构中的某一台服务器上,而接收到请求的服务器独立地回应客户的请求。均衡负载能够平均分配客户请求到服务器列阵,借此提供快速获取重要数据,解决大量并发访问服务问题。
简介
网络负载均衡( Load balance)主要用于扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性,保证即使是在负载很重的情况下它们也能作出快速响应,保证服务不中断。网络负载均衡可以让客户端用一个逻辑 Internet名称和虚拟IP地址(又称群集IP地址)访问群集,同时保留每台计算机各自的名称。
(1)DNS负载均衡。在DNS中为多个地址配置同一个名字,查询这个名字的客户机将得到其中一个地址,从而使得不同的客户访问不同的服务器,达到负载均衡的目的。
(2)代理服务器。代理服务器将请求均匀转发给多台服务器,从而达到负载均衡的目的。
(3)负载均衡器。负载均衡器采用各种分配算法把网络请求分散到一个服务器集群中的可用服务器上去,有些负载均衡器集成在交换设备中,置于服务器与Internet链接之间,有些则以两块网络适配器将负载均衡功能集成到PC中,一块连接到 Internet上,一块连接到后端服务器群的内部网络上。当Web服务器为图像服务、安全套接层(SSL)会话或数据库事务而进行优化时,负载均衡器可以发挥特别功效。
作用
负载均衡是一种策略,通过重新分配系统负载,使各服务器间负载达到相对均衡,从而降低任务的响应时间,提高系统资源的利用率,使系统的性能得以提高。它主要决的问题主要有:
1)解决网络拥塞问题,服务就近提供,实现地理位置无关性;
2)为用户提供更好的访问质量;
3)提高服务器响应速度;
4)提高服务器及其他资源的利用效率。
要求
网络负载均衡(NLB)存在着硬件和
软件两方面的需求。就硬件而言,它需要1M的内存空间、
缺省设置下4M或者管理设置下最多15M的内存空间。因此,在假定管理要求拥有此类内存,同时又处理着繁重的通信量,从而需要使用32个节点或类似设置的情况下,你最多能够使用15M的内存空间。在典型情况下,NLBS -般使用约4M的内存空间。NLBS只支持
以太网或FDDI(光纤分布式数字接口)。
对于软件来说,NLBS需要网络操作系统的支持,如果你想要实现高度可用的和可扩展的解决方案,你需要使用上述2种系统平台,并且TCP/IP也一并安装,因为TCP/IP是NLBS在不同的群集或群集节点间实现负载平衡的主要协议。对于应用程序提出的另一个要求是,任一应用程序的多个实例必须能够运行于所有的群集节点之间。
优点
第一,网络
负载均衡能将传入的请求传播到多达32台服务器上,即可以使用最多32台服务器共同分担对外的网络请求服务。网络
负载均衡技术保证即使是在负载很重的情况下,服务器也能做出快速响应;
第二,网络负载均衡对外只需提供一个IP地址(或域名);
第三,当网络负载均衡中的一台或几台服务器不可用时,服务不会中断。网络负载均衡自动检测到服务器不可用时,能够迅速在剩余的服务器中重新指派客户机通讯。这项保护措施能够帮助你为关键的业务程序提供不中断的服务,并可以根据网络访问量的增加来相应地增加网络
负载均衡服务器的数量;
第四,网络负载均衡可在普通的计算机上实现。
负载均衡策略
负载均衡( Load Balance)建立在现有网络结构之上,它提供了一种廉价、有效、透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。负载均衡有两方面的含义:首先,大量的并发访问或数据流分担到多台节点设备上分别进行处理,减少用户响应等待时间;其次,单个重负载的运算分担到多台节点设备上做并行处理,每个节点处理结束后,将结果汇总,返回给用户,使系统处理能力得到大幅度提高。
在实际应用中,可能不仅仅是把客户端的服务请求平均地分配给内部服务器,而不管服务器是否怠机,而是想使配置好的服务器能接受相对更多的服务请求,一台处理服务请求较少的服务器能分配到更多的服务请求,出现故障的服务器将不再接受服务请求直至故障恢复等等。
选择合适的负载均衡策略,使多个设备能很好地共同完成任务,消除或避免现有网络负载分布不均、数据流量拥挤反应时间长的瓶颈。在各负载均衡方式中,针对不同的应用需求,在OSI参考模型的第二、三、四、七层的负载均衡都有相应的负载均衡策略。
负载均衡策略的优劣及其实现的难易程度有两个关键因素:
第一,负载均衡算法;第二,对网络系统状况的检测方式和能力。考虑到服务请求的不同类型、服务器的不同处理能力以及随机选择造成的负载分配不均匀等问题,为了更加合理地把负载分配给内部的多个服务器,就需要应用相应的能够正确反映各个服务器处理能力及网络状态的负载均衡算法:
①轮询均衡( Round Robin):每一次来自网络的请求轮流分配给内部服务器。从1至N然后重新开始。此种均衡算法适合于服务器组中的所有服务器都有相同的软、硬件配置并且平均服务请求量相对均衡的情况。
②权重轮询均衡(Weighted Round Robin):根据服务器的不同处理能力,给每个服务器分配不同的权值,使其能够接受相应权值数的服务请求。倒如:服务器A的权值被设计成1,B的权值是3,C的权值是6,则服务器A、B、C将分别接受到10%、30%、60%的服务请求,此种均衡算法能确保高性能的服务器得到更多的使用率,避免低性能的服务器负载过重。
③随机均衡( Random):把来自网络的请求随机分配给内部多个服务器。
④权重随机均衡(Weighted Random):此种均衡算法类似于权重轮询算法,不过在处理请求分担时是个随机选择的过程。
⑤响应速度均衡( Response Time):负载均衡设备对内部各服务器发出一个探测请求(例如Ping)。然后根据内部各服务器对探测请求的最快响应时间来决定哪一台服务器来响应客户端的服务请求。此种均衡算法能较好地反映服务器的当前运行状态。.但这最快响应时间仅仅指的是负载均衡设备与服务器间的最快响应时间,而不是客户端与服务器间的最快响应时间。
⑥最少连接数均衡:客户端的每一次请求服务在服务器停留的时间可能会有较大的差异,随着工作时间加长,如果采用简单的轮询或随机均衡算法,每一台服务器上的连接进程可能会产生极大的不同,并没有达到真正的负载均衡。最少连接数均衡算法对内部需负载的每一台服务器都有一个数据记录,记录当前该服务器正在处理的连接数量,当有新的服务连接请求时,将把当前请求分配给连接数最少的服务器,使均衡更加符合实际隋况,负载更加均衡。此种均衡算法适合长时处理的请求服务,如FIP。
⑦处理能力均衡:此种均衡算法将把服务请求分配给内部处理负荷(根据服务器CPU型号、CPU数量、内存大小及当前连接数等换算)最轻的服务器,由于考虑到了内部服务器的处理能力及当前网络运行状况,所以此种均衡算法相对来说更加精确,尤其适合运用到第七层(应用层)负载均衡的情况下。
相关技术
软件负载
服务器负载均衡( SLB) 是目前最常用的,它是通过将一台服务器虚拟化,表示成一组服务器,即一个服务器群,用来平衡各个服务器的信息量,控制对某一台服务器的访问量。代表这组服务器的那一台服务器被称为虚拟服务器,而组内的服务器被称为真实服务器。负载均衡技术就是将相同功能的真实服务器组成一个群,如果系统要进行扩容,我们只需修改交换机中的地址信息,并不影响服务的提供。集群中有几台服务器,对用户来说是透明的,用户只需了解虚拟服务器的功能,访问时只需连接虚拟服务器的IP 地址,负载均衡技术会为用户挑选适当的真实服务器进行连接,而用户对此毫不知情。
web服务器镜像技术是指采用一套性能相同的web服务器,采用内容相同的数据库,为不同的域名分配了不同的IP 地址,将用户请求利用Http协议的重定向功能,当其中一台服务器访问量过大时,web服务器软件自动把用户的请求重新定向到不同的镜像站点,用这种方式来实现负载均衡。
DNS负载
DNS负载均衡技术是最早提出的用来解决负载平衡的技术,它的实现方式是通过DNS 服务中的名称随机的来解析,进而实现负载平衡。即同一个名字可以用于多个不相同的地址,当用户查询这个名字时,随机得到其中的一个地址。因此,不同的用户在查阅这个名字时将得到不同的地址,进一步访问不同地址的服务器,来达到负载均衡的目的。
这种方法简单易行,而且服务器的物理位置不固定,互联网上的任意一台服务器都可以实现这个功能。但是DNS 负载均衡的缺点是无法判断服务器的性能,也无法得知当前服务器的运行状态,这就导致性能优良的服务器得不到高效利用,不能处理更多的用户需求,有时也会出现大量的用户需求集中在了其中某一台服务器上,并不能实现真正意义上的负载平衡; 而且DNS的数据刷新时间的设置有标准,间隔较小,这个特征保证了数据的及时更新,但同时也造成了网络流量的浪费。并不适用于在线学习这样一个多用户多访问量的平台。
四层负载
第四层交换功能的实现,也就是我们经常提到的虚拟IP 地址( VIP) 方法,这个地址并不是与特定的计算机相连,也没有与计算机中的网络接口卡相连。它的实现过程是当数据包发送到这个VIP 地址时,通过第四层交换功能,并根据设定算法分配到一个真实的网络接口。每次TCP 请求都可以动态分配其中的一个IP 地址,从而达到负载均衡。
七层负载
第七层是web 内容交换技术,即对访问流量的高层控制方式,通过对应用层内容的切换,将这种真正有意义的信息,结合我们对负载均衡设备的特定设置,进行服务器的选择。
考虑到为了不造成访问流量的停滞,第七层交换技术更具优势。在接收到数据包时,它会检查Http报头,根据报头内的数据来决定将信息发送给哪台服务器,同时根据报头提供的信息判断用何种方式为个人信息或者图像视频等不同格式的内容提供服务。换句话说,Http请求URL,但通过web 内容交换技术,Http有可能请求到不同的
服务器,即同一个URL请求对应了多个服务器,因为在Http发出请求时,并非建立了一个会话,而是通过负载均衡服务器建立了多个会话与真实的服务器连接。
应用
网络负载均衡(Load Balance)主要用于扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性,保证即使是在负载很重的情况下它们也能作出快速响应,保证服务不中断。
网络负载均衡可以让客户端用一个逻辑Internet名称和虚拟IP地址(又称群集IP地址)访问群集,同时保留每台计算机各自的名称。
(1)DNS负载均衡。在DNS中为多个地址配置同一个名字,查询这个名字的客户机将得到其中一个地址,从而使得不同的客户访问不同的服务器,达到负载均衡的目的。
(2)代理服务器。代理服务器将请求均匀转发给多台服务器,从而达到负载均衡的目的。
(3)负载均衡器。负载均衡器采用各种分配算法把网络请求分散到一个服务器集群中的可用服务器上去,有些负载均衡器集成在交换设备中,置于服务器与Internet链接之间,有些则以两块网络适配器将负载均衡功能集成到PC中,一块连接到Internet上,一块连接到后端服务器群的内部网络上。当Web服务器为图像服务、安全套接层(SSL)会话或数据库事务而进行优化时,负载均衡器可以发挥特别功效。
校园网的应用除了用于教学、科研、管理、图书情报资料检索外,还承担任着校内外信息交流、电子邮件、公告、新闻发布,以及各种公共网络口的访问等任务。由于在网络上传输的信息不只是数字、文字和图形,还会随应用水平的提高,逐步增加语音、活动图像及视频图像等高
带宽的应用。因此,网络的建设,尤其是主干网要求高带宽与高速度,在校园网的服务器中应用
负载均衡技术不失为一种廉价的解决方案。