云计算平台下OpenFlow网络资源动态算法研究

2016-05-14 15:49李春艳
软件导刊 2016年7期
关键词:云计算

李春艳

摘要:随着互联网的迅猛发展,各种网络数据量激增,提高云计算平台各方面性能和效率的研究日益重要。资源调度优化是云平台整体性能得到优化的重点。利用OpenFlow优秀的网络资源配置能力,结合云计算平台本身的业务和任务特质,研究了云计算平台下的异构资源联合调度优化方法,从而实现云计算平台资源的优化配置。

关键词关键词:云计算;OpenFlow;网络资源动态算法

DOIDOI:10.11907/rjdk.1511650

中图分类号:TP312文献标识码:A文章编号文章编号:16727800(2016)007004202

0引言

随着互联网业务量的增大,多媒体业务越来越广泛应用于网络通信。网络服务提供商需要通过各种技术手段为这些信息交流提供技术支持,需要快速反应和处理各种超大型、复杂的网络数据。数据处理是在众多分布式服务器集群上进行的[1]。如何管理海量分布式的大型数据、高效处理这些并行的数据计算,处理运算所带来的代码异常现象,成为需要解决的重点问题。

1云计算概念

在基于分布式计算和网格技术应用前提下,产生了一种全新的服务计算模型:云计算。美国国家标准技术研究院(NIST)给出定义:云计算是一种通过网络以方便、按需方式访问可配置的计算资源共享池(包括网络、服务器、存储、应用和服务等)模式,这个资源共享池能以较少的管理开销和供应商交互,快速配置、给予或释放各种资源[23]。

云计算将大量的复杂计算放在分布式计算资源上。企业数据中心与互联网运行非常相似,能实时将资源切换到所需的各种应用上,根据实际需求访问资源。

云计算平台具以下优点:①优化了设备处理速度和管理能力;②为各种数据资源提供了强大的运算及存储支持;③优秀的并行处理能力。由于数据资源可以分布在整个服务器集群上,执行方式为并行处理,缩减了作业执行时间,提高了计算速度;④云计算的核心问题是资源管理,尤其是资源的合理调度与分配。优化资源调度是云计算平台性能优化的重点。

云平台资源调度,包括资源发现、调度组织、调度策略、状态评估以及对资源的再调度等。云计算平台的任务调度有多种方法:①FIFO。将用户提交的作业放在一个队列中,依照先进先出的调度原则进行调度;②Capacity。调度算法对作业平均分配资源,适用于用户所提交的作业对资源需求相对一致的情况;③Fair。调度算法默认为每个用户提供了一个独立的资源池,允许根据用户组或其它配置来进行资源池划分。在每个资源池中,采用公平共享的原则为运行的作业分配共享资源;④Deadline Scheduler。调度器主要用于有时间限制的作业,给作业一个必须完成的时间,让它在该时间内完成;⑤LATE 调度算法考虑到节点异构性,引入了对节点计算能力的衡量标准,选择较快的节点作为尝试执行的节点[3]。

2OpenFlow和SDN

随着网络规模的不断膨胀和应用类型的增多,互联网作为重要的社会基础设施,在结构和功能日趋复杂的同时,管理能力却没有得到同步发展,这使得由传统网络体系架构设计缺陷带来的网络问题日益明显。为了解决现有体系结构带来的诸多问题,各国已经展开关于优化互联网体系结构的研究,如美国的GENI[4] 、欧盟的FIRE[5] 、日本的JGN2plus[6]和中国的SOFIA[7]等。

OpenFlow技术最早由斯坦福大学的Nick McKeown 教授提出,是斯坦福大学Clean Slate项目资助的一个开放式协议标准,在不影响现有网络体系架构的基础上,运行一些实验性的网络协议[10]。OpenFlow 将控制功能从单纯的网络设备完全分离出来,在网络设备上维护流表(flow table)结构,数据的分组也按照流表来转发,流表的管理过程由中央控制器处理[8]。OpenFlow的这种流表结构将对网络的处理层次进行扁平化,使其满足细粒度[9]。在这种控制转发的分离架构下,中央控制器可对网络的逻辑控制功能和策略进行动态管理和配置。OpenFlow网络结构主要由OpenFlow交换机和控制器组成,如图1所示。

OpenFlow是SDN的核心技术,SDN是Nick McKeown教授等[10]在2007年提出的软件定义网络(Software Defined Networking,SDN)。这个定义的提出所带来的变革引起了学术界和产业界的广泛关注。SDN是一种新型的网络架构,它的网络配置平面独立于嵌入式结点,以开放软件模式替代传统的基于系统嵌入的控制平面,以软件驱动的中央控制结点方式更好地自动控制整个网络。SDN技术架构通过把原有封闭的体系解耦为数据平面、控制平面和应用平面,提供了一种可编程的网络实现,从而革命性地改变了现有的网络架构[11]。SDN为网络应用提供了较好的可扩展接口方式,便于进行统一、灵活、高效的网络控制和管理。同时,SDN通过软件平台建设高弹性化和可控的互联网,在给互联网发展带来一定程度变革的同时,也为未来互联网的发展方式和路线提供了一种创新型思路[11]。SDN已经成为业界的热门话题,OpenFlow的标准协议成为实现SDN最被看好的方式之一。

3基于OpenFlow的网络资源动态分配算法

在云计算平台资源调度算法中,考虑网络资源参量,设计计算资源、存储资源、网络资源的归一化度量方法,以实现网络效用的最大化。云计算在线调度策略主要着眼于各种异构化资源的分配管理,以满足用户的各种资源请求。资源调度的目的是将任务分配到合适的资源上,在满足用户需求的前提下使云计算平台的任务完成时间尽量少、资源利用率尽量高,以提高云计算平台的总体服务能力和服务质量。针对OpenFlow系统框架的主要功能和结构特点,提出基于OpenFlow的网络资源动态分配算法。

3.1网络资源分配算法基础

首先要基于网络动态设计网络资源分配算法。这需要将控制器上的监控网络状态进一步映射为虚拟网络,然后再运行现有的网络资源分配算法,每个虚拟节点都以现有的分布式资源分配算法进行运算。根据每个算法对网络资源的依赖程度不同,控制器会为每个虚拟交换机提供网络资源使用情况,改良现有的分布式网络资源分配算法,降低算法复杂度以提升网络容量。在此基础上,再进一步设计集中式的网络资源分配算法。

3.2常用的网络资源分配算法

在集中式控制网络中,一般是采用最短路径算法进行路径选择,算法目的是寻找两节点之间的最短路径。现在较为常用的路径算法有:BellmanFord和 Dijkstra。

算法设置:从起始点开始每次都向外搜索,每扩展一次,就计算出起始点到某个目的节点的最短路径,扩展到最后,就可以计算出起始节点到所有节点之间的最短路径数值[12]。这种算法的优点是可以求出两个交换机之间的最短路径,易于理解和使用;缺点是整个算法设计比较简单、运算效率不高,适合在小型网络中使用。

算法设计思想:①每个顶点的距离表示源点到该顶点之间的路径长度。边的权值设置成链路的带宽利用率,设定链路为双向;②初始时只有一个源点,需要逐层挑选出从源点到该顶点的全部最短的点,按照先后顺序将这些顶点一个个加入到整体路径中,不断修正与顶点的距离,才能计算源点到最后顶点的距离。

4改进的分布式网络资源分配算法

通过集中式设计来求解算法,并考虑网络的动态变化,同时降低算法的复杂度,提升网络资源动态分配算法的可用性。针对常用算法的缺点,本文进一步完善了算法。新算法主要包括路径和节点两方面设计,使用同时设计路径规划的方式来研究网络资源分配算法,算法设计思想:①选择所有可能的节点集,并判断该节点集能否设计出可用的路径拓扑;②根据网络节点确定所有备选分发节点集,可以看出分发节点集数量为M(网络大小);③从所有备选节点集和分发节点集中任选一个节点集和一个分发节点集;④根据这两个点集构成的拓扑子图中的每条链路,添加原拓扑中的其它点作为测试点集,设计多条不相交路径来判断所选择的节点集和分发点集是否合格,进一步检测可行的两个点集是否满足所有流的需求;⑤如果满足则把所选择的节点集、分发节点集作为最终的编码设计结果输出,如果不满足则继续寻找其它点集的组合直到遍历完所有组合。

猜你喜欢
云计算
谈云计算与信息资源共享管理
志愿服务与“互联网+”结合模式探究
云计算与虚拟化
基于云计算的移动学习平台的设计
基于云计算环境下的ERP教学改革分析
基于MapReduce的故障诊断方法
实验云:理论教学与实验教学深度融合的助推器
云计算中的存储虚拟化技术应用