You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RHEL 9.2中使用nvme-cli启用内核态TLS生成密钥失败报错126

在RHEL 9.2中启用NVMe内核态TLS时生成密钥失败(Error 126)

问题详情

已通过TCP导出NQN为testnqn的NVMe目标(本地地址127.0.0.1,端口4420),正常执行nvme-connect可成功连接,但运行命令nvme gen-tls-key --subsysnqn=testnqn生成TLS握手密钥时,返回错误:Failed to insert key, error 126。

对应的NVMe目标配置文件test.json内容如下:

{
  "ports": [
    {
      "addr": {
        "adrfam": "ipv4",
        "traddr": "127.0.0.1",
        "treq": "not specified",
        "trsvcid": "4420",
        "trtype": "tcp"
      },
      "ana_groups": [
        {
          "ana": {
            "state": "optimized"
          },
          "grpid": 1
        }
      ],
      "param": {
        "inline_data_size": "16384",
        "pi_enable": "0"
      },
      "portid": 1,
      "referrals": [],
      "subsystems": [
        "testnqn"
      ]
    }
  ],
  "subsystems": [
    {
      "allowed_hosts": [],
      "attr": {
        "allow_any_host": "1",
        "cntlid_max": "65519",
        "cntlid_min": "1",
        "model": "Linux",
        "pi_enable": "0",
        "qid_max": "128",
        "serial": "8d56b289fe7f0a73eff8",
        "version": "1.3"
      },
      "namespaces": [
        {
          "ana_grpid": 1,
          "device": {
            "nguid": "00000000-0000-0000-0000-000000000000",
            "path": "/dev/sdb",
            "uuid": "45446286-372f-43e8-bfde-024ca4ef7bf1"
          },
          "enable": 1,
          "nsid": 10
        }
      ],
      "nqn": "testnqn"
    }
  ]
}

原因分析与解决步骤

Error 126对应内核错误码EOPNOTSUPP(操作不支持),以下是具体排查和解决方法:

1. 检查内核NVMe TLS配置

RHEL 9.2默认内核可能未开启NVMe TLS的必要配置项,需确认以下配置已启用:

  • CONFIG_NVME_TLS=y
  • CONFIG_CRYPTO_USER_API_HASH=y
  • CONFIG_CRYPTO_USER_API_SKCIPHER=y

执行命令检查当前内核配置:

grep -E 'CONFIG_NVME_TLS|CONFIG_CRYPTO_USER_API_HASH|CONFIG_CRYPTO_USER_API_SKCIPHER' /boot/config-$(uname -r)
  • 若配置项为m(模块形式),手动加载对应模块:
sudo modprobe nvme-tls
sudo modprobe crypto_user_hash
sudo modprobe crypto_user_skcipher
  • 若配置项未开启,需重新编译内核或升级到支持该特性的内核版本。

2. 升级nvme-cli版本

低版本nvme-cli可能不支持内核态TLS密钥生成功能,执行升级:

sudo dnf update nvme-cli

升级完成后重新运行密钥生成命令。

3. 启用NVMe目标端TLS支持

修改test.json,在端口的param字段中添加tls_enable": "1",开启目标端TLS:

"param": {
  "inline_data_size": "16384",
  "pi_enable": "0",
  "tls_enable": "1"
}

保存配置后重启NVMe目标服务:

sudo systemctl restart nvmet

4. 使用sudo执行命令

内核密钥环操作需要root权限,确保命令以sudo运行:

sudo nvme gen-tls-key --subsysnqn=testnqn

内容的提问来源于stack exchange,提问作者VATSAL TIWARI

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 21:58:31