近年来,随着网络及数据中心的发展,企业信息化进入一个崭新的阶段,主要表现为以下特征:
一、分散凌乱的应用都集中管理起来,对应用的可靠性提出更高的要求;
二、数据流量的猛增,出口带宽又是有限的,对访问体验提出更高要求;
三、多数据中心如何保证提供最佳的应用访问引导,实现异地灾备功能,对快速、安全及可靠性均提出更高要求;
在这样的具体需求下,应用交付产品解决方案,有效的解决企业的信息化问题。应用交付建立在现有网络结构之上,它提供了一种廉价有效的方法扩展服务器带宽和增加吞吐量,加强网络数据处理能力,提高网络的灵活性和可用性。它主要完成以下任务:解决应用的高可用性及服务器带宽的灵活扩展,提高服务器响应速度;提高服务器及其他资源的利用效率;避免了网络关键部位出现单点失效;解决多出口链路网络拥塞问题,为用户提供更好的访问体验;多数据中心服务就近提供,实现数据中心之间的灾备功能。
大型企业的应用除了用于应用、科研、管理、图书情报资料检索外,还承担着公司内外信息交流、电子邮件、公告、新闻发布,以及各种公共网络口的访问等任务。由于在网络上传输的信息不只是数字、文字和图形,还会随着应用水平的提高,逐步增加语音、活动图像及视频图像等高带宽的应用。
企业的大多数应用都有2台甚至更多台的服务器来支撑,为了确保用户能快速访问这些应用,需要对用户的请求以一种最快捷的方式进行响应,这些方式可以是让多台服务器分担请求,也可以让性能最好的服务器响应多点请求,甚至满足一些特殊的要求的应用。服务器负载均衡就在此理念下提出合理的负载解决方案。
企业通常都有几条链路,最常见的就是电信一路,联通一路。为了确保企业公司主页等Web服务器访问的高效性,确保电信用户与联通用户可随时随地通过互联网访问其公司主页等Web应用,采用多条接入链路成为最佳选择方案。
采用多链路的解决方案可以避免Internet接入中断的问题,从而保证系统接入的高有效性。同时,由于多链路解决方案能够提供更好的可用性与性能,它正在被越来越多的公司所采用。可用性的提高来自于多条链路的使用,而性能提高则是因为同时使用多条链路增加了带宽。
无论用户的数据中心内部采用多么完善的冗余机制、安全防范工具以及先进的负载均衡技术,单个数据中心的运行方式仍然不能保证关键业务可以7*24不间断运行。而为了满足处于全球范围内不同地点的用户在访问应用时可以具备相同的快速访问感受,单一的数据中心也无法实现。
基于以上两个最主要的原因,用户通过在不同物理位置构建多个数据中心的方式已经成为用户的必然选择。然而,在构建了多个数据中心后,如何通过有效手段实现多个数据中心间的协调工作,引导用户访问最优的站点,或者当某个站点出现灾难性故障后使用户仍然可以访问其他站点上的关键业务等问题成为用户最关注的问题。
根据需求描述,我们提供的解决方案需要满足以下主要功能:
服务器负载均衡:合理的分担用户的请求,让当前最佳的服务器响应用户的请求,通过健康检查手段确保应用的高可用性。
链路负载均衡:通过地址库路由,访问电信资源走电信链路,访问联通资源走联通链路,进行快速的内容传输。
全局负载均衡:通过智能DNS引导,结合多种全局负载均衡算法,将用户的访问请求引导至最佳的数据中心站点进行处理。
应用加速:通过负载均衡器做前端加速,例如Http压缩、SSL加速、Cache等,加快系统响应速度。
安全防护:确保系统的安全,能够针对SYN Cookie等网络和应用安全进行防护。
同时,应用交付产品解决方案还要考虑以下几点问题:
实用性和先进性
采用先进成熟的技术满足当前的业务需求,兼顾其他相关的业务需求,尽可能采用先进的网络技术以适应更高的数据、多媒体信息的传输需要,使整个系统在一段时期内保持技术的先进,并具有良好的发展潜力,以适应未来业务的发展和技术升级的需要。
安全可靠性
保证将来的业务应用,网络必须具有高可靠性。要对网络结构、网络设备、服务器设备等各个方面进行高可靠性的设计和建设。在采用硬件备份、冗余等可靠性技术的基础上,采用相关的软件技术提供较强的管理机制、控制手段和事故监控和网络安全保密等技术措施提高网络系统的安全可靠性。
灵活性与可扩展性
网络系统是一个不断发展的系统,所以它必须具有良好的扩展性。能够根据将来信息化的不断深入发展的需要,方便的扩展网络覆盖范围、扩大网络容量和提高网络各层次节点的功能。具备灵活扩展多种物理接口的能力、多种协议支持能力,通过软件License可平滑升级设备处理能力。
开放性/互连性
具备与多种协议计算机通信网络互连互通的特性,确保网络系统基础设施的作用可以充分发挥。在结构上真正实现开放,基于国际开放式标准,包括各种广域网、局域网、计算机及数据库协议,坚持统一规范的原则,从而为未来的业务发展奠定基础。
经济性/投资保护
应以较高的性能价格比构建网络系统,使资金的产出投入比达到最大值。能以较低的成本、较少的人员投入来维持系统运转,提供高效能与高效益。尽可能保留并延长已有系统的投资,充分利用以往在资金与技术方面的投入。
可管理性
由于系统本身具有一定复杂性,随着业务的不断发展,网络管理的任务必定会日益繁重。所以在网络的设计中,必须建立一个全面的网络管理解决方案。网络设备必须采用智能化,可管理的设备,同时采用先进的网络管理软件,实现先进的分布式管理。最终能够实现监控、监测整个网络的运行状况,合理分配网络资源、动态配置网络负载,可以迅速确定网络故障等。
方案部署如下图所示:
说明如下:
SSA采用单臂部署模式,不影响原有的网络结构。若需要访问后端的应用,用户的请求先到SSA的服务地址(VIP),由SSA根据健康检查情况及负载算法,将请求均衡到后端的服务器上,根据用户的业务情况,可能需要开启连接保持及源地址转换功能。
为提高应用的访问速度,可开启连接复用、压缩及缓存功能。为保证设备的高可用性,采用双机部署,确保在一台设备出现故障时,由另一台设备及时接管业务处理。
4.1.2.1 SLB的工作模式
服务器负载均衡可以以两种模式:反向代理模式及直接转发模式。
(1)反向代理模式
这种代理方式与普通的代理方式有所不同,标准代理方式是客户使用代理访问多个外部服务器,而这种代理方式是多个客户使用它访问内部服务器,因此也被称为反向代理模式。
反向代理模式的优点:可以采用单臂的结构部署;可以通过连接池技术增强系统性能。
反向代理模式的局限性:由于有些场景需要对源地址进行转换,报文到达服务器后,看到的是转换后的地址,此时无法记录哪些IP的客户端曾进行访问。解决办法:可以在用户的HTTP包头中加入X-Forwarded-For字段,用它记录客户端的IP地址。
(2)直接转发模式
直接转发模式是指在转发用户请求时,透明地将客户端的连接定向到特定的服务器上,即用户的源IP地址对服务器是透明的,服务器可以知道哪个客户对其进行了访问。
4.2.2.2 SLB的负载均衡算法
支持多种服务器负载均衡算法,包括:轮循、加权轮询、最少连接算法、响应时间算法、哈希算法、优先级算法等。此外实际服务器可以被分配不同的加权值来调整被分配的流量。比如性能高的大型服务器可配置较大的加权值,而为性能较低的小型服务器设置较小的加权值。为了避免服务器因过载而崩溃,可为实际服务器指定最大连接阈值来避免该服务器过载。任何服务器可被指定为另一台服务器的备份服务器或溢出服务器,从而进一步保证了应用可用性。
一、轮询(Round Robin):按顺序将连接分配给一个服务组中的服务器。轮询方式对所有服务器同等对待,而与连接的数量或响应时间无关。该算法相对简单,运行稳定。
二、加权轮询(Weighted Round Robin):加权轮询算法根据每台服务器设定的加权值来分配请求,服务器收到的连接数与其权值成正比。
三、最少连接(Least Connection):最少连接是一种动态调度算法,它通过检测服务器与设备建立的连接数来估计服务器的负载情况,并将新的连接请求分配到当前连接数最小的服务器。
四、加权最小连接(Weighted Least Connection):加权最小连接是与最小连接算法相似,不同之处在于分配连接时需要考虑当前服务器的权重值。
五、优先级(Priority):在这种方式下,设备会将请求优先发送给优先级较高的服务器,当高优先级的服务器出现故障时,才将请求发送给优先级较低的服务器。
六、最快响应时间(Fastest Response Time):设备会检测与各服务器建立TCP连接的时间,并选择响应时间最短的服务器发送请求。IP地址哈希(IP Hash):设备根据源、目的IP地址的Hash值进行负载均衡。
七、URL哈希(URL Hash):设备根据Web请求中URL的Hash值来选择服务器,这种算法能够保证相同的URL请求转发到相同的服务器进行处理。在采用Cache服务器的环境中,能够提高Cache服务器的命中率。
(2)会话保持(Persistent):从一个特定的客户端发出的请求都被分配到一个实服务组中的同一个实服务器上进行处理。主要包括:
一、基于源IP地址的会话保持:将同一个源IP地址的连接或者请求认为是同一个用户,根据会话保持策略,在会话保持有效期内,将这些发自同一个源IP地址的连接/请求都转发到同一台服务器。
二、基于Cookie的会话保持:利用HTTP协议中的Cookie功能来实现会话保持功能。当客户端的请求中带有SSA设备设置的Cookie信息,则设备根据Cookie中的信息来选择服务器;当客户端的请求中没有Cookie信息,则设备按照算法选择服务器,同时,在服务器响应的response头部中,插入Cookie信息来实现会话保持。
三、基于目的IP的会话保持:将同一个目的IP地址的连接或者请求,根据会话保持策略,在会话保持有效期内进行会话保持。
四、基于SSL ID的会话保持:当SSL会话建立时,会产生Session ID,该Session ID在系统中是唯一的,可以应用该ID值来进行会话保持。当用户想与该服务器再次建立连接时,可以通过会话中的Session ID识别该用户并进行会话保持。
(3)SLB健康检查
通过对服务器的实时健康检查,保证数据流量会自动绕过故障服务器或不可用服务器。当检测到服务器重新恢复正常以后,将使该服务器可以自动回到服务器群之中,所有这些服务器故障的处理,对进行操作的用户是完全透明的。
对服务器的健康检查,可采用三种方式:
一、L3:通过ICMP协议检查系统当前的健康状态。
二、L4:通过向TCP/UDP端口发送连接请求,检查当前应用端口的健康状态。
三、L7:通过向应用(如:HTTP, HTTPS, FTP, RTSP, SMTP, POP3, SNMP, DNS, RADIUS, LDAP发送指定的代码并判断返回值确定当前应用的健康状态。
四、基于脚本的健康检查:根据具体的应用进行自定义脚本检查,能够对服务进行深度健康检测。
方案部署如下图所示:
说明如下:
SSA采用路由模式,部署在出口,外网有多条不同运营商链路,为保证设备的高可用性,采用双机部署,确保在一台设备出现故障时,由另一台设备及时接管业务处理。对于内网用户访问外网资源,按照地址库选路策略,访问电信资源走电信链路,访问联通资源走联通链路等,保证用户的访问体验。可以通过策略路由强制流量通过某个ISP的链路,或在某条链路失效时,所有流量仍可以经过另一条链路正常进出,以保证系统的提供服务的不间断性。
通过链路负载均衡功能,能够对用户的多链路的网络应用提供基于出站和入站的链路负载分担功能,解决多链路下流量分担的问题,当链路故障时可实现链路的自动切换,保持对终端用户的透明。
针对出站流量:对出站流量进行策略优先级的划分,保证应用和流量的持续性。最高级别的路由为策略路由,可针对目的地址目的端口、源地址源端口进行链路选择;紧跟着的为地址库路由,根据运营商地址库选路,智能分配流量;其次为静态路由。例如需要内网A段用户从isp1链路出去和B段用户isp2链路出去,可以针对两段用户所在的IP地址段做两条策略路由即可,这样可以充分利用和规划链路的带宽,节省有限的带宽资源。
若某条链路的流量超过其带宽限制,可以启用链路带宽保护,将部分流量引导至带宽利用率较低的其它链路上,可保证用户的流量基本均匀。
对于内网的DNS,由于用户大多使用DHCP分配,所有用户的DNS地址可能相同,造成解析地址为同一运营商,使访问流量不均匀。针对此场景,可使用DNS代理功能,使其解析地址按照链路带宽基本成比例分配,保障链路流量均匀分配。
针对入站流量:通过解析用户DNS请求报文的源地址,智能DNS解析,通过基于地理位置的负载均衡算法,返回最佳的地址给客户端,客户端以此地址为目的地址进行访问,使得电信用户通过电信链路到达设备进而访问应用,联通用户通过联通链路到达设备进而访问应用。对于其它不属于联通与电信地址范围的站点,用户访问可以将默认的算法定向到某一个性能较好的ISP链路上,也可以根据加权轮询的算法,为每个ISP的IP地址设定一个加权值,并根据加权值顺序的选择多个ISP的IP地址作为每次用户解析请求的返回值,权值大的ISP的IP地址被选择的次数多。通过此算法,用户可以在多条带宽不同的链路间合理分配流量,带宽高的链路权值大,因此承载的流量就高。
方案部署如下图所示:
说明如下:
一、两个数据中心分别部署两台SSA设备;整个系统采用全冗余网络连接方式设计,来保证系统的高可用性和高可靠性。
二、SSA设备以路由模式接入各个数据网络之中,负责将用户的DNS访问请求,引导用户使用最快的链路进行访问站点;同时负责两条线路的健康状态的检查,一旦检测到线路的中断,则停止相应线路的地址解析。
三、在各数据中心SSA上,先配置公网链路与虚拟服务对应关系,再设置主、备数据中心设备之间站点、链路以及虚拟服务的健康检查机制,最后设定用户访问请求的分配策略;就可以实现将用户访问请求引导至最佳的数据中心,在提升用户访问体验的同时,实现数据的异地灾备。
全局负载均衡解决方案,能够通过唯一的域名的方式为所有发布相同服务的数据中心提供统一的入口,根据管理人员预先设定的负载策略将用户的访问请求分配到不同数据中心之上,保障用户的访问体验。
当用户通过域名方式进行访问时,可以根据用户使用的Local DNS位置进行就近性计算,将最佳站点的IP地址解析给用户。
就近性计算方法:为了保障当全球范围的用户在访问资源时,能够被引导至“最优”的数据中心,全局负载均衡设备需要对用户到各站点之间的距离、延时及当前数据中心的负荷等众多因素进行分析判断。全局负载均衡支持静态和动态两种就近性方法,两种方式可以并存使用。
静态就近性:SSA中都内置了各个全球的IP地址形成地址库,并能够实现实时更新;当用户访问目标IP属于哪个运营商(或地区),就为用户选择这个运营商(或地区)的数据中心(或链路)。当用户请求没有包含设备的地址库中时,SSA将会主动查询该地址所属地区(或运营商),匹配之后再根据静态就近性为用户选择数据中心。如果上述两种方式都无法判别用户请求IP所属地区(或运营),则直接使用动态就近性。
动态就近性:当用户发起访问请求时,SSA可以通过综合考虑各数据中心与请求地址之间的路由节点数量、数据传输的延迟和数据中心链路的实时负荷,准确计算出最佳路径,将用户引导至最佳的数据中心。
本解决方案可以为客户带来以下收益:
一、SLB/LLB/GSLB/Cache等功能无缝集成,方便企业未来功能扩展,降低客户建设投入;
二、服务器灵活分担请求,保证服务器的压力正常,业务正常;
三、实时监控服务器及链路的健康状态,并智能选择健康的节点,保证业务正常;提供连接复用技术与HTTP页面压缩功能,加快应用系统的响应速度,提高服务器系统处理能力,既能降低数据中心负荷,也能提升访问体验;
四、支持基于内容的安全防护,一定程度上保护应用系统的安全性;内网访问外网能对访问做最优化处理,以节省出口带宽及链路状况;
五、实现多数据中心的全局负载均衡,提升系统的可靠性及安全性;
六、双机部署,确保应用交付产品本身的高可靠性和高性能;
七、丰富的统计报表,支持导出,便于作分析以及商业决策。智能简洁的管理界面与方式,降低运维复杂度。