论文部分内容阅读
主动存储是利用存储设备自身剩余的处理能力,把本由应用程序执行的部分计算管理任务向存储设备迁移,通过在存储设备上就近处理数据方式减小I/O瓶颈对系统的影响。在当前大数据环境下,不少数据密集型应用的数据访问量都是PB级别,主动存储对解决这些应用中的I/O瓶颈起着重要作用。然而,目前主动存储系统存在异构性,主要是处理器、存储介质和操作系统等方面的异构。与此同时,现有主动存储执行框架和数据放置方法仍然是为同构主动存储系统而设计。因此,找出适合于异构主动存储系统的主动存储执行框架和相应的数据放置方法对构建高效主动存储系统具有十分重要的意义。本论文针对异构主动存储,从四个方面进行了研究:1.提出了一种基于Java虚拟机(JVM, Java Virtual Machine)的异构主动存储框架。该框架采用JVM运行Java代码以实现用户主动存储功能,从而解决异构平台主动存储执行问题。该框架扩展了标准OSD模型,通过提供新的代码下载、代码关联、代码触发和代码执行四个接口,使得用户主动存储代码从客户端下载到OSD上,并在OSD上按用户需求执行这些主动存储代码。最后,通过实验验证基于JVM的主动存储结构框架,结果表明该框架能跨平台执行主动存储,并且这种跨平台的设计在很大程度上可以提高系统的性能。2.提出了一种存储能力感知的非均匀的主动存储数据放置策略(SDD,Skewed Data Distribution),有效解决异构存储设备在主动存储处理中因为性能不同而相互等待的问题。与传统主动存储系统采用均匀数据放置策略不同的是,SDD策略根据每个服务器性能的不同,在不同服务器上放置不同数据量。首先,通过提出一种评价主动存储处理开销的成本模型,来衡量不同存储设备在主动存储过程中的时间开销,从而找出理想数据放置策略,并把数据放置的优化问题转化为在一定约束条件下的四个线性规划优化问题。该策略能解决混合主动存储系统中高性能计算应用的性能的问题。然后,在并行I/O系统中实现了一个SDD策略的原型系统,并通过典型的数据处理应用验证了提出数据放置策略的有效性。最后,实验结果表明我们提出的数据放置策略能显著提高整个主动存储系统的性能。3.提出了一种计算能力感知的主动存储数据放置策略(CADP,Capability-Aware Data Placement)。该方法是一种在异构主动存储系统中分布数据的新型数据放置方案。首先,这种能力感知数据放置方案根据新提出的整体度量指标一处理率,来评测异构集群中各存储节点的数据处理能力,包括计算能力和存储能力。然后,根据各节点的数据处理率来分配存储节点上的数据存储量,从而避免异构服务器上的负载不均衡。我们在并行I/0系统中实现能力感知数据放置方案的原型,并评测其典型应用程序的性能。实验结果显示能力感知数据放置方案能明显提升主动存储系统性能。4.提出了一种自适应主动存储任务调度策略(AASS, Adaptive Active Storage Scheduling),动态地将主动存储任务调度到存储结点上执行或者在原有计算节点上执行。在大规模主动存储系统中,不同主动存储任务具有不同特点,并不是所有任务都适合在存储节点上执行。为了确定主动存储任务执行方式,AASS提出了一种主动存储任务执行时间模型,以评估主动存储任务分别在计算节点和存储节点上执行的时间开销。在任务执行过程中,AASS根据该模型预测主动存储任务在不同节点上执行时间,并自适应地将该任务调度到执行时间较少的计算节点或者存储节点上执行,从而减少任务整体执行时间。