Skip to main content
SAN hosts and cloud clients
本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

適用於 ONTAP 的 Oracle Linux 8.10 版 NVMe 型主機組態

貢獻者

NetApp SAN 主機組態支援 NVMe over Fabrics ( NVMe of )傳輸協定與非對稱命名空間存取( ANA )。在 NVMe 環境中, ANA 相當於 iSCSI 和 FCP 環境中的非對稱邏輯單元存取( ALUA )多重路徑。ANA 是使用核心內建 NVMe 多重路徑功能來實作。

關於這項工作

您可以在 Oracle Linux 8.10 的 NVMe 主機組態中使用下列支援和功能。在開始設定程序之前,您也應該先檢閱已知的限制。

  • 可用支援:

    • 支援 NVMe over TCP ( NVMe / TCP )和 NVMe over Fibre Channel ( NVMe / FC )。這讓原生 NVMe - CLI 套件中的 NetApp 外掛程式能夠同時顯示 NVMe / FC 和 NVMe / TCP 命名空間的 ONTAP 資訊。

      視您的主機組態而定,您可以設定 NNMe / FC , NVMe / TCP 或這兩種通訊協定。

    • 在同一部主機上同時執行 NVMe 和 SCSI 流量。例如,您可以為 SCSI LUN 的 SCSI 裝置設定 dm-multipath mpath ,並使用 NVMe 多重路徑在主機上設定 NVMe 命名空間裝置。

    如需支援組態的詳細資訊、請參閱 "NetApp 互通性對照表工具"

  • 可用功能:

    • 在 Oracle Linux 8.10 中,預設會啟用 NVMe 命名空間的核心內建 NVMe 多重路徑功能。您不需要設定明確的設定。

  • 已知限制:

    • 目前不支援使用 NVMe 型傳輸協定進行 SAN 開機。

    • Linux 8.10 主機上的 NVMe 無法支援 NetApp sanlun 主機公用程式。您可以改用原生套件中的 NetApp 外掛程式 `nvme-cli`來執行所有 NVMe 傳輸。

驗證軟體版本

驗證 Oracle Linux 8.10 支援的最低軟體版本。

步驟
  1. 在伺服器上安裝 Oracle Linux 8.10 GA 。安裝完成後、請確認您正在執行指定的 Oracle Linux 8.10 GA 核心:

    uname -r
    5.15.0-206.153.7.1.el8uek.x86_64
  2. 安裝「NVMe-CLI(NVMe - CLI)套件:

    rpm -qa|grep nvme-cli
    nvme-cli-1.16-9.el8.x86_64
  3. 在 Oracle Linux 8.10 主機上, `hostnqn`請檢查 `/etc/nvme/hostnqn`以下網址的字串:

    cat /etc/nvme/hostnqn
    nqn.2014-08.org.nvmexpress:uuid:edd38060-00f7-47aa-a9dc-4d8ae0cd969a
  4. 驗證 Oracle Linux 8.10 主機上與 ONTAP 陣列上對應的子系統是否 hostnqn`相符 `hostnqn

    vserver nvme subsystem host show -vserver vs_coexistence_LPE36002
    顯示範例
    Vserver Subsystem Priority  Host NQN
    ------- --------- --------  ------------------------------------------------
    vs_coexistence_LPE36002
            nvme
                      regular   nqn.2014-08.org.nvmexpress:uuid:edd38060-00f7-47aa-a9dc-4d8ae0cd969a
            nvme1
                      regular   nqn.2014-08.org.nvmexpress:uuid:edd38060-00f7-47aa-a9dc-4d8ae0cd969a
            nvme2
                      regular   nqn.2014-08.org.nvmexpress:uuid:edd38060-00f7-47aa-a9dc-4d8ae0cd969a
            nvme3
                      regular   nqn.2014-08.org.nvmexpress:uuid:edd38060-00f7-47aa-a9dc-4d8ae0cd969a
    4 entries were displayed.
    註 如果 hostnqn`字串不相符,請使用 `vserver modify`命令更新 `hostnqn`對應 ONTAP 陣列子系統上的字串,以符合主機上的字 `/etc/nvme/hostnqn`串 `hostnqn
  5. 如果您打算在同一部主機上同時執行 NVMe 和 SCSI 共存流量, NetApp 建議分別針對 ONTAP 命名空間和 ONTAP LUN 使用核心內建 NVMe 多重路徑 dm-multipath。這應該會排除 ONTAP 命名空間,並防止 `dm-multipath`宣告 ONTAP 命名空間 `dm-multipath`裝置:

    1. 將設定新增 `enable_foreign`至 `/etc/multipath.conf`檔案:

      # cat /etc/multipath.conf
      defaults {
        enable_foreign     NONE
      }
    2. 重新啟動 `multipathd`常駐程式以套用新設定:

      systemctl restart multipathd

設定NVMe/FC

您可以使用 Broadcom/Emulex FC 或 Marvell/Qlogic FC 介面卡來設定 NVMe / FC 。對於組態為 Broadcom 介面卡的 NVMe / FC ,您可以啟用大小為 1 MB 的 I/O 要求。

Broadcom / Emulex

為 Broadcom / Emulex 介面卡設定 NVMe / FC 。

步驟
  1. 確認您使用的是支援的介面卡機型:

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

      LPe36002-M64
      LPe36002-M64
    2. cat /sys/class/scsi_host/host*/modeldesc

      Emulex LPe36002-M64 2-Port 64Gb Fibre Channel Adapter
      Emulex LPe36002-M64 2-Port 64Gb Fibre Channel Adapter
  2. 驗證您使用的是建議的Broadcom lpfc 韌體與收件匣驅動程式:

    1. cat /sys/class/scsi_host/host*/fwrev

      14.4.317.10, sli-4:6:d
      14.4.317.10, sli-4:6:d
    2. cat /sys/module/lpfc/version

      0:14.2.0.13

      如需支援的介面卡驅動程式和韌體版本的最新清單,請參閱"NetApp 互通性對照表工具"

  3. 確認已 `lpfc_enable_fc4_type`設定為「 3 」:

    cat /sys/module/lpfc/parameters/lpfc_enable_fc4_type

  4. 確認啟動器連接埠已啟動並正在執行、而且您可以看到目標生命體:

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

      0x100000109bf0449c
      0x100000109bf0449d
    2. cat /sys/class/fc_host/host*/port_state

      Online
      Online
    3. cat /sys/class/scsi_host/host*/nvme_info

      顯示範例
      NVME Initiator Enabled
      XRI Dist lpfc0 Total 6144 IO 5894 ELS 250
      NVME LPORT lpfc0 WWPN x100000109bf0449c WWNN x200000109bf0449c DID x061500 ONLINE
      NVME RPORT       WWPN x200bd039eab31e9c WWNN x2005d039eab31e9c DID x020e06 TARGET DISCSRVC ONLINE
      NVME RPORT       WWPN x2006d039eab31e9c WWNN x2005d039eab31e9c DID x020a0a TARGET DISCSRVC ONLINE
      NVME Statistics
      LS: Xmt 000000002c Cmpl 000000002c Abort 00000000
      LS XMIT: Err 00000000  CMPL: xb 00000000 Err 00000000
      Total FCP Cmpl 000000000008ffe8 Issue 000000000008ffb9 OutIO ffffffffffffffd1
              abort 0000000c noxri 00000000 nondlp 00000000 qdepth 00000000 wqerr 00000000 err 00000000
      FCP CMPL: xb 0000000c Err 0000000c
      NVME Initiator Enabled
      XRI Dist lpfc1 Total 6144 IO 5894 ELS 250
      NVME LPORT lpfc1 WWPN x100000109bf0449d WWNN x200000109bf0449d DID x062d00 ONLINE
      NVME RPORT       WWPN x201fd039eab31e9c WWNN x2005d039eab31e9c DID x02090a TARGET DISCSRVC ONLINE
      NVME RPORT       WWPN x200cd039eab31e9c WWNN x2005d039eab31e9c DID x020d06 TARGET DISCSRVC ONLINE
      NVME Statistics
      LS: Xmt 0000000041 Cmpl 0000000041 Abort 00000000
      LS XMIT: Err 00000000  CMPL: xb 00000000 Err 00000000
      Total FCP Cmpl 00000000000936bf Issue 000000000009369a OutIO ffffffffffffffdb
              abort 00000016 noxri 00000000 nondlp 00000000 qdepth 00000000 wqerr 00000000 err 00000000
      FCP CMPL: xb 00000016 Err 00000016
Marvell / QLogic

為 Marvell/QLogic 介面卡設定 NVMe / FC 。

註 Oracle Linux 10 GA 核心中隨附的原生收件匣 qla2xxx 驅動程式具有最新的修正程式。這些修正對於 ONTAP 支援至關重要。
步驟
  1. 確認您執行的是支援的介面卡驅動程式和韌體版本:

    cat /sys/class/fc_host/host*/symbolic_name

    QLE2772 FW:v9.15.00 DVR:v10.02.09.100-k
    QLE2772 FW:v9.15.00 DVR:v10.02.09.100-k
  2. 確認已 `ql2xnvmeenable`設定為「 1 」。這可讓 Marvell 介面卡作為 NVMe / FC 啟動器運作:

    cat /sys/module/qla2xxx/parameters/ql2xnvmeenable

啟用1MB I/O大小(選用)

ONTAP 會在識別控制器資料中報告 8 的 MDTS ( MAX Data 傳輸大小)。這表示最大 I/O 要求大小最多可達 1MB 。若要針對 Broadcom NVMe / FC 主機發出大小為 1 MB 的 I/O 要求,您應該將參數值 `lpfc_sg_seg_cnt`從預設值 64 增加 `lpfc`至 256 。

註 這些步驟不適用於 Qlogic 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

設定NVMe/TCP

NVMe / TCP 傳輸協定不支援此 auto-connect`作業。您可以改為透過手動執行 NVMe / TCP 或 `connect-all`作業來探索 NVMe / TCP 子系統和命名空間 `connect

步驟
  1. 確認啟動器連接埠可在支援的NVMe/TCP LIF中擷取探索記錄頁面資料:

    nvme discover -t tcp -w <host-traddr> -a <traddr>
    顯示範例
    #	nvme discover -t tcp -w 192.168.6.1 -a 192.168.6.24 Discovery Log Number of Records 20, Generation counter 45
    =====Discovery Log Entry 0======
    trtype:  tcp
    adrfam:  ipv4
    subtype: unrecognized
    treq:    not specified
    portid:  6
    trsvcid: 8009
    subnqn:  nqn.1992-08.com.netapp:sn.e6c438e66ac211ef9ab8d039eab31e9d:discovery
    traddr:  192.168.6.25
    sectype: none
    =====Discovery Log Entry 1======
    trtype:  tcp
    adrfam:  ipv4
    subtype: unrecognized
    treq:    not specified
    portid:  1
    trsvcid: 8009
    subnqn:  nqn.1992-08.com.netapp:sn.e6c438e66ac211ef9ab8d039eab31e9d:discovery
    traddr:  192.168.5.24
    sectype: none
    =====Discovery Log Entry 2======
    trtype:  tcp
    adrfam:  ipv4
    subtype: unrecognized
    treq:    not specified
    portid:  4
    trsvcid: 8009
    subnqn:  nqn.1992-08.com.netapp:sn.e6c438e66ac211ef9ab8d039eab31e9d:discovery
    traddr:  192.168.6.24
    sectype: none
    =====Discovery Log Entry 3======
    trtype:  tcp
    adrfam:  ipv4
    subtype: unrecognized
    treq:    not specified
    portid:  2
    trsvcid: 8009
    subnqn:  nqn.1992-08.com.netapp:sn.e6c438e66ac211ef9ab8d039eab31e9d:discovery
    traddr:  192.168.5.25
    sectype: none
    =====Discovery Log Entry 4======
    trtype:  tcp
    adrfam:  ipv4
    subtype: nvme subsystem
    treq:    not specified
    portid:  6
    trsvcid: 4420
    subnqn:  nqn.1992-08.com.netapp:sn.e6c438e66ac211ef9ab8d039eab31e9d:subsystem.nvme_tcp_4
    traddr:  192.168.6.25
    sectype: none
    =====Discovery Log Entry 5======
    trtype:  tcp
    adrfam:  ipv4
    subtype: nvme subsystem
    treq:    not specified
    portid:  1
    trsvcid: 4420
    subnqn:  nqn.1992-08.com.netapp:sn.e6c438e66ac211ef9ab8d039eab31e9d:subsystem.nvme_tcp_4
    ..........
  2. 確認所有其他的 NVMe / TCP 啟動器目標 LIF 組合都能成功擷取探索記錄頁面資料:

    nvme discover -t tcp -w <host-traddr> -a <traddr>
    顯示範例
    # nvme discover -t tcp -w 192.168.6.1 -a 192.168.6.24
    # nvme discover -t tcp -w 192.168.6.1 -a 192.168.6.25
    # nvme discover -t tcp -w 192.168.5.1 -a 192.168.5.24
    # nvme discover -t tcp -w 192.168.5.1 -a 192.168.5.25
  3. 跨節點跨所有支援的 NVMe / TCP 啟動器目標生命體執行 `nvme connect-all`命令:

    nvme connect-all -t tcp -w <host-traddr> -a <traddr> -l <ctrl_loss_timeout_in_seconds>
    顯示範例
    #	nvme	connect-all	-t	tcp	-w	192.168.5.1	-a	192.168.5.24	-l -1
    #	nvme	connect-all	-t	tcp	-w	192.168.5.1	-a	192.168.5.25	-l -1
    #	nvme	connect-all	-t	tcp	-w	192.168.6.1	-a	192.168.6.24	-l -1
    #	nvme	connect-all	-t	tcp	-w	192.168.6.1	-a	192.168.6.25	-l -1
    註 NetApp 建議將選項設定 `ctrl-loss-tmo`為「 -1 」,以便在路徑遺失時, NVMe / TCP 啟動器會嘗試無限期重新連線。

驗證NVMe

若要支援正確的 ONTAP LUN 作業,請確認核心內建 NVMe 多重路徑狀態, ANA 狀態和 ONTAP 命名空間是否適用於 NVMe 組態。

步驟
  1. 確認已啟用核心內建 NVMe 多重路徑:

    cat /sys/module/nvme_core/parameters/multipath

    Y

  2. 驗證個別 ONTAP 命名空間的 NVMe 設定(例如設定為「 NetApp ONTAP 控制器」的模型,以及設定為「循環配置資源」的負載平衡)是否正確顯示在主機上:

    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/nvme0n1 814vWBNRwf9HAAAAAAAB NetApp ONTAP Controller
    /dev/nvme0n2 814vWBNRwf9HAAAAAAAB NetApp ONTAP Controller
    /dev/nvme0n3 814vWBNRwf9HAAAAAAAB NetApp ONTAP Controller
    
    Namespace Usage   Format               FW            Rev
    -----------------------------------------------------------
    1                 85.90 GB / 85.90 GB  4 KiB + 0 B   FFFFFFFF
    2                 85.90 GB / 85.90 GB  24 KiB + 0 B  FFFFFFFF
    3	                85.90 GB / 85.90 GB  4 KiB + 0 B   FFFFFFFF
  4. 確認每個路徑的控制器狀態均為有效、且具有正確的ANA狀態:

    NVMe / FC

    nvme list-subsys /dev/nvme0n1

    顯示範例
    nvme-subsys0 - NQN=nqn.1992- 08.com.netapp: 4b4d82566aab11ef9ab8d039eab31e9d:subsystem.nvme\
    +-  nvme1 fc traddr=nn-0x2038d039eab31e9c:pn-0x203ad039eab31e9c host_traddr=nn-0x200034800d756a89:pn-0x210034800d756a89 live optimized
    +-  nvme2 fc traddr=nn-0x2038d039eab31e9c:pn-0x203cd039eab31e9c host_traddr=nn-0x200034800d756a88:pn-0x210034800d756a88 live optimized
    +- nvme3 fc traddr=nn-0x2038d039eab31e9c:pn-0x203ed039eab31e9c host_traddr=nn-0x200034800d756a89:pn-0x210034800d756a89 live non-optimized
    +-  nvme7 fc traddr=nn-0x2038d039eab31e9c:pn-0x2039d039eab31e9c host_traddr=nn-0x200034800d756a88:pn-0x210034800d756a88 live non-optimized
    NVMe / TCP

    nvme list-subsys /dev/nvme0n1

    顯示範例
    nvme-subsys0 - NQN=nqn.1992- 08.com.netapp: sn.e6c438e66ac211ef9ab8d039eab31e9d:subsystem.nvme_tcp_4
    \
    +- nvme1 tcp traddr=192.168.5.25 trsvcid=4420 host_traddr=192.168.5.1 src_addr=192.168.5.1 live optimized
    +- nvme10 tcp traddr=192.168.6.24 trsvcid=4420 host_traddr=192.168.6.1 src_addr=192.168.6.1 live optimized
    +- nvme2 tcp traddr=192.168.5.24 trsvcid=4420 host_traddr=192.168.5.1 src_addr=192.168.5.1 live non-optimized
    +- nvme9 tcp traddr=192.168.6.25 trsvcid=4420 host_traddr=192.168.6.1 src_addr=192.168.6.1 live non-optimized
  5. 驗證NetApp外掛程式是否顯示每ONTAP 個版本名稱空間裝置的正確值:

    欄位

    nvme netapp ontapdevices -o column

    顯示範例
    Device         Vserver                  Namespace Path                NSID UUID                                  Size
    -------------- ------------------------ ----------------------------- ---- ------------------------------------- ---------
    /dev/nvme0n1   vs_coexistence_QLE2772   /vol/fcnvme_1_1_0/fcnvme_ns   1    159f9f88-be00-4828-aef6-197d289d4bd9  10.74GB
    /dev/nvme0n2   vs_coexistence_QLE2772   /vol/fcnvme_1_1_1/fcnvme_ns   2    2c1ef769-10c0-497d-86d7-e84811ed2df6  10.74GB
    /dev/nvme0n3   vs_coexistence_QLE2772   /vol/fcnvme_1_1_2/fcnvme_ns   3    9b49bf1a-8a08-4fa8-baf0-6ec6332ad5a4  10.74GB
    JSON

    nvme netapp ontapdevices -o json

    顯示範例
    {
      "ONTAPdevices" : [
        {
          "Device" : "/dev/nvme0n1",
          "Vserver" : "vs_coexistence_QLE2772",
          "Namespace_Path" : "/vol/fcnvme_1_1_0/fcnvme_ns",
          "NSID" : 1,
          "UUID" : "159f9f88-be00-4828-aef6-197d289d4bd9",
          "Size" : "10.74GB",
          "LBA_Data_Size" : 4096,
          "Namespace_Size" : 2621440
        },
        {
          "Device" : "/dev/nvme0n2",
          "Vserver" : "vs_coexistence_QLE2772",
          "Namespace_Path" : "/vol/fcnvme_1_1_1/fcnvme_ns",
          "NSID" : 2,
          "UUID" : "2c1ef769-10c0-497d-86d7-e84811ed2df6",
          "Size" : "10.74GB",
          "LBA_Data_Size" : 4096,
          "Namespace_Size" : 2621440
        },
        {
          "Device" : "/dev/nvme0n4",
          "Vserver" : "vs_coexistence_QLE2772",
          "Namespace_Path" : "/vol/fcnvme_1_1_3/fcnvme_ns",
          "NSID" : 4,
          "UUID" : "f3572189-2968-41bc-972a-9ee442dfaed7",
          "Size" : "10.74GB",
          "LBA_Data_Size" : 4096,
          "Namespace_Size" : 2621440
        },

已知問題

適用於 ONTAP 版本的 Oracle Linux 8.10 的 NVMe 主機組態有下列已知問題:

NetApp錯誤ID 標題 說明

CONTAPEXT-1082

Oracle Linux 8.10 NVMe 主機會建立重複的 PDF

在 Oracle Linux 8.10 NVMe 主機上,持續探索控制器( PDC )是使用命令選項 nvme discover`建立的 `-p。對於給定的 initiator 目標組合、 `nvme discover`命令的每次執行都會建立一個 PDC 。不過,從 Oracle Linux 8.x 開始, NVMe 主機會建立重複的 PDC 。這會浪費主機和目標上的資源。