Associer un stockage de blocs durable à une VM TPU

Une VM TPU inclut un disque de démarrage de 10 Go. Dans certains cas, un espace de stockage supplémentaire est nécessaire pour l'entraînement ou le prétraitement. Ajoutez un volume Google Cloud Hyperdisk ou Persistent Disk (PD) pour augmenter la capacité du disque local.

Pour bénéficier des meilleures performances et de fonctionnalités avancées, utilisez Hyperdisk si cette option est disponible pour votre version de TPU. Sinon, utilisez Persistent Disk. Pour en savoir plus sur les options de stockage de blocs dans Compute Engine, consultez Choisir un type de disque.

Compatibilité des TPU avec Hyperdisk et Persistent Disk

Le tableau suivant indique les types de disques compatibles pour chaque version de TPU :

Version du TPU Types de disques compatibles Nombre maximal de disques par VM
(disque de démarrage inclus)
TPU7x Hyperdisk Balanced
Hyperdisk ML
128
v6e Hyperdisk Balanced
Hyperdisk ML
32
v5p Hyperdisk ML
Disque persistant avec équilibrage
128

Modes d'accès

Configurez un disque associé à une seule VM TPU (également appelée tranche de TPU à hôte unique), par exemple ct6e-standard-4t, en mode lecture/écriture (rw) ou lecture seule (ro).

Lorsque vous associez un disque à une tranche TPU multi-hôte, il est associé à chaque VM de la tranche. Pour empêcher plusieurs VM TPU d'écrire sur un disque simultanément, vous devez configurer tous les disques associés à une tranche de TPU multi-hôte en lecture seule (ro). Les disques en lecture seule sont utiles pour stocker un ensemble de données à traiter sur une tranche de TPU.

Prérequis

Avant d'utiliser ces procédures, configurez un compte et un projet Google Cloud . Pour en savoir plus, consultez Configurer l'environnement Cloud TPU.

Créer un disque

Pour créer un disque, utilisez la commande suivante :

gcloud compute disks create DISK_NAME \
    --size DISK_SIZE  \
    --zone ZONE \
    --type DISK_TYPE

Remplacez les espaces réservés suivants :

  • DISK_NAME : nom du nouveau disque.
  • DISK_SIZE : taille du nouveau disque. La valeur doit être un nombre entier suivi d'une unité de taille (GB pour des gibioctets, TB pour des tébioctets). Si vous ne spécifiez pas d'unité de taille, le système suppose qu'il s'agit de Go.
  • ZONE : nom de la zone dans laquelle créer le disque. Cette zone doit être la même que celle où vous créez le TPU.
  • DISK_TYPE : type de disque. Utilisez l'une des valeurs suivantes : hyperdisk-balanced, hyperdisk-ml ou pd-balanced.

Pour Hyperdisk, vous pouvez éventuellement spécifier le flag --access-mode avec l'une des valeurs suivantes :

  • READ_WRITE_SINGLE : accès en lecture/écriture à partir d'une instance (par défaut).
  • READ_ONLY_MANY : (Hyperdisk ML uniquement) Accès simultané en lecture seule à partir de plusieurs instances.

Pour en savoir plus sur la création de disques, consultez Créer un volume Hyperdisk et Créer un volume Persistent Disk.

Associer un disque

Associez un volume de disque à votre VM ou tranche TPU lorsque vous la créez, ou après sa création.

Associer un disque lorsque vous créez une VM TPU

Lorsque vous créez une VM TPU ou un modèle d'instance, utilisez le flag --disk pour associer un volume de disque.

Associer un disque lors de la création d'une VM TPU unique

L'exemple suivant montre comment associer un volume de disque lorsque vous créez une seule VM TPU :

  gcloud compute instances create TPU_NAME \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --zone=ZONE \
    --maintenance-policy=TERMINATE \
    --disk=name=DISK_NAME,device-name=DEVICE_NAME,mode=MODE

Remplacez les espaces réservés suivants :

  • TPU_NAME : nom de votre VM TPU.
  • MACHINE_TYPE : type de machine pour la VM TPU (par exemple, ct6e-standard-8t).
  • IMAGE_FAMILY : famille d'images d'OS pour la VM TPU. Si vous souhaitez installer une version spécifique de l'OS, utilisez l'option --image. Pour en savoir plus sur les images d'OS, consultez Images d'OS.
  • IMAGE_PROJECT : projet contenant l'image de l'OS. Pour les images TPU, il s'agit de ubuntu-os-accelerator-images.
  • ZONE : zone de la VM TPU.
  • DEVICE_NAME : nom de l'appareil à utiliser pour le disque. Ce nom identifie le disque dans l'OS.
  • MODE : mode du disque. Il peut s'agir de rw (lecture/écriture) ou de ro (lecture seule). Pour plus d'informations, consultez Modes d'accès.

Associer un disque lors de la création d'une tranche TPU multi-hôte

Lorsque vous créez une tranche TPU multi-hôte, vous devez spécifier mode=read-only (Hyperdisk ML et disque persistant avec équilibrage uniquement). Pour en savoir plus, consultez Modes d'accès.

Pour associer un disque à une tranche TPU multi-hôte, créez un modèle d'instance avec le disque associé, créez une règle de charge de travail, puis créez un MIG :

  1. Créer un modèle d'instance

    gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=TERMINATE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --disk=name=DISK_NAME,mode=MODE
    

    Remplacez les espaces réservés suivants :

    • INSTANCE_TEMPLATE_NAME : nom de votre modèle d'instance.
    • MACHINE_TYPE : type de machine pour la VM TPU, par exemple ct6e-standard-8t.
    • IMAGE_FAMILY : famille d'images d'OS pour la VM TPU. Si vous souhaitez installer une version spécifique de l'OS, utilisez l'option --image. Pour en savoir plus sur les images d'OS, consultez Images d'OS.
    • IMAGE_PROJECT : projet contenant l'image de l'OS. Pour les images TPU, il s'agit de ubuntu-os-accelerator-images.
    • DISK_NAME : nom du disque à associer à la VM TPU.
    • MODE : mode du disque. Le mode doit être ro (lecture seule) pour les tranches TPU multi-hôtes.
  2. Créer une règle de charge de travail

    gcloud compute resource-policies create workload WORKLOAD_POLICY_NAME \
    --type=high-throughput \
    --accelerator-topology=TOPOLOGY
    

    Remplacez les espaces réservés suivants :

    • WORKLOAD_POLICY_NAME : nom de votre stratégie de charge de travail.
    • TOPOLOGY : topologie des VM TPU, par exemple 4x4x8. Pour en savoir plus sur la topologie de chaque version de TPU, consultez Architecture du système.
  3. Créez un MIG :

    gcloud compute instance-groups managed create MIG_NAME \
        --project=PROJECT_ID \
        --zone=ZONE \
        --template=TEMPLATE_NAME \
        --size=SIZE \
        --workload-policy=WORKLOAD_POLICY_NAME
    

    Remplacez les espaces réservés suivants :

    • MIG_NAME : nom de votre MIG.
    • PROJECT_ID : ID du projet.
    • ZONE : zone où se trouve le Cloud TPU.
    • TEMPLATE_NAME : nom de votre modèle d'instance.
    • SIZE : nombre de VM pour votre tranche TPU multi-hôtes.
    • WORKLOAD_POLICY_NAME : nom de votre stratégie de charge de travail.

Associer un disque lors de la création d'un MIG avec plusieurs tranches TPU à hôte unique

Si vous créez une tranche de TPU à hôte unique, vous pouvez spécifier mode=read-only (Hyperdisk ML et disque persistant avec équilibrage uniquement) ou mode=read-write.

Pour associer un stockage durable à un MIG avec des tranches TPU indépendantes à un seul hôte, configurez le modèle d'instance afin de créer un disque pour chaque instance à l'aide de l'indicateur --create-disk :

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=TERMINATE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --disk=name=DISK_NAME,mode=MODE

Remplacez les espaces réservés suivants :

  • INSTANCE_TEMPLATE_NAME : nom de votre modèle d'instance.
  • MACHINE_TYPE : type de machine pour la VM TPU (par exemple, ct6e-standard-8t).
  • IMAGE_FAMILY : famille d'images de l'OS pour la VM TPU.
  • IMAGE_PROJECT : projet contenant l'image de l'OS (ubuntu-os-accelerator-images).
  • DISK_NAME : nom de base du disque à créer et à associer à chaque VM TPU.
  • DISK_SIZE : taille du disque en Go.
  • DISK_TYPE : type de disque (par exemple, pd-balanced, hyperdisk-balanced).

Créez ensuite le MIG comme indiqué dans la section précédente, en définissant --size sur le nombre de VM TPU de votre choix.

Associer un disque à une VM TPU existante

Pour associer un disque à une VM TPU existante, utilisez la commande gcloud compute instances attach-disk.

gcloud compute instances attach-disk VM_NAME \
    --zone=ZONE \
    --disk=DISK_NAME \
    --mode=MODE

Remplacez les espaces réservés suivants :

  • VM_NAME : nom de la VM TPU.
  • ZONE : zone dans laquelle se trouve le Cloud TPU.
  • DISK_NAME : nom du disque à associer à la VM TPU.
  • MODE : mode du disque. Pour en savoir plus, consultez Modes d'accès.

Si votre VM s'arrête pour une raison quelconque, vous devrez peut-être installer le disque après avoir redémarré la VM. Pour savoir comment activer l'installation automatique de votre disque au redémarrage de la VM, consultez Configurer l'installation automatique au redémarrage du système.

Pour en savoir plus sur la suppression automatique d'un disque, consultez Modifier un Hyperdisk et Modifier un disque persistant.

Formater et installer un disque

Si vous associez un nouveau disque vide à votre VM TPU, vous devez le formater et l'installer avant de pouvoir l'utiliser. Si vous associez un disque contenant déjà des données, vous devez l'installer avant de pouvoir l'utiliser.

Pour en savoir plus sur le formatage et l'installation d'un disque non amorçable, consultez Formater et installer un disque non amorçable sur une VM Linux.

Dissocier un disque

Pour dissocier un disque de votre VM TPU, exécutez la commande suivante :

gcloud compute instances detach-disk VM_NAME \
    --zone=ZONE \
    --disk=DISK_NAME

Remplacez les espaces réservés suivants :

  • VM_NAME : nom de la VM TPU.
  • ZONE : zone où se trouve le Cloud TPU.
  • DISK_NAME : nom du disque à dissocier de la VM TPU.

Pour en savoir plus sur le détachement d'un disque, consultez Détacher un disque.

Effectuer un nettoyage

Supprimez vos ressources Cloud TPU et Compute Engine lorsque vous n'en avez plus besoin.

  1. Déconnectez-vous du Cloud TPU, si vous ne l'avez pas déjà fait :

    exit
    
  2. Supprimez votre VM TPU :

    gcloud compute instances delete VM_NAME \
        --zone=ZONE
    

    Remplacez les espaces réservés suivants :

    • VM_NAME : nom de la VM TPU.
    • ZONE : zone où se trouve le Cloud TPU.

    Si vous avez créé une tranche TPU multi-hôte à l'aide d'un MIG, supprimez plutôt le groupe d'instances :

    gcloud compute instance-groups managed delete MIG_NAME \
        --zone=ZONE
    

    Remplacez les espaces réservés suivants :

    • MIG_NAME : nom du MIG.
    • ZONE : zone où se trouve le Cloud TPU.
  3. Vérifiez que le Cloud TPU a été supprimé. La suppression peut prendre plusieurs minutes.

    gcloud compute instances list --zone=ZONE
    
  4. Vérifiez que le disque est automatiquement supprimé lorsque la VM TPU est supprimée en listant tous les disques de la zone dans laquelle vous avez créé le disque :

    gcloud compute disks list --filter="zone:( ZONE )"
    

    Remplacez les espaces réservés suivants :

    • ZONE : zone où se trouve le Cloud TPU.

    Si le disque n'est pas supprimé lors de la suppression de la VM TPU, exécutez la commande suivante pour le supprimer :

    gcloud compute disks delete DISK_NAME \
        --zone=ZONE
    

    Remplacez les espaces réservés suivants :

    • DISK_NAME : nom du disque à supprimer.
    • ZONE : zone où se trouve le Cloud TPU.