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)
# HOSTNQN=$(nvme show-hostnqn)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 生成并复制新配置的 PSK:
PSK=$(nvme gen-tls-key)
# PSK=$(nvme gen-tls-key)Copy to Clipboard Copied! Toggle word wrap Toggle overflow echo $PSK
# echo $PSKCopy to Clipboard Copied! Toggle word wrap Toggle overflow 配置预共享密钥 Keyring :
nvme check-tls-key --insert --hostnqn=${HOSTNQN} --subsysnqn=${SUBSYSTEM} --keydata=${PSK} --identity=1# nvme check-tls-key --insert --hostnqn=${HOSTNQN} --subsysnqn=${SUBSYSTEM} --keydata=${PSK} --identity=1Copy to Clipboard Copied! Toggle word wrap Toggle overflow
配置
tlshd服务。将 keyring 名称添加到
/etc/tlshd.conf配置文件中:... [authenticate] keyring=.nvme ...
... [authenticate] keyring=.nvme ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重启
tlshd服务:systemctl restart tlshd
# systemctl restart tlshdCopy to Clipboard Copied! Toggle word wrap Toggle overflow
为 NVMe fabrics 连接启用 TLS:
nvme discover -t tcp --tls -a ${TRADDR} -s 4420# nvme discover -t tcp --tls -a ${TRADDR} -s 4420Copy to Clipboard Copied! Toggle word wrap Toggle overflow nvme connect -t tcp --tls -a ${TRADDR} -s 4420 -n ${SUBSYSTEM}# nvme connect -t tcp --tls -a ${TRADDR} -s 4420 -n ${SUBSYSTEM}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
列出当前连接的 NVMe 设备:
nvme list
# 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.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow