论文部分内容阅读
云计算作为一种新型计算服务模式,经过十多年的深入研究与快速发展,已经成为信息技术领域的重要组成部分。云计算主要以分布式计算和虚拟化技术为基石,通过资源动态管理实现资源整合与共享,以按需、易扩展的方式为用户提供服务。如今,越来越多的企业将应用部署在云计算平台上。然而,随着云数据中心规模的不断扩展,云计算系统内部出现故障的概率也随之升高,计算资源的故障可能会导致部署在云端的任务的实时性无法得到满足。由于云计算平台需要为用户提供极高的可用性和可靠性保障,因此,容错性成了云计算的一个必不可少的设计要求。通过任务调度的方式实现容错是一种高效、可行的方式,基于任务复制的主副版本(primary/backup,PB)模型是常见的容错技术。在主副版本模型中,每个任务被复制成一个主副版本(primary copy)和一个副版本(backup copy),将两个版本分配到不同的计算节点上,从而实现容错。基于主副版本模型的容错方法已经在传统分布式系统中得到了广泛研究。然而,云计算系统的虚拟化特征使得这些容错方法无法直接应用于云环境中。针对这一问题,本论文以主副版本模型为基础,充分考虑云计算系统的虚拟化、可扩展的特点,对于多种类型的实时任务进行了研究,提出了基于云环境的实时任务容错调度算法。具体工作为:(1)对于实时周期任务,提出了基于云环境的实时容错静态调度算法FTPC。FTPC算法面向异构的虚拟化云环境,建立了周期任务模型和调度模型,分析了云环境下的任务调度约束条件,采用基于单调速率的固定优先级,设计了基于最坏响应时间的可调度性检测方法,利用主动副版本释放技术和被动副版本过载技术来减少容错造成的资源冗余,分析了故障恢复过程,在不同负载的情况下均能有效减少计算资源占用。(2)对于实时动态独立任务,提出了动态容错节能调度算法EFTR。EFTR算法包括总体调度、本地调度和资源扩展三部分,相应的调度模型中包含总调度器、本地调度器和资源管理器。总调度器负责将任务的主版本和副版本分别发送到不同的虚拟机上。本地调度器负责在副版本被释放的时候重新排列虚拟机中的本地任务队列,将主版本提前,将副版本推后。资源管理器负责对对云计算资源进行扩展,在计算资源不足时添加或者迁移虚拟机。在任务调度的过程中,详细分析了任务的分配约束和副版本的重叠条件,保证任务的可调度性。另外,EFTR算法采用积极的虚拟机创建策略来提高系统的整体处理能力。(3)对于实时静态独立任务,提出静态容错节能调度算法EFTP。EFTP算法利用副版本重叠技术,尽可能地减少副版本对资源的占用。对于近似无限的云资源池,通过资源估计策略选取合适的初始计算资源,根据任务负载、截止时间和计算资源性能估算出所需的虚拟机数量,并根据任务调度结果采取迭代方式进行自适应优化。对于选定的计算资源,利用粒子群优化算法进行任务分配,并且保证分配结果符合虚拟机和物理机的约束关系以及副版本重叠限制。在保证任务实时性的前提下,尽量降低系统能耗。(4)对于实时工作流,提出了工作流静态容错调度算法FTWP。FTWP算法首次对工作流中任务关系进行了定义,将任务关系分为依赖关系、半独立关系和独立关系,详细分析了工作流调度的版本分配约束和版本重叠约束,完善了副版本重叠的约束条件。FTWP算法以降低系统能耗为目标,以截止时间为约束条件,利用粒子群优化算法对任务分配方案进行全局优化。同时,为了保证资源得到有效利用,使用自适应资源调整策略对虚拟机数量进行调整。最后,对全文进行了总结,对工作存在的不足进行了分析,对未来的研究工作进行了展望。