论文部分内容阅读
超级计算机规模、数据密集型应用和大数据应用规模的多重快速增长的叠加作用,对当前超级计算机中广泛采用的基于磁盘的并行文件系统带来巨大技术挑战。在超级计算机中,计算分系统与存储分系统分离,增大了I/O延迟。计算结点不配置磁盘[1,2],难以在所有计算结点中配置固态盘(SSD),使得数量巨大的本地I/O汇聚到共享并行文件系统,并产生巨大I/O压力。超级计算机中CPU核数已经达到千万量级[2,3],它将聚合产生数量巨大的I/O请求。研究和实际应用表明,当前基于磁盘构建的单一存储层次的并行文件系统在提供超大存储容量的同时,难以同时满足Exascale超级计算机提出的高并行、高带宽和低延迟的要求。本文以天河一号超级计算机、高性能计算应用和大数据应用为基础,面向Exascale超级计算机对并行文件系统的要求,研究新的并行文件系统结构和关键实现技术,主要研究工作和创新点如下:1)提出了基于层次式混合存储技术的并行文件系统结构ONFS当前在超级计算机中广泛使用基于磁盘的并行文件系统,它只有单一存储层次,由于存储服务器远离计算结点,并受限于磁盘固有的性能不足,使得它们难以满足高速低延迟的要求。基于SDD的Burst Buffer Node和ION仅用于构建局部文件系统,没有与底层基于磁盘的存储系统融为一体。本文根据Exascale超级计算应用的I/O需求特性,提出了基于DRAM、SSD和磁盘构建的具有三个存储层次的并行文件系统ONFS,以靠近计算结点的基于DRAM和SSD的存储层次为用户程序提供高速低延迟的并行文件读/写服务,利用基于磁盘的存储层次实现超大存储容量,文件可以在三个存储层次之间动态高效迁移,实现单一名空间,支持POSIX协议。经过与典型并行文件系统比较,ONFS是首个可综合实现超大存储容量、高并行、高速度和低延迟文件服务的并行文件系统,可满足Exascale超级计算机对并行文件系统的综合高要求。2)提出了基于用户组子目录的元数据划分、分布存储和处理的方法元数据的高效管理是实现高性能并行文件系统的重要基础,它包括元数据的划分、分布、存储和服务。划分方法主要有静态子树、动态子树和哈希分布三大类。静态子树粒度大,难以支持负载和规模的有效动态调整;动态子树粒度小,子树关系复杂,管理的开销大;哈希分布丢弃元数据之间的相互关系,在目录名和文件名修改时将产生元数据迁移。本文基于用户目录构建过程,提出以根目录之下的用户组子目录(UGSD)为元数据划分粒度,它保持了目录固有的树状结构,简化了元数据划分的描述和管理;提出了在UGSD上增加自然整数后缀,实现UGSD在映射函数输入变量空间的均匀分布;采用简单的MOD函数和查找表,实现UGSD到MDS、MDS到MDSS之间的映射;采用同步更新和调峰机制,实现元数据负载动态调整和MDS规模动态增减,等。由实验和比较分析可知:UGSD的元数据划分粒度合理,易于描述和管理;文件路径名到MDS之间的映射算法简单,分布均匀;可动态实现元数据负载和MDS规模的调整;综合解决了元数据划分、存储和处理上存在的主要技术问题。3)提出了DS-m的内存借用和归还策略、并行存储控制和综合性能优化方法在超级计算机中,计算结点内存是专供用户程序使用的。基于结点内存构建高速低延迟存储层次最关键的问题是如何获得可以使用的内存。迄今为止,所有基于HPC计算结点内存构建存储系统的研究工作都回避该问题。本文基于计算密集型和数据密集型程序使用内存的不同情况,将所有计算结点划分为小内存分区和全内存分区,采用静态方式先从小内存分区的结点中借用确定数量的内存;根据用户程序使用内存的动态变化情况,采用最大值方法,动态窃用小内存分区结点中的剩余内存;采用静态与动态结合的方法,及时归还程序需要的内存,确保程序正确执行。本方法首次解决了基于结点内存构建存储系统的内存来源和管理的关键问题。现有的存储空间分配方法是面向磁盘的,不适合DS-m。DS-m的可用内存容量小,读/写带宽受限于互连接口带宽,这影响了大文件存储和多进程并行读/写带宽。DRAM为易失性存储器件,通常采用双副本方法解决存储可靠性问题,现行的串行更新主辅副本的方法,延迟大。VFS的页缓存控制策略是面向磁盘小数据块的,在大文件读/写时性能低;FUSE分拆大数据块的读/写请求,引入较大的读/写请求发送延迟。为了解决上述问题,本文提出由多个DS-m/DS-s并行工作,提高DS-m组的可用存储容量和多进程的聚合带宽;采用主辅副本并行更新方法,消除串行更新方法引入的写延迟;提出了关闭VFS页缓存,增大FUSE的MAXsize参数,构建和管理客户端缓存的方法,大幅提升了大数据块的读/写性能。实验和分析表明,由4个DS-m构成的分组并行存储,提高存储容量4倍,平均提高读/写带宽3.4倍;并行副本更新时间仅为串行方式的48.8%;客户端缓存的读和写速度分别是使用VFS页缓存的6.7倍和1.78倍。4)提出了基于内存容量阀值控制的文件向下迁移和基于应用特性的文件向上预迁移的控制策略文件数据迁移是层次式存储系统获得高性能的关键技术。当前,向下迁移主要以可用存储容量作为迁移条件,向上迁移主要以文件访问特性,如读/写、访问请求大小等,为迁移条件。现有的方法或是基于低速磁盘的,或是没有考虑高性能计算应用程序访问文件的特性。使用文件访问的动态特性计算热度,开销大;仅仅使用可用存储容量控制向下迁移,不考虑文件所处的open/close状态,易于使处于open状态的文件产生迁移乒乓效应。本文按照文件所处的open和close状态,使用双LRU表,实现文件冷度计算;在DS-m中设立三个可用内存容量阀值,并与文件冷度结合触发向下迁移;基于数据密集型应用程序读/写和处理文件数据的特性,提出了全文件和部分文件结合的混合迁移粒度方法,以及向上主动预迁移和被动预迁移结合的控制策略。实验和分析结果表明,冷度计算方法的计算开销小;向下迁移可在迁出文件数据量和写入数据量两个方面取得性能均衡;全文件和部分文件数据向上迁移、主动向上预迁移可减少无效迁移操作,在DS-m与DS-d之间可提高读带宽16倍以上。ONFS支持POSIX协议,我们在天河一号超级计算机上实现了ONFS原型系统,用户程序不需要修改便可在ONFS上运行。IOR benchmark测试表明,ONFS的文件读/写带宽是Lustre的7.7倍或以上;典型数据密集型应用程序测试结果表明,ONFS文件读和写带宽分别是Lustre的5.44倍和4.67倍,实际应用效果良好。