適用於 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 支援的最低軟體版本。
-
在伺服器上安裝 Oracle Linux 8.10 GA 。安裝完成後、請確認您正在執行指定的 Oracle Linux 8.10 GA 核心:
uname -r
5.15.0-206.153.7.1.el8uek.x86_64
-
安裝「NVMe-CLI(NVMe - CLI)套件:
rpm -qa|grep nvme-cli
nvme-cli-1.16-9.el8.x86_64
-
在 Oracle Linux 8.10 主機上, `hostnqn`請檢查 `/etc/nvme/hostnqn`以下網址的字串:
cat /etc/nvme/hostnqn
nqn.2014-08.org.nvmexpress:uuid:edd38060-00f7-47aa-a9dc-4d8ae0cd969a
-
驗證 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
。 -
如果您打算在同一部主機上同時執行 NVMe 和 SCSI 共存流量, NetApp 建議分別針對 ONTAP 命名空間和 ONTAP LUN 使用核心內建 NVMe 多重路徑
dm-multipath
。這應該會排除 ONTAP 命名空間,並防止 `dm-multipath`宣告 ONTAP 命名空間 `dm-multipath`裝置:-
將設定新增 `enable_foreign`至 `/etc/multipath.conf`檔案:
# cat /etc/multipath.conf defaults { enable_foreign NONE }
-
重新啟動 `multipathd`常駐程式以套用新設定:
systemctl restart multipathd
-
設定NVMe/FC
您可以使用 Broadcom/Emulex FC 或 Marvell/Qlogic FC 介面卡來設定 NVMe / FC 。對於組態為 Broadcom 介面卡的 NVMe / FC ,您可以啟用大小為 1 MB 的 I/O 要求。
為 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.13
如需支援的介面卡驅動程式和韌體版本的最新清單,請參閱"NetApp 互通性對照表工具"。
-
-
確認已 `lpfc_enable_fc4_type`設定為「 3 」:
cat /sys/module/lpfc/parameters/lpfc_enable_fc4_type
-
確認啟動器連接埠已啟動並正在執行、而且您可以看到目標生命體:
-
cat /sys/class/fc_host/host*/port_name
0x100000109bf0449c 0x100000109bf0449d
-
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 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 介面卡設定 NVMe / FC 。
Oracle Linux 10 GA 核心中隨附的原生收件匣 qla2xxx 驅動程式具有最新的修正程式。這些修正對於 ONTAP 支援至關重要。 |
-
確認您執行的是支援的介面卡驅動程式和韌體版本:
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
-
確認已 `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 主機。 |
-
將 `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 傳輸協定不支援此 auto-connect`作業。您可以改為透過手動執行 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.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 ..........
-
確認所有其他的 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
-
跨節點跨所有支援的 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 組態。
-
確認已啟用核心內建 NVMe 多重路徑:
cat /sys/module/nvme_core/parameters/multipath
Y
-
驗證個別 ONTAP 命名空間的 NVMe 設定(例如設定為「 NetApp ONTAP 控制器」的模型,以及設定為「循環配置資源」的負載平衡)是否正確顯示在主機上:
-
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 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
-
確認每個路徑的控制器狀態均為有效、且具有正確的ANA狀態:
NVMe / FCnvme 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 / TCPnvme 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
-
驗證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
JSONnvme 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 )是使用命令選項 |