Aggiunta di un Persistent Disk a una VM TPU
Una VM TPU include un disco di avvio da 100 GB. Per alcuni scenari, la VM TPU potrebbe richiedere spazio di archiviazione aggiuntivo per l'addestramento o la preelaborazione. Puoi aggiungere un disco permanente per espandere la capacità del disco locale.
Panoramica
Un Persistent Disk collegato a una TPU per 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 del 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 da elaborare su un pod di TPU.
Dopo aver creato e collegato un Persistent Disk alla VM TPU, devi montarlo, specificando dove nel file system è possibile accedervi. Per ulteriori informazioni, vedi Montare un disco.
Prerequisiti
Prima di utilizzare le seguenti procedure, devi configurare un account e un progetto Google Cloud. 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 di alto livello per configurare un Persistent Disk:
- Creare un disco permanente
- Collegare un Persistent Disk a una VM TPU
- Monta il disco permanente
- Eseguire la pulizia delle risorse 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 la crei. Puoi anche collegare un Persistent Disk a una VM TPU esistente.
Creazione di un disco permanente
Utilizza il comando seguente per creare un Persistent Disk:
$ gcloud compute disks create disk-name \ --size disk-size \ --zone zone \ --type pd-balanced
Descrizioni dei flag dei comandi
disk-name
- Un nome scelto da te 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
opd-balanced
.
Collegare un Persistent Disk
Puoi collegare un Persistent Disk alla VM TPU quando la crei o puoi aggiungerne uno dopo la creazione della VM TPU.
Collegare un Persistent Disk quando crei una VM TPU
.Utilizza 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 comando seguente 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 dei flag dei comandi
tpu-name
- Il nome che hai scelto per le risorse TPU.
project
- Il tuo ID progetto.
zone
- La zona in cui creare la Cloud TPU.
accelerator-type
- Il tipo di acceleratore specifica la versione e le dimensioni della Cloud TPU che vuoi creare. Per ulteriori 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 dei flag dei comandi
tpu-name
- Il nome delle risorse TPU.
zone
- La zona in cui si trova 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
oread-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 dei flag dei comandi
vm-instance
- Dopo aver eseguito l'accesso tramite SSH alla VM TPU, il prompt della shell cambia per includere il tuo ID utente seguito dal nome dell'istanza VM generata (ad es. 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 per il Persistent Disk.
Se la VM si arresta per qualsiasi motivo, il Persistent Disk potrebbe essere disconnesso. Consulta Configurare il montaggio automatico al riavvio del sistema per montare automaticamente il Persistent Disk al riavvio della VM.
Per ulteriori informazioni sull'eliminazione automatica di un Persistent Disk, consulta Modificare un disco permanente.
Montare un Persistent Disk
Per accedere a un Persistent Disk da una VM TPU, devi montarlo. Specifica una posizione nel file system della VM TPU a cui è possibile accedere al Persistent Disk.
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 funziona sia per i dispositivi TPU sia per i pod TPU. Se utilizzi i pod TPU, questo comando ti connette alla prima TPU del pod (chiamata anche worker 0).
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 esdb
è 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 del pod. Il nome del Persistent Disk dovrebbe essere lo stesso per tutte le VM TPU, ma non è garantito. Ad esempio, se scolleghi e poi ricolleghi il Persistent Disk, il nome del dispositivo verrà incrementato, passando da
sdb
asdc
.Se il disco non è stato formattato, formatta il Persistent Disk collegato:
(vm)$ sudo mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/sdb
Crea una directory per montare il Persistent Disk:
Se utilizzi un dispositivo TPU, esegui il seguente comando per creare una directory per montare il Persistent Disk:
(vm)$ sudo mkdir -p /mnt/disks/persist
Se utilizzi un pod di TPU, esegui il seguente comando all'esterno della VM TPU. Verrà creata la directory su tutte le VM TPU del pod.
(vm)$ gcloud compute tpus tpu-vm ssh $TPU_NAME --worker=all --command="sudo mkdir -p /mnt/disks/persist"
Monta il Persistent Disk:
Se utilizzi un dispositivo TPU, esegui il seguente 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 seguente comando al di fuori della VM TPU. Il Persistent Disk verrà montato su tutte le VM TPU del pod.
(vm)$ gcloud compute tpus tpu-vm ssh $TPU_NAME --worker=all --command="sudo mount -o discard,defaults /dev/sdb /mnt/disks/persist"
Smontare un disco permanente
Per smontare (scollegare) un disco permanente, esegui il seguente comando:
$ gcloud alpha compute tpus tpu-vm detach-disk tpu-name \ --zone=zone \ --disk=disk-name
Descrizioni dei flag dei comandi
tpu-name
- Il nome delle risorse TPU.
zone
- La zona in cui si trova Cloud TPU.
disk-name
- Il nome del Persistent Disk da scollegare dalla VM TPU.
Esegui la pulizia
Elimina le risorse TPU quando non ti servono più.
Se non l'hai già fatto, disconnetti dall'istanza Compute Engine:
(vm)$ exit
Il tuo prompt dovrebbe ora essere
username@projectname
, a indicare che ti trovi in Cloud Shell.Elimina le risorse Cloud TPU e Compute Engine.
$ gcloud compute tpus tpu-vm delete tpu-name \ --zone=zone
Verifica che le risorse siano state eliminate eseguendo
gcloud list
. L'eliminazione potrebbe richiedere alcuni minuti. L'output digcloud list
non deve mostrare nessuna delle risorse VM TPU create da questa procedura.$ gcloud compute tpus tpu-vm list --zone=zone
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 seguenti comandi per eliminarlo:
$ gcloud compute disks delete disk-name \ --zone zone