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 avoir besoin d'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 deux VM TPU ou plus 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 l'emplacement dans le système de fichiers auquel il est accessible. Pour en savoir plus, consultez Installer un disque.
Prérequis
Vous devez disposer d'un compte et d'un projet Google Cloud avant d'utiliser les procédures suivantes. Si vous n'avez pas encore configuré de projet Cloud TPU, suivez la procédure décrite dans la section Configurer l'environnement Cloud TPU avant de continuer.
Étapes majeures
Voici les principales étapes à suivre pour configurer un disque persistant:
- Créer un disque persistant
- Associer un disque persistant à une VM TPU
- Installer le disque persistant
- Nettoyer la VM TPU et les ressources 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
Pour créer un disque persistant, exécutez la commande suivante:
$ 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 acceptés sont
pd-standard
,pd-ssd
oupd-balanced
.
Associer un disque persistant
Vous pouvez associer un disque persistant à votre VM TPU lorsque vous la créez ou en ajouter un après sa création.
Associer un disque persistant lorsque vous créez une VM TPU
Utilisez l'option --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 de disque persistant sur read-write
:
$ gcloud compute tpus tpu-vm create tpu-name \ --project project-id \ --zone=zone \ --accelerator-type=v3-8 \ --version=tpu-vm-image \ --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
- 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 du 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
- Image de la VM 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. Consultez la documentation gcloud
pour en savoir plus et obtenir des exemples.
$ 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 défini sur
read-only
ouread-write
.
Si vous souhaitez supprimer le disque persistant lorsque vous supprimez 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 êtes connecté en SSH à la VM TPU, votre invite de Cloud Shell affiche 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é.
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 la section Configurer l'installation automatique au redémarrage du système pour que votre disque persistant s'installe automatiquement 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.
Monter un disque persistant
Pour accéder à un disque persistant à partir d'une VM TPU, vous devez le monter. Il spécifie un emplacement dans le système de fichiers de la VM TPU où le disque persistant est accessible.
Connectez-vous à votre VM TPU à l'aide de SSH:
$ gcloud compute tpus tpu-vm ssh tpu-name --zone zone
Lorsque vous utilisez un pod TPU, une VM TPU est créée 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).
À 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 ressembler à ceci: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 etsdb
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 de votre pod. Le nom du disque persistant doit être le même pour toutes les VM TPU, mais ce n'est pas garanti. Par exemple, si vous détachez puis réassociez le disque persistant, le nom de l'appareil sera incrémenté, passant de
sdb
àsdc
.Si le disque n'a pas été formaté, formatez-le maintenant:
(vm)$ sudo mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/sdb
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"
Installez le disque persistant:
Si vous utilisez un appareil TPU, exécutez la commande suivante pour monter 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 installe 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"
Désinstaller un disque persistant
Pour désinstaller (détacher) un disque persistant, exécutez la commande suivante:
$ gcloud alpha compute tpus tpu-vm detach-disk tpu-name \ --zone=zone \ --disk=disk-name
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 à dissocier de la VM TPU.
Effectuer un nettoyage
Supprimez vos ressources TPU lorsque vous n'en avez plus besoin.
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.Supprimez vos ressources Cloud TPU et Compute Engine.
$ gcloud compute tpus tpu-vm delete tpu-name \ --zone=zone
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 degcloud list
ne doit afficher aucune des ressources de VM TPU créées par cette procédure.$ gcloud compute tpus tpu-vm list --zone=zone
Vérifiez que le disque persistant a été automatiquement supprimé lors de la suppression de la VM TPU. Pour ce faire, répertoriez tous les disques de la zone dans laquelle vous avez créé le disque persistant:
$ 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