任务集中的任务有些是计算密集型,有些是数据密集型,任务的大小和要求的通讯模式也各不相同。因为此类任务不适合在多个节点之间运行,所以假设此类任务为紧耦合型,必须在一个节点资源上执行[1]。应用程序在执行时需要与之相关联的数据集,并且可能产生结果数据。本文假设一个应用程序所需要的数据集都必须一次性迁移到执行该应用程序的节点上。当计算数据迁移费用时,本文只考虑数据迁入的情况(不考虑数据迁出时的费用),并且假设一个供应商可以单独执行完成一个应用程序。
定义2:混合云环境 , 表示混合云, 表示公共云, 表示私有云集合。 表示私有云的计算节点集合。因为公共云采用多种策略保证为用户提供安全可靠的资源,因此我们假设公共云是安全的,并且资源是无穷的,可以满足所有用户请求。任务在公共云执行时,需要把此任务需要的相关数据迁移到所在节点上,因此计算和数据迁移都需要收取一定的费用。而私有云不可能向公共云那样注入太多的资金来保证动态提供资源的完全可靠性,因此我们假设私有云资源有限且容易发生资源失效情况,并且私有云不向企业内用户收取任何费用,所以对于混合云环境下的资源调度策略,应优先考虑把任务调度到私有云执行以减少任务执行费用。当运行在私有云上的请求超过一定数量时,受计算资源的限制,导致大量请求处于等待状态而无法保证服务质量(Quality of Service,QoS)。此时,必须考虑从公共云借用资源,以满足任务对资源的需求。
定义3:资源稳定性表示资源在运行过程中发生失效事件的概率,概率越小越稳定,概率越大越不稳定。为任务提供可靠资源是实现2L-FARS模型的关键,因此必须对资源的失效规律进行研究。研究人员通过对系统失效日志的研究[2-4],发现在分布式环境中,失效事件表现出很强的时间局部性和空间局部性,并且依赖于负载的类型和失效率的强度。文献[5]通过对一个大规模云计算实验床的系统失效日志作统计分析,发现74.5%的失效事件发生在20%时间段内, 14.45%的节点上发生了80%的错误事件。
文献[6 7]说明,在真实的分布式计算环境中,任务的执行时间是Long-tailed,即任务计算数量的小部分占据大部分的计算时间。
对于典型的高性能计算服务(也是本文考虑的负载模型),无计划重启失效的时间间隔符合m小于1的 分布。根据此随机过程,文献[5]通过推导得出规律,刚刚运行的节点更有可能失效,而运行起来以后,节点会变得越来越稳定。本文在考虑失效规律的基础上,提出费用效率的资源调度策略,把任务的大小作为调度的依据之一,进一步减少服务截止时间的违约率。
定义4:任务稳定性表示任务执行过程发生失效事件的概率。任务稳定性取决于任务所在资源的稳定性。因为失效事件表现出很强的空间局部性,所以本文使用公式(1)表示任务 的稳定性。
(1)
式(1)中 表示任务与节点之间的分配关系, 表示任务 分配到节点 上, 表示任务 未分配到节点 上。如果 表示任务 调度到公共云执行。 表示任务 调度到私有云执行。 表示第 个任务的稳定性。 表示资源 的稳定性。
定义5:任务违约率。截止时间内无法完成的任务的数量占总任务的比率。任务违约率可以直接用来表示资源调度策略的优劣。使用 表示第 个任务执行完成后的违约信息。 表示任务违约,即 , 表示任务不违约,即 。任务违约率可以使用公式(2)表示。
(2) 混合云环境下基于失效感知的调度策略(2):http://www.751com.cn/jisuanji/lunwen_8841.html