存储性能开发工具包驱动

存储性能开发工具包 (SPDK) 是一个用户空间、轮询模式、异步、无锁 NVMe 驱动程序。它提供从用户空间应用程序到 SSD 的零拷贝、高度并行访问。SPDK 提供 NVMe-oF 目标,能够通过网络或到其他进程提供磁盘。

准备工作

SPDK NVMe-oF 目标安装

请按照 https://spdk.io/doc/nvmf.html 上的说明安装和配置带有 SPDK NVMe-oF 目标应用程序的环境。从 Ussuri 版本开始,需要 SPDK v19.10 或更高版本。

存储池配置

SPDK Cinder 驱动程序要求在 SPDK NVMe-oF 目标应用程序中预先配置存储池。SPDK 驱动程序使用逻辑卷存储 (LVS) 作为存储池。有关配置 LVS 的详细信息,请参见 https://spdk.io/doc/logical_volumes.html。配置存储池后,必须启用远程访问。从 SPDK 目录启动 scripts/rpc_http_proxy.py 脚本以启动一个 http 服务器,该服务器将管理来自卷驱动程序的请求。

支持的操作

  • 创建、删除、附加和分离卷。

  • 创建、列出和删除卷快照。

  • 从快照创建卷。

  • 将镜像复制到卷。

  • 将卷复制到镜像。

  • 克隆卷。

  • 扩展卷。

  • 获取卷统计信息。

配置

使用以下选项配置 SPDK NVMe-oF 传输

volume_driver = cinder.volume.drivers.spdk.SPDKDriver
target_protocol = nvmet_rdma          # SPDK driver supports only nvmet_rdma target protocol
target_helper = spdk-nvmeof           # SPDK volume driver requires SPDK NVMe-oF target driver
target_ip_address = 192.168.0.1       # NVMe-oF target IP address
target_port = 4260                    # NVMe-oF target port
target_prefix = nqn.2014-08.org.spdk  # NVMe-oF target nqn prefix
SPDK 配置选项说明

配置选项 = 默认值

描述

spdk_max_queue_depth = 64

(整数(最小值=1, 最大值=128)) rdma 传输的队列深度。

spdk_rpc_ip = None

(字符串) NVMe 目标远程配置 IP 地址。

spdk_rpc_password = None

(字符串) NVMe 目标远程配置密码。

spdk_rpc_port = 8000

(端口(最小值=0, 最大值=65535)) NVMe 目标远程配置端口。

spdk_rpc_protocol = http

(字符串(选项=[‘http’, ‘https’])) 与 SPDK RPC 代理一起使用的协议

spdk_rpc_username = None

(字符串) NVMe 目标远程配置用户名。