適用於 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 命名空間。
如需支援組態的詳細資訊、請參閱 "NetApp 互通性對照表工具"。
功能
根據預設、 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`符合 `hostnqn
ONTAP 陣列上對應子系統的字串: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*/modelname
LPe36002-M64 LPe36002-M64
-
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
-
-
確認您使用的是推薦的 Broadcom
lpfc
韌體和收件匣驅動程式。-
cat /sys/class/scsi_host/host*/fwrev
14.4.317.10, sli-4:6:d 14.4.317.10, sli-4:6:d
-
cat /sys/module/lpfc/version
0:14.2.0.17
如需支援的介面卡驅動程式和韌體版本的最新清單,請參閱"NetApp 互通性對照表工具"。
-
-
請確認
lpfc_enable_fc4_type
設為3
:cat /sys/module/lpfc/parameters/lpfc_enable_fc4_type
預期輸出為 3 。
-
確認啟動器連接埠已啟動並正在執行、而且您可以看到目標生命體:
-
cat /sys/class/fc_host/host*/port_name
0x100000109bf0447b 0x100000109bf0447c
-
cat /sys/class/fc_host/host*/port_state
Online 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 會在識別控制器資料中報告 8 的 MDTS ( MAX Data 傳輸大小)。這表示最大 I/O 要求大小最多可達 1MB 。若要針對 Broadcom NVMe / FC 主機發出大小為 1 MB 的 I/O 要求,您應該將參數值 `lpfc_sg_seg_cnt`從預設值 64 增加 `lpfc`至 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*/model
NetApp ONTAP Controller NetApp ONTAP Controller
-
cat /sys/class/nvme-subsystem/nvme-subsys*/iopolicy
round-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 主機組態沒有已知問題。