负载均衡是一种服务器或者网络设备的集群技术。负载均衡将特定的业务(服务、网络流量等)分担给多个服务器或网络设备,从而提高业务处理能力,保证了业务的高可用性。负载均衡的基本概念有:实服务、实服务组、虚服务、调度算法、持续性等,其常用应用场景主要是服务器负载均衡,链路负载均衡。
【服务器负载均衡】
服务器负载均衡根据LB设备处理到的报文层次,分为四层服务负载均衡和七层负载均衡。四层处理到IP包的IP头,不解析报文四层以上载荷(L4 SLB)。七层处理到报文载荷部分,比如HTTP,RTSP,SIP报文头,有时也包括报文内容部分(L7 SLB)。
【四层服务器负载均衡技术】
客户端将请求发送给服务端前端的负载均衡设备,负载均衡设备上的需服务接收客户端请求,通过调度算法选择真实的服务器,在通过网络地址转换,用真实服务器地址重写请求报文的目标地址后将请求发送给选定的真实服务武器;真实服务器的响应报文通过负载均衡设备是,报文的源地址被还原成需服务的VSIP,再返回给客户,完成整个负载过程。
(1)Host发送服务请求报文,源IP为Host IP、目的IP为VSIP
(2)LB Device接收到请求报文后,借助调度算法计算出应该将请求分发给哪台Server
(3)LB Device使用DNAT技术分发报文,源IP为Host IP、目的IP为Server IP
(4)Server接收并处理请求报文,返回响应报文,源IP为Server IP、目的IP为Host IP
(5)LB Device接收响应报文,转换源IP后转发,源IP为VSIP、目的IP为Host IP
【七层服务器负载均衡技术】
七层负载均衡 和四层负载均衡相比,只是进行负载均衡的依据不同,而选择确定的实服务器后处理基本相同,下面以HTTP应用的负载均衡为例拉进行说明。
由于在TCP握手的阶段,无法获得HTTP真正的请求内容,因此也就无法将客户的TCP握手报文直接转发给服务器,必须由负载均衡设备先和客户完成TCP握手,等收到足够的七层内容之后,再选择服务器,由负载均衡设备和所选的服务器建立TCP连接。
七层负载均衡组网和四层负载均衡组网有一个显著的区别:四层负载均衡每个虚服务对应一个实服务组,实服务组内的所有实服务提供相应的服务;七层负载均衡每个虚服务对应多个实服务组,每组实服务器提供相同的服务。根据报文内容选择对应的实服务组,然后根据实服务组调度算法选择某一个实服务器。
(1)-(3):Client和LB建立TCP连接;
(4):Client发送HTTP请求,目的IP为虚IP;
(5):LB设备分析报文,根据调度算法选择实服务器,注意此时会缓存该报文;
(6):LB设备向实服务器发Syn报文,序列号为Client的Syn报文序列号
(7):Server发送Syn/Ack报文,目的IP为Client;
(8):LB接收Server的Syn/Ack报文后,回应ACK报文
(9):修改步骤(5)中缓存的报文目的IP和TCP序列号,然后发给Server;
(10):Server发送响应报文到LB;
(11):LB修改步骤(9)中的报文的源地址和TCP序列号后转发给Client。
【链路负载均衡】
在企业网,运营商链路出口需要部署LB设备以优化链路选择,提升访问体验,链路负载均衡按照流量发起方向分为Inbound负载均衡和Outbound负载均衡。
【Inbound负载均衡技术】
Inbound负载均衡技术是DNS智能解析的一种,外网用户通过域名访问内部服务器时,local DNS的地址,解析到请求达到LB设备,LB根据对Local DNS的就近探测结果响应一个最优的IP地址,外网用户根据这个最优的IP响应进行对内部服务器的访问。
入方向的负载均衡:
(1)外部用户进行资源访问前先进行DNS解析,向其本地DNS服务器发送DNS请求。
(2)本地DNS服务器将DNS请求的源IP地址替换为自己的IP地址,并转发给域名对应的权威服务器——LB device。
(3)LB device根据DNS请求的域名和配置的Inbound链路负载均衡规则进行域名解析。
(4)LB device按照域名解析的结果,将DNS应答发送给本地DNS服务器。
(5)本地DNS服务器将解析结果转发给用户。
(6)用户使用解析结果选择的链路,直接对LB device进行资源访问。
【Outbound负载均衡技术】
内网用户访问Internet上其他服务器。Outbound链路负载均衡中VSIP为内网用户发送报文的目的网段。用户将访问VSIP的报文发送到负载均衡设备后,负载均衡设备一次根据策略、持续性功能、就近性算法、调度算法选择最佳的链路,并将内网访问外网的业务流量分发到该链路。
出方向负载均衡:
(1)LB Device接收内网用户流量 -
(2)LB Device依次根据策略、持续性功能、就近性算法、调度算法进行链路选择 在Outbound链路负载均衡组网中,通常使用就近性算法或带宽调度算法实现流量分发
(3)LB device按照链路选择的结果将流量转发给选定的链路 -
(4)LB Device接收外网用户流量 -
(5)LB Device将流量转发给内网用户
【负载均衡优化及应用】
【TCP连接复用】
连接复用功能通过使用连接池技术,可以将前端大量客户的HTTP请求复用到后端与服务器建立的少量的TCP长连接上,大大减少服务器器的性能负载,减少与服务器之间新建TCP连接所带来的的延时,并且最大幅度的减少后端服务器的并发连接数,降低服务器的资源占用。
【SSL卸载】
为了避免明文传输出现的安全问题,对于敏感信息,一般采用SSL协议,入HTTPS,对于HTTP协议进行加密,以保证HTTP传输过程中的安全性。SSL是需要耗费大量CPU资源的一种安全技术,如果由后端的服务来承担,则会消耗大的处理能力,应用交付设备为了提升用户的体验,分担服务器的处理压力,将SSL加解密集中在自身的处理上,相较于服务器来说LB能提供更高的SSL处理性能,还能够简化对证书的管理,减少日常管理的工作量,LB的该功能又称为SSL卸载。
Client端发送给server的所有的HTTPS流量都被LB设备终结,LB设备将SSL终结之后,与server之间可以采用HTTP或者弱加密的HTTP进行通讯,LB设备承担了SSL的卸载工作,从而极大的减小了服务端对SSL处理的压力,将服务器的处理能力释放出来, 更加专注于 处理服务器本身承担的业务逻辑。
(1)LB Device接收内网用户流量 -
(2)LB Device依次根据策略、持续性功能、就近性算法、调度算法进行链路选择 在Outbound链路负载均衡组网中,通常使用就近性算法或带宽调度算法实现流量分发
(3)LB device按照链路选择的结果将流量转发给选定的链路 -
(4)LB Device接收外网用户流量 -
(5)LB Device将流量转发给内网用户
【DRX云环境应用交付】
业务负载监控平台通过H3C负载均衡设备的参数设定和监控可以动态感知业务负载的变化,并通知云管理平台动态调整业务资源。由此实现用户业务资源的实时动态调整、业务资源优化调配。
当业务负载监控平台发现业务资源需要调整时:业务负载超限-增加资源;业务资源过剩-回收资源,云管理平台通过自动创建、启动或者删除停止虚拟机的方式为业务进行资源动态调整。
- 轮询: 这个最简单,就是一个挨一个轮换。
- 加权轮询: 为了应对某些服务器性能好,可以让他们的权重高一点,被选中的几率大一点
- 最少连接: 哪个服务器处理的连接少,就发给谁。
- 加权最少连接:在最少连接的基础上,也加上权重