作为数据中心交换机,为了支撑数据中心网络内部大量的内部流量,传统的收敛网络已经无法满足这些流量的高效传输了。所以如今的数据中心更多的是在提一种叫做CLOS①架构的无阻塞网络。对于数据中心网络来说,无阻塞就是实现任意服务器之间可以线速交互流量的方式。而对于单一高端交换机来说,无阻塞就是实现单个交换机内部的数据永远不发生阻塞的传输。

1、CLOS架构的产生与特点

说到CLOS架构,先来讲讲历史,也就是CLOS架构产生的历史。

其实CLOS架构这个东西算是老树新花了。由Charles Clos于1953年首次正式使用该术语,它代表了实际多级电话交换系统的理想化表示。所以当时这老先生在想出这个架构的时候实际上是为电话交换系统使用的,没想到的是几十年之后的今天,高端交换机路由器遇到高速转发的问题时,又重新用起了这个架构,所以说CLOS架构并不是一个新概念。

CLOS架构只是一个架构形式,可以用于交换机内部通过多个Crossbar交换矩阵排列组合形成,也可以用于宏观上的多个交换机排列组合成CLOS架构,而他们的目的是相同的,那就是无阻塞。而CLOS架构又是怎么实现无阻塞的呢?

CLOS架构是由二个参数k,n来定义。CLOS架构分为三级,在第一级,也就是CLOS架构的输入端,有k个输入阶段的输入设备,每一个输入阶段设备都有n个输入和k个输出。中间阶段Crossbar Switch有k个。每一个输入阶段交换与每一个中间阶段交换之间只有一个连接。总共具有k个输出阶段交换,每一个都具有k个输入和n个输出。每一个中间阶段交换与每一个输出阶段交换只有一个连接。具体CLOS架构如下图所示。

 

图1:CLOS架构示意图

所以,我们可以看出,CLOS架构的特点有:

  • 多级交换,典型为三级交换架构
  • 在每一级的每个单元都与下一级的设备全连接
  •  到指定目的地,在第1级交换单元存在多条路由,而后续交换单元都只存在唯一的一条路由
  • 严格意义上的无阻塞
  • 支持递归,可无限扩展

第一级和第三级,也就是输入端和输出端的数量是一致的,这个概念用于部署网络的层面上就是输入端和输出端的输入/输出带宽是一致的,也就是说我上联到第二层的带宽是10G,那么第二层下联到输出端的带宽也要是10G,或者第二层上联到第三层的链路必须是k*10G的带宽才行,这种形式的连接才能实现真正的无阻塞

以上便是CLOS架构的大体概念。需要注意的是CLOS架构只是一种几何拓扑结构,并不是一种专门用于交换矩阵的结构,更不是一种新型的交换矩阵。只不过厂商把CLOS架构用在了部署Crossbar交换矩阵中,实现高端交换机内部的无阻塞转发。

2、基于CLOS的交换架构

读者可能有这样一个疑问,支持交换网板的交换机交换网板的数量顶多就9块,怎么部署CLOS架构,更不用说没有交换网板的交换机了,只有两个引擎,每个引擎上只有一个Crossbar,更没办法组建CLOS架构了。所以可能会像之前笔者想的一样,分布式Crossbar就是CLOS架构,每个线卡上一个Crossbar,从而可以实现三级的CLOS架构。但是我们通过上面对分布式Crossbar的辨析我们已经知道了这种方式其实并不是真正实现的。所以其实对于具有交换网板的交换机,每个交换网板上可以有多个Crossbar,或者把MAC芯片当做输入或者输出级,所以同样也可以实现CLOS架构。而实现形式与之前讲解的CLOS架构一样。所以这也是有交换网板的交换机的优势之一,实现交换矩阵与引擎的物理分离,可以有更高的扩展性扩充更多的Crossbar资源来组件CLOS架构。

3、基于CLOS的网络架构

CLOS架构的网络拓扑其实比CLOS架构的交换矩阵实现起来更为容易,并且更容易理解。我这里以我司为阿里巴巴设计的方案为例,讲解下基于CLOS架构的网络拓扑。
 

图2:阿里巴巴网络CLOS架构示意图

网络拓扑如上所示。以8台S6200-48XS为数据中心核心,48台S6080为接入组成CLOS网络。一台S6080有80个千兆端口作为接入口,用8个万兆作为上联端口与8台核心S6200的万兆端口进行全连接,从而实现10个千兆接入口与一个万兆上联口对应,相同的,S6200下联也是如此连接。对于接入设备来说,有多少带宽接入,就用多少带宽上联,并且输入输出的带宽是1:1对等的,从而实现CLOS架构。

所以通过这个案例可以看出,想要实现网络拓扑的CLOS架构,只要让下联和上联的带宽1:1对等,同时让网络的上行和下行的带宽1:1对等,实现无阻塞网络,就基本达到了组建CLOS架构的目的了。

① “CLOS”名字取自它的发明者Charles Clos的姓氏。