IRDMA Cloud RDMA-Treiber verwenden

Cloud RDMA ermöglicht zuverlässige Messaging-Funktionen mit niedriger Latenz mithilfe des IRDMA-RDMA-Treibers. Dieser Treiber unterstützt Remote Direct Memory Access (RDMA) zwischen Compute Engine-Instanzen. RDMA überträgt Daten zwischen Remote-Maschinen und lokalem Arbeitsspeicher über die Netzwerkschnittstelle, ohne die Host-CPU oder Zwischenpuffer des Hosts zu verwenden.

Für Cloud RDMA-fähige Instanzen sind mindestens zwei virtuelle Netzwerkschnittstellen (vNICs) erforderlich:

  • Eine vNIC für die Cloud RDMA-Kommunikation, die das IDPF-Netzwerk und den IRDMA-RDMA-Treiber verwendet. Diese vNIC kann keine Verbindung zum Internet herstellen. Eine Instanz kann nur eine vNIC haben, die Cloud RDMA verwendet.
  • Eine vNIC für normalen Netzwerkverkehr. Diese vNIC ist vollständig mit dem Google Cloud Netzwerk verbunden und kann eine Verbindung zum Internet herstellen. Diese vNIC verwendet den gVNIC-Netzwerktreiber. Sie können bis zu acht zusätzliche gVNIC-Netzwerkschnittstellen hinzufügen, sodass insgesamt 10 vNICs pro Instanz zur Verfügung stehen.

Der IRDMA-Treiber wird für H4D-Instanzen unterstützt.

Wenn Sie eine vNIC konfigurieren, die den IRDMA-Treiber verwendet, müssen Sie ein VPC-Netzwerk angeben, das mit dem Falcon-RDMA-Netzwerkprofil erstellt wurde.

Hinweis

Betriebssystemunterstützung

Google empfiehlt die Verwendung des HPC-VM-Images, in dem Cloud RDMA-Treiber vorinstalliert sind.

Von den für Google Cloudbereitgestellten öffentlichen Betriebssystem-Images wird der IRDMA-RDMA-Treiber für Folgendes unterstützt:

  • Container-Optimized OS 117 LTS oder höher
  • Rocky Linux 8 optimiert für Google Cloud und höher optimiert für Google Cloud Versionen

Übersicht über die Verwendung von Cloud RDMA mit Compute Engine-Instanzen

Wenn Sie eine Compute-Instanz erstellen möchten, die Cloud RDMA verwendet, benötigen Sie mindestens ein reguläres VPC-Netzwerk und ein Falcon VPC-Netzwerk. Das Falcon-VPC-Netzwerk verwendet das Falcon-RDMA-Netzwerkprofil, um Cloud RDMA-Traffic zwischen H4D-Instanzen zu ermöglichen. Dieses Netzwerk ist von dem regulären VPC-Netzwerk getrennt, über das Nicht-RDMA-Traffic an andere Google Cloud Dienste oder das Internet weitergeleitet wird.

Die Aufgaben zum Erstellen einer Compute-Instanz, die Cloud RDMA verwendet, sind folgende:

  1. Wählen Sie ein öffentliches Betriebssystem-Image aus, das Cloud RDMA unterstützt, oder erstellen Sie ein benutzerdefiniertes Betriebssystem-Image, das für die Verwendung von IRDMA getaggt ist.
  2. Erstellen oder identifizieren Sie mindestens zwei VPC-Netzwerke:

    • Ein reguläres VPC-Netzwerk für den Traffic, der über die gVNIC-Netzwerkschnittstelle geleitet wird
    • Ein Falcon-VPC-Netzwerk für den Cloud RDMA-Traffic
  3. Erstellen Sie eine Compute-Instanz mit dem öffentlichen oder benutzerdefinierten Betriebssystem-Image. Konfigurieren Sie beim Erstellen der Instanz mindestens zwei Netzwerkschnittstellen: eine, die den gVNIC-Netzwerktreiber verwendet, und eine, die den IRDMA-RDMA-Treiber verwendet.

  4. Prüfen Sie, ob Cloud RDMA aktiviert ist.

Benutzerdefiniertes Betriebssystem-Image erstellen, das Cloud RDMA unterstützt

Sie können das Betriebssystem-Image entweder mit der Google Cloud CLI oder mit REST erstellen. Ausführliche Informationen und Best Practices zum Erstellen benutzerdefinierter Betriebssystem-Images finden Sie unter Benutzerdefinierte Betriebssystem-Images erstellen.

gcloud

  1. Wählen Sie ein Betriebssystem-Image oder eine Image-Familie aus, die den IRDMA-Treiber und die IRDMA-Schnittstelle unterstützt. Weitere Informationen finden Sie unter Details zu Betriebssystemen und wählen Sie den Tab Schnittstellen aus.

  2. Erstellen Sie mithilfe des im vorherigen Schritt ausgewählten Betriebssystem-Images oder der Image-Familie ein benutzerdefiniertes Betriebssystem-Image. Verwenden Sie zum Erstellen des benutzerdefinierten Betriebssystem-Image den gcloud compute images create Befehl. Mit dem folgenden Befehl wird beispielsweise ein benutzerdefiniertes Betriebssystem-Image erstellt, das den IRDMA-Treiber unterstützt und auf einem bestimmten Betriebssystem-Image basiert.

    gcloud compute images create IMAGE_NAME \
        --source-image=SOURCE_IMAGE \
        --source-image-project=SOURCE_IMAGE_PROJECT \
    

    Ersetzen Sie Folgendes:

    • IMAGE_NAME: Der Name des Images, das Sie erstellen möchten.
    • SOURCE_IMAGE: Ein bestimmtes Betriebssystem-Image, das den IRDMA-Treiber unterstützt, z. B. hpc-rocky-linux-8-v20250721.

      Wenn Sie das neueste Betriebssystem-Image in einer Image-Familie verwenden möchten, ersetzen Sie das --source-image Flag durch das --source-image-family Flag und legen Sie dessen Wert auf eine Image-Familie fest, die den IRDMA-Treiber unterstützt. Beispiel: --source-image-family=hpc-rocky-linux-8.

    • SOURCE_IMAGE_PROJECT: Der Name des Projekts, das das Quell-Betriebssystem-Image oder die Image-Familie enthält.

    Weitere Informationen zur Verwendung von Image-Familien finden Sie unter Best Practices für Image-Familien.

REST

  1. Wählen Sie ein Betriebssystem-Image oder eine Image-Familie aus, die die IRDMA-Netzwerkschnittstelle unterstützt. Weitere Informationen finden Sie unter Details zu Betriebssystemen.

  2. Erstellen Sie mithilfe des im vorherigen Schritt ausgewählten Betriebssystem-Images oder der Image-Familie ein Betriebssystem-Image mit der images.insert Methode.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images
    {
      "name":"IMAGE_NAME",
      "sourceImage":"SOURCE_IMAGE_URI"
    }
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: ID des Projekts, in dem das neue Image erstellt werden soll
    • IMAGE_NAME: Ein Name für das benutzerdefinierte Image
    • SOURCE_IMAGE_URI: Der URI für das spezifische Betriebssystem-Image oder die Image-Familie, die Sie verwenden möchten.

      Beispiele:

      • Spezifisches Betriebssystem-Image: "sourceImage": "projects/rocky-linux-cloud/global/images/hpc-rocky-linux-8-v20250721"
      • Imagefamilie: "sourceImage": "projects/rocky-linux-cloud/global/images/family/hpc-rocky-linux-8"

      Wenn Sie eine Image-Familie angeben, erstellt Compute Engine eine VM aus dem neuesten nicht verworfenen Betriebssystem-Image in dieser Familie. Weitere Informationen zur Verwendung von Image-Familien finden Sie unter Best Practices für Image-Familien.

VM mit IRDMA-Treiberunterstützung erstellen

Sie können eine VM mit einem der unterstützten öffentlichen Betriebssystem-Images oder mit einem benutzerdefinierten Betriebssystem-Image erstellen, das Sie mithilfe der Anleitung unter Benutzerdefiniertes Betriebssystem-Image erstellen, das IRDMA unterstützt, erstellt haben.

Wenn Sie Cloud RDMA mit Ihrer Instanz verwenden möchten, müssen Sie mehrere Netzwerkschnittstellen für die Instanz konfigurieren. Eine Netzwerkschnittstelle muss den GVNIC-Treiber verwenden (geben Sie nic-type=GVNIC an) und eine andere Netzwerkschnittstelle muss den IRDMA-Treiber verwenden (geben Sie nic-type=IRDMA an).

VM mit einem öffentlichen Betriebssystem-Image erstellen

Folgen Sie der Anleitung auf den folgenden Seiten, um VMs mit dem HPC-VM-Image oder einem öffentlichen Betriebssystem-Image zu erstellen, das Cloud RDMA unterstützt:

VM mit dem benutzerdefinierten Betriebssystem-Image erstellen

Wenn Sie ein benutzerdefiniertes Betriebssystem-Image erstellt haben, das Cloud RDMA unterstützt, können Sie dieses benutzerdefinierte Betriebssystem-Image verwenden, um eine VM über die Google Cloud Console, Google Cloud CLI oder REST zu erstellen.

Eine Anleitung zum Erstellen einer Instanz mit einem benutzerdefinierten Image finden Sie unter Instanz aus einem benutzerdefinierten Image erstellen.

Prüfen, ob Cloud RDMA aktiviert ist

Führen Sie nach der Bereitstellung der VM den folgenden Bandbreitentest aus, um sicherzustellen, dass Sie eine fehlerfreie Cloud RDMA-fähige VM-Instanz verwenden.

ib_send_bw -aF & # start the server
ib_send_bw -aF $(hostname) # start the client (can be done on the same machine)

Die gemeldete Bandbreite für eine einzelne Verbindung BW average [MB/s] sollte für Zeilen über 4096 B mindestens 11.000 MB/s erreichen. Bei kleineren Nachrichtengrößen sind kleinere Werte zu erwarten.

Nächste Schritte