前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >计算型存储-2:标准、API实现

计算型存储-2:标准、API实现

作者头像
数据存储前沿技术
发布2025-02-11 16:44:46
发布2025-02-11 16:44:46
480
举报

介绍计算型存储领域的两大标准组织(帮派可能更直接点):

  • • SNIA
  • • NVMe [1]

SNIA定义的计算型存储架构

区分:CSP/CSD/CSA

  • • CSP是扩展的处理器模块,通过光纤通道与主机相连,卸载主机的计算任务,结构上为:资源控制器+设备缓存;
  • • CSD是集成到主机上的计算存储驱动,与CSP不同的是,因驱动器含存储设备,故额外增加:存储控制器+存储设备;
  • • CSA是计算存储阵列,是端侧具备完整能力的架构,可以理解成是管理多个CSD的控制器,因容量增加,随场景增加若干新功能,如:阵列控制器、存储访问协议等

值得一提的是:图中黑色方框代表硬件实现(HW),白色方框代表软件实现(SW)。

深入解读资源控制器的模块设计:

CSR(Resources) 计算存储资源是指在CSx中可用的资源,这些资源对于CSx存储和执行CSF是必要的。

CSF(Function)计算存储函数是一组特定的操作,这些操作可以在CSE中配置和执行。

CSE(Engine)计算存储引擎是一种CSR,它可以被编程来提供一个或多个特定的操作。

CSEE( Engine Environment)计算存储引擎环境是CSE的操作空间。

FDM(Function Data Memory)功能数据内存是设备内存,可供CSFs使用,用于存储作为CSF操作一部分使用或生成的数据。

AFDM(Allocated Function Data Memory)分配的功能数据内存是FDM的一部分,分配给一个或多个特定的CSF操作实例。

上述定义了架构设计和对应功能模块,对于软件开发人员来说,关心的是接口(API)的调用规范和功能。

这张图展示了计算型存储APIs的概念,强调了一套APIs对于不同类型的CSx(CSP, CSD, CSA)的重要性。

这些APIs隐藏了硬件和连接细节(本地/远程),抽象了设备详细信息,提供了发现、访问、设备内存(映射/未映射)、近存储访问、复制设备内存、下载CSFs、执行CSFs以及设备管理等功能。插件将CSx连接到了抽象化的APIs,隐藏了供应商特定的实现细节。此外,这些APIs对操作系统是无关的。

图中右侧还展示了一个示例的计算型存储驱动(CSD)的结构,包括用户空间、内核空间、设备驱动、计算型存储引擎(CSE)、资源库和设备存储。不同的应用程序可以通过SNIA CS API library调用相应的CSF功能,如搜索、解密、解压等等。

图示调用压缩API的内部工作流程:

  • • 分配设备内存(FDM)
  • • 从存储加载数据
  • • 在已加载的数据上运行数据过滤CSF
  • • 将结果复制到主机内存

更细致描述API调用过程。

在环境准备阶段:

  1. 1. 发现CSx:这一步包括通过名称发现计算型存储设备并访问它;
  2. 2. 发现CSF:这一步需要发现想要执行的功能;
  3. 3. 分配FDM:在这一步中,需要分配设备内存。

在数据处理阶段:

4. 加载数据存储:这一步包括将数据加载到计算区域附近;

5. 执行CSF:在这一步中,会运行计算操作;

6. 复制结果:最后,将结果从设备内存复制到主机内存。

罗列出整个过程调用的系统函数。

SNIA和NVMe两个组织在整个行业的分工不同,因此在面向不同群体是沟通的术语可能代表不同含义,

SNIA:注重系统架构设计,需要和多个厂商达成标准需求;(行业产品经理)

NVMe:命令集规范的落地,聚焦编码实现;(代码工程师)

  • • 计算型存储引擎(CSE)+ 计算型存储环境(CSEE)对应于计算命名空间(Compute Namespace);
  • • 资源库(Resource Repository)对应于程序;
  • • 激活(Activation)对应于激活(Activation)
  • • 功能数据内存(FDM)对应于子系统本地内存(Subsystem Local Memory, SLM)命名空间
  • • 分配的FDM(AFDM)没有在NVMe中定义,由主机管理
  • • 设备存储对应于NVM命名空间(NVM Namespaces)

计算型存储在推广应用的过程中可能存在的顾虑:

  • • 压缩数据:需要本地解压缩数据 ;
  • • 加密数据:需要本地解密数据的能力 ;
  • • 数据条带化跨越多个驱动器:单个设备可能不包含整个文件;
    • • 使用SSD对数据条带化的需要较小。可以考虑远离广泛的数据条带化 ;
  • • 块存储:存储设备通常无法识别文件系统 ;
    • • 对象存储或键值(KV)是解决方案,但块存储已广泛部署;
    • • 其他解决方案包括在CSD中安装文件系统或虚拟对象。

小结

  1. 1. 计算型存储架构与组件 SNIA定义了计算型存储三大架构:CSP(扩展处理器模块)、CSD(计算存储驱动)和CSA(计算存储阵列),各有应用场景,CSA能管理多CSD。关键部件包括CSR(计算存储资源)、CSF(函数)、CSE(引擎)、CSEE(环境)、FDM(功能数据内存)和AFDM(分配内存)。这些构成计算型存储的核心。
  2. 2. 计算型存储APIs与调用流程 计算型存储APIs为CSP/CSD/CSA提供统一接口,抽象硬件,支持设备发现、内存管理、CSF执行和设备管理,跨操作系统使用,通过插件接入CSx。调用流程含发现CSx/CSF、分配FDM、数据加载、CSF执行及结果复制,简化软件开发。
  3. 3. SNIA与NVMe的分工及计算型存储挑战 SNIA负责计算型存储架构设计,推动标准,面向架构设计;NVMe关注命令集实现,面向代码实现,二者术语有别。推广难点在于本地解压/解密、数据条带化、块存储兼容及对象/键值存储替代,要求CSD集成新功能适配环境。
引用链接

[1] NVMe : https://nvmexpress.org/

---【本文完】---

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-08-16,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 小结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档