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