网络负载均衡

负载均衡架构图

网络负载均衡_第1张图片

介绍

负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
对于大量的用户请求,可通过负载均衡器分发到服务器集群中的各个服务器中,服务器集群是可弹性伸缩的,如对于某些特定的活动节日,用户的请求量比平时更多,所以对于原有的服务器集群可能根本负载不起用户的请求量,一方面通过引入弹性伸缩来增加服务的硬件措施,另一方面通过某些负载均衡算法使得服务器集群内部每一台服务器的负载量是合理的。

负载均衡方案

1、DNS方案 - 地域上的流量均衡

2、硬件方案 - 大型服务器集群负载均衡

3、软件方案 - 机器层面的流量负载均衡

DNS方案
让DNS服务器根据不同的地理位置的用户返回不同的服务器IP,如广州的用户可以返回广州机房中服务器的IP,北京的用户可以返回北京机房中服务器的IP。
然而,DNS查找服务器IP的方式有两种,一种是递归查询,一种是迭代查询。由于DNS的几级缓存可能导致配置修改生效不及时,从而影响负载均衡的效果。
网络负载均衡_第2张图片

基于DNS负载均衡的解决方案一般都是基于地域划分式IP轮询的方式,较为简单,因此也是它的局限性所在。

硬件方案
通过引入如SDN架构的解决方案,软件定义网络(Software Defined Network, SDN ),是Emulex网络一种新型网络创新架构,是网络虚拟化的一种实现方式,其核心技术OpenFlow通过将网络设备控制面与数据面分离开来,从而实现了网络流量的灵活控制,使网络作为管道变得更加智能。

通过SDN控制器下发流匹配规则和动作到SDN交换机,当SDN交换机收到数据包时,查找内部流表,找到对应流表项中的动作集处理该数据包。

SDN使用Openflow协议作为其南向接口协议,SDN控制器下发负载均衡策略给Openflow交换机,当Openflow交换机收到数据包时做出相应的处理。
SDN架构图
网络负载均衡_第3张图片
基于SDN方案的负载均衡
网络负载均衡_第4张图片

SDN架构中,Openflow虚拟交换机可以使用软件来实现,即Openflow虚拟机交换机(ovs),对于常用的SDN控制器有ODL。

软件方案
软件方案大多都是使用一些列的负载均衡算法,如轮训算法,负载度策略算法、响应策略、哈希策略。
常用的由LVS和Nginx,
LVS是基于4层网络协议(TCP)
Nginx是基于5层网络协议(应用层,传输层)
LVS由于是基于底层的网络协议,主要是TCP协议,由IP来转发,处理量在几十万/秒。
Nginx是基于7层网络协议,如Http、SMTP协议,处理量在几万/秒。

常用的负载均衡算法

1、轮询策略,在DNS方案负载均衡方案中较为常见,根据域的权重比来分配流量。
2、负载度策略,负载均衡器向后端服务器中采集参数,如每台服务器的CPU负载指标,连接请求等参数来动态分配流量到不同的服务器。
3、响应策略,这种做法更注重用户的体验,由负载均衡器不断向后(如每隔1分钟采集一次)端采集每一台后端服务器的响应速度来将数据流量转发到当前处理速度最快的服务器。
4、哈希策略,率先给后端服务器的主机进行编号,通过哈希算法将请求转发到对应哈希运算结果对应的服务器中。如,采用取模的哈希算法,将数据包对后端机器数量进行取模后得到一个值Q,最终将数据包转发到编号为Q的服务器。

你可能感兴趣的:(计算机网络)