梭子鱼服务器负载均衡BLB通用项目方案.docx
《梭子鱼服务器负载均衡BLB通用项目方案.docx》由会员分享,可在线阅读,更多相关《梭子鱼服务器负载均衡BLB通用项目方案.docx(24页珍藏版)》请在冰豆网上搜索。
梭子鱼服务器负载均衡BLB通用项目方案
服务器系统负载均衡项目建议书
梭子鱼负载均衡机通用方案
文档修订记录
标题
服务器系统负载均衡项目建议书--梭子鱼负载均衡机通用方案
文档类型
产品文档
☐
设计方案
☒
实施文档
☐
配置文档
☐
测试文档
☐
其他
☐
当前版本
V1.0
文档作者
梭子鱼(中国)
文档审阅
创建日期
2012/5/11
文档名称
服务器系统负载均衡项目建议书--梭子鱼负载均衡机通用方案
更新者
更新内容及版本
更新时间
潘渊
文档建立
2012/5/14
文档说明
此文档是由梭子鱼公司(中国)于2012/5/11制定的内部文档。
本文档仅就BarracudaNetworks内部与相关合作伙伴和BarracudaNetworks最终用户使用.
版权说明
本文档中出现的任何文字叙述、文档格式、插图、照片、方法、代码等内容,除由特别注明,版权均属于BarracudaNetworks所有,受到有关产权及版权法保护。
任何个人、机构未经BarracudaNetworks书面授权许可,不得以任何方式复制或引用本文档的任何片断。
目录
第一章前言4
第二章梭子鱼负载均衡机的技术优势5
2.1功能全面的服务器负载均衡解决方案5
2.2梭子鱼负载均衡机的基本原理6
2.3梭子鱼负载均衡机的特色6
2.4梭子鱼负载均衡机的功能8
2.4.1负载算法8
2.4.2服务器健康检查10
2.4.3会话保持10
2.4.4内建IPS防御攻击11
2.4.5梭子鱼的高可用性14
第三章XXX有限公司负载均衡机需求分析及项目方案15
3.1客户网络概况15
3.2梭子鱼解决方案15
3.3梭子鱼型号的选择16
3.4梭子鱼产品安装部署16
第四章负载均衡机产品国内外评测19
4.1微软认证合作伙伴19
4.2奖项资质19
第五章梭子鱼客户情况20
第一章前言
随着宽带网络技术的不断发展以及网络基础设施的完善,Internet在国内得到迅速的发展,短短几年中,国内上网人数突破了1.3亿。
根据中国互联网络信息中心2007年1月公布的数据,我国上网计算机数约5940万台,其中宽带上网计算机为3530万台,拨号上网计算机为1820万台。
我国上网用户人数约13700万人,其中宽带上网的用户人数约为9070万,拨号上网的用户人数约为3900万,同时使用宽带与拨号的用户人数为565万。
除计算机外同时使用其它设备(移动终端、信息家电等)上网的用户人数为1700万。
不少地方如北京上海广州等网民数站到总人口的1/3。
互联网已经彻底地成为了人们工作、生活的一部分。
对于提供互联网服务的服务器而言,出现了如下变化:
A.访问量大量增加
网络用户的所有请求都涌向源网站,很多网络服务因为访问次数爆炸式地增长而不堪重负,不能及时处理用户的请求,导致用户进行长时间的等待,大大降低了服务质量。
如何建立可伸缩的网络服务来满足不断增长的负载需求已成为迫在眉睫的问题。
B.内容与功能的增加
例如:
现在Web服务中越来越多地使用CGI、动态主页等CPU密集型应用,这对服务器的性能有较高要求。
此外,企业网站的互动和多媒体内容增多,企业网站上大量Flash,图片内容影响网站响应速度;企业宣传活动及新产品发布期间,易产生"数据风暴"影响网站服务及新产品的推广宣传。
再如:
流媒体作为网络内容的新生代,已经被越来越多的内容提供商和企业所采用,用户将更多的从网络上获取流媒体的内容。
会议、研讨会、娱乐、体育活动直播、网上教育、网上影院等更加丰富多样的流媒体体现形式也将进一步走进网络用户的生活,随着宽带时代的到来,宽带用户渴望看到大量流媒体内容。
C.安全性增加
由于网站的所有内容都是以数字的形式流转于Internet之上,因此,在网络运营中不可避免地存在着由Internet的自由、开放所带来的信息安全隐患。
Internet上横行的黑客、肆虐的病毒使用户感觉到目前的网络环境缺乏安全。
根据中国互联网络信息中心(CNNIC)2007年1月公布的《中国互联网络发展状况统计报告》显示,用户认为目前网上交易存在的最大问题是"安全性得不到保障",排在了第一位,由此可见用户对网络安全性的忧虑程度。
因此,对用硬件和软件方法实现高可伸缩、高可用网络服务的需求不断增长,这种需求可以归结以下几点:
∙可扩展性(Scalability),当服务的负载增长时,系统能被扩展来满足需求,且不降低服务质量。
∙高可用性(Availability),尽管部分硬件和软件会发生故障,整个系统的服务必须是每天24小时每星期7天可用的。
∙可管理性(Manageability),整个系统可能在物理上很大,但应该易于管理。
∙价格有效性(Cost-effectiveness),整个系统实现是经济的、高性价比的。
第二章梭子鱼负载均衡机的技术优势
2.1功能全面的服务器负载均衡解决方案
主要功能
∙L4/L7负载均衡
∙支持IPV6
∙提供硬件和虚拟两种产品交付方式
∙全局负载均衡(GSLB)
∙通过微软认证:
Exchange2010,LyncServer2010,OfficeCommunicationServer(OCS)2007
∙支持微软远程桌面服务
∙SSL卸载
∙HTTP缓存&压缩
∙内容路由
∙TCP池复用
∙SIP负载均衡
2.2梭子鱼负载均衡机的基本原理
针对Internet的飞速发展给企业网络带宽和服务器带来的这种巨大挑战,企业有两种解决思路。
一种方法是增加服务器的性能,例如采用对称多处理系统(SymmetricMulti-Processor,简称SMP),该系统是由多个对称的处理器、和通过总线共享的内存和I/O部件所组成的计算机系统,具有强大的处理能力。
但是随着业务量的增大,这种服务器升级时具有明显的不足。
一是升级过程繁琐,机器切换会使服务暂时中断,并造成原有计算资源的浪费;二是越往高端的服务器,所花费的代价越大;三是SMP服务器是单一故障点(SinglePointofFailure),一旦该服务器或应用软件失效,会导致整个服务的中断。
另一种思路是采用服务器集群实现高可伸缩的、高可用网络服务的有效结构。
这种方案通过一组服务器分担任务,可以获得很高的整体性能。
也易于扩展,性价比也很高。
但是简单的服务器机群在实现可伸缩的网络服务存在许多问题。
例如透明性(Transparency)问题,用户希望由多个独立计算机组成的松藕合的集群系统构成一个虚拟服务器;客户端应用程序与集群系统交互时,就像与一台高性能、高可用的服务器交互一样,客户端无须作任何修改。
部分服务器的切入和切出不会中断服务,对用户也是透明的。
再比如流量的均衡,管理的便捷性。
这些要求是服务器集群无法实现的。
梭子鱼负载均衡机(BarracudaLoadBalancer)提供了另外一个思路。
利用梭子鱼负载均衡机。
将一组服务器构成一个实现可伸缩的、高可用网络服务的虚拟服务器。
其体系结构如下图,
在一组服务器的前端安装梭子鱼负载均衡机,所有外部的请求将先连接在梭子鱼负载均衡机VIP上(也称为虚拟服务器上),梭子鱼执行NAT,无缝地将网络请求调度到真实服务器上。
从而使得服务器集群的结构对客户是透明的,客户访问集群系统提供的网络服务就像访问一台高性能、高可用的服务器一样。
客户程序不受服务器集群的影响不需作任何修改。
系统的伸缩性通过在服务机群中透明地加入和删除一个节点来达到,通过检测节点或服务进程故障和正确地重置系统达到高可用性。
2.3梭子鱼负载均衡机的特色
梭子鱼负载均衡机提供强大、易于使用、成本效益高的企业级服务器负载均衡设备,是当前负载均衡设备中最活跃、最易推广、最易普及的服务器负载均衡机品牌。
其设计遵循以下原则:
可扩展性:
IT技术日新月异,一年以前最新的产品,现在或许已是网络中性能最低的产品;负载均衡机应能够根据信息化的不断深入发展的需要,方便的扩展(或裁剪)服务器,以满足企业业务扩展的需要。
需具备支持多种通信媒体,能均衡不同操作系统和硬件平台之间的负载,能均衡HTTP、邮件、新闻、代理、数据库、防火墙和 Cache等不同服务器的负载,并且能以对客户端完全透明的方式动态增加或删除某些资源。
梭子鱼负载均衡机使用TCP/UDP协议和IP负载平衡调度,支持所有基于IP的应用程序负载均衡。
包括:
●高流量的网站,如HTTP,HTTPs,FTP,流媒体等。
●使用瘦客户端的主机应用程序,如:
Citrix、Windows终端服务。
●其他IP服务,如:
SMTP、DNS、TFTP、RADIUS、LDAP等。
灵活性:
均衡解决方案应能灵活地提供不同的应用需求,满足应用需求的不断变化。
在不同的服务器群有不同的应用需求时,梭子鱼可以提供多样的均衡策略提供更广泛的选择。
梭子鱼负载均衡机部署灵活,支持路由模式、桥接模式、服务直接返回模式。
路由模式部署灵活,约60%的用户采用这种方式部署;桥接模式不改变现有的网络架构;服务直接返回(DSR)比较适合吞吐量大特别是内容分发的网络应用。
约30%的用户采用这种模式。
可靠性:
在对服务质量要求较高的站点,负载均衡解决方案应能为服务器群提供完全的容错性和高可用性。
但在负载均衡设备自身出现故障时,应该有良好的冗余解决方案,提高可靠性。
使用冗余时,处于同一个冗余单元的多个负载均衡设备必须具有有效的方式以便互相进行监控,保护系统尽可能地避免遭受到重大故障的损失。
梭子鱼负载均衡机提供强大的企业级的解决方案,它可以用于为任何基于IP的应用程序提供IP负载均衡,它监控服务器的健康状态,并在服务器故障时自动容错,而梭子鱼本身还可以部署成主/次模式,如果主设备故障,次负载均衡设备能自动切换成主设备,最大程度的减小了整个负载均衡服务器集群的风险。
易管理性:
不管是通过软件还是硬件方式的均衡解决方案,我们都希望它有灵活、直观和安全的管理方式,这样便于安装、配置、维护和监控,提高工作效率,避免差错。
梭子鱼(Barracuda)提供给用户是非常易于使用的产品。
用户打开包装箱,把梭子鱼安装在19英寸标准机架上,进行简单的配置后梭子鱼立刻开始提供高性能的负载均衡服务。
这一过程仅仅只需要十分钟。
梭子鱼(Barracuda)提供给用户的是一种“即插即忘”式的产品,无需用户进行复杂的系统操作,管理员通过WEB浏览器就可以对设备进行远程的管理,一旦系统调整完毕,梭子鱼将自动监控服务器的状态,自动分配流量、自动冗余、自动接收升级入侵检测代码,管理员无需经常登录系统进行管理
2.4梭子鱼负载均衡机的功能
2.4.1负载算法
梭子鱼负载均衡机利用虚拟IP地址(VIP由IP地址和TCP/UDP应用的端口组成,它是一个地址)来为用户的一个或多个目标服务器(称为节点,即真实服务器RealServer的IP地址和TCP/UDP应用的端口组成,它可以是私网地址)提供服务。
因此,它能够为大量的基于TCP/IP的网络应用提供服务器负载均衡服务。
梭子鱼负载均衡机连续地对目标服务器进行L4到L7合理性检查,当用户通过VIP请求目标服务器服务时,梭子鱼负载均衡机根椐目标服务器之间性能和网络健康情况,选择性能最佳的服务器响应用户的请求。
能够充分利用所有的服务器资源,将所有流量均衡的分配到各个服务器,我们就可以有效地避免“不平衡”现象的发生。
梭子鱼负载均衡机是一台对流量和内容进行管理分配的设备。
它提供7种灵活的算法将数据流有效地转发到它所连接的服务器群。
而面对用户,只是一台虚拟服务器。
用户此时只须记住一台服务器,即虚拟服务器。
但他们的数据流却被梭子鱼负载均衡机灵活地均衡到所有的服务器。
这7种算法包括:
轮询(RoundRobin):
轮询算法就是顺序循环将请求依次顺序循环地连接每个服务器。
在此过程中,如果梭子鱼检测到某个服务器第二到第7层的故障,梭子鱼将把该服务器从顺序循环队列中拿出(称为切出服务),不参与下一次轮询,直到其恢复正常。
该算法相对简单,其优点是简洁,它无需记录当前所有连接的状态,所以它是一种无状态调度。
但是由于它假设所有服务器处其理性能均相同,不管服务器的当前连接数和响应速度。
因此不适用于服务器组中处理性能不一的情况,而且当请求服务时间变化比较大时轮询,轮询算法容易导致服务器间的负载不平衡。
加权轮询算法(WeightedRound-Robin):
加权轮询算法可以解决服务器间性能不一的情况,它用相应的权值表示服务器的处理性能,服务器的缺省权值为1。
假设服务器A的权值为1,B的权值为2,则表示服务器B的处理性能是A的两倍。
加权轮叫调度算法是按权值的高低和轮询方式分配请求到各服务器。
权值高的服务器先收到的连接,权值高的服务器比权值低的服务器处理更多的连接,相同权值的服务器处理相同数目的连接数。
例如,有三个服务器A、B和C分别有权值4、3和2,则在一个调度周期调度序列为AABABCABC。
加权轮询调度算法还是比较简单和高效。
加权轮询调度也无需记录当前所有连接的状态,所以它也是一种无状态调度。
当请求的服务时间变化很大,单独的加权轮询调度算法依然会导致服务器间的负载不平衡。
在此过程中,如果梭子鱼检测到某个服务器第二到第7层的故障,梭子鱼将把该服务器从顺序循环队列中拿出(称为切出服务),不参与下一次轮询,直到其恢复正常。
最小连接算法:
最小连接算法(Least-ConnectionScheduling)是把新的连接请求分配到当前连接数最小的服务器。
最小连接调度是一种动态调度算法,它通过服务器当前所活跃的连接数来估计服务器的负载情况。
调度器需要记录各个服务器已建立连接的数目,当一个请求被调度到某台服务器,其连接数加1;当连接中止或超时,其连接数减一。
在此过程中,如果梭子鱼检测到某个服务器第二到第7层的故障,梭子鱼将把该服务器从顺序循环队列中拿出(称为切出服务),不参与下一次轮询,直到其恢复正常。
当各个服务器有相同的处理性能时,最小连接调度算法能把负载变化大的请求分布平滑到各个服务器上,所有处理时间比较长的请求不可能被发送到同一台服务器上。
但是,当各个服务器的处理能力不同时,该算法并不理想,因为TCP连接处理请求后会进入TIME_WAIT状态,TCP的TIME_WAIT一般为2分钟,此时连接还占用服务器的资源,所以会出现这样情形,性能高的服务器已处理所收到的连接,连接处于TIME_WAIT状态,而性能低的服务器已经忙于处理所收到的连接,还不断地收到新的连接请求。
加权最小连接算法:
加权最小连接(WeightedLeast-ConnectionScheduling)算法是最小连接调度的超集,各个服务器用相应的权值表示其处理性能。
服务器的缺省权值为1,系统管理员可以动态地设置服务器的权值。
加权最小连接调度在调度新连接时尽可能使服务器的已建立连接数和其权值成比例。
在此过程中,如果梭子鱼检测到某个服务器第二到第7层的故障,梭子鱼将把该服务器从顺序循环队列中拿出(称为切出服务),不参与下一次轮询,直到其恢复正常。
观察模式:
这种方式基于动态反馈负载均衡机制,来控制新连接的分配,从而控制各个服务器的负载。
调度器根据单位时间内服务器收到新连接数与平均连接数的比例,计算服务器的负载,并依此计算出新的权重进行流量的分配。
CPU动态性能分配:
调度器通过SNMP向各个服务器查询服务器当前CPU负载LOADi,并依此计算出新的权重进行流量的分配。
URL测试动态性能分配:
调度器向服务器发送测试页面,根据服务器响应时间,计算新的权重进行流量分配。
这种方式能比较好的反映服务器上请求等待队列的长度和请求的处理时间。
如果服务器设定的时间内没有响应,梭子鱼将认为服务器不可达,该服务器的权值将设为零,即将服务器切出。
直至恢复。
网络中的实际流量呈波浪型发生的,在一段较长时间的小流量后,会有一段大流量的访问,然后是小流量,这样跟波浪一样周期性地发生。
当出现流量“峰值”时,如果能调配所有服务器的资源同时提供服务,所谓的“峰值堵塞”压力就会由于系统性能的大大提高而明显减弱。
由于梭子鱼优秀的负载均衡能力,所有流量会被均衡的转发到各个服务器,即组织所有服务器提供服务。
这时,系统性能等于所有服务器性能的总和,远大于流量“峰值”。
这样,即缓解了“峰值堵塞”的压力,又降低了为调整系统性能而增加的投资。
用户可以根据任意制订的规则将客户端的访问导向到不同的服务器群组。
2.4.2服务器健康检查
梭子鱼负载均衡机支持真实服务器和服务的自动发现,从而方便部署新的服务器。
对常用的服务,用户不需要手动设置端口,梭子鱼能自动检测在指定的服务器上有哪些服务正在运行,节省部署和配置的时间。
梭子鱼还支持OSI模型二到七层的healthchecking。
特别是EAV和ECV功能:
●基础网络检查 Ping
●四层应用检查 TCP/UDPport
●扩展内容查证ECV
ECV是一种非常复杂的服务检查,用于确认应用程序能否对请求返回对应的数据。
如果一个应用对该服务检查做出响应并返回对应的数据,梭子鱼就将该服务器标识为健康状态。
如果服务器不能返回相应的数据,则将该服务器标识为宕机,并将其切出服务。
宕机一旦修复,梭子鱼就会自动发现该服务器已经恢复健康,并将其列入轮询序列。
扩展应用验证EAV
EAV是另一种服务检查,用于确认运行在某个服务器上的应用能否对客户请求作出响应。
梭子鱼Web管理界面上设置了一组被称作外部服务检查者的客户程序,该程序为用户提供完全客户化的服务检查功能。
例如,DNS_TEST程序,用户可以输入需要查询的主机名及匹配值,如果真实服务器返回的值与匹配值相同,则表明该服务正常。
梭子鱼预定义的扩展验证(EAV)检查包括:
DNS、SPAMFIREWALL、SNMP、POP、IMAP、SMTP、SIMPLE_HTTP、SIMPLE_HTTPS、HTTP_SLOW、HTTP_TEST。
2.4.3会话保持
梭子鱼负载均衡机经过专门设计,可以为关键业务站点提供高可用性和智能负载平衡。
除这些能力外,还可以识别用户固定访问特定服务器的要求,以支持用户重新建立到特定服务器的连接。
在这些条件下,梭子鱼负载均衡机会放弃负载平衡算法以支持对话持续性。
举例来说,如果某位用户连接到了一台服务器上,那么我们肯定希望该用户在将来再次连接时将仍可连接到该台服务器上。
当该服务器存有用户相关数据,并且这些数据并不与其它服务器动态共享时,持续性就显得十分有必要了。
例如,让我们假设一位用户在某网站采购了一“购物车”的商品,然后还未结帐就离开了该网站。
如果在其重新登录网站后,BIG-IP应用交换机将客户请求路由至不同的服务器,那么新的服务器对该用户的数据和其所购买的商品将一无所知。
当然,如果所有服务器都在同一个后台数据库服务器中存储用户信息及其选购商品的话,那么一切就不成问题了。
但是如果网站不是这样设计的,那么具体的购物车数据就只能存储在特定的服务器上。
这样,BIG-IP应用交换机就必需选择用户曾连接上的那台服务器,以无缝地处理用户请求。
此外,会话保持的功能将减少新建连接的数量,这将有助于减小负载均衡机系统开销。
2.4.4内建IPS防御攻击
防御攻击包括两个层面,第一个层面如前述服务器健康检查,负载均衡设备通过精确探测服务器的健康状态,再服务器处理能力达到饱和前可以自动的屏蔽新建链接,以免服务器可能由于在瞬间接受超过服务器吞吐能力的数据流而直接导致系统崩溃,甚至导致数据丢失或客户资料遗失。
从而达到以下目的:
∙确保所有IP应用的高可用性和正常运行时间
∙创建一个可控的执行点以对所有流量进行前瞻性安全控制
∙使服务器和应用能够及时准确地做出响应
∙无需额外硬件、软件或其它IT资源
∙轻松适应未来不断变化的业务需求
第二个层面是在负载均衡设备上建立相应的安全机制。
首先是端口的屏蔽。
采用负载均衡设备后,用户无法直接于服务器联系,必须与负载均衡设备上建立的虚拟服务器建立链接,所以黑客无法获得服务器的真实地址,增加了黑客攻击的难度。
同时,由于虚拟服务器对外只提供应用服务端口,其余端口负载均衡机均不响应且直接DropPacket,从而有效地屏蔽了黑客攻击的第一步——端口扫描。
甚至可以将虚拟服务器的ARP响应屏蔽,从而使黑客无法PING通虚拟服务器。
由于对外只提供必须的应用端口,因而可以有效地屏蔽常用黑客攻击手段。
其次是对于DoS/DDoS攻击,梭子鱼能从内核级就予以屏蔽,具体实施如下:
1.Synflood:
该攻击以多个随机的源主机地址向目的主机发送SYN包,而在收到目的主机的SYNACK后并不回应,这样,目的主机就为这些源主机建立了大量的连接队列,而且由于没有收到ACK一直维护着这些队列,造成了资源的大量消耗而不能向正常请求提供服务。
梭子鱼的策略:
梭子鱼采用特有的SYNproxy功能,所有与虚拟服务器建立HTTPSYN的请求均由梭子鱼代替服务器响应,梭子鱼并不将SYN请求发送到服务器。
对方响应了梭子鱼的ACK,并真正发送HTTPGET请求时,梭子鱼才与服务器建立链接并发送HTTPGET请求。
所以普通的Synflood只会和梭子鱼通讯,无法攻击到服务器。
2.PingofDeath
根据TCP/IP的规范,一个包的长度最大为65536字节。
尽管一个包的长度不能超过65536字节,但是一个包分成的多个片段的叠加却能做到。
当一个主机收到了长度大于65536字节的包时,就是受到了PingofDeath攻击,该攻击会造成主机的宕机。
梭子鱼的策略:
如前所述,在梭子鱼上可以将虚拟服务器的ARP屏蔽,ICMP包系统根本不响应。
其次,虚拟服务器的ICMP响应是由梭子鱼的管理进程提供响应,当管理进程繁忙时,系统会自动降低虚拟服务器的ICMP响应的优先级甚至不响应,而管理进程与服务器负载均衡是两个完全不同的进程,在梭子鱼上其内存和CPU使用时间是严格分离的,所以PingofDeath丝毫不会影响服务器负载均衡,也就是不会影响真正对外的服务响应端口。
3.IP欺骗DoS攻击
这种攻击利用RST位来实现。
假设现在有一个合法用户(1.1.1.1)已经同服务器建立了正常的连接,攻击者构造攻击的TCP数据,伪装自己的IP为1.1.1.1,并向服务器发送一个带有RST位的TCP数据段。
服务器接收到这样的数据后,认为从1.1.1.1发送的连接有错误,就会清空缓冲区中建立好的连接。
这时,如果合法用户1.1.1.1再发送合法数据,服务器就已经没有这样的连接了,该用户就必须从新开始建立连接。
攻击时,伪造大量的IP地址,向目标发送RST数据,使服务器不对合法用户服务。
梭子鱼的策略:
如前所述,梭子鱼的SYNproxy功能,将TCP的SYN/ACK/SYNACK三段握手作为判断合法用户的依据,同时所有的SYN/ACK/SYNACK均不通服务器链接,只有当用户发送HTTPGET请求时再与选定的服务器建立链接,所以RST只是拆除与梭子鱼建立链接,并不影响合法用户访问服务器。
4.带宽DoS攻击
如果黑客的连接带宽足够大而服务器又不是很大,黑客可以通过发送大量请求,来消耗服务器的缓冲区消耗服务器的带宽。
这种攻击就是人多力量大了,配合上SYN一起实施DoS,威力巨大。
梭子鱼的策略:
这种攻击发生时,从站点的路由器、交换机、防火墙到服务器的带宽均有可能被占满。
所以如果发生该种攻击,