对象存储在 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(秒)
插入 42 59 58 58 64 74
获取 2.24 8.4 8.1 9.7 152.5 152.5
列表 2.26 1.36 1.34 1.6 2.38 2.36
平均延迟(微秒) 0.22 0.85 0.8 0.97 15.3 15.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 名义开展业务)的商标,已在美国、中华人民共和国、中国台湾、中国香港、新加坡、欧盟、英国、墨西哥及其他国家/地区注册。