Ajouter un disque persistant à une VM TPU

Une VM TPU inclut un disque de démarrage de 100 Go. Dans certains cas, votre VM TPU peut nécessiter un espace de stockage supplémentaire pour l'entraînement ou le prétraitement. Vous pouvez ajouter un disque persistant pour augmenter la capacité de votre disque local.

Présentation

Un disque persistant associé à un TPU sur un seul appareil (v2-8, v3-8, v4-8, etc.) peut être configuré en tant que read-write ou read-only. Lorsque vous associez un disque persistant à une VM TPU faisant partie d'un pod TPU, le disque est associé à chaque VM TPU de ce pod. Pour empêcher plusieurs VM TPU d'un pod d'écrire simultanément sur un disque persistant, tous les disques persistants associés à une VM TPU dans un pod doivent être configurés en tant que read-only. Les disques read-only sont utiles pour stocker un ensemble de données à traiter sur un pod TPU.

Après avoir créé et associé un disque persistant à votre VM TPU, vous devez l'installer, en spécifiant son emplacement dans le système de fichiers. Pour en savoir plus, consultez Installer un disque.

Prérequis

Vous devez disposer d'un compte et d'un projet Google Cloud avant de pouvoir suivre les procédures ci-dessous. Si vous n'avez pas encore configuré de projet Cloud TPU, suivez la procédure décrite dans la section Configurer un compte et un projet Cloud TPU avant de continuer.

Étapes majeures

Voici les grandes étapes de la configuration d'un disque persistant:

  1. Créer un disque persistant
  2. Associer un disque persistant à une VM TPU
  3. Installer le disque persistant
  4. Nettoyer les ressources de VM TPU et de disque persistant

Configurer une VM TPU et un disque persistant

Vous pouvez associer un disque persistant à une VM TPU lorsque vous la créez. Vous pouvez également associer un disque persistant à une VM TPU existante.

Créer un disque persistant

Exécutez la commande suivante pour créer un disque persistant:

  $ gcloud compute disks create disk-name \
    --size disk-size  \
    --zone zone \
    --type pd-balanced

Description des options de commande

disk-name
Nom de votre choix pour le disque persistant.
disk-size
Taille du disque persistant en Go.
zone
Zone dans laquelle créer le disque persistant. Cette zone doit être la même que celle utilisée pour créer le TPU.
type
Type de disque à ajouter. Les types compatibles sont pd-standard, pd-ssd et pd-balanced.

Associer un disque persistant

Vous pouvez associer un disque persistant à votre VM TPU lors de la création de celle-ci, ou en ajouter un après la création de la VM TPU.

Associer un disque persistant lorsque vous créez une VM TPU

Utilisez l'indicateur --data-disk pour associer un disque persistant lorsque vous créez une VM TPU. Si vous créez un pod TPU, vous devez spécifier mode=read-only. Si vous créez un seul appareil TPU, vous pouvez spécifier mode=read-only ou mode=read-write. La commande suivante crée un seul TPU et définit le mode Disque persistant sur read-write:

  $ gcloud compute tpus tpu-vm create tpu-name \
    --project project-id \
    --zone=zone \
    --accelerator-type=v3-8 \
    --version=Cloud TPU software version \
    --data-disk source=projects/project-id/zones/zone/disks/disk-name,mode=read-write

Description des options de commande

tpu-name
Nom que vous avez choisi pour les ressources TPU.
project
L'ID de votre projet.
zone
Zone dans laquelle créer votre Cloud TPU.
accelerator-type
Le type d'accélérateur spécifie la version et la taille de la ressource Cloud TPU que vous souhaitez créer. Pour en savoir plus sur les types d'accélérateurs compatibles avec chaque version de TPU, consultez la section Versions de TPU.
version
Version logicielle Cloud TPU pour votre framework.
data-disk
Nom et mode lecture/écriture du disque persistant à associer à la VM TPU.

Associer un disque persistant à une VM TPU existante

Utilisez la commande gcloud alpha compute tpus tpu-vm attach-disk pour associer un disque persistant à une VM TPU existante. Pour en savoir plus et obtenir des exemples, consultez la documentation sur gcloud.

  $ gcloud alpha compute tpus tpu-vm attach-disk tpu-name \
    --zone=zone \
    --disk=disk-name \
    --mode=disk-mode

Description des options de commande

tpu-name
Nom des ressources TPU.
zone
Zone dans laquelle se trouve le Cloud TPU.
disk-name
Nom du disque persistant à associer à la VM TPU.
mode
Mode du disque. Le mode doit être l'un des suivants: read-only ou read-write.

Si vous souhaitez supprimer le disque persistant en même temps que la VM TPU, vous devez définir l'état de suppression automatique du disque persistant à l'aide de la commande suivante:

$ gcloud compute instances set-disk-auto-delete vm-instance \
  --zone=zone \
  --auto-delete \
  --disk=disk-name

Description des options de commande

vm-instance
Une fois que vous vous êtes connecté en SSH à la VM TPU, l'invite de l'interface système change pour inclure votre ID utilisateur suivi d'un nom d'instance de VM généré (par exemple, pjohnston@t1v-n-...$). Remplacez vm-instance par le nom de l'instance de VM générée,
zone
Zone dans laquelle se trouve le disque persistant.
auto-delete
Supprime automatiquement le disque persistant lorsque les ressources TPU sont supprimées.
disk-name
Nom de votre disque persistant.

Si votre VM s'arrête pour une raison quelconque, le disque persistant peut être déconnecté. Consultez Configurer l'installation automatique au redémarrage du système pour installer automatiquement votre disque persistant au redémarrage de la VM.

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

Installer un disque persistant

Pour accéder à un disque persistant à partir d'une VM TPU, vous devez installer le disque. Il spécifie l'emplacement, dans le système de fichiers de la VM TPU, où le disque persistant est accessible.

  1. Connectez-vous à votre VM TPU à l'aide de SSH:

    $ gcloud compute tpus tpu-vm ssh tpu-name --zone zone
    

    Lorsque vous travaillez avec un pod TPU, il existe une VM TPU pour chaque TPU du pod. La commande précédente fonctionne à la fois pour les appareils TPU et les pods TPU. Si vous utilisez des pods TPU, cette commande vous connectera au premier TPU du pod (également appelé nœud de calcul 0).

  2. À partir de la VM TPU, répertoriez les disques associés à la VM TPU :

    (vm)$ sudo lsblk
    

    Le résultat de la commande lsblk doit se présenter comme suit:

    NAME    MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    loop0     7:0    0  55.5M  1 loop /snap/core18/1997
    loop1     7:1    0  67.6M  1 loop /snap/lxd/20326
    loop2     7:2    0  32.3M  1 loop /snap/snapd/11588
    loop3     7:3    0  32.1M  1 loop /snap/snapd/11841
    loop4     7:4    0  55.4M  1 loop /snap/core18/2066
    sda       8:0    0   300G  0 disk
    ├─sda1    8:1    0 299.9G  0 part /
    ├─sda14   8:14   0     4M  0 part
    └─sda15   8:15   0   106M  0 part /boot/efi
    sdb       8:16   0    10G  0 disk    <== Persistent Disk
    

    Dans cet exemple, sda correspond au disque de démarrage et sdb au nom du disque persistant nouvellement associé. Le nom du disque persistant associé dépend du nombre de disques persistants associés à la VM.

    Lorsque vous utilisez un pod TPU, vous devez installer le disque persistant sur toutes les VM TPU du pod. Le nom du disque persistant doit être le même pour toutes les VM TPU, mais cela n'est pas garanti. Par exemple, si vous dissociez, puis associez de nouveau le disque persistant, le nom de l'appareil est incrémenté, passant de sdb à sdc, et ainsi de suite.

  3. Si le disque n'a pas été formaté, formatez maintenant le disque persistant associé:

    (vm)$ sudo mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/sdb
    
  4. Créez un répertoire pour installer le disque persistant:

    Si vous utilisez un appareil TPU, exécutez la commande suivante pour créer un répertoire permettant d'installer le disque persistant:

    (vm)$ sudo mkdir -p /mnt/disks/persist
    

    Si vous utilisez un pod TPU, exécutez la commande suivante en dehors de votre VM TPU. Le répertoire est alors créé sur toutes les VM TPU du pod.

    (vm)$ gcloud compute tpus tpu-vm ssh $TPU_NAME --worker=all --command="sudo mkdir -p /mnt/disks/persist"
    
  5. Installez le disque persistant:

    Si vous utilisez un appareil TPU, exécutez la commande suivante pour installer le disque persistant sur votre VM TPU.

    (vm)$ sudo mount -o discard,defaults /dev/sdb /mnt/disks/persist

    Si vous utilisez un pod TPU, exécutez la commande suivante en dehors de votre VM TPU. Il installera le disque persistant sur toutes les VM TPU de votre pod.

    (vm)$ gcloud compute tpus tpu-vm ssh $TPU_NAME --worker=all --command="sudo mount -o discard,defaults /dev/sdb /mnt/disks/persist"

Effectuer un nettoyage

Supprimez vos ressources TPU lorsque vous n'en avez plus besoin.

  1. Déconnectez-vous de l'instance Compute Engine, si vous ne l'avez pas déjà fait :

    (vm)$ exit
    

    Votre invite devrait maintenant être username@projectname, indiquant que vous êtes dans Cloud Shell.

  2. Supprimez vos ressources Cloud TPU et Compute Engine.

    $ gcloud compute tpus tpu-vm delete tpu-name \
     --zone=zone
    
  3. Vérifiez que les ressources ont été supprimées en exécutant la commande gcloud list. La suppression peut prendre plusieurs minutes. Le résultat de gcloud list ne doit afficher aucune des ressources de VM TPU créées par cette procédure.

    VM TPU

    $ gcloud compute tpus tpu-vm list --zone=zone
    

    Nœud TPU

    $ gcloud compute tpus execution-groups list --zone zone
    
  4. Vérifiez que le disque persistant a été automatiquement supprimé en même temps que la VM TPU en répertoriant tous les disques de la zone dans laquelle vous l'avez créé:

    $ gcloud compute disks list --filter="zone:( us-central1-b )"
    

    Si le disque persistant n'a pas été supprimé lors de la suppression de la VM TPU, exécutez les commandes suivantes pour le supprimer:

    $ gcloud compute disks delete disk-name \
    --zone zone