Storage

Si te interesan los clústeres de entrenamiento de Vertex AI, comunícate con tu representante de ventas para obtener acceso.

Elegir la configuración de almacenamiento adecuada es fundamental para el rendimiento y la estabilidad de tu clúster de entrenamiento. El servicio se integra con dos soluciones de almacenamiento distintas y de alto rendimiento:

  • Filestore: Es un servicio de archivos administrado obligatorio que proporciona los directorios /home compartidos para todos los nodos del clúster.
  • Google Cloud Managed Lustre: Es un sistema de archivos paralelos opcional diseñado para un rendimiento de E/S extremo, ideal para el entrenamiento con conjuntos de datos masivos.

En esta página, se proporciona una descripción general de sus usos principales y se describen los requisitos específicos de redes y de implementación para una integración exitosa con tu clúster.

Integración de almacenamiento para clústeres de entrenamiento

Los clústeres de entrenamiento de Vertex AI dependen de soluciones de almacenamiento específicas y conectadas en red para su funcionamiento. Filestore es necesario para proporcionar los directorios /home compartidos para el clúster, mientras que Lustre administrado es un sistema de archivos opcional de alto rendimiento para cargas de trabajo exigentes.

Es fundamental configurar correctamente las redes para estos servicios de almacenamiento antes de implementar tu clúster.

Filestore para directorios principales

Este servicio usa una instancia de Filestore para proporcionar el directorio /home compartido para el clúster. Para garantizar una conectividad adecuada, debes crear tus recursos de Cloud en este orden específico:

  1. Crea la red de VPC: Primero, implementa una red de VPC configurada con la MTU recomendada (por ejemplo, 8896).
  2. Crea la instancia de Filestore: A continuación, implementa la instancia de Filestore en la VPC que acabas de crear.
  3. Crea el clúster de entrenamiento: Por último, implementa el clúster, que luego podrá conectarse a la instancia de Filestore dentro de la misma red.

Google Cloud Managed Lustre para cargas de trabajo de alto rendimiento

Para las cargas de trabajo que requieren el máximo rendimiento de E/S, puedes conectar un sistema de archivos Lustre administrado. Este servicio se conecta a tu VPC a través del acceso privado a servicios.

Limitación de red crítica: No hay intercambio de tráfico transitivo

Una limitación fundamental tanto para Filestore como para Google Cloud Managed Lustre es que no admiten el intercambio de tráfico transitivo. Esto significa que solo los recursos dentro de la VPC conectada directamente pueden acceder al servicio de almacenamiento. Por ejemplo, si la VPC de tu clúster (N1) intercambia tráfico con el servicio de almacenamiento, otra VPC (N2) que intercambia tráfico con N1 no tendrá acceso.

Integración de almacenamiento para clústeres de entrenamiento

Los clústeres de entrenamiento de Vertex AI dependen de soluciones de almacenamiento específicas y conectadas en red para su funcionamiento. Filestore es necesario para proporcionar los directorios /home compartidos para el clúster, mientras que Google Cloud Managed Lustre es un sistema de archivos opcional de alto rendimiento para cargas de trabajo exigentes. Es fundamental configurar correctamente las redes para estos servicios de almacenamiento antes de implementar tu clúster.

Filestore

Usos clave de Filestore con clústeres de entrenamiento

Además de su función como directorio principal obligatorio, Filestore proporciona una forma flexible de compartir datos con tu clúster.
Almacenamiento compartido adicional: Puedes adjuntar una o más instancias de Filestore adicionales a cualquier grupo de nodos. Esto es útil para proporcionar conjuntos de datos compartidos, archivos binarios de aplicaciones o cualquier otro archivo común a tus trabajos de entrenamiento. Cuando se especifican en la configuración del grupo de nodos, los clústeres de entrenamiento montan automáticamente estas instancias en el directorio /mnt/filestore de cada nodo.

Requisitos de Filestore

Para que la integración de Filestore con los clústeres de entrenamiento se realice correctamente, se requiere la siguiente configuración:

  • Habilita la API: La API de Filestore debe estar habilitada en tu proyecto de Google Cloud antes de que puedas crear el clúster.
  • Directorio /home obligatorio: Cada clúster de entrenamiento requiere una instancia de Filestore dedicada para que funcione como el directorio /home compartido. Esta instancia tiene requisitos de configuración específicos:
    • Red: Debe residir en la misma red de VPC que los nodos de procesamiento y acceso del clúster.
    • Ubicación: Debe estar ubicado en la misma región o zona que el clúster.
    • Configuración: Debes especificar el nombre completo del recurso de esta instancia en el campo orchestrator_spec.slurm_spec.home_directory_storage cuando crees el clúster a través de la API.

Configura el almacenamiento de Filestore

Crea una instancia de Filestore zonal o regional en la zona en la que deseas crear el clúster. La API de Vertex AI requiere que se adjunte un Filestore al clúster para que actúe como el directorio /home. Este Filestore debe estar en la misma zona o región y en la misma red que todos los nodos de procesamiento y nodos de acceso. En el siguiente ejemplo, se usa 172.16.10.0/24 para la implementación de 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 ofrece un sistema de archivos paralelos completamente administrado y de alto rendimiento optimizado para aplicaciones de IA y HPC. Con una capacidad de varios petabytes y un rendimiento de hasta 1 TBps, Managed Lustre facilita la migración de cargas de trabajo exigentes a la nube.

Las instancias de Managed Lustre se encuentran en zonas dentro de regiones. Una región es una ubicación geográfica específica donde puedes ejecutar tus recursos. Cada región está subdividida en varias zonas. Por ejemplo, la región us-central1 en el centro de Estados Unidos tiene las zonas us-central1-a, us-central1-b, us-central1-c y us-central1-f. Para obtener más información, consulta Geografía y regiones.

Para disminuir la latencia de la red, te recomendamos que crees una instancia de Lustre administrado en una región y zona que estén cerca de donde planeas usarla.

Cuando creas una instancia de Lustre administrada, debes definir las siguientes propiedades:

  • Nombre de la instancia que usa Google Cloud.
  • Nombre del sistema de archivos que usan las herramientas del cliente, por ejemplo, lfs.
  • Es la capacidad de almacenamiento en gibibytes (GiB). La capacidad puede variar de 9,000 GiB a ~8 PiB (7,632,000 GiB). El tamaño máximo de una instancia depende de su nivel de rendimiento.
  • Managed Lustre ofrece niveles de rendimiento que van desde 125 MBps por TiB hasta 1,000 MBps por TiB.
  • Para obtener el mejor rendimiento, crea tu instancia en la misma zona que tu clúster de entrenamiento.
  • La red de VPC para esta instancia debe ser la misma que usa tu clúster de entrenamiento.

Managed Lustre ofrece 4 niveles de rendimiento, cada uno con una velocidad de capacidad de procesamiento máxima diferente por TiB. Los niveles de rendimiento también afectan el tamaño mínimo y máximo de la instancia, y el tamaño del paso entre los valores de capacidad aceptables. No puedes cambiar el nivel de rendimiento de una instancia después de que se haya creado.

La implementación de Lustre administrado requiere acceso privado a los servicios, lo que establece el intercambio de tráfico entre VPC entre la VPC del clúster de entrenamiento y la VPC que aloja Lustre administrado, con una subred /20 dedicada.

Configura la instancia de Managed Lustre (opcional)

Usa Google Cloud Managed Lustre solo si deseas usar Managed Lustre en el servicio de desarrollo de modelos.

Google Cloud Managed Lustre es un servicio de sistema de archivos paralelo de alto rendimiento y completamente administrado en Google Cloud. Está diseñada específicamente para acelerar cargas de trabajo exigentes en IA/aprendizaje automático y computación de alto rendimiento (HPC).

Para obtener un rendimiento óptimo cuando uses clústeres de entrenamiento, Google Cloud Managed Lustre debe implementarse desde la misma VPC y zona que tu clúster de entrenamiento con el intercambio de tráfico de VPC para la red de servicios.

Crea una instancia de 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

  

Montaje de Cloud Storage

Como requisito previo, asegúrate de que la cuenta de servicio de la VM tenga el rol de usuario de objetos de almacenamiento.

Soporte predeterminado

Los clústeres de entrenamiento de Vertex AI usan Cloud Storage FUSE para activar de forma dinámica tus buckets de Cloud Storage en todos los nodos de acceso y procesamiento, lo que los hace accesibles en el directorio /gcs. Los buckets activados de forma dinámica no pueden aparecer en una lista desde el punto de activación raíz /gcs. Puedes acceder a los buckets activados de forma dinámica como subdirectorios:

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

Soporte personalizado

Para activar un bucket de Cloud Storage específico en un directorio local con opciones personalizadas, usa la siguiente estructura de comandos. Puedes pasarla como parte de la secuencia de comandos de inicio en la creación del clúster o ejecutarla directamente en el nodo después de que se cree el clúster.

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

Por ejemplo, para activar el bucket mtdata en el directorio /data, usa el siguiente 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

Para una configuración coherente y completamente automatizada, incluye tus secuencias de comandos de activación personalizadas en las secuencias de comandos de inicio del clúster. Esta práctica garantiza que tus buckets de Cloud Storage se activen automáticamente en todos los nodos durante el inicio, lo que elimina la necesidad de realizar una configuración manual.

Si deseas obtener recomendaciones de configuración adicionales adaptadas a las cargas de trabajo de IA/AA, consulta la guía de prácticas recomendadas para el ajuste del rendimiento. Proporciona orientación específica para optimizar Cloud Storage FUSE para el entrenamiento, la inferencia y la creación de puntos de control.

¿Qué sigue?

Los siguientes pasos se centran en usar tu clúster de manera eficaz para el entrenamiento a gran escala.