Alluxio 联手 Solidigm 推出针对 AI 工作负载的高级缓存解决方案

作者:Wayne Gao, Yi Wang, Jie Chen, Sarika Mehta

Alluxio 作为全球领先的 AI 缓存解决方案供应商, 提供针对 GPU 驱动 AI 负载的高速缓存。其可扩展架构支持数万个节点,能显著降低存储带宽的消耗。Alluxio 在解决 AI 存储挑战方面的前沿技术在很大程度上推动了大语言模型( LLM )在全球范围内的成功。

“Solidigm 和 Alluxio 联合推出了高效的分布式 AI 缓存方案。通过将 Solidigm 的 D5-P5336 用作读缓存,D7-PS1010 用于 checkpoint 写入,并搭配 Alluxio 的低操作开销解决方案,我们帮助客户实现了大规模 AI 场景下成本和性能的最佳平衡。优化后的方案充分利用了Solidigm D7-PS1010 Gen5 TLC SSD 的写入带宽和 D5-P5336 Gen4 QLC SSD 的读取带宽,同时将 TLC 和 QLC SSD 的写放大系数保持在 1.02。我们希望与 Alluxio 一道持续为客户提供高效、低成本的AI 解决方案。” - Greg Matson,Solidigm 战略规划与营销高级副总裁。

Alluxio DORA 缓存架构的核心优势

在这里插入图片描述

DORA(Decentralized Object Repository Architecture 的缩写 )是 Alluxio 的新一代架构。

作为分布式缓存存储系统,DORA 具有低延迟、高吞吐量和节省成本的特点,同时旨在为 AI 工作负载提供高性能的数据访问层。

DORA 利用去中心化存储和元数据管理来提供更高的性能和可用性,以及可插拔的数据安全和治理,从而提高大规模数据访问的可扩展性和管理效率。

DORA 的架构目标:

  • 可扩展性:可扩展性是 DORA 的首要目标,旨在支持数百亿个文件,从而满足数据密集型应用(如 AI训练)的需求。
  • 高可用性:DORA的架构设计考虑了高可用性,具有99.99%的正常运行时间,并可以防止在 master 出现单点故障。
  • 性能:性能是 DORA的核心目标,它优先考虑模型训练、模型服务的速度,以及用于 AI 工作负载的GPU 利用率。

DORA 架构包含四个重要组件:服务注册( service registry )、调度器( scheduler )、客户端( client )和 worker。这些组件共同管理服务发现、分布式负载调度和数据存储等任务,同时维持整个系统的最佳性能。

NVMe 存储相关技术亮点

1. 页数据存储能够利用 SSD 的最大性能,并保持最佳的写放大系数(WAF)和耐用性

DORA 使用经严格测试的页存储模块进行缓存存储,从而可以更精细地缓存大文件上的小至中等规模的读取请求。这种可靠的页存储技术已在 Meta、Uber 和 TikTok 等应用中得到验证。DORA 的细粒度缓存使得读放大情况降低到原先的1/150,并使得文件随机读性能提高了 15 倍。

页数据存储通过日志文件系统,将数据分成两级目录,包含固定大小的大文件块。所有写操作都附加到这些文件块中,而当其中的对象文件被标记为删除时,只有在不需要这些文件时才会删除。这种设计确保了即使在使用 PCIe 5.0 TLC SSD 时也能实现最佳性能, 同时也保持 SSD 的写放大系数(WAF)为 1,从而最大限度提高 SSD 的耐用性。

例如, 当使用 QLC SSD 进行 Alluxio 读缓存时,存储引擎会充分利用 QLC 的耐用性,不会导致任何内部写放大或垃圾回收写放大,从而确保 QLC NVMe SSD 的高效运行。
在这里插入图片描述

2. 去中心化的元数据存储

DORA 将元数据传递给每个 worker,确保元数据始终可访问且可用。为了优化元数据访问,DORA 对元数据条目使用两级缓存系统。第一级缓存是内存缓存,它将元数据条目存储在内存中。此缓存具有可配置的最大容量和有效时间 ( TTL ) 设置,可设置过期时限。第二级缓存是持久化缓存,通过RocksDB 将元数据条目存储在磁盘上。持久化缓存具有无限容量,具体取决于可用磁盘空间,并且还使用基于 TTL 的缓存驱逐策略,防止主动同步或主动失效。存储的元数据类似页存储,也是基于完整的 UFS 路径的哈希值来确定分发到哪个 Dora Worker。

内存和持久化缓存的组合有助于确保元数据能够随时可用且可访问,同时还可以高效利用系统资源。元数据的去中心化避免了在元数据主要由 master 节点来管理的架构中可能出现的瓶颈。由于每个 DORA worker 节点可存储多达 3000 万至 5000 万个文件, 整个系统便可以支持拥有数百亿文件的大规模数据密集型应用。

经 Solidigm 验证, 内存元数据设计与 RocksDB 的组合提供了最佳的元数据存储解决方案。该设计充分利用了 PCIe 4.0 QLC SSD ( 读取 7GB/s,写入 3GB/s )和 PCIe 5.0 TLC SSD( 读写均为 14.5GB/s )的读写性能。此外,RocksDB 通过跳表( skiplist-based ) 写缓存将许多小的写入合并为较大的2MB 顺序写,这种方式极其高效,有助于将 SSD 写放大系数(WAF)最小化,进一步提升 SSD 的耐用性。

性能测试::Alluxio 搭配 Solidigm™ 的 D7-PS1010 和 D5-P5336

测试配置

在这里插入图片描述
在最近一项实验中( Solidigm D7-PS1010 和 D5-P5336 SSD,搭配 Intel Gen5 BNC 存储服务器 ),Alluxio 展现其在数据快速摄取以及读性能方面的优势,特别是在 GPU 扩容的情况下。部署 Alluxio 后取得的显著成效:

  • 缓存加载效率: Alluxio 缓存引擎在写入 PCIe 5.0 TLC SSD 时,能够有效跑满 UFS QLC 存储的最大读取带宽。
  • Fuse 读取测试: Alluxio 的 FUSE 框架几乎跑满单个 PCIe 5.0 SSD 的读取带宽,显示处理 NVMe SSD缓存命中时的开销极低。

为了能够快速部署,我们设置了一个单节点测试来展示 Alluxio 存储引擎的强大性能。Alluxio 的最大优势在于能够利用主机侧的分布式复制缓存,可随着 GPU 扩展并显著降低南北向存储带宽开销。即使在单节点配置下,Alluxio 也表现出超高的效率,尤其是在搭配高性能 NVMe SSD 时。在此次测试中,我们将缓存配置为使用 PCIe 5.0 TLC 或 PCIe 4.0 QLC,而底层文件存储( UFS )使用了 PCIe 4.0 QLC。
在这里插入图片描述

重要结论

  1. Alluxio 的缓存加载引擎十分高效,能够跑满 UFS QLC 的最大读取带宽,并将数据摄入到 PCIe 5.0 TLC 缓存 SSD中。即使 UFS 支持 10GB/s 的读取带宽,Alluxio 也能轻松地跑满 Solidigm D7-PS1010 9.3GB/s的写入带宽。
  2. Alluxio 的页缓存存储引擎基于 XFS 日志文件系统,并使用 Solidigm Alluxio FIO仿真器进行了严格的使用寿命测试。测试结果表明,无论使用 TLC 还是 QLC SSD,Alluxio 都能实现 1.02 的写放大(WAF )。这种接近理想的 WAF=1的效果能让 SSD 的性能和耐用性最大化,为终端用户提供最佳性能。
    在这里插入图片描述

重要结论

FUSE 的读开销极小。当执行 FUSE 读取,在 SSD 缓存上 100%缓存命中并且绕过 DRAM 页缓存时,FUSE 框架几乎可以跑满单个 PCIe 5.0 SSD 的读带宽,速度达到 14.8 GB/s。
在这里插入图片描述
对于寻求高效缓存方案的客户来说,Solidigm 的 61.44TB QLC 是理想选择。Alluxio 的存储引擎对于写放大十分友好,作为以读取为主的缓存,其写入量极少,使得 QLC 完美适配其读缓存路径。鉴于 Alluxio 的高效设计,我们可以根据 213 PB 的顺序写总量 (PBW)来估算 QLC 缓存设备的耐用性,这也意味着 Solidigm 支持写入高达 213PB 的数据。即使在 5 年周期内以 50% 的使用率(已是较高的阈值)计算,QLC 仍能支持 2900 MB/s 的写带宽,几乎达到其最大值。此外,QLC 每块 SSD 可提供高达 6GB/s 的随机读带宽,实现高性价比的 Alluxio AI 缓存系统。

Solidigm SSD 如何为 Alluxio 提供合适的存储

就读缓存而言,Solidigm D5-P5336 61.44TB QLC 提供了卓越的性能和可扩展性。对于 checkpoint 写入而言,PCIe 5.0 D7-PS1010 提供了一流的写性能。

“我们与 Solidigm 团队紧密合作,验证了将 Alluxio 分布式缓存技术与 Solidigm SSD 和 NVMe 驱动联合用于 AI 模型训练工作负载的性能优势。通过这次合作,我们进一步优化了 Alluxio,通过充分发挥 Solidigm 驱动的优势,将大规模 AI 工作负载的 I/O 吞吐量最大化。” Alluxio 工程副总裁杜璿表示,“我们期待与 Solidigm 继续开展这项重要合作,共同为我们的客户提供高性能、高成本效益的解决方案,帮助客户构建、训练和部署大规模 AI 模型。”

Alluxio 和 Solidigm 的合作成果表明,Solidigm TLC 和 QLC SSD 都能显著提升 Alluxio 的服务,同时降低运营成本。此外,Solidigm 还提高了质量和可靠性标准,并由专门的客户服务团队为 Alluxio 提供出色的支持。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/67780.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

文件系统格式RAW数据恢复全攻略

一、RAW文件系统格式深度解析 在数据存储的世界里,文件系统扮演着至关重要的角色,它负责管理和组织硬盘、U盘、SD卡等存储设备上的数据。而RAW文件系统格式,作为一种特殊状态,常常让许多用户感到困惑与不安。RAW格式并非一种标准…

探索 Stable-Diffusion-Webui-Forge:更快的AI图像生成体验

目录 简介🌟 主要特点📥 安装步骤1. 下载2. 配置环境和安装依赖3. 模型目录说明 🚀 运行 Stable-Diffusion-Webui-Forge1. 进入项目目录2. 运行项目3. 打开页面 🎨 使用体验常见问题📝 小结 简介 Stable-Diffusion-We…

《在ArkTS中实现模型的可视化调试和监控:探索与实践》

在当今人工智能与鸿蒙Next深度融合的时代,利用ArkTS开发高效智能应用成为开发者们关注的焦点。而模型的可视化调试和监控对于确保模型的准确性和性能至关重要,本文将深入探讨在ArkTS中实现这一目标的方法和实践。 ArkTS与模型开发基础 ArkTS作为一种基…

Docker 和 Kubernetes

Docker 和 Kubernetes (K8s) 是当前最流行的容器化技术,用于开发、部署和管理应用程序。它们通常一起使用,提供从开发到生产的完整生命周期管理,特别是在微服务架构和云原生应用的开发中。 1. Docker简介 Docker 是一个开源的容器化平台&am…

汇编与逆向(一)-汇编工具简介

RadASM是一款著名的WIN32汇编编辑器,支持MASM、TASM等多种汇编编译器,Windows界面,支持语法高亮,自带一个资源编辑器和一个调试器。 一、汇编IDE工具:RadASM RadASM有内置的语言包 下载地址:RadASM asse…

Yearning开源MySQL SQL审核平台

一款MYSQL SQL语句/查询审计工具,为DBA与开发人员使用. 本地部署,注重隐私,简单高效的MYSQL审计平台。 它可以通过流程审批,实现真实线上环境sql的审核和执行,还可以回滚执行,能够确保线上SQL更新的可靠性…

[NVME]controller capabilities

一、 part of register definition startendsymboldescription0h7hCAPController Capabilities 二、CAP – Controller Capabilities This register indicates basic capabilities of the controller to host software BitsTypeResetDescription63:58RO0hReserved57ROImpl Spe…

VUE之Router使用及工作模式

1、路由的使用 【两个注意点】 1)路由组件通常放在pages 或 views文件夹,一般组件通常放在components文件夹。 2)通过点击导航,视觉效果上"消失"了的路由组件,默认是被"卸载"掉的,需要的时候再去挂载。 // 创建一个路由器,并暴露出去// 第一步:…

PyTorch使用教程(10)-torchinfo.summary网络结构可视化详细说明

1、基本介绍 torchinfo是一个为PyTorch用户量身定做的开源工具,其核心功能之一是summary函数。这个函数旨在简化模型的开发与调试流程,让模型架构一目了然。通过torchinfo的summary函数,用户可以快速获取模型的详细结构和统计信息&#xff0…

【2024 博客之星评选】请继续保持Passion

我尝试复盘自己2024年走的路,希望能给诸君一些借鉴。 文章目录 回头望感想与收获成长与教训今年计划感恩一些体己话 回头望 回望我的2024年,年初拿高绩效,但感觉逐渐被公司一点点剥离出中心;年中一直在学习防患于未然&#xff1b…

C++ 类- 构造和析构

空类 class A {};空类大小: sizeof(A) 1编译器会默认生成 6 个成员函数: class A { public:A();//构造函数 - 完成对象初始化工作~A();//析构函数 - 完成对象的资源清理A(const A& a);//拷贝构造函数 - 使用同一类中之前创建的对象来初始化新创建…

集群、分布式及微服务间的区别与联系

目录 单体架构介绍集群和分布式架构集群和分布式集群和分布式区别和联系 微服务架构的引入微服务带来的挑战 总结 单体架构介绍 早期很多创业公司或者传统企业会把业务的所有功能实现都打包在一个项目中,这种方式就称为单体架构 以我们都很熟悉的电商系统为例&…

js实现数据结构

常见的数据结构 数组 创建数组 数组字面量[],new Array().fill() 二维数组,两层循环创建增 头部添加unshift 尾部添加push 任意位置添加 splice(index,0,item)删 头部删除 shift 尾部删除pop 任意位置删除splice(index,num) 栈 先进后出 push,pop 队列 先进先出 push,shi…

数据分析 基础定义

一、大数据的定义 数据分析是基于商业等目的,有目的的进行收集、整理、加工和分析数据,提炼有价值信息的过程。 大数据分析即针对海量的、多样化的数据集合的分析 大数据分析是一种利用大规模数据集进行分析和挖掘知识的方法。随着互联网、社交媒体、移动…

数据库高可用方案-04-删除策略

数据库数据高可用系列 数据库高可用方案-01-数据库备份还原方案 数据库高可用方案-02-多机房部署 数据库高可用方案-03-主备等高可用架构 数据库高可用方案-04-删除策略 数据库高可用方案-05-备份与恢复 数据库高可用方案-06-监控与报警 数据库高可用方案-07-一致性校验…

从Windows通过XRDP远程访问和控制银河麒麟ukey v10服务器,以及多次连接后黑屏的问题

从Windows通过XRDP远程访问和控制银河麒麟ukey v10服务器,以及多次连接后黑屏的问题。 安装 rdp 服务: yum install -y epel-release yum install -y xrdp或者如下: 可以通过下载rpm软件包,然后rpm方式安装。访问xrdp官网https…

python正则训练。

在PythonTip,我们总是想要了解我们每天有多受欢迎,并从流行的网站上抓取了对话。 每个对话都占据1行,总共有 N 个这样的对话。每个对话中最多有1个单词说"pythontip"(全部小写)。我们希望你帮助我们确定一个…

OpenAI-Edge-TTS的使用

OpenAI-Edge-TTS的使用相对简单,以下是具体步骤: 一、安装首先,你需要通过Python包管理工具pip来安装Edge-TTS库。在命令行中输入以下命令:【bash】 pip install edge-tts如果想使用edge-tts和edge-playback命令,最好使用pipx。二、基本使用安装完成后,你就可以开始使用E…

Maven多环境打包方法配置

简单记录一下SpringBoot多环境打包配置方法,分部署环境和是否包含lib依赖包两个维度 目录 一、需求说明二、目录结构三、配置方案四、验证示例 一、需求说明 基于Spring Boot框架的项目分开发,测试,生产等编译部署环境(每一个环境…

SpringMVC 实战指南:打造高效 Web 应用的秘籍

第一章:三层架构和MVC 三层架构: 开发服务器端,一般基于两种形式,一种 C/S 架构程序,一种 B/S 架构程序使用 Java 语言基本上都是开发 B/S 架构的程序,B/S 架构又分成了三层架构三层架构: 表现…