防火墙负载均衡

2024-09-04

防火墙负载均衡(精选十篇)

防火墙负载均衡 篇1

1 集群防火墙的基本结构

根据功能划分模式, 可将集群防火墙系统分为三个部件, 分别为负载均衡子系统、容错防火墙子系统和在线监控子系统, 其中容错防火墙系统还可细分为多台子系统。

如上图所示, 集群设备从网络中接到待处理的数据分组后, 第一个环节就是在负载均衡子系统中利用负载均衡算法进行任务分配, 该环节能否有效的实现数据包处理任务的合理分配, 直接影响到了集群防火墙系统的整体性能;在完成分配之后, 数据包流向了其对应的处理系统, 即容错子系统, 在该系统中进行分析和过滤;在线监控子系统则负责对各个节点进行监测与管理, 如规则集的维护与调整, 对某设备的故障予以记录和报警等。由以上几个部件的介绍可以看出, 对负载均衡算法进行改进, 可以有效地提高数据包分配效率, 从而增强集群防火墙系统的工作性能。

2 负载均衡优化算法设计

2.1 算法流程设计

集群防火墙设备介于外网和内网之间, 系统中的每个节点设备都应该能够正常接收外部数据包的访问请求。而在这些访问请求的数据包中, 包含了诸多与发送方和接收方相关的重要信息, 本算法摘取其中的源目的IP、源目的端口和协议号这五个字段作为算法的输入参数, 并代入哈希函数进行运算, 得到关于该集群的哈希值, 接着对系统内的所有节点设备进行加权统计, 将集群哈希值加权均分到每个节点, 从而使每个节点都能得到一个权值区间, 并以此作为是否接受数据包的判定依据。

当某节点设备收到一数据包后, 根据其首部当中的地址端口等信息计算出该数据包的哈希值, 并判断计算出的结果是否落在本节点设备拥有的权值区间内, 如果是的话则接受该数据包进行下一步的处理, 并向系统汇报接受情况, 集群系统在维护表中记录这一接受情况, 并在下一轮分配时, 优先将同IP地址的数据包分配给同一个节点, 提高数据处理的连贯性;如果不是则丢弃该数据包。

2.2 哈希算法设计

由算法流程可以看出, 本优化策略最核心的内容就是利用哈希函数得到相关的哈希值, 并以其为依据设定不同节点的权值, 因此哈希算法的优劣与否决定着整个优化策略的性能和效率。本文从算法的简单性、易维护性、可靠性和低耗性等多方面考虑, 设计了本系统的哈希算法:

设防火墙集群为F={F0, F1, F2, ……, Fn-1}, P (Fi) 表示第i台设备Fi的权值, 即集群防火墙系统的权值, 为取模参数, 则有:

1) 基于权值的源/目的地址哈希算法结果

其中, Si和Di分别是源、目的IP的第i个8位字节。该算法先将Si和Di执行XOR运算, 并将作为取模参数, 并以此求得哈希值。

2) 根据第i个防火墙的处理能力对H (∙) 的值映射到对应的节点设备, 表1给出了相关的映射表示例。其中, k∈ (0, n-1) 。表中的P (Fi) 反映了第i台设备在本周期内的处理性能, 该值可根据应用场合的不同而灵活的设置修改周期。一般而言, 只有当集群内设备配置更新、替换、增加或移除时才需要调整该值, 调整与维护工作可由在线监控系统中的监控器负责。

3 算法性能评估

3.1 评估模型

由于在实用环境中遇到的干扰因素过多, 且关联复杂, 无法明确的评价算法的有效性, 因此在本评估模型中, 去除了监控子系统和容错子系统, 仅保留负载均衡子系统, 这种简化后的评估模型可以较为有效的评测负载均衡算法的优化程度;另一方面, 对模拟的集群防火墙使用环境也做了一定的理想化设定, 如不考虑数据包在处理过程中的容错性问题, 评价算法是否有效的依据就是该系统是否能够将网络流量按照预定义的比例进行合理的分配, 经过简化后的系统模型如图2所示。

现假设在本系统中存在N个节点设备, 其实际处理性能分别为μ1, μ2, ……μN, 用Gi (Δt) 表示第i台节点设备在Δt时间内的负载量。在所有节点设备均以最高效率运转的情况下, 负载均衡系统也应当以近似于零时延的速度进行数据包的分配, 此时在吞吐能力方面, 负载均衡子系统就相当于处理能力为μi的一个处理单元, 根据这一推理, 得出在理想状态下, 负载均衡系统需满足的条件为:, 意味着Δt时间段内某节点处理的数据包数量就是该节点接收到的数据报数量总和。当然, 在在实际运行中, 由于运行环境中出现的随机干扰因素, 以及数据流量本身存在突发性等特点, 且集群防火墙中的节点设备可能性能存在差异, 很难对其作出精确的性能评价, 这些不稳定因素都会对算法的运行质量带来负面影响。

3.2 性能分析

根据上文中提出的设计方案构建防火墙集群并加以测试, 在本次测试中, 分别采用单台、2台和4台节点设备分别构成防火墙系统, 并通过不同规模的数据流量进行防火墙处理性能的评估, 选定的评估指标为系统平均延迟和吞吐量。图3则给出了单台设备、两台设备和四台设备的情况下系统的数据吞吐量变化曲线。

测试结果表明在平均时延方面, 单台设备与多台设备表现差异不大, 究其原因, 在于多台设备形成集群系统后, 彼此间的数据采集、调控与流量分配耗用了较多的处理时延, 且随着系统规模的扩大, 设备数量的增加, 这一时延也会相应提升, 因此, 若想要进一步提高集群防火墙系统的整体性能, 则应当尽量减少系统内无用或低效率节点;从吞吐量测试数据看, 集群设备与单台设备比较, 单向数据流的吞吐量性能大约提高了65%左右, 效果明显。综合以上结果可以看出, 集群安全与边界设备的启用, 对解决大规模数据过滤, 保护内网数据安全而言是非常有效的。

4 结论

集群防火墙系统目前已经广泛地应用在了各种数据通信领域, 本文提出的基于哈希函数的负载均衡算法能够较好地反映出集群系统内各个节点设备的工作性能, 并根据加权分配的方式进行任务的合理分配, 将多台设备真正有机地结合到了一起, 实现了资源的统合利用, 同时压缩了防火墙系统的处理时延, 尽可能的保障了网络数据的通畅传输, 提高了用户的体验度。相信随着信息科技人工智能领域的不断发展, 会有越来越多的新型算法被应用到集群防火墙优化领域, 进一步提高防火墙的工作性能, 为数据通信提供更优质的保障服务。

参考文献

[1]Goddard S, Kieckhafer R, Zhang Yuping.An UnavailabilityAnalysis of Firewall Sandwich Configurations[C]//Proc.of the6th IEEE International Symposium on High Assurance Sys-tems Engineering.Boca Raton, USA:[s.n.], 2009:139-148.

[2]马维晏, 李忠诚.基于流的网络流量特征分析[J].小型微型计算机系统, 2013, 9 (10) :54-58.

[3]Horvath M R, Fulp E W, Wheeler P S.Policy DistributionMethods for Function Parallel Firewalls[C]//Proc.of the 17thIEEE International Conference on Computer Communications and Networks.Virgin Islands, USA, 2009:620-625.

[4]Schroeder T, Goddard S, Ramamurthy B.Scalable Web ServerClustering Technologies[J].IEEE Network, 2015 (05/06) :38-45.

防火墙负载均衡 篇2

在部署了网络负载均衡(NLB)的网络中,当某个客户针对NLB虚拟地址发起连接请求时,NLB通过某种NLB算法来确定(通常是根据发起请求的客户端源地址来决定)为客户服务的NLB节点。在NLB节点没有变动之前,对于某个客户,将总是由某个对应的NLB节点为它提供服务。ISA防火墙企业版中的集成NLB依赖于Windows服务器系统的NLB服务,对于客户发起的请求,也是采用相同的方式进行处理。

例如,对于一个具有三个NLB节点(ISA1、ISA2、ISA3)的ISA防火墙NLB阵列,当一个客户(10.1.1.1)发起连接请求时,NLB通过NLB算法确定由ISA1为此客户服务;而当另外一个客户(10.1.1.2)发起连接时,NLB通过NLB算法确定由ISA2为此客户服务。在NLB节点没有变动时,客户10.1.1.1的连接请求将会始终通过NLB节点ISA1来进行处理;而客户10.1.1.2的连接请求则会始终通过NLB节点ISA2来进行处理。

当某个NLB节点出现故障时,NLB将在所有节点上重新进行汇聚,并重新根据NLB算法来确定为客户提供服务的NLB节点。例如,此时ISA1节点出现故障,无法再提供NLB服务;则NLB重新进行汇聚,如果客户10.1.1.1再发起连接请求,则就是ISA2或者ISA3来为它进行服务,

当NLB节点失效时,NLB可以让其他NLB节点来为客户提供服务。但是,如果NLB节点的NLB服务没有失效但是所提供的其他服务失效时,怎么办呢?

如下图所示,两台ISA防火墙属于相同的NLB阵列,分别通过不同的外部链路连接到Internet,并且对内部网络提供NLB服务。两台ISA防火墙允许内部网络中的用户通过自己来访问外部网络,正在为不同的客户提供服务;如果此时,ISA1上的外部链路突然断开,会出现什么情况呢?

此时,由于ISA1上的NLB服务并没有出现故障,所以NLB会认为ISA1仍然是有效的NLB节点,并且同样会分配客户给它。但是,由于外部链路断开,ISA1所服务的客户却不能再连接到Internet了。这当然就不能有效的实现网络负载均衡中的容错特性。

那么,出现这种情况时,该怎么办呢?

答案很简单,当出现这种情况时,停止ISA1上的NLB服务,这样,NLB会认为ISA1上的NLB服务已经失效,将重新汇聚NLB,并且重新分配客户。从而原来属于ISA1的客户可以通过仍然运行正常的ISA2来访问外部网络。

负载均衡新机会 篇3

你是否觉得网络负载均衡,跟你没有关系呢?

今天,每当你打一次手机,上主要门户网站看一次新闻,进行一次网上银行交易,你的访问信息就会经过负载均衡设备,它在后台保证了巨量的网络应用访问。负载均衡,英文名称为Load Balance,其意思就是将负载(工作任务)进行平衡、分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。需要说明的是:负载均衡设备不是基础网络设备,而是一种性能优化设备。对于网络应用而言,并不是一开始就需要负载均衡,当网络应用的访问量不断增长,单个处理单元无法满足负载需求时,网络应用流量将要出现瓶颈时,负载均衡才会起到作用。

近几年来,网络负载均衡技术首先在电信、移动、银行、大型网站等单位进行了应用,因为其网络流量瓶颈的现象最突出。这也就是为何我们每通一次电话,就会经过负载均衡设备的原因。另外,在很多企业,随着企业关键网络应用业务的发展,负载均衡的应用需求也越来越大了。

Foundry最早提出了四层网络负载均衡的概念,当时的负载均衡技术主要实现四层的交换。因为Foundry是传统的交换机设备厂商,它将此项技术集成在了自己的交换机设备里。从此,网络负载均衡市场诞生了。

网络负载均衡是伴随互联网发展的全新技术,它使得一系列以核心新技术起家的小企业得到了快速发展。其中就包括F5、Radware、Array等系列新兴企业。当然,思科、北电等传统网络厂商也进入了这个市场。

据F5总裁John McAdam介绍:Internet的规模每一百天就会增长一倍,网络应用流量也越来越大。网络的各个核心部分随着业务量的提高、访问量和数据流量的快速增长,其处理能力和计算强度也相应增大,使得单一设备根本无法承担。如果将负载均衡这项技术应用在网络上,就一定会有一个大的发展。

几年的发展证明,网络负载均衡市场是一个巨大的技术商机。据Gartner 2007的调查数据显示,在网络应用交付(网络负载均衡)市场,F5占38.3%,而思科以27.2%位居第二。

网络负载均衡的机会在于网络应用的扩张,网络流量的增大,所以,它非常依赖于网络的发展。

互联网泡沫时代所引导的客户经济,开始体现出了真正的经济效益,各种增值业务如网上银行、电信运营商的短信增值业务,也在这个时期开始蓬勃发展,并产生出了巨大的经济效益,接踵而至的就是各种各样的网络应用流量瓶颈问题开始凸显,网络游戏最为典型。在中国,南北互通问题导致不少企业的网络流量瓶颈问题更显突出,证券交易的“堵单”现象、企业电子商务的网络应用、视频网站流媒体形成的巨大访问量,需要提供更高的网络流量处理能力,这种种问题,并不是单纯升级传统的路由、交换设备而能解决的,对于四层负载均衡交换机的压力也会更大。

以应用为导向的方案越来越明显了,综合多种技术手段的需求越来越强,“应用交付、Advanced ADC”概念,这是网络负载均衡概念的扩充。我们可以这样形象地理解:基于网络二层、三层的是路由交换,而基于网络七层的则是“应用交换”,应用交付是完全基于网络应用的系统解决方案,它将关键应用与基础网络设备关联起来。

防火墙负载均衡 篇4

随着国家电网公司信息化工作的快速推进,公司生产、经营和管理业务对信息系统愈加依赖,如何保持信息系统业务的连续性也愈加重要,若只保持到单个数据中心的连接链路,则存在发生网络安全性及频繁的单点故障风险[1]。为确保不因人为或自然原因造成信息系统业务应用层服务中断,保证信息系统安全稳定运行,公司提出部署多个数据中心建设工作,以提升应用层的可靠性。但全面实现这些目标,需要全局负载均衡及本地负载均衡来高效的监控基础架构和信息系统业务的状态,并且根据信息系统业务的需求控制多个数据中心的应用层。

1 总体设计

全局负载均衡及本地负载均衡可以实现多个数据中心业务链路连接可用性与性能的无缝监控[1], 从而达到某一信息系统业务到2个数据中心流量的智能管 理,经过域名 系统(Domain Name System, DNS)解析后,提供出色的容错性和优化服务,从而保证系统业务应用层稳定运行。

1.1 部署模式

冗余的信息系统实施方案,任何单点故障不影响信息系统应用层可靠性[2]。在分布式基础架构典型设计中,充分考虑所有设备和线路的故障情况,对所有涉及的设备采用冗余设计和实施,同城建立2个数据中心,当A数据中心发生灾难(如机房整体掉电)时,B数据中心可继续提供业务应用访问,信息系统业务能够迅速切换,保证应用层服务不中断。实现业务应用的“同城双活”,保证甘肃省电力公司各业务的可靠性和持续性。总体部署结构如图1所示。

1.2 设计模式

1)同城DNS“1+1”设计。为实 现业务“同城 双活”架构,必须基于DNS实现,DNS部署时使用“1+1”设计原则,必须在A数据中心和B数据中心分别部署1组DNS设备并保持数据同步,实现各个业务由A数据中心和B数据中心提供业务支撑,提高业务的可靠性。

2)同城GTM“1+1”设计。为实现业务“同城双活”架构及业务的无缝切换,GTM部署时使用“1+1”设计原则,必须在A数据中心和B数据中心分别各部署至少1台GTM,采用旁挂部署,并采用双光纤链路双电源接入,确保A数据中心和B数据中心各个业务链路正常,进行各业务故障链路的无缝切换,提高各个业务的可用性和可靠性。

3)负载均衡器“2+1”设计。负载均衡器部署使用“2+1”设计原则,至少每3台构成一核心业务资源池,将2台负载均衡设备主备旁挂部署于A数据中心,1台部署于B数据中心,由负载均衡设备对各个业务服务器节点做故障判断并上报GTM,当A数据中心负载均衡设备出现故障(如机房整体掉电)时,B数据中心负载均衡设备将接管业务,将流量分发至B数据中心服务器节点,以此确保各个业务的可靠性。

4)同城核心、非核心资源池设计。业务接入负载均衡设备使用核心、非核心资源池设计原则,将负载均衡设备分别部署于A数据中心和B数据中心, 并根据设备性能建立核心和非核心资源池。核心业务将采用F5高端设备建立核心业务资源池;非核心业务将采用Array、深信服、迪普等中低端负载均衡设备建立非核心业务资源池,完成业务的统一规划, 实现业务系统的“同城双活”架构。

2 架构设计

2.1 典型架构设计

1)DNS设计。DNS负责各个业务的域名解析, 收到业务请求时,DNS负责将请求解析至任一数据中心GTM,当A数据中心DNS出现故障时,B数据中心DNS接管业务请求。

2)GTM设计。GTM将DNS解析的请求依据自身策略分发至各链路,负责各业务链路的冗余,实现各个业务的无缝切换,当A数据中心GTM出现故障时,可由B数据中心GTM接管业务。GTM部署将采用旁挂部署模式和启用TRUNK并用光纤连接。

3)负载均衡器设计。负载均衡器对服务器健康状况进行判断,接受GTM链路请求,并将服务器的健康状况提供给GTM,以此确保A数据中心和B数据中心各个链路的正常,当A数据中心负载均衡设备出现故障时,可由B数据中心负载均衡设备接管业务。

4)核心及非核心业务资源池设计。为有效使用现有负载均衡设备和提高设备使用统一性,将现有业务划分为核心业务资源池和非核心业务资源池, 实现核心业务及非核心业务的双中心无缝切换。

2.2 负载均衡设计

2.2.1 全局流量管理器

全局流量管理器在各数据中心正常的状况下, 将国家电网公司用户的访问请求利用DNS解析分配到多个数据中心,当某信息系统业务链路发生故障时,流量自动通过DNS解析实现到另一可用数据中心链路的无缝切换,当故障业务链路恢复时,自动将信息系统业务通过DNS解析至该数据中心业务链路,保证业务应用层的可靠性。

全局负载均衡具备完整的DNS功能,实时监测多个数据中心信息系统业务的可用性[3],通过DNS解析,将用户连接到最佳链路,全局负载均衡可以制定一个强大的灾难恢复和业务连续性计划,与本地负载均衡联动,根据服务器性能、业务和网络状况确定一条最佳链路提供给国家电网公司用户,以此提高应用层的整体性能

2.2.2 本地负载均衡

为实现流量的合理分配,本地负载均衡通过多种负载均衡算法对多台服务器进行负载均衡。在某台服务器发生故障时,通过本地负载均衡对该服务器进行健康检查,并将其从服务器群组中排除,透明的容错;当该服务器恢复时,自动将其加入服务器群组,从而保证服务器的整体性能,提升应用层的高可靠性、高性能。

为选择最佳的服务器响应国家电网公司用户的业务请求,本地负载均衡根据目标服务器的性能和网络健康状况,将所有流量均衡的分配到各个服务器, 提高整个信息系统业务应用层的可靠性及高性能[3]。

当国家电网公司用户通过域名访问信息系统业务时,无论业务最终由哪一个数据中心提供,国家电网公司用户的使用感受是相同的,信息系统业务平台可分别部署2个数据中心,位于2个数据中心的业务系统发生灾难时可互为备份。负载均衡典型架构设计如图2所示。

3 加固及优化方案

为提高国家电网公司用户的访问速度,增加系统的稳定性与强壮性,以及在使用虚拟化服务器后双数据中心间的快速迁移,可采用以下加固及优化方案。

3.1 业务访问加速

国家电网公司用户在访问数据中心内部的业务时,业务的访问速度受到网络时延、距离、网络拥塞以及使用的浏览器类型等因素的影响,从而影响业务的办理效率。为提升用户的访问速度,可选择在本地负载均衡上扩展开启业务加速功能。

1)第1层加速:网络加速(Network offload)。控制浏览器重复使用已经访问过的对象和内容,避免浏览器重复下载同样的内容;HTTP压缩功能,减少传输的数据量。

2)第2层加速:服务器加速(Server offload)。内存缓存,缓存服务器的热点内容,避免服务器忙于重复处理同样的数据;连接复用,避免在后台服务器建立太多的连接;Qo S带宽管理与会话限制,避免在后台服务器的连接数溢出;安全套接层(Secure Sockets Layer,SSL)加解密功能,减少服务器性能开销。

3)第3层加速:业务加速(Application offload)。控制浏览器重复使用已经访问过的对象和内容,避免浏览器重复下载同样的内容;强制浏览器创建更多的并发连接。

3.2 业务加固

为提高应 用层的稳 定性,可在本地 负载均衡 扩展开启针对HTTP、文件传输协议(File Transfer Protocol,FTP)、简单邮件 传输协议(Simple Mail Transfer Protocol,SMTP)等协议的规范性,如URL的长度、HTTP header的合法性以及对所使用的协议命令进行过滤,如GET、POST、上传、下载、收发邮件等命令进行审核,对于不合规的请求进行过滤。

同时,也可以在本地负载均衡上开启用户端合规性检查,如使用的操作系统、是否安装了补丁和开启了个人防火墙及防病毒软件等,对于不合规的用户,也可以进行过滤。

1)本地负载均衡的可靠性加固。本地负载均衡作为数据中心内最核心的网关级设备,一旦处于Active/Standby状态的一组设备出现故障,将造成整个数据中心业务的切换,整体切换所造成的影响与未知风险都将大大增加。因此,建议使用更高级别N+M的冗余模式,即多个处于Acitve状态的设备, 配合多个处于Standby状态的设备,任一Active设备出现故障,都会有多个Standby设备进行接管,从而提升负载均衡器的可靠性[4]。如配置1台Active设备、2台Standby设备。当Active设备出现故障, 其中的1台Standby设备将自动变为Active状态接管业务,此时还有1台Standby设备时刻准备接管。通过该模式,可以极大提升数据中心的稳定性。

2)虚拟化服务器的快速迁移。在分布式数据中心架构中,虚拟化服务器在2个数据中心之间的快速迁移,将极大提升业务的切换速度。然而每个虚拟机的文件大小都以G为单位。多个虚拟机的文件在同时迁移或数据同步等流量同时挤占2个数据中心的链路带宽时,将极大影响虚拟机的迁移。因此,建议在本地负载均衡开启2个数据中心间的链路优化功能及带宽管理功能,对传输的流量进行分级,保证带宽的合理使用。同时开启TCP协议优化、重复数据删除等优化技术,减少带宽占用量,加速数据的传输,提升虚拟机的迁移速度,从而保证应用层之间的快速切换。

3)全局负载均衡与本地负载均衡的联动。为增强流量在2个数据中心之间进行灵活、智能的分配, 以及减少对配置增删改的复杂度[5],建议在全局负载均衡与本地负载均衡进行联动:本地负载均衡向全局负载均衡器汇报本数据中心内部各业务的性能压力、连接数量、健康等信息,当达到阈值时,全局负载均衡器自动调整负载算法,将流量导向另一个数据中心,保证业务随时高效运行。当在本地负载均衡上配置新的业务时,即添加VSIP时,VSIP地址会自动填加到全局负载均衡器中,该地址将作为域名解析的地址被全局负载均衡器直接调用,减少配置复杂度,提高工作效率。

4)应用层容灾“一键切换”无缝。当业务系统部署在2个数据中心后,在某个业务系统出现故障时进行应用级的切换,无需所有业务在数据中心间进行切换,而应用的切换需要网络、域名解析、负载均衡设备等各个环节都准备完善才可以进行切换, 所以建议管理员建立一套完善的“一键切换”指令流程,当发现某个业务需要进行切换时,可通过该指令自动触发切换流程,向各网络设备、负载均衡设备、服务器、数据库等发布的API接口发送控制指令,从而快速、准确地完成应用级切换。

4 结语

有效使用全局负载均衡及本地负载均衡可有效解决人为或自然原因造成的信息系统业务应用层服务中断,从而避免了服务的单点故障,保证业务的高可用性和高可靠性。

为更好地消除单点故障,减少停机时间,关键业务应配置备用链路保证网络服务的质量。可基于DNS利用全局负载均衡及本地负载均衡来实现应用层在分布式数据中心之间的无缝切换,以此提高国家电网信息系统业务应用层的整体性能及可靠性。

摘要:随着国家电网公司信息化工作的快速推进,公司生产、经营和管理业务对信息系统愈加依赖,信息系统业务的可靠性越来越重要,只保持单个数据中心的链路则意味着频繁的单点故障和脆弱的网络安全性。公司信息系统为了使抵御人为、自然等破坏性因素的能力不断增加,使应用层业务持续能力进一步提升,采用全局负载均衡及本地负载均衡,在信息系统业务发生故障时能够通过DNS解析迅速切换到另一可用数据中心,消除单点故障,减少停机时间,实现应用层以高性能、高可靠性、高安全性、良好的系统扩充能力、良好的可管理型,满足灵活多样的动态调整为总体目标的信息系统建设。

Nginx负载均衡策略 篇5

轮询

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除.

upstream backserver { server 192.168.5.205; server 192.168.5.206;}

weight

指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况.

upstream backserver { server 192.168.5.205 weight=10; server 192.168.5.206 weight=10;}

ip_hash

每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题.

upstream backserver { ip_hash; server 192.168.5.205:88; server 192.168.5.206:80;}

fair(第三方)

按后端服务器的响应时间来分配请求,响应时间短的优先分配.

upstream backserver { server 192.168.5.205; server 192.168.5.206; fair;}

url_hash(第三方)

按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效.

upstream backserver { server squid1:3128; server squid2:3128; hash $request_uri; hash_method crc32;}

在需要使用负载均衡的server中增加

proxy_pass backserver/;upstream backserver{ ip_hash; server 127.0.0.1:9090 down; (down 表示单前的server暂时不参与负载) server 127.0.0.1:8080 weight=2; (weight 默认为1.weight越大,负载的权重就越大) server 127.0.0.1:6060; server 127.0.0.1:7070 backup; (其它所有的非backup机器down或者忙的时候,请求backup机器)}

max_fails:允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream模块定义的错误.

负载均衡提升网络性能 篇6

为了为上网用户提供一个目标服务或同时提供多个目标服务, 我们在七层交换机上通过IP地址与TCP/UDP端口的不同组合, 来为每一个目标服务设置一个不同的虚拟IP地址;正因为如此, 七层交换机可以同时为若干个基于TCP/IP协议的各类业务应用提供服务器系统的负载均衡服务;七层交换机可以持续不停地对用户需要访问的服务器系统资源进行合理性检查, 检查范围限定在交换机的四层到七层范围内, 当上网用户向目标服务器系统发出访问请求信息时, BIG/IP协议会依照目标服务器之间的网络健康状态以及运行性能状态, 自动挑选性能状态处于最优效果的服务器系统来应答用户的上网请求信息, 这样不但可以充分利用每一台服务器系统的资源, 而且也会平均分配数据流量到每一台服务器系统中, 避免了单台代理服务器传输性能的瓶颈以及系统故障的影响。通过增加七层交换机, 我们可以对局域网的数据流量以及访问内容进行灵活的管理与分配, 利用七层交换机自带的12种与众不同的数据算法, 将局域网中的访问数据流按需转发分配给它想要访问的服务器组, 而对于上网用户来说, 我们看到的只是一台虚拟的服务器。这个时候, 上网用户只需要记住虚拟服务器的访问地址, 而不需要同时记住整个服务器组的其他服务器地址, 用户向虚拟服务器发出的数据流会自动被七层交换机灵活地平均分配给所有的服务器系统。七层交换机所采用的12种与众不同的数据算法, 主要有:

一、优先权算法:这种算法主要就是对所有的服务器系统进行分组, 同时对这些分组设置合适的访问优先权, BIG/IP协议会把上网用户的数据请求, 优先分配给优先权级别最高的服务器分组, 一旦优先权级别最高的服务器分组工作状态不正常的时候, 第二优先权级别的服务器分组会自动递补上来, 负责处理上网用户的数据请求;如果第二优先权级别的服务器分组也遇到了故障无法正常工作的话, 那么其他服务器分组会依次进行递补;显然这种数据算法, 为上网用户提供了一种热备份的功能。

二、比率算法:这种算法是为整个服务器组中的每一台服务器系统事先设置一个加权值比例, 同时依照这个加权值比例, 自动将上网用户的数据请求信息分配给每一台服务器系统;一旦整个服务器中的某一台服务器系统在第二层到第七层范围内遇到故障无法正常工作的时候, BIG/IP协议会自动将这台故障服务器系统从整个服务器组中临时剔除出来, 确保它不会参加下一次上网用户请求的分配任务, 直到它的故障被成功排除为止。

三、轮询算法:这种算法是比较常用的一种算法, 它主要是将上网用户的数据请求按照顺序进行循环, 依次发送给整个服务器组中的每一台服务器系统进行处理;如果整个服务器组中有某台服务器系统在第二层到第七层范围内遇到故障无法正常工作的时候, BIG/IP协议会自动将这台故障服务器系统从循环队列中临时剔除出来, 确保它不会参与轮询算法, 直到它的故障被成功排除为止。

四、除了上面几种主要的数据算法外, 七层交换机的算法还包括服务类型算法、服务质量算法、观察模式算法、最快模式算法、最少的连接方式算法、预测模式算法、动态服务器补充算法、规则模式算法、动态性能分配算法等等。

通过上述升级、改造方案, 我们可以轻而易举地对整个服务器组实现流量均衡分配, 这样解决了单台服务器性能瓶颈的缺点, 提升了整个局域网服务器系统的运行稳定性和运行可靠性;上述升级改造方案可以帮助我们非常轻松地同步服务器提供的数据内容, 并且方便我们对其中的数据内容进行监控, 保证上网用户能从局域网服务器中访问得到准确、可靠的信息;通过对服务器系统的负载均衡改造, 我们能够对运行在服务器系统中的各个网络应用程序进行运行状态的实时监控, 并且对那些存在故障的应用系统进行自动屏蔽;此外, 这种负载均衡升级改造方案, 还为网络管理员在线调试、维护服务器系统带来了便利。

参考文献

[1]于洪伟.基于多核处理器高效入侵检测技术研究与实现[D].成都:电子科技大学, 2009.

[2]林闯, 单志广, 任丰原.计算机网络服务质量 (QoS) [M].清华大学出版社, 2006, 04.

几种负载均衡算法 篇7

(1) 轮询:请求连接到每一个服务器之顺序周期。当其中一个服务器2 到7 层故障时, BIG-IP把它从顺序循环之队列提出, 不参加下届轮询, 直到它回复正常。

(2) 比率:对每个服务器配置一个加权值比例, 按比例配置给每个服务器之用户请求。当其中一个服务器2 到7 层故障时, 从服务器BIG-IP把它从队列中提出, 用户不参与下一个请求直到它回复正常。

(3) 优先权:全部之服务器进行分组, 为每个组都给予优先级, 按BIG-IP用户之请求, 为最高之服务器组给予优先级 (在同一组内, 采用比率或轮询之算法, 配置请求) ;当最高优先级之所有服务器失败, BIG-IP对服务器组之第2 最高给予优先级。以此方式, 为用户提供一个热备份之实际方法。

2 动态负载之均衡算法

(1) 最少之连接方式:提供一个新之服务器连接到这些连接是最小之处理。当其中一个服务器2 到7 层故障时, 从服务器BIG-IP把它从队列中提出, 用户不参与下一个请求直到它回复正常。

(2) 最快模式:链接到那些通过响应最快之服务器。当其中一个服务器2 到7 层故障时, 从服务器BIG-IP把它从队列中提出, 将用户不参与下一个请求直到它回复正常。

(3) 观察模式:连接数和响应时间选择最佳之平衡, 这2 个服务器之新请求为基础。当其中一个服务器2 到7 层故障时, 从服务器BIG-IP把它从队列中提出, 将用户不参与下一个请求直到它回复正常。

(4) 预测模式:BIG-IP服务器使用收集电流之性能指标, 通过对用户请求的预测和分析, 选取一个服务器下一时间片以及性能最好之服务器。

(5) 动态性能配置:BIG-IP应用程序配合应用程序服务器进行性能参数的收集, 动态进行流量配置的调整。

(6) 动态服务器补充:当主服务器领域因为故障导致数量减少的时候, 实现动态化将备份服务器添加至于主服务器领域。

(7) 服务质量:根据不同之优先级配置给数据流。

(8) 种服务类型:根据不同之服务类型 (在该领域中之类型) 来配置数据流之负载平衡。

(9) 规则模式:针对不同之数据流设置规则, 用户可以。

负载均衡之应用程序对应本地交换, 我们可以通过负载均衡算法之理解, 结合实际之需求来使用适当之负载均衡算法, 我们常用之是一般之连接数最少, 最快之响应, 或轮询, 我们决定用该算法, 主要是对实际之需求。

3 服务器负载均衡算法

包括轮询算法, 最少连接算法, 响应时间算法, 散列算法, 最少连接算法之错误, 链路带宽算法等。还可配置不同之权重值来调整实际服务器 (真正之服务器) 来调整流量配置。如高性能之大型服务器, 可以配置为一个较大之权重值, 同时设置较小之权重值较低之性能之小服务器。为了避免超载导致服务器崩溃, 可以指定最大限度的实际服务器, 以避免服务器过载。可以指定任何服务器到另一个服务器或备份服务器的溢出, 从而进一步确保应用程序的可用性。

非持续性的算法:不同之请求可被配置给一个实际之服务组不同之真实服务器。有圆罗宾算法, 最少连接算法, 响应速度算法。

轮循算法:依次将请求调度不同之服务器以轮询之方式, 就是每次的调度都执行i = (i + 1) mod n次, 并现状出第i台的服务器。算法之优点就是它的简洁性, 因为它不需要记录现态中的全部连接之状态, 故其归类为一种无状态的调度。

最少连接的算法: 每一次客户端请求之服务可以在服务器之时间有较大之差异, 具有较长之工作时间, 如果一个简单之圆罗宾或随机平衡算法, 将每个服务器上之过程可能会产生非常大之差异, 这样之结果将不能实现真正之负载平衡。最小数目之连接到内部之平衡算法在负载每个服务器有一个数据记录, 记录之内容是连接之数量, 目前正在处理之服务器, 当一个新之服务连接请求, 请求将配置给当前连接之服务器数量最少, 使更现实之平衡, 更平衡之负载。

响应速度的算法:说明:负载均衡设备向每个内部服务器发送一个探测请求 (如ping) , 然后每个服务器响应时间最快之响应, 以确定该服务器响应服务客户端请求之响应时间。举例:这样之平衡算法能更好地反映服务器之当前运行状态, 但只有最快之响应时间是指负载平衡设备和服务器响应时间最快, 而不是客户之间之响应时间最快之客户端和服务器之间。

持续性算法:特定客户端之请求被配置到一个真实之服务组中, 与一个真实之服务器处理。主要包括:

(1) 基于IP之算法:基于用户IP地址来进行服务器的选择。-Hash IP (hi) :基于用户IP地址之HASH值, 来进行服务器的选择:

(2) 基于请求/ 报头之算法- Hash Header:进行服务器的选择是通过用户请求报中HTTP之报头;Persistent Hostname :服务器的选择是根据用户的请求中HTTP报头之HASH值;Persistent URL:服务器的选择是通过对URI Tag与值之静态的对应关系。SSL Session ID :服务器的选择是根据SSL会话ID。

(3) 基于Cookie之算法- Persistent Cookie: 进行服务器的选择是通过用户请求包用Cookie Name / Value之静态对应关系来;- Hash Cookie :进行服务器的选择是通过用户请求包用Cookie Name / Value之Hash值对应关系;- Insert Cookie :进行服务器的选择是通过负载均衡器, 向服务器响应包中插入Cookie;- Rewrite Cookie :进行服务器的选择是通过负载均衡器向服务器响应包中重写Cookie值。

参考文献

[1]李文中, 郭胜, 许平, 陆桑璐, 陈道蓄.服务组合中一种自适应的负载均衡算法[J].软件学报, 2006 (05) .

[2]王霜, 修保新, 肖卫东.Web服务器集群的负载均衡算法研究[J].计算机工程与应用, 2004 (09) .

[3]周松泉.一种新的服务器集群负载均衡算法[J].南昌航空大学, 2012 (05) .

[4]田绍亮, 左明, 吴绍伟.一种改进的基于动态反馈的负载均衡算法[J].计算机工程与设计, 2007 (02) .

机房管理中的负载均衡 篇8

服务器是一台普通的微机、交换机为TP-link。经常用于计算机上机考试, 由于考试软件自身、交换机、带宽等诸多原因造成考试的最后交卷时刻, 此时访问量较大, 单台服务器常出现服务器CPU资源使用率过高, 这时服务器容易出现死机、学生交不上考卷等现像。为了有效解决上机考试过程中出现的问题, 又不进行太大的投资, 我们采用了负载均衡的办法可有效解决考试时并发访问量过大, 造成的一系列问题。

我们采用的负载均衡的解决办法是使用二块相同的网卡, 这样投资会很低, 很适合一般小的机房使用, 网卡型号为3com-3c905B, 服务器所使用的操作系统是RedHat Enterprise linux5.0。下面我们看一下连接的示意图:

接下来第一步我们来配置虚拟网络接口配置文件如图1所示:

打开后编辑文件如图2:

编辑完后保存退出, 这时一个虚拟的网络接口文件编辑完成, 第二步我们在去分别编辑二个网卡的的配置文件如图3、图4所示:

第三步, 我们去配置网卡起动时的自动加载文件, 这个文件位于/etc/modprobe.conf, 打开后编辑为如图5所示内容 (框内为新加内容) 。

这里我们来说明一下加入的内容, miimon=100, 表示系统每100ms监测一次链路连接状态, 如果有一条线路不通就转入另一条线路;mode的值表示工作模式, 共有0、1、2、3四种模式, 常用的为0和1两种。mode=0表示load balancing (round-robin) 为负载均衡方式, 两块网卡都工作。mode=1表示fault-tolerance (active-backup) 提供冗余功能, 工作方式是主备的工作方式, 也就是说默认情况下只有一块网卡工作, 另一块做备份。在机房管理中更多的考虑负载均衡, 所以我们选择了模式0, 让两块网卡都工作。

第四步我们去编辑一下系统的起动文件, 该文件位于/etc/rc.d/rc.local, 编辑后的内容如图6, 图中红色部分为新加内容, 让eth0和eth1两块网卡都绑定到bond0上去。

到这里为止所有的配置已经完成, 简单吧?重启一下计算机, 然后用ifconfig查看网卡信息, 我们会看见多了一个名称为bond0的网卡。我们来看一下网卡的配置信息, 如图7。

在这种工作模式下工作, 能为机房提供两倍的带宽, 这种情况下即使用出现一块网卡失效, 仅仅会是服务器出口带宽下降, 也不会影响整个网络的使用。为什么双网卡邦定能实现这些功能呢?其实就是两块网卡具有相同的IP地址而并行链接聚合成一个逻辑链路工作。这项技术在Sun和Cisco中早已存在, 被称为Trunking和Etherchannel技术, 在Linux的2.4.x的内核中也采用这这种技术, 被称为bonding。bonding技术的最早应用是在集群上, 为了提高集群节点间的数据传输而设计的。一般情况下, 网卡只接收目的硬件地址 (MAC Address) 是自身Mac的以太网帧, 对于别的数据帧都滤掉, 以减轻驱动程序的负担。但是网卡也支持另外一种被称为混杂promisc的模式, 可以接收网络上所有的帧, bonding就是工作在这个模式下, 而且修改了驱动程序中的mac地址, 将两块网卡的Mac地址改成相同, 可以接收特定mac的数据帧。然后把相应的数据帧传送给bond驱动程序处理。知道了原理还不快试试。

Linux下通过网卡邦定负载均衡技术既增加了服务器的可靠性, 又增加了网络带宽, 可以很好的解决在机考中由于瞬时访问量过大, 造成的一系列问题。

摘要:为了有效解决上机考试过程中出现的问题, 又不进行太大的投资, 文章结合工作实际, 认为采用负载均衡的办法可有效解决考试时并发访问量过大, 造成的一系列问题。

中小企业网络负载均衡设计 篇9

1 中小企业网络架构介绍

企业网络是企业信息化的主体,是网络负载均衡引入的基础,下面介绍企业网络的逻辑架构。

1.2 中小企业网络逻辑架构

鉴于市场价格和服务的影响,一般中小企业内部建网基本采用层次设计模型,网络设计的层次模型如图1所示。

大约10年前,Cisco曾经提出层次设计模型,并且将其作为网络设计人员进行网络设计的工具,该模型能够从物理、逻辑和功能等多角度出发进行设计。层次模型将网络规划分为接入层、汇聚层和核心层。

接入层为用户提供网络设备的接入。在企业网络中,接入层通常包括实现LAN设备(例如工作站和服务器)互连的第二层交换机。在WAN环境中,通过使用WAN技术,例如宽带和帧中继,接入层为站点提供到企业网络的接入。

汇聚层汇集了配线架,并且使用第二层和第三层交换进行工作组分段、实施安全策略,限制带宽和隔离网络故障等。这些措施能够防止汇聚层和接入层的异常事件影响核心层。

核心层被描述为高速主干,核心层的主要功能是尽可能快地交换数据。因为核心层是连通的关键环节,所以它提供了高可靠性,并且能够快速地适应路由选择和拓扑的变更。

为了保证企业网络的稳定性和健壮性,理想情况下,可以在每个功能区域都引入网络负载均衡,这样搭建起来的网络是完全冗余和高效的。但是,考虑到信息化投入所产生的收益,在现实情况中,中小企业往往只会愿意在某些关键应用区域引入负载均衡,那么应该如何为中小企业设计带负载均衡功能的网络呢?我们应该对网络负载均衡技术有一个全面的认识。

2 网络负载均衡介绍

2.1 网络负载均衡概念及含义

网络负载均衡,英文名为Network Load Balance,其意思是将负载(数据流量)进行平衡、分摊到多个网络节点上进行转发,例如交换机、路由器、企业关键应用服务器和其他关键任务服务器等,从而共同完成工作任务。通常,负载均衡会根据网络的不同层次(网络七层)进行划分。

网络负载均衡有2个方面的含义:一是把大量的并发访问或数据流量分担到多台节点设备上分别处理,减少用户等待响应的时间;二是其中某个节点设备出现故障时,其余节点能够智能地承接流量信息的转发职责,使得网络系统的稳定性大大提高,减少了单点故障。

2.2 网络负载均衡的主要任务

网络负载均衡的主要任务有以下几个方面:解决网络拥塞问题,就近提供服务,实现地理位置无关性;为用户提供更好的访问质量;提高服务器响应速度;提高服务器及其他资源的利用效率。

在用户端进行优化和在服务器端采用负载均衡策略可以最大限度地确保网络信息的顺畅流通。

2.3 网络负载均衡技术分类

不同的网络负载均衡技术用以满足不同的应用需求,下面从负载均衡所应用的网络层次(指OSI参考模型或TCP/IP体系结构)进行分类。

2.3.1 数据链路层负载均衡技术

基于数据链路层的负载均衡技术常见的有应用于交换机的LACP、PAgP、MSTP技术及应用于服务器网卡的FEC技术等,下面分别对这几种技术进行介绍。

LACP:基于IEEE802.3ad标准的链路汇聚控制协议(Link Aggregation Control Protocol,LACP)是一种实现链路动态汇聚的协议。该协议通过将多个物理以太网适配器聚集到单独的虚拟适配器,以提供更高的带宽并防止单点故障。目前,市场上的主流二层交换机均支持该项功能。

PAgP:端口聚集协议(PAgP)通过发送PAgP分组在多个需要形成聚合的快速以太端口上协商形成链路通道,实现流量的负载均衡,实现原理和LACP基本类似。需要注意的是,PAgP是Cisco的专有协议,仅被Cisco公司的交换机支持。

MSTP:多实例生成树协议(Multiple Spanning Tree Protocol,MSTP)是把IEEE802.1w的快速生成树(RST)算法扩展而得到的。采用多生成树(MST),能够通过干道(trunks)建立多个生成树,关联VLANs到相关的生成树进程,每个生成树进程具备单独于其他进程的拓扑结构;MSTP将环路网络修剪成为一个无环的树型网络,避免报文在环路网络中的增生和无限循环,同时还提供了数据转发的多个冗余路径,在数据转发过程中实现VLAN数据的负载均衡。值得注意的是,MSTP是以实例为单位来进行STP计算的,因此在设计时要特别考虑清楚。

FEC:快速以太通道(Fast Ether Channel,FEC)是针对Web浏览及Intranet等对吞吐量要求较大的应用而开发的一种增大带宽的新技术,可为重要应用的客户机/服务器网络系统提供高可靠性和高速度。

2.3.2 网络层负载均衡技术

基于网络层的负载均衡技术常见的有VRRP、HSRP及GLBP,还有一类是基于路由协议的负载均衡技术,下面分别进行介绍。

虚拟路由器冗余协议(Virtual Router Redundancy Protocol,VRRP)是一种选择协议,它可以把一个虚拟路由器的责任动态分配到局域网上的VRRP路由器中的一台。控制虚拟路由器IP地址的VRRP路由器称为主路由器,它负责转发数据包到这些虚拟1P地址。一旦主路由器不可用,这种选择过程就提供了动态的故障转移机制,这就允许虚拟路由器的IP地址可以作为终端主机的默认第一跳路由器。VRRP组网结构如图2所示。

图2所示的ISP1路由器和ISP2路由器开启VRRP功能以后会虚拟一个路由器来转发用户数据,所有用户配置默认网关时只需配置虚拟路由的IP即可。虽然VRRP规定在同一时间,只能由主用路由器来转发数据,备用路由器处于空闲状态,但是通过VRRP组的概念,可以将不同的用户划分在不同的VRRP组内来实现负载均衡。继续以图2为例,假如将user1-3分配在VRRP组1中,将user4-6分配在VRRP组2中,并且设定ISP1路由器为组1的主用路由器和组2的备用路由器,同时设定ISP2路由器为组2的主用路由器和组1的备用路由器,那么在正常情况下,2组用户分别使用各自的主用路由器进行数据转发,就实现了网络流量的负载均衡,流量转发示意图如图3所示。

HSRP:热备份路由器协议(Hot Standby Router Protocol,HSRP)设计目标是支持特定情况下IP流量失败转移不会引起混乱、并允许主机使用单路由器,以及即使在实际第一跳路由器使用失败的情形下仍能维护路由器间的连通性。换句话说,当源主机不能动态知道第一跳路由器的IP地址时,HSRP协议能够保护第一跳路由器不出故障。该协议中含有多种路由器,对应一个虚拟路由器。HSRP协议只支持一个路由器代表虚拟路由器实现数据包转发过程。终端主机将它们各自的数据包转发到该虚拟路由器上。

负责转发数据包的路由器称为主动路由器(Active Router)。一旦主动路由器出现故障,HSRP将激活备份路由器(Standby Routers)取代主动路由器。HSRP协议提供了一种决定使用主动路由器还是备份路由器的机制,并指定一个虚拟的IP地址作为网络系统的缺省网关地址。如果主动路由器出现故障,备份路由器(Standby Routers)承接主动路由器的所有任务,并且不会导致主机连通中断现象。HSRP实现原理和VRRP类似,但是属于Cisco私有协议,仅被Cisco设备支持。

2.3.3 基于路由协议的负载均衡技术

路由协议通过路由信息创建了路由表,描述了网络拓扑结构,然后根据路由表执行路由选择和数据包转发功能。目前,企业网络使用最多的路由协议有EIGRP、OSPF及PBR等,这些路由协议通过计算到达目标网络的开销来衡量路由的优劣,并在具有同样开销的路径上实现等价负载均衡。

EIGRP:EIGRP是Cisco专有的路由协议,属于混合型路由协议,兼有链路状态路由协议和距离矢量路由协议的优点,通过调整它的“变化因子”参数实现非等价负载均衡。

OSPF是基于链路状态算法的路由选择协议,默认情况下,路由器会首先计算到达目标网络的每条链路的开销,开销相同的路由都会被安装到路由表中,这样就实现了等价负载均衡。OSPF仅支持等价负载均衡。

最后介绍一种基于PBR的负载均衡方式,PBR (Policy Based Routing)称为策略路由,它不属于路由协议,是一种比基于目标网络进行路由更加灵活的数据包路由转发机制。应用了策略路由,路由器将通过路由图决定如何对需要路由的数据包进行处理,路由图决定了一个数据包的下一跳转发路由器。应用策略路由,必须要指定策略路由使用的路由图(Route-map),并且要创建路由图。一个路由图由很多条策略组成,每个策略都定义了1个或多个匹配规则和对应操作。一个接口应用策略路由后,将对该接口接收到的所有包进行检查,不符合路由图任何策略的数据包将按照通常的路由转发进行处理,符合路由图中某个策略的数据包就按照该策略中定义的操作进行处理。通过预先设定好的路由图,就可以实现网络流量的负载均衡。目前,应用在企业边缘的多WAN口路由器就是利用了策略路由的功能,最新的第三代策略路由还加入了带宽识别、抖动检测等特性,无需人工干预即可实现负载均衡。

2.3.4 第四层交换的负载均衡技术

传输层是OSI模型的第四层。传输层负责端对端通信,即在网络源和目标系统之间协调通信。在IP协议栈中这是TCP(传输控制协议)和UDP (用户数据报协议)所在的协议层。在第四层中,TCP和UDP标题包含端口号(port number),它们可以唯一区分每个数据包包含哪些应用协议(例如HTTP、FTP等)。四层交换技术利用第三层和第四层包头中的信息来识别应用数据流会话,这些信息包括TCP/UDP端口号、标记应用会话开始与结束的“SYN/FIN”位及IP源/目的地址。利用这些信息,四层交换机可以做出向何处转发会话传输流的智能决定。对于使用多种不同系统来支持一种应用的大型企业数据中心、Internet服务提供商或内容提供商,以及在很多服务器上进行复制功能的时候,四层交换的作用就尤为重要。

2.4 网络负载均衡策略

在实际应用中,我们不能仅把客户端的服务请求平均地分配给内部交换机,而不管交换机是否满负荷。而是想使一台处理流量转发请求较少的交换机能分配到更多的请求,出现故障的交换机将不再接受请求直至故障恢复等。

选择合适的负载均衡策略,使多个设备能很好地共同完成任务,消除或避免现有网络负载分布不均、数据流量拥挤反应时间长的瓶颈。在各负载均衡方式中,针对不同的应用需求,在OSI参考模型的第二、第三、第四、第七层的负载均衡都有相应的负载均衡策略。

第四到第七层的负载均衡一般采用专用的硬件负载均衡器实现,主要用于关键服务器的负载均衡。考虑到服务请求的不同类型、服务器的不同处理能力及随机选择造成的负载分配不均匀等问题,为了更加合理地把负载分配给内部的多个服务器,就需要应用相应的能够正确反映各个服务器处理能力及网络状态的负载均衡算法。

轮循均衡(Round Robin):每一次来自网络的请求轮流分配给内部中的服务器,从1至N然后重新开始。此种均衡算法适合于服务器组中的所有服务器都有相同的软硬件配置并且平均服务请求相对均衡的情况。

权重轮循均衡(Weighted Round Robin):根据服务器的不同处理能力,给每个服务器分配不同的权值,使其能够接受相应权值数的服务请求。此种均衡算法能确保高性能的服务器得到更多的使用率,避免低性能的服务器负载过重。

随机均衡(Random):把来自网络的请求随机分配给内部中的多个服务器。

权重随机均衡(Weighted Random):此种均衡算法类似于权重轮循算法,不过在处理请求分担时是个随机选择的过程。

响应速度均衡(Response Time):负载均衡设备对内部各服务器发出一个探测请求(例如Ping),然后根据内部中各服务器对探测请求的最快响应时间来决定哪一台服务器来响应客户端的服务请求。此种均衡算法能较好地反映服务器的当前运行状态,但最快响应时间仅仅指的是负载均衡设备与服务器间的最快响应时间,而不是客户端与服务器间的最快响应时间。

最少连接数均衡(Least Connection):最少连接数均衡算法对内部中需负载的每一台服务器都有一个数据记录,记录当前该服务器正在处理的连接数量,当有新的服务连接请求时,将把当前请求分配给连接数最少的服务器,使均衡更加符合实际情况,负载更加均衡。此种均衡算法适合长时处理的请求服务,例如FTP。

处理能力均衡:此种均衡算法将把服务请求分配给内部中处理负荷(根据服务器CPU型号、CPU数量、内存大小及当前连接数等换算而成)最轻的服务器,由于考虑到了内部服务器的处理能力及当前网络运行状况,所以此种均衡算法相对来说更加精确,尤其适合运用到第七层(应用层)负载均衡的情况下。

3 中小企业网络负载均衡设计

3.1 设计原则

前面说过,在一个中小企业网络内部,从接入层到核心层完全部署负载均衡技术是不现实的,因为中小企业规模有限,网络建设的成本预算比较低,所以设计中小企业网络均衡方面应遵循以下几个原则:①节省成本。②可扩展性。③可用性。④可管理。⑤易于部署。⑥易于维护。

3.2 技术、设备选择

在负载均衡技术选择方面,考虑到中小企业的组网结构以层次结构为主,汇聚层与骨干层的界限模糊,建议作如下选择。

(1)接入层可以配备可网管的二层交换机,采用VLAN隔离各部门子网,采用LACP或者PAgP双线上行至汇聚层,以扩展接入带宽。

(2)汇聚层建议直接采用三层交换机,充当三层路由功能的作用,终结部门VLAN。如果企业规模较大,汇聚层部署了3台以上的三层交换机,可以考虑启用动态路由来实现负载均衡;如果企业规模较小,汇聚层设备不多,则建议在三层交换机上配置默认路由至出口设备即可。当然,我们还可以在汇聚层使用VRRP、HSRP及STP技术实现不同部门之间的流量负载均衡。

(3)中小企业的骨干层一般和汇聚层结合在一起,没有严格的界限,而且通过使用三层交换机可以大大节省部署路由器的成本。但是,当企业规模发展迅速,网络拓展到一定程度,骨干层还是建议独立设计,而当具备多台骨干设备时,启用动态路由协议或者VRRP等技术实现骨干流量的分担负载就显得很有必要。

(4)在企业边缘区域,如果通过多ISP线路接入,可以在边缘路由器使用策略路由技术实现流量在多ISP线路上的分流,设计时一定要主要策略路由的备份策略,否则可能引起单链路故障。

4 总结

网络负载均衡方案是在网络建设初期就应考虑的问题,不过有时随着访问流量的爆炸性增长,超出决策者的意料,这也就成为不得不面对的问题。当我们在引入某种网络负载均衡方案乃至具体实施时,像其他的许多方案一样,先要确定当前及将来的应用需求,然后在代价与收益之间做出权衡。

不管网络负载均衡方案是采用花费较少的软件方式,还是购买代价高昂、在性能功能上更强的第四层交换机、负载均衡器等硬件方式来实现,抑或其他种类不同的均衡技术,性能、可扩展性、灵活性、可靠性、易管理性都是我们在引入均衡方案时要考虑的问题。

参考文献

[1]郑纪蛟.计算机网络[M].北京:中央广播电视大学出版社,2000.

[2]刘小辉.网络硬件完全手册[M].重庆:重庆大学出版社,2002.

[3]张公忠.现代网络技术教程[M].北京:电子工业出版社,2000.

[4]吴明厚.广西通信技术[M].广西:广西通信协会出版社,2006.

[5]Richard Froom,Balaj Sivasubramanian.CCNP学习指南:组建Cisco多层交换网络[M].北京:电子工业出版社,2007.

[6]Todd Lammle.CCNA学习指南:中文第五版[M].北京:电子工业出版社,2005.

[7][美]Matthew H Birkner.Cisco互联网络设计[M].潇湘工作室,译.北京:人民邮电出版社,2002.

[8]李建民.网络设计基础[M].北京:北京希望电子出版社,2000.

[9]胡远萍,张治元.计算机组网技术[M].北京:高等教育出版社,2003.

浅谈LVS的负载均衡算法 篇10

虚拟服务器集群是一组服务器通过高速的局域网或者地理分布的广域网相互连接, 在它们的前端有一个负载均衡器 (Load Balancer, LB) 。负载均衡器能无缝地将网络请求调度到真实服务器上, 从而使得服务器集群的结构对客户是透明的, 客户访问集群系统提供的网络服务就像访问一台高性能、高可用的服务器一样。客户程序不受服务器集群的影响不需作任何修改。系统的伸缩性通过在服务集群中透明地加入和删除一个节点来达到, 通过检测节点或服务进程故障和正确地重置系统达到高可用性。由于负载调度技术是在Linux内核中实现的, 所以称之为Linux虚拟服务器, 简称为LVS。

1、LVS负载均衡算法

针对不同的网络服务需求和服务器配置, LVS负载均衡调度实现八种负载调度算法, 用户可以根据应用情况的不同选择最佳算法组合[1]。IPVS在内核中的负载均衡调度是以连接为粒度的, 所以这种细粒度的调度在一定程度上可以避免单个用户访问的突发性引起服务器间的负载不平衡。

1.1 轮叫调度 (RR)

轮叫调度 (Round Robin Scheduling) 算法就是以轮叫的方式依次将请求调度不同的服务器。算法的优点是其简洁性, 它无需记录当前所有连接的状态, 所以它是一种无状态调度。

1.2 加权轮叫调度 (WRR)

加权轮叫调度 (Weighted Round-Robin Scheduling) 算法可以解决服务器间性能不一的情况, 它用相应的权值表示服务器的处理性能, 服务器的缺省权值为1。权值高的服务器先收到的连接, 权值高的服务器比权值低的服务器处理更多的连接, 相同权值的服务器处理相同数目的连接数, 加权轮叫调度也无需记录当前所有连接的状态, 所以它也是一种无状态调度。

1.3 最少连接调度 (LC)

最小连接调度 (Least-Connection Scheduling) 算法是把新的连接请求分配到当前连接数最小的服务器。最小连接调度是一种动态调度算法, 它通过服务器当前所活跃的连接数来估计服务器的负载情况。当各个服务器有相同的处理性能时, 最小连接调度算法能把负载变化大的请求分布平滑到各个服务器上, 所有处理时间比较长的请求不可能被发送到同一台服务器上。

1.4 加权最少连接调度 (WLC)

加权最小连接调度 (Weighted Least-Connection Scheduling) 算法是最小连接调度的超集, 各个服务器用相应的权值表示其处理性能。服务器的缺省权值为l, 系统管理员可以动态地设置服务器的权值。加权最小连接调度在调度新连接时尽可能使服务器的已建立连接数和其权值成比例。

1.5 基于局部性的最少链接 (LBLC)

基于局部性的最少链接调度 (Locality-Based Least Connections Scheduling, 以下简称为LBLC) 算法是针对请求报文的目标IP地址的负载均衡调度, 目前主要用于Cache集群系统。算法的设计目标是在服务器的负载基本平衡情况下, 将相同目标IP地址的请求调度到同一台服务器, 来提高各台服务器的访问局部性和主存Cache命中率, 从而整个集群系统的处理能力。

1.6 带复制的基于局部性最少链接 (LBLCR)

带复制的基于局部性最少链接调度 (Locality-Based Leas Connections with Replication Scheduling, 以下简称为LBLCR) 算法也是针对目标IP地址的负载均衡, 目前主要用于Cache集群系统。它与LBLC算法的不同之处是它要维护从一个目标P地址到一组服务器的映射, 而LBLC算法维护从一个目标P地址到一台服务器的映射。

1.7 目标地址散列调度 (DH)

目标地址散列调度 (Destination Hashing Scheduling) 算法也是针对目标D地址的负载均衡, 但它是一种静态映射算法, 通过一个散列 (Hash) 函数将一个目标D地址映射到一台服务器。

1.8 源地址散列调度 (SH)

源地址散列调度 (Source Hashing Scheduling) 算法正好与目标地址散列调度算法相反, 它根据请求的源IP地址, 作为散列键 (Hash Key) 从静态分配的散列表找出对应的服务器, 若该服务器是可用的且未超载, 将请求发送到该服务器, 否则返回空。

在实际应用中, 源地址散列调度和目标地址散列调度可以结合使用在防火墙集群中, 它们可以保证整个系统的唯一出入口。

2、负载平衡算法优化设计

2.1 当前负载平衡算法的不足

IPVS在内核中的负载均衡调度是以连接为粒度的, 每个对象从服务器上获取都需要建立一个TCP连接, 一般的平衡算法主要任务是决定如何选择下一个集群节点, 然后将新的服务请求转发给它。

(1) 静态平衡算法不足

因为集群系统在运行一段时间之后, 各个真实节点的实际负载状况会与负载均衡器上的记录的产生一定的偏差[2]。如果采用简单的静态平衡算法, 将出现服务器群负载极不平衡, 有些服务器极度空闲, 有些服务器严重超载却依然收到大量的连接请求。

在以上介绍的8种算法里面, 其中轮叫调度 (RR) 、加权轮叫调度 (WRR) 、目标地址散列调度 (DH) 以及源地址散列调度 (SH) 均属于静态算法。

(2) 动态反馈平衡算法不足

动态反馈机制的实现原理是通过在负载调度器的用户空间中运行Monitor Daemon, 定时地监视和收集各个服务器的负载信息, 并根据多个负载信息算出一个综合负载值, 然后根据此值动态修改各服务器的当前权值, 并根据权值的大小确定下一个相对空闲的真实服务器[3]。由此可以看出, 动态反馈机制将会引来额外的开销, 所以我们不可能对于每个新来的服务请求, 我们都要去进行一次负载信息查询, 因此可以通过设定一个时间, 每隔一段时间就作一次节点负载的查询。在以上介绍的8种算法里面, 除上述的静态算法外, 其余的算法均属于动态算法。

2.2 算法改进思路

当客户访问集群资源时, 提交的任务所需的时间和所要消耗的计算资源是千差万别的, 它依赖于任务请求的服务类型、当前网络带宽的情况、以及当前服务器资源利用的情况等等很多因素。比如, 单纯的HTML请求和大文件的FTP下载的耗用情况是完全不同的, 以至不能更有效地实现负载均衡。一些负载比较重的任务需要进行计算密集的查询、数据库访问、很长响应数据流;而负载比较轻的任务请求往往只需要读一个小文件或者进行很简单的计算。所以, 我们要设计一种负载平衡算法, 来避免长事务的请求总被分配到一些机器上, 而是相对较均匀的分布。我们提出基于动态反馈均衡机制来控制新连接的分配, 从而控制各个服务器的负载, 其主要的设计思路如下:

(1) 在负载调度器的用户空间中运行Monitor Daemon。Monitor Daemon定时地监视和收集各个服务器的负载信息, 根据多个负载信息算出一个综合负载值, 其工作原理如图2所示。

(2) Monitor Daemon将各个服务器的综合负载值和当前权值算出一组新的权值。当综合负载值表示服务器比较忙时, 新算出的权值会比其当前权值要小, 这样新分配到该服务器的请求数就会少一些。当综合负载值表示服务器处于低利用率时, 新算出的权值会比其当前权值要大, 来增加新分配到该服务器的请求数。若新权值和当前权值的差值大于设定的阀值, MonitorDaemon将该服务器的权值设置到内核中的IPVS调度中。

(3) 过了一定的时间间隔 (如2秒钟) , Monitor Daemon再查询各个服务器的情况, 并相应调整服务器的权值;这样周期性地进行。可以说, 这是一个负反馈机制, 使得服务器保持较好的利用率。

(4) 当服务器的权值为零, 己建立的连接会继续得到该服务器的服务, 而新的连接不会分配到该服务器。系统管理员可以将一台服务器的权值设置为零, 使得该服务器安静下来, 当已有的连接都结束后, 就可以将该服务器切出, 方便对其进行维护。维护工作对系统都是不可少的, 比如硬件升级和软件更新等, 零权值使得服务器安静的功能很重要的。

通过该算法思路, 我们可以在LVS原有的负载调度算法上进行改进, 通过Monitor Deamon我们可以及时掌握服务器的运行状态, 最大程序上保证负载调度的平衡性, 提高总个LVS集群系统的性能。

3、结束语

本文分析了LVS的八种负载调度算法, 指出了其中的不足之处, 并提出了一种平衡负载算法的改进思路。Linux系统是开源代码, 在现有LVS负载调度算法上进行合理修改, 可以改进出适应性更好的负载高度算法, 以提高LVS集群系统的处理性能。

参考文献

[1]章文嵩.LVS项目介绍.URL:http://www.1inuxvirtualserver.org/zh/lvsl.html

[2]曾东海, 刘海, 金士尧.集群负载调度算法性能评价.计算机工程.2006年第32卷第11期.

本文来自 360文秘网(www.360wenmi.com),转载请保留网址和出处

【防火墙负载均衡】相关文章:

我不怕 outpost防火墙应用攻略防火墙技术04-14

防火墙05-04

防火公约防火公约06-28

森林草原防火防火访谈04-18

智能防火墙07-26

个人防火墙07-28

防火墙技术08-11

防火墙规则08-16

防火墙状态范文05-19

防火墙技术浅析02-23

上一篇:无形资产评估方法选择下一篇:现代造园艺术