1.4 智慧服务云下网的构建
1.4.1 网络拓扑架构
现有的数据中心网络主要依靠交换机、汇聚交换机、核心交换机/路由器将服务器连接起来构成树状结构,然而树状结构的高带宽收敛比(Oversubscription)使其很难达到数据中心网络所追求的高可扩展、容错性好、高聚集带宽等目标。同时,应用服务(如搜索引擎等)对服务器间数据交换的带宽要求越来越高。目前提出的数据中心网络结构主要分为两大类[6],即以交换机为中心和以服务器为中心。
在以交换机为中心的方案中,网络流量路由和转发全部是由交换机或路由器完成。这些方案大多通过改变现有网络的互联方式和路由机制来满足新的设计目标。PortLand[11]和VL2[12]中交换机彼此连接成各种树状结构,服务器仅通过一个网络端口与接入层交换机相连。这种结构通过在树状结构上层横向增加更多的交换机来提供网络冗余,故称之为以交换机为中心的类树或扁平结构。
在以服务器为中心的结构中,主要的互连和路由功能由服务器完成。采用迭代方式构建网络拓扑避免了位于核心层交换机的瓶颈。服务器不仅是计算单元,还充当路由节点,因此,服务器之间拥有多条可用的不相交叠加路径。此外,服务器通常还拥有多个网络端口接入并连接网络,使得网络具有大量冗余的链路和平行路径以支持各种类型的流量模式。它们或者仅将交换机作为类似于 Crossbar 的交换功能使用,如DCell[13]和FiConn[14],或者不使用任何交换机构建网络,如CamCube[15]。
文献[16]对现有的网络拓扑进行了比较分析。此外,传统的诸如DHCP类的协议无法在这种场景下应用,自动配置可以降低人力成本并减小配置出错的风险。诸如VL2[12]、DCell[13]等体系结构将位置和拓扑信息编码到服务器或交换机的地址中,从而提高了路由的性能。针对拓扑已知甚至未知的数据中心网络,已经出现了低开销、高可靠和易管理的自动地址配置方法[17]。
1.4.2 网络流量管理
网络流量特征是进行流量管理的基本依据。数据中心网络流数目巨大,且绝大部分的流均为小流,并具有极强的突发性和动态性,这对网络流量管理提出了严峻的挑战。在流分布上,文献[18]的分析表明,在采用三层结构(核心层、汇聚层、边缘层)的数据中心网络中,核心层通常具有较高的链路利用率,而汇聚层和边缘层则相对较低。文献[19]也观察到了类似的情况:核心层链路利用率高于汇聚层和边缘层,但分组丢失率却相反;核心层链路利用率是汇聚层的4倍,95%的汇聚层链路利用率不超过10%。这表明流的分布并不均匀,核心层相对集中且稳定,而其他层分布较少但突发性高,导致丢失率高。
运行不同类型应用的数据中心的流量模式是不同的,从而使得其流量特征也不尽相同。采用不同架构的数据中心网络,其失效规律也不一样,已经有了一些关于数据中心流量特征和失效规律的测量和研究[20,21]。全面理解数据中心流量和失效特征有待进一步测量与建模分析,这将有助于设计者理解数据中心的特性和探索新的网络结构及失效管理机制。数据中心网络中的路由机制期望考虑和满足时延、可靠性、吞吐量和节能方面的要求,这包括数据中心内和数据中心间的流量工程问题[22],比如其虚拟机位置可变、拓扑可知,并且可以使用中心化的方法进行流量工程。已采用的方案,包括ECMP(Equal Cost Multi-Path,等价多路径)[23]和VLB(Valiant Load Balancing,Valiant负载平衡)[13]等,虽然能在一定程度上分散网络流量,但不能根据路径的负载进行动态调度,可能会导致网络局部拥塞。
1.4.3 带宽共享机制
目前数据中心网络的带宽共享机制主要有两种思路:一是基于竞争,二是基于预留。基于竞争的方案的基本思路是在虚拟机或租户级别实现带宽竞争。和传统的基于TCP(Transmission Control Protocol,传输控制协议)流的竞争方式不同,这种竞争方式可以防止应用程序通过增加流数目的方式来骗取网络资源,确保一定的公平性。典型的基于竞争的带宽共享机制包括Seawall[24]和FairCloud[25]等。Seawall在虚拟机的层面上设计了一个拥塞控制系统来避免不公平的带宽分配,FairCloud则通过一个集中控制的管理器,根据每个服务的不同需求为其分配对应的权值,最后根据权重对全网的带宽资源以Max-Min Fairness的方式进行竞争。相对于传统的模式,这种基于租户需求指定权值进行分配的模式具备更高的灵活性。
相对于基于竞争的方案而言,基于预留的方案可以提供真正的带宽“保障”,比较常见的模型包括流量矩阵模型和“软管”模型。流量矩阵模型确定每一对虚拟机之间的带宽需求,而软管模型只限制每个虚拟机的进出总带宽。这两种预留模型上比较典型的机制包括 SecondNet[26]和 Oktopus[27]等,它们把抽象的网络订购映射到实际的物理网络,并且提供了虚拟机的计算资源和交换机的网络资源的联合优化。此外,文献[28]基于网络抽象和任务放置的结合,提出了CloudMirror带宽保障的方案,文献[29]则首次运用博弈论从理论角度深入分析了云计算多租户环境下的带宽共享机制。
1.4.4 软件定义云网络
作为云计算的基础设施,数据中心往往由独立机构统一建设和运营,管理实体单一,天然符合SDN所需要的集中控制要求,使得其可以比Internet更适合进行中心化的控制与管理。由于数据中心的数据流量大,交换机层次管理结构复杂,服务器和虚拟机需要快速配置和数据迁移。创建软件定义的可定制云数据中心网络基础设施,是提高网络性能、实现多租户网络共享及控制网络能耗的基本保障。
文献[30]首次提出将OpenFlow技术引入到数据中心网络,并采用NOX控制器实现了两种比较典型的数据中心网络——PortLand[11]和VL2[12]的高效寻址和路由机制,应用流表来扁平化网络处理层次。Ripcord[31]同样实现了这两种数据中心的路由引擎原型系统,并支持网络动态管理,增加了网络健康度监控和自动报警功能。ElasticTree[32]设计了一个在数据中心部署的能量管理器,可以动态调节网络元素(链路和交换机)的活动情况,在保证数据中心的流量负载平衡的情况下,达到节能的目的。美国加利福尼亚州大学(以下简称“美国加州大学”)的Mohammad Al-Fares等人提出的Hedera[33]在PortLand的实验床上实现了一种可扩展的动态流调度系统,通过OpenFlow交换机获取流的最新状态,采用全局最先匹配(Global First Fit)贪婪算法和模拟退火(Simulated Annealing)算法控制流的传输路径,实现了数据中心的负载平衡。Virtue[34]利用OpenFlow交换机优化控制网络流量,在真实的数据中心场景进行了实验。
云数据中心通常是广域网,建网成本高,需承载多租户、多业务,但受限于传统的分布式路由计算及匮乏的网络整体资源,链路带宽利用率较低。在全局集中管控下,可以进行统一的计算和调度,实施灵活的带宽按需分配,最大程度地优化网络。例如, OpenQoS[35]通过基于SDN执行并行的路由算法实现多媒体传输应用,Jellyfish[36]使用OpenFlow寻找k最短路,MicroTE使用OpenFlow实现流量工程等。然而,集中调度的算法需要频繁地对流进行调度。一种可行的改进是仅对大象流(Elephant Flow)进行调度,研究表明[33],在流的大小服从指数分布、到达时间间隔服从泊松分布的情况下,对大象流进行调度可以获得较高的带宽利用率和较小的时间开销。Google B4[37]利用SDN技术把数据中心间的核心网络带宽利用率提高到了100%,高带宽利用率意味着可以利用SDN来降低传输每比特的花费(Cost Per Bit)。
叠加网络(Overlay Networks)技术通过创建虚拟的网络容器,在逻辑上彼此隔离,但可共享相同的底层物理网络。其中,应用广泛的隧道(Tunneling)封装技术基于现行的IP网络进行叠加部署,突破了传统二层网络中存在的物理位置受限、VLAN(Virtual Local Area Network,虚拟局域网)数量有限等障碍,同时还使物理网络虚拟化、资源池化。SDN和Overlay的结合方式,把SDN控制器作为Overlay网络控制平面实现,典型代表是VMware公司提出的NVP(Network Virtualization Platform,网络虚拟化平台)方案,更容易整合网络与计算/存储组件。2015年发表的文献[38]提出了一个SDN Overlay的服务编排架构ViNO,通过VXLAN(Virtual eXtensible LAN,虚拟可扩展局域网)支持软交换机与虚拟机的按需连接与描述,可实现虚拟机的无缝迁移。