论文部分内容阅读
云计算开辟了Internet发展的新时代,将带动软件、硬件、通信和物联网等产业的繁荣,是人类社会实现“智慧地球”的一个里程碑。云计算是并行计算、分布式计算、网格计算的融合和发展,是集软件技术、硬件技术、虚拟技术、网络技术于一体的一场革命。云计算要实现的目标是让Internet上的资源(计算资源、网络资源、存储资源等)象水和电一样在网络上按需分配,并能够根据请求任务复杂性和数据集合大小合理的动态调整。目前,云计算任务调度的相关研究主要集中在Hadoop模型和MapReduce编程模型,Hadoop的提出对于解决数据密集型的简单查询具有很强的优势,其本质是在不同的数据集合上进行相同的操作,更大程度上倾向于数据的分布性(并行性),对于由众多子任务构成的复杂任务请求,其并行性受到很大的限制。同时其内置的FIFO(First In First Out)算法、FS(Fair_Scheduling)算法、CS(Capacity_Scheduling)算法存在QoS(Quality of Service)差、频繁调度、资源碎片多、不够灵活等弊端,因此本文从调度模型和调度算法两个方面进行了研究,主要创新点有:(1)针对复杂任务,提出了改进的MapReduce模型,该模型保留了原Hadoop模型数据并行性优点的同时,能够在架构上实现真正的任务分解和并行计算,大大扩展了MapReduce模型的并行性。改进的MapReduce模型在Map过程开始之前增加了任务分解过程,将复杂任务的DAG(Directed Acyclic Graph)图转化为MCST(Minimum Cost Spanning Tree)最小生成树,为任务执行提供了可以信赖的最小执行时间依据。该模型大大扩展了Hadoop架构的应用领域,将主要应用于商业和重交互式领域的Hadoop架构拓展到了科学计算领域,为那些只熟悉MPI(Message Passing Interface)的科研工作者提供了可以利用廉价商用PC从事科研的系统架构。(2)针对用户多类型、多粒度的任务请求,提出了基于ACO的云计算任务调度算法,该算法把ACO算法的动态性、并行性融合到了Hadoop架构中,充分发挥了并行性和分布性,避免了Hadoop中经典算法在处理大粒度任务时造成众多小粒度任务等待时间过长的问题,增强了交互性。通过智能的全局信息素更新和局部信息素更新方法,以及设定信息素的最大值和最小值手段,降低了算法陷入局部最优的可能性。ACO算法的启发式调度非常适合在资源提供和任务请求动态发生改变的环境下,利用信息素的动态改变来找到全局最优解。(3)针对普通商用PC作为具有多种属性的独立资源个体的虚拟化程度不高的云计算,提出了基于概率模型的多目标查询处理Skyline方法,Slave节点通过对比Master下传的概率阈值和近似度来查询出高于概率阈值的节点,并把性能参数上传给Master节点,过滤出大多数不适合多目标任务分配的处理机节点,大大提高了节点性能参数数据的比重,降低了网络数据传输量,减小了Master节点处理数据的负担;其采用的主动申请方式,规避了Hadoop模型中Heartbeat大小对任务执行的负面影响。该方法融合了Skyline查询和Hadoop模型内置FIFO算法的特点,查询效率和分配效率得到了充分的发挥。(4)针对任务粒度差异过大,固定资源分配容易造成资源浪费或负载过重的问题,提出了一种根据任务粒度大小和资源多寡进行任务调度的弹性模型,模型中的自由节点可以加入重度负载的节点聚簇,或撤离轻度负载的节点聚簇;节点聚簇类似于在Master节点和Slave节点之间又构建了一层计算单元,单元中的资源成员是非固定的、无形的,随着任务的创建而组合,随着任务的完成而消失。当节点聚簇中的节点负载率过高时,会有自由节点加入;当节点聚簇中的节点负载率过低时,会有自由节点撤离节点聚簇。该模型突破了以往弹性计算“时间换质量”的束缚,开创了“空间换质量”的弹性计算模式,大大地提升了系统的灵活性和扩展性。最后,对该博士论文中提出的调度模型和调度算法的创新性方面进行了总结,并对今后云计算的发展和任务调度的研究方向进行了展望,指出可重构性、可扩展性、可用性、数据存储布局优化问题、任务聚簇和任务复制将是下一步研究的重点和难点。