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.

Proxmox VE 9.x für NVMe-oF mit ONTAP Speicher konfigurieren

Beitragende netapp-pcarriga netapp-sarajane

Der Proxmox VE 9.x 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 dem asymmetrischen logischen Einheitenzugriff (ALUA) in iSCSI- und FCP-Umgebungen entspricht.

Erfahren Sie, wie Sie NVMe over Fabrics (NVMe-oF)-Hosts für Proxmox VE 9.x konfigurieren. Weitere Informationen zu Support und Funktionen finden Sie unter "ONTAP Support und -Funktionen"Die

NVMe-oF mit Proxmox VE 9.x weist folgende bekannte Einschränkung auf:

  • Die SAN-Bootkonfiguration für NVMe-FC wird nicht unterstützt.

Schritt 1: Installieren Sie die Proxmox VE- 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 Proxmox VE 9.x auf dem Server. Nach Abschluss der Installation überprüfen Sie, ob Sie den erforderlichen Proxmox VE 9.x-Kernel verwenden:

    uname -r

    Beispiel für eine Proxmox VE 9.x Kernel-Version:

    6.14.8-2-pve
  2. Installieren Sie den nvme-cli Paket:

    apt list|grep nvme-cli

    Das folgende Beispiel zeigt eine nvme-cli Paketversion:

    nvme-cli/stable,now 2.13-2 amd64
  3. Installieren Sie den libnvme Paket:

    apt list|grep libnvme

    Das folgende Beispiel zeigt eine libnvme Paketversion:

    libnvme-dev/stable 1.13-2 amd64
  4. Überprüfen Sie auf dem Host die Hostnqn-Zeichenfolge unter /etc/nvme/hostnqn :

    cat /etc/nvme/hostnqn

    Das folgende Beispiel zeigt eine hostnqn Wert:

    nqn.2014-08.org.nvmexpress:uuid:39333550-3333-4753-4844-32594d4a524c
  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_proxmox_FC_NVMeFC
    Beispiel anzeigen
    Vserver Subsystem Priority  Host NQN
    ------- --------- --------  -----------------------------------------------
    vs_proxmox_FC_NVMeFC
            sub_176
                      regular   nqn.2014-08.org.nvmexpress:uuid:39333550-3333-4753-4844-32594d4a4834
                      regular   nqn.2014-08.org.nvmexpress:uuid:39333550-3333-4753-4844-32594d4a524c
    2 entries were displayed
    Hinweis Wenn die hostnqn Zeichenfolgen nicht übereinstimmen, verwenden Sie die vserver modify Befehl zum Aktualisieren der hostnqn Zeichenfolge auf Ihrem entsprechenden ONTAP -Speichersystem-Subsystem, um die Übereinstimmung mit hostnqn Zeichenfolge von /etc/nvme/hostnqn auf dem Host.

Schritt 2: NVMe/FC und NVMe/TCP konfigurieren

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-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:

      SN1700E2P
      SN1700E2P
    2. Zeigen Sie die Modellbeschreibungen an:

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

      Sie sollten eine Ausgabe ähnlich dem folgenden Beispiel sehen:

    HPE SN1700E 64Gb 2p FC HBA
    HPE SN1700E 64Gb 2p FC HBA
  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

      Der Befehl gibt die Firmware-Versionen zurück:

      14.4.473.14, sli-4:6:d
      14.4.473.14, sli-4:6:d
    2. Zeigen Sie die Posteingangstreiberversion an:

      cat /sys/module/lpfc/version

      Das folgende Beispiel zeigt eine Treiberversion:

      0:14.4.0.7

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

  3. Verifizieren Sie das lpfc_enable_fc4_type Ist auf festgelegt 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:

    0x10005ced8c531948
    0x10005ced8c531949
  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
    Beispiel anzeigen
    NVME Initiator Enabled
    XRI Dist lpfc0 Total 6144 IO 5894 ELS 250
    NVME LPORT lpfc0 WWPN x10005ced8c531948 WWNN x20005ced8c531948 DID x082400 ONLINE
    NVME RPORT       WWPN x200ed039eac79573 WWNN x200dd039eac79573 DID x060902 TARGET DISCSRVC ONLINE
    NVME RPORT       WWPN x2001d039eac79573 WWNN x2000d039eac79573 DID x060904 TARGET DISCSRVC ONLINE
    
    NVME Statistics
    LS: Xmt 0000000034 Cmpl 0000000034 Abort 00000000
    LS XMIT: Err 00000000  CMPL: xb 00000000 Err 00000000
    Total FCP Cmpl 0000000000142cfb Issue 0000000000142cfc OutIO 0000000000000001
            abort 00000005 noxri 00000000 nondlp 00000000 qdepth 00000000 wqerr 00000000 err 00000000
    FCP CMPL: xb 00000005 Err 00000005
    
    NVME Initiator Enabled
    XRI Dist lpfc1 Total 6144 IO 5894 ELS 250
    NVME LPORT lpfc1 WWPN x10005ced8c531949 WWNN x20005ced8c531949 DID x082500 ONLINE
    NVME RPORT       WWPN x2010d039eac79573 WWNN x200dd039eac79573 DID x062902 TARGET DISCSRVC ONLINE
    NVME RPORT       WWPN x2007d039eac79573 WWNN x2000d039eac79573 DID x062904 TARGET DISCSRVC ONLINE
    
    NVME Statistics
    LS: Xmt 0000000034 Cmpl 0000000034 Abort 00000000
    LS XMIT: Err 00000000  CMPL: xb 00000000 Err 00000000
    Total FCP Cmpl 00000000000d39f1 Issue 00000000000d39f2 OutIO 0000000000000001
            abort 00000005 noxri 00000000 nondlp 00000000 qdepth 00000000 wqerr 00000000 err 00000000
    FCP CMPL: xb 00000005 Err 00000005
NVMe/FC - Marvell/QLogic

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

  1. Stellen Sie sicher, dass Sie die unterstützten Adaptertreiber- und Firmware-Versionen verwenden:

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

    Das folgende Beispiel zeigt Treiber- und Firmwareversionen:

    SN1700Q FW:v9.15.05 DVR:v10.02.09.400-k
    SN1700Q FW:v9.15.05 DVR:v10.02.09.400-k
  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. Überprüfen Sie, ob 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
    Beispiel anzeigen
    nvme discover -t tcp -w 192.168.165.72 -a 192.168.165.51
    Discovery Log Number of Records 4, Generation counter 47
    =====Discovery Log Entry 0======
    trtype:  tcp
    adrfam:  ipv4
    subtype: current discovery subsystem
    treq:    not specified
    portid:  3
    trsvcid: 8009
    subnqn:  nqn.1992-08.com.netapp:sn.c770be5d934811f0b624d039eac809ba:discovery
    traddr:  192.168.165.51
    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:  1
    trsvcid: 8009
    subnqn:  nqn.1992-08.com.netapp:sn.c770be5d934811f0b624d039eac809ba:discovery
    traddr:  192.168.166.50
    eflags:  explicit discovery connections, duplicate discovery information
    sectype: none
    =====Discovery Log Entry 2======
    trtype:  tcp
    adrfam:  ipv4
    subtype: nvme subsystem
    treq:    not specified
    portid:  3
    trsvcid: 4420
    subnqn:  nqn.1992-08.com.netapp:sn.c770be5d934811f0b624d039eac809ba:subsystem.sub_176
    traddr:  192.168.165.51
    eflags:  none
    sectype: none
    =====Discovery Log Entry 3======
    trtype:  tcp
    adrfam:  ipv4
    subtype: nvme subsystem
    treq:    not specified
    portid:  1
    trsvcid: 4420
    subnqn:  nqn.1992-08.com.netapp:sn.c770be5d934811f0b624d039eac809ba:subsystem.sub_176
    traddr:  192.168.166.50
    eflags:  none
    sectype: none
  2. 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.166.73 -a 192.168.166.50
    nvme connect-all -t tcp -w 192.168.166.73 -a 192.168.166.51
    nvme connect-all -t tcp -w 192.168.165.73 -a 192.168.165.50
    nvme connect-all -t tcp -w 192.168.165.73 -a 192.168.165.51

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 3: 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ühre die update-initramfs Führen Sie den Befehl aus 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 4: 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 Thu 2025-10-16 18:00:39 IST; 6 days ago
     Invocation: e146e0b2c339432aad6e0555a528872c
        Process: 1787 ExecStart=/usr/sbin/nvme connect-all --context=autoconnect (code=exited, status=0/SUCCESS)
       Main PID: 1787 (code=exited, status=0/SUCCESS)
       Mem peak: 2.4M
            CPU: 12ms
    Oct 16 18:00:39 HPE-DL365-14-176 systemd[1]: Starting nvmf-autoconnect.service - Connect NVMe-oF subsystems automatically during boot...
    Oct 16 18:00:39 HPE-DL365-14-176 systemd[1]: nvmf-autoconnect.service: Deactivated successfully.
    Oct 16 18:00:39 HPE-DL365-14-176 systemd[1]: Finished nvmf-autoconnect.service - 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 Thu 2025-10-16 18:00:35 IST; 6 days ago
     Invocation: acf73ac1ef7a402198d6ecc4d075fab0
        Process: 1173 ExecStart=/bin/sh -c echo add > /sys/class/fc/fc_udev_device/nvme_discovery (code=exited, status=0/SUCCESS)
       Main PID: 1173 (code=exited, status=0/SUCCESS)
       Mem peak: 2.1M
            CPU: 11ms
    
    Oct 16 18:00:35 HPE-DL365-14-176 systemd[1]: nvmefc-boot-connections.service: Deactivated successfully.
    Oct 16 18:00:35 HPE-DL365-14-176 systemd[1]: Finished nvmefc-boot-connections.service - Auto-connect to subsystems on FC-NVME devices found during boot.

Schritt 5: Überprüfen der 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 Round-Robin eingestellt) für die ONTAP Namespaces auf dem Host korrekt angezeigt werden:

    1. Zeigen Sie die Teilsysteme:

      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          Generic     SN                   Model                    Namespace  Usage                      Format           FW Rev
    ------------- ----------- -------------------- ------------------------ ---------- -------------------------- ---------------- --------
    /dev/nvme2n1  /dev/ng2n1  81PqYFYq2aVAAAAAAAAB NetApp ONTAP Controller   0x1         17.88  GB / 171.80  GB      4 KiB +  0 B   9.17.1
  4. Überprüfen Sie, ob der Controller-Status jedes Pfads aktiv ist und den korrekten ANA-Status aufweist:

    NVMe/FC
    nvme list-subsys /dev/nvme3n9
    Beispiel anzeigen
    nvme-subsys3 - NQN=nqn.1992-08.com.netapp:sn.94929fdb84eb11f0b624d039eac809ba:subsystem.sub_176
                   hostnqn=nqn.2014-08.org.nvmexpress:uuid:39333550-3333-4753-4844-32594d4a524c
    \
     +- nvme1 fc traddr=nn-0x200dd039eac79573:pn-0x2010d039eac79573,host_traddr=nn-0x20005ced8c531949:pn-0x10005ced8c531949 live optimized
     +- nvme3 fc traddr=nn-0x200dd039eac79573:pn-0x200ed039eac79573,host_traddr=nn-0x20005ced8c531948:pn-0x10005ced8c531948 live optimized
    +- nvme5 fc traddr=nn-0x200dd039eac79573:pn-0x200fd039eac79573,host_traddr=nn-0x20005ced8c531949:pn-0x10005ced8c531949 live non-optimized
     +- nvme7 fc traddr=nn-0x200dd039eac79573:pn-0x2011d039eac79573,host_traddr=nn-0x20005ced8c531948:pn-0x10005ced8c531948 live non-optimized
    NVMe/TCP
    nvme list-subsys /dev/nvme2n3
    Beispiel anzeigen
    nvme-subsys2 - NQN=nqn.1992-08.com.netapp:sn.c770be5d934811f0b624d039eac809ba:subsystem.sub_176
                   hostnqn=nqn.2014-08.org.nvmexpress:uuid:39333550-3333-4753-4844-32594d4a524c
    \
     +- nvme2 tcp traddr=192.168.166.50,trsvcid=4420,host_traddr=192.168.166.73,src_addr=192.168.166.73 live optimized
     +- nvme4 tcp traddr=192.168.165.51,trsvcid=4420,host_traddr=192.168.165.73,src_addr=192.168.165.73 live optimized
    +- nvme6 tcp traddr=192.168.166.51,trsvcid=4420,host_traddr=192.168.166.73,src_addr=192.168.166.73 live non-optimized
     +- nvme8 tcp traddr=192.168.165.50,trsvcid=4420,host_traddr=192.168.165.73,src_addr=192.168.165.73 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
    ------------- --------------------- ------------------------------
    /dev/nvme2n9  vs_proxmox_FC_NVMeFC  /vol/vol_180_data_nvmefc4/ns
    
    NSID       UUID                            Size
    ---- ------------------------------------  --------
    1    e3d3d544-de8b-4787-93af-bfec7769e909  32.21GB
    JSON
    nvme netapp ontapdevices -o json
    Beispiel anzeigen
    {
          "Device":"/dev/nvme2n9",
          "Vserver":"vs_proxmox_FC_NVMeFC",
          "Subsystem":"sub_176",
          "Namespace_Path":"/vol/vol_180_data_nvmefc4/ns",
          "NSID":9,
          "UUID":"e3d3d544-de8b-4787-93af-bfec7769e909",
          "LBA_Size":4096,
          "Namespace_Size":32212254720,
          "UsedBytes":67899392,
          "Version":"9.17.1"
        }
      ]

Schritt 6: Überprüfen Sie die bekannten Probleme

Es sind keine Probleme bekannt.