VMware stellt das High Performance Plug-In (HPP, Hochleistungs-Plug-In) bereit, um die Leistung von Speichergeräten auf Ihrem ESXi-Host zu verbessern.

Das HPP ersetzt das NMP für Hochgeschwindigkeitsgeräte, wie z. B. NVMe. Das HPP ist das Standard-Plug-In, das NVMe-oF-Ziele beansprucht. ESXi unterstützt die End-to-End-NVMe ohne und SCSI-to-NVMe-Emulation. Das HPP unterstützt nur aktiv/aktive und implizite ALUA-Ziele.

Ab vSphere 7.0 Update 2 wird HPP das Standard-Plug-In für lokale NVMe- und SCSI-Geräte. Sie können es jedoch durch NMP ersetzen.

HPP-Unterstützung vSphere 7.0 Update 2 und höher
Speichergeräte Lokales NVMe und SCSI

Gemeinsam genutzte NVMe-oF (nur aktiv/aktive und implizite ALUA-Ziele)

Multipathing Ja
Plug-Ins auf zweiter Ebene Nein
Dauerhafte SCSI-3-Reservierungen Nein
4Kn-Geräte mit Software-Emulation Ja

Pfadauswahlschemas (Path Selection Schemes)

Zur Unterstützung von Multipathing verwendet das HPP die Pfadauswahlschemas (PSS) bei der Auswahl von physischen Pfaden für E/A-Anforderungen.

Sie können den Befehl vSphere Client oder esxcli verwenden, um den Standard-Pfadauswahlmechanismus zu ändern.

Informationen zum Konfigurieren der Pfadmechanismen im vSphere Client finden Sie unter Ändern der Pfadauswahl-Richtlinie. Informationen zum Konfigurieren mit dem esxcli-Befehl finden Sie unter ESXi- esxcli-HPP-Befehle.

ESXi unterstützt die folgenden Pfadauswahlmechanismen.

FEST
Mit diesem Schema wird ein festgelegter bevorzugter Pfad für E/A-Anforderungen verwendet. Wenn der bevorzugte Pfad nicht zugewiesen ist, wählt der Host den ersten funktionierenden Pfad aus, der beim Systemstart ermittelt wird. Ist der bevorzugte Pfad nicht mehr verfügbar, wählt der Host einen alternativen verfügbaren Pfad aus. Der Host kehrt zum zuvor definierten bevorzugten Pfad zurück, wenn dieser wieder verfügbar ist.

Wenn Sie FEST als Pfadauswahlmechanismus konfigurieren, wählen Sie den bevorzugten Pfad aus.

LB-RR (Lastausgleich – Round Robin)
Dies ist das Standardschema für die von HPP beanspruchten Geräte. Nach der Übertragung einer angegebenen Anzahl von Byte oder E/A-Vorgängen auf einem aktuellen Pfad wählt das Schema den Pfad mithilfe des Round Robin-Algorithmus aus.
Um den LB-RR-Pfadauswahlmechanismus zu konfigurieren, geben Sie die folgenden Eigenschaften an:
  • IOPS gibt die E/A-Anzahl auf dem Pfad an, die als Kriterium zum Wechseln eines Pfads für das Gerät verwendet werden soll.
  • Byte gibt die Byte-Anzahl auf dem Pfad an, die als Kriterium zum Wechseln eines Pfads für das Gerät verwendet werden soll.
LB-IOPS (Lastausgleich – IOPS)
Nach der Übertragung einer angegebenen Anzahl von E/A-Vorgängen auf einem aktuellen Pfad (Standardwert: 1000) wählt das System einen optimalen Pfad aus, der die geringste Anzahl ausstehender E/A-Vorgänge aufweist.

Geben Sie beim Konfigurieren dieses Mechanismus den IOPS-Parameter an, um die E/A-Anzahl auf dem Pfad anzugeben, die als Kriterium zum Wechseln eines Pfads für das Gerät verwendet werden soll.

LB-BYTES (Lastausgleich – Byte)
Nach der Übertragung einer festgelegten Anzahl von Byte auf einem aktuellen Pfad (Standardwert: 10 MB) wählt das System einen optimalen Pfad mit der geringsten Anzahl an ausstehenden Byte aus.

Um diesen Mechanismus zu konfigurieren, verwenden Sie den Parameter Byte, um die Anzahl der Byte auf dem Pfad anzugeben, die als Kriterium zum Wechseln eines Pfads für das Gerät verwendet werden soll.

Lastausgleich – Latenz (LB-Latenz)
Um bessere Ergebnisse beim Lastausgleich zu erzielen, wählt der Mechanismus dynamisch einen optimalen Pfad unter Berücksichtigung der folgenden Pfadmerkmale aus:
  • Der Parameter Zeit für die Latenzauswertung gibt an, in welchem Zeitintervall (in Millisekunden) die Latenz der Pfade ausgewertet werden muss.
  • Der Parameter Sampling-E/As pro Pfad steuert, wie viele Sampling-E/A-Vorgänge auf jedem Pfad ausgegeben werden müssen, um die Latenz des Pfads zu berechnen.

Empfohlene Vorgehensweisen für das HPP

Um den schnellsten Durchsatz mit einem Hochgeschwindigkeits-Speichergerät zu erzielen, sollten Sie diese Empfehlungen beachten.

  • Verwenden Sie die vSphere-Version, die das HPP unterstützt.
  • Verwenden Sie das HPP für lokale NVMe- und SCSI-Geräte sowie für NVMe-oF-Geräte.
  • Wenn Sie NVMe over Fibre Channel-Geräte verwenden, folgen Sie den allgemeinen Empfehlungen für Fibre Channel-Speicher. Weitere Informationen hierzu finden Sie unter Verwenden von ESXi mit Fibre-Channel-SAN.
  • Wenn Sie NVMe-oF verwenden, dürfen Sie keine Transporttypen kombinieren, um auf denselben Namespace zuzugreifen.
  • Stellen Sie bei Verwendung von NVMe-oF-Namespaces sicher, dass die aktiven Pfade dem Host angezeigt werden. Die Namespaces können erst registriert werden, nachdem der aktive Pfad erkannt wurde.
  • Wenn Sie Ihre VMs konfigurieren, können Sie VMware Paravirtuelle Controller verwenden oder NVMe-Controller hinzufügen. Beide Typen haben Vor- und Nachteile. Informationen dazu, welcher für Ihre Umgebung am besten geeignet ist, finden Sie unter Bedingungen, Einschränkungen und Kompatibilität von SCSI-, SATA- und NVMe-Speichercontrollern in der Dokumentation zu vSphere-Administratorhandbuch für virtuelle Maschinen.
  • Legen Sie den latenzsensitiven Schwellenwert fest.
  • Wenn eine einzelne VM einen erheblichen Anteil an der E/A-Arbeitslast des Geräts hat, ziehen Sie die Verteilung des E/A-Durchsatzes auf mehrere virtuelle Festplatten in Betracht. Verbinden Sie die Festplatten mit separaten virtuellen Controllern in der VM.

    Andernfalls wird der E/A-Durchsatz aufgrund der Auslastung des CPU-Kerns, der für die Verarbeitung von E/A-Vorgängen auf einem bestimmten virtuellen Speichercontroller verantwortlich ist, möglicherweise beschränkt.

Weitere Informationen zu Gerätebezeichnern für NVMe-Geräte, die ausschließlich das ID-Format NGUID unterstützen, finden Sie unter NVMe-Geräte mit NGUID-Gerätebezeichnern.

Aktivieren des Hochleistungs-Plug-Ins und der Pfadauswahlschemas

Das Hochleistungs-Plug-In (HPP) ist das Standard-Plug-In, das lokale NVMe- und SCSI-Geräte sowie NVMe-oF-Ziele beansprucht. Sie können es nach Bedarf durch NMP ersetzen. In vSphere Version 7.0 Update 1 und früher bleibt NMP das Standard-Plug-In für lokale NVMe- und SCSI-Geräte. Sie können es jedoch durch HPP ersetzen.

Verwenden Sie den Befehl esxcli storage core claimrule add , um den HPP oder NMP auf Ihrem ESXi zu aktivieren.

Zum Ausführen der esxcli storage core claimrule add können Sie ESXi Shell oder vSphere CLI nutzen. Weitere Informationen finden Sie unter Erste Schritte mit ESXCLI und ESXCLI – Referenz.

Beispiele in diesem Thema zeigen, wie HPP aktiviert und die Pfadauswahlschemata (PSS) eingerichtet werden.
Hinweis: Das Aktivieren des Hochleistungs-Plug-Ins wird von per PXE gestarteten ESXi-Hosts nicht unterstützt.

Voraussetzungen

Richten Sie Ihre VMware NVMe-Speicherumgebung ein. Weitere Informationen finden Sie unter NVMe-Speicher von VMware.

Prozedur

  1. Erstellen Sie eine HPP-Beanspruchungsregel, indem Sie den Befehl esxcli storage core claimrule add ausführen.
    Verwenden Sie eine der folgenden Methoden, um die Beanspruchungsregel hinzuzufügen:
    Methode Beschreibung
    Basierend auf dem NVMe-Controller-Modell esxcli storage core claimrule add –-type vendor --nvme-controller-model

    Beispiel: esxcli storage core claimrule add --rule 429 --type vendor --nvme-controller-model "ABCD*" --plugin HPP

    Basierend auf der PCI-Anbieter-ID und Unteranbieter-ID esxcli storage core claimrule add –-type vendor –-pci-vendor-id –-pci-sub-vendor-id

    Beispiel: esxcli storage core claimrule add --rule 429 --type vendor --pci-vendor-id 8086 --pci-sub-vendor-id 8086 --plugin HPP.

  2. Konfigurieren Sie das PSS.
    Verwenden Sie eine der folgenden Methoden:
    Methode Beschreibung
    Festlegen des PSS basierend auf der Geräte-ID esxcli storage hpp device set

    Beispiel: esxcli storage hpp device set --device=device --pss=FIXED --path=preferred path

    Festlegen des PSS basierend auf dem Anbieter/Modell Verwenden Sie die Option --config-string mit dem Befehl esxcli storage core claimrule add.

    Beispiel: esxcli storage core claimrule add -r 914 -t vendor -V vendor -M model -P HPP --config-string "pss=LB-Latency,latency-eval-time=40000"

  3. Starten Sie den Host neu, damit Ihre Änderungen wirksam werden.

Festlegen des latenzsensitiven Schwellenwerts

Wenn Sie HPP für Ihre Speichergeräte verwenden, legen Sie den latenzsensitiven Schwellenwert für das Gerät fest, damit der E/A-Scheduler für E/A-Daten umgangen werden kann.

Standardmäßig werden alle E/A-Daten von ESXi über den E/A-Scheduler geleitet. Die Verwendung des Schedulers kann jedoch zum Auftreten von internen Warteschlangen führen, wodurch die Effizienz von Hochgeschwindigkeits-Speichergeräten eingeschränkt wird.

Sie können den latenzsensitiven Schwellenwert konfigurieren und den Mechanismus für die direkte Übermittlung aktivieren, mit dem die E/A-Daten bei der Umgehung des Schedulers unterstützt werden. Wenn dieser Mechanismus aktiviert ist, werden die E/A-Daten direkt von PSA über HPP an den Gerätetreiber übermittelt.

Damit die direkte Übermittlung fehlerfrei funktioniert, muss die beobachtete durchschnittliche E/A-Latenz niedriger als der von Ihnen angegebene Latenzschwellenwert sein. Wenn die E/A-Latenz den Latenzschwellenwert überschreitet, bricht das System die direkte Übermittlung ab und wird auf die Verwendung des E/A-Schedulers zurückgesetzt. Die direkte Übermittlung wird fortgesetzt, wenn der Wert für die durchschnittliche E/A-Latenz wieder niedriger als der Latenzschwellenwert ist.

Sie können den Latenzschwellenwert für eine Gerätefamilie festlegen, die von HPP beansprucht wird. Ziehen Sei beim Festlegen des Schwellenwerts für die Latenz das Anbieter- und Modellpaar, das Controller-Modell oder das PCIe-Anbieter-ID- und Unteranbieter-ID-Paar heran.

Prozedur

  1. Legen Sie den latenzsensitiven Schwellenwert für das Gerät fest, indem Sie den folgenden Befehl ausführen:
    esxcli storage core device latencythreshold set -t Wert in Millisekunden

    Verwenden Sie eine der folgenden Optionen:

    Option Beispiel
    Anbieter/Modell Legen Sie den Parameter für den latenzsensitiven Schwellenwert für alle Geräte mit dem angegebenen Anbieter und Modell fest: esxcli storage core device latencythreshold set -v 'vendor1' -m 'model1' -t 10
    NVMe-Controller-Modell Legen Sie den latenzsensitiven Schwellenwert für alle NVMe-Geräte mit dem angegebenen Controller-Modell fest: esxcli storage core device latencythreshold set -c 'controller_model1' -t 10
    PCIe-Anbieter/-Unteranbieter-ID Legen Sie den latenzsensitiven Schwellenwert für Geräte mit 0x8086 als PCIe-Anbieter-ID und 0x8086 als PCIe-Unteranbieter-ID fest. esxcli storage core device latencythreshold set -p '8086' -s '8086' -t 10
  2. Stellen Sie sicher, dass der Latenzschwellenwert festgelegt ist:
    esxcli storage core device latencythreshold list
    Device                Latency Sensitive Threshold
    --------------------  ---------------------------
    naa.55cd2e404c1728aa               0 milliseconds
    naa.500056b34036cdfd               0 milliseconds
    naa.55cd2e404c172bd6              50 milliseconds
    
  3. Überwachen Sie den Status des latenzsensitiven Schwellenwerts. Suchen Sie in den VMkernel-Protokollen die folgenden Einträge:
    • Latency Sensitive Gatekeeper turned on for device Gerät. Threshold of XX msec is larger than max completion time of YYY msec
    • Latency Sensitive Gatekeeper turned off for device Gerät. Threshold of XX msec is exceeded by command completed in YYY msec

ESXi- esxcli-HPP-Befehle

Sie können die ESXi-Shell- oder vSphere-CLI-Befehle verwenden, um das Hochleistungs-Plug-In zu konfigurieren und zu überwachen.

Unter Erste Schritte mit ESXCLI finden Sie eine Einführung und unter ESXCLI – Referenz Details zur Verwendung des Befehls esxcli.

Befehl Beschreibung Optionen
esxcli storage hpp path list Auflisten der Pfade, die derzeit vom Hochleistungs-Plug-In beansprucht werden. -d|--device=device Zeigt Informationen für ein bestimmtes Gerät an.

-p|--path=path Begrenzt die Ausgabe auf einen bestimmten Pfad.

esxcli storage hpp device list Auflisten der Geräte, die derzeit vom Hochleistungs-Plug-In gesteuert werden. -d|--device=device Zeigt ein bestimmtes Gerät an.
esxcli storage hpp device set Konfigurieren der Einstellungen für ein HPP-Gerät. -B|--bytes=long Maximale Byte auf dem Pfad, nach denen der Pfad gewechselt wird.

--cfg-file Aktualisieren Sie die Konfigurationsdatei und die Laufzeit mit der neuen Einstellung. Wenn das Gerät von einem anderen PSS beansprucht wird, ignorieren Sie beim Anwenden auf die Laufzeitkonfiguration alle Fehler.

-d|--device=device Das HPP-Gerät, mit dem gearbeitet wird. Verwenden einer der UIDs, die das Gerät meldet. Erforderlich.

-I|--iops=long Maximale IOPS auf dem Pfad, nach denen der Pfad gewechselt wird.

-T|--latency-eval-time=long Steuert, nach welchem Intervall in ms die Latenz der Pfade ausgewertet werden muss.

-L|--mark-device-local= bool Legen Sie HPP fst, um das Gerät als lokal zu behandeln oder nicht.

-M|--mark-device-ssd=bool Gibt an, ob HPP das Gerät als eine SSD-Festplatte behandelt.

-p|--path=str Der Pfad, der als bevorzugter Pfad für das Gerät festgelegt werden soll.

-P|--pss=pss_name Das Pfadauswahlschema, das dem Gerät zugewiesen werden soll. Wenn Sie den Wert nicht angeben, wählt das System die Standardeinstellung aus. Eine Beschreibung der Pfadauswahlschemas finden Sie unter VMware High Performance-Plug-In und Pfadauswahlschemas. Zu den Optionen gehören:
  • FEST

    Verwenden Sie die Unteroption -p|--path=str, um den bevorzugten Pfad festzulegen.

  • LB-Byte

    Verwenden Sie die Unteroption -B|--bytes=long, um die Eingabe anzugeben.

  • LB-IOPs

    Verwenden Sie die Unteroption -I|--iops=long, um die Eingabe anzugeben.

  • LB-Latenz

    Zu den Unteroptionen gehören:

    -T|--latency-eval-time=long

    -S|--sampling-ios-per-path=long

  • LB-RR Standard

    Zu den Unteroptionen gehören:

    -B|--bytes=long

    -I|--iops=long

-S|--sampling-ios-per-path=long Steuert, wie viele Beispiel-E/A-Vorgänge auf jedem Pfad ausgegeben werden müssen, um die Latenz des Pfads zu berechnen.

-U|--use-ano=bool Legen Sie die Option auf true fest, um nicht optimierte Pfade in den Satz aktiver Pfade aufzunehmen, die zur Ausgabe von E/As auf diesem Gerät verwendet werden. Legen Sie die Option andernfalls auf false fest.

esxcli storage hpp device usermarkedssd list Listen Sie die Geräte auf, die vom Benutzer als SSD gekennzeichnet oder nicht gekennzeichnet wurden. -d|--device=device Begrenzen der Ausgabe auf ein bestimmtes Gerät.