Storage

Si te interesan los clústeres de entrenamiento de Vertex AI, ponte en contacto 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 de alto rendimiento distintas:

  • Filestore: un servicio de archivos gestionado obligatorio que proporciona los directorios /homecompartidos para todos los nodos del clúster.
  • Managed Lustre de Google Cloud: un sistema de archivos paralelo opcional diseñado para ofrecer un rendimiento de E/extremo, ideal para entrenar modelos con conjuntos de datos masivos.

En esta página se ofrece un resumen de sus usos principales y se describen los requisitos específicos de redes y de implementación para que la integración con tu clúster se realice correctamente.

Integración del almacenamiento para clústeres de entrenamiento

Los clústeres de entrenamiento de Vertex AI dependen de soluciones de almacenamiento específicas en red para funcionar. Filestore es necesario para proporcionar los directorios /homecompartidos del clúster, mientras que Lustre gestionado es un sistema de archivos de alto rendimiento opcional para cargas de trabajo exigentes.

Es fundamental configurar correctamente la red de estos servicios de almacenamiento antes de implementar el clúster.

Filestore para directorios de inicio

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

  1. Crea la red VPC: primero, implementa una red 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 podrá conectarse a la instancia de Filestore en la misma red.

Google Cloud Managed Lustre para cargas de trabajo de alto rendimiento

En el caso de las cargas de trabajo que requieren el máximo rendimiento de E/S, puedes adjuntar un sistema de archivos Lustre gestionado. Este servicio se conecta a tu VPC mediante Private Service Access.

Limitación de red crítica: no hay emparejamiento transitivo

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

Integración del 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 funcionar. Filestore es necesario para proporcionar los directorios /home compartidos del clúster, mientras que Lustre gestionado de Google Cloud es un sistema de archivos de alto rendimiento opcional para cargas de trabajo exigentes. Es fundamental configurar correctamente la red de estos servicios de almacenamiento antes de implementar el clúster.

Filestore

Usos principales de Filestore con clústeres de entrenamiento

Además de ser el directorio principal obligatorio, Filestore ofrece una forma flexible de compartir datos con tu clúster.
Almacenamiento compartido adicional: puedes adjuntar una o varias instancias de Filestore adicionales a cualquier grupo de nodos. Esto resulta útil para proporcionar conjuntos de datos compartidos, archivos binarios de aplicaciones u otros archivos comunes a tus trabajos de entrenamiento. Si se especifica 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 integrar Filestore correctamente con clústeres de entrenamiento, se necesita la siguiente configuración:

  • Habilita la API: la API Filestore debe estar habilitada en tu proyecto de Google Cloud para poder crear el clúster.
  • Obligatorio /home Directory: cada clúster de entrenamiento requiere una instancia de Filestore dedicada que actúe como /home directorio compartido. Esta instancia tiene requisitos de configuración específicos:
    • Red: debe residir en la misma red VPC que los nodos de cálculo y de inicio de sesión del clúster.
    • Ubicación: debe estar en la misma región o zona que el clúster.
    • Configuración: debes especificar el nombre de recurso completo de esta instancia en el campo orchestrator_spec.slurm_spec.home_directory_storage al crear el clúster a través de la API.

Configurar el almacenamiento de Filestore

Crea una instancia de Filestore zonal o regional en la zona en la que quieras crear el clúster. La API de Vertex AI requiere que se adjunte un Filestore al clúster para que actúe como directorio /home. Este Filestore debe estar en la misma zona o región y en la misma red que todos los nodos de computación y los nodos de inicio de sesión. En el ejemplo siguiente, 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 de alto rendimiento y totalmente gestionado 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 de las regiones. Una región es una ubicación geográfica concreta en la que puedes ejecutar recursos. Cada región se divide en varias zonas. Por ejemplo, la región us-central1 del 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 el artículo sobre geografía y regiones.

Para reducir la latencia de la red, te recomendamos que crees una instancia de Lustre gestionada en una región y una zona cercanas a donde vayas a usarla.

Al crear una instancia de Managed Lustre, debe definir las siguientes propiedades:

  • Nombre de la instancia utilizada por Google Cloud.
  • El nombre del sistema de archivos que usan las herramientas del lado del cliente, como lfs.
  • Capacidad de almacenamiento en gibibytes (GiB). La capacidad puede oscilar entre 9000 GiB y unos 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 de 125 MBps por TiB a 1000 MBps por TiB.
  • Para obtener el mejor rendimiento, crea la instancia en la misma zona que tu clúster de entrenamiento.
  • La red de VPC de esta instancia debe ser la misma que utilice tu clúster de entrenamiento.

Managed Lustre ofrece cuatro niveles de rendimiento, cada uno con una velocidad de rendimiento máxima diferente por TiB. Los niveles de rendimiento también afectan al tamaño mínimo y máximo de las instancias, así como al incremento entre los valores de capacidad aceptables. No puedes cambiar el nivel de rendimiento de una instancia después de crearla.

Para desplegar Lustre gestionado, se necesita acceso a servicios privados, que establece el emparejamiento de VPC entre la VPC del clúster de entrenamiento y la VPC que aloja Lustre gestionado, mediante una subred /20 dedicada.

Configurar una instancia de Managed Lustre (opcional)

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

Google Cloud Managed Lustre es un servicio de sistema de archivos paralelos totalmente gestionado y de alto rendimiento 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 al usar clústeres de entrenamiento, Google Cloud Managed Lustre debe implementarse desde la misma VPC y zona que tu clúster de entrenamiento mediante el emparejamiento de VPC para servicios de red.

Crear 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 Usuario de objetos de almacenamiento.

Montaje predeterminado

Los clústeres de entrenamiento de Vertex AI usan Cloud Storage FUSE para montar dinámicamente tus segmentos de Cloud Storage en todos los nodos de inicio de sesión y de computación, lo que hace que sean accesibles en el directorio /gcs. Los segmentos montados dinámicamente no se pueden enumerar desde el punto de montaje raíz /gcs. Puedes acceder a los segmentos montados dinámicamente como subdirectorios:

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

Montaje personalizado

Para montar un segmento de Cloud Storage específico en un directorio local con opciones personalizadas, usa la siguiente estructura de comando. Puedes incluirla en la secuencia de comandos de inicio al crear el clúster o ejecutarla directamente en el nodo después de crear 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 montar el contenedor 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 que la configuración sea totalmente automática y coherente, incluye tus secuencias de comandos de montaje personalizadas en las secuencias de comandos de inicio del clúster. De esta forma, se asegura de que sus cubos de Cloud Storage se monten automáticamente en todos los nodos al inicio, lo que elimina la necesidad de realizar una configuración manual.

Para obtener recomendaciones de configuración adicionales adaptadas a las cargas de trabajo de IA y aprendizaje automático, consulta la guía de prácticas recomendadas para optimizar el rendimiento. Proporciona directrices específicas para optimizar Cloud Storage FUSE para el entrenamiento, la inferencia y la creación de puntos de control.

Siguientes pasos

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