论文部分内容阅读
随着信息技术的发展和普及,数据密集型应用已被广泛应用于众多等领域,尤其是科学计算领域。这类应用所处理的数据量通常十分巨大,且应用数据集之间往往存在着关联关系。通过应用工作流技术,可以实现各种复杂计算任务的自动化执行,我们称之为科学工作流。部署和执行科学工作流应用,不仅对计算资源有较高要求,同时也需要大量的存储空间。当前科学工作流应用多被部署于分布式计算系统,因为这些系统能够为科学工作流提供所需的高性能计算资源和海量存储空间。云计算作为一种典型的分布式网络计算技术,能够以相对低廉的基础设施成本为科学工作流应用提供所需的计算和存储资源,为其提供了一种全新的部署和执行方式。在云计算环境下部署和执行科学工作流应用,一方面能够节约大量成本,另一方面也为在遍布Internet的科研人员间实现资源共享与合作研究提供了一个良好的契机。然而,科学工作流应用在利用云计算技术的过程中遇到了一些新的挑战,特别是在数据布局(data placement)方面。云数据布局,即指在多数据中心的云存储环境下为应用数据文件选择存放位置的过程,其结果被称为云数据布局方案。科学工作流应用的部署和执行过程,是云计算环境下多个分布式数据中心协作的过程,该过程中的跨数据中心数据移动难以避免。由此带来的挑战主要体现在三个方面:1)一些应用数据集由于所有权等原因不允许被移动而只能被置于固定的位置;2)相对于巨大的应用数据量而言,数据中心间的网络传输带宽有限,而频繁的跨数据中心数据传输意味着不可忽视的时间开销;3)在隶属于不同服务提供商的云数据中心间进行数据传输往往将导致运行成本的增加。因此,如何通过对海量应用数据进行合理布局,从而降低应用执行过程中的跨数据中心数据传输,成为了在云计算环境下部署执行科学工作流应用的关键问题。针对云计算环境下科学工作流的数据布局问题,本文首先对问题进行了描述、分析和建模,并基于此将科学工作流应用分为两类:一类是相对稳定型科学工作流应用,其特点是流程步骤和应用数据的变更相对较少:一类是相对动态型科学工作流应用,其特点是流程步骤和应用数据的变更相对频繁。之后,本文针对上述两类科学工作流应用分别提出了两种不同的数据布局策略。其中针对相对稳定型科学工作流应用,我们提出了基于遗传算法思想的全局数据布局策略:针对相对动态型科学工作流应用,我们提出了基于贪婪算法的动态数据布局策略。前者侧重于数据布局的全局性和稳定性,以全局最优为目标来进行数据布局:后者则侧重于数据布局的动态性和灵活性,旨在应对流程步骤和生成数据的不确定性。上述两种数据布局策略,能够在保证数据布局有效性的基础上减少应用执行过程中的跨数据中心数据传输次数和由此导致的时间开销,从而降低开销并节约成本。本文通过建立云计算模式下分布式数据中心的模拟环境,对上述两种数据布局策略与其它同类数据布局策略从数据布局方案所对应的跨数据中心数据传输次数、数据传输时间开销等多个角度进行了对比分析。实验结果显示,与同类数据布局策略相比,本文所提出的两种数据布局策略具有较好的综合性能,其中在降低科学工作流应用执行过程中的跨数据中心数据传输时间开销方面表现尤为突出。本文的研究成果不仅对提升云计算环境下科学工作流的执行效率具有重要意义,同时也适于云计算环境下的其它数据密集型应用,具有较高的实用价值与广阔的应用前景。