负载均衡的原理及算法
负载均衡英文缩写SLB。负载均衡为连接的客户端提供了一个虚拟服务器IP地址,其代表了一组真实服务器组成的服务器群。
深圳网站建设下面由图IO-l所示为负载均衡的概念。一台客户端访问一台逻辑的“虚拟”服务器(iP地址为vvvv),该虚拟服务器只存在于Catalyst 6500交换机的负载均衡配置中。一组物理的“真实”服务器(IP地址x.x.x.x、y.y.y.y和z.z.z.z)配置成个服务器群。客户端与虚拟服务器之间的流量被负载均衡到这组真殳服务器上,而所有的操作对客户端而言是透明的。
当客户端开启一个到虚拟服务器的新连接时,SLB就会根据负载均衡算法决定使用哪台真实服务器。
SLB使用以下算法实现负载均衡
加权轮询(WRR)算法:为每台分配一个权重,权重表示相对于其他服务器,自身能处理连接的能力。权重为n表示SLB为下一服务器分配流量之前,要为这台服务器分配n条新连接。
加权最小连接(WLC)算法:SLB会将新连接分配给活动连接数最少的真实服务器。为每台真实服务器分配权重m,服务器处理活动连接的能力等于m除以所有服务器杈重之和。SLB会将新连接分配给活动连接数远少于其能力范围的真实服务器。
使用加权最小连接(WLC)算法时,SLB使用一种慢启动的方式来控制对新加真实服务器的访问。“慢启动”限制了新连接的建立频率并允许逐渐增加,以此来防范服务器的的过载。
虚拟服务器可以伪装成真实服务器中所有TCP或UDP端口所使用的IP地址。虚拟服务器的IP也可以配置在服务器群中某个单独的端口或服务上。
枯性(sticky)连接技术使SLB为客户端分配连接时,选择上次客广端使用的真实服务器。
SLB可通过监视失效的TCP琏接来检测出真实服务器的故障。SLB可使失效的服务器停止工作,并存其恢复时重新提供服务。
如果真实服务器和虚拟服务器处于不同的3层子网,那么可使用SLB的服务器网络地址转换( server NAT)功能实现真实服务器和虚拟服务器之间的地址转换。
SLB可使用客户端NAT (client NAT)功能将客户端请求包中源地址转换成SLB服务器一方的地址。在使用多台SLB设备时,可使用此功能来将返回流量发送到正确的SLB设备上。
SLB提供了一种针对真实服务器的TCP SYN flood攻击的控制机制,从而可阻止某些类型的拒绝服务(DoS)攻击。
SLB可与热备路由器协议(HSRP)协同工作来提供“无状态备份”的冗余功能。如果一台SLB路由器故障,冗余的路由器将接管SLB的工作。不过,现有的SLB连接都将丢失,所以不得不从客户端重新建立连接。
IOS SLB还可担当动态反馈协议 (DFP)负载均衡管理者(manager)。DFP管理者从真实路山器上运行的代理(agent)那里收集性能信息。