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

 

 

  • 14
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
This book highlights the different types of data architecture and illustrates the many possibilities hidden behind the term "Big Data", from the usage of No-SQL databases to the deployment of stream analytics architecture, machine learning, and governance. Scalable Big Data Architecture covers real-world, concrete industry use cases that leverage complex distributed applications , which involve web applications, RESTful API, and high throughput of large amount of data stored in highly scalable No-SQL data stores such as Couchbase and Elasticsearch. This book demonstrates how data processing can be done at scale from the usage of NoSQL datastores to the combination of Big Data distribution. When the data processing is too complex and involves different processing topology like long running jobs, stream processing, multiple data sources correlation, and machine learning, it’s often necessary to delegate the load to Hadoop or Spark and use the No-SQL to serve processed data in real time. This book shows you how to choose a relevant combination of big data technologies available within the Hadoop ecosystem. It focuses on processing long jobs, architecture, stream data patterns, log analysis, and real time analytics. Every pattern is illustrated with practical examples, which use the different open sourceprojects such as Logstash, Spark, Kafka, and so on. Traditional data infrastructures are built for digesting and rendering data synthesis and analytics from large amount of data. This book helps you to understand why you should consider using machine learning algorithms early on in the project, before being overwhelmed by constraints imposed by dealing with the high throughput of Big data. Scalable Big Data Architecture is for developers, data architects, and data scientists looking for a better understanding of how to choose the most relevant pattern for a Big Data project and which tools to integrate into that pattern. Table of Contents Chapter 1: The Big (Data) Problem Chapter 2: Early Big Data with NoSQL Chapter 3: Defining the Processing Topology Chapter 4: Streaming Data Chapter 5: Querying and Analyzing Patterns Chapter 6: Learning From Your Data? Chapter 7: Governance Considerations
实时系统是指在严格的时间限制下,对输入数据进行处理并及时产生输出响应的系统。在实时系统中,一个重要的因素是系统的架构设计,而对于实时系统的架构设计来说,一个关键的考虑因素是其鲁棒性和可扩展性。 所谓鲁棒性,是指系统能够应对各种异常情况和外部干扰而保持正常工作的能力。在实时系统中,鲁棒的架构可以通过多种方式实现,例如使用冗余设计和错误处理机制。冗余设计可以通过多个处理器或模块的冗余部署来提高系统的容错能力,以便在一个处理器或模块发生故障时,系统依然能够正常工作。而错误处理机制可以包括错误检测和错误恢复两个方面,以保证系统对错误的及时发现和恢复能力。 可扩展性是指系统能够根据实际需求进行灵活的扩展和升级的能力。对于实时系统来说,可扩展的架构可以基于不同的需求进行模块的添加或替换,以满足不同规模和性能要求的系统。例如,当实时系统的负载增加时,可以通过增加处理器数量或增加存储容量来扩展系统的性能。 对于实时系统的架构设计,一个常用的方法是采用分布式架构。在分布式架构中,系统的不同功能模块可以分布在不同的节点上,通过通信和协作来完成任务。这种设计能够充分利用分布式计算和通信的特点,提高系统的并行度和可靠性。 综上所述,Robust scalable architecture for real-time systems(实时系统的强韧可扩展架构)PDF提供了一种鲁棒性和可扩展性的实时系统架构设计方案。该架构通过冗余设计和错误处理机制实现系统的鲁棒性,同时采用分布式架构实现系统的可扩展性。这样的架构设计能够有效应对实时系统中的异常情况和外部干扰,并能够根据实际需求灵活扩展系统的性能和规模。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值