Fat-tree:A Scalable, Commodity Data Center Network Architecture 解读

Fat-tree:A Scalable, Commodity Data Center Network Architecture 解读
 

title: 一种可扩展的、商品化的数据中心网络体系结构

 

第一部分:背景

 

传统的数据中心网络架构

 

 

传统的数据中心网络架构分为三层(从下往上):

第一层,接入层(Access Layer)。也称 Edge Layer,直接连接服务器的交换机。

第二层,汇聚层(Aggregation Layer)。汇聚交换机连接Access交换机,同时还提供防火墙、入侵检测等服务。

第三层,核心层(Core Layer)。核心交换机为进出数据中心的包提供高速转发,并连接多个汇聚层交换机。该层交换机性能最高,价格昂贵。

 

 

 

存在的问题

  1. 线路的利用率不高。如上图所示,正常情况下,对于一个VLAN网络,只有一个汇聚层交换机可用,其他的汇聚层交换机只有在出故障时才被使用(上图虚线部分)。
  2. 超占比(Oversubscription)导致带宽利用率很低。由于超占比的比例通常在2.5:1到8:1不等,导致单个主机可用的带宽只有40%到12.5%的带宽可用。1:1的设计成本又太高了。
  3. 多路径路由算法ECMP的瓶颈问题。该算法采用的是静态分割流方式,无法根据每个流的带宽需求动态分配路径;同时,ECMP算法将路径数量限制在8-16,超过这一设定值,路由表将成倍增长,这会增加硬件开销,也会增加路由表查找时延。
  4. 构建如此庞大的数据中心网络费用昂贵。进而引出Fat-tree实现1:1的超占比却很省钱的观点。

 

以下是两张费用对比图表。从图2和表1都可以明显看出,在相同端口数量下,Fat-tree支持的主机数量更多,费用低的多。

 

 

 

第二部分:Fat-tree 拓扑

 

 

如上图所示,本文提出Fat-tree这一网络架构,该架构借鉴了Clos架构(参考文献:Charles Clos, A Study of Non-blocking Switching Networks)的思想,用多个小规模、低成本的单元构建复杂,大规模的架构。

 

从图1和图3的对比,很容易看出区别,Fat-tree使用了多个小规模、低成本的交换机替代了原来核心层、汇聚层昂贵的、高密度端口的交换机。相同点是,也都是三层架构,核心层、汇聚层、接入层。

 

这种设计的好处

  1. 实惠且任一组件都容易替换;
  2. 非阻塞,任一主机可获得100%完整带宽;

 

 

 

Fat-tree架构的拓扑连接特点

  1. k叉树,即假设交换机的端口数量为k(图3中k=4);
  2. 核心交换机数量为 (k/2)^2,pod的数量为k;
  3. 每个pod分为两层,每层k/2个交换机,上层称为汇聚层,下层称为接入层(也称Edge Layer);
  4. 汇聚层k/2的端口连接k/2的核心交换机,剩下的端口连接接入层的交换机;
  5. 接入层同上,一半的端口连接上一层,一半的端口连接下面的主机。

 

 

以k=48的拓扑图为例,计算各个节点的数量,如下:

  1. 有48个pod;
  2. 每个pod有24个接入层switch;
  3. 每个接入层switch连接24个host;

 

 

子网(连接同一switch的属于同一子网)数量:48×24=1152,即k×(k/2)

每个子网host数量:24,即k/2

所有host的数量:48×24×24=27648,即k×(k/2)×(k/2)

 

Pod数量:48,即k

每个Pod里host的数量:24×24=576,即(k/2)×(k/2)

每个Pod里交换机的总数:48,即k

 

核心交换机的数量:24×24=576,即(k/2)^2

 

从两个不同的pod里各挑一个host,组成一个 host pair,它们之间有 576条(即(k/2)^2,就是核心交换机的数量),同等cost的路径。

 

遇到的两个主要问题及解决方案

 

问题1:经典的 IP/Ethernet 网络只会构建了单路径路由协议,这会使得Fat-tree很快遇到性能瓶颈。

解决方案:本文提出了升级版转发协议,极大的提升了扇出的效率。

 

问题2:大型网络中的布线非常复杂。

解决方案:本文提出了打包和放置技术来缓解布线问题。

 

 

第三部分:路由

 

动机:现有路由协议,比如OSPF2,是按照最短跳数作为最佳路径选择的标准,而Fat-tree里任一两个不同pod里的主机之间的路径都是同等跳数的路径,而原有的路由协议只会选择其中的一条。这就是造成拥塞的主要原因。

 

故需要改进当前路由协议,使得其支持将两个主机之间数据包均匀地分散到每条等价路径,减轻拥塞,并最大限度发挥Fat-tree的拓扑优势

 

寻址

Pod里的交换机地址:10.pod.switch.1

Pod表示当前pod序号,范围[0, k-1]

Switch表示在当前pod里,当前switch的编号(从左往右,从下往上计数),范围[0, k-1]

 

 

核心交换机地址:10.k.j.i

K是固定值,如图3所示,k=4固定

(j, i)是表示核心交换在 (k/2)×(k/2) 的核心交换机矩阵中的坐标,i或j的范围是[0,k/2]

 

Host的地址:10.pod.switch.ID

Host的地址前3个字节和其所连接的接入层交换机的前3个字节保持一致,最后一个ID为其在子网内的序号,ID范围是[2, k/2+1]

 

 

两级路由表

 

两级路由表示例

 

图4展示的是Pod2左上角的交换机(10.2.2.1)的两级路由表,显然这种表格设计是用来划分目标IP属于Pod内部还是外部的。

前缀表:Pod内部IP,直接转发给Prefix第3个字节对应的switch,转发的端口号和该端口连接的switch id 保持一致;

后缀表:其他Pod的IP,按照IP的第4个字节,均匀地分散到对应的上层的交换机上(对于接入层的上层就是汇聚层,对于汇聚层的上层就是核心层,但它们其实原理都是一样的,都是均匀地转发给其上层的k/2个交换机)。

 

结论:对于Pod内每个交换机,其前k/2的端口负责向下转发,后k/2个端口负责向上转发。

 

同时,每个pod交换机的路由表的前缀表和后缀表大小,都不超过其转发的端口的数量,即k/2

 

这种路由表的设计完美地阐述了均匀转发的含义。

同时,这种设计另一个好处就是,同一个目的IP的数据包,会从同一条路径转发,这样就避免了数据包重排序的问题。

 

路由表生成算法,如下图所示,算法1表示汇聚层路由器路由表生成,算法2表示核心层路由表算法生成,根据这个规律接入层的路由表生成算法也很简单。

 

本质上就是3层for循环而已,只要搞清楚Fat-tree的拓扑层次很容易就理解了。

以算法1为例,对于任一处于pod x, 在pod内编号为z的汇聚层交换机(10.x.z.1)而言,addPrefi(10.x.z.1, 10.x.i.0/24, i)含义是:对于汇聚层交换机10.x.z.1来说,目的IP的前缀为10.x.i.0/24,那么表示其为pod内第i个子网的主机,转发端口是i,下一跳是交换机 10.x.i.1。

后缀表就稍微复杂一点。

 

 

第四部分:其他

 

流分类(Flow Classification):这里讨论了其他两种关于数据包转发的技术,包括同一组流用同一个端口转发,和将同一组流的不同数据包依次重分配一个最小的端口号进行转发。

 

流调度(Flow Scheduling):这里讨论的是关于在实际的网络流量中,有两种类型的数据流,一种是少量的长时间大数据传输流,另一种是大量的短时间小数据传输流。如何调度好两者关系是衡量网络架构的重要标准。

 

容错设计(Fault-Tolerance)

首先,Fat-tree的多路径机制本身就是一种容错机制,其次本文使用了一种广播的方式来通知链路,或者交换机的故障。每个交换机和它相邻的交换机保持双向监测,来确定对方是否down掉了。

 

这里分析了两种链路断开的情况。

 

第一种:同一个pod内,下层到上层的交换机的链路断了。那么这个down掉的下层交换机连接的子网和其他主机就彻底断连了。这种情况只能增加叶子节点的交换机来做备用了。

 

第二种:汇聚层到核心层的交换机的链路断了。对于向外的流量少了一条数据通路,向内的数据可能就转发不进来。这种情况可以通过其他的核心交换机和其他的汇聚层交换机来转发,实现容错。

 

功率和散热(Power and Heat Issues):略

 

打包技术(Packing):简单来说,就是把一个Pod里的交换机,比如k=48时,就是48个交换机,装到一个机柜(rack)里;每48台host装到一个机柜里,也即一个Pod的所有host,12个机柜能全部装下。

 

 

 

第五部分:结论

  1. 本文提出的Fat-tree网络架构使得数据中心网络可以继续大规模扩展;
  2. Fat-tree架构向后兼容,还是传统的三层架构;
  3. Fat-tree架构在实现扩展的带宽情况下大大降低了总成本。

 

 

 

第六部分:我的思考

 

问题1:本文提出的 Fat-tree 架构,其优缺点各是什么

优点:

(1) Fat-tree使用了多个小规模、低成本的交换机替代了原来核心层、汇聚层昂贵的、高密度端口的交换机。降低了成本,同时同质的交换机也降低了维护和替换的难度。

(2) Fat-tree改进后的路由算法,可以均匀地转发数据,减轻拥塞的同时还实现了多路径容错的功能。

(3) 总体来说,并没有颠覆原有三层架构,可以向后兼容。

 

缺点:

  1. 由于交换机的数量大增,机房布线的难度大大增加。

 

问题2:本文针对现有架构的问题,分别是如何解决

答:现有架构主要是两个问题:

  • 费用昂贵。主要是核心层和汇聚层的交换机昂贵。
  • 带宽利用率不高。超占比机制,使得完整的带宽性能没有被释放出来。

 

对应的解决方案:

  • 用大量廉价的交换机集群来替代原先少量的昂贵的高性能的交换机。
  • 设计了两级路由表,和均匀转发的路由技术,来提高带宽的利用率及容错。

 

 

问题3:相比于 Fat-tree,如今的数据中心网络架构有哪些新的变化

答:

  1. 虚拟化的流行。一个物理机划分出多个虚拟机,提供服务。
  2. 软件架构的解耦使得东西向的流量变多了。意思是,以前一个系统的前端、后端、数据库都部署在一个物理机上,通常南北向的流量比较大。而现在,Client/Apllication/DB分别部署在数据中心的不同服务器上,服务器之间内部访问调用的流量变大了。同时分布式计算的产生,导致数据中心的服务器之间也会产生大量的流量。
  3. 引入了SDN技术。

 

 

参考文献

Mohammad Al-Fares, Alexander Loukissas, Amin Vahdat. A scalable, commodity data center network architecture. SIGCOMM 2008: 63-74.

Related slides. https://pdfs.semanticscholar.org/bbe5/7b91e8c5154f699583bbaf7fb2b2ebdf9185.pdf?_ga=2.158985978.1521289362.1605967508-912089501.1602771339

博客:https://www.cnblogs.com/nihaizong/p/9261104.html

 

 

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页