Storage

Wenn Sie sich für Vertex AI-Trainingscluster interessieren, wenden Sie sich an Ihren Vertriebsbeauftragten, um Zugriff zu erhalten.

Die Auswahl der richtigen Speicherkonfiguration ist entscheidend für die Leistung und Stabilität Ihres Trainingsclusters. Der Dienst lässt sich in zwei verschiedene, leistungsstarke Speicherlösungen einbinden:

  • 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 E/A-Leistung entwickelt wurde und sich ideal für das Training mit riesigen Datasets eignet.

Auf dieser Seite finden Sie eine Übersicht über die wichtigsten Anwendungsfälle und die spezifischen Anforderungen an Netzwerk und Bereitstellung für eine erfolgreiche Einbindung in Ihren Cluster.

Speicherintegration für Trainingscluster

Vertex AI-Trainingscluster sind für ihren Betrieb auf bestimmte vernetzte Speicherlösungen angewiesen. 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

Dieser Dienst verwendet eine Filestore-Instanz, um das freigegebene /home-Verzeichnis für den Cluster bereitzustellen. Damit die Verbindung ordnungsgemäß funktioniert, müssen Sie Ihre Cloud-Ressourcen in dieser Reihenfolge erstellen:

  1. VPC-Netzwerk erstellen: Stellen Sie zuerst ein VPC-Netzwerk bereit, das mit der empfohlenen MTU konfiguriert ist (z. B. 8896).
  2. Filestore-Instanz erstellen: Stellen Sie als Nächstes die Filestore-Instanz in der gerade erstellten VPC bereit.
  3. Trainingscluster erstellen: Stellen Sie schließlich den Cluster bereit, der dann eine Verbindung zur Filestore-Instanz im selben Netzwerk herstellen kann.

Google Cloud Managed Lustre für Hochleistungs-Arbeitslasten

Für Arbeitslasten, die maximale E/A-Leistung erfordern, können Sie ein Managed Lustre-Dateisystem anhängen. Dieser Dienst stellt über den privaten Dienstzugriff eine Verbindung zu Ihrer VPC her.

Wichtige Einschränkung des Netzwerks: 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 (N1) Ihres Clusters mit dem Speicherdienst verbunden ist, hat eine andere VPC (N2), die mit N1 verbunden ist, keinen Zugriff.

Speicherintegration für Trainingscluster

Vertex AI-Trainingscluster sind für ihren Betrieb auf bestimmte vernetzte Speicherlösungen angewiesen. Filestore ist erforderlich, um die freigegebenen /home-Verzeichnisse für den Cluster bereitzustellen. Google Cloud 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

Wichtige Anwendungsfälle von Filestore mit Trainingsclustern

Neben seiner Rolle als obligatorisches Basisverzeichnis bietet Filestore eine flexible Möglichkeit, Daten für Ihren Cluster freizugeben.
Zusätzlicher freigegebener Speicher: Sie können jedem Knotenpool eine oder mehrere zusätzliche Filestore Instanzen anhängen. Das ist nützlich, um freigegebene Datasets, Anwendungsbinärdateien, oder andere gängige Dateien für Ihre Trainingsjobs bereitzustellen. Wenn in der Knotenpoolkonfiguration angegeben, werden diese Instanzen von Trainingsclustern automatisch im /mnt/filestore Verzeichnis auf jedem Knoten 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 benötigt eine dedizierte Filestore-Instanz, die als freigegebenes /home Verzeichnis dient. Für diese Instanz gelten bestimmte Konfigurationsanforderungen:
    • Netzwerk: Sie muss sich im selben VPC-Netzwerk wie die Compute- und Anmeldeknoten des Clusters befinden.
    • Standort: Sie muss sich in derselben Region oder Zone wie der Cluster befinden.
    • Konfiguration: Sie müssen den vollständigen Ressourcennamen dieser Instanz im orchestrator_spec.slurm_spec.home_directory_storage Feld angeben, wenn Sie den Cluster über die API erstellen.

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 eine Filestore-Instanz an den Cluster angehängt sein, die als /home-Verzeichnis dient. Diese Filestore-Instanz muss sich in derselben Zone oder Region und im selben Netzwerk wie alle Compute- und Anmeldeknoten 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.

Wir empfehlen, zum Verringern der Netzwerklatenz 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 Instanz, die von Google Cloud verwendet wird.
  • 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 erstellen Sie die Instanz in derselben Zone wie Ihren Trainingscluster.
  • Das VPC-Netzwerk für diese Instanz muss dasselbe sein, das Ihr Trainingscluster verwendet.

Managed Lustre bietet vier Leistungsstufen, mit jeweils unterschiedlicher maximaler Durchsatzgeschwindigkeit pro TiB. Die Leistungsstufen wirken sich auch auf die minimale und maximale Instanzgröß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 private Dienstzugriff erforderlich, der VPC-Peering zwischen der VPC des Trainingsclusters und der VPC, in der Managed Lustre gehostet wird, über ein dediziertes /20-Subnetz herstellt.

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, leistungsstarker paralleler Dateisystemdienst in Google Cloud. Er wurde speziell entwickelt, um anspruchsvolle Arbeitslasten in den Bereichen KI/maschinelles Lernen und Hochleistungs-Computing (HPC) zu beschleunigen.

Für eine optimale Leistung bei der Verwendung von Trainingsclustern, sollte Google Cloud Managed Lustre in derselben VPC und Zone wie Ihr Trainingscluster bereitgestellt werden. Verwenden Sie dazu VPC-Peering für die Vernetzung von Diensten.

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 bereitstellen

Als Voraussetzung muss das VM-Dienstkonto die Rolle „Storage-Objekt-Nutzer“ haben.

Standardbereitstellung

Vertex AI-Trainingscluster verwenden Cloud Storage FUSE, um Ihre Cloud Storage-Buckets dynamisch auf allen Anmelde- und Compute-Knoten bereitzustellen und sie so im Verzeichnis /gcs zugänglich zu machen. 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 Bereitstellung

Wenn Sie einen bestimmten Cloud Storage-Bucket mit benutzerdefinierten Optionen in einem lokalen Verzeichnis bereitstellen möchten, verwenden Sie die folgende Befehlsstruktur. Sie können sie entweder als Teil des Startskripts beim Erstellen des Clusters ü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 fügen Sie Ihre benutzerdefinierten Bereitstellungsskripts in die Startskripts des Clusters ein. So werden Ihre Cloud Storage-Buckets beim Start automatisch auf allen Knoten bereitgestellt und eine manuelle Konfiguration ist nicht erforderlich.

Weitere Konfigurationsempfehlungen, die auf KI/ML-Arbeitslasten zugeschnitten sind, 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.