Die Auswahl der richtigen Speicherkonfiguration ist entscheidend für die Leistung und Stabilität Ihres Trainingsclusters. Der Dienst ist in zwei separate, leistungsstarke Speicherlösungen integriert:
- Filestore: Ein erforderlicher verwalteter Dateidienst, der die freigegebenen
/home-Verzeichnisse für alle Knoten im Cluster bereitstellt. - Google Cloud Managed Lustre: Ein optionales paralleles Dateisystem, das für extreme I/O-Leistung entwickelt wurde und sich ideal für das Training mit riesigen Datasets eignet.
Auf dieser Seite finden Sie einen Überblick über die wichtigsten Anwendungsfälle sowie die spezifischen Anforderungen an Netzwerk und Bereitstellung für eine erfolgreiche Integration in Ihren Cluster.
Speicherintegration für Trainingscluster
Für die Trainingscluster der Gemini Enterprise Agent Platform sind für den Betrieb bestimmte vernetzte Speicherlösungen erforderlich. Filestore ist erforderlich, um die freigegebenen /home-Verzeichnisse für den Cluster bereitzustellen. Managed Lustre ist ein optionales Hochleistungs-Dateisystem für anspruchsvolle Arbeitslasten.
Es ist wichtig, das Netzwerk für diese Speicherdienste richtig zu konfigurieren, bevor Sie Ihren Cluster bereitstellen.
Filestore für Basisverzeichnisse
Für diesen Dienst wird eine Filestore-Instanz verwendet, um das freigegebene Verzeichnis /home für den Cluster bereitzustellen. Damit die Verbindung ordnungsgemäß funktioniert, müssen Sie Ihre Cloud-Ressourcen in dieser Reihenfolge erstellen:
- VPC-Netzwerk erstellen: Stellen Sie zuerst ein VPC-Netzwerk mit der empfohlenen MTU (z. B. 8896) bereit.
- Filestore-Instanz erstellen: Stellen Sie als Nächstes die Filestore-Instanz in der gerade erstellten VPC bereit.
- Trainingscluster erstellen: Stellen Sie den Cluster bereit, der dann eine Verbindung zur Filestore-Instanz im selben Netzwerk herstellen kann.
Google Cloud Managed Lustre für Hochleistungsworkloads
Für Arbeitslasten, die maximale E/A-Leistung erfordern, können Sie ein verwaltetes Lustre-Dateisystem anhängen. Dieser Dienst stellt über den Zugriff auf private Dienste eine Verbindung zu Ihrer VPC her.
Wichtige Einschränkung für das Netzwerk: Kein transitives Peering
Eine wichtige Einschränkung für Filestore und Google Cloud Managed Lustre ist, dass sie kein transitives Peering unterstützen. Das bedeutet, dass nur Ressourcen innerhalb der direkt verbundenen VPC auf den Speicherdienst zugreifen können. Wenn beispielsweise die VPC Ihres Clusters (N1) per Peering mit dem Speicherdienst verbunden ist, hat eine andere VPC (N2), die per Peering mit N1 verbunden ist, keinen Zugriff.
Speicherintegration für Trainingscluster
Für die Trainingscluster der Gemini Enterprise Agent Platform sind für den Betrieb bestimmte, vernetzte Speicherlösungen erforderlich. Filestore ist erforderlich, um die freigegebenen /home-Verzeichnisse für den Cluster bereitzustellen. Google Cloud Managed Lustre ist ein optionales Hochleistungsdateisystem für anspruchsvolle Arbeitslasten.
Es ist wichtig, das Netzwerk für diese Speicherdienste richtig zu konfigurieren, bevor Sie Ihren Cluster bereitstellen.
Filestore
Wichtige Anwendungsfälle für Filestore mit Trainingsclustern
Filestore ist nicht nur das erforderliche Home-Verzeichnis, sondern bietet auch eine flexible Möglichkeit, Daten mit Ihrem Cluster zu teilen.
Zusätzlicher gemeinsamer Speicher: Sie können einem beliebigen Knotenpool eine oder mehrere zusätzliche Filestore-Instanzen anhängen. Das ist nützlich, um Trainingsjobs gemeinsame Datasets, Anwendungsbinärdateien oder andere gemeinsame Dateien zur Verfügung zu stellen. Wenn sie in der Knotenpoolkonfiguration angegeben sind, werden diese Instanzen in Trainingsclustern automatisch auf jedem Knoten im Verzeichnis /mnt/filestore bereitgestellt.
Filestore-Anforderungen
Für eine erfolgreiche Filestore-Integration mit Trainingsclustern ist die folgende Konfiguration erforderlich:
- API aktivieren: Die Filestore API muss in Ihrem Google Cloud-Projekt aktiviert sein, bevor Sie den Cluster erstellen können.
- Obligatorisches
/home-Verzeichnis: Jeder Trainingscluster erfordert eine dedizierte Filestore-Instanz, die als freigegebenes/home-Verzeichnis dient. Für diese Instanz gelten bestimmte Konfigurationsanforderungen:- Netzwerk: Es muss sich im selben VPC-Netzwerk wie die Compute- und Log-in-Knoten des Clusters befinden.
- Standort: Er muss sich in derselben Region oder Zone wie der Cluster befinden.
- Konfiguration: Sie müssen den vollständigen Ressourcennamen dieser Instanz im Feld
angeben, wenn Sie den Cluster über die API erstellen.orchestrator_spec.slurm_spec.home_directory_storage
Filestore-Speicher konfigurieren
Erstellen Sie eine zonale oder regionale Filestore-Instanz in der Zone, in der Sie den Cluster erstellen möchten. Für die Vertex AI API muss ein Filestore an den Cluster angehängt werden, der als /home-Verzeichnis dient.
Diese Filestore-Instanz muss sich in derselben Zone oder Region und im selben Netzwerk wie alle Compute-Knoten und Log-in-Knoten befinden. Im folgenden Beispiel wird 172.16.10.0/24 für die Filestore-Bereitstellung verwendet.
SERVICE_TIER=ZONAL # Can use BASIC_SSD # Create reserved IP address range gcloud compute addresses create CLUSTER_IDfs-ip-range \ --project=PROJECT_ID \ --global \ --purpose=VPC_PEERING \ --addresses=172.16.10.0 \ --prefix-length=24 \ --description="Filestore instance reserved IP range" \ --network=NETWORK # Get the CIDR range FS_IP_RANGE=$( gcloud compute addresses describe CLUSTER_IDfs-ip-range \ --global \ --format="value[separator=/](address, prefixLength)" ) # Create the Filestore instance gcloud filestore instances create FS_INSTANCE_ID \ --project=PROJECT_ID \ --location=ZONE \ --tier=ZONAL \ --file-share=name="nfsshare",capacity=1024 \ --network=name=NETWORK,connect-mode=DIRECT_PEERING,reserved-ip-range="${FS_IP_RANGE}"
Lustre
Google Cloud Managed Lustre bietet ein leistungsstarkes, vollständig verwaltetes paralleles Dateisystem, das für KI- und HPC-Anwendungen optimiert ist. Mit einer Kapazität im Multi-Petabyte-Bereich und einem Durchsatz von bis zu 1 TB/s erleichtert Managed Lustre die Migration anspruchsvoller Arbeitslasten in die Cloud.
Managed Lustre-Instanzen befinden sich in Zonen innerhalb von Regionen. Eine Region ist ein spezifischer geografischer Ort, an dem Sie Ihre Ressourcen ausführen können. Jede Region ist in mehrere Zonen unterteilt. Die Region us-central1 in den zentralen USA hat beispielsweise die Zonen us-central1-a, us-central1-b, us-central1-c und us-central1-f. Weitere Informationen finden Sie unter Geografie und Regionen.
Wenn Sie die Netzwerklatenz verringern möchten, empfehlen wir, eine Managed Lustre-Instanz in einer Region und Zone zu erstellen, die sich in der Nähe der geplanten Verwendung befindet.
Beim Erstellen einer Managed Lustre-Instanz müssen Sie die folgenden Attribute definieren:
- Der Name der von Google Cloud verwendeten Instanz.
- Der Dateisystemname, der von clientseitigen Tools verwendet wird, z. B.
lfs. - Die Speicherkapazität in Gibibyte (GiB). Die Kapazität kann zwischen 9.000 GiB und etwa 8 PiB (7.632.000 GiB) liegen. Die maximale Größe einer Instanz hängt von ihrer Leistungsstufe ab.
- Managed Lustre bietet Leistungsstufen von 125 MB/s pro TiB bis 1.000 MB/s pro TiB.
- Für eine optimale Leistung sollten Sie Ihre Instanz in derselben Zone wie Ihren Trainingscluster erstellen.
- Das VPC-Netzwerk für diese Instanz muss dasselbe sein, das Ihr Trainingscluster verwendet.
Managed Lustre bietet vier Leistungsstufen mit jeweils unterschiedlichen maximalen Durchsatzgeschwindigkeiten pro TiB. Leistungsstufen wirken sich auch auf die Mindest- und Höchstinstanzgröße sowie auf die Schrittgröße zwischen akzeptablen Kapazitätswerten aus. Die Leistungsstufe einer Instanz kann nach dem Erstellen nicht mehr geändert werden.
Für die Bereitstellung von Managed Lustre ist der Zugriff auf private Dienste erforderlich. Dadurch wird VPC-Peering zwischen der VPC des Trainingsclusters und der VPC, in der Managed Lustre gehostet wird, über ein dediziertes /20-Subnetz eingerichtet.
Managed Lustre-Instanz konfigurieren (optional)
Verwenden Sie Google Cloud Managed Lustre nur, wenn Sie Managed Lustre im Model Development Service verwenden möchten.
Google Cloud Managed Lustre ist ein vollständig verwalteter, hochleistungsfähiger Dienst für parallele Dateisysteme in Google Cloud. Sie wurde speziell für die Beschleunigung anspruchsvoller Arbeitslasten in den Bereichen KI/maschinelles Lernen und Hochleistungs-Computing (HPC) entwickelt.
Für eine optimale Leistung bei der Verwendung von Trainingsclustern sollte Google Cloud Managed Lustre über VPC-Peering mit Services Networking in derselben VPC und Zone wie Ihr Trainingscluster bereitgestellt werden.
Lustre-Instanz erstellen
gcloud lustre instances create LUSTRE_INSTANCE_ID \
--project=PROJECT_ID \
--location=ZONE \
--filesystem=lustrefs \
--per-unit-storage-throughput=500 \
--capacity-gib=36000 \
--network=NETWORK_NAME
Cloud Storage-Einbindung
Das VM-Dienstkonto muss die Rolle „Storage-Objekt-Nutzer“ haben.
Standard-Mount
Vertex AI-Trainingscluster verwenden Cloud Storage FUSE, um Ihre Cloud Storage-Buckets dynamisch auf allen Anmelde- und Rechenknoten bereitzustellen. Dadurch sind sie im Verzeichnis /gcs verfügbar. Dynamisch bereitgestellte Buckets können nicht vom Root-Bereitstellungspunkt /gcs aus aufgelistet werden. Sie können auf die dynamisch bereitgestellten Buckets als Unterverzeichnisse zugreifen:
user@testcluster:$ ls /gcs/your-bucket-name
user@testcluster:$ cd /gcs/your-bucket-name
Benutzerdefinierte Halterung
Wenn Sie einen bestimmten Cloud Storage-Bucket mit benutzerdefinierten Optionen in ein lokales Verzeichnis einbinden möchten, verwenden Sie die folgende Befehlsstruktur. Sie können sie entweder als Teil des Startskripts bei der Clustererstellung übergeben oder direkt auf dem Knoten ausführen, nachdem der Cluster erstellt wurde.
sudo mkdir -p $MOUNT_DIR
echo "$GCS_BUCKET $MOUNT_DIR gcsfuse $OPTION_1,$OPTION_2,..." | sudo tee -a /etc/fstab
sudo mount -a
Wenn Sie beispielsweise den Bucket mtdata im Verzeichnis /data bereitstellen möchten, verwenden Sie den folgenden Befehl:
sudo mkdir -p /data
echo "mtdata /data gcsfuse defaults,_netdev,implicit_dirs,allow_other,dir_mode=777,file-mode=777,metadata_cache_negative_ttl_secs=0,metadata_cache_ttl_secs=-1,stat_cache_max_size_mb=-1,type_cache_max_size_mb=-1,enable_streaming_writes=true" | sudo tee -a /etc/fstab
sudo mount -a
Für eine vollständig automatisierte und konsistente Einrichtung sollten Sie Ihre benutzerdefinierten Mount-Skripts in die Startskripts des Clusters einfügen. So wird sichergestellt, dass Ihre Cloud Storage-Buckets beim Start automatisch auf allen Knoten bereitgestellt werden, sodass keine manuelle Konfiguration erforderlich ist.
Weitere Konfigurationsempfehlungen für KI/ML-Arbeitslasten finden Sie im Leitfaden mit Best Practices zur Leistungsoptimierung. Dort finden Sie spezifische Anleitungen zur Optimierung von Cloud Storage FUSE für Training, Inferenz und Prüfpunkte.
Nächste Schritte
In den nächsten Schritten geht es darum, wie Sie Ihren Cluster effektiv für das Training im großen Maßstab nutzen können.
- Code für verteiltes Training anpassen: Damit Sie die Vorteile eines Clusters mit mehreren Knoten und eines leistungsstarken Speichers voll ausschöpfen können, müssen Sie Ihren Trainingscode für eine verteilte Umgebung anpassen.
- Jobs mit Gemini Enterprise Agent Platform Pipelines orchestrieren: Für Produktions-Workflows können Sie den Prozess der Datenvorbereitung, des Job-Einreichung und der Modellregistrierung mit Gemini Enterprise Agent Platform Pipelines automatisieren.
- Trainingsjobs überwachen und debuggen: Verfolgen Sie den Fortschritt und die Ressourcenauslastung Ihrer Jobs für verteiltes Training, um Probleme zu erkennen und zu beheben.