分析spdk nvmf配置流程和相关接口,对比HWSAN相关功能,分析overtcp和overfc的配置

news/2024/10/21 5:59:46/

SPDK(Storage Performance Development Kit)是一个用于存储应用程序开发的开源工具包。SPDK提供了一个专注于数据存储的 I/O 框架,并且能够通过将应用程序的逻辑处理与核心数据路径分开来提供低延迟,高吞吐量的存储传输。下面我将分别回答您的问题。

SPDK NVMf 配置流程和相关接口:

(1) 配置 NVMf Target:

配置 SPDK NVMf Target 时,需要创建一个 JSON 文件,该文件定义了每个远程访问的控制器、命名空间和端口的属性。

示例配置文件:

{"subsystemnqn": "nqn.2018-11.com.intel:subsystem1","listen_address": "127.0.0.1","listen_port": 4420,"hosts": [{"nqn": "nqn.2016-06.io.spdk:initiator","nvmf": true,"allow_any_host": true}],"namespaces": [{"bdev_name": "bdev","nqn": "nqn.2016-06.io.spdk:cnode1","enable_digests": true,"allow_any_host": true}]
}

该配置文件中,“subsystemnqn” 定义所创建的 nvmf Target 的缩写名称;“listen_address” 定义 SPDK NVMf Target 监听的IP地址;“listen_port” 指定接受来自连接的请求时使用的端口号;“namespaces” 定义命名空间以及命名空间所使用的后端驱动程序,例如,“bdev_name” 指定后端块设备的名称,“nqn” 定义命名空间的名称。

(2) 配置 NVMf Initiator:

在配置 NVMf Initiator 时,需要创建一个 JSON 文件,该文件定义了控制器、传输配置等属性。

示例配置文件:

 {"transport_type": "tcp","nqn": "nqn.2016-06.io.spdk:initiator","tgt_name": "nqn.2018-11.com.intel:subsystem1","host": "127.0.0.1","port": 4420}

该配置文件中,“transport_type” 定义传输类型,这里使用的是 TCP 传输;“nqn” 定义了 INITIATOR 的 NVMf 名称;“tgt_name” 定义了要连接的 NVMf TARGET 的 NVMf 名称;“host” 定义了连接远程主机的IP地址,这里使用的是本地主机的IP地址;"port"则是连接的端口。

HWSAN相关功能的对比:

HWSAN(Hardware Storage Area Network)是 HP 公司提供的一种面向存储的高速网络技术,专门用于在数据中心中承载存储流量。HWSAN 提供了许多现代数据中心所需要的功能,例如高吞吐量、低延迟、可扩展性等,并与 IBM SAN Volume Controller(SVC)以及 HP 3PAR 存储等现有的存储阵列产品集成在一起。HWSAN 提供的功能在某些方面可以与 SPDK NVMf 实现的功能相似,但也有很多不同之处。例如:

  • HWSAN 面向基础设施提供商和企业客户,而 SPDK 更像是一个存储开发者工具包。

  • HWSAN 集成了物理存储设备和虚拟化层,采用 Fibre Channel 协议连接存储设备和服务器,而 SPDK NVMf 使用 NVMe over Fabrics 协议连接 NVMe 存储设备和服务器。

  • HWSAN 可以提供存储阵列级的功能,例如数据加密、数据压缩和存储重定向等,而 SPDK NVMf 只关注存储数据的传输和性能问题。

overtcp 和 overfc 的配置:

(1) overtcp 配置:

overtcp 是一种传输类型,它基于 TCP/IP 协议栈来实现通信过程。

默认情况下,overtcp 协议将在 SPDK 初始化或探测时自动启用。

(2) overfc 配置:

overfc 是一种在 Fibre Channel 环境中实现 NVMe over Fabric 传输的协议。

要使用 overfc,请从 Fibre Channel 环境中获取 N_Port 名称,并将其指定为 JSON 配置文件中的 “name” 属性。

示例配置文件:

 {"nqn": "nqn.2016-06.io.spdk:initiator","transport": "RDMA","tgt_name": "nqn.2018-08.org.spdk:subsystem1","host": "192.168.100.2","serviceid": "0x1001","vfio-pci": {"vpci": "10.0"},"name": "n1"}

该配置文件中,“transport” 属性配置为 “RDMA”,而 “name” 属性配置为 “n1”。

希望这些信息能够帮助您更好地理解 SPDK NVMf,HWSAN 以及 overtcp 和 overfc 的配置流程和相关接口。

DPDK/网络虚拟化 相关学习资料、视频教程 学习群:739729163 
Dpdk/网络协议栈/vpp/OvS/DDos/NFV/虚拟化  视频教程学习地址: https://ke.qq.com/course/5066203?flowToken=1043068

http://www.ppmy.cn/news/53836.html

相关文章

使用Spring的五大类注解读取和存储Bean

目录 1.存储Bean对象的注解 1.1 五大类注解 1.2 方法注解 1.3添加注解的依赖 2.注解的使用 2.1 controller注解 2. 2Service注解 2.3.Resopsitory注解 2.4Component注解 2.5Configuration注解 2.6 注解之间的关系 3.方法注解 3.1 方法注解要配合类注解来使用。 3.2…

Neural ODE 神经常微分方程

Neural ODE ODE常微分方程 欧拉法求解:欧拉法求解过程是一个递归的过程,这个思想和牛顿法、梯度下降法是相似的。并且它将函数离散化,分割成一个个小段来求解。欧拉法求解的常微分方程的形式通常为 图片来自知乎Neural ODE,这个…

ES集群配置

一、高并发下如何保证读写一致 1.1 写操作 对于写操作,一致性级别支持 quorum/one/all,默认为 quorum,即只有当大多数分片可用时才允许写操作。但即使大多数可用,也可能存在因为网络等原因导致写入副本失败,这样该副本…

Jenkins实战教程|Jenkins安装与使用大全

😄作者简介: 小曾同学.com,一个致力于测试开发的博主⛽️,主要职责:测试开发、CI/CD 如果文章知识点有错误的地方,还请大家指正,让我们一起学习,一起进步。😊 座右铭:不想…

C++内联函数

目录 一、常规函数和内联函数的对比 二、如何使用 三、内联函数的特性 四、内联函数与宏 五、如何查看内联函数 六、【面试题】 前言-----内联函数是C中为程序运行速度所做的一项该进。常规函数和内联函数之间的主要区别不在于编写方式,而在于C编译器如何将他…

华东师范大学副校长周傲英:未来,中国需要什么样的数据库?

本文为华东师范大学副校长,CCF 会士周傲英教授在第一届 OceanBase 开发者大会带来的分享。欢迎访问 OceanBase 官网获取更多信息:https://www.oceanbase.com/ 3 月 25 日,第一届 OceanBase 开发者大会在北京举行,华东师范大学副校…

7、如何使用接口?

1、基本用法 我们需要定义这样一个函数,参数是一个对象,里面包含两个字段:firstName 和 lastName,也就是英文的名和姓,然后返回一个拼接后的完整名字。来看下函数的定义: // 注:这段代码为纯Ja…

2023年第十四届蓝桥杯C++B组复盘

第十四届蓝桥杯CB组复盘 A: 日期统计(5分)问题描述思路 B: 01 串的熵(5分)问题描述思路 C: 冶炼金属(10分)问题描述输入格式输出格式样例输入样例输出样例说明评测用例规模与约定思路 D: 飞机降落&#xff…