云计算系列(四):云计算的超高速交换与浪涌缓存(上)

标签:
云计算超高速无阻塞交换浪涌it |
分类: 网络 |
文/刘新民
网络带宽已经跨过了10M/100M/1000M,当前的10G、N*10G的高速带宽正成为网络建设的基本规格。随着>8*10G性能的需求日趋强烈,超高速网络(40/100G平台)技术已经开始在当前的数据中心部署使用。
云计算网络的性能要求超过常规应用数据中心,这样的要求使得网络平台构建上性能的考虑区别于传统的认识,深入认识云的底层特质。网络的交换容量和网络浪涌的吸收容量即是云计算(或大型数据中心)网络的性能关注点要同时关注的两方面。
超高速交换网络之前的几个概念
线速
指的是线路数据传送的实际速率能够达到名义值,比如千兆端口能够实际吞吐量到千兆,这在交换机是比较轻松的事,但是早期的高端路由器端口如果能够达到千兆实际转发速率,那是非常了不起的(不过现在已经稀疏平常了)。
超线速
如千兆端口能够吞吐的流量超过一千兆(一般也就超出一点点),这种交换机与标准线速设备对接后容易产生丢包甚至将标准交换机“堵死”。在数据中心环境下极少数情况也允许满足超线速的组网,只是对交换机有特殊要求。
全线速
交换机的所有端口能够同时达到线速转发。这个能力也体现了交换机的性能,对于某些性能较低的设备,称为达到全线速转发,是指达到了设备的最高性能而已,有可能离该交换机的端口容量总和还远着呢。
“无阻塞”全线速
有时候在全线速前面再定义一个“无阻塞”,其实是强化交换机的全线速能力,指的是对交换的任意大小字节的报文均能够达到全线速的能力,所有端口都以线速接收帧,并能无延迟地处理被称为“无阻塞(Nonblocking)”,之所以这样叫是因为设备内部没有等待处理的报文(没有阻塞)。但是无阻塞有时也会遇到挑战,在很小的概率下(即实际测试中极不容易出现),确实能够构造特定测试例使得交换机产生阻塞,这是因为传统交换架构下理论上也能分析出阻塞的可能性。
一、超高速交换网络
- 传统交换架构,非真正意义的“无阻塞”
在“数据中心级交换机”概念出现以前(这个概念也是随着云计算发展而产生的,此前只有核心交换机、高端交换机的概念),盒式交换机一般是单芯片,机架式交换机则主要是“交换网+IO芯片”结构,比较先进的交换网一般采用crossbar,架构如图1所示。
传统高端设备以交换线卡连接crossbar高性能交换网,数据在Crossbar内部选路基于实现配置好的规则,同一数据流在内部的运转路径是确定的(HASH算法),因此存在特殊情况下在交换不同级层上会发生阻塞的现象,如图1的数据流1和2在第一级、数据流3和4在第二级的阻塞(情景有点类似于等价路由或链路捆绑的流量不完全均衡性)。这种架构的交换网容量并不大,一般以支持10GE为主。这种非真正意义的“无阻塞”在一般性数据中心并不会遇到挑战,但在大型互联网数据中心,随着近年来ISP业务不断丰富、业务规模不断扩大和实际带宽消耗迅猛增长,已经出现了传统交换架构在互联网数据中心难以满足性能需求的现状。
http://www.h3c.com.cn/res/201004/21/20100421_960434_image001_671510_30008_0.png
图1 传统Crossbar交换架构的阻塞分析模型
- 无阻塞交换,云计算核心交换平台的关键且基本的要求
到了新一代交换平台产生的时代,数据中心级核心交换平台的能力已经确定在10Tbps的级别,交换系统的架构产生了本质的变化,这种变化是为了应对云计算超高速100G、以及实现今后10T环境下的完全无阻塞所带来的挑战而变革产生的架构,也就是CLOS架构。
那么,完全无阻塞的意义就是对一个交换架构无论是理论分析还是实测,都能够达到真正的无阻塞交换(如果不能全线速,完全无阻塞也用处不大了)。完全无阻塞的概念,也是在云计算环境下开始逐步强调的,因为云计算中心应用密度比之传统数据中心高得多,流量情况更为复杂,数据性能要求更为严格,如果在交换平台核心不能满足完全无阻塞的交换条件,瞬时引起的阻塞必然会导致网络流量异常,即使是理论上小概率的瞬时阻塞,也可能在云计算网络中反复出现。这对大型网络来说,是存在隐患的,因为不断增长的业务和流量可能因为核心平台的隐患而有所限制(莫名其妙的情况下发现网络偶然不畅),这种潜在问题有时是无法分析清楚的,特别是已经在运行的网络。因此,完全意义上的无阻塞交换,是云计算核心交换平台的关键而基本的要求。
新一代交换架构三级CLOS&CELL交换可支持完全无阻塞交换,是完全遵循复杂业务流要求的,能够将大规模密集流量在交换系统内部均匀交换,避免了阻塞带来的性能恶化与严重下降。其实现基本原理如图2所示,在系统内部采用动态选路方式(线卡、交换网保存内部数据转发路径信息,如果出现路径不可用或网板、线卡故障,选路信息动态改变,这一切操作由硬件系统内完成),业务线卡接收到的数据包文,进行等长切片处理形成定长信元,每个信元加载动态选路的标记头(长度不够的信元会进行内部填充)。
http://www.h3c.com.cn/res/201004/21/20100421_960435_image002_671510_30008_0.png
图2 H3C新一代CLOS架构&Cell交换实现模型
- 如何构造无阻塞交换网络
云计算需要超大的计算能力和网络交换能力,通过网络来组织数千台至上万台服务器的协同计算,因此云计算的支撑网络也提出了无阻塞的方向。
首先看如何构造大规模的线速网络,如图3所示,从两个方向来扩展,在层次上,每一层的交换设备上行所有链路带宽与下行的所有链路带宽相等,在同一层次,按照下一层设备的上行端口数扩展,如此直到最高层(目前主流构造两层到三层网络结构)。
http://www.h3c.com.cn/res/201004/21/20100421_960436_image003_671510_30008_0.png
图3 大规模网络扩展方式
构造线速交换网络比较简单,但是要达到无阻塞,当前的技术实现还不够彻底,因为在网络级别只能使用链路负载均衡技术实现对带宽的充分利用。如图4所示,实现方式主要有两种。
http://www.h3c.com.cn/res/201004/21/20100421_960437_image004_671510_30008_0.png
图4 链路负载均衡
Round robin方式:将数据流依次向可用链路均匀转发(可以基于统计速率、也可以基于逐包方式),一般来说,当服务器之间全部使用定长报文(如1500字节)交互数据,基本就构成了一个“完全无阻塞交换网络”(是定长数据交换条件下),但是存在的问题是,同一数据流的不同报文可能经过不同网络路径到达目的地,经过网络大规模流量浪涌后会存在严重的乱序问题。
HASH方式:使用网络设备的硬件负载均衡算法,基于数据流的二三层地址信息和四层端口号信息得到不同链路的选路信息,能够保证同一数据流经过相同路径到达目的地,避免乱序,但是不同数据流因为流量大小有差异,使得网络不同链路难以完全均衡,不过在当前技术条件下,不均衡度已经极小,十分接近完全无阻塞交换网络了。
二、浪涌,云计算环境下的一个网络现象
在云计算环境下,性能无疑成为最为关注的核心要素,但是,有了超高速的交换性能,不一定表示网络能够达到理想的效果,还需要关注网络浪涌的吸收容量,我们从分析端口流量情况和网络实际流量情况入手。
- 端口流量
图5是我们进行毫秒级网络流量研究时得到的流量图,不妨称之为微观流量视图(事实上早在2000年左右,运营商的研究机构已经在622M骨干网发现了这个现象)。在秒级、分钟级以上的宏观时间尺度下,流量A和B的采样曲线十分平滑,这是因为流量观测的累积平均效果造成的,当采样尺度缩小到毫秒级,我们发现,从端口得到的流量曲线发生了变化,最高的流量值可能达到平均流量的2-3倍(当然,也有更低的曲线值)。
http://www.h3c.com.cn/res/201004/21/20100421_960438_image005_671510_30008_0.png
图5 微观的流量视图
这个问题的本质来源于交换机的线速转发特性(实际上核心、高端交换机内部还有更大的加速比,即内部交换通道速率一般远高于对外的端口速率,但我们不必过于复杂化)。线速转发的机制,使得交换机在接收或者发送任意一个报文的时候,都不同于我们观察到的结果(我们看到的都是一段时间内的平均速率),任一个报文都是以千兆或万兆速率在转发,而且持续达到线速后,报文之间的转发时间间隔(或称帧间隙)达到了最小值。我们以图6为例作一个不太严格的分析,在千兆端口下,假定转发的报文大小为端口MTU级,即报文为1500字节,计算出的串行化时延约为12微秒,由于报文之间还有帧间隙,为简单起见,假设为8微秒(实际帧间隙非常之小),那么一个报文的转发到链路时间为20微秒。也就是说,要体现交换机线速转发,端口上每20微秒就发送一个1500字节报文。隐含的事实是,任何一个1500字节的报文都以20微秒的标准在交换端口转发出来,所用带宽均为1Gbps。
http://www.h3c.com.cn/res/201004/21/20100421_960439_image006_671510_30008_0.jpg
图6 微观采样的理想化分析
那么如果网络中我们观测到一个端口流量是500Mbps,该如何来理解这个信息呢?如图7所示,最理想的情况当然是每40微秒转发一个报文,这样网络流量最平稳,最恶劣的情况是,在观测周期内,前半段时间流量20微秒的密集(即持续千兆速率转发),后半段时间无数据转发。当然,正常情况下是界于二者之间非常随机的。
http://www.h3c.com.cn/res/201004/21/20100421_960440_image007_671510_30008_0.png
图7 平均速率的理解模型
- 网络的实际流量
网络是由多个网络设备组成的,网络的流量难以有很合适的描述模型,不同的网络业务模型、性能要求都不一样,我们只分析网络数据流的走向情况。
先看一个全线速、完全无阻塞交换机的数据流向,包含两种情况(如图8所示)。不论是A还是B,对单个网络节点而言,即使是全线速无阻塞的性能,也面临着在短时间的高带宽向低带宽的数据流向,相对而言情况A比较容易确定,情况B比较复杂。因此分析网络的实际流量,其本质上网络节点的流量并不是均衡的,也就是说,网络实际流量并不是完全按照网络设备的无阻塞架构来转发的,总是会造成一个瞬时拥塞,即进入交换机的带宽比出交换的带宽要高,如数据中心内部多台服务器向少数服务器传送数据的情况,如图9所示。左边两种情况都不会影响业务性能,但是最右边引起瞬时拥塞,如果产生丢包,必然对上层应用产生影响,特别是云计算环境下,数据流量超大,拥塞的数据被丢掉后必然使得整个云平台的性能和可用性大为降低。这种恶劣的影响并非网络设备交换性能不够产生的,实质上是网络流量的不可控可变带宽比产生瞬时收敛造成的(如多个万兆到少数万兆、万兆到千兆等)。
http://www.h3c.com.cn/res/201004/21/20100421_960441_image008_671510_30008_0.jpg
图8 定向与不定向的网络流量
http://www.h3c.com.cn/res/201004/21/20100421_960442_image009_671510_30008_0.png
图9 网络中的可变动态带宽比
基于以上两方面的分析,我们确定云计算环境下的一个网络现象---浪涌(在一般网络条件下称为流量突发,burst),密集的高速流量,瞬时的收敛性数据传输与同步特点。比之一般网络的突发更为严峻的是云计算网络一旦发生拥塞丢包,所需要处理的数据量比常规条件下大得多。如图10所示,网络端口的平均流量并不高,但是从两个端口向一个端口的流量由于疏密不均,造成了突发。在入端口方向,由于交换线速转发的特点,宏观平缓数据流在不同毫秒级范围内度量结果也不一样(340pps~800pps的成倍关系),当这两个端口流量要向同一端口输出时,是不是会造成更为恶劣的流量突发---浪涌情况?
http://www.h3c.com.cn/res/201004/21/20100421_960443_image010_671510_30008_0.png
图10 突发的基本形态
突发毕竟是瞬时的,一般情况下认为是毫秒级的或亚秒级的(所以叫瞬时拥塞),而平均流量并没有达到所用的带宽,如果是持续的拥塞,则应该是带宽需要扩容了。
对网络节点的突发分析也适用于整个云计算网络,即使是无阻塞的网络架构,其上承载的浪涌突发数据流也是不定向的,整个网络的浪涌吸收能力决定了云计算的密集数据吞吐、交互、处理能力。