Skip to main content
ONTAP SAN Host Utilities
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

使用ONTAP存储为 NVMe-oF 配置 RHEL 8.3

贡献者 netapp-sarajane

Red Hat Enterpirse Linux (RHEL) 主机支持具有非对称命名空间访问 (ANA) 的 NVMe over Fibre Channel (NVMe/FC) 和 NVMe over TCP (NVMe/TCP) 协议。 ANA 提供与 iSCSI 和 FCP 环境中的非对称逻辑单元访问 (ALUA) 等效的多路径功能。

了解如何为 RHEL 8.3 配置 NVMe over Fabrics (NVMe-oF) 主机。有关更多支持和功能信息,请参阅"NVME-oF 概述"

RHEL 8.3 的 NVMe-oF 具有以下已知限制:

  • 目前不支持使用 NVMe-oF 协议的 SAN 启动。

  • 默认情况下,RHEL 8.3 中的 NVMe-oF 主机上禁用内核 NVMe 多路径;您必须手动启用它。

第1步:(可选)启用SAN启动

您可以配置主机以使用 SAN 启动来简化部署并提高可扩展性。使用"互操作性表工具"验证您的 Linux 操作系统、主机总线适配器 (HBA)、HBA 固件、HBA 启动 BIOS 和ONTAP版本是否支持 SAN 启动。

步骤
  1. "创建 NVMe 命名空间并将其映射到主机"

  2. 在服务器 BIOS 中为 SAN 启动命名空间映射到的端口启用 SAN 启动。

    有关如何启用 HBA BIOS 的信息,请参见供应商专用文档。

  3. 重新启动主机并验证操作系统是否已启动并正在运行。

步骤 2:验证软件版本和 NVMe 配置

检查您的系统是否满足软件要求并验证 NVMe 包安装和主机配置。

步骤
  1. 在服务器上安装 RHEL 8.3。安装完成后,验证您是否正在运行所需的 RHEL 8.3 内核:

    uname -r

    RHEL 内核版本示例:

    4.18.0-240.el8.x86_64
  2. 安装 NVMe-CLI 软件包:

    rpm -qa|grep nvme-cli

    以下示例显示了 nvme-cli 软件包版本:

    nvme-cli-1.12-2.el8.x86_64
  3. 安装 libnvme 软件包:

    rpm -qa|grep libnvme

    以下示例显示了 libnvme 软件包版本:

    libnvme-1.0-1.el8.x86_64
  4. 启用内核 NVMe 多路径。

    grubby --args=nvme_core.multipath=Y --update-kernel /boot/vmlinuz-4.18.0-240.el8.x86_64
  5. 在 RHEL 8.3 主机上,检查 hostnqn 字符串 /etc/nvme/hostnqn

    cat /etc/nvme/hostnqn

    以下示例显示了 hostnqn 版本:

    nqn.2014-08.org.nvmexpress:uuid:9ed5b327-b9fc-4cf5-97b3-1b5d986345d1
  6. 验证是否已 hostnqn 字符串与匹配 hostnqn ONTAP 阵列上对应子系统的字符串:

    ::> vserver nvme subsystem host show -vserver vs_fcnvme_141
    显示示例
    Vserver     Subsystem          Host NQN
    ----------- --------------- ----------------------------------------------------------
    vs_fcnvme_141   nvme_141_1    nqn.2014-08.org.nvmexpress:uuid:9ed5b327-b9fc-4cf5-97b3-1b5d986345d1
    备注 如果 hostnqn 字符串不匹配、请使用 vserver modify 用于更新的命令 hostnqn 要匹配的相应ONTAP 阵列子系统上的字符串 hostnqn 字符串自 /etc/nvme/hostnqn 在主机上。
  7. 重新启动主机。

  8. (可选)更新 enable_foreign 设置。

    备注

    为了在同一主机上运行 NVMe 和 SCSI 流量, NetApp建议对ONTAP命名空间使用内核 NVMe 多路径,对ONTAP LUN 使用 dm-multipath。为了防止 dm-multipath 声明ONTAP命名空间设备,请通过添加 `enable_foreign`设置为 `/etc/multipath.conf`文件:

    cat /etc/multipath.conf
    defaults {
            enable_foreign     NONE
    }
  9. 运行 systemctl restart multipathd 以重新启动 multipathd 守护进程。

步骤 3:配置 NVMe/FC Broadcom/Emulex 适配器

使用 Broadcom/Emulex 适配器配置 NVMe/FC。

步骤
  1. 验证您使用的适配器型号是否受支持:

    1. 显示模型名称:

      cat /sys/class/scsi_host/host*/modelname

      您应看到以下输出:

      LPe32002-M2
      LPe32002-M2
    2. 显示模型描述:

      cat /sys/class/scsi_host/host*/modeldesc

      您应该看到类似以下内容的输出:

    Emulex LightPulse LPe32002-M2 2-Port 32Gb Fibre Channel Adapter
    Emulex LightPulse LPe32002-M2 2-Port 32Gb Fibre Channel Adapter
  2. 验证的预期输出是否 lpfc_enable_fc4_type`设置为 `3

    cat /sys/module/lpfc/parameters/lpfc_enable_fc4_type
  3. 验证启动器端口是否已启动并正在运行,并且可以看到目标 LIF:

    cat /sys/class/fc_host/host*/port_name

    您应该看到类似以下内容的输出:

    0x100000109b1c1204
    0x100000109b1c1205
  4. 验证启动程序端口是否联机:

    cat /sys/class/fc_host/host*/port_state

    您应看到以下输出:

    Online
    Online
  5. 验证NVMe/FC启动程序端口是否已启用且目标端口是否可见:

    cat /sys/class/scsi_host/host*/nvme_info
    显示示例
    NVME Initiator Enabled
    XRI Dist lpfc0 Total 6144 IO 5894 ELS 250
    NVME LPORT lpfc0 WWPN x100000109b1c1204 WWNN x200000109b1c1204 DID x011d00 ONLINE
    NVME RPORT WWPN x203800a098dfdd91 WWNN x203700a098dfdd91 DID x010c07 TARGET DISCSRVC ONLINE
    NVME RPORT WWPN x203900a098dfdd91 WWNN x203700a098dfdd91 DID x011507 TARGET DISCSRVC ONLINE
    
    NVME Statistics
    LS: Xmt 0000000f78 Cmpl 0000000f78 Abort 00000000
    LS XMIT: Err 00000000 CMPL: xb 00000000 Err 00000000
    Total FCP Cmpl 000000002fe29bba Issue 000000002fe29bc4 OutIO 000000000000000a
    abort 00001bc7 noxri 00000000 nondlp 00000000 qdepth 00000000 wqerr 00000000 err 00000000
    FCP CMPL: xb 00001e15 Err 0000d906
    
    NVME Initiator Enabled
    XRI Dist lpfc1 Total 6144 IO 5894 ELS 250
    NVME LPORT lpfc1 WWPN x100000109b1c1205 WWNN x200000109b1c1205 DID x011900 ONLINE
    NVME RPORT WWPN x203d00a098dfdd91 WWNN x203700a098dfdd91 DID x010007 TARGET DISCSRVC ONLINE
    NVME RPORT WWPN x203a00a098dfdd91 WWNN x203700a098dfdd91 DID x012a07 TARGET DISCSRVC ONLINE
    
    NVME Statistics
    LS: Xmt 0000000fa8 Cmpl 0000000fa8 Abort 00000000
    LS XMIT: Err 00000000 CMPL: xb 00000000 Err 00000000
    Total FCP Cmpl 000000002e14f170 Issue 000000002e14f17a OutIO 000000000000000a
    abort 000016bb noxri 00000000 nondlp 00000000 qdepth 00000000 wqerr 00000000 err 00000000
    FCP CMPL: xb 00001f50 Err 0000d9f8

步骤 4:(可选)为 NVMe/FC 启用 1MB I/O

ONTAP在识别控制器数据中报告最大数据传输大小 (MDTS) 为 8。这意味着最大 I/O 请求大小可达 1MB。要向 Broadcom NVMe/FC 主机发出 1MB 大小的 I/O 请求,您应该增加 `lpfc`的价值 `lpfc_sg_seg_cnt`参数从默认值 64 更改为 256。

备注 这些步骤不适用于逻辑NVMe/FC主机。
步骤
  1. 将 `lpfc_sg_seg_cnt`参数设置为256:

    cat /etc/modprobe.d/lpfc.conf

    您应该会看到类似于以下示例的输出:

    options lpfc lpfc_sg_seg_cnt=256
  2. 运行 `dracut -f`命令并重新启动主机。

  3. 验证的值是否 `lpfc_sg_seg_cnt`为256:

    cat /sys/module/lpfc/parameters/lpfc_sg_seg_cnt

步骤 5:验证 NVMe-oF

验证内核NVMe多路径状态、ANA状态和ONTAP命名空间是否适用于NVMe-oF配置。

步骤
  1. 验证是否已启用内核NVMe多路径:

    cat /sys/module/nvme_core/parameters/multipath

    您应看到以下输出:

    Y
  2. 验证相应ONTAP命名库的适当NVMe-oF设置(例如、型号设置为NetApp ONTAP控制器、负载平衡iopolicy设置为循环)是否正确反映在主机上:

    1. 显示子系统:

      cat /sys/class/nvme-subsystem/nvme-subsys*/model

      您应看到以下输出:

      NetApp ONTAP Controller
      NetApp ONTAP Controller
    2. 显示策略:

      cat /sys/class/nvme-subsystem/nvme-subsys*/iopolicy

      您应看到以下输出:

    round-robin
    round-robin
  3. 验证是否已在主机上创建并正确发现命名空间:

    nvme list
    显示示例
    Node         SN                   Model
    ---------------------------------------------------------
    /dev/nvme4n1 81Ix2BVuekWcAAAAAAAB	NetApp ONTAP Controller
    
    
    Namespace Usage    Format             FW             Rev
    -----------------------------------------------------------
    1                 21.47 GB / 21.47 GB	4 KiB + 0 B   FFFFFFFF
  4. 验证每个路径的控制器状态是否为活动状态且是否具有正确的ANA状态:

    nvme list-subsys /dev/nvme1n1
    显示示例
    nvme-subsys0 - NQN=nqn.1992-08.com.netapp:sn.5f5f2c4aa73b11e9967e00a098df41bd:subsystem.nvme_141_1
    \
    +- nvme0 fc traddr=nn-0x203700a098dfdd91:pn-0x203800a098dfdd91 host_traddr=nn-0x200000109b1c1204:pn-0x100000109b1c1204 live inaccessible
    +- nvme1 fc traddr=nn-0x203700a098dfdd91:pn-0x203900a098dfdd91 host_traddr=nn-0x200000109b1c1204:pn-0x100000109b1c1204 live inaccessible
    +- nvme2 fc traddr=nn-0x203700a098dfdd91:pn-0x203a00a098dfdd91 host_traddr=nn-0x200000109b1c1205:pn-0x100000109b1c1205 live optimized
    +- nvme3 fc traddr=nn-0x203700a098dfdd91:pn-0x203d00a098dfdd91 host_traddr=nn-0x200000109b1c1205:pn-0x100000109b1c1205 live optimized
  5. 验证NetApp插件是否为每个ONTAP 命名空间设备显示正确的值:

    nvme netapp ontapdevices -o column
    显示示例
    Device               Vserver            Namespace Path                           NSID                      UUID                     Size
    --------------- --------------- ---------------------------------------------  -------- --------------------------------------  ---------
    /dev/nvme0n1      vs_fcnvme_141     /vol/fcnvme_141_vol_1_1_0/fcnvme_141_ns        1      72b887b1-5fb6-47b8-be0b-33326e2542e2    85.90GB
    /dev/nvme0n2      vs_fcnvme_141     /vol/fcnvme_141_vol_1_0_0/fcnvme_141_ns        2      04bf9f6e-9031-40ea-99c7-a1a61b2d7d08    85.90GB
    /dev/nvme0n3      vs_fcnvme_141     /vol/fcnvme_141_vol_1_1_1/fcnvme_141_ns        3      264823b1-8e03-4155-80dd-e904237014a4    85.90GB
    JSON
    nvme netapp ontapdevices -o json
    显示示例
    {
    "ONTAPdevices" : [
        {
            "Device" : "/dev/nvme0n1",
            "Vserver" : "vs_fcnvme_141",
            "Namespace_Path" : "/vol/fcnvme_141_vol_1_1_0/fcnvme_141_ns",
            "NSID" : 1,
            "UUID" : "72b887b1-5fb6-47b8-be0b-33326e2542e2",
            "Size" : "85.90GB",
            "LBA_Data_Size" : 4096,
            "Namespace_Size" : 20971520
        },
        {
            "Device" : "/dev/nvme0n2",
            "Vserver" : "vs_fcnvme_141",
            "Namespace_Path" : "/vol/fcnvme_141_vol_1_0_0/fcnvme_141_ns",
            "NSID" : 2,
            "UUID" : "04bf9f6e-9031-40ea-99c7-a1a61b2d7d08",
            "Size" : "85.90GB",
            "LBA_Data_Size" : 4096,
            "Namespace_Size" : 20971520
          },
          {
             "Device" : "/dev/nvme0n3",
             "Vserver" : "vs_fcnvme_141",
             "Namespace_Path" : "/vol/fcnvme_141_vol_1_1_1/fcnvme_141_ns",
             "NSID" : 3,
             "UUID" : "264823b1-8e03-4155-80dd-e904237014a4",
             "Size" : "85.90GB",
             "LBA_Data_Size" : 4096,
             "Namespace_Size" : 20971520
           },
      ]

第6步:查看已知问题

没有已知问题。