《武汉工程大学学报》  2018年04期 468-   出版日期:2018-08-23   ISSN:1674-2869   CN:42-1779/TQ
基于模糊聚类的云计算集群资源调度算法



云计算(cloud computing)作为一种将计算资源作为服务并通过网络并提供给用户的计算模式,使得用户可以通过按需使用计算资源,这些资源主要包括数据、软件、硬件和带宽。云计算通过提供软件即服务、平台即服务和基础设施即服务这三类服务来为用户作业提供解决方案。云计算中的资源具有地理分散、资源异构和动态变化等特征。云计算是在网格计算的基础上发展而来,其主要特征是通过引入虚拟化计算,使得云计算环境下的资源调度不同于网格计算,但其目标往往是最小化最大完工时间,并通过启发式算法来寻求实现资源最优分配。美国国家标准技术院将云计算定义为:云计算是一种通过网络并使得用户可以按需来共享的一个可配置的资源池,该资源池能在仅需较少管理开销和交互的情况下,对资源进行快速配置和释放,云计算模式的5个基本特征为:按需自助服务、网络的广泛访问和共享资源池以及快速的弹性能力。资源调度是云计算的一个核心问题,直接关系到云计算服务的稳定性、资源的使用效率和用户满意程度。云计算的资源调度问题的研究从理论技术本身上来说具有非常重要的意义[1-3]。文献[4]针对云计算领域的任务调度问题,提出了一种基于人工免疫的云计算平台动态任务调度算法,通过排队论粗略确定保持云平台稳定的条件,为后面的计算提供基础数据,然后利用免疫理论中的免疫克隆算法来为不同节点分配资源实现最优配置,实现负载平衡处理。为了提高传统资源调度算法的资源利用率,文献[5]提出了一种云计算环境下的资源调度模型,该资源调度模型基于人工蜂群算法进行调度方案优化。文献[6]分析讨论了1组Directed acyclic graph (DAG)共享云计算资源调度[7-8]中的多DAG数量、属性结构分布特点和资源需求量关系,提出了一种基于资源需求强度预测变异方法的进化算法(evolutional algorithm based on the forecasting of resource demand,EFRD)。文献[9]研究了云端资源的管理和调度,从服务商需求角度出发来构建云资源调度方法,能在不损害用户和生产商利益的前提下实现收益平衡。 上述工作研究了云计算任务调度,具有重要的意义,本文提出了一种基于模糊聚类的云资源调度方法,在对云计算异构资源进行模糊聚类的基础上,实现资源的动态调度,并通过实验证明了文中方法的有效性。1  资源调度目标函数本文的云计算资源调度模型采用Map-Reduce编程/资源调度模型[10-14],如图1所示。从图1可以看出,云计算每个单元包含2个节点:主控节点Jobtracker和从节点TaskTracker,主控节点负责任务的资源分配、调度以及失败任务的跟踪,从节点主要负责任务的执行。TaskTracker从节点可以形式化的表示为[G(V,E)],其中[V]表示其所属主控节点所能管理的所有节点构成的集合,而E是对应的边集。因此,这些节点可以执行一系列任务。本文的主要工作就是采用模糊聚类算法选择最合适分配给节点的资源进行分配。资源分配过程中考虑的性能指标主要包括:预计执行时间[T(r)]、网络带宽[B(r)]和网络延迟[D(r)]。1) [T(r)]:任务[ti]在处理节点[tnj]执行的最早完成时间,可以表示为:[T(r)=Eij+S(nj)] (1)式(1)中,[S(nj)]为某任务在节点[nj]上可以执行的最早时间,[Eij]为在节点[nj]上执行某任务[ti]所需的执行时间。2)[B(r)]:表示路径[r]对应的网络带宽最大值。3)[D(r)]:路径[r]对应的网络延迟最大值。因此,资源调度的目标函数为:[F=minaT(r)+bD(r)cB(r)] (2)满足:[T(r)