网络负载均衡技术研究与实现
2018-10-26刘俊波蔡建坤
刘俊波 蔡建坤
摘 要:随着用户数的不断增长,网站的访問量激增。系统能否提供大规模并发访问的能力,已成为衡量系统高可用性的重要指标。如果客户的增多导致通信量超出了服务器所能承受的范围,系统的使用必将受到影响。因此,基于单台服务器提供WEB服务的方案已经不能解决此类问题,将多台服务器通过网络连接起来,并且共同分担负载压力,已成为有效解决负载压力的一种手段。
关键词:WEB服务;网络负载均衡集群;系统性能
中图分类号:TN929.5 文献标识码:A 文章编号:1671-2064(2018)17-0000-00
采用单一WEB 服务器的方式对外提供服务的网站,在用户访问量较少的情况下,能够勉强满足用户请求,但当用户量激增时,极有可能造成网站访问慢,甚至可能导致网站瘫痪等严重问题。通过引入网络负载均衡(英文简称NLB)技术,使Web网站得到了很好的扩充,在不影响对外提供服务的前提下,能够承载更多的用户访问量。
1 网络负载均衡概述
网络负载均衡是 Microsoft提供的一种负载均衡技术。通过将大量的客户请求均衡分布到同一网络中的多台服务器的方式来进行负载处理。通过最大程度的减少停机时间,提供持续不间断的服务,可以极大提高系统的高可用性;通过平衡负载请求至各服务器,支持在不关闭群集的情况下动态添加主机,可以增强服务器应用程序的可伸缩性和可用性。
NLB群集中的所有节点均共享一个代表所需网络资源的虚拟 IP地址。所有NLB服务器均监听用户请求, 但其中只有一台服务器对这些用户请求进行响应。基于快速 Hash算法的负载均衡架构负责合并客户端 IP 地址与端口号, 并确定由哪台服务器进行响应。另外,可以指定某种相识性规则, 以便能够在不同服务器上分配不同的负载量。
2 网络负载均衡关键技术
由于 NLB不能根据 CPU 和内存利用率来分配流量, 而且群集性能并不随着节点数量的增加而线性变化。随着节点数量的增多, 由此产生的网络开销, CPU 开销也随之增大, 所以正确的配置和规划对于建立NLB群集来说至关重要。
2.1 群集操作模式
NLB群集支持单播和多播两种模式。
(1)单播模式:NLB服务会重新对每个节点中启用NLB的网卡分配MAC地址(群集MAC地址),并且所有的NLB节点均使用相同的MAC地址,同时NLB会修改所有发送数据包中的源MAC地址,其缺点在于到达群集的流量会扩散至交换机VLAN上的所有端口。
(2)多播模式:此种模式下,NLB服务不会重新对节点分配MAC地址,而是增加一个2层多播MAC地址,节点之间可以通过原有IP通信。其缺点在于针对群集IP得知的ARP请求将映射到多播MAC地址,而路由器、交换机默认不会学习多播MAC地址,所以必须添加群集IP和群集MAC地址的映射,否则无法进行ARP解析。
(3)IGMP多播:此种模式下,NLB服务会通过IGMP协议使交换机只将NLB通信发送至NLB节点的端口,而不是交换机所有端口,但需要交换机支持IGMP侦听。
2.2 端口规则筛选模式
系统可针对端口规则采取禁止、多主机负载平衡和单主机的特殊处理。其中, 多主机筛选模式提供了真正意义上的负载平衡, 并且可以根据节点的实际处理能力进行负载的分配。
(1)多个主机:相似性-无:客户端的服务请求会平均分配到群集内的每一台服务器。此种模式下需要设置各服务器之间的Session共享;相似性-单一:客户端的请求会固定分配到一台服务器,同一个客户端的访问由同一个服务器响应;相似性-网络:某些服务器指定处理来自某些网段的请求。
(2)单一主机:在设置的端口范围内的所有请求都由一台服务器执行。
3 网络负载均衡群集配置
系统最为重要的是保证其业务的高可用性,当用户访问量较大时,不允许出现业务中断的情况。为了防止出现该单点情况的发生,因此采取了群集的方式,同时为了防止单服务器负载过高的问题出现,将两台虚拟服务器做成了NLB群集,共同承担用户访问。
3.1 基本配置
(1)端口范围:默认情况下, TCP或 UDP的0~ 65536 端口都是可以为NLB所用, 但考虑到NLB的安全,只针对所提供的服务进行特定设置。在对外提供 Web服务时, 站点使用80端口, 因此,将此端口范围修改为“从80到80”。
(2)协议:选择TCP协议来提供NLB服务。
3.2 配置过程
(1)进入Server1, 以管理员身份登录, “管理工具”中运行 “网络负载平衡管理器” ,从出现的菜单中选择“新建群集”,进入“群集参数”界面。
(2)配置群集参数:群集 IP是群集器对外提供访问的 IP地址(虚拟IP)。群集操作模式选择IGMP多播。
(3)配置网络负载平衡端口规则:可根据实际应用的要求, 对该规则进行修改或者添加其他的端口规则。筛选模式中选择“多个主机”模式提供服务。多个主机之间进行负载平衡时,“相似性”选择“无”,此时,用户的访问请求将会平均分配到各服务器。
(4)在连接主机设置中输入Server1的IP, 在“对配置一个新的群集可用的接口” 框中显示出连接的计算机的网卡及 IP地址,选择提供NLB服务的对外提供服务的网络地址。等待群集加载配置信息,至此,NLB群集已成功建立,Server1已加入NLB群集。
(5)添加Server2到群集, 右键选择“主机加入到群集” , 此设置将直接转至“连接” 界面, 按照Server1的方式进行相关设置即可。设置完成后等待群集加载Server2的配置信心,刷新群集状态, 如果显示“已聚合”,说明网络负载平衡设置已经成功。
4 测试及结果分析
4.1 网络拓扑(见图1)
图1 网络拓扑图
Server1(188.3.23.7)与Server2(188.3.23.8)处于局域网络环境下,由两台服务器搭建的NLB群集,群集对外的IP地址为188.3.23.20。
4.2 功能测试
在Server1、Server2上修改的IIS默认网站Default Web Site,端口8080,若直接访问Server1的网站,则会在网页提示“This is IIS1 188.2.23.7”;若直接访问Server2的网站,则会在网站提示“This is IIS2 188.2.23.8”。
(1)访问http://188.2.23.20:8080,打开两个个IE窗口,访问结果分别为“This is IIS1 188.2.23.7”,“This is IIS2 188.2.23.8”。证明负载均衡群集已将访问请求均分到不同服务器。
(2)當Server1服务器当机(或网络断开)时,依旧访问群集网址,访问结果为“This is IIS2 188.2.23.8”。证明当群集中某节点断开时,群集依旧运行正常。
4.3 性能测试
为测试网站响应时间,设置在后台代码中做双精度数字运算,循环多次,打开网页的时间维持在3-6秒。首先,对Server1做负载均衡测试,直至出现用户请求无法响应的情况;然后,对NLB群集做负载均衡测试,也同样测试到有用户请求无法响应的情况出现。如表1所示。
表1 性能测试结果表
最大用户数 每秒HTTP响应数
单服务器 40 0.364
NLB群集 130 1.182
从测试结果可以看出:单个服务器的负载能力较弱,允许的最大用户数较少;而NLB群集能有效的均衡两台服务器的负载,其最大用户数比两台服务器单独所能承担用户数的两倍还多,并且相同时间内能够响应的HTTP请求数明显增加。
5 结语
通过采用负载均衡技术组建群集,用多台服务器而不是单一服务器来提供WEB服务。各服务器共同承担较为繁重的网络服务。不仅大大提升了系统的性能,而且还在系统的高可用性方面有很好的表现。
参考文献
[1] 陈武,王平.负载均衡技术在数字图书馆服务中的应用模式及实例分析[J].现代图书情报技术,2004,卷(3):1-5.
[2] 侯秀杰,祝永志,孔令鑫.Web服务器集群负载均衡技术的应用与研究[J].计算机与信息技术,2008,卷(5):5-6.
收稿日期:2018-06-02
作者简介:刘俊波(1983—),男,汉,湖南益阳人,硕士研究生,工程师,研究方向:信息网络。