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 Speicher ü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 den IDPF-Netzwerktreiber 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 und Z4M-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
-
Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben.
Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Google Cloud Dienste und APIs überprüft. Wenn Sie
Code oder Beispiele aus einer lokalen Entwicklungsumgebung ausführen möchten, können Sie sich bei
Compute Engine authentifizieren, indem Sie eine der folgenden Optionen auswählen:
Wählen Sie den Tab für die Verwendung der Beispiele auf dieser Seite aus:
Console
Wenn Sie über die Google Cloud console auf Google Cloud Dienste und APIs zugreifen, müssen Sie die Authentifizierung nicht einrichten.
gcloud
-
Installieren Sie die Google Cloud CLI. Initialisieren Sie die Google Cloud CLI nach der Installation mit dem folgenden Befehl:
gcloud initWenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
- Legen Sie eine Standardregion und -zone fest.
REST
Wenn Sie die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, verwenden Sie die Anmeldedaten, die Sie der gcloud CLI bereitstellen.
Installieren Sie die Google Cloud CLI.
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
Weitere Informationen finden Sie in der Google Cloud Authentifizierungsdokumentation unter Für die Verwendung von REST authentifizieren.
Betriebssystemunterstützung
Google empfiehlt die Verwendung von Advanced Compute Images oder des HPC-VM-Images, bei dem Cloud RDMA-Treiber vorinstalliert sind.
Der IRDMA-RDMA-Treiber wird mit den folgenden öffentlichen Betriebssystem-Images unterstützt, die für bereitgestellt werden Google Cloud:
- 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, das Nicht-RDMA-Traffic zu anderen Google Cloud Diensten oder zum Internet weiterleitet.
Die Aufgaben zum Erstellen einer Compute-Instanz, die Cloud RDMA verwendet, sind folgende:
- 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.
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
Erstellen Sie eine Compute-Instanz mit dem öffentlichen Betriebssystem-Image oder einem 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.
Prüfen Sie, ob Cloud RDMA aktiviert ist.
IRDMA-Treiber zu einem Betriebssystem-Image hinzufügen
Wenn Sie ein Betriebssystem-Image verwenden möchten, auf dem der IRDMA-Treiber nicht standardmäßig installiert ist, führen Sie die folgenden Schritte aus:
Erstellen Sie eine Compute-Instanz, die das Betriebssystem-Image verwendet, das Sie mit Cloud RDMA verwenden möchten.
Stellen Sie eine Verbindung zur erstellten Compute-Instanz her.
Wenn Sie kein für Google Cloudoptimiertes Betriebssystem-Image verwenden, fügen Sie das CIQ-Repository mit einer der folgenden Optionen hinzu:
Empfohlen: Installieren Sie das CIQ-RPM-Paket direkt, um das CIQ-Repository zu konfigurieren:
sudo dnf install -y https://depot.ciq.com/public/files/gce-accelerator/irdma-kernel-modules-el8-x86_64/irdma-repos.rpmAlternativ können Sie die YUM-Repositories direkt aktualisieren:
sudo tee /etc/yum.repos.d/irdma-kernel-modules.repo > /dev/null << 'EOF' [irdma-kernel-modules] name = irdma kernel modules for EL $releasever ($basearch) baseurl = https://depot.ciq.com/public/files/gce-accelerator/irdma-kernel-modules-el$releasever-$basearch metadata_expire = 5m priority = -1 repo_gpgcheck = false gpgcheck = false enabled = true skip_if_unavailable = true [irdma-kernel-modules-source] name = irdma kernel modules for EL $releasever (source) baseurl = https://depot.ciq.com/public/files/gce-accelerator/irdma-kernel-modules-el$releasever-source metadata_expire = 5m priority = -1 repo_gpgcheck = false gpgcheck = false enabled = false skip_if_unavailable = true [irdma-kernel-modules-testing] name = irdma kernel modules for EL $releasever ($basearch) - testing baseurl = https://depot.ciq.com/public/files/gce-accelerator/irdma-kernel-modules-testing-el$releasever-$basearch metadata_expire = 5m priority = -1 repo_gpgcheck = false gpgcheck = false enabled = false skip_if_unavailable = true [irdma-kernel-modules-testing-source] name = irdma kernel modules for EL $releasever (source) - testing baseurl = https://depot.ciq.com/public/files/gce-accelerator/irdma-kernel-modules-testing-el$releasever-source metadata_expire = 5m priority = -1 repo_gpgcheck = false gpgcheck = false enabled = false skip_if_unavailable = true EOF
Installieren Sie das Treiberpaket
kmod-idpf-irdma, das die IDPF- und IRDMA-Treiber enthält:sudo dnf install kmod-idpf-irdmaFür das CIQ-Paket sind bestimmte Kernel-Versionen erforderlich, was sich auf folgende Weise auf die Installation auswirken kann:
- Wenn Ihre Kernel-Version älter als die erforderliche Version ist, wird durch die Installation des Pakets automatisch ein Upgrade auf die erforderliche Kernel-Version und andere Systempakete als Abhängigkeit durchgeführt.
- Wenn Ihre Kernel-Version neuer als die vom CIQ-Repository unterstützte Version ist, kann die Installation fehlschlagen. Verwenden Sie in diesem Fall ein für optimiertes Google CloudBetriebssystem-Image, das eine unterstützte Kernel-Version verwendet.
Prüfen Sie, ob das Paket
kmod-idpf-irdmainstalliert ist:sudo dnf list --installedDie Ausgabe enthält einen Eintrag ähnlich dem folgenden:
kmod-idpf-irdma.ARCHITECTURE VERSION@REPO_NAME
Installieren Sie die Userspace-Pakete:
sudo dnf install -y \ libibverbs libibverbs-devel libibverbs-utils \ librdmacm librdmacm-devel librdmacm-utils \ infiniband-diagsMit den
librdmacm-utilsundlibibverbs-utilsPaketen werden zusätzliche Dienstprogramme installiert, mit denen Sie die RDMA-Funktionalität prüfen können, z. B.rpingundibv_devinfo.Empfohlen: Nachdem Sie das Betriebssystem in Ihrer Compute-Instanz für die Verwendung von IRDMA aktualisiert haben, erstellen Sie ein benutzerdefiniertes Image basierend auf diesem Betriebssystem-Image. Sie können dann das benutzerdefinierte Image verwenden, um weitere Compute-Instanzen mit IRDMA unter diesem Betriebssystem zu erstellen.
Folgen Sie der Anleitung unter Image erstellen, um ein benutzerdefiniertes Image mit dem Bootlaufwerk der Instanz zu erstellen, die Sie in ersten Schritt erstellt haben.
Benutzerdefiniertes Betriebssystem-Image aus einem öffentlichen 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
Wählen Sie ein Betriebssystem-Image oder eine Imagefamilie 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.
Erstellen Sie mit dem im vorherigen Schritt ausgewählten Betriebssystem-Image oder der Image-Familie ein benutzerdefiniertes Betriebssystem-Image. Verwenden Sie zum Erstellen des benutzerdefinierten Betriebssystem-Image den
gcloud compute images createBefehl. 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_PROJECTErsetzen 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-imageFlag durch das--source-image-familyFlag 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
Wählen Sie ein Betriebssystem-Image oder eine Imagefamilie aus, die die IRDMA-Netzwerkschnittstelle unterstützt. Weitere Informationen finden Sie unter Details zu Betriebssystemen.
Erstellen Sie mit dem im vorherigen Schritt ausgewählten Betriebssystem-Image oder der Image-Familie ein Betriebssystem-Image mit der
images.insertMethode.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 sollIMAGE_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.
- Spezifisches Betriebssystem-Image:
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
Wenn Sie VMs mit Advanced Compute Images, dem HPC-VM-Image oder einem öffentlichen Betriebssystem-Image erstellen möchten, das Cloud RDMA unterstützt, folgen Sie der Anleitung auf den folgenden Seiten:
- Informationen zum Erstellen einer On-Demand-Instanz finden Sie unter Instanz erstellen, die Cloud RDMA verwendet.
- Informationen zum Erstellen von Cloud RDMA-fähigen Instanzen im Bulk finden Sie unter HPC-optimierte Instanzen im Bulk erstellen, die Cloud RDMA verwenden.
- Informationen zum Erstellen eines Clusters von Cloud RDMA-fähigen Instanzen mit Slurm finden Sie unter Cloud RDMA-fähigen HPC-Slurm-Cluster mit H4D-Instanzen erstellen.
- Informationen zum Erstellen einer MIG finden Sie unter HPC-MIG mit der Maschinenserie H4D erstellen.
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, die 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 durch, 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
- Verbindung zur Instanz herstellen
- MTU-Einstellung eines VPC-Netzwerks ändern
- Übersicht über die Erstellung von HPC-Clustern
- MPI-Anwendungen auf H4D-VMs mit Cloud RDMA einrichten und skalieren