对象存储在 AI 工作负载中的重要性不断提高

Solidigm™ S3 Fuse AI 工作负载的调研与概念验证设计

对象存储已非常普及,如今被视为 AI 工作负载的第一层存储解决方案,不仅包括推理,还包括 AI 训练和 VectorDB 用例。使用能够与 PyTorch 和 CUDA 等 AI 训练和推理框架无缝集成的文件系统来代理 S3 的需求日益增长。为了解决这个问题,该行业提供了开源项目 s3fs-fuse,让用户能够将 S3 存储与文件系统桥接。

开源 s3fs-fuse 的关键问题

  • 高内存消耗:该开源解决方案至少使用四个 C++ STL 映射来缓存 GetAttr 和 ReadDir 等文件系统操作的结果。每个映射需要 32GB 的 DRAM 来处理 1 亿个对象,总计大约需要 128GB 的 DRAM 来管理 1 亿个对象。
  • 可扩展性问题:AI 存储系统需要处理数十亿个小对象,以致于当前的 s3fs-fuse 配置不适合可扩展、面向未来的云原生 AI 部署。
  • 性能权衡:虽然 C++ STL 映射在查找和列表操作方面性能良好,但相关的内存消耗限制了其可扩展性。

Solidigm S3 Fuse 设计架构的主要优势

Solidigm 的云存储加速层 (CSAL) 团队提出了一种创新架构,让客户能够更灵活地定义性能 SLA 并管理 DRAM 的使用。通过利用 SK hynix CXL 内存模块、Solidigm D7-P5810 SLC 硬盘、Solidigm D7-PS1010 Gen5 TLC 硬盘和 Solidigm D5-P5336 高密度 QLC 硬盘等尖端技术,该设计可确保:

  • 优化可扩展 AI 存储系统的资源利用。
  • 实现性能和内存消耗之间的平衡,以满足各种工作负载需求。
  • 面向未来的可扩展性,以满足云原生 AI 部署日益增长的需求。

该架构提供了前瞻性解决方案,以克服现有开源方案的局限性,并实现高效的 AI 训练和推理工作流程。

Solidigm S3 Fuse 架构使用对象存储进行 AI 训练、搭建推理框架,将 S3 存储与文件系统桥接。 图 1. Solidigm S3 Fuse 架构

Solidigm S3 Fuse 架构概述

1. 用户文件系统操作

用户发起的文件系统操作首先由内核的 FUSE 驱动处理。FUSE 驱动将这些操作重定向到用户态服务。在此架构中,Solidigm 开发的概念验证 S3 Fuse 服务可管理 GetAttr、ReadDir、Read 和 Write 等核心文件系统操作。

2. S3 FUSE 缓存

在 Solidigm S3 FUSE 缓存的缓存模块设计中,我们选择了 FIFO(先进先出)驱逐算法。这是因为 FIFO 不仅实现了更高的命中率(正如与 LRU 驱逐算法的对比测试所示[3]),而且与底层 NAND SSD 的兼容性也更强。通过与 Solidigm 的 CSAL 软件配合使用,我们显著缓解了 NAND SSD 上的写入放大问题。通过真实环境测试,我们观察到 WAF(写入放大系数)值基本上降低到 1。

Solidigm 概念验证 S3 Fuse CSAL 附加缓存和 S3-FIFO KV 存储。 图 2. Solidigm CSAL 附加缓存和 S3-FIFO KV 存储

3. 处理 GetAttr 和 ReadDir 请求

这些请求由元数据核心处理,元数据核心利用 Solidigm 开发的概念验证 S3-FIFO 键值存储。有关 Solidigm 的 CSAL 附加缓存和 S3-FIFO 机制的详细信息,请参阅参考部分的链接 1-3。

4. 元数据核心和概念验证键值存储

元数据核心建立在 Solidigm 开发的概念验证 KV 缓存存储上,采用概念验证 S3-FIFO 缓存算法。FIFO 和 CSAL 附加缓存机制针对 SSD 进行了优化,提高了效率。Solidigm Gen5 NVMe SSD、D7-PS1010 可提供 9.4 GB/s 写入带宽和 14 GB/s 读取带宽。通过设计采用 FIFO 写入方式的软件,SSD 的写入放大系数 (WAF) 降低至 1,确保整个带宽可用于用户数据。因此,KV 存储的主队列可以在 10 GB/s 带宽下运行。

5.  KV 存储扩展选项

KV 存储的小型队列可以使用额外的 DRAM 或 SK hynix CXL 内存模块进行扩展,每个模块提供高达 96GB 的容量,延迟与 DRAM 相当。

6. 处理读写请求

这些请求依赖于元数据核心来检索文件系统的块映射。然后,将数据写入或从基于 FIFO 的大型数据块中读取,允许用户根据容量需求选择 QLC 存储。

7. 本地主机优化

如果文件信息和数据在本地可用,系统会直接将其返回给用户,否则会从 S3 获取源数据。

性能测试

性能基准测试使用微基准测试[5]与 C++ 映射和 RocksDB 配置,在 Solidigm D7-PS1010 Gen5 TLC SSD 上进行。结果显示出明显的效率和可扩展性优势。

该架构强调对 SSD 的优化利用、AI 工作负载的可扩展性和灵活的集成方案,使其成为应对现代 AI 存储挑战的强大解决方案。

待定 表 1. 测试配置

Test_KV 结果洞察

Test_KV 的测试结果显示出以下关键趋势和观察结果:

配置环境

本次分析对 RocksDB 进行了最小化调优。我们使用内存写入缓冲区并禁用压缩和块缓存,以更好地控制内存使用。进一步的微调可以带来额外的性能提升。

要点

  • C++ 映射性能:C++ 映射提供最佳性能。即使 RocksDB 分配了 3GB 的 DRAM,并几乎将内存表中的所有跳表都利用起来,其性能仍比 C++ 映射差了 4 倍。这在预料之中,因为跳表遍历涉及到多个链表的导航,而不像 C++ 映射那样可直接访问。
  • 使用 RocksDB 节省内存:通过减少 RocksDB 的内存使用,同时保持与 3GB DRAM 配置类似的性能,我们发现在不影响性能 SLA 的情况下,DRAM 可节省高达 2GB 的内存。
  • 极高的 DRAM 效率:即使只分配了 100MB 的 DRAM,RocksDB 仍然保持了 15 微秒的平均延迟。这种灵活性让系统设计人员能够根据特定用例权衡资源和性能 SLA。
  • S3 Fuse 概念验证的效率:在使用 RocksDB 时,我们的概念验证 S3 Fuse 设计在处理 1,000 万个对象的过程中,效率显著高于 S3 List,例如 Minio List 操作。
  • 这些结果突显了 RocksDB 在平衡资源效率与性能方面的潜力,为要求苛刻的存储系统提供了可扩展性和可配置性。
1,000 万条记录无序映射 3.2G(秒)RocksDB 3G DRAM(秒)RocksDB 2G DRAM(秒)RocksDB 1G DRAM(秒)RocksDB 512G DRAM(秒)RocksDB 100G DRAM(秒)
插入425958586474
获取2.248.48.19.7152.5152.5
列表2.261.361.341.62.382.36
平均延迟(微秒)0.220.850.80.9715.315.3
表 2. 测试结果

Solidigm SSD 如何为 Solidigm 的概念验证 FUSE 设计提供合适的存储空间

对于 S3 Fuse 缓存,Solidigm D5-P5336 61.44TB QLC 硬盘提供了卓越的性能和可扩展性。对于检查点写入,PCIe 5.0 Solidigm D7-PS1010 提供世界级的写入性能。


作者简介

Wayne Gao 是 Solidigm 的首席工程师和解决方案存储架构师。他从路径探索到商业发布,全程参与了 Solidigm 云存储加速层 (CSAL) 的开发工作。Wayne 拥有超过 20 年的存储开发经验,持有 4 项美国专利(已申请/授权),并在 EuroSys 上发表过论文。

Yi Wang 是 Solidigm 的现场应用工程师。在加入 Solidigm 之前,他曾在英特尔、Cloudera 和 NCR 担任技术职务。他拥有“思科认证网络专家”、“微软认证解决方案专家”和“Cloudera 数据平台管理员”认证。

Li Bo 是 Solidigm 的高级存储解决方案架构师。他拥有超过二十年跨多个组织的系统设计和开发经验,专注于优化网络和存储解决方案的性能。近年来,他将精力集中在推动全行业采用非易失性存储技术上。

Sarika Mehta 是 Solidigm 的高级存储解决方案架构师,在其职业生涯中,曾供职于英特尔存储部门,现在为 Solidigm 工作,已在存储领域深耕逾 15 年。她致力于与 Solidigm 客户和合作伙伴密切合作,以优化其存储解决方案的成本和性能。她负责针对存储部署中的各种存储用例(从直接连接存储到分层和非分层分解存储解决方案)对 Solidigm SSD 进行调优和优化。她在存储领域的各个方面都有着丰富经验,包括认证、性能基准测试、探索新方向、技术营销和解决方案架构。

Jie Chen 是 Solidigm 的技术营销架构师,负责云客户的生态系统支持,特别是在数据放置模式和存储 AI 方面。在加入 Solidigm 之前,Jie 曾在多种闪存和持久性内存产品的应用工程师、质量与可靠性工程师、产品开发工程师和项目经理等技术岗位上工作。

参考资料

  1. Solidigm FMS 2024 CSAL 附加缓存演示文稿:https://files.futurememorystorage.com/proceedings/2024/20240807_CLDS-202-1_Malikowski.pdf
  2. Solidigm S3-FIFO KV:sldmsln-open/S3FIFOKV
  3. SOSP2023 论文:主页 - S3-FIFO:简单、可扩展且高效的缓存
  4. Solidigm S3 Fuse github 地址:https://github.com/sldmsln-open/scratchs3fuse
  5. 微基准测试:https://github.com/google/benchmark
  6. 有关 CSAL 和概念验证 S3 FUSE 设计的更多信息,请联系:dl_csal@solidigm.com

免责声明

本文引用的代码是测试代码,尚未经过典型验证。此代码用于验证架构,尚未准备好用于生产环境。用户在其环境中使用此代码,需自行承担风险责任。

所有产品计划、路线图、规格和产品说明如有更改,恕不另行通知。 
  
本文中的任何内容均无意作出任何明示或默示的担保,包括但不限于关于适销性、适合特定目的及不侵权的默示保证,或在履行合同、交易过程或贸易惯例中产生的任何担保。 
  
本文所述产品可能存在设计缺陷或错误(已在勘误表中注明),可能会使产品偏离已经发布的技术规范。可应要求提供最新特征勘误表。 
  
请在下单之前联系您的 Solidigm 代表或经销商以获取最新规格。 
  
如需本文档、其中引用的文档或其他 Solidigm 文献的副本,请联系您的 Solidigm 代表。 
    
所有此处涉及的产品、计算机系统、日期和数字信息均为依据当前期望得出的初步结果,可随时更改,恕不另行通知。 

Solidigm 可随时在不另行通知的情况下修改规格和产品说明。设计者不应依赖任何产品所不具有的特性,设计者亦不应依赖任何标有“保留权利”或“未定义”的说明或特性描述。Solidigm 保留未来对其进行定义的权利,对于任何因未来更改引起的冲突或不兼容性,Solidigm 概不负责。此处提供的信息可随时改变而毋需通知。本信息不表示设计已经定型。

测试记录特定系统上具体测试中的组件性能。硬件、软件或配置的任何不同都可能影响实际性能。当您考虑购买时,请参考其他信息资源以评估产品性能。 
  
性能结果基于截至配置中所示日期的测试,并且可能无法反映所有公开的更新。详情请参阅配置披露。没有任何产品或组件能保证绝对安全。 
  
针对 Solidigm 或英特尔编译器或其他产品的 Solidigm 或英特尔优化可能无法为非 Solidigm 或英特尔产品提供相同程度的优化性能。Solidigm 或英特尔技术可能需要启用硬件、软件或服务激活。 
  
您的开支和结果可能会有所不同。 
  
Solidigm 不对第三方数据承担任何控制或审计的责任。您应参考其他信息来源以评估准确性。 
  
一些结果是使用 Solidigm 内部分析、架构模拟或建模进行评测或模拟的,仅供参考。您的系统硬件、软件或配置的任何不同均可能会影响实际性能。

© Solidigm 2025. SOLIDIGM 及 Solidigm“S”徽标均为 SK hynix NAND Product Solutions Corp.(以 Solidigm 名义开展业务)的商标,已在美国、中华人民共和国、中国台湾、中国香港、新加坡、欧盟、英国、墨西哥及其他国家/地区注册。