网络负载均衡是什么
网络负载均衡是由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。通过某种负载分担技术,将外部发送来的请求均匀分配到对称结构中的某一台服务器上,而接收到请求的服务器独立地回应客户的请求。均衡负载能够平均分配客户请求到服务器列阵,借此提供快速获取重要数据,解决大量并发访问服务问题。
简介
网络负载均衡( 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 服务器软件自动把用户的请求重新定向到不同的镜像站点,用这种方式来实现负载均衡。