Storage

Si vous êtes intéressé par les clusters d'entraînement Gemini Enterprise Agent Platform, contactez votre représentant commercial pour y accéder.

Choisir la bonne configuration de stockage est essentiel pour les performances et la stabilité de votre cluster d'entraînement. Le service s'intègre à deux solutions de stockage distinctes et hautes performances :

  • Filestore : service de fichiers géré requis qui fournit les répertoires /home partagés pour tous les nœuds du cluster.
  • Google Cloud Managed Lustre : système de fichiers parallèle facultatif conçu pour des performances d'E/S extrêmes, idéal pour l'entraînement sur des ensembles de données massifs.

Cette page présente leurs principales utilisations et décrit les exigences spécifiques en matière de mise en réseau et de déploiement pour une intégration réussie à votre cluster.

Intégration du stockage pour les clusters d'entraînement

Les clusters d'entraînement de la plate-forme d'agents Gemini Enterprise reposent sur des solutions de stockage en réseau spécifiques pour leur fonctionnement. Filestore est nécessaire pour fournir les répertoires /home partagés pour le cluster, tandis que Managed Lustre est un système de fichiers hautes performances facultatif pour les charges de travail exigeantes.

Il est essentiel de configurer correctement la mise en réseau de ces services de stockage avant de déployer votre cluster.

Filestore pour les répertoires d'accueil

Ce service utilise une instance Filestore pour fournir le répertoire /home partagé pour le cluster. Pour assurer une connectivité appropriée, vous devez créer vos ressources cloud dans cet ordre précis :

  1. Créez le réseau VPC : commencez par déployer un réseau VPC configuré avec la MTU recommandée (par exemple, 8896).
  2. Créez l'instance Filestore : déployez ensuite l'instance Filestore dans le VPC que vous venez de créer.
  3. Créez le cluster d'entraînement : enfin, déployez le cluster, qui pourra ensuite se connecter à l'instance Filestore sur le même réseau.

Google Cloud Managed Lustre pour les charges de travail hautes performances

Pour les charges de travail qui nécessitent des performances d'E/S maximales, vous pouvez associer un système de fichiers Lustre géré. Ce service se connecte à votre VPC à l'aide de l'accès aux services privés.

Limitation critique du réseau : pas d'appairage transitif

Une limite critique pour Filestore et Google Cloud Managed Lustre est qu'ils ne sont pas compatibles avec l'appairage transitif. Cela signifie que seules les ressources du VPC directement connecté peuvent accéder au service de stockage. Par exemple, si le VPC (N1) de votre cluster est appairé au service de stockage, un autre VPC (N2) appairé à N1 n'y aura pas accès.

Intégration du stockage pour les clusters d'entraînement

Les clusters d'entraînement de la plate-forme d'agents Gemini Enterprise reposent sur des solutions de stockage spécifiques en réseau pour fonctionner. Filestore est nécessaire pour fournir les répertoires /home partagés pour le cluster, tandis que Google Cloud Managed Lustre est un système de fichiers hautes performances facultatif pour les charges de travail exigeantes. Il est essentiel de configurer correctement le réseau pour ces services de stockage avant de déployer votre cluster.

Filestore

Principales utilisations de Filestore avec les clusters d'entraînement

En plus de son rôle de répertoire d'accueil obligatoire, Filestore offre un moyen flexible de partager des données avec votre cluster.
Stockage partagé supplémentaire : vous pouvez associer une ou plusieurs instances Filestore supplémentaires à n'importe quel pool de nœuds. Cela est utile pour fournir des ensembles de données partagés, des binaires d'application ou d'autres fichiers courants à vos tâches d'entraînement. Lorsqu'elles sont spécifiées dans la configuration du pool de nœuds, les instances sont automatiquement montées par les clusters d'entraînement dans le répertoire /mnt/filestore de chaque nœud.

Exigences Filestore

Pour que l'intégration de Filestore aux clusters d'entraînement soit réussie, la configuration suivante est requise :

  • Activez l'API : l'API Filestore doit être activée dans votre projet Google Cloud avant que vous puissiez créer le cluster.
  • Répertoire /home obligatoire : chaque cluster d'entraînement nécessite une instance Filestore dédiée pour servir de répertoire /home partagé. Cette instance présente des exigences de configuration spécifiques :
    • Réseau : il doit résider dans le même réseau VPC que les nœuds de calcul et de connexion du cluster.
    • Emplacement : il doit se trouver dans la même région ou zone que le cluster.
    • Configuration : vous devez spécifier le nom complet de la ressource de cette instance dans le champ orchestrator_spec.slurm_spec.home_directory_storage lorsque vous créez le cluster via l'API.

Configurer le stockage Filestore

Créez une instance Filestore zonale ou régionale dans la zone où vous souhaitez créer le cluster. L'API Vertex AI nécessite qu'un Filestore soit associé au cluster pour servir de répertoire /home. Cette instance Filestore doit se trouver dans la même zone ou région, et dans le même réseau que tous les nœuds de calcul et de connexion. Dans l'exemple ci-dessous, 172.16.10.0/24 est utilisé pour le déploiement 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 système de fichiers parallèle hautes performances entièrement géré et optimisé pour les applications d'IA et de HPC. Avec une capacité de plusieurs pétaoctets et un débit pouvant atteindre 1 Tbit/s, Managed Lustre facilite la migration des charges de travail exigeantes vers le cloud.

Les instances Managed Lustre résident dans des zones au sein de régions. Une région est un emplacement géographique spécifique au sein duquel vous pouvez exécuter vos ressources. Chaque région est subdivisée en plusieurs zones. Par exemple, la région us-central1 du centre des États-Unis comporte les zones us-central1-a, us-central1-b, us-central1-c et us-central1-f. Pour en savoir plus, consultez Zones géographiques et régions.

Pour réduire la latence du réseau, nous vous recommandons de créer une instance Managed Lustre dans une région et une zone proches de l'endroit où vous prévoyez de l'utiliser.

Lorsque vous créez une instance Managed Lustre, vous devez définir les propriétés suivantes :

  • Nom de l'instance utilisée par Google Cloud.
  • Nom du système de fichiers utilisé par les outils côté client, par exemple lfs.
  • Capacité de stockage en gibioctets (Gio). La capacité peut aller de 9 000 Gio à environ 8 Pio (7 632 000 Gio). La taille maximale d'une instance dépend de son niveau de performances.
  • Managed Lustre propose des niveaux de performances allant de 125 Mo/s par Tio à 1 000 Mo/s par Tio.
  • Pour des performances optimales, créez votre instance dans la même zone que votre cluster d'entraînement.
  • Le réseau VPC de cette instance doit être le même que celui utilisé par votre cluster d'entraînement.

Managed Lustre propose quatre niveaux de performances, chacun avec une vitesse de débit maximale différente par Tio. Les niveaux de performances ont également une incidence sur la taille minimale et maximale des instances, ainsi que sur la taille d'incrément entre les valeurs de capacité acceptables. Vous ne pouvez pas modifier le niveau de performances d'une instance après sa création.

Le déploiement de Managed Lustre nécessite l'accès aux services privés, qui établit l'appairage de VPC entre le VPC du cluster d'entraînement et le VPC hébergeant Managed Lustre, à l'aide d'un sous-réseau /20 dédié.

Configurer l'instance Managed Lustre (facultatif)

N'utilisez Google Cloud Managed Lustre que si vous souhaitez utiliser Managed Lustre dans le service de développement de modèles.

Google Cloud Managed Lustre est un service de système de fichiers parallèles hautes performances et entièrement géré sur Google Cloud. Il est spécifiquement conçu pour accélérer les charges de travail exigeantes dans l'IA/le machine learning et le calcul hautes performances (HPC).

Pour des performances optimales lors de l'utilisation de clusters d'entraînement, Google Cloud Managed Lustre doit être déployé à partir du même VPC et de la même zone que votre cluster d'entraînement à l'aide de l'appairage de VPC pour la mise en réseau des services.

Créer une instance 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

  

Montage de Cloud Storage

Assurez-vous que le compte de service de la VM dispose du rôle "Utilisateur d'objets Storage".

Montage par défaut

Les clusters d'entraînement Vertex AI utilisent Cloud Storage FUSE pour installer dynamiquement vos buckets Cloud Storage sur tous les nœuds de connexion et de calcul, ce qui les rend accessibles sous le répertoire /gcs. Les buckets installés dynamiquement ne peuvent pas être listés à partir du point d'installation racine /gcs. Vous pouvez accéder aux buckets installés dynamiquement en tant que sous-répertoires :

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

Support personnalisé

Pour monter un bucket Cloud Storage spécifique dans un répertoire local avec des options personnalisées, utilisez la structure de commande suivante en la transmettant dans le script de démarrage lors de la création du cluster ou en l'exécutant directement sur le nœud après la création du cluster.

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

Par exemple, pour installer le bucket mtdata dans le répertoire /data, utilisez la commande suivante :

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

Pour une configuration entièrement automatisée et cohérente, incluez vos scripts de montage personnalisés dans les scripts de démarrage du cluster. Cette pratique garantit que vos buckets Cloud Storage sont automatiquement montés sur tous les nœuds au démarrage, ce qui élimine la nécessité d'une configuration manuelle.

Pour obtenir d'autres recommandations de configuration adaptées aux charges de travail d'IA/de ML, consultez le guide des bonnes pratiques pour optimiser les performances. Il fournit des conseils spécifiques pour optimiser Cloud Storage FUSE pour l'entraînement, l'inférence et la création de points de contrôle.

Étapes suivantes

Les étapes suivantes se concentrent sur l'utilisation efficace de votre cluster pour l'entraînement à grande échelle.