并行文件系统详解:元数据、条带化和吞吐量

并行文件系统在高性能计算中至关重要,为数千个计算节点提供高聚合I/O带宽和低延迟访问。系统分为分条型和非分条型:非分条型在单节点存储文件,元数据负担较轻;分条型将文件分片存储到不同节点,需维护分条映射信息。Dell Project Lightning项目通过专有客户端驱动实现极致并行性能。

并行文件系统在高性能计算(HPC)领域中扮演着至关重要的角色,它们需要为同时处理同一问题的数千甚至数万个计算节点(或数百万个核心)提供足够高的聚合I/O带宽和低延迟的共享数据访问。这类文件系统能够优化计算硬件的使用,使处理应用程序运行得更快。

并行文件系统能够并行传输多个文件,或者并行传输单个文件的多个部分(条带)。

成熟的HPC并行文件系统通过并行输出文件条带,并将这些条带传送给HPC处理器,使它们能够并行工作并更快地完成任务,从而更快地将单个文件的多个部分从存储传输到计算设备。

条带化和非条带化这两种变体在实现方式上有很大不同。

非条带化并行文件系统将传入的文件存储在单个节点上。没有条带化,因此元数据负担较轻。客户端前端在文件级粒度上操作,而不是条带粒度。

条带化并行文件系统必须接受传入的文件,将其分割成碎片,并将这些碎片存储在不同的存储(数据服务器)节点上,每个节点都有自己的网络链接。这意味着它必须维护文件的节点-条带存储映射,列出哪些条带在哪个节点上。例如,文件A(条带1:节点M,条带2:节点N,条带3:节点O等)。这意味着需要大量的文件条带映射元数据。

为了并行传输条带,请求的客户端前端必须了解它们的存在。当它收到文件请求时,必须知道存储后端已将文件部分或碎片条带化到多个节点,这样它就可以向每个节点发送读取请求。换句话说,它必须能够访问文件的条带映射。这需要客户端前端与后端存储系统之间的链接和协调。

如果要传输大文件,那么条带级的并行访问将更快地传输文件。如果要传输较小的文件,那么文件级的并行访问效果更好。

高层次示例

作为一个简化的高层次练习,假设要通过网络管道从数据服务器系统向客户端系统传输10TB的文件数据。我们在非条带化并行文件系统上有10个100GB文件,在有10个节点的条带化并行文件系统上有一个10TB文件。这10TB文件数据在任一系统中都应该在相同时间内传输完成。

现在让我们给后端数据服务器配置100个节点,并有10个10TB文件,总计100TB。非条带化并行文件系统将它们存储在10个数据服务器节点上,这些节点可以并行操作。条带化并行文件系统使用100GB条带,将10个10TB文件跨越100个节点存储,所有节点都可以并行操作。

然后客户端从每个系统请求完整的100TB文件数据。

非条带化并行文件系统由10个节点传输100TB数据,每个节点通过网络管道传输其10TB文件。但条带化并行文件系统通过管道并行传输100个100GB条带,在一小部分时间内完成100TB文件数据的传输。

并行文件系统产品

GlusterFS、Quobyte和Qumulo在文件级并行性上运行。BeeGFS、DDN的Lustre、Spectrum Scale和DAOS是条带化并行文件系统。WEKA和VAST Data也具有条带化并行文件系统功能。

分析师Chris Evans告诉我们:"在[pre-pNFS PowerScale/Isilon]以及当然还有NetApp传统产品的背景下,单个节点的性能实际上就是系统的性能。Isilon和NetApp受益于传输可以分散到各个节点的许多小文件操作的传统。它们在表示较少数量的大文件操作的工作负载方面一直有困难。"

"有趣的是,这就是对象存储的优势所在。如果你不需要文件的锁定功能,对象存储可以为你提供跨多个节点的大规模并行性能(如果实现正确),通常是因为数据广泛分布在横向扩展设计中。"在他看来:"我认为pNFS的加入和新的并行架构是传统供应商为了解决与对象存储配合更好的新工作负载组合而采取的防御性策略。"

关于pNFS(并行NFS),它可以是使用FlexFile Layout的条带化并行文件系统,也可以是不使用它的非条带化系统。FlexFile Layout是一个关键,具有访问文件条带映射的前端客户端软件是另一个关键。

FlexFile布局类型

并行NFS(pNFS)在NFS v4.1中定义并在NFS v4.2中扩展。它将控制路径(元数据)与数据路径分离。FlexFiles布局启用条带级并行性。

Hammerspace pNFS技术简报指出:"要使用这种[pNFS]架构,需要访问数据的兼容NFS客户端首先联系元数据服务器。元数据服务器提供布局,其中包括字节范围和存储位置信息。当客户端持有布局时,它可以直接访问相应的存储位置。布局是一种抽象,使客户端无需了解底层存储的详细信息。"

兼容的NFS客户端是标准的v4.2客户端。

实际上,元数据服务器(MDS)告诉客户端:"这里有一个布局,准确描述了这个文件的字节位置以及如何直接访问它们。"然后客户端直接向存储节点读写数据,在数据流量方面绕过MDS。

pNFS标准中有四种官方布局类型,如RFC 8435中定义的,也是NFS v4.2规范的一部分。每种布局类型描述了将文件字节映射到存储服务器的不同方式。

Project Lightning:极致并行性

戴尔的Project Lightning通过添加专为在AI工厂类型配置中同时为数千个GPU提供数据服务而优化的客户端驱动器,进一步推进了PowerScale并行性。

正如戴尔发言人告诉我们的,Project Lightning的这一部分需要"一个专有的客户端驱动程序,用于将整个文件系统表示为对客户端'本地'。这需要在客户端上消耗更多资源,以及对所述专有驱动程序的管理。好处意味着极致的直接到驱动器性能,以完全饱和网络,即使是完全随机的读取。Lightning是一个全新的并行文件系统,具有针对性的应用程序,以满足基础设施团队有能力优化完整堆栈的最高性能要求。"

戴尔选择专有的客户端驱动程序来"将整个文件系统表示为对客户端'本地'"。这不是pNFS本身的严格要求(它可以使用开源的、符合NFS v4.2的Linux内核模块),而是戴尔的故意架构选择。

这是因为,对于在Nvidia DGX SuperPODs上训练大型模型等AI工作负载,标准客户端仍然有开销。它必须解释FlexFile布局,管理多个连接(例如通过nconnect进行多路径),并遍历协议层。这可能将每个客户端的吞吐量限制在约400 Gbps,并增加随机I/O的延迟。当你有数千个GPU时,这样的开销会累积。

据我们了解,戴尔即将推出的驱动程序将实现直接的客户端到设备访问,跳过客户端和服务器端的传统文件系统遍历。它将整个分布式PowerScale集群(最多256个节点)呈现为统一的"本地"文件系统挂载点,类似于Lustre或GPFS客户端将集群融合到单个虚拟命名空间的方式。这通过一个NFS挂载聚合来自所有集群节点的I/O,使用RDMA实现近线速效率,提供97%的网络饱和度。

它将包括自定义的戴尔多路径优化,基于Linux nconnect构建,以动态平衡负载,处理RDMA条带化,并与OneFS特定功能(如分布式锁定和后端并行性)集成。它需要作为内核模块安装,并需要管理来强制执行这些,消耗更多的客户端CPU和内存用于布局缓存和故障转移。

好处是一致的高速文件访问,没有中央元数据瓶颈,实现大规模I/O并发——在测试运行中每个客户端在500到900 GB/s之间。这对戴尔基于以太网的AI工厂至关重要。

这将使戴尔能够将PowerScale定位为AI的"世界上最快的并行文件系统",避免全面类似Lustre客户端的部署复杂性,同时缩小与WEKA或VAST等竞争对手的差距。

截至2025年11月,它正在为选定的客户/合作伙伴(例如剑桥大学、WWT)进行私人预览,预计在2025年末/2026年初在OneFS 9.5+上正式发布。

Q&A

Q1:并行文件系统中的条带化和非条带化有什么区别?

A:非条带化并行文件系统将传入的文件存储在单个节点上,没有条带化,元数据负担较轻,客户端前端在文件级粒度上操作。条带化并行文件系统将文件分割成碎片,存储在不同的存储节点上,需要维护节点-条带存储映射,元数据负担更重,但能实现更高的并行性能。

Q2:戴尔Project Lightning项目的核心技术特点是什么?

A:Project Lightning使用专有的客户端驱动程序,将整个分布式PowerScale集群(最多256个节点)呈现为统一的"本地"文件系统挂载点。它实现直接的客户端到设备访问,跳过传统文件系统遍历,使用RDMA实现97%的网络饱和度,在测试中每个客户端可达500-900 GB/s的吞吐量。

Q3:pNFS中的FlexFile Layout有什么作用?

A:FlexFile Layout是pNFS标准中的一种布局类型,它启用条带级并行性。元数据服务器向客户端提供包含字节范围和存储位置信息的布局,客户端可以根据布局直接访问相应的存储位置,从而实现数据流量绕过元数据服务器,提高并行访问效率。

来源:BLOCKS & FILES

0赞

好文章,需要你的鼓励

2025

11/27

08:09

分享

点赞

邮件订阅