负载均衡技术的产生背景
随着数据中心规模和网络行业的高速发展,大型网站的规模体量和存储数据呈现指数级上升。如何处理来自这些海量用户,海量数据的存储和访问需求,给客户提供一个高可用的访问环境,成为了广大厂商必须去思考的问题。
比如我们熟悉的支付宝红包活动,每年都有上亿人次的参与,背后都需要访问后端的业务服务器。业务服务器面临保证访问质量的极大压力。再如微博服务器经常出现爆炸宕机,其实就是在负载均衡方面没有做好。
服务器的性能不够时,可以有两种解决思路:
- 垂直扩展-提升单机性能,比如扩展CPU、内存和磁盘大小,但单机性能是有瓶颈的,而且会受到厂商的限制,达到一定阈值后需要付出很高的成本投资
横向扩展-通过构建服务器集群去分担客户端的访问流量
而在横向扩展的情况下,我们又迎来了另一个挑战:如何保证来自客户端的请求能够以可靠的方式去分发到我们每个服务器集群中的各个节点?这里便会涉及到所谓的“负载均衡“技术了。
什么是负载均衡技术?
为了解决高可靠、高并发以及海量数据的存储和访问,负载均衡它起到的核心作用就是把来自客户端的请求合理地分配给后端服务器上的某个节点。具体到原理上就是在负载均衡器上去执行某种算法,根据某种算法把客户端的请求去按照算法分配的结果去响应到实际服务器,再由服务器把相应数据返回给客户端。
无论是用专用硬件设备,还是目前更为流行的软件处理方式,负载均衡方案其实都是要建立一种一对多的映射机制,把一个请求给它映射到多个处理请求的节点。
以下是典型的客户端请求的流量转发流程。首先从网站上发起一个请求会先到 DNS 服务器上进行域名解析。域名解析完成之后会进入公网,经由一些网络设备执行转发,最后走到服务器端的安全处理安全模块。做完安全之后,我们今天要讲的重点内容了——会进行 4 层负载,之后是 7 层的负载,最后转发给后端服务器集群中的某个节点。而且到了服务器集群之后,其实还有一系列负载均衡机制。
按通信层次划分:四层负载均衡和七层负载均衡
七层负载均衡:作用于应用层,负载均衡器提供一个虚拟IP,根据访问用户的HTTP请求头、URL信息将请求转发到特定的主机。主要通过反向代理实现。
四层负载均衡:作用于传输层,负载均衡器提供一个虚拟IP,基于IP地址和端口号进行请求的转发。主要依靠修改IP地址+端口号实现。
按实现载体划分:硬件方案和软件方案
- 硬件负载均衡:一般是在定制的处理器上运行的独立负载均衡服务器。硬件负载均衡方案一般都支持全局负载均衡,并提供全面的、复杂的负载均衡算法,功能强大;并且基于专用的处理器,吞吐量也能做到很高,可以支持单机百万以上的并发。此外硬件负载均衡往往具备防火墙、防DDOS等安全功能。
- 软件负载均衡:软件负载均衡也是目前主流的互联网厂商所选择的方式。这些厂商他的体量非常大,面对海量的用户端请求处理的负载均衡需求,如果都去采购专用硬件厂商的设备,成本就会非常高。另外,像京东、阿里这类自身有云业务的公司,他们也想做到云管平台的统一灵活管控,这是难以做到的。
从软件层面实现负载均衡,一般可以在任何标准物理设备上运行。软件负载均衡基于软件的方式能够实现非常低的成本和良好的扩展性。目前主要产品有Nginx、HAProxy、LVS等。
另一种思路:P4+DPU的可编程开放硬件平台(需配合用户自研负载均衡软件)
基于算网融合硬件平台可以实现面向大规模云计算环境中的负载均衡系统,并且使其既具备软件vLB的开放性、灵活性,又具备硬件vLB的高性能。
- 对比单纯的基于硬件实现的负载均衡:通过算网融合平台的可编程能力和开放性使得管理平面、控制平面和数据平面可以全部与云管平台对接起来,让这一开放负载均衡系统集群具备了“软件vLB”的开放、灵活、弹性;
- 对比软件实现的负载均衡:算网融合平台将可编程交换芯片的“高性能快路径”和智能业务处理单元的“智能慢路径”相结合,大幅提升整体性能、降低整体成本,使得开放负载均衡系统集群能够具备“硬件vLB”的高性能和低成本。
- 在实际的负载均衡场景中往往有着非常定制化的开发需求。为大大缩短开发者的开发周期,X-T系列可编程硬件平台可搭载AsterNOS-Framework,它提供了一站式的综合开发环境,是一款针对开放、可编程网络构建的底层操作系统,以轻量化的SONiC为内核,将三种异构硬件单元(x86/ARM/P4 Switch ASIC)融合成一个完整的网络系统。
热门跟贴