DCUBE:一种容错的数据中心网络裴晓强,王意洁,王媛(国防科技大学计算机学院并行与分布处理国防科技重点实验室,湖南长沙410073)摘要:在云计算环境中,如何高效连接数据中心网络中指数增长的服务器成为了研究中的关键问题。本文提出一种容错的数据中心网络—DCUBE。DCUBE通过采用模块化的方式定义增强扩展性,通过对服务器结点失效处理提高容错性,通过利用服务器之间的并行路径,提高结点之间的带宽吞吐量。实验结果表明,DCUBE有较好的可扩展性和容错性,而且可以提供更高的带宽吞吐量。关键词:云计算;数据中心网络;模块化;容错;可扩展;带宽吞吐量DCUBE:AFault-TolerantDataCenterNetworkPEIXiao-qiang,WANGYi-jie,WANGYuan(NationalKeyLaboratoryforParallelandDistributedProcessing,SchoolofComputer,NationalUniversityofDefenseTechnology,Changsha410073,China)【Abstract】Afundamentalchallengeofdatacenterinthecloudenvironmentishowtoefficientlyinterconnectanexponentiallyincreasingnumberofservers.Thispaperproposesafault-tolerantdatacenternetwork,referredtoasDCUBE.DCUBEimprovesscalabilitybyrecursiveconstructionscheme,exhibitsgracefulperformancedegradationastheservernodefailurerateincreases,andutilizesparallelpathsbetweennodestogethigherthroughput.ExperimentalresultsrevealthatDCUBEisscalableandfault-tolerant,anditsignificantlyimprovesthebandwidththroughput.【Keywords】CloudComputing;DataCenterNetwork;Modular;Fault-Tolerant;Expansive;BandwidthThroughput计算机工程ComputerEngineering第卷第期Vol.No.2011年月2011··文章编号:1000—3428(2011)00—00—0文献标识码:A中图分类号:1概述近年来,随着云计算[1,2]技术的飞速发展,数据中心网络(DataCenterNetwork,DCN)[3]作为底层基础设施发挥着越来越重要的作用,成为了云计算领域的研究热点。在当前云计算环境下,数据中心网络的结点数目呈指数级增长。例如,截止2006年,Google的30个数据中心上已运行超过450000台服务器[4];其次,数据中心网络必须具有高容错性以应对结点和链路失效。例如,在Google和Amazon数据中心网络上,数小时的结点或链路失效,也会带来数百万美元的损失;第三,在云计算环境下的许多应用操作需要高带宽吞吐量,例如GFS上文件复制操作,MapReduce[5]上Map结点和Reduce结点上的多对多通信。这些应用对数据中心网络的构建与维护提出了三种要求:可扩展,容错和高带宽吞吐量[6]。本文提出一种容错的数据中心网络结构DCUBE。通过模块化方式定义,在规模扩大时,只需增加下层模块即可,极大地增加了网络结构的可扩展性;DCUBE结构中服务器之间存在较多并行路径,不仅包括通过交换机中继的路径,也包括服务器之间的直接路径。通过容错路由算法[7,8],在服务器失效比率增加时,DCUBE仍能保证较高的带宽吞吐量,提高了网络结构的容错性;通过增加并行路径的方式,加快了服务器之间数据并行传输速度,提高了带宽吞吐量。2互连规则DCUBE包括两种类型的部件,一种是具有多端口的服务器;一种具有多端口的商用小型交换机。其中,每个交换机连接到一定数目的服务器。DCUBE采用递归的方式构建,高层的DCUBE通过连接多个低层DCUBE来构建。我们用一个DCUBEk(0k)来表示k层DCUBE结构。DCBUE0由一个n端口的交换机和与之直接相连的n个服务器构成。DCUBE1是由n个DCUBE0和n个n端口的交换机构成。更一般来讲,一个DCUBEk(1k)由n个DCUBEk-1和nk个n端口的交换机构成。在DCUBEk中,每个服务器具有2k+1个端口,可以支持多达规模为nk+1的服务器,而且包括k+1层的交换机。其中每一层包括nk个交换机。图1当底层服务器数量n为2时,二级DCUBE的结构DCUBE中服务器之间既包括交换机的中继路径,也包括服务器之间的直接路径,所以DCUBE的构建过程包含两个步骤。第一步是构建服务器与交换机之间的链路;第二步是构建服务器之间的直接链路。图1表示了当最底层服务器数量取2时,二级DCUBE的结构图。从图中可以看出,DCUBE2包含2个DCUBE1,每个DCUBE1包含2个DCUBE0,每个DCUBE0包含2个服基金项目:国家重点基础研究发展规划(973)项目(2011CB302601);国家自然科学基金项目(60873215);湖南省自然科学杰出青年基金项目(S2010J5050);高等学校博士学科点专项科研基金资助课题(200899980003)作者简介:裴晓强(1986-),男,硕士研究生,主研方向:云计算,容错存储;王意洁,教授、博士生导师;王媛,硕士研究生收稿日期:2010-0-0E-mail:xiaoqiangpei@163.com2011-09-0913:22务器。图中虚线表示第2层链路。按照构建规则,先连接服务器与交换机之间的链路,即先连接nk+1个服务器与k+1层交换机,然后再与其它服务器相连,通过这种方式就可得到DCUBE2。更高层的DCUBEk可以通过类似的递归方式构建。3路由算法3.1最短路由算法在DCUBE路由算法中,每个结点作为一个对象存在,不仅有自身的标识,而且还维护着一个邻居列表,邻居列表中存放着与自己直接相连的结点。从DCUBE的构建过程可以看出,每个结点的邻居列表既包含通过交换机连接的服务器,也包含直接相连的服务器。通过最短路径算法就可以得到结点之间的最短路径,最短路径算法如图2所示。//src表示源结点,des表示目标结点//Path(src,des)表示src和des之间的路径S_Path(src,des)添加源结点src到路径Path(src,des)中如果src的邻居列表包含dst或者dst的邻居列表包含src说明src和dst是邻居结点,两者之间直接相连添加目标结点dst到路径Path(src,des)中返回Path(src,des)否则根据邻居列表找到src和des之间的路径,并添加到Path(src,des)中返回Path(src,des)图2最短路径路由算法以图1所示结构DCUBE2为例,任意两个邻居结点都可以直接到达,如结点0与结点1。如果两个不是邻居的结点对需要通信,如结点0和结点6,则会选择最短的一条路径,如果存在多条同样长度的最短路径,则随机选择其中一条。结点0和结点6之间的最短路径可以是{0,2,6},也可以是{0,3,6}。DCUBEk中任意两个服务器之间的距离不会超过DCUBEk的k+1,DCUBE中服务器数量随着层数呈指数型增长,所以一般情况下k比较小。所以DCUBEk的直径较小。3.2容错路由算法DCUBE是一种递归式的层次结构,服务器之间存在较多路径,而且同一层次中任意两结点间有多条距离相等的常规路径。利用这一性质设计DCUBE的容错路由算法。具体算法如图3所示。//src表示源结点,des表示目标结点//PathSet表示src和des之间的多条路径集合//path_got表示从PathSet中得到的某一条路径dc_ft_routing(src,des)通过多路径算法得到路径集合PathSet按路径长度升序排列PathSet中的元素对于PathSet中的每一条路径,记为path_gotsrc发送一个探测消息,探测path_got是否成功如果path_got成功说明当前最短路径path_got可用跳出否则//path_got失败说明当前最短路径path_got不可用从PathSet中删除path_got图3容错路由路由算法下面通过从结点0到结点6的路由路径说明容错路由算法的设计思想,如图5所示。图中显示出了源结点0到目的结点6之间两条长度为2的路径{0,2,6}和{0,4,6}。假设路径中某一结点或某一链路失效,在物理设备范畴一个结点可能是单个服务器,也可能是多个结点(如整个机柜)。DCUBE在已知路径失效后,可通过选择另一条常规路径而不增加容错路径的长度。如图4中所示的当结点2与结点6之间链路失效后,DCUBE会采用另外一条长度仍为2的路径{0,4,6}。图4DCUBE的容错路由示例4性能评价DCUBE的目标是可扩展,容错和高带宽吞吐量。实验分别在没有失效和有失效的情况下测试对比了DCUBE,DCell[9]和BCube[10]三种结构的两种性能指标,对比内容包括:(1)平均路径长度,即在不同规模和部件失效比率下,每个结点到其它所有结点最短路径长度的均值。(2)带宽吞吐量,即在单位时间内接收者接收到的数据量,在本实验的all-to-all的通信模式中,带宽吞吐量是指所有接收者单位时间内接收到的数据量。为了对比DCUBE,DCell和BCube的平均路径长度,首先在无失效情况下,对比了不同规模下(n=4,0≤k≤3)三种结构的平均路径长度;然后在服务器规模为4096的情况下,对比了三种结构在服务器不同失效率下的平均路径长度。为了对比DCUBE,DCell和BCube的带宽吞吐量,实验设置链路带宽为1Gbps,每个服务器向其它所有结构发送10Gb的数据。首先在服务器规模为16,无部件失效情况下,对比了三种结构完成数据通信所需的时间;然后在服务器不同失效比率,结点数目为4096情况下,对比了三种结构的带宽吞吐量。4.1平均路径长度随着DCUBE层次的不断提高,所支持的服务器数量也在不断增加。为了验证DCUBE的可扩展性,实验分两种情况测试对比DCUBE,DCell和BCube的平均路径长度:在无失效情况下平均路径长度随规模扩大的变化;在服务器不同失效比例下平均路径长度的变化。00.511.522.531234567提供者数量平均路径长度(跳步)DCUBEBCubeDCell图5n=4时平均路径长度随k的变化图5表示了在无失效情况下,随着层数的增大,三种结构所支持的服务器数量也在增加,平均路径长度也在随之增加。在k=0,即三种结构只有最底层结构时,平均路径长度都为1,这是因为所有服务器都是通过直连的交换机进行通信;随着k的增大,DCell的平均路径长度增长较快,而DCUBE和BCube的平均路径长度则增长较慢;DCUBE在开始阶段平均路径长度比BCube长,但随着k的增长逐渐接近,当k=3时,已接近相等。0.050.10.150.24681012141618服务器失效比率平均路径长度(跳步)DCUBEBCubeDCell图6平均路径长度在服务器不同失效率下的变化图6显示了在服务器失效比率增大时,DCUBE和BCube的平均路径长度较为相近,但DCUBE更短,而DCell的平均路径长度则较长。这是因为,DCell只包含一层交换机,几乎所有的路由都依赖于服务器,BCube则全部依赖于交换机,而DCUBE中服务器之间有更多的并行链