Load balancing,将网络请求或其他形式的负载“均摊”到不同的计算机上,达到最优化资源使用、最大化吞吐率、最小化响应时间和避免过载的目的。配置服务器负载均衡可以避免集群中部分服务器压力过大,而另一些服务器比较空闲的情况。负载均衡可分为软件负载均衡和硬件负载均衡。
示例:
问题:如果大量用户同时访问该Web服务器,或遭受DOS/DDOS攻击,该服务器可能出现宕机情况,这时候普通用户将无法正常访问,服务中断,可能造成大量损失。
在服务器集群中加入负载均衡器后,负载均衡器可根据负载均衡算法将用户请求转发到服务器集群中空闲的服务器中。(具体请查阅1.2小节)负载均衡器可以是软件也可以是硬件。
负载均衡器通过更改请求的目的地址对请求进行转发,在服务器返回数据包的时候,更改返回数据包的源地址,保证客户端请求的目的和返回包是同一个地址。
具体示例
某游戏运营商申请到一个公网IP1.1.1.1,玩家的用户登录验证需要连接这个地址,玩家请求数据包会先通过防火墙,达到负载均衡器。负载均衡器根据其内置算法决定玩家将连接哪一台服务器进行登录验证,这里假设负载均衡器将该玩家分配给Web服务器1。接着负载均衡器将用户请求数据包中的目的地址换成对应的Web服务器1的IP地址,Web服务器的IP地址可能是内网IP地址(例如192.168.82.223),玩家的请求数据包会到达Web服务器1上进行验证。
内置算法即决定服务器集群中哪台服务器可以处理用户请求。例如,有A、B、C三台服务器,服务器A使用率已经达到60%,服务器B和服务器C使用率均为0%,且正常运行时,负载均衡器中的内置算法将用户请求转发到服务器B或服务器C中,具体需要查看B和C哪台服务器的优先级更高。
当验证成功后,Web服务器1会发送一个响应数据包返回给负载均衡器,负载均衡器会将收到数据包中的源地址由192.168.82.223改为1.1.1.1,再把响应数据包发送给玩家。
这样就保证了用户的请求目的地址和响应数据包的源地址是同一个地址。
包括分发策略、会话保持和服务器健康检查。
指负载均衡设备,根据什么样的策略(即算法)把请求分发到不同的后台服务器上,最简单的算法是轮巡,把用户请求依次分配到服务器上。
在大部分的应用中都会涉及到服务器 Session控制。而且这些Session通常不会在服务器之间进行复制的。即用户A在登录时负载均衡器将其分配到服务器1处理,那么以后所有关于用户A的所有请求都将会转发到服务器1中,而不会转发到其他服务器上。如果分配到其他服务器上,其他服务器上没有关于A的记录,会导致请求失败。
最简单的会话保持策略是源地址会话保持。
指负载均衡设备必须检测后台服务器是否在正常工作,如果有某台服务器出现故障,无法正常工作,那么负载均衡器会把这台服务器从负载均衡组中剔除。当故障服务器恢复时,再把该服务器重新加载到负载均衡组中。
NLB增强了Internet服务器应用程序的可用性和可伸缩性,例如在Web,FTP,防火墙,代理,虚拟专用网(VPN)和其他关键任务服务器上使用网络负载平衡服务。
网络负载平衡(NLB)特性是通过使用TCP/IP协议在多个服务器之间分配流量。通过将运行应用程序的两台或多台服务器合并到一个虚拟集群中,NLB为web服务器和其他关键任务服务器提供了可靠性和性能。
NLB集群中的服务器称为主机,每个主机都运行着相同服务的单独副本。NLB会将客户端的请求转发到集群中的各个主机上。系统管理员可以配置由每个主机处理客户端请求。还可以动态地向集群添加主机来处理增加的负载。NLB还可以将所有流量定向到指定的主机中,该主机称为默认主机。
NLB允许群集中的所有服务器使用相同的IP地址集进行寻址,并且为每个主机维护一组唯一的专用IP地址。对于负载平衡的应用程序,当主机发生故障或脱机时,负载会自动在正常工作的服务器之间重新分配。准备就绪后,脱机的服务器可以透明地重新加入群集并重新获得其工作负荷的份额,这使群集中的其他计算机可以处理较少的流量。
Windows Server 的网络负载均衡有三个重要特性,包括高可用性、可扩展性和可管理性。
高可用性系统可靠地提供了可接受的服务水平,并且停机时间最少。为了提供高可用性,NLB包括内置功能,这些功能可以自动:
可伸缩性是衡量计算机,服务或应用程序在满足不断增长的性能要求的能力的度量。对于NLB群集,可伸缩性是当群集的整体负载超过其能力时,可以向现有群集中增量添加一个或多个系统的能力。为了支持可伸缩性,系统管理员可以对NLB执行以下操作:
为了支持可管理性,系统管理员可以对NLB执行以下操作:
NLB不支持动态主机配置协议(DHCP)。NLB会在其配置的每个接口上禁用DHCP。
右侧三台服务器构成服务器集群,统一为外界提供Web服务,其Web服务聚合IP地址为10.0.0.1.同时每台服务器上均安装网络负载均衡(Network Load Balancing,NLB)形成集群负载均衡。三台服务器的内网IP地址分别为:
左侧为客户端电脑PC2,IP地址为10.0.0.2。PC2通过10.0.0.2访问服务器集群NLB1-3提供的Web服务。