【论文阅读】Load Balancing in Data Center Networks A Survey


数据中心网络的架构

==架构可分为以交换机为中心、以服务器为中心和混合结构。==

  • 在以交换机为中心的架构中,交换机用于在服务器之间提供多条路径并执行数据包转发。
  • 在以服务器为中心的体系结构中,服务器既执行计算功能,又充当连接到其他服务器的交换机。
  • 在混合结构中,使用交换机和服务器来执行数据包转发,通常在服务器之间提供长度不等的多条路径。

以交换机为中心的架构

Fat-Tree

k=4的Fat-Tree

\(k\)代表pod的数量

VL2

n0=2,n1=4,n2=4的VL2

边缘交换机有\(n_0\)个10GbE端口和\(10n_0\)个1GbE端口,聚合交换机有\(n_1\)个10GbB端口,核心交换机有\(n_2\)个10GbE端口。

GbE端口:千兆以太网端口

以服务器为中心的架构

CamCube

27个服务器的CamCube架构

上图是一个具有27个服务器的CamCube架构。它还提出了一个基于密钥的网络堆栈,以便通过CamCube应用程序接口(API)更好地利用3D Torus架构的容量。以服务器为中心的架构可以显著降低交换机和路由器的成本。由于服务器比交换机需要更少的冷却成本,因此它也是节能的。CamCube的主要缺点在于,对于非基于密钥的应用程序,路径可能变得相当长,路由复杂度可能很高。

混合架构

BCube

n=4的BCube的架构

用交换机和具有多个端口的服务器作为转发设备。矩形代表交换机,圆形代表服务器。

它可以递归定义。\(BCube_0\)由连接到n端口交换机的\(n\)个服务器组成。\(BCube_1\)由n个\(BCube_0\)\(n\)\(n\)端口交换机组成。递归地,\(BCube_k(k≥ 1)\) 包含\(n\)\(BCube_{k−1}\)\(n^k\)\(n\)端口交换机。总共有\(n^{k+1}\)台服务器,具有\(k+1\)个端口和\(k+1\)个交换机

然后连接第\(j\)\(BCube_{k-1}\)中第\(i\)个服务器的第\(k\)个端口到第\(i\)\(\text{Level}\ k\)交换机的第\(j\)个端口。

DCell

n=4的DCell1结构

DCell也可以递归定义,\(DCell_0\)由n个服务器和一个小型交换机构成。每个服务器通过1GbE或10GbE链路连接到小型交换机。在DCell的原型中,\(n\)是一个小整数(通常为) \(n\le 8\)因此,一个普通的8端口交换机对于该体系结构来说就足够了。

背景

数据中心网络的特点

  • 以小流量为主,缺乏可预测性
  • 核心层的链路利用率高,丢包率与利用率没有直接关系。数据中心网络中的丢包主要是由流量突发引起的

链路负载平衡和服务器负载平衡的区别

服务器负载平衡主要是根据服务器的负载和内容将请求分发到不同的服务器,链路负载平衡是要平衡链路中的流量防止网络拥塞。==本文介绍的链路负载平衡。==

负载平衡

负载平衡的定义

负载平衡相当于最小化链路的最大利用率。\(s,d\)代表了流的起点和终点,\(u,v\)代表了以\(s,d\)为起点终点的图中某条边的两个交换机。\(c_{u,v}\)代表了链路的最大容量。 \[ min\,\,max_{u,v\in E}\frac{\sum_{s,d}{f_{u,v}^{s,d}}}{c_{u,v}} \]

负载平衡的目标

由于数据中心中的应用程序有其特定的需求,负载平衡算法应考虑到这一点,有时需要在不同需求之间进行权衡。负载平衡算法的四个主要目标:==高性能、可扩展性、鲁棒性和能量效率。==这是主要的目标,实际上还会有其他目标。比如各个包的到达的最晚时间。

  • 高性能:负载均衡算法需要根据应用需求考虑的两个主要需求吞吐量和延迟。
  • 可扩展性:(1)负载均衡算法是否适用大规模的数据中心网络,并且部署成本是不是高;(2)负载均衡算法是否适用不同的拓扑结构和运行不同应用程序的数据中心环境
  • 鲁棒性:负载平衡算法如何应对数据中心的故障和拓扑变化是一个关键问题。
  • 能量效率:负载平衡算法必须考虑能量消耗,并满足用最小设备子集来满足应用要求

负载平衡算法的两个过程

数据中心网络负载平衡机制的设计分解为两个主要过程:==收集拥塞信息和选择路径。==负载平衡机制的一个关键过程是选择一个或多个适当的度量来表示拥塞,并将拥塞信息传输给将做出负载平衡决策的实体。在获得数据中心网络的拥塞信息后,负载平衡方案需要调度不同路径上的到达流以平衡负载。

拥塞度量方法

  • 基于TCP:TCP将数据包丢失视为网络拥塞的信号,并在检测到拥塞时减少其拥塞窗口。因此,一些方案利用与TCP或TCP变体类似的信号来检测拥塞。
  • 发送速率:流的发送速率是交换机和终端主机可以记录的直接值。通过将增加的发送字节除以时间间隔,可以获得每个流的平均发送速率。该方法通常用于SDN网络,因为OpenFlow交换机自动记录发送的字节,并且控制器可以在任何时间获得该值。
  • 交换机队列长度:交换机缓冲区的利用率直接反映了通过该交换机的流量。一些方案使用路径中的交换队列长度来表示路径利用率并检测拥塞。这种方式非常方便在网络方案中使用。
拥塞度量方法

路径选择

  • 最少拥塞:路径选择的理想机制是将每个流分配给最少拥塞的路径。因此,一些方案收集每条路径的利用率信息,并将流量转发到拥塞最小的路径。该方法的性能与路径利用信息的准确性和响应性高度相关。
  • 较少拥塞:由于难以实时收集准确的链路利用率,另一种选择路径的方法是将流量从拥塞路径移动到较少拥塞路径。这种方式减少了记录所有路径信息的开销。
  • 循环:最初的循环方式是将流逐个分配给所有可行路径。由于流和链接信息是不可知的,因此在重负载情况下很容易发生流冲突。因此,一些方案根据数据流的长度或路径利用率来为每条路径加权并循环来平衡流量。该方法的性能与路径权重的精度相关。
  • 综合分配:在前三种方法中,流的路径选择过程相互独立,可能导致局部最优。因此,一些方案将一组流聚合起来,并对它们进行综合分配,以实现全局最优。
路径选择算法

用于负载均衡过程的算法

集中式机制

在中央控制器上运行的软件可以收集拥塞信息,并基于控制器的全局视图将流分配给路径。例如上图的控制器利用Openflow协议与交换机通信,并通过网络测量应用程序测量网络。借助测量应用程序,负载平衡应用程序可以轻松获得全局链路利用率和流量信息,并使用这些信息来平衡负载。然而,将引入额外的通信开销以向控制器传输信息。粗时间粒度是集中式机制的另一个限制。大多数集中式控制器无法以足够的粒度轮询信息以处理突发事件,并且这种方式开销比较大。

分布式机制

分布式方案在主机或交换机本地选择路径。它们足够迅速地处理数据中心的流量突发,但对于分布式算法来说,收集全局拥塞信息是一个挑战。此外,分布式算法通常是为对称网络设计的,它们很难对拓扑变化做出反应,例如链路故障和交换机崩溃。


文章作者: meditate
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 meditate !
  目录