GTC 2024 火线评论:DPU 重构文件存储访问_dpu分布式存储-程序员宅基地

技术标签: 云计算  

编者按:英伟达2024 GTC 大会上周在美国加州召开,星辰天合 CTO 王豪迈在大会现场参与了 GPU 与存储相关的最新技术讨论,继上一篇《GTC 2024 火线评论:GPU 的高效存储利用》之后,这是他发回的第二篇评论文章


上一篇文章已经提到,随着 AI 集群规模的提升,数据集的大幅增长,势必要面对集群资源的高效利用和安全问题,其中关键之一就是计算资源对于共享资源(如共享文件存储)的安全访问和保护。相比于传统 CPU 集群的共享存储和安全访问,GPU 集群在面对类似问题的挑战是安全+性能。安全访问并不能牺牲性能,特别是在当下刚发布的新一代 GPU 算力和网络平台下,存储带宽面对进一步提高的要求,吃紧的内存带宽和网络传输将进一步承压。


0d3891a3b5d837e0bf8b38a4dff455de.jpeg

 

高性能存储安全访问的挑战

在讨论安全问题前,可能还要先牵扯算力集群和存储的网络方案。

众所周知,Nvidia 在 AI 数据中心推崇两个概念,一个是 AI Factory,另一个是 AI Cloud,前者类似于超级计算机的概念,适合单应用场景并推荐 Infiniband 组网方案,后者面临多租户和多样化的计算任务,因此推荐以太网方案。在这个分类下,我们会将以上存储安全访问问题缩小到更广泛 AI Cloud 场景上,因为这类场景相比而言,更急迫的需要解决   6f6739827ad68f927f3e220e8fbc33fe.jpeg
特别是,在当下 GPU 芯片昂贵成本下,即使在非 GPU 虚拟化场景,算力共享和灵活调度都是降低 AI 任务成本的重要手段,但算力平台如何向用户提供安全的数据访问和隔离手段是其中的重中之重。 因此,AI 算力集群需要在 足够性能 下解决控制面和数据面的安全访问挑战:
  • 控制面路径的关键操作安全性:管理和配置网络、系统的操作,权限和策略的分配,漏洞和安全缺陷管理等等
  • 数据面的授权访问和外部攻击:数据泄漏、篡改、服务拒绝等攻击

 DPU 作为存储访问的信任代理

在以太网组网的 AI Cloud 场景下,Nvidia 提出了引入 DPU 方案来解决上述问题,通过 DPU 提供的代理访问来隔离非信任的主机和可信基础设施,确保 AI Cloud 的数据安全。

17cbee2f93d956a13042ec081ab93a64.jpeg

DPU 是一种专用硬件加速器,通常包含 CPU、内存和网络接口,能够在不增加主机侧处理器负担的情况下,执行数据处理任务,包括 Nvidia、Intel、AMD、Marvell 在内的芯片厂商都推出了 DPU 产品。DPU 在安全性上通常可以带来几个好处:

  • 隔离和专用处理能力:DPU 可以作为一个隔离层,将存储和网络操作与主机的 CPU 分离开。这意味着即使主机受到安全威胁,攻击者也难以直接接触到数据传输和存储操作。

  • 减少攻击面:DPU 可以控制访问存储资源的路径,允许更精细的访问控制策略,并且限制了潜在的攻击向量。由于主 CPU 不直接处理数据流,攻击者需先破坏 DPU,才能对数据进行篡改或未授权访问,这大大增加了攻击难度。

  • 内置安全功能:许多 DPU 都配备了加密和其他安全功能,如内联数据加密、秘密保护和防火墙服务。这些功能可以在硬件层面提供保护,而不是依赖于可能被破坏的软件。

  • 细粒度的控制:DPU 可以实现对数据访问的精细管理,包括访问控制、监控和日志记录,使系统管理员能够更好地监控和响应安全事件。

  • 提供零信任架构:在 DPU 代理的帮助下,可以实施零信任安全模型,它假定内部网络也不可信,需要严格验证所有请求,这增强了对潜在内部威胁。


值得一提的是:在 Nvidia 发布的《下一代 AI 的新一代网络》白皮书中,提到在 400/800Gb 的网络中,即使无损网络环境中,都很难避免在 AI 的突发流量中性能不受影响。因此在以太网路线上,业界会期望借助于 DPU 算力来实现 RDMA 的拥塞控制,而不是依赖交换机或者 ECN 机制。因此 DPU 可能会是超高以太网网络的必需。


回到计算节点的 GPU 应用对于文件存储访问这个问题,存储客户端目前主要有两种选择:

  • 用户态客户端:cuFile(GDS)/S3/SQL/..
  • 内核态客户端:Posix/VFS

而引入 DPU 来实现安全访问,可以利用业界已有的虚拟化场景的文件协议实现 virtio-fs,virtio-fs 已经有长达十年的发展历程,它可以在这里提供从 Host 到 DPU 的文件代理通道,使得文件存储客户端可以完全运行于 DPU 操作系统。这样的变化,可以用下图来更清晰展示,其中红色的访问路径表示不安全的,绿色表示通过 DPU 的代理访问:

42d1df7c90cd812282b3125e6b30e8de.jpeg

 零拷贝问题

从技术角度来讲,引入额外的 DPU 来实现文件存储访问肯定带来额外开销,具体来说有这两个问题:

  • 客户端缓存:在 AI 高性能的存储场景,客户端的内存缓存是必备选择,在当前的大部分 AI 任务中,对于存储的访问成本相对计算延迟仍然较高,缓存命中率非常关键,上一篇提到的 SCADA 实际上就是希望在中间建立通用的框架。但就目前而言,数据在计算节点上的缓存主要由存储客户端提供,例如 GPFS 在内核态实现了自有的缓存机制,Lustre 则更多依赖于 Linux Page Cache 机制。如果将存储客户端运行在 DPU 后,之前 Host 侧 CPU/GPU 的庞大内存也无法被数据缓存利用,DPU 内置的内存相对较小,则势必导致缓存命中率降低,性能大幅下降。因此,DPU 代理方案需要进一步解决该问题。

  • 额外的拷贝成本:在客户端直接访问存储的路径中,通常采用 RDMA 来实现数据零拷贝。增加 DPU 代理访问后,会增加一次 Host 内存到 DPU 的拷贝。

在这里,Nvidia 正式提出了 DPU Secure Storage Zero Copy 项目,通过引入 Cross-function mkey(RDMA mkey) 允许 DPU 使用来自 Host 地址空间的地址,减少了从 Host 到 DPU 的拷贝。整个数据传输仍由 DPU 中的服务来实现,只有受信任的 DPU 服务才能访问 Cross-function mkey,实际上就是由存储客户端来维护,整个 IO 过程都不会将存储后端暴露给 Host,确保潜在的安全风险最小化。 进一步来说,Host 的内存可以被用来做文件数据缓存,无需受 DPU 引入的影响,也避免了 Double Buffer 问题

5dcabe7ba12f53b778cdd1197325f331.jpeg

 DOCA SNAP virtio-fs

DPU Secure Storage Zero Copy 会通过 DOCA virtfs-fs SDK 来交付,过去 DOCA 已经提供了 SNAP NVME 能力,即可以通过 DPU 来实现 NVMe over Fabric 的卸载,DOCA SNAP virtfs 会成为新的文件存储访问卸载能力。

DPU 中的 VirtioFS 服务会基于 SPDK(https://spdk.io/) 开发,提供面向不同的文件存储供应商实现统一的抽象,运行在 DPU 中,面向 Host 的 virtio-fs 内核驱动承接请求,并为不同供应商的文件存储客户端根据需要去执行对应请求,未来文件存储供应商可以通过以下方式对接:

  • 用户态文件客户端:如果文件存储直接支持用户态的文件客户端库,SNAP virtio-fs 可以直接通过库链接方式集成使用。

  • NFS over RDMA:如果文件存储提供标准的 NFS over RDMA 支持,则 SNAP virtio-fs 会直接通过 DPU OS 的 NFS 内核客户端访问,DPU OS 中的 NFS 内核客户端会修改来支持零拷贝。

  • 内核态文件客户端:如果文件存储支持内核态客户端,则可以在 DPU OS 上安装,SNAP virtio-fs 可以执行 POSIX 调用。从 DPU OS Kernel 可以支持将 mkey 传递给 POSIX read()/write() 实现零拷贝。

目前 DPU Secure Storage 项目也需要得到文件存储厂商和 Linux Upstream 的支持,文件存储厂商需要尽快考虑将存储客户端迁移到合适的 DPU 运行环境,并作为 SPDK virtio-fs 的后端,为了实现零拷贝,需要能够支持利用 SPDK 的 memory domain API 来获得 mkey 对应的 Host 内存空间。而为了在 Host OS 上需要进一步加强 virtio-fs 的性能,比如实现多队列能力,支持 GPU 内存等。

 XSKY 参与情况

对于国内领先的分布式存储厂商来说,我们同样认为,不仅是 Nvidia BlueField 系列产品可以提供这样的方式,这样的需求应该可以在普遍的 DPU 产品中实现并被利用,有效的提高 DPU 在存储协议上的多样化支持,并带来共享文件存储的安全性所需。

我们也会尽快评估在基于新一代全共享架构(XSEA)的全闪存文件存储,提供面向 AI Cloud 场景的 DPU 访问客户端能力,拥抱快速变化的 AI 基础设施进化。在多样化的 GPU 存储类型的利用上,不管是块存储的 NVMe 卷作为节点内的高速缓存,还是共享文件存储作为 CPU/GPU 内存的全局缓存存储,最终通过基于对象存储的数据湖来统一治理,这些存储类型的需求和定位都跟 XSKY 的产品定位和路线图高度符合。

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/XSKY_/article/details/137040040

智能推荐

easyUI中datagrid单选时复选框不取消问题_easyui datagrid 设置singleselect:true 后不能取消选择-程序员宅基地

文章浏览阅读472次。圈起来的地方是需要注意的这里的代码可以多选,也可以把多选的复选框全部取消勾选如果singleSelect改为true,就不能取消勾选,至于为什么,我还没弄懂(笑哭)_easyui datagrid 设置singleselect:true 后不能取消选择

TinoyOs和nesC语言-程序员宅基地

文章浏览阅读479次。nesC语言编程基础1.接口NesC程序主要由各式组件(component)构成,组件和组件之间通过特定的接口(interface)互相沟通。一个接口内声明了提供相关服务的方法(C语言函数)。例如数据读取接口(Read)内就包含了读取(read)、读取结束(readDone)函数。接口只是制定了组件之间交流的规范,也就是通过某一个接口,只能通过该接口提供的方法实现两个组件之间的交流。但是接口终归只是接口,只是一组函数的声明,并为包含对接口的实现。1 interface Read<val._nesc语言

漫谈iOS Crash收集框架_swift崩溃处理框架-程序员宅基地

文章浏览阅读1.3k次。为了能够第一时间发现程序问题,应用程序需要实现自己的崩溃日志收集服务,成熟的开源项目很多,如KSCrash,plcrashreporter,CrashKit等。追求方便省心,对于保密性要求不高的程序来说,也可以选择各种一条龙Crash统计产品,如Crashlytics,Hockeyapp,友盟,Bugly等等。 是否集成越多的Crash日志收集服务就越保险? 自己收集的C..._swift崩溃处理框架

java word转pdf 用到了aspose 1.86 破解版jar在链接下面 只提供技术分享 请支持正版_aspose-pdf-17.8.jar-程序员宅基地

文章浏览阅读2.3k次。接上个的博客 这里来写 word转pdf 有两种方式 第一种 是不能带图片的 下载一个jar包就能直接用了第一种:创建项目导入包 复制粘贴代码 ok (包在下面链接中)这个是查看于一个csdn的博主所得 但是不满足需求 只是转换了文字段落 并没有图片和表格转换 非常有研究价值。/** * 将word文档, 转换成pdf, 中间替换掉变量 */ p..._aspose-pdf-17.8.jar

udk开发-稀里糊涂_networkinterfaceidentifierprotocol-程序员宅基地

文章浏览阅读1.4k次。在此情况下,DXE Runtime Driver必须创建一个signal类型的Event,当SetVirtualAddressMap() 被OS调用的时候,该Event将被通知。​ DXE Runtime Driver创建的signal类型的Event所用到的通知函数不允许直接或者间接使用UEFI Boot Services、**UEFI Console Services **或者 UEFI Protocol Services。所有的Set或者Get的值在boot time memory关闭后将会丢失。_networkinterfaceidentifierprotocol

c语言中struct和typedef struct的用法_typedef struct用法-程序员宅基地

文章浏览阅读2.2k次,点赞18次,收藏51次。基本形式在C语言中,可以使用结构体(Struct)来存放一组不同类型的数据。结构体的定义形式为:struct 结构体名{ 结构体所包含的变量或数组};结构体是一种集合,它里面包含了多个变量或数组,它们的类型可以相同,也可以不同,每个这样的变量或数组都称为结构体的成员(Member),比如????struct stu{ char *name; //姓名 int num; //学号 int age; //年龄 char group; //所在学习小组_typedef struct用法

随便推点

图像处理之常见二值化方法汇总-程序员宅基地

文章浏览阅读10w+次,点赞25次,收藏117次。图像处理之常见二值化方法汇总图像二值化是图像分析与处理中最常见最重要的处理手段,二值处理方法也非常多。越精准的方法计算量也越大。本文主要介绍四种常见的二值处理方法,通常情况下可以满足大多数图像处理的需要。主要本文讨论的方法仅针对RGB色彩空间。 方法一:该方法非常简单,对RGB彩色图像灰度化以后,扫描图像的每个像素值,值小于127的将像素值设为0(黑色),值大于等于12_二值化

GUI程序开发_gui开发-程序员宅基地

文章浏览阅读1.9k次。JAVA程序设计与应用开发(第2版)——《GUI清华大学出版社》_gui开发

PYTHON实训总结及体会500字,PYTHON实训总结思考建议_python实验体会-程序员宅基地

文章浏览阅读491次。大家好,给大家分享一下PYTHON实训总结及体会1500字,很多人还不知道这一点。这将使你在做实验时的难度加大。然后两下子就将实验报告做完。但学到的知识与难度成正比。一定要将课本上的知识吃透。【篇一:实验心得体会】就像以前做物理实验一样。在老师讲解时就会听不懂。你要清楚电桥的各种接法。这将使你极大地浪费时间。在做测试技术的实验前。因为这是做实验的基础。_python实验体会

ADC参数详解_adc电流电压零漂值-程序员宅基地

文章浏览阅读9.6k次,点赞9次,收藏117次。特性或指标总述本文将从以下特性进行简单的叙述。结合了《ADC设计基础》和TI的一些教学视频。分辨率转换误差转换速度采样率奈奎斯特采样准则混叠和抗混叠滤波器DNLINL热噪声谐波失真THDSNRENOBSFDRIMD孔径抖动孔径延迟奈奎斯特区补充分辨率一般ADC都说注明是8bit,16bit或者是24bit。这里的数值也就是分辨率的意思。分辨率是衡量A..._adc电流电压零漂值

服务器阵列卡缓存显示错误,服务器阵列卡(缓存)-程序员宅基地

文章浏览阅读1.1k次。RAID卡介绍:提到RAID卡就不得不提到什么是RAID。RAID是英文Redundant Array of Independent Disks的缩写,翻译成中文即为独立磁盘冗余阵列,或简称磁盘阵列。简单的说,RAID是一种把多块独立的硬盘(物理硬盘)按不同方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据冗余的技术。组成磁盘阵列的不同方式成为RAID级别(RAID..._把raid缓存强制开启 显示参数无效

您绝对不能错过的 10 个 OKR 示例!_优秀的okr案例-程序员宅基地

文章浏览阅读429次,点赞6次,收藏8次。在此基础上,制定团队 OKR,它可以是产品层面的或部门层面的,但它们会融入组织的目标中。使用 OKR 方法的一个巨大好处是,它可以针对不同的部门和团队进行细分, 以便整个公司追求相同的组织目标,但利用特定的关键结果。如果您没有达到 100% 的关键结果,您仍然应该为实现这一目标所付出的努力感到自豪,评估是否需要进行更改,并重新调整下一个周期的目标和关键结果。令人惊讶的是,伦敦商学院进行的一项研究显示,在接受调查的 11,000 名高级管理人员中,只有三分之一能够列出他们公司的三大优先事项。_优秀的okr案例

推荐文章

热门文章

相关标签