Associer un stockage de blocs durable à une VM TPU
Une VM TPU inclut un disque de démarrage de 100 Gio. Dans certains cas, votre VM TPU peut avoir besoin d'un espace de stockage supplémentaire pour l'entraînement ou le prétraitement. Vous pouvez ajouter un volume Google Cloud Hyperdisk ou Persistent Disk (PD) pour augmenter la capacité de votre disque local.
Pour bénéficier des meilleures performances et des fonctionnalités avancées, Google recommande d'utiliser Hyperdisk s'il est disponible pour votre TPU. Sinon, utilisez un disque persistant. Pour en savoir plus sur les options de stockage par 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 DP par VM (disque de démarrage inclus) |
---|---|---|
v6e | Hyperdisk Balanced Hyperdisk ML |
Les disques persistants ne sont pas compatibles avec v6e |
v5p | Disque persistant avec équilibrage | 128 |
v5e | Disque persistant avec équilibrage | 128 |
v4 | Disque persistant avec équilibrage | 128 |
v3 | Disque persistant avec équilibrage | 128 |
v2 | Disque persistant avec équilibrage | 128 |
Modes d'accès
Vous pouvez configurer un disque associé à une TPU en mode mono-rédacteur ou lecture seule, comme indiqué dans le tableau suivant :
Mode d'accès | Description | Valeur dans l'API Compute Engine | Valeur dans l'API Cloud TPU | Types de disques compatibles |
---|---|---|---|---|
Mode écriture individuelle | Il s'agit du mode d'accès par défaut. Permet d'associer le disque à une seule instance à la fois. L'instance dispose d'un accès en lecture et en écriture au disque. | READ_WRITE_SINGLE |
read-write |
|
Mode lecture seule | Permet d'associer simultanément un disque à plusieurs instances en mode lecture seule. Dans ce mode, les instances ne peuvent pas écrire sur le disque. Obligatoire pour le partage en lecture seule. | READ_ONLY_MANY |
read-only |
|
Vous pouvez configurer un disque associé à une TPU à hôte unique (par exemple, v6e-8, v5p-8 ou v5litepod-8) en mode mono-rédacteur ou lecture seule.
Lorsque vous associez un disque à un TPU multi-hôte, il est associé à chaque VM de ce TPU. Pour empêcher deux VM TPU ou plus d'écrire sur un disque en même temps, vous devez configurer tous les disques associés à un TPU multi-hôte en lecture seule. Les disques en lecture seule sont utiles pour stocker un ensemble de données à traiter sur une tranche de TPU.
Prérequis
Vous devez disposer d'un compte et d'un projet Google Cloud avant d'utiliser les procédures suivantes. Pour en savoir plus, consultez Configurer l'environnement Cloud TPU.
Créer un disque
Exécutez la commande suivante pour créer un disque :
$ gcloud compute disks create DISK_NAME \ --size DISK_SIZE \ --zone ZONE \ --type DISK_TYPE
Description des options de commande
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 aucune unité de taille n'est spécifiée, la valeur est considérée comme exprimée en GB.
ZONE
- Nom de la zone dans laquelle créer le disque. Cette zone doit être la même que celle utilisée pour créer le TPU.
DISK_TYPE
-
Type de disque. Utilisez l'une des valeurs suivantes :
hyperdisk-balanced
,hyperdisk-ml
oupd-balanced
.
Pour Hyperdisk, vous pouvez éventuellement spécifier l'option --access-mode
avec l'une des valeurs suivantes :
READ_WRITE_SINGLE
: accès en lecture/écriture à partir d'une instance. Il s'agit de la valeur 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
Vous pouvez associer un volume de disque à votre VM TPU lorsque vous la créez, ou après sa création.
Associer un disque lorsque vous créez une VM TPU
Utilisez l'option --data-disk
pour associer un volume de disque lorsque vous créez une VM TPU.
Si vous créez un TPU multi-hôte, vous devez spécifier mode=read-only
(disque persistant Hyperdisk ML et Balanced uniquement). Si vous créez un TPU à hôte unique, vous pouvez spécifier mode=read-only
(Hyperdisk ML et disque persistant équilibré uniquement) ou mode=read-write
. Pour en savoir plus, consultez Modes d'accès.
L'exemple suivant montre comment associer un volume de disque lors de la création d'une VM TPU à l'aide de ressources mises en file d'attente :
$ gcloud compute tpus queued-resources create QR_NAME \ --node-id=TPU_NAME --project PROJECT_ID \ --zone=ZONE \ --accelerator-type=ACCELERATOR_TYPE \ --runtime-version=TPU_SOFTWARE_VERSION \ --data-disk source=projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME,mode=MODE
Description des options de commande
QR_NAME
- Nom de la demande de ressource en file d'attente.
TPU_NAME
- Nom du nouveau TPU.
PROJECT_ID
- ID du projet Google Cloud dans lequel créer le TPU.
ZONE
- Nom de la zone dans laquelle créer le 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 Versions de TPU.
TPU_SOFTWARE_VERSION
- La version logicielle du TPU.
DISK_NAME
- Nom du disque à associer à la VM TPU.
MODE
- Mode du disque. Le mode doit être l'un des suivants :
read-only
ouread-write
. Si aucun mode n'est spécifié, le mode par défaut estread-write
. Pour en savoir plus, consultez Mode d'accès.
Vous pouvez également associer un disque lorsque vous créez une VM TPU à l'aide de la commande gcloud compute tpus tpu-vm create
:
$ gcloud compute tpus tpu-vm create TPU_NAME \ --project PROJECT_ID \ --zone=ZONE \ --accelerator-type=ACCELERATOR_TYPE \ --version=TPU_SOFTWARE_VERSION \ --data-disk source=projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME,mode=MODE
Description des options de commande
TPU_NAME
- Nom du nouveau TPU.
PROJECT_ID
- ID du projet Google Cloud dans lequel créer le TPU.
ZONE
- Nom de la zone dans laquelle créer le 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 Versions de TPU.
TPU_SOFTWARE_VERSION
- La version logicielle du TPU.
DISK_NAME
- Nom du disque à associer à la VM TPU.
MODE
- Mode du disque. Le mode doit être l'un des suivants :
read-only
ouread-write
. Si aucun mode n'est spécifié, le mode par défaut estread-write
. Pour en savoir plus, consultez Modes d'accès.
Associer un disque à une VM TPU existante
Exécutez la commande gcloud alpha compute tpus tpu-vm
attach-disk
pour associer un disque à une VM TPU existante.
$ gcloud alpha compute tpus tpu-vm attach-disk TPU_NAME \ --zone=ZONE \ --disk=DISK_NAME \ --mode=MODE
Description des options de commande
TPU_NAME
- Nom du TPU.
ZONE
- Zone dans laquelle se trouve le Cloud TPU.
DISK_NAME
- Nom du disque à associer à la VM TPU.
MODE
- Mode du disque. Le mode doit être l'un des suivants :
read-only
ouread-write
. Si aucun mode n'est spécifié, le mode par défaut estread-write
. Il doit correspondre au mode d'accès du disque.
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 avez associé un nouveau disque vide à votre VM TPU, vous devez le formater et l'installer avant de pouvoir l'utiliser. Si vous avez associé 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.
Connectez-vous à votre VM TPU à l'aide de SSH :
$ gcloud compute tpus tpu-vm ssh TPU_NAME --zone ZONE
Si vous utilisez un TPU multi-hôte, cette commande vous connecte au premier TPU de la tranche TPU (é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
ressemble à 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
Dans cet exemple,
sda
est le disque de démarrage etsdb
est le nom du disque nouvellement associé. Le nom du disque associé dépend du nombre de disques associés à la VM.Lorsque vous utilisez un TPU multi-hôte, vous devez monter le disque sur toutes les VM TPU de la tranche de TPU. Le nom du disque doit être identique pour toutes les VM TPU, mais cela n'est pas garanti. Par exemple, si vous dissociez puis réassociez le disque, le nom de l'appareil est incrémenté et passe de
sdb
àsdc
.Si le disque n'a pas été formaté, formatez-le à l'aide de l'outil
mkfs
. Remplacez sdb si votre disque porte un autre nom d'appareil. Remplacez ext4 si vous souhaitez utiliser un autre système de fichiers.(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 sur le TPU.
Si vous utilisez un TPU à hôte unique, exécutez la commande suivante à partir de votre TPU pour créer un répertoire dans lequel monter le disque :
(vm)$ sudo mkdir -p /mnt/disks/MOUNT_DIR
Remplacez MOUNT_DIR par le répertoire dans lequel installer le disque.
Si vous utilisez un TPU multi-hôte, exécutez la commande suivante en dehors de votre VM TPU. Cette commande crée le répertoire sur toutes les VM TPU de la tranche TPU.
(vm)$ gcloud compute tpus tpu-vm ssh TPU_NAME --worker=all --command="sudo mkdir -p /mnt/disks/MOUNT_DIR"
Associez le disque à votre TPU à l'aide de l'outil
mount
.Si vous utilisez un TPU à hôte unique, exécutez la commande suivante pour monter le disque sur votre VM TPU :
(vm)$ sudo mount -o discard,defaults /dev/sdb /mnt/disks/MOUNT_DIR
Si vous utilisez un TPU multi-hôte, exécutez la commande suivante en dehors de votre VM TPU. Il installera le disque sur toutes les VM TPU de votre tranche TPU.
(vm)$ gcloud compute tpus tpu-vm ssh TPU_NAME --worker=all --command="sudo mount -o discard,defaults /dev/sdb /mnt/disks/MOUNT_DIR"
Configurez les autorisations de lecture et d'écriture sur le disque. Par exemple, la commande suivante accorde un accès en écriture au disque pour tous les utilisateurs.
(vm)$ sudo chmod a+w /mnt/disks/MOUNT_DIR
Démonter un disque
Pour démonter (détacher) un disque de votre VM TPU, 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 du TPU.
ZONE
- Zone dans laquelle se trouve le Cloud TPU.
DISK_NAME
- Nom du disque à dissocier de la VM TPU.
Effectuer un nettoyage
Supprimez vos ressources Cloud TPU et Compute Engine lorsque vous n'en avez plus besoin.
Déconnectez-vous du Cloud TPU, 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 votre Cloud TPU :
$ gcloud compute tpus tpu-vm delete TPU_NAME \ --zone=ZONE
Vérifiez que la Cloud TPU a été supprimée. La suppression peut prendre plusieurs minutes.
$ gcloud compute tpus tpu-vm list --zone=ZONE
Vérifiez que le disque 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 :
$ gcloud compute disks list --filter="zone:( ZONE )"
Si le disque n'a pas été 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