vSphere 6.5 und höher unterstützt die Kommunikation über RDMA (Remote Direct Memory Access, Remote-Direktzugriff auf den Speicher) zwischen virtuellen Maschinen mit paravirtualisierten RDMA-Netzwerkadaptern (PVRDMA).

Übersicht über RDMA

RDMA ermöglicht ohne Hinzuziehung des Betriebssystems oder der CPU den direkten Zugriff auf den Speicher eines Computers vom Speicher eines anderen Computers aus. Die Übertragung des Speichers wird auf den RDMA-fähigen Hostkanaladapter (HCA) ausgelagert. Ein PVRDMA-Netzwerkadapter bietet den Remote-Direktzugriff auf den Speicher in einer virtuellen Umgebung.

Verwenden von PVRDMA in vSphere

In vSphere kann eine virtuelle Maschine einen PVRDMA-Netzwerkadapter zum Kommunizieren mit anderen virtuellen Maschinen mit PVRDMA-Geräten verwenden. Die virtuellen Maschinen müssen mit demselben vSphere Distributed Switch verbunden sein.

Das PVRDMA-Gerät wählt automatisch die Kommunikationsmethode zwischen den virtuellen Maschinen. Bei virtuellen Maschinen, die auf demselben ESXi-Host mit oder ohne physisches RDMA-Gerät ausgeführt werden, handelt es sich bei der Datenübertragung zwischen den beiden virtuellen Maschinen um die Ausführung der memcpy-Funktion. In diesem Fall wird die physische RDMA-Hardware nicht verwendet.

Bei virtuellen Maschinen, die sich auf unterschiedlichen ESXi-Hosts mit einer physischen RDMA-Verbindung befinden, müssen die physischen RDMA-Geräte Uplinks auf dem Distributed Switch sein. In diesem Fall werden für die Kommunikation zwischen den virtuellen Maschinen über PVRDMA die zugrunde liegenden physischen RDMA-Geräte verwendet.

Bei zwei virtuellen Maschinen, die auf unterschiedlichen ESXi-Hosts ausgeführt werden, wird für die Kommunikation ein TCP-basierter Kanal verwendet, was die Leistung beeinträchtigt, wenn mindestens einer der Hosts nicht über ein physisches RDMA-Gerät verfügt.

Zuweisen eines PVRDMA Adapters zu einer virtuellen Maschine

Um eine virtuelle Maschine für den Austausch von Daten unter Verwendung von RDMA zu aktivieren, müssen Sie die virtuelle Maschine mit einem PVRDMA-Netzwerkadapter verknüpfen.

Sie können bei Verwendung von vSphere 7.0.2 und höher bis zu zehn PVRDMA-Netzwerkadapter zu einer virtuellen Maschine hinzufügen.

Voraussetzungen

  • Stellen Sie sicher, dass der Host, auf dem die virtuelle Maschine ausgeführt wird, für RDMA konfiguriert ist. Weitere Informationen hierzu finden Sie unter Konfigurieren eines ESXi-Hosts für PVRDMA.
  • Überprüfen Sie, ob der Host mit einem vSphere Distributed Switch verbunden ist
  • Stellen Sie sicher, dass die virtuelle Maschine die virtuelle Hardwareversion 13 und höher verwendet.
  • Vergewissern Sie sich, dass es sich bei dem Gastbetriebssystem um eine Linux 64-Bit-Verteilung handelt.

Prozedur

  1. Ermitteln Sie die virtuelle Maschine im vSphere Client.
    1. Wählen Sie ein Datencenter, einen Ordner, einen Cluster, einen Ressourcenpool oder einen Host aus und klicken Sie auf die Registerkarte VMs.
    2. Klicken Sie auf Virtuelle Maschinen und dann auf die virtuelle Maschine in der Liste.
  2. Schalten Sie die virtuelle Maschine aus.
  3. Wählen Sie im Menü „Aktionen“ die Option „Einstellungen bearbeiten“ aus.
  4. Wählen Sie die Registerkarte Virtuelle Hardware in dem Dialogfeld aus, in dem die Einstellungen angezeigt werden.
  5. Wählen Sie im Dropdown-Menü Neues Gerät hinzufügen die Option Netzwerkadapter aus.
    Der Abschnitt „Neues Netzwerk“ wird der Liste auf der Registerkarte Virtuelle Hardware hinzugefügt.
  6. Erweitern Sie den Bereich „Neues Netzwerk“ und verbinden Sie die virtuelle Maschine mit einer verteilten Portgruppe.
  7. Wählen Sie im Dropdown-Menü Adaptertyp die Option „PVRDMA“.
  8. Erweitern Sie den Bereich Arbeitsspeicher, wählen Sie Gesamten Gastarbeitsspeicher reservieren (Alle gesperrt) aus und klicken Sie auf OK .
  9. Schalten Sie die virtuelle Maschine ein.

Konfigurieren einer virtuellen Maschine für die Verwendung systemeigener PVRDMA-Endpoints

Systemeigene PVRDMA-Endpoints stehen als erweiterte VM-Konfiguration zur Verfügung.

Systemeigene PVRDMA-Endpoints werden in der VM-Hardwareversion 18 und höher ab vSphere 7.0 Update 1 und höher unterstützt. Zur Verwendung systemeigener PVRDMA-Endpoints müssen Sie PVRDMA-Namespaces aktivieren. Informationen zum Aktivieren von PVRDMA-Namespaces in der jeweiligen Hardware Ihrer Umgebung finden Sie in der Dokumentation des Herstellers.

Sie können den vSphere Client zum Konfigurieren systemeigener Endpoints oder Bearbeiten der VMX-Datei der virtuellen Maschine verwenden. Wenn Sie die VMX-Datei direkt bearbeiten, fügen Sie den Parameter vrdmax.nativeEndpointSupport = "TRUE" hinzu, wobei x den Index des PVRDMA-Adapters darstellt. Das folgende Verfahren verwendet den vSphere Client zum Konfigurieren systemeigener Endpoints.

Voraussetzungen

Stellen Sie sicher, dass PVRDMA in Ihrer Umgebung unterstützt wird. Weitere Informationen hierzu finden Sie unter Unterstützung von PVRDMA.

Prozedur

  1. Wechseln Sie zur virtuellen Maschine im vSphere Client.
    1. Wählen Sie zum Suchen einer virtuellen Maschine ein Datencenter, einen Ordner, einen Cluster, einen Ressourcenpool oder einen Host aus.
    2. Klicken Sie auf die Registerkarte VMs.
  2. Klicken Sie mit der rechten Maustaste auf die virtuelle Maschine und wählen Sie Einstellungen bearbeiten.
  3. Klicken Sie auf VM-Optionen.
  4. Erweitern Sie Erweitert.
  5. Klicken Sie unter „Konfigurationsparameter“ auf die Schaltfläche Konfiguration bearbeiten.
  6. Klicken Sie im angezeigten Dialogfeld auf Zeile hinzufügen (Add Row), um einen neuen Parameter und den zugehörigen Wert einzugeben.
  7. Geben Sie den Parameter vrdmax.nativeEndpointSupport ein, wobei x den Index des PVRDMA-Adapters darstellt, und legen Sie den Wert auf TRUE fest.
    Der Index x ist die Anzahl der PVRDMA -Adapter minus 1. Beispiel: Wenn der PVRDMA-Adapter, mit dem Sie systemeigene Endpoints aktivieren möchten, die Bezeichnung „Netzwerkadapter 2“ aufweist, lautet der Index 1.

Konfigurieren einer virtuellen Maschine für die Verwendung des asynchronen PVRDMA-Modus

Erfahren Sie, wie Sie eine virtuelle Maschine für die Verwendung des asynchronen PVRDMA-Modus konfigurieren. Dieser Modus steht als erweiterte VM-Konfiguration zur Verfügung.

Der asynchrone PVRDMA-Modus ist auf virtuellen Maschinen verfügbar, die auf vSphere 8.0 und höher ausgeführt werden. Der asynchrone Modus kann den Durchsatz und die Latenz für RDMA-Arbeitslasten verbessern, die in der virtuellen Maschine ausgeführt werden. Wenn der asynchrone Modus aktiviert ist, kann eine erhöhte CPU-Nutzung auf dem Host beobachtet werden. Wenn der asynchrone Modus verwendet wird, wird empfohlen, dass die virtuelle Maschine für eine hohe Latenzempfindlichkeit konfiguriert ist.

Voraussetzungen

Stellen Sie sicher, dass PVRDMA in Ihrer Umgebung unterstützt wird. Weitere Informationen hierzu finden Sie unter Unterstützung von PVRDMA.

Prozedur

  1. Ermitteln Sie die virtuelle Maschine im vSphere Client.
    1. Wählen Sie ein Datencenter, einen Ordner, einen Cluster, einen Ressourcenpool oder einen Host aus und klicken Sie auf die Registerkarte VMs.
    2. Klicken Sie auf Virtuelle Maschinen und dann auf die virtuelle Maschine in der Liste.
  2. Klicken Sie mit der rechten Maustaste auf die virtuelle Maschine und wählen Sie Einstellungen bearbeiten.
  3. Klicken Sie auf VM-Optionen.
  4. Erweitern Sie Erweitert.
  5. Klicken Sie unter „Konfigurationsparameter“ auf die Schaltfläche Konfiguration bearbeiten.
  6. Klicken Sie im angezeigten Dialogfeld auf Zeile hinzufügen (Add Row), um einen neuen Parameter und den zugehörigen Wert einzugeben.
  7. Geben Sie den Parameter vrdma.asyncMode ein und legen Sie den Wert auf TRUE. fest.

Netzwerkanforderungen für RDMA over Converged Ethernet

RDMA over Converged Ethernet gewährleistet eine leichte RDMA-Kommunikation mit geringer Latenz und hohem Durchsatz über ein Ethernet-Netzwerk. RoCE benötigt ein für einen verlustfreien Datenverkehr auf Schicht 2 oder auf Schicht 2 und 3 konfiguriertes Netzwerk.

RDMA over Converged Ethernet (RoCE) ist ein Netzwerkprotokoll, das RDMA für eine schnellere Datenübertragung netzwerkintensiver Anwendungen verwendet. RoCE ermöglicht eine direkte Speicherübertragung zwischen Hosts, ohne dass die CPUs der Hosts dabei belastet werden.

Vom RoCE-Protokoll gibt es zwei Versionen: RoCE v1 arbeitet auf der Link-Netzwerkschicht (Schicht 2). RoCE v2 arbeitet auf der Internet-Netzwerkschicht (Schicht 3). Sowohl für RoCE v1 als auch für RoCE v2 ist eine verlustfreie Netzwerkkonfiguration erforderlich. Für RoCE v1 ist ein verlustfreies Netzwerk auf Schicht 2 erforderlich und für RoCE v2 müssen sowohl Schicht 2 als auch Schicht 3 für den verlustfreien Betrieb konfiguriert sein.

Verlustfreies Netzwerk auf Schicht 2

Zur Gewährleistung einer verlustfreien Umgebung auf Schicht 2 müssen Sie in der Lage sein, den Datenverkehr zu steuern. Die Flusssteuerung wird durch Aktivieren einer globalen Pause im gesamten Netzwerk oder durch Verwenden des von der Data Center Bridging-Gruppe (DCB) definierten Priority Flow Control (PFC)-Protokolls erreicht. PFC ist ein Protokoll der Schicht 2, das das Class of Services-Feld des VLAN-Tags 802.1Q verwendet, um einzelne Verkehrsprioritäten festzulegen. Es unterbricht die Übertragung von Paketen zu einem Empfänger entsprechend den einzelnen Class of Service-Prioritäten. Auf diese Weise erfolgt auf einem einzigen Link sowohl verlustfreier RoCE-Verkehr als auch verlustbehafteter Mindestverkehr. Bei einem Stau des Datenverkehrsflusses kann jedoch wichtiger verlustbehafteter Datenverkehr beeinträchtigt werden. Um unterschiedliche Flüsse voneinander zu isolieren, verwenden Sie RoCE in einem VLAN, in dem PFC als Priorität aktiviert ist.

Verlustfreies Netzwerk auf Schicht 3

Für RoCE v2 muss die verlustfreie Datenübertragung auf Routing-Geräten der Schicht 3 erhalten bleiben. Um die Übertragung von verlustfreien PFC-Prioritäten der Schicht 2 über Router der Schicht 3 zu aktivieren, konfigurieren Sie den Router so, dass die empfangene Prioritätseinstellung eines Pakets der entsprechenden Differentiated Serviced Code Point (DSCP)-QoS-Einstellung zugeordnet wird, die auf Schicht 3 arbeitet. Die übertragenen RDMA-Pakete werden mit DSCP der Schicht 3, Priority Code Points (PCP) der Schicht 2 oder beiden markiert. Um Prioritätsinformationen aus den Paketroutern zu extrahieren, verwenden Sie entweder DSCP oder PCP. Bei Verwendung von PCP muss das Paket mit VLAN gekennzeichnet sein und der Router muss die PCP-Bits des Tags kopieren und an das nächste Netzwerk weiterleiten. Wenn das Paket mit DSCP markiert ist, muss der Router die DSCP-Bits unverändert beibehalten.

Wie RoCE v1 muss auch RoCE v2 auf einem VLAN, in dem PFC als Priorität aktiviert ist, ausgeführt werden.

Hinweis: Gruppieren Sie keine RoCE-Netzwerkkarten, wenn Sie beabsichtigen, RDMA auf diesen Netzwerkkarten zu verwenden.

Anbieterspezifische Konfigurationsinformationen finden Sie in der offiziellen Dokumentation des jeweiligen Geräte- oder Switch-Anbieters.