首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

面向高性能计算的层次式混合文件系统

Xin Liu, Yu-tong Lu, Jie Yu, et al., 2017. ONFS: a hierarchical hybrid file system based on memory, SSD, and HDD for high performance computers.Frontiers of Information Technology & Electronic Engineering, 18(12):1940-1971.

https://doi.org/10.1631/FITEE.1700626

我国天河二号和太湖之光超级计算机自2013年6月至今,相继成为世界最快计算机,它们的峰值计算性能分别为54.9和125Pflops(1 Pflops = 1千万亿次浮点运算/秒)。太湖之光CPU和CPU核数分别达到40 960和1065万,数量巨大。当前,美国、欧盟、日本和中国相继发布了E级(每秒百亿亿次浮点运算)计算机研制计划,预计于2020~2021年完成。超级计算机系统从100 Pflops量级跨入E级,并非简单将规模扩大10倍,它将面临易用性、效率、能耗和存储等方面的重大技术挑战。

超级计算机结构示意图

E级计算机依然由计算、互连通信和存储3大子系统组成。从系统结构、系统设计和实现角度而言,计算子系统的基本单元为计算结点,它依然由多个CPU和加速器组成;互连通信系统是一个独立的互连网络,将计算结点连接为一个整体。由此可知,计算子系统和互连通信子系统是独立子系统,而且具有单一层次。存储系统是为用户程序的文件操作服务的共享系统,它受制于超级计算机的规模和应用环境。太湖之光的CPU核达到1065万个,由于每个CPU核均可执行程序产生I/O请求,所以并行产生的I/O请求数量巨大;超大规模数据密集型应用、大数据处理、新型工作流和checkpoint等对存储系统提出海量存储、高带宽、高并行、低延迟的要求。当前,在超级计算机中广泛使用的存储系统是基于磁盘的并行存储系统,如Lustre,最大聚合带宽约为1.5 TB/s,文件访问延迟约为毫秒量级。研究表明:需要约60 TB/s的聚合带宽才能满足E级计算机checkpoint对存储带宽的要求;超级计算机中的I/O请求具有非常明显的突发特性,一台超级计算机在98%的运行时间中,只使用了不足33%的带宽。如果按照最大带宽要求设计存储系统,存储系统规模巨大,但利用率低;基于磁盘的存储系统已无法满足E级计算机对存储系统的需求。

为解决上述挑战,我们提出层次式混合存储系统结构和运行在其上的并行文件系统(On-line and Near-line File System, ONFS),它包括在线存储和近线存储两部分。ONFS使用计算结点的内存和SSD,以及存储服务器中的磁盘,构建了具有3个存储层次和统一命名空间、支持POSIX协议的并行文件系统,可同时提供高并行能力、高带宽、低延迟和超大存储容量。

ONFS结构示意图

本文详细说明了如下主要技术内容:ONFS系统构成、分布式元数据存储和管理、计算结点内存的静态和动态借用和归还策略、多存储服务器并行访问控制、文件冷度度量方法、主动向上预迁移控制策略。我们在天河一号超级计算机上实现了ONFS原型系统,通过实验测试分析了性能和可扩展性。用户程序可以在ONFS上直接运行,与Lustre相比,应用程序的文件读写带宽提升约6倍。

研制可满足E级计算机要求的高性能存储系统,首先要分析影响存储系统性能的主要因素,包括计算机系统和用户应用程序两方面。在计算机系统方面,主要因素有:(1)超级计算机系统规模不断增大,可以产生I/O请求的CPU核数急剧增加,其结果是可以集聚产生数量巨大的I/O请求;(2)计算子系统与存储子系统分离,随着计算与存储之间的中间层次(如I/O Node,Burst Buffer Node)的增加,用户I/O请求距离底层存储系统的步骤增加,延迟增大;(3)大多数超级计算机计算结点不配置磁盘,也难以在所有计算结点中配置SSD,这使得大量本地I/O汇集到全局共享并行文件系统,导致并行文件系统面临巨大I/O压力;(4)为每个CPU核配置的内存容量逐步增大,超级计算机总的内存容量大幅增加,为借用计算结点内存构建新的存储层次提供了可能;(5)计算结点采用精简操作系统内核,在内存管理上不支持数据置换(swap)功能,在借用计算结点内存时需要考虑按需及时归还;(6)SSD逐步成熟,已在部分超级计算机中使用,为改进基于磁盘的存储系统的性能提供了可能。在用户应用程序方面,因素有:(1)单一程序总的I/O数据量巨大,可达到PB量级;(2)局部I/O占据较大比例,例如石油勘探的RTM,局部I/O占总I/O比例约为86%;(3)文件访问模式主要是1:1,即一个文件只被一个进程读/写;(4)多数文件是一次性连续读/写;(5)用户程序I/O具有明显突发和聚集特性。

构建存储系统的基本部件是存储器件。现在,可用的存储器件有磁盘、DRAM和SSD。磁盘容量大、价格低,但性能偏低;DRAM和SSD速度高、延迟小,但价格偏高。在超级计算机中,没有专门提供DRAM存储服务的服务器,DRAM分布在计算结点中,只能借用。具有高速VME接口的SSD在技术上已经成熟,由于价格居高不下,难以在超级计算机的所有计算结点中配置SSD,但是可以在部分结点或者以计算机柜为单位配置SSD,可以将这些SSD集中起来共享。使用单一类型存储器件不可能同时实现超大容量和高性能存储;为此,在ONFS中使用了超级计算机中可能获得的DRAM、SSD和磁盘,构建具有3个相对独立的存储层次的并行存储系统,充分发挥3类存储器件各自在容量、速度与延迟上的特性,实现高性能存储。

文件数据在存储层次间的迁移也很重要。我们将用户需要使用的文件迁移到具有高性能的存储层次(如DRAM和SSD),将用户暂不使用的文件迁移到底层存储层次。这是提高存储系统综合性能的关键之一。

为实现ONFS,本文在下述5个方面进行了研究:

1. 提出了具有3个存储层次的混合存储系统结构(ONFS)

我们使用内存、SSD和磁盘共同构建了具有3个存储层次的混合存储系统,每个层次可提供的I/O带宽和存储容量均不相同。ONFS中基于内存的存储层次可提供高带宽和低延迟,同时基于磁盘的存储层次可提供超大存储容量,基于SSD的存储层次缩小了基于内存和基于磁盘存储层次间性能和容量的差异。三个层次的混合存储系统可满足新HPC应用的需求。

2. 分布式元数据存储和管理

我们提出了基于用户组子目录(User Group Sub-Directory, UGSD)的元数据分布和管理方法。它维护了元数据目录固有的树状结构和空间局部性,并且在动态负载调整时不会产生元数据迁移,它还可以有效支持存储层次间的数据迁移。

3. 内存管理和分组并行访问控制

基于内存的存储层次使用计算结点中的内存资源,这些内存资源和所在的计算结点同属于某个用户。内存是易失性存储介质,且一个DS-m可提供的存储空间仅为十几GB。我们提出内存管理和分组并行访问机制,以解决以下关键问题:(1)内存借用和归还;(2)基于可用存储空间的写操作控制;(3)易失性内存存储的可靠性;(4)多个DS-m分组访问,以提供更大存储容量和更高读/写带宽。

4. 基于文件打开-关闭状态和LRU特征的文件冷度计算

我们实现了文件粒度的数据迁移,并提出使用文件冷度值确定待迁移文件。我们使用在DS-m和DS-s中设置的可用内存容量阀值触发向下迁移。通过文件访问状态等参数计算文件冷度值,并用于指导数据迁移。

5. 主动向上预迁移

大多数现有迁移策略使用文件热度值从底层存储层次选择待迁移文件,并将其迁移至上层存储层次,而多数时候该文件已被访问过。对于HPC应用,输入文件通常仅被从头至尾读取一次。这样,现有迁移策略收益就很低。我们提出基于用户程序访问和处理文件特性的主动向上预迁移策略,这可以主动在用户程序开始运行时、甚至运行前,把程序将要访问的文件预迁移至更高存储层次(如DS-m或DS-s),以此提供更高访问速度。

我们测试了在ONFS和Lustre系统上分别运行IOR Benchmark和典型数据密集型应用的性能。实验结果表明,ONFS单线程和多线程读/写性能分别为基于磁盘的Lustre性能的6倍和5倍。在ONFS上运行的数据密集型应用可获得的I/O带宽约为基于磁盘的Lustre的6.35倍。

在ONFS和基于磁盘的Lustre上运行抽道集程序的I/O性能

单程波深度偏移程序在ONFS上运行的I/O性能

单程波深度偏移程序在Lustre系统上运行的I/O性能

详细内容,请阅读网页版全文:

https://link.springer.com/article/10.1631/FITEE.1700626

主要作者简介

刘欣,国防科技大学计算机学院博士,内布拉斯加大学林肯分校计算机科学与工程系在读博士,研究方向为高性能存储和并行文件系统。参与了多个国家基金项目。

卢宇彤,中山大学计算机科学学院和国防科技大学教授,中国国家超级计算广州中心主任。她参与了国内几代超级计算机的研制,曾担任天河一号超级计算机副总设计师。在中国科技部、中国国家自然科学基金和广东省的支持下,她领导了许多高性能计算和大数据项目。研究领域包括大规模存储系统、高性能计算和计算机架构。最近当选为HPC 2019大会主席。

微信加群

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180531G1WGKH00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券