数据中心网络设计思索

时间:2022-06-05 05:05:00

导语:数据中心网络设计思索一文来源于网友上传,不代表本站观点,若需要原创文章可咨询客服老师,欢迎参考。

数据中心网络设计思索

1引言

数据中心拥有庞大的机群,已经广泛应用于数据存储、数据分析以及超大型网络服务中[1]。在实现千兆兆级数据存储过程中,数据在网络中的传输和处理过程将消耗很多资源,如网络带宽、存储空间以及电能等。在实际应用中,如网页搜索、医学图像处理、社区网络挖掘等领域,数据存储和处理的数量相当庞大,因此对于数据中心来说,一个最基本的要求就是其必须具有很好的扩张性,拥有成千上万甚至几十万数量的服务器。尽管普通计算机成本降低,但是架构庞大数量服务器的机群仅满足扩展性的要求且有效控制整体成本仍是一个难题。由于在数据中心服务器的数量可以急剧增加,因此在架构内部通行的带宽也必须实现大于线性关系或者平方关系的增长,以适应频繁的数据访问和分布式数据处理及存储。为了减少搭建内部链接的成本,通常使用带网卡的普通计算机以及已有网卡的通用服务器。至今为止,构建数据中心内部链接的方式大致可以分为两种:

(1)以交换机为中心的结构。通过交换机实现内部连接和服务器数量的扩展,并且不对服务器的配置进行任何修改。

(2)以服务器为中心的结构。每个服务器仅需要实现数据处理和存储,也需作为数据的转发节点,保证无需对交换机配置进行更改l6]。由于数据中心网络中节点数量巨大,需要建立网络内部统一编址和路由策略,以实现节点之间的高速通信过程,因此人们引入网络虚拟化技术,实现节点资源构建,以及组建和管理规模庞大的网络结构。本文结合网络虚拟化平台的研发经验,将提出一种以服务器为中心的数据中心结构设计方法——圆柱型数据中心网络(CylinderDataCenterNet—works,CDCN)。在此架构中,采用以服务器为中心的设计方法,每一个节点由一台服务器组成。与以交换机为中心的数据中心网络相比,CDCN采用的设计方法更具优势。首先,将网络传输控制由交换机转移到服务器中执行,提高了网络架构中各虚拟网络结构和路由策略的可控性和编程性。其次,以服务器为中心的设计方法采用低端的、网络第二层路由处理的layer-2交换机,因此网络架构的成本比较低。

2CDCN架构设计

2.1网络结构

CDCN网络由两种设备组成:具有两个网络接口的服务器和拥有n个端口的交换机,且服务器和交换机被分为是列。在该结构中,只有两个参数和k,因此CDCN网络也可称为(,愚)CDCN。我们用Ho..•1表示k个服务器列。个服务器列和k个交换机列在水平方向上环绕成一个圈,如图1所示。由此可见,CDCN的结构是一个圆柱型,在水平方向是一个圆环,在竖直方向上由服务器和交换机层相互间隔交错组成。其中,服务器的两个端口分别连接在两侧的交换机上。如架构图所示,在Hl列中的服务器,一端连接在Sl列的交换机上,另一端则与S(_1)列的交换机相连。对于S层中的一个端换机,半数端口连接E列中的n/2台服务器,另一半则连接Hc舳列中的n/2台服务器。为了更简单地描述CDCN的结构,下面称服务器H()m列为H列的顺时针方向相邻列,而H(汁_1)舳列则是列的逆时针方向相邻列。在拥有k列的CDCN架构中,每一个服务器列由(n/2)个服务器构成,每一个交换机列由(n/g)个交换机组成。对于列的(n/2)个服务器,用(…)表示,其中∈[o,鲁一1](0≤≤k一1)。因此,在CDCN中一个服务器的位置标识即I【)号可定义为(C,t产…vo),其表示在服务器列Hc中标号为(…扩)的服务器。在实现对服务器进行标识的情况下,服务器和交换机之间的内部连接如下:对于在任一服务器列H中2(n/2)台服务器及其顺时针相邻的服务器列H(c+l】,可分为(n/2)卜个单元组,且每个组拥有个服务器。在单元组中,每个服务器的标号具有以下属性:当把第C列的标识删去之后,其余的标识信息一致。因此,在一个单元组中,一半数量的服务器属于Hc列,另一半属于H(c_列。同时,此台服务器连在同一个标号为Sc的交换机上。因此,对于编号(…以vo)的服务器中,有n/2台标号为(……)的服务器属于Hc列,其中0≤≤鲁一1;另有n/2台相同标号的服务器属于H(c+1)列,且都通过列的交换机连接。如图2所示,在一个(8,2)CDCN网络结构中,每个服务器列由(8/2)。一16台服务器组成,且每个服务器的编址有两位标号。图中第一行的服务器标号都为(O0),而最后一行的标号均为(33)。若令(vo)一(0O),那么在H1列中共有4台服务器,它们的标号分别是(0),04≤3,也就是(OO),(1O),(20)和(3O)。同样,在H0列也有4台标号为(Oo),(10),(2O)和(3O)的服务器。这8台服务器连在S列的同一交换机上。

2.2网络拓扑结构扩展性

2.2.1服务器数量

在此结构中,每列有(n/2)台服务器,在(,)CDCN网络中总共有k(n/2)台服务器。定义N为(,五)CDCN网络中的服务器总数,那么N一(n/2)。若采用48端口的Gbit带宽的交换机,构建3层(48,3)CDCN架构,那么该架构将有41472台服务器。而当扩建到(48,4)CDCN架构时,服务器的数量将增至1327104台;若再在此基础上增加一层结构,即(48,5)CDCN网络,那么该架构拥有的服务器数量将扩展至4千万台左右。由此可见,CDCN通过简单的链接实现了较好的扩展性。

2.2.2交换机的数量

在(,尼)CDCN网络结构中,每一个交换机列拥有(n/2)台交换机,总共需要k(n/2)卜台交换机。在定义的服务器标识(…vc…)中,若保持标号不变,那么总共有(n/2)个连接方式,且每一个连接方式需要一台交换机,即一台交换机连接台标号为(1……vo)的服务器(其中o4≤詈一1),因此构建(,z,忌)CDCN网络共需要k(n/厶2)台交换机。

3路由策略设计

3.1数据包的两步传输

在CDcN网络中,包传输过程可以分为两个步骤:第一步是将数据包从源服务器发送到与目的地址一样的中间服务器;第二步是将数据包从中间服务器传输到目的服务器。例如,源服务器s发送一个数据包到目的服务器d,且两服务器的编址分别是(G,L)和(,),其中L和为服务器S、d的地址标识,L一(…),一(…),其中L一。其传输过程如下。(1)步骤1:螺旋方向传输在Hc列中的服务器S将数据包发送到相邻服务器列H(c一1)中的服务器S,这两个服务器的地址标识除第C位不同,其余均与s相同,且s的标识可以是[0,鲁一1]中的任厶意值。或当传输数据包到S2,Sz除了第((G+1))位不同,其余均与5相同,且Sz的标识可以是Eo,n/2—13中的任意值。此时,在传输过程中,地址标识仅更改一位。因此,当数据包从一个服务器列传输到顺时针相邻的服务器列中时,其地址标识仅变化一位,并且经过忌次节点跳跃可以达到任何一个服务器。例如,在(,忌)C]3CN的网络结构中,数据包从(O,0…O)传输到一1,1…1)的途径为(O,0…O)一(1,0"-01)一(2,0…l1)一…一(志~1,1-.-1)。由于此路径构成了一个螺旋结构,因此称其传输过程为“螺旋方向传输”。在落选方式传输中,数据包既可以向顺时针方向传输,也可以往逆时针方向传输。但是,在传输过程中,为了避免传输环路,所选择的方向必须前后一致。为此,利用数据包包头中一部分区域来记录传输的方向信息。在实现中,默认的螺旋传输方向为顺时针方向。(2)步骤2:环方向传输当传输到与目的服务器d地址标识相同的服务器d之后,数据包将按顺时针或者逆时针方向传输到相邻的、具有相同标识的服务器列。在实现过程中,CDCN选择更短的路径进行传输。例如,在H*列服务器d中传输数据包到H(ca+)列的服务器中,此时(Cd+k-*)%愚≤Lk/2J;否则,服务器d将数据包发送至H(c+㈩)列。但不论往哪个方向传输,下一跳服务器的地址编址必为。在此过程中,数据包传输路径犹如环状,因此称该阶段为环方向传输。

3.2静态路由算法

CDCN采用相对简单的路由算法实现架构内部数据的有效传输,其路由过程如算法1所示。源服务器地址为(G,L),目的服务器为(Cd,L),D表示传输的方向,D一1表示顺时针方向传输,D—一1表示逆时针方向传输,在默认情况下D一1。算法的输出是下一跳服务器地址(,)。算法1StaticRoutingAlgorithm:SRoute(cs,L。,cd,Ld,D)Input:(C,L)表示当前运行路由算法的服务器地址;(Ca,Ld)表示目的地址;D表示数据包头中记录的传输方向信息(顺时针为1或者逆时针为一1)其中,L一(砖~1…诣),Ld一(皓一1…硼)。Output:下一跳服务器地址(,)。1if{(Ca+k-C)k≤1andL。一vCs—La—vcs)or{(cs+k-Cd)k≤1andLd—vcd—L一v}then/*L—v表示删去标识L噶第cs位*/2Ca—Cd;—3else/*S不能直接达到目的地址*/4ifL。一一then—Ld;/*平面环型方向上*/5if(Cd+k—Cd*)k≤Lk/ZJ)then6C一(C。+1)k7else(二u一(C。+k一1)k8else一(…va..•);/*竖直螺旋方向上*|lO【二u一(C。+D一1)k;11return((二u,);在路由算法1中,并没有计算在两服务器之间的最短路径。但是,算法1产生的路径长度是有上限的。在此,对算法中可能产生的最长路径进行分析。在此过程中,将连接在一个Layer-2交换机中的两个服务器之间的包传输视为一次跳跃。从源服务器5出发,数据包最多经过忌次跳跃,先通过螺旋方向传输,到达服务器d(服务器d与目的服务器d拥有相同的地址标识)。然后,经服务器d出发,在环型方向经过最多Lk/zj次跳跃,达到目的服务器d。由此可见,在(,忌)C~X2N架构中,路由算法1产生的最长路径为+Lk/zj。

3.3容错路由策略

3.3.1在竖直螺旋方向中的容错方法

在螺旋方向的途径中,CDCN通过迂回的传输方式绕过出错节点,将数据包发送到与目的地址标识相同的服务器。之后,在环型方向上传输数据包到达目的服务器。在螺旋方向上的容错过程可分为3个步骤:如果在顺时针方向下一跳服务器出错,那么首先将数据包传输到顺时针方向相邻服务器列;如果在顺时针方向下一跳服务器列中服务器均出错,那么数据包将掉头,向逆时针方向传输;在调转传输方向之后,数据包将一直沿着逆时针方向以螺旋式路径传输。

3.3.2在水平环型方向中的容错方法

环型传输过程仅有两个方向:顺时针和逆时针。当数据包沿着一个方向传输过程遇到出错节点时,将改变传输方向,沿着相反的方向传输。为了避免产生传输环路,传输方向仅能改变一次。若数据包在沿着改变之后的方向传输中还遇到出错节点,CD(节点将丢弃该包。

4网络性能测试

4.1单节点性能

在测试过程中,采用普通计算机作为CDCN中网络服务器,实现路由策略以及数据转发。计算机配置为Intel2.8GHz双核CPU及2GB内存。服务器P是CDCN架构中的网络节点,实现服务器A与B之间的通信。在服务器P中,为每一个数据包计算路由信息所需要的CPU时钟周期,并进行统计分析。通过测试,CIN2N中静态路由算法平均需要90个CPU周期计算出一个数据包的下一跳地址;而容错路由算法则需要大约250个CPU周期为一个数据包获得下一跳地址。为与一般的查询过程进行对比,在相同测试平台中,服务器P运行ClickRouter程序进行IP路由查询,实验结果如图3所示。当路由表中只有128条路由信息时,路由器需要600多个CPU时钟周期来获得一个数据包的下一跳地址信息;当路由表信息量增大时,IP路由器将需要更多的时间完成路由查询工作。:c,--t.rr.:._:rr:::/::r::rrr。r:,:r,::,,•l/:r:::。

4.2平均路径长度

在此实验中,我们采用12个端口的交换机,即一12,且服务器的列数是可扩展的。在测试网络性能过程中,选取100,000个随机源与目的地址对,仿真数据包在实际网络中的路由和传输情况。图4、图5描述了平均路径长度的实验结果。在服务器不断扩展过程中,路由过程的平均路径长度与服务器层数呈线性增长关系。对于层数为忌的CDCN网络架构,仿真实验中的平均路径长度与最短路径相差不大,尤其是当服务器列数较少的时候;同时,与最长路径忌+Lk/2相比,一般平均路径缩短了2O%,实验结果如图4所示。随着出错的服务器数量不断增长,路由中平均路径的长度也随之增加,但是,在此过程中,即使出错节点数量增至300,网络传输中依然没有发生任何包丢弃的现象。

4.3在容错路由策略中平均路径长度

此外,对容错路由策略也进行了性能仿真测试。实验中,采用(12,4)CIX;N的网络结构。每次测试中,随机选取一定数量的服务器作为出错节点,并随机选择100,000对源与目的地址,测试容错路由算法的运行情况。如图5所示,出错节点的数量从1增至300,建立平均路径长度与出错节点数量之间的关系。(12,4)CIX~N网络架构中拥有5,000台服务器,若其中300台出错,其出错概率已达到6%,网络传输中依然没有发生任何包丢弃的现象。