虚拟云网络

NSX Advanced Load Balancer 自动扩展

软件定义的负载均衡器 NSX Advanced Load Balancer (简称 NSX ALB) 跟传统硬件负载均衡器的最大区别就是架构的灵活性,可以根据应用负载的变化而进行动态调整,通过增加计算资源来支撑工作负载的增加,当工作负载降低时自动释放资源以避免计算资源的闲置。

NSX ALB 的架构

NSX ALB 采用的是控制平面 (控制器 Controller) 和数据平面 (服务引擎 Service Engine) 分开的设计,控制器负责管理和控制,服务引擎负责转发网络流量。这种软件的应用交付控制方案具有以下优点:

  • 配置简便:管理员只需要在控制台上做一次参数设置,配置就会自动下发到各个服务引擎。
  • 弹性架构:当业务量上升的时候,控制器会自动地增加服务引擎来提升系统的处理容量;当业务量下降时,可以降低服务引擎数量来减少资源消耗。
  • 灵活性:基于软件的架构让用户购买的处理能力可以在多个应用间共享,而不存在硬件方案所需要重新部署和配置的问题,大减少了处理能力闲置的情况。
  • 支持多云环境:Avi 的方案不仅支持私有云,也支持 AWS、Azure 等公有云环境,可以灵活地在多云环境下部署使用。

NSX ALB 原生的扩展

开始的时候,所有的应用服务请求都由一个服务引擎来处理的,由它来根据管理员设置的负载均衡规则来把服务请求分发给后台的服务器。当应用负载上升到超过该服务引擎的处理能力时,NSX ALB 的控制器会增加服务引擎的数量来提高整体处理能力,新增的服务引擎可以是一个现有的服务引擎 (在为其他应用提供负载均衡服务),也可以是一个完全新建的服务引擎虚机。这种情况下,原来的第一个服务引擎被定义为主服务引擎 (Primary SE),任何后加的服务引擎都被称之为二级服务引擎 (Secondary SE)。主服务引擎会把一部分的应用负载转发给二级服务引擎,由它们来进一步分发给后台的应用服务器,这就相当于在 NSX ALB 负载均衡器内部进行了一个初步的负载均衡操作。受制于服务引擎处理能力,这种模式仅支持最多4台服务引擎,增加更多的服务引擎会导致主服务引擎成为一个性能瓶颈。

基于 BGP 的等价多路径扩展

对于更大的应用负载,可以采用基于边界网关协议 (BGP – Border Gateway Protocol) 的等价多路径 (ECMP – Equal-Cost Multi Path) 扩展,这种扩展方式最多可以支持 64台服务引擎。这种方式如下图所示,所有应用服务请求通过路由器或网关发给服务引擎,这中间存在着多条链路,ECMP 使得服务请求可以均衡地通过多条链路来到达不同的服务引擎,再由服务引擎转发给应用服务器。

传统的硬件负载均衡器都是按峰值处理量来进行配置的,一旦过了工作负载高峰期,原来配置的硬件资源往往闲置,IT 投资没有得到充分的利用。NSX ALB 的扩展功能是完全自动的,称之为自动扩展 (Auto Scaling),不需要预先配置好预留资源,会根据应用负载的变化来自动调整;并且能够对应用负载进行预测,从而及时地自动调配好服务引擎,为服务请求的增加做好准备,这个特性称之为带预测的自动扩展 (Predictive Autoscaling)

这种自动扩展能力也能够更好地为多个应用提供负载均衡,不同应用的负载高峰期往往是不同的,基于虚机的服务引擎不但可以同时为多个应用服务,也可以在需要的时候在不同的集群间进行迁移 (vMotion) 或者是调配 (Provisioning),从而灵活地满足业务性能的需要。同时,也让企业采购的负载均衡器得到了充分的利用,最大限度地避免了 IT 投资的闲置和浪费。

扩展阅读

NSX Advanced Load Balancer 的横向扩展能力给它带来了超高性能,Intel 委托 Principled Technologies 基于 Intel 服务器平台针对 NSX ALB 进行了性能测试,结果显示 NSX ALB 处理 SSL 连接的峰值性能达到了1.17 MTPS (Million Transaction per Second)。有兴趣的读者可以下载这份报告的中文版“Principled Technologies NSX ALB 性能测报告”。