一种用于分布式计算机平台的网络流组调度方法

文档序号:9474210阅读:550来源:国知局
一种用于分布式计算机平台的网络流组调度方法
【技术领域】
[0001] 本发明涉及的是计算机网络方向数据中心网络流调度领域。具体来讲,主要是提 出了一种在分布式计算平台中通过动态信息来调度网络流组(Coflow),从而提升分布式计 算的性能的算法。
【背景技术】
[0002] 云计算作为IT行业的一个里程碑式的突破,已经成为了业界研究和应用的一个 热点。大量的数据中心出现在全球各地,与此同时,各种适用于大数据的分布式计算平台被 开发和部署在数据中心。但是他们在设计时为了兼容性并未针对数据中心的特殊环境做出 改变,使得这些应用在运行时产生的大量网络流量给数据中心的网络带来了巨大的挑战。
[0003] 针对这个现象,目前国内外已经有很多关于数据中心流调度的研究,期望通过对 网络的优化和调度来防止网络成为整个系统的瓶颈。这些研究也确实取得了很好的效果, 他们能在尽可能少的改动现有软硬件的情况下降低平均网络流平均完成时间(FCT),提升 网络的利用率和吞吐量。但是分布式计算在进行不同阶段间的数据传输时不可能仅仅通 过一条流来完成,而在这个不同计算阶段之间,由于存在数据依赖,当且仅当这一组网络流 (Coflow)全部传输完成之后,计算的下一个阶段才能开始。
[0004] 针对这个现象美国加州伯克利大学的论文中提出了 Coflow的概念,以一个整体 去调度一组上下文相关的网络流。针对这个概念目前主要有集中式的调度(如Varys)和分 布式调度(如Baraat)两种模式,但是目前前者的调度方式大多基于静态配置,无法适应公 有云以及集群运算资源共享的环境。而目前分布式的调度方式往往需要大量修改交换机, 这使得分布式的调度在部署到实际生产环境中的可能性大幅下降。

【发明内容】

[0005] 本发明针对现有的Coflow调度方法的不足,提出了一种用于分布式计算平台的 网络流组调度方法,通过采用将集中式与分布式相结合的动态调度算法,很好的解决了目 前集中式和分布式调度的局限性。采用集中式调度,不需要改动硬件就能能快速扩展到分 布式集群中,同时动态的带宽输入和分布式的大流限速,很好的解决了集中式调度的滞后 性问题。最终达到了(1)提升调度的精确性,(2)降低数据中心Coflow的平均完成时间的 目标。
[0006] 本发明的发明目的通过以下技术方案实现:
[0007] -种用于分布式计算机平台的网络流组调度方法,包含以下步骤:
[0008] 步骤1 :在分布式计算机平台中设置一台机器作为中心控制节点,剩下的机器作 为工作节点,中心控制节点定期收集每个工作节点上的剩余带宽以及网络流组注册请求;
[0009] 步骤2 :当中心控制节点收到某个工作节点的网络流组注册请求之后分配一个 Coflow ID给提出网络流组注册请求的工作节点;
[0010] 步骤3 :提出网络流组注册请求的工作节点将所述Coflow ID转发给具体需要发 送和接收该网络流组中各网络流的其余工作节点;
[0011] 步骤4 :工作节点在传输网络流前根据收到的Coflow ID向中心控制节点发起一 次提交请求;当工作节点准备接收网络流时,根据收到的Coflow ID向中心控制节点发起 一次获取请求;
[0012] 步骤5 :当中心控制节点收到该网络流组中所有的工作节点提交的提交请求和获 取请求时,将该网络流组加入调度队列;
[0013] 步骤6 :中心控制节点根据调度队列中各网络流组的优先级和工作点节的剩余带 宽计算各网络流组的传输次序和传输速度;
[0014] 步骤7 :工作节点根据中心控制节点提供的传输次序和传输速度完成网络流组的 发送和接收。
[0015] 优选地,所述步骤1中中心控制节点根据工作节点上守护进程的心跳信息定期收 集每个工作节点的剩余带宽。
[0016] 优选地,所述网络流组注册请求包含网络流组的工作模式和网络流的数目。
[0017] 优选地,所述调度队列在遇到一个网络流组中所有的网络流都能开始传输,或者 一个网络流组中所有网络流传输结束,或者某个工作节点的剩余带宽变化超过阈值时就会 重新调整。
[0018] 优选地,步骤6中各网络流组的优先级通过以下方法确定:
[0019] 当开始调度时,中心控制节点根据当前各个工作节点的剩余带宽,计算瓶颈流的 完成时间,根据各网络流组的瓶颈流的完成时间从小到大来决定各网络流组的优先级,中 心控制节点让高优先级的网络流组先传输;所述瓶颈流为网络流组中传输速度最慢的网络 流。
[0020] 优选地,步骤6中传输速度通过以下方法获得:
[0021] 中心控制节点控制优先级高的网络流组中的瓶颈流独占该瓶颈流所属的传输链 路,而该优先级高的网络流组中其他的网络流则降低传输速度,实现与瓶颈流量齐平,由此 产生的空余带宽,则让低优先级的网络流组分享。
[0022] 进一步,为了防止低优先级的Coflow传输影响高优先级的Coflow的完成时间,步 骤7中还包含对中心控制节点提供的传输速度进行调整,包含以下方法:
[0023] 当工作节点发现传输链路上有拥塞时自动降低优先级低的网络流组的传输速度, 反之则逐步增加优先级低的网络流组的传输速度,调整公式如下,其中α是调整速度的参 数,F是这次窗口中包含拥塞的包的个数,Speed则表示大流的传输速度,CE代表拥塞标志:

【附图说明】
[0026] 图1为本发明中分布式计算机平台的架构示意图;
[0027] 图2为本发明一种用于分布式计算机平台的网络流组调度方法的流程图;
[0028] 图3为本发明中工作节点的流传输速度控制算法流程。
[0029] 具体实施方法
[0030] 以下将结合附图对本发明的实施例做详细说明。本实施例在本发明技术方案和算 法的前提下进行实施,并给出详细实施方式和具体操作过程,但是适用平台不限于下述实 施例。目前主流的分布式计算平台,只要结合已相关Coflow调度提供的标准API,均能实现 高效的Coflow调度,提升计算性能。
[0031] 本实例的具体操作平台是一个由五台戴尔(Dell)服务器和一台戴尔交换机组成 的一个集群。服务器的型号为Dell PowerEdge R710,每台装有两块Intel Xeon X5660 2.8GHz CPU。每台服务器的内存为96GB,硬盘位两块600GB。网卡为Broadcom 5709C千兆 以太网卡。每个服务器上装有UbuntuServer 14.04.1 LTS 64bit。
[0032] 如图1所示,以Hadoop的集群为例,本发明需要在分布式集群中的指定一台机器 作为中心控制节点(Master),剩下的机器作为工作节点(Slave),并在这些工作节点中开 启守护进程,实时监控网卡的进出剩余带宽,通过心跳检测汇总给中心控制节点。在中心控 制节点上运行了两个模块,分别是Coflow调度模块和速度控制模块。其中的Coflow调度 模块会在调度被触发时开始运行。它会从速度控制模块的缓存中读取各个工作节点的出入 剩余带宽,结合调度队列中的每个网络流的大小算出每个Coflow的最大完成时间,并据此 排序,标记优先级和相应的速率。之后通过中心控制节点发送个工作节点。
[0033] 工作节点上运行了连接计算平台的客户端实体,根据Coflow调度提供的标准API 进行网络流的传输的控制。同时每个工作节点上还运行着一个守护进程,用来保持和中心 控制节点的通信。同时,守护进程还负责控制该工作节点上低优先级Coflow的动态限速。 除了这些,这个守护进程中还有一个带宽监控模块用来实
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1