前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >Intel:CXL加速存储堆栈服务工作流

Intel:CXL加速存储堆栈服务工作流

作者头像
数据存储前沿技术
发布2025-02-11 18:45:49
发布2025-02-11 18:45:49
610
举报

问题意识

1. 随着业务场景和硬件技术的不断创新,存储作为数据生命周期的核心系统,值得更广泛的关注和研究,构建高性能、韧性的存储系统面临若干挑战

2. DPU作为数据密集型场景的加速硬件,在网络和存储侧都具备革命性应用价值;

3. 基于PCIe的数据交互仍存在数据多份复制复制,效率有限,如何进一步优化数据访问堆栈,以提高整体性能?

构建高性能存储解决方案

  • • 构建具有可扩展性、分离化、安全、扩展的数据中心存储基础设施,同时保持可靠性,是一个极具挑战性的任务。
  • • 当前的加速器卸载技术可能不足以满足对高性能安全存储解决方案日益增长的需求。

图示从左至右,诠释当前在大型数据中心中分布式资源架构的构成情况,计算-网络-存储,随着IT架构的不断创新,维持高性能存储系统,存在若干挑战,在于:

  • 计算侧:新的计算架构不断演进,从传统CPU过渡到并行加速计算的GPU,未来计算范式会不停演变,这改变了数据的计算方式,对存储系统提出新要求;
  • 网络侧:管道带宽不断扩展,从200GbE逐渐扩展到800GbE;
  • 存储侧:存储介质创新也在发生。

DPU的兴起(又称IPU)

Intelligence Processing Unit

  • • DPU成为所有基础设施处理的核心,包括网络和存储。
  • • 存储目标节点需要显著更多的专用存储计算能力(这是本次讨论的重点)。

DPU在现代基础设施中的核心作用,尤其是在存储和网络处理方面。DPU在存储发起节点和目标节点之间,提供了存储和网络加速能力。存储目标节点的DPU具备额外的专用功能,如纠删编码、复制、重删、压缩和加密,以提升存储效率和安全性。DPU的引入使得网络和存储资源管理更加高效。

Note:对DPU的理解,鹏弟之前认为是一张更高阶的智能网卡,因为有些厂家DPU解决方案,就是用来取代网卡;而图中存储侧对数据多样化处理的计算单元,也被定义成DPU,这些功能在之前计算型存储架构中也介绍过。

挑战:CPU+DPU协同处理(通过PCIe)

  • • 存储管道控制与数据平面处理需要多步骤的计算密集型操作,这需要CPU和DPU的协同处理。
  • • 使用PCIe进行CPU和DPU协同处理需要在CPU和DPU的内存域之间进行多次数据移动,从而导致显著的性能损失

图示存储堆栈内CPU/DPU的数据交互过程。这种架构面临的挑战在于如何优化协同处理,以减少由于多次数据移动带来的性能开销,从而实现更高效的存储加速功能。

尽管CPU内存和DPU内存之间通过PCIe连接,但由于是独立的资源池,导致数据需要移动多次。

基于SPDK的存储堆栈

操作流程

1. 加速器初始化(Accelerator Init)

2. 获取IO通道:PCIe(Get IO Channel: PCIe)

3. 分配内存域:PCIe私有内存(Assign Memory Domain: PCIe private mem)

4. 应用缓冲区:分配和对齐(App Buffer: Allocate & align)

5. 加速器操作序列(Accelerator operation sequence(s))

6. 应用缓冲区:释放(App Buffer: Free)

7. 加速器完成(Accelerator Finish)

SPDK软件栈的spdk_accel_*工作流支持多种数据处理功能,如加密、解压、校验、复制等,通过PCIe连接CPU和DPU内存,借助DMA进行数据传输,主要过程是在操作内存数据。

Note:通过分析SPDK调用栈主要函数,得出效率优化的关键在于减少内存数据移动!

CPU/DPU 共享CXL 内存

  • • 在 CPU 和 DPU 之间创建一个单一共享内存域。
  • • 使用 CXL 连接的设备内存(例如,CXL.mem)作为 CPU 和 DPU 的共享内存。
  • • 避免在 CPU 和 DPU 之间进行显式的数据移动。
  • • 保留并利用现有的软件栈工作流和数据结构。

与基于独立内存的方案相比,当CPU和DPU共享CXL内存后,存储操作的调用栈得到优化,不需要通过PCIe传输IO,减少数据复制,同时SPDK的内存数据操作,可以在统一地址空间完成。

Note:前几天鹏弟和DRAM行业朋友聊天,谈及CXL业务市场探索。从国外案例来看,虽然CXL成品是整合好的内存/存储扩展卡,但窃以为这绝不是单纯DRAM硬件生意,CXL涉及场景更偏业务;而软件公司对业务场景理解更靠近客户,从上述优化数据访问效率案例来看,通过观察SPDK工作路径提出基于CXL共享内存来优化,关键是推动SPDK与CXL协议的开发适配,这主要还是软件公司要投入的。

更高的IOPS(每秒输入输出操作)得益于简化的存储数据访问和操作,例如:

  • • bdev_write:包括加密序列、压缩序列和存储写入
  • • bdev_read:包括存储读取、解压序列和解密序列

保留软件栈/工作流的投入:

  • • 可以利用现有的CPU加速器和新的DPU加速器
  • • 加速器操作支持数据分段、重组和存储传输

总结

  1. 1. 高性能存储构建的挑战与需求:高性能存储系统需要满足可扩展性、去中心化和高安全性的需求,但现有加速器卸载技术在面对不断增长的性能要求时已显得不足,尤其在存储和计算资源整合上面临挑战。
  2. 2. DPU与CXL的创新应用:利用DPU作为基础设施的核心处理单元可以增强存储节点的计算能力,同时,通过引入CXL互连标准实现CPU和DPU间的高效数据交换,解决PCIe带来的协同处理限制,从而提高系统整体性能。
  3. 3. 软件栈优化与云服务架构:通过SPDK软件栈优化存储操作,减少数据移动,提高I/O性能。此架构的灵活性使云服务提供商能够高效部署加速器服务,实现全球连接和扩展。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-11-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 王知鱼 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题意识
    • 构建高性能存储解决方案
    • DPU的兴起(又称IPU)
    • 挑战:CPU+DPU协同处理(通过PCIe)
    • 基于SPDK的存储堆栈
    • CPU/DPU 共享CXL 内存
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档