如何实现服务器负载均衡
服务器负载均衡技术可以提升企业的业务处理能力,方便后续的网络运维和调整。
日益增长的网络业务量对服务器造成了巨大压力,当单个服务器无法满足网络需求时,企业一般会采取更换高性能设备或增加服务器数量的方法来解决性能不足的问题。如果更换为高性能的服务器,则已有低性能的服务器将闲置,造成了资源的浪费。而且后续肯定会面临新一轮的设备升级,导致投入巨大,却无法从根本上解决性能的瓶颈。
如果单纯地增加服务器的数量,则涉及到如何分配流量、服务器间的协同机制等很多复杂的问题。既要考虑成本因素和现实需求,又要兼顾日后的设备升级和扩容,服务器负载均衡(SLB,server load balancing)技术由此应运而生。
应用场景
>>数据中心的服务器负载均衡:
数据中心是一整套复杂的设施,不仅包含计算机系统,还包含服务器、环境控制设备、监控设备以及各种安全设备等。服务器作为数据中心的重要组成部分,对外提供数据处理、数据存储和数据交换等各种服务。FW作为数据中心的安全网关,不仅可以提供完备的安全防护功能,还可以通过服务器负载均衡功能解决服务响应时长和设备处理性能等方面的问题,提升用户的使用体验。
>>企业园区的服务器负载均衡:
随着企业的大规模扩展和业务量的爆炸式增长,企业网络要处理的数据量也在大幅度增加。企业新建园区网或扩容原有网络的服务能力时,需要考虑服务能力和投入资金的关系,甚至要兼顾日后扩展的收益性。FW作为企业园区的安全网关,同时为园区内的用户和服务器集群提供安全隔离保护。配置服务器负载均衡功能后,用户可以快速获取企业资源和服务,提升了用户体验。对于企业来说,也方便日后对服务能力进行扩容,降低了企业的投入成本。
>>多出口服务器集群的负载均衡:
为了提高服务的可靠性,服务器集群所在的网络一般会有多个出口,并由不同的ISP提供。这样,当一个出口的网络无法正常使用时,用户可以从其他ISP的网络获取服务。典型的多出口场景是双出口场景。
技术原理
服务器负载均衡技术的一些常见概念如下:
实服务器:处理业务流量的实体服务器,客户端发送的服务请求最终是由实服务器处理的。
实服务器组:由多个实服务器组成的集群,对外提供特定的一种服务。
虚拟服务器:实服务器组对外呈现的逻辑形态,客户端实际访问的是虚拟服务器。
HTTP调度策略:FW分配业务流量给实服务器组时依据的规则,不同的调度策略得到不同的分配结果。仅适用于HTTP和HTTPS(HTTPS配置SSL卸载)协议。
负载均衡算法:FW分配业务流量给实服务器时依据的算法,不同的算法可能得到不同的分配结果。
会话保持:FW将同一客户端一段时间内的流量分配给同一个实服务器。
服务健康检查:FW检查服务器状态是否正常的过程,可以增强为用户提供服务的稳定性。
配置案例
配置HTTP服务器的负载均衡
配置脚本如下:
操作步骤
>>配置各个接口的IP地址:
system-view
[FW] interface GigabitEthernet 1/0/1
[FW-GigabitEthernet1/0/1] ip address 1.1.1.1 24
[FW-GigabitEthernet1/0/1] quit
[FW] interface GigabitEthernet 1/0/2
[FW-GigabitEthernet1/0/2] ip address 192.168.1.254 24
[FW-GigabitEthernet1/0/2] quit
[FW] firewall zone untrust
[FW-zone-untrust] add interface GigabitEthernet 1/0/1
[FW-zone-untrust] quit
[FW] firewall zone dmz
[FW-zone-dmz] add interface GigabitEthernet 1/0/2
[FW-zone-dmz] quit
>>配置安全策略:
# 配置untrust到dmz的安全策略,允许Internet用户访问内网的Web服务器。策略的目的地址应该配置虚拟服务器的IP地址。
[FW] security-policy
[FW-policy-security] rule name policy1
[FW-policy-security-rule-policy1] source-zone untrust
[FW-policy-security-rule-policy1] destination-zone dmz
[FW-policy-security-rule-policy1] destination-address 1.1.1.10 24
[FW-policy-security-rule-policy1] action permit
[FW-policy-security-rule-policy1] quit
[FW-policy-security] quit
# 配置local到dmz的安全策略,允许FW向实服务器发送健康探测报文。
[FW] security-policy
[FW-policy-security] rule name policy2
[FW-policy-security-rule-policy2] source-zone local
[FW-policy-security-rule-policy2] destination-zone dmz
[FW-policy-security-rule-policy2] destination-address range 192.168.1.1 192.168.1.3
[FW-policy-security-rule-policy2] action permit
[FW-policy-security-rule-policy2] quit
[FW-policy-security] quit
>>配置服务器负载均衡功能和健康检查功能:
# 开启服务器负载均衡功能。
[FW] slb enable
# 配置会话保持。
[FW] slb
[FW-slb] persistence 0 Session
[FW-slb-persistence-1] type cookie-insert aging-time 600
[FW-slb-persistence-1] quit
# 配置负载均衡算法。
[FW-slb] group 0 Rserver
[FW-slb-group-0] metric weight-least-connection
# 配置实服务器Server1、Server2、Server3,服务器的权重值依次为4、2、1。
[FW-slb-group-0] rserver 0 rip 192.168.1.1 port 8080 weight 4 description server1
[FW-slb-group-0] rserver 1 rip 192.168.1.2 port 8080 weight 2 description server2
[FW-slb-group-0] rserver 2 rip 192.168.1.3 port 8080 weight 1 description server3
# 配置健康检查功能。
[FW-slb-group-0] health-check type icmp tx-interval 5 times 3
[FW-slb-group-0] quit
# 配置虚拟服务器的协议类型。
[FW-slb] vserver 0 vs-http-1.1.1.10
[FW-slb-vserver-0] protocol http
# 配置虚拟服务器的IP地址和端口号。
[FW-slb-vserver-0] vip 0 1.1.1.10
[FW-slb-vserver-0] vport 80
# 配置会话保持。
[FW-slb-vserver-0] persistence Session
# 关联虚拟服务器和实服务器组。
[FW-slb-vserver-0] group Rserver
[FW-slb-vserver-0] quit