12.4. 使用带有预共享密钥的 TLS 配置 NVMe/TCP 主机
您可以在启用 TLS 加密时配置一个 Non-volatile Memory Express™ (NVMe™) over TCP (NVMe™/TCP)主机。NVMe/TLS 配置使用 TLS 预共享密钥(PSK)。
NVM Express TCP 传输规范指定一个 PSK 交换格式,来在系统之间交换 PSK 信息。您可以使用 nvme-cli 或其他方法生成此格式的 PSK(例如,在存储目标上创建它,请参阅您的厂商文档)。然后,nvme-cli 使用这些配置的 PSK 来派生保留的 PSK,这些 PSK 会被插入到内核 keyring 中以供使用。
使用 TLS 的 NVMe/TCP 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
先决条件
-
nvme_tcp内核模块已安装在您的系统上。 以下软件包已安装在您的系统上:
-
nvme-cli -
ktls-utils
-
- 您有子系统 NVMe 限定名称(子系统 NQN)。
- 您在系统上具有 root 权限。
流程
配置预共享密钥 Keyring 。
识别主机 NQN :
# HOSTNQN=$(nvme show-hostnqn)生成并复制新配置的 PSK:
# PSK=$(nvme gen-tls-key)# echo $PSK配置预共享密钥 Keyring :
# nvme check-tls-key --insert --hostnqn=${HOSTNQN} --subsysnqn=${SUBSYSTEM} --keydata=${PSK} --identity=1
配置
tlshd服务。将 keyring 名称添加到
/etc/tlshd.conf配置文件中:... [authenticate] keyring=.nvme ...重启
tlshd服务:# systemctl restart tlshd
为 NVMe fabrics 连接启用 TLS:
# nvme discover -t tcp --tls -a ${TRADDR} -s 4420# nvme connect -t tcp --tls -a ${TRADDR} -s 4420 -n ${SUBSYSTEM}
验证
列出当前连接的 NVMe 设备:
# nvme list Node Generic SN Model Namespace Usage Format FW Rev --------------------- --------------------- -------------------- ---------------------------------------- ---------- -------------------------- ---------------- -------- /dev/nvme4n1 /dev/ng4n1 81JJAJTOpnmUAAAAAAAB NetApp ONTAP Controller 0x1 16.17 GB / 161.06 GB 4 KiB + 0 B 9.16.1