发表时间:2012-7-6 王聪 王翠荣 王兴伟 蒋定德
20世纪90年代,客户端/服务器的计算模式得到了广泛应用,在这种计算模式中,数据中心用来存放服务器并提供服务。近几年,互联网技术的蓬勃发展掀起了建设数据中心的高潮,网上银行、证券和娱乐资讯等网络服务逐渐普及,特别是云计算?技术的发展为网络服务形式带来重大变革,使数据中心的发展进入了鼎盛时期。
在云计算环境下,Internet网络由传送信息数据到直接传送服务。数据中心作为企业构建私有云的硬件平台或者公有云的骨干资源,运行其上的网络服务更加多样化、复杂化,在性能、可靠性和可管理性上的要求越来越细化,这就需要新的设计理念和运行机制的支持,特别是作为信息传输的基础部分——网络层的数据转发和管理机制需要重新设计以满足越来越复杂和多样的数据流传输需求。
随着存储虚拟化等资源虚拟化技术的发展,通常数据中心内的物理主机上会搭载若干独立的虚拟主机,并且虚拟主机可以根据需要在不同的物理主机上迁移。在面向云计算的数据中心内部,资源虚拟化技术的出现使得多个具有独立IP地址的虚拟主机公用同一条物理链路。即使目前使用了一些过渡的方式令网络层能够提供一定的支持,但是传统的TCP/IP或者UDP等协议已经越来越无法为各种服务应用提供足够的性能保障。这点在虚拟机迁移及多QoS个性化需求方面显得尤为突出,因此需要将数据中心的网络硬件进行虚拟化以形成多个不同的虚拟网络拓扑从而对资源虚拟化应用提供更好的支持。
为此,本文设计了通过低造价的可编程交换机和商业级服务器来构建具有高连通性的数据中心网络拓扑的方法。并且提出了虚拟网络的控制管理机制,形成了面向云计算的数据中心底层网络体系结构。实验表明,本文提出的网络体系相较于传统树形网络在网络吞吐量及容错方面都有较大提升。并且为虚拟机的迁移提供了更加灵活、高效的支持。
1 相关研究
在数据中心拓扑构建上,传统数据中心所采用的树形分层结构(如图1所示)通常为包括接入层、汇聚层、核心层的3层结构。在树形的末端,一个机架上通常存放数10台服务器,这些服务器通过接入层的交换机连接到网络上。在汇聚层和核心层,为了提供尽可能高的性能,采用了造价极高的高端交换机(10 GE级别)形成高连通网络拓扑。
传统树形网络构建方式已经难以满足新一代网络服务的需求。首先,这类结构无法提供足够高的对剖带宽、吞吐量及实时通信等性能要求,也无法提供高可扩展性;其次。树形结构在上层存在单点故障,一台核心层或者汇聚层的交换机故障将会导致很大数量的服务器无法进行通信;另外由于传统分层结构在汇聚层与核心层需要部署昂贵的高端高带宽交换机。性价比不高。
关于云计算数据中心非树状网络拓扑构建方面的研究比较具有代表性的有微软的研究团队和美国加州大学的研究团队。加州大学的Al—Fares等人提出了Clos Networks,Clos Networks是一种基于胖树(fat tree)的类树形结构拓扑,其主要目的是在网络端节点处实现更高的聚合带宽。网络分3层:核心交换机、聚合交换机及端交换机,通过增加一定的布线复杂度来连接成一个胖树形网络,端交换机用来连接PC机。在网络层,Clos Networks使用两层路由表及多路径的流调度机制,在全负载最坏的情况下可以实现约87%的聚合带宽。加州大学的Guo等人引入了并行计算的一些思想,提出了DCell。DCell是一种递归构建方式的数据中心,使用的是商业级PC和低端交换机,高一级的DCell由若干低一级的DCell组成。DCell的扩展性相对于节点的度具有双倍指数增长关系,并且大大降低了数据中心的成本。微软亚洲研究所的Dan Li联合加州大学的研究团队提出了一种使用双网卡PC机和低端交换机来构建数据中心的思路,命名为FiConn,FiConn同样使用递归构建模式,具有很好的可扩展性和连通性。在FiConn的递归拓扑中,链路被分为若干级别,在网络层中通过一种低开销的流量自适应路由机制来平衡各级别链路中的流量从而达到平衡负载和提高网络吞吐量的目的。
在上述的3种新型数据中心网络拓扑中,CIosNetworks网络结构中的主机在网络满负荷情况下仍能够以网卡硬件端口允许的最大带宽进行通信,从而提供了最高的网络对剖带宽,并且由于ClosNetworks实际上是一种特殊的树形结构变体,因此能够提供最好的兼容性,但是造价要高于DCell和FiConn。DCell具有最好的可扩展性,但是需要在主机上安装更多的网卡,FiConn只需在每台主机上安装两块网卡,两者都增加了布线的复杂性。在容错性上,FiConn和DCell由于采用了递归的拓扑结构,主机需要承担路由功能并且网络内的交换机和主机存在级别差异,因此在交换机及主机故障的情况下将导致网络内数据流分配不平衡,从而导致网络性能的显著下降。文献[7]比较了这3者的容错性,FiConn和DCeIl的容错性能明显低于ClosNetworks网络结构。另外,这两种结构都需要使用全新的路由算法,对于现有应用的支持还有待于进一步解决。
在应对资源虚拟化应用方面的相关研究上,微软研究团队的Greenberg,Hamilton,Jain等人提出了VL2L8J,VL2主要考虑如何使得虚拟机在服务器上进行灵活的迁移,力求使得虚拟机的迁移对客户及程序设计者透明。VL2使用了Clos Networks的拓扑结构,并在网络层和数据链路层之间加入了相应的路由控制机制。在VL2所提出的体系结构中,应用程序使用服务地址通信而底层网络使用位置信息地址进行转发,这就使得虚拟机能够在网络中任意迁移而不影响服务质量。加州大学的Mysofe等人提出了PortLandL,PortLand使用的同样是ClosNetworks的拓扑结构,通过在2.5层中使用虚拟MAC地址来实现虚拟机自由迁移。在服务器上的某个虚拟机与端交换机第1次通信时,端交换机建立该虚拟机的实际MAC地址到虚拟MAC地址并将其发送给网络底层控制程序,虚拟机进行ARP广播时端交换机将广播拦截。然后查询底层控制程序并返回相应的IP地址,这样使得虚拟机可以自由迁移不用考虑寻路问题。
文献[8—9]的解决方法在一定程度上提高了虚拟机迁移后的再寻址时间延迟问题,目前通过DNS的实现方式需要数分钟甚至更久,采用新方法后可以缩减到数十秒。但是前者需要在网络内部署专门寻址服务器,并且需要有良好的分布式实时通信机制支持,后者主要在可编程交换机上实现,对交换机性能的要求较高。另外,这两种方法都无法将隶属于不同应用的虚拟主机进行有效的隔离,在网络通信量较大时,不用服务的数据流由于竞争带宽会相互影响。
2低成本高连通性的网络拓扑结构
在数据中心网络构建方案设计中,如何在保证足够高性能的前提下尽量减少造价是至关重要的。本文的目的就是利用低造价且型号单一的可编程交换机及商业级服务器来构建数据中心网络拓扑,新的网络拓扑在对剖带宽及网络聚合吞吐量上要高于传统树形分层结构,并能够对资源虚拟化技术应用特别是虚拟主机在网络中的迁移行为提供更加灵活的支持。
2.1 网络拓扑结构
从降低成本方面考虑,利用低造价交换机及商业级服务器来构建数据中心可以大大减少成本支出。另外,鉴于现在的PC机和服务器都具有至少两个网络端口,充分利用这些端口可以大大提高拓扑内节点的连通性以获得更大的网络吞吐量。这样的构建方案具有更好的性价比。
图2是本文提出的数据中心网络拓扑构图,整个网络由同一型号的可编程交换机组成,中间的服务器将网络分割成两个对称的Fat—Tree结构的特殊变体。每个这样的Fat—Tree结构包含核心层、汇聚层和接人层3个层次,使用这样结构的好处是可以保证每台服务器的任意网络端口都可以同时以网络硬件接口所允许的最大带宽进行通信而不受网络通信带宽瓶颈的制约。
网络能够容纳的服务器数量取决于构建网络所使用的交换机的端口数志(图2中,k一2)。网络中的服务器被分成走组,每组包含(k/2)2台服务器。网络被服务器分成上下两个部分,每部分的接入层和汇聚层对应每组都有k/2台交换机,每个接入层的交换机分别连接k/2台服务器,剩下的端口分别连接上层的交换机。核心层有(k/2)2台交换机,每台交换机的第i个网络端口连接到第i组的汇聚层的某台交换机。这样每个汇聚层的交换机都有k/2条链路与核心层的各个交换机相连接。使用具有k个端口的交换机组建的网络可以容纳k3/4台服务器。本文提出的这种结构适用于任意端口数的交换机,如采用常见的48口交换机。那么按照本文提出的方法构建的数据中心网络可以包含27 648台服务器,足够支持企业构建自己的私有云平台。
本文提出的这种网络拓扑构建方式有以下4个优点:1)虽然相较于传统树形结构使用了更多的交换机。但是由于无需在核心层和汇聚层采用造价昂贵的高端高性能交换机,因此减少了总体构建成本;2)对于网络中任意的两台服务器之间都存在多条等长度的路径可供选择;3)充分利用了服务器的两个网络端口,提高了网络的连通性和吞吐量;4)在本文提出的网络结构中不存在像传统树形结构中的单点故障。因此容错性得到了加强。
2.2网络地址分配
在地址分配方式上,为了保证兼容性,采用了与IP地址相同的结构。对称的上下两部分网络分别采用10.O.O.O/8和20.O.0.0/8两个地址段.接入层及汇聚层交换机地址形式为10.g.s.1及20.g.s.1,其中g为组号,s为交换机号(由O开始,从左至右,从下到上递增).核心层交换机的地址分别为10.k.j.i和20.k._j.i,其中志为组号。_j为汇聚层交换机编号(从O开始,由左至右递增),i为该交换机与核心层交换机连接的端口序号(0一k/2)。
主机网络端口的地址与其连接的接入层交换机处于同一网段,形式为10.g.s.fd和20.g.s.谢,其中id为服务器编号,由左至右递增,范围为(2,k/2+1)。
这样的地址结构使得后续给出的虚拟网络构建及控制管理机制都能够良好地兼容目前广泛的基于IP协议的上层应用。只要IP地址结构不变,那么对于网络层作出的相应改动相对于上层应用来说就是透明的,上层应用不必理解地址字段的特殊含义。
3虚拟网络构建及控制管理机制
云计算环境下,数据中心内服务器上通常运行多个虚拟机来提供不同的服务,这样能够便于应用服务的迅速、灵活的部署,在服务器硬件故障发生时。虚拟机将迁移到另外的服务器上。目前虚拟机迁移后的恢复寻址工作通常由DNS服务器来完成,但是由于DNS系统被动的工作机制导致效率不高。从底层网络支持情况来讲,运行不同应用服务的虚拟机对于网络的QoS具有不同的个性化需求,目前情况下,底层网络普遍采用的基于尽量交付机制的IP协议对于个性化的支持显然不够。另外,让隶属于不同应用服务的众多虚拟机同时运行在同一个物理网络上也造成了管理和带宽分配的混乱。
因此,本文提出了一种底层网络控制管理体系结构,通过将硬件网络分割成不同的虚拟网络来实现对上层应用灵活的支持。不同的虚拟网络内运行隶属于不同应用服务的虚拟机。这样可以根据应用服务的QoS需求来决定网络所运行的协议及参数也更加有利于虚拟机的控制和管理。虚拟网络的构建也将为数据中心的多用户租赁服务和云计算环境下的资源分配提供配套的灵活管理和带宽控制体系,进一步促进虚拟化技术与数据中心的融合。
3.1 对虚拟机迁移的支持体系
图3为虚拟网络划分及控制管理系统示意图.在开源操作系统的2.5层添加一个代理与交换机协同工作是可行的。本文的思路是借鉴应用于Internet骨干网络交换机上的网络虚拟化技术,并使驻留在主机上的代理与可编程交换机的控制软件实时地交换网络运行时参数,以达到动态调整各虚拟网络带宽的分配及控制管理参数的目的。这样的协同工作机制使得不同的虚拟网络运行不同的网络层路由协议成为可能,这将能够保证运行于不同虚拟网络上的应用服务对于QoS的个性化需求。
2.5层代理的另一个重要功能就是实现虚拟机的迅速迁移,文献[8—9]都设计了2.5层代理的映射功能,通过将虚拟地址和实际地址进行一次映射以隔离上层应用使用的网络地址和底层网络进行交换时使用的物理地址之间的联系。不同的是文献[8]映射的是服务地址和位置信息地址,而文献[9]映射的是虚拟MAC地址和实际MAC地址。
本文提出的办法是令每台主机上驻留的代理为每个虚拟网络创建一个映射表(如图4所示),用来记录网络内的虚拟机IP地址与物理主机MAC地址的对应关系。代理之间可以实时通信,通过类似路由发现的分布式通信机制,周期性更新运行于各台服务器上的虚拟主机与硬件网络地址的对应关系。
在某个服务器上建立新的虚拟主机时,代理会记录新的虚拟IP地址与物理主机MAC地址的对应关系并在该虚拟网络内进行广播,这样各个代理上对应该虚拟网的映射表都将被更新。当虚拟机间通信时,请求通信的主机发送的ARP探测包将直接被代理捕获,检索本机代理上的映射表,如果有匹配项将直接返回对应的MAC地址,如果没有,代理将负责进行广播以获得正确的MAC地址。当出现服务器故障时,虚拟主机迁移到其他服务器上之后,服务器上的代理将会在网络中主动广播迁移后虚拟主机地址与服务器端口的对应关系从而加快虚拟机迁移后的恢复时间。
3.2虚拟网络带宽分配机制
本文提出的带宽分配及控制机制建立在图3所示的虚拟网络管理体系之上,可编程交换机负责分配带宽,2.5层代理负责参数的协调和反馈。带宽分配机制示意图如图5所示:
每台可编程交换机上都部署一个这样的带宽分配逻辑单元,以便对于虚拟网内的各条链路都能够进行分配和控制。在图5中ri是由主机上的2.5层代理返回的虚拟机VMim。网络端口的发送速率,以类似于TCP/IP拥塞窗口慢启动机制的算法进行增减,yi是当前虚拟链路占用的带宽,λt是通过ri和yi计算出的用于带宽分配决策的输入参数。
带宽分配的目的是在保证所有虚拟网络带宽的总和不超过物理链路最大带宽的前提下,使所有虚拟网络的带宽利用率达到最优,这样就把带宽分配问题抽象成了一个最优化的数学问题从而根据经典数学算法进行求解。本文采用了根据链路的拥塞状态反馈来周期性的分配虚拟网络带宽的方法。拥塞状态Skt的计算函数如下:
其中t代表时间,T是一个时间周期,口是用于平滑结果的O,1之间的步迸值。由式(1)可见,虚拟网络k在链路l上的链路拥塞状态由其得到的带宽ykl和链路负载rkl决定。通过式(1),每个虚拟网络可以动态地调整所占用的虚拟链路的网络带宽。
在交换机端,目的是让所有的虚拟链路能够协同工作以获得最大利益,这是一个总体最优化问题,其数学模型如下:
本文关于带宽分配机制的设计主要目的是给出运行于可编程交换机上的系统逻辑结构,在带宽分配算法上还可以采用其他的数学模型进行求解。
4实验与讨论
本文的实验软件采用了斯坦福大学研发的0penFlow VMLl21仿真平台。采用这一工具的原因是目前已经有一些厂商(如NEC公司)开始生产基于openFlow的可编程交换机,仿真结果具有较强的实际价值。实验所用硬件平台采用的是IBMX3650服务器,4核Xeon 3.06 GHz处理器×2,16 GB内存,操作系统为CentoS 5。
仿真实验在OpenFlow VM环境内分别构建如图1所示的传统树形分层网络结构以及本文提出的如图2所示的网络结构。两种网络结构均采用8口交换机进行构造,其中树形结构的汇聚层及核心层的带宽为10 Gbps,其余链路均为1 Gbps,各网络结构部署的服务器数量均为128台。在构建的虚拟网络结构上,通过D-ITG模拟出数据中心内部的all—to—all通信流量,测试了在交换机故障下的网络聚合瓶颈吞吐量变化趋势。聚合瓶颈吞吐量是网络内各数据流获得的最小带宽与网络内总数据流数量的乘积,它可以反映一个数据中心网络拓扑的性能。
由图6可见,本文提出的体系结构在无故障情况聚合瓶颈吞吐量3倍于传统的树形结构,并且随着交换机故障率的上升,呈现出更加平滑的下降趋势。导致这样结果的原因主要是由于传统树形结构在高层存在不可避免的对剖带宽限制,尤其是当某台交换机出现故障时将给网络其他交换机带来很大的负载,而本文的结构由于采用了更多的交换设备并充分利用了服务器的两块网卡构建网络,因而网络容量和容错性都得到了很大提升。
从图7可以看出,两个虚拟网络的吞吐量收敛迅速(大概经过5个周期)由于优先级相等,两个虚拟网络最终占用的带宽也相等(基本等于实际物理链路带宽的一半)。该实验结果反映了本文提出的虚拟网络带宽分配管理机制对于虚拟网络带宽的分配是符合预先设计目标的。
5结论和进一步工作
随着数据中心的不断发展,特别是云计算技术应用热潮的到来,传统数据中心的拓扑结构和网络体系结构必将面临变革。为此,本文提出了一种新型的面向云计算的高性价比数据中心网络体系结构,给出了网络拓扑的构建方式和虚拟网络的划分管理及带宽分配机制,为上层的应用服务及资源虚拟化应用提供了更灵活的支持。
在构建方式上,本文提出的拓扑结构虽然采用了两倍于Clos Network结构的交换机数量。但是无需使用造价昂贵的高端高性能交换机并充分利用了服务器的两个网络端口。因此在提高数据中心构建性价比的同时大幅提高了网络的吞吐量。实验表明,本文提出的新型低成本网络拓扑可以实现更大的网络聚合瓶颈吞吐量和更强的容错性能。另外,本文提出的虚拟网络带宽分配机制工作良好,在网络流量变化的情况下能够迅速收敛,这将为云计算环境下资源虚拟化技术提供支持,并为网络虚拟化的发展提供一定的技术储备。
为了应对目前虚拟机迁移遇到的困难,解决通过被动更新DNS来实现迁移的不足,本文提出的基于2.5层代理的方法还需要进一步的研究和实验。下一步主要工作将论证2.5层嵌入程序对于操作系统带来的开销以及代理间通信所造成的网络开销的大小及合理性。另外,由于新型拓扑仿真困难,所需工作量巨大,而相关研究中介绍的部分网络结构在openFlow VM环境下的实现存在一些技术问题,下一步将考虑采用合适的仿真工具对这些新提出的技术方案进行比较。