適用於 ONTAP 的 Ubuntu 24.04 的 NVMe 主機組態
Ubuntu 24.04 和非對稱命名空間存取( ANA )支援 NVMe over Fabrics ( NVMe over Fabric , NVMe of ),包括 NVMe over Fibre Channel ( NVMe / FC )和其他傳輸。在 NVMe 環境中、 ANA 等同於 iSCSI 和 FC 環境中的 ALUA 多重路徑、並以核心內建 NVMe 多重路徑來實作。
下列支援適用於 ONTAP 的 Ubuntu 24.04 NVMe 主機組態:
- 
原生 NVMe - CLI 套件中的 NetApp 外掛程式會顯示 NVMe / FC 命名空間的 ONTAP 詳細資料。 
- 
在指定主機匯流排介面卡( HBA )上的同一主機上使用 NVMe 和 SCSI 共存流量、而不使用明確的 dm-multipath 設定、以避免使用 NVMe 命名空間。 
如需支援組態的其他詳細資訊,請參閱"互通性對照表工具"。
功能
根據預設、 Ubuntu 24.04 已啟用 NVMe 命名空間的核心內建 NVMe 多重路徑。這表示您不需要明確的設定。
已知限制
ONTAP 的 Ubuntu 24.04 目前不支援使用 NVMe 型傳輸協定進行 SAN 開機。
驗證軟體版本
您可以使用下列程序來驗證最低支援的 Ubuntu 24.04 軟體版本。
- 
在伺服器上安裝 Ubuntu 24.04 。安裝完成後、請確認您正在執行指定的 Ubuntu 24.04 核心: uname -r 6.8.0-31-generic 
- 
安裝「NVMe-CLI(NVMe - CLI)套件: apt list | grep nvme nvme-cli/noble-updates 2.8-1ubuntu0.1 amd64 
- 
在 Ubuntu 24.04 主機上,請檢查 hostnqn 字符串,網址爲 /etc/nvme/hostnqn:cat /etc/nvme/hostnqn nqn.2014-08.org.nvmexpress:uuid:ace18dd8-1f5a-11ec-b0c3-3a68dd61a6ff 
- 
驗證來自的字串 /etc/nvme/hostnqn`是否 `hostnqn`符合 `hostnqnONTAP 陣列上對應子系統的字串:vserver nvme subsystem host show -vserver vs_106_fc_nvme Vserver Subsystem Host NQN ----------- --------------- ---------------------------------------------------------- vs_106_fc_nvme ub_106 nqn.2014-08.org.nvmexpress:uuid:c04702c8-e91e-4353-9995-ba4536214631 如果 hostnqn`字串不相符,請使用 `vserver modify`命令更新 `hostnqn`對應 ONTAP 陣列子系統上的字串,以符合主機上的字 `/etc/nvme/hostnqn`串 `hostnqn。
設定NVMe/FC
您可以為 Broadcom / Emulex 或 Marvell/Qlogic 介面卡設定 NVMe / FC 。
為 Broadcom / Emulex 介面卡設定 NVMe / FC 。
- 
確認您使用的是支援的介面卡機型: - 
cat /sys/class/scsi_host/host*/modelnameLPe36002-M64 LPe36002-M64 
- 
cat /sys/class/scsi_host/host*/modeldescEmulex LPe36002-M64 2-Port 64Gb Fibre Channel Adapter Emulex LPe36002-M64 2-Port 64Gb Fibre Channel Adapter 
 
- 
- 
確認您使用的是推薦的 Broadcom lpfc韌體和收件匣驅動程式。- 
cat /sys/class/scsi_host/host*/fwrev14.4.317.10, sli-4:6:d 14.4.317.10, sli-4:6:d 
- 
cat /sys/module/lpfc/version0:14.2.0.17 如需支援的介面卡驅動程式和韌體版本的最新清單,請參閱"互通性對照表工具"。 
 
- 
- 
請確認 lpfc_enable_fc4_type設為3:cat /sys/module/lpfc/parameters/lpfc_enable_fc4_type 預期輸出為 3 。 
- 
確認啟動器連接埠已啟動並正在執行、而且您可以看到目標生命體: - 
cat /sys/class/fc_host/host*/port_name0x100000109bf0447b 0x100000109bf0447c 
- 
cat /sys/class/fc_host/host*/port_stateOnline Online 
- 
cat /sys/class/scsi_host/host*/nvme_info顯示範例輸出NVME Initiator Enabled XRI Dist lpfc0 Total 6144 IO 5894 ELS 250 NVME LPORT lpfc0 WWPN x100000109bf0447b WWNN x200000109bf0447b DID x022600 ONLINE NVME RPORT WWPN x200fd039eaa8138b WWNN x200ad039eaa8138b DID x021006 TARGET DISCSRVC ONLINE NVME Statistics LS: Xmt 0000000187 Cmpl 0000000187 Abort 00000000 LS XMIT: Err 00000000 CMPL: xb 00000000 Err 00000000 Total FCP Cmpl 0000000014096514 Issue 000000001407fcd6 OutIO fffffffffffe97c2 abort 00000048 noxri 00000000 nondlp 0000001c qdepth 00000000 wqerr 00000000 err 00000000 FCP CMPL: xb 00000048 Err 00000077 NVME Initiator Enabled XRI Dist lpfc1 Total 6144 IO 5894 ELS 250 NVME LPORT lpfc1 WWPN x100000109bf0447c WWNN x200000109bf0447c DID x022300 ONLINE NVME RPORT WWPN x2010d039eaa8138b WWNN x200ad039eaa8138b DID x021106 TARGET DISCSRVC ONLINE NVME Statistics LS: Xmt 0000000187 Cmpl 0000000187 Abort 00000000 LS XMIT: Err 00000000 CMPL: xb 00000000 Err 00000000 Total FCP Cmpl 00000000140970ed Issue 00000000140813da OutIO fffffffffffea2ed abort 00000047 noxri 00000000 nondlp 0000002b qdepth 00000000 wqerr 00000000 err 00000000 FCP CMPL: xb 00000047 Err 00000075
 
- 
Ubuntu 24.04 GA 核心中隨附的原生收件匣 qla2xxx 驅動程式具有最新的上游修正程式。這些修正對於 ONTAP 支援至關重要。
為 Marvell/QLogic 介面卡設定 NVMe / FC 。
- 
確認您執行的是支援的介面卡驅動程式和韌體版本: cat /sys/class/fc_host/host*/symbolic_name QLE2872 FW: v9.15.00 DVR: v10.02.09.100-k QLE2872 FW: v9.15.00 DVR: v10.02.09.100-k 
- 
請確認 ql2xnvmeenable已設定。這可讓 Marvell 介面卡作為 NVMe / FC 啟動器運作:cat /sys/module/qla2xxx/parameters/ql2xnvmeenable 預期的 ouptut 為 1 。 
啟用 1MB I/O (選用)
ONTAP在識別控制器資料中報告最大資料傳輸大小 (MDTS) 為 8。這意味著最大 I/O 請求大小可達 1MB。若要向 Broadcom NVMe/FC 主機發出 1MB 大小的 I/O 要求,您應該會增加 `lpfc`的價值 `lpfc_sg_seg_cnt`參數從預設值 64 更改為 256。
|  | 這些步驟不適用於 Qlogic NVMe / FC 主機。 | 
- 
將 `lpfc_sg_seg_cnt`參數設定為 256 : cat /etc/modprobe.d/lpfc.conf您應該會看到類似以下範例的輸出: options lpfc lpfc_sg_seg_cnt=256 
- 
執行 `dracut -f`命令,然後重新啟動主機。 
- 
確認的值 `lpfc_sg_seg_cnt`為 256 : cat /sys/module/lpfc/parameters/lpfc_sg_seg_cnt
設定NVMe/TCP
NVMe / TCP 不支援自動連線功能。您可以改用或 connect-all`命令手動探索 NVMe / TCP 子系統和命名空間 `connect。
- 
確認啟動器連接埠可在支援的NVMe/TCP LIF中擷取探索記錄頁面資料: nvme discover -t tcp -w <host-traddr> -a <traddr> 顯示範例# nvme discover -t tcp -w 192.168.167.150 -a 192.168.167.155 Discovery Log Number of Records 8, Generation counter 10 =====Discovery Log Entry 0====== trtype: tcp adrfam: ipv4 subtype: current discovery subsystem treq: not specified portid: 4 trsvcid: 8009 subnqn: nqn.1992-08.com.netapp:sn.9b7d42b764ff11efb8fed039eabac370:discovery traddr: 192.168.167.156 eflags: explicit discovery connections, duplicate discovery information sectype: none =====Discovery Log Entry 1====== trtype: tcp adrfam: ipv4 subtype: current discovery subsystem treq: not specified portid: 2 trsvcid: 8009 subnqn: nqn.1992-08.com.netapp:sn.9b7d42b764ff11efb8fed039eabac370:discovery traddr: 192.168.166.156 eflags: explicit discovery connections, duplicate discovery information sectype: none =====Discovery Log Entry 2====== trtype: tcp adrfam: ipv4 subtype: current discovery subsystem treq: not specified portid: 3 trsvcid: 8009 subnqn: nqn.1992-08.com.netapp:sn.9b7d42b764ff11efb8fed039eabac370:discovery traddr: 192.168.167.155 eflags: explicit discovery connections, duplicate discovery information sectype: none =====Discovery Log Entry 3====== trtype: tcp adrfam: ipv4 subtype: current discovery subsystem treq: not specified portid: 1 trsvcid: 8009 subnqn: nqn.1992-08.com.netapp:sn.9b7d42b764ff11efb8fed039eabac370:discovery traddr: 192.168.166.155 eflags: explicit discovery connections, duplicate discovery information sectype: none =====Discovery Log Entry 4====== trtype: tcp adrfam: ipv4 subtype: nvme subsystem treq: not specified portid: 4 trsvcid: 4420 subnqn: nqn.1992-08.com.netapp:sn.9b7d42b764ff11efb8fed039eabac370:subsystem.ubuntu_24.04_tcp_211 traddr: 192.168.167.156 eflags: none sectype: none =====Discovery Log Entry 5====== trtype: tcp adrfam: ipv4 subtype: nvme subsystem treq: not specified portid: 2 trsvcid: 4420 subnqn: nqn.1992-08.com.netapp:sn.9b7d42b764ff11efb8fed039eabac370:subsystem.ubuntu_24.04_tcp_211 traddr: 192.168.166.156 eflags: none sectype: none =====Discovery Log Entry 6====== trtype: tcp adrfam: ipv4 subtype: nvme subsystem treq: not specified portid: 3 trsvcid: 4420 subnqn: nqn.1992-08.com.netapp:sn.9b7d42b764ff11efb8fed039eabac370:subsystem.ubuntu_24.04_tcp_211 traddr: 192.168.167.155 eflags: none sectype: none =====Discovery Log Entry 7====== trtype: tcp adrfam: ipv4 subtype: nvme subsystem treq: not specified portid: 1 trsvcid: 4420 subnqn: nqn.1992-08.com.netapp:sn.9b7d42b764ff11efb8fed039eabac370:subsystem.ubuntu_24.04_tcp_211 traddr: 192.168.166.155 eflags: none sectype: none 
- 
確認其他的 NVMe / TCP 啟動器目標 LIF 組合可以擷取探索記錄頁面資料: nvme discover -t tcp -w <host-traddr> -a <traddr> 顯示範例輸出#nvme discover -t tcp -w 192.168.167.150 -a 192.168.167.155 #nvme discover -t tcp -w 192.168.167.150 -a 192.168.167.156 #nvme discover -t tcp -w 192.168.166.150 -a 192.168.166.155 #nvme discover -t tcp -w 192.168.166.150 -a 192.168.166.156 
- 
執行 nvme connect-all跨所有節點支援的 NVMe / TCP 啟動器目標生命體執行命令:nvme connect-all -t tcp -w <host-traddr> -a <traddr> 顯示範例輸出#nvme connect-all -t tcp -w 192.168.167.150 -a 192.168.167.155 #nvme connect-all -t tcp -w 192.168.167.150 -a 192.168.167.156 #nvme connect-all -t tcp -w 192.168.166.150 -a 192.168.166.155 #nvme connect-all -t tcp -w 192.168.166.150 -a 192.168.166.156 從 Ubuntu 24.04 開始,將關閉適用於 NVMe / TCP 的 Ctrl_LUS_TMOD 逾時預設設定。這表示重試次數沒有限制(無限期重試),而且您不需要在使用或 nvme connect-all`命令(選項 -l )時手動設定特定的 Ctrl_loss_tmo 逾時時間 `nvme connect。在這種預設行為下、當路徑故障時、 NVMe / TCP 控制器不會發生逾時、而且會無限期保持連線。
驗證NVMe
您可以使用下列程序來驗證 NVMe 。
- 
確認已啟用核心內建 NVMe 多重路徑: cat /sys/module/nvme_core/parameters/multipath 預期輸出為「 Y 」。 
- 
確認主機上正確顯示個別 ONTAP 命名空間的適當 NVMe 設定(例如,模型設定為「 NetApp ONTAP 控制器」,負載平衡 iopoliced 設定為「循環配置資源」): - 
cat /sys/class/nvme-subsystem/nvme-subsys*/modelNetApp ONTAP Controller NetApp ONTAP Controller 
- 
cat /sys/class/nvme-subsystem/nvme-subsys*/iopolicyround-robin round-robin 
 
- 
- 
確認已在主機上建立並正確探索命名空間: nvme list 顯示範例輸出Node SN Model --------------------------------------------------------- /dev/nvme0n1 81CZ5BQuUNfGAAAAAAAB NetApp ONTAP Controller Namespace Usage Format FW Rev ----------------------------------------------------------- 1 21.47 GB / 21.47 GB 4 KiB + 0 B FFFFFFFF 
- 
確認每個路徑的控制器狀態均為有效、且具有正確的ANA狀態: NVMe / FCnvme list-subsys /dev/nvme0n1 顯示範例輸出nvme-subsys4 - NQN=nqn.1992-08.com.netapp:sn.8763d311b2ac11ed950ed039ea951c46:subsystem. ubuntu_24.04 \ +- nvme1 fc traddr=nn-0x20a6d039ea954d17:pn-0x20a7d039ea954d17,host_traddr=nn-0x200000109b1b95ef:pn-0x100000109b1b95ef live optimized +- nvme2 fc traddr=nn-0x20a6d039ea954d17:pn-0x20a8d039ea954d17,host_traddr=nn-0x200000109b1b95f0:pn-0x100000109b1b95f0 live optimized +- nvme3 fc traddr=nn-0x20a6d039ea954d17:pn-0x20aad039ea954d17,host_traddr=nn-0x200000109b1b95f0:pn-0x100000109b1b95f0 live non-optimized +- nvme5 fc traddr=nn-0x20a6d039ea954d17:pn-0x20a9d039ea954d17,host_traddr=nn-0x200000109b1b95ef:pn-0x100000109b1b95ef live non-optimized NVMe / TCPnvme list-subsys /dev/nvme1n1 顯示範例輸出nvme-subsys0 - NQN=nqn.1992-08.com.netapp:sn.9b7d42b764ff11efb8fed039eabac370:subsystem.ubuntu_24.04_tcp_211 hostnqn=nqn.2014-08.org.nvmexpress:uuid:4c4c4544-0050-3410-8035-c3c04f4a5933 iopolicy=round-robin +- nvme0 tcp traddr=192.168.166.155,trsvcid=4420,host_traddr=192.168.166.150,src_addr=192.168.166.150 live optimized +- nvme1 tcp traddr=192.168.167.155,trsvcid=4420,host_traddr=192.168.167.150,src_addr=192.168.167.150 live optimized +- nvme2 tcp traddr=192.168.166.156,trsvcid=4420,host_traddr=192.168.166.150,src_addr=192.168.166.150 live non-optimized +- nvme3 tcp traddr=192.168.167.156,trsvcid=4420,host_traddr=192.168.167.150,src_addr=192.168.167.150 live non-optimized
- 
驗證NetApp外掛程式是否顯示每ONTAP 個版本名稱空間裝置的正確值: 欄位nvme netapp ontapdevices -o column 顯示範例輸出Device Vserver Namespace Path NSID UUID Size ------------- ------------- ----------------------- ---- -------------------------------------- --------- /dev/nvme0n1 vs_211_tcp /vol/tcpvol1/ns1 1 1cc7bc78-8d7b-4d8e-a3c4-750f9461a6e9 21.47GB JSONnvme netapp ontapdevices -o json 顯示範例輸出{ "ONTAPdevices" : [ { "Device":"/dev/nvme0n9", "Vserver":"vs_211_tcp", "Namespace_Path":"/vol/tcpvol9/ns9", "NSID":9, "UUID":"99640dd9-8463-4c12-8282-b525b39fc10b", "Size":"21.47GB", "LBA_Data_Size":4096, "Namespace_Size":5242880 } ] }
已知問題
在含 ONTAP 版本的 Ubuntu 24.04 中, NVMe 主機組態沒有已知問題。
 PDF
PDF