1.4 变革3-Tier——向Leaf-Spine演进
传统数据中心是Web服务器的聚集地,流量多从Internet而来访问Web服务,这些流量通常被称为数据中心的“南北向流量”。与“南北向流量”对应的是发生在数据中心内部服务器间的“东西向流量”,不过这部分流量是很少的,对于传统的数据中心来说,南北向流量可以占据到80%。
2005年前后,亚马逊开始推广AWS,从此IT基础架构进入云计算时代,传统数据中心开始向云数据中心转型,虚拟化技术得到了高速的发展。IT应用架构方面,企业应用逐步从单体架构完成了向“Web-App-DB”架构的转型,分布式技术在谷歌公开“三驾马车”后开始盛行。这些技术趋势给数据中心带来的直观变化,是虚拟机数量几何级的增长,而从深一些层次上来看,则是虚拟机间的分工则越来越精细。从网络的视角来看,在分工变得精细后,原来很多在服务器中内部消化的流量都跑到了网络上,再加上虚拟机迁移、业务备份等流量的增长,东西向流量开始取代南北向流量,在数据中心占据主导地位,比例可达70%以上。
流量模型的转变对于数据中心的网络架构提出了全新的要求。
首先,东西向流量的爆发意味着数据中心内大部分的流量都将发生在服务器之间,在3-Tier网络架构中,这类流量的处理需要经过层层的设备,导致流量的通信时延较长,而不同服务器间的通信路径很有可能是不同的,从而又导致了时延的不可预测性,这两个问题对于数据中心的一些关键应用(如大数据)是不可接受的。
其次,随着虚拟化技术得到普遍的应用,物理的位置变得无关紧要,跨机架的流量在统计上的分布趋于更加均匀,3-Tier网络中通常所采用的10∶1、6∶1这种大收敛比将使得跨机架流量在上联口被大量地阻塞,降低网络的通信效率。因此,传统的3-Tier网络架构并不适合用于东西向流量的传输。
虚拟机框和跨设备链路聚合技术虽然解决了STP的问题,但是它们并没有改变3-Tier的架构,而且在扩展性上也非常受限。解决东西向流量的问题,必须从3-Tier架构本身入手进行变革,数据中心网络开始向扁平化的、无阻塞的网络架构进行演进。
针对于此,一些大型OTT开始在其数据中心中构建一种名为Leaf-Spine的网络架构,如图1-6所示。相比于3-Tier, Leaf-Spine拿掉了核心层,实现了层次的扁平化,Leaf负责所有的接入,Spine只负责在Leaf间进行高速传输,网络中任意两个服务器都是Leaf-Spine-Leaf三跳可达的。Leaf和Spine间是Full-Mesh的,即两个Leaf间可以通过任意一个Spine进行中继,Leaf通过ECMP可以将不同的流量分散到不同的Spine上进行负载均衡,如果一个Spine挂掉了,那么原来经过这个Spine转发的流量可以迅速地切换到其他Spine上。Leaf和Spine均可以使用COTS交换机,如果接入端口不够用了就直接在Leaf层新接交换机,如果Leaf间的带宽不够用了就直接在Spine层新接交换机。这不仅降低了系统的构建成本,还极大地提高了网络的可扩展性。
图1-6 Leaf-Spine组网(3-Stage CLOS)
做一个简单的图形变换就可以发现,Leaf-Spine就是对CLOS进行了折叠(图1-6即相当于3-Stage CLOS),因此Leaf-Spine在结构上是无阻塞的。在所有端口速率一致的情况下,如果能够使用Leaf中一半的端口来上联Spine,那么理论上就可以得到1∶1的收敛比。不过考虑到成本问题,实际情况中能做到3∶1到2∶1之间,就可以近似地认为能够支撑无阻塞转发了。
如果3-Stage的Leaf-Spine仍然无法满足其网络在扩展性方面的需求,此时可采用5-Stage的Leaf-Spine结构,如图1-7所示,每个POD都是一个3-Stage的Leaf-Spine,不同的POD通过Core交换机进行互联,跨POD的流量都是Leaf-Spine-Core-Spine-Leaf五跳可达,因此Core也可以看作Super Spine。Spine与Core间做Full-Mesh的连接,如果POD不够用了就加POD,如果POD间带宽不够用了就加Core。目前,5-Stage的Leaf-Spine所能够支持的端口数,足以支持单数据中心对组网容量的需求,一般情况下3-Stage Leaf-Spine就足够用了,只有一些超大规模的数据中心才会使用到5-Stage Leaf-Spine。
图1-7 Leaf-Spine组网(5-Stage CLOS)
图1-8是Facebook数据中心网络的立体结构,每个POD中48台Leaf(图中的Rack Switch),4台Spine(图中的Fabric Switch), POD间通过Core(图中的Spine Switch)互联。图1-9是与图1-8等效的平面结构,可以清楚地看到,这是一种典型的5-Stage Leaf-Spine结构。Facebook在Core层中使用了Fat-Tree的设计,将5-Stage Leaf-Spine中的每个Core层的交换机都替换为由48个Spine Switch组成的Spine Plane,以尽可能地提高Spine-Core间的收敛比。
图1-8 Facebook 5-Stage Leaf-Spine(立体结构)
图1-9 Facebook 5-Stage Leaf-Spine(平面结构)