01-应用负载特性介绍
本章节下载: 01-应用负载特性介绍 (589.66 KB)
本帮助主要介绍以下内容:
· 应用负载功能简介
○ 基本概念
○ 工作流程
○ 调度策略
○ 调度算法
○ 健康检测
○ 会话保持
○ 业务层级
· 应用负载部署模式
○ 网关模式
○ 旁挂模式
○ 三角传输模式
· 应用负载高可靠性
○ 主备模式
○ 双主模式
○ 集群模式
· 配置指南
在企业或大型数据中心场景下,需要多台服务器同时对外提供服务。应用负载技术能将用户流量在多台服务器间进行合理分配,从而提高服务器资源利用率,提升用户访问体验。
如图-1所示,通过应用负载技术,管理员可将多台真实服务器配置成一台虚拟服务器,对外发布虚拟服务器的IP地址。当用户流量访问虚拟服务器时,SLB(Server Load Balancing,应用负载)设备跟据预先配置的调度算法、调度策略等为用户流量分配最优的服务器资源。
应用负载功能包含以下基本概念:
· 虚服务器:SLB设备对外提供服务的逻辑载体,由协议类型、IP地址和端口唯一标识。当客户端的访问请求到达SLB设备后,只有匹配虚服务器的流量才能进入SLB处理流程。
· 业务主机:负责响应和处理用户请求的物理服务器。
· 服务池:由多台业务主机组成的集合,它们提供相同的服务。
应用负载的工作流程如图-2所示。
1. 客户端向SLB设备发送访问请求,此时的源IP地址为客户端IP地址,目的IP地址为虚服务器IP地址(图中简写为VSIP,即Virtual sever's IP)。
2. SLB设备根据健康检测方法、会话保持、调度策略、调度算法等,综合计算出将访问请求分发给哪台业务主机,并将报文的目的IP地址转换为选中的业务主机的IP地址。
3. 设备将访问请求转发给业务主机,此时的源IP地址为客户端IP,目的IP地址为业务主机的IP地址。
4. 业务主机接收并处理请求报文,返回响应报文,此时的源IP地址为业务主机的IP地址,目的IP地址为客户端IP地址。
5. 设备收到响应报文后,将其源IP地址转换为虚服务器IP地址。
6. 设备向客户端转发响应报文,此时的源IP地址为虚服务器IP地址,目的IP地址为客户端IP地址。
想要达到理想的应用负载效果,管理员需要选择合适的调度策略和调度算法,调度策略负责将符合特定规则的用户流量分配到指定的服务池中,调度算法则在服务池内选择最优的业务主机。
通过配置调度策略能够细化应用负载的粒度,SLB设备根据调度策略中配置的匹配规则,为命中匹配规则的用户流量执行指定的动作。
管理员可以在一个调度策略中指定多条匹配规则,设备会按照配置顺序进行匹配。
· 当匹配方式为匹配任意一条规则时,与某条匹配规则匹配成功就执行调度动作,否则继续匹配下一条匹配规则,若所有匹配规则均未匹配成功,则不执行调度动作。
· 当匹配方式为匹配所有规则时,仅当所有规则都匹配成功时,才会执行调度动作,否则不执行调度动作。
对于规则匹配成功的报文,设备会为其执行指定的调度动作。设备支持以下动作:
· 转发到服务池:规则匹配成功后,将流量转发至指定的服务池。
· 关闭TCP连接:规则匹配成功后,直接关闭TCP连接,设备支持通过发送FIN报文或RST报文关闭TCP连接。
· 代答:规则匹配成功后,用管理员配置的指定内容对HTTP请求报文进行应答。
· 转发:规则匹配成功后,跳过应用负载业务处理,直接对报文进行转发。
管理员通过配置不同的调度算法,可依据用户信息、业务类型或业务主机性能等不同的分配原则,将用户流量均衡地分配到各个业务主机进行处理。应用负载技术支持以下调度算法:
随机算法是将用户请求随机分发给服务池内的某台业务主机。经过一段时间后,各个业务主机的连接数大致相同。
随机算法适用于业务主机性能相近,每条流的业务负载大致相同的场景(如普通DNS、HTTP等)。
管理员可为每台参与调度的业务主机配置权值。加权轮转算法根据业务主机权值的大小,将用户请求依次分发给服务池内的每台业务主机,权值越大,分配的请求越多。
加权轮转算法适用于业务主机性能不同,但每条流的业务负载大致相同的场景。
根据识别报文信息不同,应用负载支持的哈希算法分为源IP地址哈希算法、源IP地址+端口哈希算法、目的IP地址哈希算法和HTTP载荷哈希算法。
· 源IP地址哈希算法:设备将具有相同源IP地址的用户请求分配给相同的业务主机。适用于同一源IP地址发起的请求必须要调度到同一台业务主机的场景,多用于业务本身对请求源IP地址有要求的场景。
· 源IP地址和端口哈希算法:设备将具有相同源IP地址和端口的用户请求分配给相同的业务主机。适用于同一源IP地址和端口发起的请求必须要调度到同一台业务主机的场景,多用于业务本身对请求源IP地址和端口有要求的场景。
· 目的IP地址哈希算法:设备将具有相同目的IP地址的用户请求分配给相同的业务主机。当客户端有一系列业务需要处理且必须和一台业务主机反复通信时需要用到该算法,该算法保证发送到相同目的IP地址的流量能够一直在同一台业务主机上进行处理。
· HTTP载荷哈希算法:设备将具有相同HTTP载荷的用户请求分配给相同的业务主机。
根据算法实现不同,应用负载技术支持的哈希算法分为普通哈希算法和CARP(Cache Array Routing Protocol,缓存阵列路由协议)哈希算法。
CARP哈希算法是在普通哈希算法的基础上进行了改进。在业务主机故障和服务池扩容的场景下,相比于普通哈希算法,采用CARP源哈希算法,能使当前所有可用业务主机负载分担变动最小,更好地保持流量调度的持续性。
若服务池内的某台业务主机由于故障等原因无法提供服务。则原来发送至该故障业务主机的请求,将被分配至服务池内其他可用的业务主机上;
· 采用普通哈希算法,原来发送至无故障的业务主机的请求流量,将根据源IP地址、源IP地址+端口、目的IP地址或HTTP载荷,在服务池内所有业务主机上进行重新分配。所有访问流量均需要重新分配,影响用户体验。
· 采用CRAP哈希算法,原来发送至无故障业务主机的请求,将继续被分配到原来的业务主机上。采用该算法,仅故障业务主机的访问流量会被重新分配,而不影响服务池内无故障业务主机的访问流量。
若因为服务池扩容需求,在服务池内增加了新的业务主机。
· 采用普通哈希算法,将根据源IP地址、源IP地址+端口、目的IP地址或HTTP载荷,在服务池内所有业务主机上进行重新分配,包括新增业务主机和已有业务主机。所有访问流量均需要重新分配,影响用户体验。
· 采用CRAP哈希算法,只将一部分发送至原有业务主机的流量,分配至新增业务主机;大部分流量仍然分配到已有业务主机。采用该算法,能最大程度保证用户的访问体验。
动态轮转算法根据业务主机的内存使用率、CPU使用率和磁盘使用率等信息,计算出业务主机的当前负载能力权值。负载越小,权值越大,分配到的请求越多。
该算法需要与SNMP-DCA(SNMP Data Collection Agent,SNMP数据收集代理)类型的健康检测模板配合使用。SNMP-DCA类型的健康检测模板向业务主机发送资源(如CPU/内存/硬盘)查询报文来获取业务主机资源的使用情况,动态轮转算法根据健康检测模板获取的资源使用情况,综合计算出业务主机的负载能力权值。
动态轮转算法适用于业务主机性能不同,且每条流的业务负载和处理时间无特定规律的场景。
管理员可为每台参与调度的业务主机配置权值。加权最小连接算法总是将用户请求分发给加权活动连接数(当前业务主机的活动连接总数/权值)最小的业务主机。
加权最小连接算法适用于业务主机性能相近,但每条流的业务负载和处理时间不同的场景(如FTP等)。
最快响应算法根据业务主机的响应时间计算出当前负载能力的权值。响应时间越短,权值越大,分配到的新连接越多。
最快响应算法适用于业务主机性能相近,但每条流的业务负载较大、处理时间较长的场景。
健康检测功能可以对业务主机的状态进行周期性探测,保证其能够提供有效的服务。SLB设备主动向业务主机发送探测报文,实时探测业务主机的状态,避免将流量分配给故障的业务主机,导致服务中断。
如所示,当探测到服务器状态均为正常时,SLB设备根据调度算法将客户端的流量依次分配给每台业务主机(以业务主机权值相同的加权轮转算法为例)。
图-3 健康检测示意图(正常状态)
如所示,当探测到某台业务主机发生故障时,SLB设备立即停止向其分配流量,并将流量调度给其他处于正常状态的业务主机。
图-4 健康检测示意图(故障状态)
一段时间后,若故障的业务主机状态恢复正常,设备会修改该业务主机的健康检测状态,使其重新参与调度。
健康检测功能通过健康检测模板实现。有关健康检测模板的详细介绍,请参见“健康检测”联机帮助。
会话保持是将一段时间内具有相同特征的访问流量分配给同一台业务主机进行处理。在保证用户访问连续性的同时,也减少了调度算法的重复运算,提升了转发效率。
一种典型的应用场景是:对于某些特定业务,为方便用户使用,在用户首次请求完成后,业务主机上会保存用户的相关信息,以缩短后续用户业务的响应时间,对于此种场景,建议管理员配置会话保持功能,始终将相同用户的请求分配给同一台业务主机处理。
会话保持的详细处理流程如下:
1. 当设备首次收到具有某种特征的用户请求时,会根据调度算法将请求分发给某台业务主机。同时根据管理员配置的会话保持方法生成会话保持表项。
2. 在会话保持表项老化之前,若设备再次收到具有相同特征的用户请求,不会再根据调度算法进行计算,而是根据已生成的会话保持表项,选择对应的业务主机进行转发。
应用负载功能常用的会话保持方法如下:
· IP地址会话保持方法:设备根据源IP地址、源端口、目的IP地址或目的端口生成会话保持表项,匹配请求报文的IP地址和端口。此方法可将源/目的IP地址属于同一网段的用户流量分配给同一台业务主机进行处理。
· HTTP Cookie会话保持方法:设备根据HTTP请求报文中的Cookie字段生成会话保持表项,匹配HTTP请求中的Cookie字段,此方法可将携带相同Cookie的HTTP请求转发至同一业务主机。由于Cookie的作用是用来区分用户以及跟踪用户访问特征,此方法可将同一用户在不同时间内的流量分配给同一台业务主机。
· 报文特定字段会话保持方法:设备根据报文的某些特定字段生成会话保持表项,比如可根据HTTP首部、HTTP实体等生成会话保持表项,此方法可将具有相同访问特征的用户分配给同一台业务主机。
根据识别信息的层级不同,应用负载可分为以下两种:
· 四层应用负载:可识别网络层和传输层信息,是基于流的负载均衡,通过对报文进行逐流分发,将同一条流的报文分发给同一台服务器。由于四层应用负载对七层业务无法按内容分发,从而限制了其适用范围。
· 七层应用负载:除了可识别网络层和传输层信息之外,还可识别应用层信息,是基于内容的负载均衡,通过对报文承载的内容进行深度解析,根据其中的内容进行逐包分发,按既定策略将连接导向指定的服务器,从而实现了业务范围更广泛的应用负载。
如图-5所示,在网关部署模式中,SLB设备串连部署在业务主机前端,客户端的请求和响应流量均会经过SLB设备处理。当客户端的请求流量经过SLB设备时,SLB设备根据健康检测方法、会话保持、调度策略、调度算法等选出最优的业务主机,并将客户端请求的虚IP地址转换为选中的业务主机的IP地址;在业务主机的响应流量经过SLB设备时,SLB设备会将其源IP地址还原为虚服务器IP地址。
在网关部署模式中,管理员需要在业务主机上配置缺省网关或静态路由,将发往客户端的报文发送到SLB设备上。
网关部署模式将SLB设备串接在原有组网中,会改变已有的网络拓扑,仅适用于组网较为简单的部署场景。
如图-6所示,在旁挂部署模式中,SLB设备旁挂部署在核心交换机上,客户端的请求和响应流量均会经过SLB设备处理。
当客户端的请求流量经过SLB设备时,SLB设备根据健康检测方法、会话保持、调度策略、调度算法等选出最优的业务主机,并将客户端请求的虚IP地址转换为选中的业务主机的IP地址;在业务主机的响应流量经过SLB设备时,SLB设备会将其源IP地址还原为虚服务器IP地址。
在旁挂部署模式中,管理员需要在业务主机上配置缺省网关或静态路由,将发往客户端的报文发送到旁挂SLB设备的核心交换机上。
相比于网关部署模式,旁挂部署模式不改变原有网络拓扑,部署更为灵活。
如图-7所示,三角传输部署模式与旁挂部署模式的网络拓扑相同,SLB设备旁挂部署在核心交换机上,但不同的是,SLB设备与业务主机之间通过二层传输,且只有客户端的请求流量会经过SLB设备处理,业务主机的响应流量不会经过SLB设备处理。当客户端的请求流量经过SLB设备时,SLB设备根据健康检测方法、会话保持、调度策略、调度算法等选出最优的业务主机,并向选中的业务主机发送访问请求,此时请求报文的源IP地址为客户端的IP地址,目的IP地址仍为虚服务器的IP地址,目的MAC地址为业务主机的MAC地址。业务主机接收并处理请求报文,并直接向客户端返回响应报文,响应报文不再经过SLB设备处理。此时的源IP地址为虚服务器的IP地址,目的IP地址为客户端IP地址。
在三角传输部署模式中,管理员需要在业务主机上配置缺省网关或静态路由,将发往客户端的报文发送到出口网关上。并且,管理员还需要在业务主机的Loopback地址配置为服务器IP地址。
相比于网关部署模式,三角传输部署模式不改变原有网络拓扑,部署更为灵活;相比于旁挂部署模式,三角传输部署模式的回程流量不经过SLB设备,更适用于诸如视频等业务流量较大的场景。
在单台SLB设备的组网中,一旦发生单点故障,客户端将无法访问业务主机。采用高可靠性组网可以很好的避免单点故障,保证业务的连续性。高可靠性功能支持主备、双主和集群几种工作模式。有关高可靠性的详细介绍,请参见“高可靠性”联机帮助。
如图-8所示,主备模式(A/S即Active/Standby)由两台SLB设备在一个内网(或数据中心)中组建成双机热备环境。正常情况下,仅由主设备处理业务,备设备处于待命状态;当主设备的接口、链路或整机故障时,备设备立即接替主设备处理业务,保证业务不中断。
如图-9所示,双主模式(A/A即Dual-Active)由两台SLB设备在一个内网(或数据中心)中组建成双机热备环境。两台设备同时处理业务,充分利用设备资源,提高系统负载能力。并且当其中一台设备发生故障时,另外一台设备会立即承担其业务,保证业务不中断。
集群模式(Cluster)由多台SLB设备组建成一个可靠性系统,多台SLB设备之间不仅可以在一个内网(或数据中心)中组建成一个集群;还可以跨内网(或数据中心)组建成一个集群。集群中的多台SLB设备不仅可以形成主备或双主组网,还可以形成多主组网,进一步提高了系统的处理能力和扩容能力。
如图-10所示,正常情况下,数据中心的不同设备可以对外发布不同的业务,这样每台设备可以集中高效地处理某一种业务,同时设备之间又可以相互备份配置信息和业务信息。
如图-11所示,当其中一台设备故障时,其他设备可以立即接手这些流量,保证用户业务不中断。
如图-12所示,正常情况下,多个数据中心同时对外提供服务,充分利用现有的网络资源和应用服务资源等,不同数据中心SLB设备之间的配置信息和业务信息可以相互备份。
如图-13所示,当其中一个数据中心的某台SLB设备故障不能对外提供服务时,首先让同一数据中心的其他SLB设备立即接手这些流量,保证用户业务不中断;同理,当整个数据中心故障不能对外提供服务时,再由其他数据中心的SLB设备立即接手这些流量,保证用户业务不中断。
应用负载功能的配置思路如下图所示:
图-14 应用负载配置指导图
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!