账号:
密码:
最新动态
产业快讯
CTIMES / 文章 /
伺服器负载平衡器技术与架构探微
 

【作者: Veena Kondapalli】2004年12月04日 星期六

浏览人次:【20948】

伺服器负载平衡器(Server Load Balancers;SLBs)为立即平衡企业网路共享环境中服务众多可用伺服器负载(tra​​ffic)的设备。早期,负载平衡是一套位于控制区(Control plane)的「轮流平均」(round robin)软体演算法,负责管理负载量。这套演算法并没有将负载、连线类型或伺服器是否达到良好状态纳入考量。硬体的发展也已随着线路速度增加及不同类型服务的发明并进。


硬体架构的SLB虽然能在速度上符合某种程度的扩张需求,但应付现今网际网路负载上却需要比单纯的负载平衡具备更智慧的功能。新型SLB装备比先前的伺服器负载平衡器更智慧,而且具备更高的整合功能,能侦测超过64Bytes的封包(需具备IP转送侦测深度),以执行第四层(L4)到第七层(L7)的封包交换,也就是网路搜寻引擎扮演重要角色的位置。本文将描述负载平衡的必备条件、各种的伺服器负载平衡演算法以及高阶伺服器负载平衡器的特色。最后,这里也介绍网路搜寻引擎给予SLB的协助。


为何需要伺服器负载平衡?

许多资讯内容密集的应用已经到达超出单一伺服器所能提供充分处理的程度。这样的状况下,企业与服务商必须很快且顺畅地为使用者新增额外的伺服器。伺服器负载平衡使得多重伺服器表现有如单一伺服器的表现,或称为「单一虚拟服务」,毫无痕迹地在多部伺服器间分散处理用户需求。


伺服器负载平衡最重要的必备条件有:


  • ●高可用性;


  • ●可扩充性;


  • ●具备有线传输速度的效能。




《图一 服务器负载平衡器》
《图一 服务器负载平衡器》

SLB为企业资料中心提供了成本优势。 SLB不需中断虚拟伺服器群组中其他成员作业即可新增与移除伺服器。只要新增服务品质(QoS)特色,伺服器就可以随时维持运作,提供高度可用性。 SLB也允许具成本效益的扩充性,因为新的伺服器可以随时加入虚拟群组中,而不需要将旧的伺服器移除。


为了在SLB中增加有线传输速度的效能,现有处理L4到L7封包交换的负载平衡器,必须具备应用程式架构负载平衡。当执行L4交换时,就必须要执行封包的深层侦测,以确保应用封包能被送到相对的虚拟服务群组中。


如何做到负载平衡?

在IP网路中,伺服器可以依照所提供的服务或是有时根据终端用户的位置进行群组。这个群组会有一个逻辑IP目标位址,称为VIP(virtual IP address),实际上代表伺服器的阵列。每台伺服器仍保有其个别唯一的实体IP位址,其作用是让SLB导引负载量。这个实体IP位址会被纪录在SLB的交谈表(session table)中。


在企业架构中,SLB有两种使用方式,透明模式(transparent mode)以及代理模式(proxy mode),如(图一)与(图二)所示。


透明模式

在透明模式中,SLB利用修正IP目标的封包头段将封包转送给实体的伺服器。 VIP则被修改为实体伺服器的IP位址。此处的封包数值也因此需要修正。经过修改的封包则接着被转送至各个目的伺服器。这种方式被称为是「递移」(hand-off)。之后便由伺服器来建立交谈(session)并且确认(acknowledge)该请求。当伺服器送出资料时,SLB便会修改封包的来源位址成为群组的VIP,并且转送该封包到网路上。同样的,此处的封包数值需要修正。



《图二 通透SLB交换细节》
《图二 通透SLB交换细节》

这种交谈从SLB封包侦测引擎侦测TCP封包表头时开始;如果封包含有一个SYN封包,便会开始以TCP session进行交谈。此处封包表头的资料会被移除,然后被送到一个分类(classification)表单中。在这里查询(lookup)的结果会与封包表头资讯结合,并存放于资料流表单(flow table)。资料流表单不断地追踪执行中的交谈。利用设定好的负载平衡演算法,SLB会指引这个交谈的终点伺服器,这样的程序称为「联系」(binding)。实体伺服器的资讯接着会被存到一个相关的资料流表单记忆体中。如果这个封包不是SYN封包,表头资讯将被抽离,并与存放于资料流表单中的资讯比对。目标伺服器被存放于相关的资料流表单记忆体中。封包将会再依此资料被修改,然后透过通透模式传输。当收到一个FIN的封包时,这个对谈就终止,之后资料流表单中的起始与目标伺服器的资料就可以作废了。



《图三 通透性联系(Transparent Binding) 》
《图三 通透性联系(Transparent Binding) 》

代理模式

SLB以代理模式运作以应付L7密集的侦测。这种模式也称为延迟联系(delay-binding)。此时SLB终止到用户端的TCP 交谈,并且在SLB与伺服器间建立另一个交谈,将用户端与伺服器分开。这会造成延长用户端指令(request)与伺服器的回应(response)时间。封包表头分类与资料流表单在此里的作用与在透明模式中的相同。 SLB接着产生回应用户端需要的ACK以及自己的SYN封包,以建立与实体伺服器间的交谈。 SLB也会负责产生封包的序列号码。



《图四 代理SLB交换模式细节》
《图四 代理SLB交换模式细节》

SLB包含TCP接合(CP-splicing)的功能,以增加转送封包的效能。这是在透明模式与代理模式间的折衷。在启始的TCP 沟通(handshake)之后,并且也建立了资料流,封包便会直接经由伺服器转送到用户端。



《图五 代理模式延迟联系》
《图五 代理模式延迟联系》

管理资料流

当有用户端送出新指令时,SLB交换器就会执行负载平衡。这个指令将被编址于VIP,也就是代表某个虚拟的伺服器群组虚拟IP位址。 SLB的工作就是负责将所有后续的指令引导到VIP以及同一部实体伺服器上,这类决定是根据一定规则或方法而执行,称为「联系」(binding)。 SLB接着必须要将这些指令所代表的交谈引导到实体伺服器上。存放联系资讯的表单便是资料流表单(Flow table)。


转送查询(Forwarding lookups)

虽然交谈表单提供了引导交谈目标伺服器的资讯,但通常还会有一份额外的转送表单(forwarding table),是为了要更新特定伺服器IP所对应的MAC位址。当任何在L3或L2的交换转送表单更新时,便会建立额外的转送表单。


伺服器负载平衡演算法

SLB利用演算法做联系的决定。这些动作都可以透过软体在控制层(control-plane)中制订出「政策」(policies)。已设定的演算法与优先处理资讯都存放于一个分类表单中。这些资讯用来定义资料流表单中的项目。要注意的是,伺服器负载平衡仅发生于联系时(或当交谈建立指令时),并非为了接下来的交谈指令。在交谈建立后,该交谈所相关的目标资料就会被存入资料流表单中,而封包就会依照这些资讯被引导到适当的伺服器上。下列都是SLB常用的演算法,用以协助判断导引负载量到伺服器中。


每台伺服器的交谈数目

利用持续追踪在资料流表单中每台伺服器的处理项目数目就可统计出交谈(资料流)的数目。详细的作法可以在SLB中计算,以控制在伺服器阵列间交谈的分配。这个方法可以用来平衡伺服器阵列间的负载量。


轮流平均(Round-robin)或比重分配(weighted round-robin)

SLB将会依序或依比重分配顺序引导资料流,以平衡多台伺服器间的负载量。这项演算法占用SLB最少的处理程序。简单的状态机(state machine)就可以持续追踪连接埠的顺序。


应用程式

应用系统负载平衡是将特定应用程式的指令引导到特定的应用系统伺服器中。首先,应用程式可以透过L4资讯中的连接埠数目被定义。网页伺服器一般使用的连接埠号是80,FTP伺服器一般则是用20与21,SSH伺服器用22,Telnet伺服器用23等。其次,利用L7侦测就可以分辨在相同通讯埠或通讯协定下所对应的不同服务项目。这允许采用同一个HTTP协定但不同服务的负载流(streams)得以传送至不同的伺服器。


特定的用户端

特定的负载平衡是为特定用户端而设。允许特定用户端使用特定的伺服器,可以保证达到服务层级协议的服务品质。只要查看Cookie值、URI、或SSL session Ids,用户端的识别资料便可以保留在资料流表单中。 SLB可以利用URL侦察所得到的路径(URL)或档名资讯执行负载平衡。这些需要利用字串搜寻以找出特定字串。交换机可以寻找关键字「index」以引导所有进来的请求到最稳定的网页伺服器。


现今高阶SLB特色

目前所用的SLB不只提供单纯伺服器负载平衡的功能,因为许多SLB厂商已经将SLB与高阶 L3路由器整合在一起。此外,对于以交谈为主的伺服器负载平衡而言,L4到L7交换功能与其他整合特性让SLB能提供新的服务,例如QoS、安全性、服务持续性以及备援功能。还有一些额外的特点,像是L3与L4多重协定交换功能、IDS支援、VLAN支援、URL或SSL ID为基础的平衡或持续性、系统状态检查、伺服器备援检查以及GlobalSLB(GSLB)等等,都可让现有的SLB将客户的网路架构最小化。


整合L2/L3交换路由的SLB

对大部分的企业而言,L2交换机提供伺服器负载平衡装置与伺服器群(server farm)间的连接。当系统要连接SLB到提供网际网路存取的备援路由器时,就会需要一组额外的L2交换机。



《图六 一般的交换器与SLB链接架构》
《图六 一般的交换器与SLB链接架构》

这个方法相当复杂且昂贵,每个产品都是一个「功能的区块」(island of functionality),这些区块通常会有另一复制的部分以减少单一的错误发生。此外,这些分层的协定都没有彼此互动,因此发生错误事件时并不具备回复的能力。另一项缺点是SLB无法以有线传输的速度运作,因此可能会降低执行效能。


为了解决这些问题,许多厂商将L2/L3路由交换器与SLB的功能整合在一起,并拿掉设备维护方面额外负担,而交换机也具备有线线路的传输速度。这里的例子是具备L2/L3交换功能的Extreme Networks Summit7i Server Load Balancer。



《图七 整合交换器与SLB之架构》
《图七 整合交换器与SLB之架构》

L4到L7的交换功能

尽管无法实际上在L4到L7上进行「交换」的动作,但可以在L2与L3上根据较高层的资讯进行交换的动作。交换机与路由器利用L4的资讯(例如储存五种分类项目的表单)作为存取控制与分类决策之用。 SLB利用这些资讯以及其它高层资讯,将应用程式的请求导引到特定的应用伺服器上。除了以交谈为架构的伺服器负载平衡外,SLB L4到L7的交换能力与其它特点的整合让新的服务,像是QoS、安全性、持续服务以及备援等都可以整合到SLB中。


第四层到第七层的交换器允许负载能在每个交谈进行管理,保证了端点对端点的连线。每个交谈都须经过用户端与伺服器的确认才能建立。每个交谈所附带的状态资讯会影响到交换时资料转送的决定。全状态(Stateful)的资料转送是无法单由L2与L3的讯息达成。


每个进入的封包都会经过分类以控制网路讯务。要执行L4~L7的资料分类,系统就必须要检视URLs、档案形式以及其它在封包应用层中的资讯。这些结合L2与L3的资讯会被卸载到分类表单中。分类的结果可以用来决定交谈的优先权,以及受到请求的伺服器被要求使用的负载平衡演算法。


入侵侦测系统(Intrusion Detection System;IDS)的支援

SLB可以当成网路安全第一个关卡,如果任何L4与L7的封包表头中有可疑的内容,则该封包会被送至入侵侦测系统(intrusion detection systems)中,而不会变成所有负载的瓶颈。


系统状态检查(Health Check)

一般来说,在大型的伺服器群中必须要确定所有的伺服器都能全功能运作。通常透过周期性的探测(pinging)虚拟服务所连接的伺服器,并且取得该伺服器中SYN的讯号。一些通讯协定,像是思科的Dynamic Feedback Protocol(DFP)就可以在SLB中作为系统状态检查使用。


SSL 持续性

为了要根据不同的应用平衡负载,系统会需要执行深层的资讯内容侦察。资讯内容的侦察同时也需要将送入的负载解码,让表头的内容可以显示出来。 SSL加密与加速已经成为SLB前端的一部份。 SLB必须执行SSL 交握协定(SSL Handshake Protocol),接着将送入的封包解密,再依照解密所显示的要求将封包导引到适当的伺服器上。同样的,这也有助于减轻伺服器在加解密工作上的负担。


Global SLB(GSLB)

有些公司的伺服器群是根据伺服器的位置规划的。对于一个包含许多远端网站的网路来说,如果所有的远端网站都无法运作或超出负荷,那么要使用一部远端网站执行应用程式时就会受到阻碍。 Global SLB让负载平衡负载可以跨越多个网站。 GSLB会根据其DNS指令来源,进行分散式效能感知(Distributed performance awareness)以及用户端地理位置感知(client geographic awareness)以消除连线延迟。利用这套方法,执行效能最好的网站会在其能力范围之内处理最多的讯务,这也保护了效能最好的网站不会发生错误。


NSE与SLB

随着越来越多的特点整合至SLB中,其功能也变得越来越复杂。整合L2/L3的SLB交换功能需要以有线传输速度运作,并且也要支援比以往更多的封包处理量。网路搜寻引擎(Network Search Engines;NSEs)大幅降低SLB中封包处理器在处理上的需求。早期,查询(lookups)的动作是由封包处理器以软体演算法进行,并且使用DRAM或SRAM记忆体空间储存分类表单以及FIB表单。当速度晋升为最重要的需求时,原本以软体执行的查询引擎就会被NSE所取代。NSE是外接的硬体架构查询引擎。多半是以三态内容寻址记忆体(Ternary Content Addressable Memories;TCAM)为架构的搜寻引擎。


目前的NSE可以在较高的线路速率上支援高达数百万笔资料的大型表单。当有线网路速度不断提升到1/10/40 GigE时,封包处理器也需要执行更快速的查询以及更多处理功能。 NSE可以减轻封包处理器查询的负担,并且减少处理器的负担。 NSE可以减少电路板使用空间,因为单一的NSE可以支援的数百到数千笔资料的表单。多数在DRAM与SRAMs中以软体执行的查询方式都速度上的限制。NSE具备16个 全面屏蔽暂存器(global mask register),提供最多16种不同设定的屏蔽,让系统可以在NSE中储存多个表单。此外,NSE也自备屏蔽阵列,可以执行基础屏蔽。这项特色有助于执行最长字首比对(longest prefix matching)。


结论

目前与下一代的SLB已不再单纯提供负载平衡功能,其许多新功能,包括L4~L7交换功能,以及L2、L3的路由功能。有越来越多的SLB厂商将其SLB功能整合到其L2、L3交换路由器上。市场上的领导厂商,像是思科系统(Cisco Systems),便将其CSM 11500产品整合到像是Catalyst 6500与7600这类资讯内容服务交换器上。北电网路(Nortel Networks)也将其Alteon ACD交换器整合至该公司Passport 8600系列L2、L3交换路由器上。


多数SLB厂商已开始制造具备这些特色的产品。例如北电网路Alteon Application Switch 2424、F5 Networks BIG-IP 5000、Foundry Networks ServerIron XL、Extreme Networks Summit7i以及Enterasys的X-Pedition,都具备L4~L7交换与L2、L3路由的功能。一些产品同时也支援GSLB、VLAN、IDS、WAP 闸道器以及网页快取(Web Cache)功能。整体来说,下一代SLB会以线路速度运作,并以更有效率的附加特色执行许多原属于网路的工作。为了达到要求的线路速度,并且能够执行所有的功能,NSE将能大幅协助SLB。 (作者为Cypress柏士半导体资料通讯通讯部应用工程师)


延 伸 阅 读
随着上网人数不断的激增,宽频网路的普及,许多大型的内容提供者 (ICP) 所面临的最大挑战就是巨量的使用者需求。相关介绍请见「DRWS直接路由网页交换器」一文。
随着近年来网路发展迅速,众多企业利用网路的便利性及效率性,使整体企业的运作迈向 e 化的整合应用,然而 e 化的前题主要还是要配合网路实际环境。你可在「全功能负载平衡主机」一文中得到进一步的介绍。
本次调查结果,收录了102 家资安厂商,包含防毒、防火墙、入侵侦测/预防系统、负载平衡、 VPN 、 PKI 、身分认证、储存、内容过滤等资安厂商,以及提供资安专业服务的资安管理顾问公司及系统整合商等,我们一次为您搜集​​齐备。不论要找厂商或顾问,《 2004 资安厂商服务能量》满足您的需要。在「2004资安厂商服务能量大调查」一文为你做了相关的评析。
最新消息

IDT 内容检查引擎( PAX.ware 2500i )评估系统,是一个双超高速乙太网路( Gigabit Ethernet )分类评估系统,用来协助进行早期的内容检查评估,及以Intel IXDP2400 发展平台为架构的同步硬体与软体发展,可以加速并优化网路安全应用方面的封包处理。相关介绍请见「IDT与 Intel共同开发加速封包处理的高性能解决方案」一文。

Cypress Semiconductor 日前推出 Ayama 20000 系列网路搜寻引擎 (NSE) 元件样本。 Ayama 20000 系列NSE 介面已通过网路处理论坛(Networking Processing Forum, NPF) 的LA-1 规格认证,能支援各种商业网路处理器(NPU) ,其中包括英特尔的IXP2400/IXP2800/IXP2850 以及AMCC 的nP3700 。你可在「Cypress发表业界支援双LA1介面的最高效能NSE」一文中得到进一步的介绍。

全球整合通讯 IC 和网路搜寻引擎 (NSEs) 供应商 IDT(Integrated Device Technology) 宣布推出业界成本最低的 32Kx72(2 百万位元 ) 网路搜寻引擎产品 IDT 75N42102 与 IDT 75N43102 。在「IDT推出低成本的32Kx72网路搜寻引擎」一文为你做了相关的评析。

相关文章
运用nvSRAM 维持企业级SSD于电源故障时的可靠性
透过实作 掌握USB 3.0架构分层
手机萤幕触控「笔」较有智慧
透视手机触控萤幕感测器设计
家电产品触控感测应用
comments powered by Disqus
相关讨论
  相关新闻
» MIC:49%的台湾人偏好观看串流影音
» 统一资讯推食安解决方案助企业摆脱食安危机 化风险为竞争力
» SiTime专为AI资料中心设计的时脉产生器 体积缩小效能提升10倍
» 晶心、经纬??润与先楫半导体共筑RISC-V AUTOSAR软体生态
» AMD蝉联高效能运算部署的最隹合作夥伴殊荣


刊登廣告 新聞信箱 读者信箱 著作權聲明 隱私權聲明 本站介紹

Copyright ©1999-2024 远播信息股份有限公司版权所有 Powered by O3  v3.20.1.HK85G5PFJWYSTACUKQ
地址:台北数位产业园区(digiBlock Taipei) 103台北市大同区承德路三段287-2号A栋204室
电话 (02)2585-5526 #0 转接至总机 /  E-Mail: webmaster@ctimes.com.tw