Skip to main content
ONTAP SAN Host Utilities
Die deutsche Sprachversion wurde als Serviceleistung für Sie durch maschinelle Übersetzung erstellt. Bei eventuellen Unstimmigkeiten hat die englische Sprachversion Vorrang.

Konfigurieren Sie SUSE Linux Enterprise Server 15 SPx für NVMe-oF mit ONTAP Speicher

Beitragende netapp-sarajane

Der SUSE Linux Enterprise Server 15 SPx Host unterstützt die NVMe over Fibre Channel (NVMe/FC) und NVMe over TCP (NVMe/TCP) Protokolle mit Asymmetric Namespace Access (ANA). ANA bietet Multipathing-Funktionalität, die der Asymmetric Logical Unit Access (ALUA) in iSCSI- und FCP-Umgebungen entspricht.

Erfahren Sie, wie Sie NVMe over Fabrics (NVMe-oF)-Hosts für SUSE Linux Enterprise Server 15 SPx konfigurieren. Weitere Informationen zu Support und Funktionen finden Sie unter "ONTAP Support und -Funktionen"Die

NVMe-oF mit SUSE Linux Enterprise Server 15 SPx weist folgende bekannte Einschränkungen auf:

  • Der nvme disconnect-all Dieser Befehl trennt sowohl das Root- als auch das Datendateisystem und kann zu Systeminstabilität führen. Diese Meldung sollte nicht auf Systemen ausgegeben werden, die von SAN über NVMe-TCP- oder NVMe-FC-Namespaces booten.

  • Die Unterstützung für das NetApp sanlun Host-Dienstprogramm ist für NVMe-oF nicht verfügbar. Stattdessen können Sie auf das im nativen Paket enthaltene NetApp -Plug-in zurückgreifen. nvme-cli Paket für alle NVMe-oF-Transporte.

  • Bei SUSE Linux Enterprise Server 15 SP6 und älteren Versionen wird das Booten von SAN über das NVMe-oF-Protokoll nicht unterstützt.

Schritt 1: Aktivieren Sie optional den SAN-Bootvorgang

Sie können Ihren Host für die Verwendung von SAN-Boot konfigurieren, um die Bereitstellung zu vereinfachen und die Skalierbarkeit zu verbessern. Verwenden Sie die"Interoperabilitäts-Matrix-Tool" um zu überprüfen, ob Ihr Linux-Betriebssystem, Ihr Hostbusadapter (HBA), Ihre HBA-Firmware, Ihr HBA-Boot-BIOS und ONTAP -Version das SAN-Booten unterstützen.

Schritte
  1. "Erstellen Sie einen NVMe-Namespace und ordnen Sie ihn dem Host zu" .

  2. Aktivieren Sie das SAN-Booten im Server-BIOS für die Ports, denen der SAN-Boot-Namespace zugeordnet ist.

    Informationen zum Aktivieren des HBA-BIOS finden Sie in der anbieterspezifischen Dokumentation.

  3. Starten Sie den Host neu und überprüfen Sie, ob das Betriebssystem läuft.

Schritt 2: Installieren Sie SUSE Linux Enterprise Server und NVMe-Software und überprüfen Sie Ihre Konfiguration

Um Ihren Host für NVMe-oF zu konfigurieren, müssen Sie die Host- und NVMe-Softwarepakete installieren, Multipathing aktivieren und Ihre Host-NQN-Konfiguration überprüfen.

Schritte
  1. Installieren Sie SUSE Linux Enterprise Server 15 SPx auf dem Server. Nach Abschluss der Installation überprüfen Sie, ob Sie den angegebenen SUSE Linux Enterprise Server 15 SPx-Kernel ausführen:

    uname -r

    Beispiel einer Rocky Linux-Kernelversion:

    6.4.0-150700.53.3-default
  2. Installieren Sie den nvme-cli Paket:

    rpm -qa|grep nvme-cli

    Das folgende Beispiel zeigt eine nvme-cli Paketversion:

    nvme-cli-2.11+22.gd31b1a01-150700.3.3.2.x86_64
  3. Installieren Sie den libnvme Paket:

    rpm -qa|grep libnvme

    Das folgende Beispiel zeigt eine libnvme Paketversion:

    libnvme1-1.11+4.ge68a91ae-150700.4.3.2.x86_64
  4. Überprüfen Sie auf dem Host die Hostnqn-Zeichenfolge unter /etc/nvme/hostnqn :

    cat /etc/nvme/hostnqn

    Das folgende Beispiel zeigt eine hostnqn Version:

    nqn.2014-08.org.nvmexpress:uuid:f6517cae-3133-11e8-bbff-7ed30aef123f
  5. Überprüfen Sie im ONTAP System, ob hostnqn Die Zeichenkette stimmt mit der hostnqn Zeichenkette für das entsprechende Subsystem im ONTAP Array:

    ::> vserver nvme subsystem host show -vserver vs_coexistence_LPE36002
    Beispiel anzeigen
    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.
    Hinweis Wenn der hostnqn Zeichenfolgen stimmen nicht überein. Verwenden Sie die vserver modify Befehl zum Aktualisieren des hostnqn Zeichenfolge auf dem entsprechenden ONTAP-Array-Subsystem, die dem entspricht hostnqn Zeichenfolge von /etc/nvme/hostnqn Auf dem Host.

Schritt 3: Konfigurieren Sie NVMe/FC und NVMe/TCP

Konfigurieren Sie NVMe/FC mit Broadcom/Emulex- oder Marvell/QLogic-Adaptern oder konfigurieren Sie NVMe/TCP mithilfe manueller Erkennungs- und Verbindungsvorgänge.

NVMe/FC - Broadcom/Emulex

Konfigurieren Sie NVMe/FC für einen Broadcom/Emulex FC-Adapter.

  1. Stellen Sie sicher, dass Sie das unterstützte Adaptermodell verwenden:

    1. Zeigen Sie die Modellnamen an:

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

      Die folgende Ausgabe sollte angezeigt werden:

      LPe36002-M64
      LPe36002-M64
    2. Zeigen Sie die Modellbeschreibungen an:

      cat /sys/class/scsi_host/host*/modeldesc

      Die folgende Ausgabe sollte angezeigt werden:

    Emulex LightPulse LPe36002-M64 2-Port 64Gb Fibre Channel Adapter
    Emulex LightPulse LPe36002-M64 2-Port 64Gb Fibre Channel Adapter
  2. Vergewissern Sie sich, dass Sie das empfohlene Broadcom verwenden lpfc Firmware und Inbox-Treiber:

    1. Anzeige der Firmware-Version:

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

      Das folgende Beispiel zeigt Firmware-Versionen:

      14.4.393.25, sli-4:2:c
      14.4.393.25, sli-4:2:c
    2. Zeigen Sie die Posteingangstreiberversion an:

      cat /sys/module/lpfc/version

      Das folgende Beispiel zeigt eine Treiberversion:

      0:14.4.0.8

    Die aktuelle Liste der unterstützten Adaptertreiber- und Firmware-Versionen finden Sie im "Interoperabilitäts-Matrix-Tool".

  3. Stellen Sie sicher, dass die erwartete Ausgabe von lpfc_enable_fc4_type auf eingestellt ist 3:

    cat /sys/module/lpfc/parameters/lpfc_enable_fc4_type
  4. Vergewissern Sie sich, dass Sie Ihre Initiator-Ports anzeigen können:

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

    Sie sollten eine Ausgabe ähnlich der folgenden sehen:

    0x10000090fae0ec88
    0x10000090fae0ec89
  5. Überprüfen Sie, ob Ihre Initiator-Ports online sind:

    cat /sys/class/fc_host/host*/port_state

    Die folgende Ausgabe sollte angezeigt werden:

    Online
    Online
  6. Vergewissern Sie sich, dass die NVMe/FC-Initiator-Ports aktiviert sind und die Ziel-Ports sichtbar sind:

    cat /sys/class/scsi_host/host*/nvme_info
    Beispielausgabe anzeigen
    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
NVMe/FC - Marvell/QLogic

Konfigurieren Sie NVMe/FC für einen Marvell/QLogic-Adapter.

  1. Vergewissern Sie sich, dass der unterstützte Adaptertreiber und die unterstützten Firmware-Versionen ausgeführt werden:

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

    Das folgende Beispiel zeigt Treiber- und Firmware-Versionen:

    QLE2742 FW:v9.14.00 DVR:v10.02.09.400-k-debug
    QLE2742 FW:v9.14.00 DVR:v10.02.09.400-k-debug
  2. Verifizieren Sie das ql2xnvmeenable Ist festgelegt. Dadurch kann der Marvell Adapter als NVMe/FC-Initiator verwendet werden:

    cat /sys/module/qla2xxx/parameters/ql2xnvmeenable

    Die erwartete Ausgabe ist 1.

NVMe/TCP

Das NVMe/TCP-Protokoll unterstützt den automatischen Verbindungsvorgang nicht. Stattdessen können Sie die NVMe/TCP-Subsysteme und Namespaces ermitteln, indem Sie den NVMe/TCP connect oder connect-all Vorgänge manuell ausführen.

  1. Vergewissern Sie sich, dass der Initiator-Port die Daten der Erkennungsprotokollseite über die unterstützten NVMe/TCP-LIFs abrufen kann:

    nvme discover -t tcp -w <host-traddr> -a <traddr>
    Beispielausgabe anzeigen
    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:~ #
  2. Vergewissern Sie sich, dass alle anderen LIF-Kombinationen aus NVMe/TCP-Initiator und Ziel erfolgreich Daten der Erkennungsprotokollseite abrufen können:

    nvme discover -t tcp -w <host-traddr> -a <traddr>
    Beispiel anzeigen
    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
  3. Führen Sie die aus nvme connect-all Befehl über alle unterstützten NVMe/TCP Initiator-Ziel-LIFs der Nodes hinweg:

    nvme connect-all -t tcp -w <host-traddr> -a <traddr>
    Beispiel anzeigen
    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

Ab SUSE Linux Enterprise Server 15 SP6 ist die Einstellung für NVMe/TCP ctrl_loss_tmo timeout ist automatisch auf „Aus“ eingestellt. Infolge:

  • Es gibt keine Begrenzung für die Anzahl der Wiederholungsversuche (unbegrenzte Wiederholung).

  • Sie müssen kein bestimmtes ctrl_loss_tmo timeout Dauer bei Verwendung des nvme connect oder nvme connect-all Befehle (Option -l ).

  • Bei den NVMe/TCP-Controllern kommt es im Falle eines Pfadausfalls nicht zu Timeouts und die Verbindung bleibt unbegrenzt bestehen.

Schritt 4: Optional können Sie die iopolicy in den udev-Regeln ändern.

Ab SUSE Linux Enterprise Server 15 SP6 ist die Standard-IO-Richtlinie für NVMe-oF auf Folgendes eingestellt: `round-robin`Die Wenn Sie die iopolicy ändern möchten `queue-depth`Ändern Sie die udev-Regeldatei wie folgt:

Schritte
  1. Öffnen Sie die Udev-Regeldatei in einem Texteditor mit Root-Rechten:

    /usr/lib/udev/rules.d/71-nvmf-netapp.rules

    Die folgende Ausgabe sollte angezeigt werden:

    vi /usr/lib/udev/rules.d/71-nvmf-netapp.rules
  2. Suchen Sie die Zeile, die die iopolicy für den NetApp ONTAP Controller festlegt, wie im folgenden Beispiel gezeigt:

    ACTION=="add", SUBSYSTEM=="nvme-subsystem", ATTR{subsystype}=="nvm", ATTR{model}=="NetApp ONTAP Controller", ATTR{iopolicy}="round-robin"
  3. Ändern Sie die Regel so, dass round-robin wird queue-depth :

    ACTION=="add", SUBSYSTEM=="nvme-subsystem", ATTR{subsystype}=="nvm", ATTR{model}=="NetApp ONTAP Controller", ATTR{iopolicy}="queue-depth"
  4. Laden Sie die udev-Regeln neu und wenden Sie die Änderungen an:

    udevadm control --reload
    udevadm trigger --subsystem-match=nvme-subsystem
  5. Überprüfen Sie die aktuelle E/A-Richtlinie für Ihr Subsystem. Ersetzen Sie beispielsweise <subsystem>, nvme-subsys0 Die

    cat /sys/class/nvme-subsystem/<subsystem>/iopolicy

    Die folgende Ausgabe sollte angezeigt werden:

    queue-depth.
Hinweis Die neue iopolicy wird automatisch auf passende NetApp ONTAP Controller-Geräte angewendet. Ein Neustart ist nicht erforderlich.

Schritt 5: Optional: Aktivieren Sie 1 MB I/O für NVMe/FC.

ONTAP meldet in den Identify Controller-Daten eine maximale Datenübertragungsgröße (MDTS) von 8. Dies bedeutet, dass die maximale E/A-Anforderungsgröße bis zu 1 MB betragen kann. Um E/A-Anfragen der Größe 1 MB für einen Broadcom NVMe/FC-Host auszugeben, sollten Sie die lpfc Wert des lpfc_sg_seg_cnt Parameter vom Standardwert 64 auf 256.

Hinweis Diese Schritte gelten nicht für Qlogic NVMe/FC-Hosts.
Schritte
  1. Setzen Sie den lpfc_sg_seg_cnt Parameter auf 256:

    cat /etc/modprobe.d/lpfc.conf

    Sie sollten eine Ausgabe ähnlich dem folgenden Beispiel sehen:

    options lpfc lpfc_sg_seg_cnt=256
  2. Führen Sie den Befehl aus dracut -f, und starten Sie den Host neu.

  3. Stellen Sie sicher, dass der Wert für lpfc_sg_seg_cnt 256 lautet:

    cat /sys/module/lpfc/parameters/lpfc_sg_seg_cnt

Schritt 6: NVMe-Bootdienste überprüfen

Der nvmefc-boot-connections.service Und nvmf-autoconnect.service In NVMe/FC enthaltene Boot-Dienste nvme-cli Paket werden beim Systemstart automatisch aktiviert.

Überprüfen Sie nach dem Booten, ob die nvmefc-boot-connections.service Und nvmf-autoconnect.service Boot-Dienste sind aktiviert.

Schritte
  1. Vergewissern Sie sich, dass nvmf-autoconnect.service aktiviert ist:

    systemctl status nvmf-autoconnect.service
    Beispielausgabe anzeigen
    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.
  2. Vergewissern Sie sich, dass nvmefc-boot-connections.service aktiviert ist:

    systemctl status nvmefc-boot-connections.service
    Beispielausgabe anzeigen
    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.

Schritt 7: Überprüfen Sie die Multipathing-Konfiguration

Vergewissern Sie sich, dass der in-Kernel-Multipath-Status, der ANA-Status und die ONTAP-Namespaces für die NVMe-of-Konfiguration richtig sind.

Schritte
  1. Vergewissern Sie sich, dass das in-Kernel NVMe Multipath aktiviert ist:

    cat /sys/module/nvme_core/parameters/multipath

    Die folgende Ausgabe sollte angezeigt werden:

    Y
  2. Überprüfen Sie, ob die entsprechenden NVMe-oF-Einstellungen (z. B. Modell auf NetApp ONTAP Controller und Load-Balancing-IOPolicy auf Warteschlangentiefe eingestellt) für die jeweiligen ONTAP Namespaces korrekt auf dem Host abgebildet werden:

    1. Zeigen Sie die Subsysteme an:

      cat /sys/class/nvme-subsystem/nvme-subsys*/model

      Die folgende Ausgabe sollte angezeigt werden:

      NetApp ONTAP Controller
      NetApp ONTAP Controller
    2. Zeigen Sie die Richtlinie an:

      cat /sys/class/nvme-subsystem/nvme-subsys*/iopolicy

      Die folgende Ausgabe sollte angezeigt werden:

    queue-depth
    queue-depth
  3. Überprüfen Sie, ob die Namespaces auf dem Host erstellt und richtig erkannt wurden:

    nvme list
    Beispiel anzeigen
    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
  4. Überprüfen Sie, ob der Controller-Status jedes Pfads aktiv ist und den korrekten ANA-Status aufweist:

    NVMe/FC
    nvme list-subsys /dev/nvme4n5
    Beispielausgabe anzeigen
    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-optimized
    NVMe/TCP
    nvme list-subsys /dev/nvme9n1
    Beispielausgabe anzeigen
    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
  5. Vergewissern Sie sich, dass das NetApp Plug-in für jedes ONTAP Namespace-Gerät die richtigen Werte anzeigt:

Spalte
nvme netapp ontapdevices -o column
Beispiel anzeigen
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
JSON
nvme netapp ontapdevices -o json
Beispiel anzeigen
{
      "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,
    }
  ]
}

Schritt 8: Erstellen eines persistenten Discovery-Controllers

Sie können einen persistenten Discovery Controller (PDC) für einen SUSE Linux Enterprise Server 15 SPx-Host erstellen. Ein PDC ist erforderlich, um automatisch eine Hinzufügungs- oder Entfernungsoperation des NVMe-Subsystems sowie Änderungen an den Daten der Discovery-Log-Seite zu erkennen.

Schritte
  1. Überprüfen Sie, ob die Daten der Erkennungsprotokollseite verfügbar sind und über den Initiator-Port und die Ziel-LIF-Kombination abgerufen werden können:

    nvme discover -t <trtype> -w <host-traddr> -a <traddr>
    Beispielausgabe anzeigen
    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
  2. Erstellen Sie ein PDC für das Erkennungs-Subsystem:

    nvme discover -t <trtype> -w <host-traddr> -a <traddr> -p

    Die folgende Ausgabe sollte angezeigt werden:

    nvme discover -t tcp -w 192.168.111.80 -a 192.168.111.66 -p
  3. Überprüfen Sie vom ONTAP-Controller aus, ob das PDC erstellt wurde:

    vserver nvme show-discovery-controller -instance -vserver <vserver_name>
    Beispielausgabe anzeigen
    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

Schritt 9: Einrichten einer sicheren In-Band-Authentifizierung

Eine sichere In-Band-Authentifizierung wird über NVMe/TCP zwischen einem SUSE Linux Enterprise Server 15 SPx-Host und einem ONTAP Controller unterstützt.

Jeder Host oder Controller muss einem zugeordnet sein. DH-HMAC-CHAP Schlüssel zur Einrichtung einer sicheren Authentifizierung. Ein DH-HMAC-CHAP-Schlüssel ist eine Kombination aus dem NQN des NVMe-Hosts oder -Controllers und einem vom Administrator konfigurierten Authentifizierungsgeheimnis. Zur Authentifizierung seines Gegenübers muss ein NVMe-Host oder -Controller den zum Gegenüber gehörenden Schlüssel erkennen.

Richten Sie eine sichere In-Band-Authentifizierung mithilfe der CLI oder einer JSON-Konfigurationsdatei ein. Wenn Sie unterschiedliche dhchap-Schlüssel für verschiedene Subsysteme angeben müssen, müssen Sie eine Konfigurations-JSON-Datei verwenden.

CLI

Richten Sie die sichere bandinterne Authentifizierung über die CLI ein.

  1. Rufen Sie die Host-NQN ab:

    cat /etc/nvme/hostnqn
  2. Generieren Sie den DHCP-Schlüssel für den Host.

    In der folgenden Ausgabe werden die Befehlsparameter beschrieben 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

    Im folgenden Beispiel wird ein zufälliger Dhchap-Schlüssel mit HMAC auf 3 (SHA-512) generiert.

    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=:
  3. Fügen Sie auf dem ONTAP-Controller den Host hinzu und geben Sie beide dhchap-Schlüssel an:

    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}
  4. Ein Host unterstützt zwei Arten von Authentifizierungsmethoden, unidirektional und bidirektional. Stellen Sie auf dem Host eine Verbindung zum ONTAP-Controller her, und geben Sie dhchap-Schlüssel basierend auf der gewählten Authentifizierungsmethode an:

    nvme connect -t tcp -w <host-traddr> -a <tr-addr> -n <host_nqn> -S <authentication_host_secret> -C <authentication_controller_secret>
  5. Validieren Sie den nvme connect authentication Durch Überprüfen der dhchap-Schlüssel für Host und Controller:

    1. Überprüfen Sie die Host-dhchap-Schlüssel:

      cat /sys/class/nvme-subsystem/<nvme-subsysX>/nvme*/dhchap_secret
      Beispielausgabe für eine unidirektionale Konfiguration anzeigen
      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:
    2. Überprüfen Sie die Dhchap-Tasten des Controllers:

      cat /sys/class/nvme-subsystem/<nvme-subsysX>/nvme*/dhchap_ctrl_secret
      Beispielausgabe für eine bidirektionale Konfiguration anzeigen
      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=:
JSON

Wenn in der ONTAP-Controller-Konfiguration mehrere NVMe-Subsysteme verfügbar sind, kann die Datei mit dem nvme connect-all Befehl verwendet /etc/nvme/config.json werden.

Verwenden Sie die -o Option zum Generieren der JSON-Datei. Weitere Syntaxoptionen finden Sie in den Manpages zu NVMe connect-all.

  1. Konfigurieren Sie die JSON-Datei:

    Beispielausgabe anzeigen
    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=:"
                   }
               ]
           }
       ]
     }
    ]
    Hinweis Im folgenden Beispiel dhchap_key entspricht dhchap_secret Und dhchap_ctrl_key entspricht dhchap_ctrl_secret .
  2. Stellen Sie mithilfe der Konfigurations-JSON-Datei eine Verbindung zum ONTAP Controller her:

    nvme connect-all -J /etc/nvme/config.json
    Beispielausgabe anzeigen
    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
  3. Überprüfen Sie, ob die dhchap-Geheimnisse für die jeweiligen Controller für jedes Subsystem aktiviert wurden:

    1. Überprüfen Sie die Host-dhchap-Schlüssel:

      cat /sys/class/nvme-subsystem/nvme-subsys0/nvme0/dhchap_secret

      Das folgende Beispiel zeigt einen dhchap-Schlüssel:

      DHHC-1:01:i4i789R11sMuHLCY27RVI8XloC/GzjRwyhxip5hmIELsHrBq:
    2. Überprüfen Sie die Dhchap-Tasten des Controllers:

      cat /sys/class/nvme-subsystem/nvme-subsys0/nvme0/dhchap_ctrl_secret

      Sie sollten eine Ausgabe ähnlich dem folgenden Beispiel sehen:

    DHHC-1:03:jqgYcJSKp73+XqAf2X6twr9ngBpr2n0MGWbmZIZq4PieKZCoilKGef8lAvhYS0PNK7T+04YD5CRPjh+m3qjJU++yR8s=:

Schritt 10: Transport Layer Security konfigurieren

Transport Layer Security (TLS) bietet eine sichere Ende-zu-Ende-Verschlüsselung für NVMe-Verbindungen zwischen NVMe-oF-Hosts und einem ONTAP Array. Sie können TLS 1.3 mithilfe der CLI und eines konfigurierten Pre-Shared Key (PSK) konfigurieren.

Hinweis Führen Sie die folgenden Schritte auf dem SUSE Linux Enterprise Server-Host durch, außer wenn angegeben ist, dass Sie einen Schritt auf dem ONTAP -Controller durchführen müssen.
Schritte
  1. Überprüfen Sie, ob Sie über Folgendes verfügen ktls-utils , openssl , Und libopenssl Auf dem Host installierte Pakete:

    1. Überprüfen Sie die ktls-utils :

      rpm -qa | grep ktls

      Sie sollten die folgende Ausgabe sehen:

    ktls-utils-0.10+33.g311d943-150700.1.5.x86_64
    1. Überprüfen Sie die SSL-Pakete:

      rpm -qa | grep ssl
      Beispielausgabe anzeigen
      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
  2. Stellen Sie sicher, dass Sie die richtige Einstellung für haben /etc/tlshd.conf:

    cat /etc/tlshd.conf
    Beispielausgabe anzeigen
    [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>
  3. Start beim Systemstart aktivieren tlshd:

    systemctl enable tlshd
  4. Überprüfen Sie, ob der tlshd Daemon ausgeführt wird:

    systemctl status tlshd
    Beispielausgabe anzeigen
    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
  5. Generieren Sie das TLS PSK mithilfe derfolgenden Funktion nvme gen-tls-key:

    1. Überprüfen Sie den Host:

      cat /etc/nvme/hostnqn

      Die folgende Ausgabe sollte angezeigt werden:

      nqn.2014-08.org.nvmexpress:uuid:4c4c4544-0035-5910-804b-b2c04f444d33
    2. Überprüfen Sie den Schlüssel:

      nvme gen-tls-key --hmac=1 --identity=1 --subsysnqn= nqn.1992-08.com.netapp:sn.a2d41235b78211efb57dd039eab67a95:subsystem.nvme1

      Die folgende Ausgabe sollte angezeigt werden:

    NVMeTLSkey-1:01:C50EsaGtuOp8n5fGE9EuWjbBCtshmfoHx4XTqTJUmydf0gIj:
  6. Fügen Sie auf dem ONTAP-Controller das TLS PSK zum ONTAP-Subsystem hinzu:

    Beispielausgabe anzeigen
    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:
  7. Legen Sie das TLS PSK in den Host-Kernel-Schlüsselring ein:

    nvme check-tls-key --identity=1 --subsysnqn=nqn.1992-08.com.netapp:sn.a2d41235b78211efb57dd039eab67a95:subsystem.nvme1 --keydata=NVMeTLSkey-1:01:C50EsaGtuOp8n5fGE9EuWjbBCtshmfoHx4XTqTJUmydf0gIj: --insert

    Sie sollten den folgenden TLS-Schlüssel sehen:

    Inserted TLS key 22152a7e
    Hinweis Die PSK zeigt als NVMe1R01 weil es verwendet identity v1 vom TLS-Handshake-Algorithmus. Identity v1 ist die einzige Version, die von ONTAP unterstützt wird.
  8. Überprüfen Sie, ob TLS PSK korrekt eingesetzt ist:

    cat /proc/keys | grep NVMe
    Beispielausgabe anzeigen
    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
  9. Verbinden Sie sich mit dem ONTAP-Subsystem über das eingelegte TLS PSK:

    1. Überprüfen Sie den 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

      Die folgende Ausgabe sollte angezeigt werden:

    connecting to device: nvme0
    1. Überprüfen Sie die Liste der Subsysteme:

      nvme list-subsys
      Beispielausgabe anzeigen
      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
  10. Fügen Sie das Ziel hinzu, und überprüfen Sie die TLS-Verbindung zum angegebenen ONTAP-Subsystem:

    nvme subsystem controller show -vserver sles15_tls -subsystem sles15 -instance
    Beispielausgabe anzeigen
    (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

Schritt 11: Überprüfen Sie die bekannten Probleme

Es sind keine Probleme bekannt.