Storage

Se ti interessano i cluster di addestramento Vertex AI, contatta il tuo rappresentante di vendita per l'accesso.

La scelta della configurazione di archiviazione giusta è fondamentale per le prestazioni e la stabilità del cluster di addestramento. Il servizio si integra con due soluzioni di archiviazione distinte e ad alte prestazioni:

  • Filestore: un servizio di file gestito obbligatorio che fornisce le directory /home condivise per tutti i nodi del cluster.
  • Google Cloud Managed Lustre: un file system parallelo opzionale progettato per prestazioni I/O estreme, ideale per l'addestramento su set di dati enormi.

Questa pagina fornisce una panoramica dei loro utilizzi principali e descrive i requisiti specifici di networking e deployment per un'integrazione riuscita con il tuo cluster.

Integrazione dello spazio di archiviazione per i cluster di addestramento

I cluster di addestramento Vertex AI si basano su soluzioni di archiviazione specifiche e in rete per il loro funzionamento. Filestore è necessario per fornire le directory /home condivise per il cluster, mentre Managed Lustre è un file system ad alte prestazioni facoltativo per i workload più impegnativi.

È fondamentale configurare correttamente il networking per questi servizi di archiviazione prima di eseguire il deployment del cluster.

Filestore per le home directory

Questo servizio utilizza un'istanza Filestore per fornire la directory /home condivisa per il cluster. Per garantire una connettività corretta, devi creare le risorse cloud in questo ordine specifico:

  1. Crea la rete VPC: innanzitutto, implementa una rete VPC configurata con l'MTU consigliata (ad esempio, 8896).
  2. Crea l'istanza Filestore: poi, esegui il deployment dell'istanza Filestore nel VPC appena creato.
  3. Crea il cluster di addestramento: infine, esegui il deployment del cluster, che potrà connettersi all'istanza Filestore all'interno della stessa rete.

Google Cloud Managed Lustre per carichi di lavoro ad alte prestazioni

Per i carichi di lavoro che richiedono le massime prestazioni di I/O, puoi collegare un file system Managed Lustre. Questo servizio si connette al tuo VPC utilizzando l'accesso privato ai servizi.

Limitazione critica del networking: nessun peering transitivo

Una limitazione critica sia per Filestore sia per Google Cloud Managed Lustre è che non supportano il peering transitivo. Ciò significa che solo le risorse all'interno del VPC connesso direttamente possono accedere al servizio di archiviazione. Ad esempio, se il VPC (N1) del tuo cluster è in peering con il servizio di archiviazione, un altro VPC (N2) in peering con N1 non avrà accesso.

Integrazione dello spazio di archiviazione per i cluster di addestramento

I cluster di addestramento Vertex AI si basano su soluzioni di archiviazione specifiche e in rete per il loro funzionamento. Filestore è necessario per fornire le directory /home condivise per il cluster, mentre Google Cloud Managed Lustre è un file system ad alte prestazioni facoltativo per i carichi di lavoro più impegnativi. È fondamentale configurare correttamente il networking per questi servizi di archiviazione prima di eseguire il deployment del cluster.

Filestore

Utilizzi principali di Filestore con i cluster di addestramento

Oltre al suo ruolo di directory home obbligatoria, Filestore offre un modo flessibile per condividere i dati con il cluster.
Archiviazione condivisa aggiuntiva: puoi collegare una o più istanze Filestore aggiuntive a qualsiasi pool di nodi. Ciò è utile per fornire set di dati condivisi, binari di applicazioni o altri file comuni ai tuoi job di addestramento. Se specificate nella configurazione del pool di nodi, i cluster di addestramento montano automaticamente queste istanze nella directory /mnt/filestore su ogni nodo.

Requisiti di Filestore

Per una corretta integrazione di Filestore con i cluster di addestramento è necessaria la seguente configurazione:

  • Abilita l'API: l'API Filestore deve essere abilitata nel tuo progetto Google Cloud prima di poter creare il cluster.
  • Obbligatorio /home Directory: ogni cluster di addestramento richiede un'istanza Filestore dedicata che funga da directory /home condivisa. Questa istanza ha requisiti di configurazione specifici:
    • Rete: deve trovarsi nella stessa rete VPC dei nodi di calcolo e di accesso del cluster.
    • Località: deve trovarsi nella stessa regione o zona del cluster.
    • Configurazione: devi specificare il nome completo della risorsa di questa istanza nel campo orchestrator_spec.slurm_spec.home_directory_storage quando crei il cluster tramite l'API.

Configura l'archiviazione Filestore

Crea un'istanza Filestore zonale o regionale nella zona in cui vuoi creare il cluster. L'API Vertex AI richiede che a un cluster sia collegato un Filestore che funga da directory /home. Questo Filestore deve trovarsi nella stessa zona o regione e nella stessa rete di tutti i nodi di calcolo e di accesso. Nell'esempio seguente, 172.16.10.0/24 viene utilizzato per il deployment di Filestore.

    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 offre un file system parallelo ad alte prestazioni e completamente gestito ottimizzato per applicazioni AI e HPC. Con una capacità su scala multi-petabyte e un throughput fino a 1 TBps, Managed Lustre facilita la migrazione di workload impegnativi al cloud.

Le istanze Managed Lustre risiedono in zone all'interno delle regioni. Una regione rappresenta una posizione geografica specifica in cui puoi eseguire le tue risorse. Ogni regione è suddivisa in diverse zone. Ad esempio, la regione us-central1 negli Stati Uniti centrali è composta dalle zone us-central1-a, us-central1-b, us-central1-c e us-central1-f. Per saperne di più, consulta Area geografica e regioni.

Per ridurre la latenza di rete, ti consigliamo di creare un'istanza Managed Lustre in una regione e zona vicine a dove prevedi di utilizzarla.

Quando crei un'istanza Managed Lustre, devi definire le seguenti proprietà:

  • Il nome dell'istanza utilizzata da Google Cloud.
  • Il nome del file system utilizzato dagli strumenti lato client, ad esempio lfs.
  • La capacità di archiviazione in gibibyte (GiB). La capacità può variare da 9000 GiB a circa 8 PiB (7.632.000 GiB). Le dimensioni massime di un'istanza dipendono dal livello di prestazioni.
  • Managed Lustre offre livelli di prestazioni che vanno da 125 MBps per TiB a 1000 MBps per TiB.
  • Per ottenere prestazioni ottimali, crea l'istanza nella stessa zona del cluster di addestramento.
  • La rete VPC per questa istanza deve essere la stessa utilizzata dal cluster di addestramento.

Managed Lustre offre 4 livelli di prestazioni, ognuno con una velocità di throughput massima diversa per TiB. I livelli di prestazioni influiscono anche sulle dimensioni minime e massime dell'istanza e sulla dimensione del passo tra i valori di capacità accettabili. Non puoi modificare il livello di prestazioni di un'istanza dopo la creazione.

Il deployment di Managed Lustre richiede l'accesso privato ai servizi, che stabilisce il peering VPC tra il VPC del cluster di addestramento e il VPC che ospita Managed Lustre, utilizzando una subnet /20 dedicata.

Configura l'istanza Managed Lustre (facoltativo)

Utilizza Google Cloud Managed Lustre solo se vuoi utilizzare Managed Lustre in Model Development Service.

Google Cloud Managed Lustre è un servizio di file system parallelo completamente gestito e ad alte prestazioni su Google Cloud. È progettata specificamente per accelerare i workload impegnativi in AI/machine learning e computing ad alte prestazioni (HPC).

Per prestazioni ottimali quando utilizzi cluster di addestramento, Google Cloud Managed Lustre deve essere implementato dallo stesso VPC e dalla stessa zona del cluster di addestramento utilizzando il peering VPC per il networking dei servizi.

Crea istanza Lustre

    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

  

Montaggio di Cloud Storage

Come prerequisito, assicurati che il account di servizio VM abbia il ruolo Utente oggetti Storage.

Montaggio predefinito

I cluster di addestramento Vertex AI utilizzano Cloud Storage FUSE per montare dinamicamente i bucket Cloud Storage su tutti i nodi di accesso e di calcolo, rendendoli accessibili nella directory /gcs. I bucket montati dinamicamente non possono essere elencati dal punto di montaggio radice /gcs. Puoi accedere ai bucket montati dinamicamente come sottodirectory:

user@testcluster:$ ls /gcs/your-bucket-name
user@testcluster:$ cd /gcs/your-bucket-name

Supporto personalizzato

Per montare un bucket Cloud Storage specifico in una directory locale con opzioni personalizzate, utilizza la seguente struttura di comando passandola come parte dello script di avvio durante la creazione del cluster o eseguendola direttamente sul nodo dopo la creazione del cluster.

sudo mkdir -p $MOUNT_DIR
echo "$GCS_BUCKET $MOUNT_DIR gcsfuse $OPTION_1,$OPTION_2,..." | sudo tee -a /etc/fstab
sudo mount -a

Ad esempio, per montare il bucket mtdata nella directory /data, utilizza il seguente comando:

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

Per una configurazione completamente automatizzata e coerente, includi gli script di montaggio personalizzati negli script di avvio del cluster. Questa pratica garantisce che i bucket Cloud Storage vengano montati automaticamente su tutti i nodi all'avvio, eliminando la necessità di una configurazione manuale.

Per ulteriori consigli di configurazione personalizzati per i carichi di lavoro di AI/ML, consulta la guida alle best practice per l'ottimizzazione delle prestazioni. Fornisce indicazioni specifiche per l'ottimizzazione di Cloud Storage FUSE per l'addestramento, l'inferenza e il checkpointing.

Passaggi successivi

I passaggi successivi si concentrano sull'utilizzo efficace del cluster per l'addestramento su larga scala.