1、概述

CLOS来自于传统电路交换概念,这个概念年代太久远,在当前数据通信网络中,内涵有所变化。本文主要谈的是实际上赋予的与原来略微有所差异的内涵。

CLOS架构本身概念比较宽泛,有设备级的CLOS,也有网络级的CLOS。

网络级CLOS

这个概念实际上与当前硅谷流行的FAT TREE网络结构很相似,甚至可以认为是一回事,主要是通过组网来形成非常大规模的网络结构,本质是希望无阻塞。

网络级CLOS,一般来说是非严格CLOS的(关于严格与非严格,后面会进一步讲述)。

设备级CLOS

设备级,又分为严格CLOS和非严格CLOS。

CLOS的无阻塞也有不同,如名义上的无阻塞(非严格CLOS算是此类)和完全无阻塞(严格CLOS算是此类)。在以往的交流中,发现搞测试的人对于这个概念很容易接受,因为对于每种情况大家立马能够想象出或构造出理论上的测试方法来证明。

2、FAT TREE网络与网络级CLOS

要说FAT TREE概念,可以先从Infiniband[注释1]交换机的架构入手。Infiniband交换机动辄有288个端口(端口速率10G/20G/40G),其芯片就是通过一种FAT TREE的方式来搭建高密端口交换机的。


注释1:InfiniBand架构是一种支持多并发链接的“转换线缆”技术,在这种技术中,每种链接都可以达到2.5 Gbps的运行速度。这种架构在一个链接的时候速度是500 MB/秒,四个链接的时候速度是2 GB/秒,12个链接的时候速度可以达到6 GB /秒。

InfiniBand技术主要是针对服务器端的连接问题的。因此,将会被应用于服务器与服务器(比如复制,分布式工作等),服务器和存储设备(比如SAN和直接存储附件)以及服务器和网络之间(比如LAN, WANs和the Internet)的通信。

举个例子,一个Infiniband芯片如果有24个端口( 10G/20G/40G),如图1所示。如何构造一个288端口(12槽位,每槽位24端口)的机架式交换机呢?

图1 24端口Infiniband芯片示意

如图2所示,这个交换机内部采用36片同款芯片,以一种FAT TREE(中文称为胖树)的结构实现了高密的高速端口。曾经有家以做高密高速万兆为基本产品的芯片厂家,提出过类似的以太网交换机方案 (当时还不是很理解这个模型,只是觉得思路很好)。

图2 FAT TREE的Infiniband交换机内部架构

在很多高性能计算环境中,Infiniband交换机之间也有这样组网的,并且经常采用同一款交换机来组网,网络拓扑和原理同图2(Infiniband在不同带宽之间转换,会引起时延增大,并影响高性能计算效率)。

在2010年初的时候,曾与一位来自Cisco的同行A讨论网络设计。A提出了CLOS网络结构的概念。

图3 “CLOS”网络结构

如图3所示一个5000个千兆的服务器集群网络,用4台12500+125台5800可构成一个5000个千兆的带宽上无阻塞网络。5800使用40个千兆接服务器,4个万兆分别上联不同的12500。当时12500还不能支持4台IRF,所以需要全网使能OSPF路由。现在则无所谓了,4台12500 IRF后,全网可实现带宽上无阻塞的二层网络。注意,这里使用的是“带宽上无阻塞”,A要求的CLOS是任意服务器之间通信没有带宽差异,都是1G。但是,他还给网络提了要求,就是接入上行的4条链路以round robin[注释2]轮转方式进行流量负载分担,并且要求服务器吞吐的报文字节等长,均为1500字节,以及服务器进行报文乱序的纠错。所有这些要素都加上,这个特定网络就是完全无阻塞CLOS的了。


注释2:轮转调度(Round Robin Scheduling)算法就是以轮转的方式依次将请求调度不同的服务器,即每次调度执行i = (i + 1) mod n,并选出第i台服务器。算法的优点是其简洁性,它无需记录当前所有连接的状态,所以它是一种无状态调度。

因为我们的12500当时就是CLOS概念,所以我们也并不好奇这个网络需求,只是基本所有的接入交换机都无法做到round robin的负载分担。

考考各位,如果增加一层汇聚层,使用24个万兆的盒子,如何来构建更大规模的带宽无阻塞网络(1万-2万千兆端口)?(见[注释3])


注释3:答案简单,增加一层汇聚的万兆box,一半端口下挂接入交换机,一半端口上行接核心交换机(每个上行端口接一台核心)

去年底HP和我们讨论FAT TREE的网络结构,使用一个64端口的万兆设备来构建2000个万兆的无阻塞网络方案,使用的实际上是类似图2的方案,只是将堆积的芯片换成盒式交换机。

现在来说这个网络会有什么不足,为什么不是严格CLOS?

CLOS的核心精神是完全无阻塞或严格无阻塞,这样的网络结构,无论是“CLOS”结构还是FAT TREE结构,只是在带宽上看起来无阻塞,如接入层上下带宽相等,但是数据流如何分布到不同的上行链路呢?

如果是采用round robin方式,因为报文大小的差异,会使得不同链路实际上流量不均,而且是可构造测试例证明的;

如果是HASH算法,不论是链路聚合还是等价路由,也不可能完全均分,比如某个单条流就只能HASH到一条路径,如果存在单条大流量,如千兆TCP单流,则会使得上行链路流量不均。

所以,当前技术下,网络的CLOS结构并非严格CLOS。

 

3、设备级CLOS

设备级CLOS也是分严格无阻塞CLOS和非严格CLOS。

对S12500的具体体系架构,IP领航相关文章已经进行过介绍,这里不再赘述。

S12500除了CLOS架构,还具备cell级的交换,也就是报文在交换机内是经过切片、等长交换的,而且交换机内是每个端口通过credit模式[注释4]通信达到内部lossless,因此12500是严格CLOS、完全无阻塞的。(往往主要关注点在CLOS架构、超大缓存上,而忽略了这样一些关键细节)。并且,这也是经过了极其严格的Tolly测试的。

图4 12500的多级架构

再来看一个问题:有网友问,关于CLOS架构,实际应用中就是一个主控板加独立交换路由业务板吗?

从大的范围来看,CLOS是多级、多路径交换的一种方式,其实与主控板、独立交换等没有直接联系,只是在设计这样一个CLOS系统下,将主控与交换分离,更有助于提升系统的可靠性,以及架构将来的扩展性。因此在这个层面上来看,实际应用中确实是主控板+独立的交换路由业务板。

但只有主控与交换分离还是远远不够的,还要看是否能够达到完全无阻塞交换,流量如何上多个交换网,内部如何实现流量调度(内部lossless)以及VOQ能力等。

此外,使用多级crossbar的交换网,也能够搭出一个CLOS架构,但这不是严格CLOS,因为crossbar是逐流进行交换的。例如,Cisco明确指出N7000是crossbar架构(参见Cisco Live2010 N7000的架构材料,2011删掉了这一页),但是其线卡能力很强,单播报文通过round robin方式上交换网,组播通过HASH方式上交换网,可以看到交换网crossbar每端口带宽23G,总的来说每个槽位分配的带宽是非常高的,所以阻塞可能性非常之小,同时使用多包组合的superframing技术来提升转发效率,行为上与12500很接近了。

设备级的CLOS不同厂家实现方式不一样,H3C的实现是其中一种方式。

因此我们说某产品不是CLOS,正确的说法应该是“非严格CLOS”或“非严格完全无阻塞”。

实际上,CLOS、严格CLOS,或称无阻塞、完全无阻塞,也都是比较相对的概念,只是强调产品的架构适应能力有差异而已,无需在概念上过于区分。对于特定的应用场景,特别是大流量重负载网络环境,严格CLOS架构的设备业务承载能力显然要强不少。

关于CLOS架构的举例 网络级 设备级 FATTREE网络 网络级CLOS 以及CLOS涉及的调度算法RR的更多相关文章

  1. 什么是CLOS架构?

    Clos架构,诞生于1952年,是由一位叫Charles Clos的人提出的,所以它并不是一个新的概念. 这个架构主要描述了一种多级电路交换网络的结构.Clos最大的优点就是对Crossbar结构的改 ...

  2. 数据中心 CLOS 架构

    1.数据中心网络架构挑战 随着技术的发展,数据中心的规模越来越大,一个数据中心的服务器容量从几年前的几千台服务器发展到今天的几万甚至几十万台.为了降低网络建设和运维成本,数据中心网络的设计者们也竭力将 ...

  3. 网络知识梳理--OSI七层网络与TCP/IP五层网络架构及二层/三层网络(转)

     reference:https://www.cnblogs.com/kevingrace/p/5909719.html https://www.cnblogs.com/awkflf11/p/9190 ...

  4. CLOS架构是啥?

    有多少种技术能够在六十五年后依旧能够熠熠生辉,在IT的基础架构中扮演着重要角色?CLOS架构应该算是一项.Clos架构,诞生于1952年,是由由贝尔实验室一位叫Charles Clos的人提出的.CL ...

  5. IT人的5G网络架构视点:从网络架构演进的前世今生详解5G各NF网络功能体

    一.引言 以前从来没关注电信无线上网网络的具体架构(也即PS域架构),现在开始学5G接触这些东西时,理解起来很痛苦,资料也少,于是一方面到处找人咨询,一方面到处查资料,最后发现应该从3G.4G时代的架 ...

  6. 亿级在线系统二三事-网络编程/RPC框架 原创: johntech 火丁笔记 今天

    亿级在线系统二三事-网络编程/RPC框架 原创: johntech 火丁笔记 今天

  7. 设备 VMnet0 上的网络桥接当前未在运行。

    早上,我打开我的虚拟机,却发现一个问题, 桥接网络怎么都连接不上. 报的是如下的错误 ------------------------------ 设备 VMnet0 上的网络桥接当前未在运行.该虚拟 ...

  8. CCNA网络工程师学习进程(3)常规网络设计模型与基本的网络协议

        本节介绍分层的网络设计模型与基本的网络协议,包括ARP协议,ICMP协议和IP协议.     (1)三层网络架构: 一个好的园区网设计应该是一个分层的设计.一般分为接入层.汇聚层(分布层).核 ...

  9. 网络主动测评系统,IT网络运维管理的法宝!

    随着计算机网络的普及和快速发展,互联网已经融入到人们的衣食住行等方方面面,如工作.购物.音视频聊天.视频会议.朋友圈.抖音.在线网游.网络电影电视等.毫不夸张地说,现如今大部分人的绝大多数时间都已经离 ...

随机推荐

  1. Python3练习题系列(01)

    2018-06-13 题目: 根据用户回答做出相应的判断,完成一个“回答-判断”的小游戏 Python3知识点: if, else, elif 实例代码: print("You enter ...

  2. 2041 ACM 超级楼梯

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=2041 数学问题,找规律,可以先假设全一步,然后一个两步的,两个两步的~~.很容易发现规律:F[N]=F[N ...

  3. 学校的统一订书80%该烧掉——IT推荐书单

    学校的统一订书80%该烧掉——IT推荐书单 作者: 夏浅音.py 中文图书个人黑名单:清华大学出版社的国产作者,例如一段错n次的谭浩强.一页错n次的严蔚敏... 中文图书个人白名单:机械工业出版社.电 ...

  4. netty同时做http和websocket(netty入门)

    ---恢复内容开始--- http://www.jianshu.com/p/5c29c6c6d28c ---恢复内容结束--- http://www.jianshu.com/p/5c29c6c6d28 ...

  5. [Beego模型] 五、构造查询

    [Beego模型] 一.ORM 使用方法 [Beego模型] 二.CRUD 操作 [Beego模型] 三.高级查询 [Beego模型] 四.使用SQL语句进行查询 [Beego模型] 五.构造查询 [ ...

  6. java try-with-resource语句使用

    定义 JDK7之后,Java多了个新的语法:try-with-resources语句, 可以理解为是一个声明一个或多个资源的 try语句(用分号隔开), 一个资源作为一个对象,并且这个资源必须要在执行 ...

  7. centos7下安装gcc7

    之前写过在linux下升级gcc 4.8至gcc 4.9的过程,现在gcc最新的版本是8,有些软件必须是gcc 7或者以上的版本才可以编译,比如clickhouse,gcc 7的安装过程和之前基本上一 ...

  8. Android典型界面设计(3)——访网易新闻实现双导航tab切换

    一.问题描述 双导航tab切换(底部区块+区域内头部导航),实现方案底部区域使用FragmentTabHost+Fragment, 区域内头部导航使用ViewPager+Fragment,可在之前博客 ...

  9. CentOS7 命令笔记

    网络 ifconfig已经过时,查看ip地址请使用ip addr或者ip link 服务 查看系统和硬件信息 cat /etc/os-release uname -r 显示正在使用的内核版本 dmid ...

  10. 【Zookeeper】源码分析之服务器(四)之FollowerZooKeeperServer

    一.前言 前面分析了LeaderZooKeeperServer,接着分析FollowerZooKeeperServer. 二.FollowerZooKeeperServer源码分析 2.1 类的继承关 ...