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
  • Volume Hyperdisk équilibré
  • Hyperdisk ML
  • Disque persistant avec équilibrage
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
  • Volume Hyperdisk équilibré
  • Disque persistant avec équilibrage

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 ou pd-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 ou read-write. Si aucun mode n'est spécifié, le mode par défaut est read-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 ou read-write. Si aucun mode n'est spécifié, le mode par défaut est read-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 ou read-write. Si aucun mode n'est spécifié, le mode par défaut est read-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.

  1. 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).

  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 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 et sdb 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.

  3. 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
  4. 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"
  5. 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"
  6. 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.

  1. 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.

  2. Supprimez votre Cloud TPU :

    $ gcloud compute tpus tpu-vm delete TPU_NAME \
        --zone=ZONE
  3. Vérifiez que la Cloud TPU a été supprimée. La suppression peut prendre plusieurs minutes.

    $ gcloud compute tpus tpu-vm list --zone=ZONE
  4. 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