適用於 ONTAP 的 SUSE Linux Enterprise Server 15 SP7 的 NVMe 主機組態
SUSE Linux Enterprise Server 主機支援具有非對稱命名空間存取 (ANA) 的 NVMe over Fibre Channel (NVMe/FC) 和 NVMe over TCP (NVMe/TCP) 協定。 ANA 提供與 iSCSI 和 FCP 環境中的非對稱邏輯單元存取 (ALUA) 等效的多路徑功能。
您可以將以下支援和功能與 SUSE Linux Enterprise Server 15 SP7 的 NVMe-oF 主機配置一起使用。在開始配置過程之前,您還應該查看已知的限制。
- 
可用支援: - 
除了 NVMe over Fibre Channel ( NVMe / FC )之外,還支援 NVMe over TCP ( NVMe / TCP )。原生套件中的 NetApp 外掛程式 `nvme-cli`會同時顯示 NVMe / FC 和 NVMe / TCP 命名空間的 ONTAP 詳細資料。 
- 
在同一部主機上同時執行 NVMe 和 SCSI 流量。例如,您可以為 SCSI LUN 的 SCSI mpath 裝置設定 dm-multipath ,並使用 NVMe 多重路徑在主機上設定 NVMe 命名空間裝置。 
- 
支援使用 NVMe / FC 傳輸協定進行 SAN 開機。 
- 
從ONTAP 9.12.1 開始,引入了對 NVMe/TCP 和 NVMe/FC 安全帶內身份驗證的支援。您可以使用 SUSE Linux Enterprise Server 15 SP7 對 NVMe/TCP 和 NVMe/FC 進行安全帶內驗證。 
- 
支援使用唯一發現 NQN 的持久發現控制器 (PDC)。 
- 
NVMe/TCP 的 TLS 1.3 加密支援。 
- 
NetApp sanlunSUSE Linux Enterprise Server15 SP7 主機上的 NVMe-oF 不支援主機實用程式。相反,您可以依賴本機中包含的NetApp插件 `nvme-cli`適用於所有 NVMe-oF 傳輸的套件。如需支援組態的其他詳細資訊,請參閱"互通性對照表工具"。 
 
- 
- 
可用功能: - 
沒有可用的新功能。 
 
- 
- 
已知限制 - 
避免發布 `nvme disconnect-all`命令,因為它會斷開根檔案系統和資料檔案系統的連接,並可能導致系統不穩定。 
 
- 
步驟 1 :選擇性啟用 SAN 開機
您可以將主機設定為使用 SAN 開機,以簡化部署並改善擴充性。
使用"互通性對照表工具"驗證您的 Linux 作業系統,主機匯流排介面卡( HBA ), HBA 韌體, HBA 開機 BIOS 和 ONTAP 版本是否支援 SAN 開機。
- 
建立 SAN 啟動命名空間並將其對應到主機。 請參閱。 "配置NVMe儲存設備" 
- 
在伺服器 BIOS 中為 SAN 啟動命名空間對應到的連接埠啟用 SAN 啟動。 如需如何啟用HBA BIOS的相關資訊、請參閱廠商專屬的文件。 
- 
重新啟動主機並驗證作業系統是否正常運作,以確認組態是否成功。 
步驟 2:驗證軟體版本
使用下列步驟驗證最低支援的 SUSE Linux Enterprise Server 15 SP7 軟體版本。
- 
在伺服器上安裝SUSE Linux Enterprise Server15 SP7。安裝完成後,請驗證您是否正在執行指定的 SUSE Linux Enterprise Server 15 SP7 核心: uname -r以下範例顯示了 SUSE Linux Enterprise Server 核心版本: 6.4.0-150700.53.3-default 
- 
安裝「NVMe-CLI(NVMe - CLI)套件: rpm -qa|grep nvme-cli下面的例子展示了 `nvme-cli`軟體包版本: nvme-cli-2.11+22.gd31b1a01-150700.3.3.2.x86_64 
- 
安裝 libnvme套件:rpm -qa|grep libnvme下面的例子展示了 `libnvme`軟體包版本: libnvme1-1.11+4.ge68a91ae-150700.4.3.2.x86_64 
- 
在主機上,檢查 hostnqn 字串 /etc/nvme/hostnqn:cat /etc/nvme/hostnqn下面的例子展示了 `hostnqn`版本: nqn.2014-08.org.nvmexpress:uuid:f6517cae-3133-11e8-bbff-7ed30aef123f 
- 
確認 hostnqn字串符合hostnqnONTAP 陣列上對應子系統的字串:::> 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:4c4c4544-0056-5410-8048-b9c04f425633 nvme_1 regular nqn.2014-08.org.nvmexpress:uuid:4c4c4544-0056-5410-8048-b9c04f425633 nvme_2 regular nqn.2014-08.org.nvmexpress:uuid:4c4c4544-0056-5410-8048-b9c04f425633 nvme_3 regular nqn.2014-08.org.nvmexpress:uuid:4c4c4544-0056-5410-8048-b9c04f425633 4 entries were displayed.如果是 hostnqn字串不相符、請使用vserver modify命令來更新hostnqn對應 ONTAP 陣列子系統上的字串、以符合hostnqn字串來源/etc/nvme/hostnqn在主機上。
步驟3:設定NVMe/FC
您可以使用 Broadcom/Emulex FC 或 Marvell/Qlogic FC 介面卡來設定 NVMe / FC 。您還需要手動發現 NVMe/TCP 子系統和命名空間。
為 Broadcom / Emulex FC 介面卡設定 NVMe / FC 。
- 
確認您使用的是支援的介面卡機型: - 
顯示模型名稱: cat /sys/class/scsi_host/host*/modelname您應該會看到下列輸出: LPe36002-M64 LPe36002-M64 
- 
顯示模型描述: cat /sys/class/scsi_host/host*/modeldesc您應該會看到類似以下範例的輸出: 
 Emulex LightPulse LPe36002-M64 2-Port 64Gb Fibre Channel Adapter Emulex LightPulse LPe36002-M64 2-Port 64Gb Fibre Channel Adapter 
- 
- 
驗證您使用的是建議的Broadcom lpfc韌體與收件匣驅動程式:- 
顯示韌體版本: cat /sys/class/scsi_host/host*/fwrev以下範例顯示韌體版本: 14.4.393.25, sli-4:2:c 14.4.393.25, sli-4:2:c 
- 
顯示收件匣驅動程式版本: cat /sys/module/lpfc/version以下範例顯示了驅動程式版本: 0:14.4.0.8 
 如需支援的介面卡驅動程式和韌體版本的最新清單,請參閱"互通性對照表工具"。 
- 
- 
驗證的預期輸出是否 lpfc_enable_fc4_type`設置爲 `3:cat /sys/module/lpfc/parameters/lpfc_enable_fc4_type
- 
確認您可以檢視啟動器連接埠: cat /sys/class/fc_host/host*/port_name以下範例顯示連接埠標識: 0x10000090fae0ec88 0x10000090fae0ec89 
- 
驗證啟動器連接埠是否在線上: cat /sys/class/fc_host/host*/port_state您應該會看到下列輸出: Online Online 
- 
確認已啟用 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 x10000090fae0ec88 WWNN x20000090fae0ec88 DID x0a1300 ONLINE NVME RPORT WWPN x23b1d039ea359e4a WWNN x23aed039ea359e4a DID x0a1c01 TARGET DISCSRVC ONLINE NVME RPORT WWPN x22bbd039ea359e4a WWNN x22b8d039ea359e4a DID x0a1c0b TARGET DISCSRVC ONLINE NVME RPORT WWPN x2362d039ea359e4a WWNN x234ed039ea359e4a DID x0a1c10 TARGET DISCSRVC ONLINE NVME RPORT WWPN x23afd039ea359e4a WWNN x23aed039ea359e4a DID x0a1a02 TARGET DISCSRVC ONLINE NVME RPORT WWPN x22b9d039ea359e4a WWNN x22b8d039ea359e4a DID x0a1a0b TARGET DISCSRVC ONLINE NVME RPORT WWPN x2360d039ea359e4a WWNN x234ed039ea359e4a DID x0a1a11 TARGET DISCSRVC ONLINE NVME Statistics LS: Xmt 0000004ea0 Cmpl 0000004ea0 Abort 00000000 LS XMIT: Err 00000000 CMPL: xb 00000000 Err 00000000 Total FCP Cmpl 0000000000102c35 Issue 0000000000102c2d OutIO fffffffffffffff8 abort 00000175 noxri 00000000 nondlp 0000021d qdepth 00000000 wqerr 00000007 err 00000000 FCP CMPL: xb 00000175 Err 0000058b NVME Initiator Enabled XRI Dist lpfc1 Total 6144 IO 5894 ELS 250 NVME LPORT lpfc1 WWPN x10000090fae0ec89 WWNN x20000090fae0ec89 DID x0a1200 ONLINE NVME RPORT WWPN x23b2d039ea359e4a WWNN x23aed039ea359e4a DID x0a1d01 TARGET DISCSRVC ONLINE NVME RPORT WWPN x22bcd039ea359e4a WWNN x22b8d039ea359e4a DID x0a1d0b TARGET DISCSRVC ONLINE NVME RPORT WWPN x2363d039ea359e4a WWNN x234ed039ea359e4a DID x0a1d10 TARGET DISCSRVC ONLINE NVME RPORT WWPN x23b0d039ea359e4a WWNN x23aed039ea359e4a DID x0a1b02 TARGET DISCSRVC ONLINE NVME RPORT WWPN x22bad039ea359e4a WWNN x22b8d039ea359e4a DID x0a1b0b TARGET DISCSRVC ONLINE NVME RPORT WWPN x2361d039ea359e4a WWNN x234ed039ea359e4a DID x0a1b11 TARGET DISCSRVC ONLINE NVME Statistics LS: Xmt 0000004e31 Cmpl 0000004e31 Abort 00000000 LS XMIT: Err 00000000 CMPL: xb 00000000 Err 00000000 Total FCP Cmpl 00000000001017f2 Issue 00000000001017ef OutIO fffffffffffffffd abort 0000018a noxri 00000000 nondlp 0000012e qdepth 00000000 wqerr 00000004 err 00000000 FCP CMPL: xb 0000018a Err 000005ca
為 Marvell/QLogic 介面卡設定 NVMe / FC 。
- 
確認您執行的是支援的介面卡驅動程式和韌體版本: cat /sys/class/fc_host/host*/symbolic_name以下範例顯示了驅動程式和韌體版本: QLE2742 FW:v9.14.00 DVR:v10.02.09.400-k-debug QLE2742 FW:v9.14.00 DVR:v10.02.09.400-k-debug 
- 
請確認 ql2xnvmeenable已設定。這可讓 Marvell 介面卡作為 NVMe / FC 啟動器運作:cat /sys/module/qla2xxx/parameters/ql2xnvmeenable預期輸出為 1 。 
步驟 4:可選,啟用 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
步驟 5:驗證 NVMe 啟動服務
使用 SUSE Linux Enterprise Server 15 SP7, `nvmefc-boot-connections.service`和 `nvmf-autoconnect.service`NVMe/FC 中包含的啟動服務 `nvme-cli`軟體包將在系統啟動時自動啟用。系統啟動完成後,驗證啟動服務是否已啟用。
- 
確認 `nvmf-autoconnect.service`已啟用: systemctl status nvmf-autoconnect.service顯示範例輸出nvmf-autoconnect.service - Connect NVMe-oF subsystems automatically during boot Loaded: loaded (/usr/lib/systemd/system/nvmf-autoconnect.service; enabled; preset: enabled) Active: inactive (dead) since Fri 2025-07-04 23:56:38 IST; 4 days ago Main PID: 12208 (code=exited, status=0/SUCCESS) CPU: 62ms Jul 04 23:56:26 localhost systemd[1]: Starting Connect NVMe-oF subsystems automatically during boot... Jul 04 23:56:38 localhost systemd[1]: nvmf-autoconnect.service: Deactivated successfully. Jul 04 23:56:38 localhost systemd[1]: Finished Connect NVMe-oF subsystems automatically during boot.
- 
確認 `nvmefc-boot-connections.service`已啟用: systemctl status nvmefc-boot-connections.service顯示範例輸出nvmefc-boot-connections.service - Auto-connect to subsystems on FC-NVME devices found during boot Loaded: loaded (/usr/lib/systemd/system/nvmefc-boot-connections.service; enabled; preset: enabled) Active: inactive (dead) since Mon 2025-07-07 19:52:30 IST; 1 day 4h ago Main PID: 2945 (code=exited, status=0/SUCCESS) CPU: 14ms Jul 07 19:52:30 HP-DL360-14-168 systemd[1]: Starting Auto-connect to subsystems on FC-NVME devices found during boot... Jul 07 19:52:30 HP-DL360-14-168 systemd[1]: nvmefc-boot-connections.service: Deactivated successfully. Jul 07 19:52:30 HP-DL360-14-168 systemd[1]: Finished Auto-connect to subsystems on FC-NVME devices found during boot.
步驟 6:設定 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.111.80 -a 192.168.111.70 Discovery Log Number of Records 8, Generation counter 42 =====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.f8e2af201b7211f0ac2bd039eab67a95:discovery traddr: 192.168.211.71 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: 3 trsvcid: 8009 subnqn: nqn.1992-08.com.netapp:sn.f8e2af201b7211f0ac2bd039eab67a95:discovery traddr: 192.168.111.71 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: 2 trsvcid: 8009 subnqn: nqn.1992-08.com.netapp:sn.f8e2af201b7211f0ac2bd039eab67a95:discovery traddr: 192.168.211.70 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.f8e2af201b7211f0ac2bd039eab67a95:discovery traddr: 192.168.111.70 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.f8e2af201b7211f0ac2bd039eab67a95:subsystem.sample_tcp_sub traddr: 192.168.211.71 eflags: none sectype: none =====Discovery Log Entry 5====== trtype: tcp adrfam: ipv4 subtype: nvme subsystem treq: not specified portid: 3 trsvcid: 4420 subnqn: nqn.1992-08.com.netapp:sn.f8e2af201b7211f0ac2bd039eab67a95:subsystem.sample_tcp_sub traddr: 192.168.111.71 eflags: none sectype: none =====Discovery Log Entry 6====== trtype: tcp adrfam: ipv4 subtype: nvme subsystem treq: not specified portid: 2 trsvcid: 4420 subnqn: nqn.1992-08.com.netapp:sn.f8e2af201b7211f0ac2bd039eab67a95:subsystem.sample_tcp_sub traddr: 192.168.211.70 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.f8e2af201b7211f0ac2bd039eab67a95:subsystem.sample_tcp_sub traddr: 192.168.111.70 eflags: none sectype: none localhost:~ # 
- 
確認所有其他的 NVMe / TCP 啟動器目標 LIF 組合都能成功擷取探索記錄頁面資料: nvme discover -t tcp -w <host-traddr> -a <traddr> 顯示範例nvme discover -t tcp -w 192.168.111.80 -a 192.168.111.66 nvme discover -t tcp -w 192.168.111.80 -a 192.168.111.67 nvme discover -t tcp -w 192.168.211.80 -a 192.168.211.66 nvme discover -t tcp -w 192.168.211.80 -a 192.168.211.67 
- 
執行 nvme connect-all跨所有節點支援的 NVMe / TCP 啟動器目標生命體執行命令:nvme connect-all -t tcp -w <host-traddr> -a <traddr> 顯示範例nvme connect-all -t tcp -w 192.168.111.80 -a 192.168.111.66 nvme connect-all -t tcp -w 192.168.111.80 -a 192.168.111.67 nvme connect-all -t tcp -w 192.168.211.80 -a 192.168.211.66 nvme connect-all -t tcp -w 192.168.211.80 -a 192.168.211.67 
|  | 從 SUSE Linux Enterprise Server 15 SP6 開始,NVMe/TCP 的預設設定 ctrl-loss-tmo`超時已關閉。這意味著重試次數沒有限制(無限重試),並且您不需要手動配置特定的 `ctrl-loss-tmo`使用時的超時持續時間 `nvme connect`或者 `nvme connect-all`命令(選項 `-l)。此外,NVMe/TCP 控制器在發生路徑故障時不會逾時,並會無限期地保持連線。 | 
步驟 7:驗證 NVMe-oF
驗證核心內建 NVMe 多重路徑狀態, ANA 狀態和 ONTAP 命名空間是否適用於 NVMe 組態。
- 
確認已啟用核心內建 NVMe 多重路徑: cat /sys/module/nvme_core/parameters/multipath您應該會看到下列輸出: Y 
- 
驗證個別 ONTAP 命名空間的適當 NVMe 設定(例如、模型設定為 NetApp ONTAP 控制器、負載平衡 iopolicing 設定為循環)是否正確反映在主機上: - 
顯示子系統: 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/nvme4n1 81Ix2BVuekWcAAAAAAAB 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/nvme4n5 顯示範例輸出nvme-subsys114 - NQN=nqn.1992-08.com.netapp:sn.9e30b9760a4911f08c87d039eab67a95:subsystem.sles_161_27 hostnqn=nqn.2014-08.org.nvmexpress:uuid:f6517cae-3133-11e8-bbff-7ed30aef123f iopolicy=round-robin\ +- nvme114 fc traddr=nn-0x234ed039ea359e4a:pn-0x2360d039ea359e4a,host_traddr=nn-0x20000090fae0ec88:pn-0x10000090fae0ec88 live optimized +- nvme115 fc traddr=nn-0x234ed039ea359e4a:pn-0x2362d039ea359e4a,host_traddr=nn-0x20000090fae0ec88:pn-0x10000090fae0ec88 live non-optimized +- nvme116 fc traddr=nn-0x234ed039ea359e4a:pn-0x2361d039ea359e4a,host_traddr=nn-0x20000090fae0ec89:pn-0x10000090fae0ec89 live optimized +- nvme117 fc traddr=nn-0x234ed039ea359e4a:pn-0x2363d039ea359e4a,host_traddr=nn-0x20000090fae0ec89:pn-0x10000090fae0ec89 live non-optimizedNVMe / TCPnvme list-subsys /dev/nvme9n1 顯示範例輸出nvme-subsys9 - NQN=nqn.1992-08.com.netapp:sn.f8e2af201b7211f0ac2bd039eab67a95:subsystem.with_inband_with_json hostnqn=nqn.2014-08.org.nvmexpress:uuid:4c4c4544-0035-5910-804b-b2c04f444d33 iopolicy=round-robin \ +- nvme10 tcp traddr=192.168.111.71,trsvcid=4420,src_addr=192.168.111.80 live non-optimized +- nvme11 tcp traddr=192.168.211.70,trsvcid=4420,src_addr=192.168.211.80 live optimized +- nvme12 tcp traddr=192.168.111.70,trsvcid=4420,src_addr=192.168.111.80 live optimized +- nvme9 tcp traddr=192.168.211.71,trsvcid=4420,src_addr=192.168.211.80 live non-optimized 
- 
驗證NetApp外掛程式是否顯示每ONTAP 個版本名稱空間裝置的正確值: 
nvme netapp ontapdevices -o column顯示範例
Device Vserver Namespace Path NSID UUID Size ---------------- ------------------------- -------------------------------------------------- ---- -------------------------------------- --------- /dev/nvme0n1 vs_161 /vol/fc_nvme_vol1/fc_nvme_ns1 1 32fd92c7-0797-428e-a577-fdb3f14d0dc3 5.37GB
nvme netapp ontapdevices -o json顯示範例
{
      "Device":"/dev/nvme98n2",
      "Vserver":"vs_161",
      "Namespace_Path":"/vol/fc_nvme_vol71/fc_nvme_ns71",
      "NSID":2,
      "UUID":"39d634c4-a75e-4fbd-ab00-3f9355a26e43",
      "LBA_Size":4096,
      "Namespace_Size":5368709120,
      "UsedBytes":430649344,
    }
  ]
}
步驟 8:建立持久發現控制器
從ONTAP 9.11.1 開始,您可以為 SUSE Linux Enterprise Server 15 SP7 主機建立持久性發現控制器 (PDC)。需要 PDC 來自動偵測 NVMe 子系統的新增或刪除操作以及發現日誌頁面資料的變更。
- 
確認探索記錄頁面資料可用、並可透過啟動器連接埠和目標 LIF 組合擷取: nvme discover -t <trtype> -w <host-traddr> -a <traddr>顯示範例輸出Discovery Log Number of Records 8, Generation counter 18 =====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.4f7af2bd221811f0afadd039eab0dadd:discovery traddr: 192.168.111.66 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.4f7af2bd221811f0afadd039eab0dadd:discovery traddr: 192.168.211.66 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.4f7af2bd221811f0afadd039eab0dadd:discovery traddr: 192.168.111.67 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.4f7af2bd221811f0afadd039eab0dadd:discovery traddr: 192.168.211.67 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.4f7af2bd221811f0afadd039eab0dadd:subsystem.pdc traddr: 192.168.111.66 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.4f7af2bd221811f0afadd039eab0dadd:subsystem.pdc traddr: 192.168.211.66 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.4f7af2bd221811f0afadd039eab0dadd:subsystem.pdc traddr: 192.168.111.67 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.4f7af2bd221811f0afadd039eab0dadd:subsystem.pdc traddr: 192.168.211.67 eflags: none sectype: none 
- 
建立探索子系統的 PDC : nvme discover -t <trtype> -w <host-traddr> -a <traddr> -p您應該會看到下列輸出: nvme discover -t tcp -w 192.168.111.80 -a 192.168.111.66 -p 
- 
從 ONTAP 控制器、確認已建立 PDC : vserver nvme show-discovery-controller -instance -vserver <vserver_name>顯示範例輸出vserver nvme show-discovery-controller -instance -vserver vs_pdc Vserver Name: vs_pdc Controller ID: 0101h Discovery Subsystem NQN: nqn.1992-08.com.netapp:sn.4f7af2bd221811f0afadd039eab0dadd:discovery Logical Interface: lif2 Node: A400-12-181 Host NQN: nqn.2014-08.org.nvmexpress:uuid:9796c1ec-0d34-11eb-b6b2-3a68dd3bab57 Transport Protocol: nvme-tcp Initiator Transport Address: 192.168.111.80 Transport Service Identifier: 8009 Host Identifier: 9796c1ec0d3411ebb6b23a68dd3bab57 Admin Queue Depth: 32 Header Digest Enabled: false Data Digest Enabled: false Keep-Alive Timeout (msec): 30000
步驟 9:設定安全帶內身份驗證
從 ONTAP 9.12.1 開始,主機和 ONTAP 控制器之間透過 NVMe/TCP 和 NVMe/FC 支援安全帶內身份驗證。
若要設定安全驗證、每個主機或控制器都必須與相關聯 DH-HMAC-CHAP 金鑰、這是 NVMe 主機或控制器的 NQN 組合、以及管理員設定的驗證密碼。若要驗證其對等端點、 NVMe 主機或控制器必須識別與對等端點相關的金鑰。
您可以使用 CLI 或組態 JSON 檔案來設定安全的頻內驗證。如果您需要為不同的子系統指定不同的 dhchap 金鑰、則必須使用組態 JSON 檔案。
使用 CLI 設定安全的頻內驗證。
- 
取得主機 NQN : cat /etc/nvme/hostnqn
- 
為主機產生 dhchap 金鑰。 下列輸出說明 `gen-dhchap-key`命令參數: nvme gen-dhchap-key -s optional_secret -l key_length {32|48|64} -m HMAC_function {0|1|2|3} -n host_nqn • -s secret key in hexadecimal characters to be used to initialize the host key • -l length of the resulting key in bytes • -m HMAC function to use for key transformation 0 = none, 1- SHA-256, 2 = SHA-384, 3=SHA-512 • -n host NQN to use for key transformation在下列範例中、會產生一個隨機的 dhchap 金鑰、其中 HMAC 設為 3 ( SHA-512 )。 nvme gen-dhchap-key -m 3 -n nqn.2014-08.org.nvmexpress:uuid:e6dade64-216d-11ec-b7bb-7ed30a5482c3 DHHC-1:03:1CFivw9ccz58gAcOUJrM7Vs98hd2ZHSr+iw+Amg6xZPl5D2Yk+HDTZiUAg1iGgxTYqnxukqvYedA55Bw3wtz6sJNpR4=: 
- 
在 ONTAP 控制器上、新增主機並指定兩個 dhchap 金鑰: vserver nvme subsystem host add -vserver <svm_name> -subsystem <subsystem> -host-nqn <host_nqn> -dhchap-host-secret <authentication_host_secret> -dhchap-controller-secret <authentication_controller_secret> -dhchap-hash-function {sha-256|sha-512} -dhchap-group {none|2048-bit|3072-bit|4096-bit|6144-bit|8192-bit}
- 
主機支援兩種驗證方法:單向和雙向。在主機上、連線至 ONTAP 控制器、並根據所選的驗證方法指定 dhchap 金鑰: nvme connect -t tcp -w <host-traddr> -a <tr-addr> -n <host_nqn> -S <authentication_host_secret> -C <authentication_controller_secret> 
- 
驗證 nvme connect authentication命令驗證主機和控制器 dhchap 金鑰:- 
驗證主機 dhchap 金鑰: cat /sys/class/nvme-subsystem/<nvme-subsysX>/nvme*/dhchap_secret顯示單向組態的輸出範例# cat /sys/class/nvme-subsystem/nvme-subsys1/nvme*/dhchap_secret DHHC-1:01:iM63E6cX7G5SOKKOju8gmzM53qywsy+C/YwtzxhIt9ZRz+ky: DHHC-1:01:iM63E6cX7G5SOKKOju8gmzM53qywsy+C/YwtzxhIt9ZRz+ky: DHHC-1:01:iM63E6cX7G5SOKKOju8gmzM53qywsy+C/YwtzxhIt9ZRz+ky: DHHC-1:01:iM63E6cX7G5SOKKOju8gmzM53qywsy+C/YwtzxhIt9ZRz+ky: 
- 
驗證控制器 dhchap 按鍵: cat /sys/class/nvme-subsystem/<nvme-subsysX>/nvme*/dhchap_ctrl_secret顯示雙向組態的輸出範例# cat /sys/class/nvme-subsystem/nvme-subsys6/nvme*/dhchap_ctrl_secret DHHC-1:03:1CFivw9ccz58gAcOUJrM7Vs98hd2ZHSr+iw+Amg6xZPl5D2Yk+HDTZiUAg1iGgxTYqnxukqvYedA55Bw3wtz6sJNpR4=: DHHC-1:03:1CFivw9ccz58gAcOUJrM7Vs98hd2ZHSr+iw+Amg6xZPl5D2Yk+HDTZiUAg1iGgxTYqnxukqvYedA55Bw3wtz6sJNpR4=: DHHC-1:03:1CFivw9ccz58gAcOUJrM7Vs98hd2ZHSr+iw+Amg6xZPl5D2Yk+HDTZiUAg1iGgxTYqnxukqvYedA55Bw3wtz6sJNpR4=: DHHC-1:03:1CFivw9ccz58gAcOUJrM7Vs98hd2ZHSr+iw+Amg6xZPl5D2Yk+HDTZiUAg1iGgxTYqnxukqvYedA55Bw3wtz6sJNpR4=: 
 
- 
當 ONTAP 控制器組態上有多個 NVMe 子系統可供使用時、您可以搭配命令使用該 /etc/nvme/config.json`檔案 `nvme connect-all。
若要產生 JSON 檔案,您可以使用 `-o`選項。如需更多語法選項,請參閱 NVMe Connect All 手冊頁。
- 
設定Json檔案: 顯示範例輸出# cat /etc/nvme/config.json [ { "hostnqn":"nqn.2014-08.org.nvmexpress:uuid:4c4c4544-0035-5910-804b-b2c04f444d33", "hostid":"4c4c4544-0035-5910-804b-b2c04f444d33", "dhchap_key":"DHHC-1:01:i4i789R11sMuHLCY27RVI8XloC\/GzjRwyhxip5hmIELsHrBq:", "subsystems":[ { "nqn":"nqn.1992-08.com.netapp:sn.f8e2af201b7211f0ac2bd039eab67a95:subsystem.sample_tcp_sub", "ports":[ { "transport":"tcp", "traddr":"192.168.111.70", "host_traddr":"192.168.111.80", "trsvcid":"4420" "dhchap_ctrl_key":"DHHC-1:03:jqgYcJSKp73+XqAf2X6twr9ngBpr2n0MGWbmZIZq4PieKZCoilKGef8lAvhYS0PNK7T+04YD5CRPjh+m3qjJU++yR8s=:" }, { "transport":"tcp", "traddr":"192.168.111.71", "host_traddr":"192.168.111.80", "trsvcid":"4420", "dhchap_ctrl_key":"DHHC-1:03:jqgYcJSKp73+XqAf2X6twr9ngBpr2n0MGWbmZIZq4PieKZCoilKGef8lAvhYS0PNK7T+04YD5CRPjh+m3qjJU++yR8s=:" }, { "transport":"tcp", "traddr":"192.168.211.70", "host_traddr":"192.168.211.80", "trsvcid":"4420", "dhchap_ctrl_key":"DHHC-1:03:jqgYcJSKp73+XqAf2X6twr9ngBpr2n0MGWbmZIZq4PieKZCoilKGef8lAvhYS0PNK7T+04YD5CRPjh+m3qjJU++yR8s=:" }, { "transport":"tcp", "traddr":"192.168.211.71", "host_traddr":"192.168.211.80", "trsvcid":"4420", "dhchap_ctrl_key":"DHHC-1:03:jqgYcJSKp73+XqAf2X6twr9ngBpr2n0MGWbmZIZq4PieKZCoilKGef8lAvhYS0PNK7T+04YD5CRPjh+m3qjJU++yR8s=:" } ] } ] } ]在上述範例中, dhchap_key`對應於 `dhchap_secret,並dhchap_ctrl_key`對應至 `dhchap_ctrl_secret。
- 
使用組態 JSON 檔案連線至 ONTAP 控制器: nvme connect-all -J /etc/nvme/config.json顯示範例輸出traddr=192.168.211.70 is already connected traddr=192.168.111.71 is already connected traddr=192.168.211.71 is already connected traddr=192.168.111.70 is already connected traddr=192.168.211.70 is already connected traddr=192.168.111.70 is already connected traddr=192.168.211.71 is already connected traddr=192.168.111.71 is already connected traddr=192.168.211.70 is already connected traddr=192.168.111.71 is already connected traddr=192.168.211.71 is already connected traddr=192.168.111.70 is already connected 
- 
確認已為每個子系統的個別控制器啟用 dhchap 機密: - 
驗證主機 dhchap 金鑰: cat /sys/class/nvme-subsystem/nvme-subsys0/nvme0/dhchap_secret您應該會看到下列輸出: DHHC-1:01:i4i789R11sMuHLCY27RVI8XloC/GzjRwyhxip5hmIELsHrBq: 
- 
驗證控制器 dhchap 按鍵: cat /sys/class/nvme-subsystem/nvme-subsys0/nvme0/dhchap_ctrl_secret您應該會看到下列輸出: 
 DHHC-1:03:jqgYcJSKp73+XqAf2X6twr9ngBpr2n0MGWbmZIZq4PieKZCoilKGef8lAvhYS0PNK7T+04YD5CRPjh+m3qjJU++yR8s=: 
- 
步驟 10:設定傳輸層安全性
傳輸層安全性( TLS )可為 NVMe 主機和 ONTAP 陣列之間的 NVMe 連線提供安全的端對端加密。從 ONTAP 9 。 16.1 開始,您可以使用 CLI 和設定的預先共用金鑰( PSK )來設定 TLS 1.3 。
您可以在 SUSE Linux Enterprise Server 主機上執行此程序中的步驟,除非它指定您在 ONTAP 控制器上執行某個步驟。
- 
檢查您是否具有以下內容 ktls-utils,openssl, 和 `libopenssl`主機上安裝的軟體包:- 
驗證 ktls-utils:rpm -qa | grep ktls您應該會看到顯示以下輸出: 
 ktls-utils-0.10+33.g311d943-150700.1.5.x86_64 - 
驗證 SSL 套件: rpm -qa | grep ssl顯示範例輸出libopenssl3-3.2.3-150700.3.20.x86_64 openssl-3-3.2.3-150700.3.20.x86_64 libopenssl1_1-1.1.1w-150700.9.37.x86_64 
 
- 
- 
請確認您的設定是否正確 /etc/tlshd.conf:cat /etc/tlshd.conf顯示範例輸出[debug] loglevel=0 tls=0 nl=0 [authenticate] keyrings=.nvme [authenticate.client] #x509.truststore= <pathname> #x509.certificate= <pathname> #x509.private_key= <pathname> [authenticate.server] #x509.truststore= <pathname> #x509.certificate= <pathname> #x509.private_key= <pathname> 
- 
啟用 `tlshd`以在系統開機時啟動: systemctl enable tlshd
- 
驗證守護程序是否 `tlshd`正在運行: systemctl status tlshd顯示範例輸出tlshd.service - Handshake service for kernel TLS consumers Loaded: loaded (/usr/lib/systemd/system/tlshd.service; enabled; preset: disabled) Active: active (running) since Wed 2024-08-21 15:46:53 IST; 4h 57min ago Docs: man:tlshd(8) Main PID: 961 (tlshd) Tasks: 1 CPU: 46ms CGroup: /system.slice/tlshd.service └─961 /usr/sbin/tlshd Aug 21 15:46:54 RX2530-M4-17-153 tlshd[961]: Built from ktls-utils 0.11-dev on Mar 21 2024 12:00:00
- 
使用產生 TLS PSK nvme gen-tls-key:- 
驗證主機: cat /etc/nvme/hostnqn您應該會看到下列輸出: nqn.2014-08.org.nvmexpress:uuid:4c4c4544-0035-5910-804b-b2c04f444d33 
- 
驗證金鑰: nvme gen-tls-key --hmac=1 --identity=1 --subsysnqn= nqn.1992-08.com.netapp:sn.a2d41235b78211efb57dd039eab67a95:subsystem.nvme1您應該會看到下列輸出: 
 NVMeTLSkey-1:01:C50EsaGtuOp8n5fGE9EuWjbBCtshmfoHx4XTqTJUmydf0gIj: 
- 
- 
在 ONTAP 控制器上,將 TLS PSK 新增至 ONTAP 子系統: 顯示範例輸出nvme subsystem host add -vserver vs_iscsi_tcp -subsystem nvme1 -host-nqn nqn.2014-08.org.nvmexpress:uuid:4c4c4544-0035-5910-804b-b2c04f444d33 -tls-configured-psk NVMeTLSkey-1:01:C50EsaGtuOp8n5fGE9EuWjbBCtshmfoHx4XTqTJUmydf0gIj: 
- 
將 TLS PSK 插入主機核心金鑰環: nvme check-tls-key --identity=1 --subsysnqn=nqn.1992-08.com.netapp:sn.a2d41235b78211efb57dd039eab67a95:subsystem.nvme1 --keydata=NVMeTLSkey-1:01:C50EsaGtuOp8n5fGE9EuWjbBCtshmfoHx4XTqTJUmydf0gIj: --insert您應該會看到以下 TLS 金鑰: Inserted TLS key 22152a7e PSK 顯示為 `NVMe1R01`因為它使用 `identity v1`來自 TLS 握手演算法。Identity v1 是 ONTAP 唯一支援的版本。 
- 
確認 TLS PSK 已正確插入: cat /proc/keys | grep NVMe顯示範例輸出069f56bb I--Q--- 5 perm 3b010000 0 0 psk NVMe1R01 nqn.2014-08.org.nvmexpress:uuid:4c4c4544-0035-5910-804b-b2c04f444d33 nqn.1992-08.com.netapp:sn.a2d41235b78211efb57dd039eab67a95:subsystem.nvme1 oYVLelmiOwnvDjXKBmrnIgGVpFIBDJtc4hmQXE/36Sw=: 32 
- 
使用插入的 TLS PSK 連線至 ONTAP 子系統: - 
驗證 TLS PSK: nvme connect -t tcp -w 192.168.111.80 -a 192.168.111.66 -n nqn.1992-08.com.netapp:sn.a2d41235b78211efb57dd039eab67a95:subsystem.nvme1 --tls_key=0x069f56bb –tls您應該會看到下列輸出: 
 connecting to device: nvme0 - 
驗證列表子系統: nvme list-subsys顯示範例輸出nvme-subsys0 - NQN=nqn.1992-08.com.netapp:sn.a2d41235b78211efb57dd039eab67a95:subsystem.nvme1 hostnqn=nqn.2014-08.org.nvmexpress:uuid:4c4c4544-0035-5910-804b-b2c04f444d33 \ +- nvme0 tcp traddr=192.168.111.66,trsvcid=4420,host_traddr=192.168.111.80,src_addr=192.168.111.80 live
 
- 
- 
新增目標,並驗證 TLS 連線至指定的 ONTAP 子系統: nvme subsystem controller show -vserver sles15_tls -subsystem sles15 -instance顯示範例輸出(vserver nvme subsystem controller show) Vserver Name: vs_iscsi_tcp Subsystem: nvme1 Controller ID: 0040h Logical Interface: tcpnvme_lif1_1 Node: A400-12-181 Host NQN: nqn.2014-08.org.nvmexpress:uuid:4c4c4544-0035-5910-804b-b2c04f444d33 Transport Protocol: nvme-tcp Initiator Transport Address: 192.168.111.80 Host Identifier: 4c4c454400355910804bb2c04f444d33 Number of I/O Queues: 2 I/O Queue Depths: 128, 128 Admin Queue Depth: 32 Max I/O Size in Bytes: 1048576 Keep-Alive Timeout (msec): 5000 Subsystem UUID: 8bbfb403-1602-11f0-ac2b-d039eab67a95 Header Digest Enabled: false Data Digest Enabled: false Authentication Hash Function: sha-256 Authentication Diffie-Hellman Group: 3072-bit Authentication Mode: unidirectional Transport Service Identifier: 4420 TLS Key Type: configured TLS PSK Identity: NVMe1R01 nqn.2014-08.org.nvmexpress:uuid:4c4c4544-0035-5910-804b-b2c04f444d33 nqn.1992-08.com.netapp:sn.a2d41235b78211efb57dd039eab67a95:subsystem.nvme1 oYVLelmiOwnvDjXKBmrnIgGVpFIBDJtc4hmQXE/36Sw= TLS Cipher: TLS-AES-128-GCM-SHA256
步驟 11 :檢閱已知問題
沒有已知問題。
 PDF
PDF