Aggiungi un Persistent Disk a una VM TPU

Una VM TPU include un disco di avvio da 100 GB. In alcuni scenari, la VM TPU potrebbe richiedere spazio di archiviazione aggiuntivo per l'addestramento o la pre-elaborazione. Puoi aggiungere un disco permanente per espandere la capacità del disco locale.

Panoramica

Un Persistent Disk collegato a una TPU a un singolo dispositivo (v2-8, v3-8, v4-8 e così via) può essere configurato come read-write o read-only. Quando colleghi un Persistent Disk a una VM TPU che fa parte di un pod di TPU, il disco viene collegato a ogni VM TPU nel pod. Per impedire a due o più VM TPU di un pod di scrivere contemporaneamente su un Persistent Disk, tutti i dischi permanenti collegati a una VM TPU in un pod devono essere configurati come read-only. I dischi read-only sono utili per archiviare un set di dati per l'elaborazione in un pod di TPU.

Dopo aver creato e collegato un Persistent Disk alla VM TPU, devi montare il Persistent Disk, specificando la posizione all'interno del file system in cui è possibile accedere al Persistent Disk. Per ulteriori informazioni, consulta la sezione Installazione di un disco.

Prerequisiti

Prima di utilizzare le seguenti procedure, devi disporre di un account e di un progetto Google Cloud configurati. Se non hai ancora configurato un progetto Cloud TPU, segui la procedura descritta in Configurare l'ambiente Cloud TPU prima di continuare.

Passaggi di alto livello

I passaggi principali per configurare un Persistent Disk:

  1. Crea un disco permanente
  2. Collega un Persistent Disk a una VM TPU
  3. Montaggio del disco permanente
  4. Pulisci le risorse della VM TPU e Persistent Disk permanente

Configurazione di una VM TPU e di un Persistent Disk

Puoi collegare un Persistent Disk a una VM TPU quando crei la VM TPU. Puoi anche collegare un Persistent Disk a una VM TPU esistente.

Creazione di un disco permanente

Usa questo comando per creare un Persistent Disk:

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

Descrizioni flag comando

disk-name
Un nome a tua scelta per il Persistent Disk.
disk-size
Le dimensioni del Persistent Disk in GB.
zone
La zona in cui creare il Persistent Disk. Deve essere la stessa zona utilizzata per creare la TPU.
type
Il tipo di disco da aggiungere. I tipi supportati sono: pd-standard, pd-ssd o pd-balanced.

Collega un Persistent Disk

Puoi collegare un Persistent Disk alla VM TPU quando crei la VM TPU oppure puoi aggiungerne uno dopo la creazione della VM TPU.

Collega un Persistent Disk quando crei una VM TPU

Usa il flag --data-disk per collegare un Persistent Disk quando crei una VM TPU. Se stai creando un pod di TPU, devi specificare mode=read-only. Se stai creando un singolo dispositivo TPU, puoi specificare mode=read-only o mode=read-write. Il seguente comando crea una singola TPU e imposta la modalità Persistent Disk su 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

Descrizioni flag comando

tpu-name
Il nome che hai scelto per le risorse TPU.
project
L'ID progetto.
zone
La zona in cui creare la tua Cloud TPU.
accelerator-type
Il tipo di acceleratore specifica la versione e le dimensioni della Cloud TPU che vuoi creare. Per maggiori informazioni sui tipi di acceleratori supportati per ogni versione di TPU, consulta Versioni TPU.
version
L'immagine VM TPU per il tuo framework.
data-disk
Il nome e la modalità di lettura/scrittura del Persistent Disk da collegare alla VM TPU.

Collega un Persistent Disk a una VM TPU esistente

Utilizza il comando gcloud alpha compute tpus tpu-vm attach-disk per collegare un Persistent Disk a una VM TPU esistente. Per ulteriori dettagli ed esempi, consulta la documentazione di gcloud.

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

Descrizioni flag comando

tpu-name
Il nome delle risorse TPU.
zone
La zona in cui si trova la Cloud TPU.
disk-name
Il nome del Persistent Disk da collegare alla VM TPU.
mode
La modalità del disco. La modalità deve essere una delle seguenti: read-only o read-write.

Se vuoi eliminare il Persistent Disk quando elimini la VM TPU, devi impostare lo stato di eliminazione automatica del Persistent Disk utilizzando il seguente comando:

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

Descrizioni flag comando

vm-instance
Dopo aver eseguito l'accesso tramite SSH alla VM TPU, la shell richiederà di includere il tuo ID utente seguito dal nome di un'istanza VM generata (ad esempio. pjohnston@t1v-n-...$). Sostituisci vm-instance con il nome dell'istanza VM generata,
zone
La zona in cui si trova il Persistent Disk.
auto-delete
Elimina automaticamente il Persistent Disk quando vengono eliminate le risorse TPU.
disk-name
Un nome del tuo Persistent Disk.

Se per qualsiasi motivo la tua VM si arresta, il Persistent Disk potrebbe essere disconnesso. Per fare in modo che il Persistent Disk venga montato automaticamente al riavvio della VM, consulta Configurare il montaggio automatico al riavvio del sistema.

Per ulteriori informazioni sull'eliminazione automatica di un Persistent Disk, consulta Modificare un disco permanente.

Monta un Persistent Disk

Per accedere a un Persistent Disk da una VM TPU, devi montare il disco. Consente di specificare una posizione nel file system della VM TPU in cui è possibile accedere al Persistent Disk.

  1. Connettiti alla VM TPU tramite SSH:

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

    Quando si lavora con un pod di TPU, è presente una VM TPU per ogni TPU nel pod. Il comando precedente funzionerà sia per i dispositivi TPU che per i pod TPU. Se utilizzi pod TPU, questo comando ti connette alla prima TPU nel pod (detta anche worker 0).

  2. Dalla VM TPU, elenca i dischi collegati alla VM TPU:

    (vm)$ sudo lsblk
    

    L'output del comando lsblk dovrebbe essere simile al seguente:

    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
    

    In questo esempio, sda è il disco di avvio e sdb è il nome del Persistent Disk appena collegato. Il nome del Persistent Disk collegato dipende dal numero di dischi permanenti collegati alla VM.

    Quando utilizzi un pod di TPU, devi montare il Persistent Disk su tutte le VM TPU nel pod. Il nome del Persistent Disk deve essere lo stesso per tutte le VM TPU, ma non è garantito. Ad esempio, se scolleghi e poi colleghi il Persistent Disk, il nome del dispositivo verrà incrementato, passando da sdb a sdc.

  3. Se il disco non è stato formattato, formatta ora il Persistent Disk collegato:

    (vm)$ sudo mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/sdb
    
  4. Crea una directory per montare il Persistent Disk:

    Se utilizzi un dispositivo TPU, esegui questo comando per creare una directory in cui montare il Persistent Disk:

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

    Se utilizzi un pod di TPU, esegui il comando seguente all'esterno della VM TPU. Questa operazione creerà la directory su tutte le VM TPU nel pod.

    (vm)$ gcloud compute tpus tpu-vm ssh $TPU_NAME --worker=all --command="sudo mkdir -p /mnt/disks/persist"
    
  5. Monta il Persistent Disk:

    Se utilizzi un dispositivo TPU, esegui questo comando per montare il Persistent Disk sulla VM TPU.

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

    Se utilizzi un pod di TPU, esegui il comando seguente all'esterno della VM TPU. Il Persistent Disk verrà montato su tutte le VM TPU nel pod.

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

Esegui la pulizia

Elimina le risorse TPU quando hai finito di utilizzarle.

  1. Disconnettiti dall'istanza di Compute Engine, se non lo hai già fatto:

    (vm)$ exit
    

    Il prompt dovrebbe ora essere username@projectname, a indicare che ti trovi in Cloud Shell.

  2. Elimina le risorse Cloud TPU e Compute Engine.

    $ gcloud compute tpus tpu-vm delete tpu-name \
     --zone=zone
    
  3. Verifica che le risorse siano state eliminate eseguendo gcloud list. L'eliminazione potrebbe richiedere diversi minuti. L'output da gcloud list non dovrebbe visualizzare nessuna delle risorse VM TPU create da questa procedura.

    $ gcloud compute tpus tpu-vm list --zone=zone
    
  4. Verifica che il Persistent Disk sia stato eliminato automaticamente quando è stata eliminata la VM TPU elencando tutti i dischi nella zona in cui hai creato il Persistent Disk:

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

    Se il Persistent Disk non è stato eliminato quando è stata eliminata la VM TPU, utilizza i comandi seguenti per eliminarlo:

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