Collegare l'archiviazione a blocchi durevole a una VM TPU
Una VM TPU include un disco di avvio da 100 GiB. In alcuni scenari, la VM TPU potrebbe aver bisogno di spazio di archiviazione aggiuntivo per l'addestramento o la pre-elaborazione. Puoi aggiungere un Google Cloud Hyperdisk o Persistent Disk (DP) volume per espandere la capacità del disco locale.
Per ottenere le massime prestazioni e funzionalità avanzate, Google consiglia di utilizzare Hyperdisk, se disponibile per la tua TPU. In caso contrario, utilizza Persistent Disk. Per ulteriori informazioni sulle opzioni di archiviazione a blocchi in Compute Engine, vedi Scegli un tipo di disco.
Supporto TPU per Hyperdisk e Persistent Disk
La tabella seguente mostra i tipi di dischi supportati per ogni versione di TPU:
| Versione TPU | Tipi di dischi supportati | Numero massimo di dischi per VM (incluso il disco di avvio) |
|---|---|---|
| TPU7x | Hyperdisk bilanciato Hyperdisk ML |
128 |
| v6e | Hyperdisk bilanciato Hyperdisk ML |
32 |
| v5p | Disco permanente bilanciato | 128 |
| v5e | Disco permanente bilanciato | 128 |
| v4 | Disco permanente bilanciato | 128 |
| v3 | Disco permanente bilanciato | 128 |
| v2 | Disco permanente bilanciato | 128 |
Modalità di accesso
Puoi configurare un disco collegato a una TPU in modalità writer singolo o di sola lettura, come mostrato nella tabella seguente:
| Modalità di accesso | Descrizione | Valore nell'API Compute Engine | Valore nell'API Cloud TPU | Tipi di dischi supportati |
|---|---|---|---|---|
| Modalità writer singolo | Questa è la modalità di accesso predefinita. Consente di collegare il disco a al massimo un'istanza alla volta. L'istanza ha accesso in lettura/scrittura a disco. | READ_WRITE_SINGLE |
read-write |
|
| Modalità di sola lettura | Consente di collegare simultaneamente più istanze in modalità di sola lettura mode. Le istanze non possono scrivere sul disco in questa modalità. Obbligatoria per la condivisione di sola lettura. | READ_ONLY_MANY |
read-only |
|
Puoi configurare un disco collegato a una TPU a host singolo (ad esempio v6e-8, v5p-8 o v5litepod-8) in modalità writer singolo o di sola lettura.
Quando colleghi un disco a una TPU multi-host, il disco viene collegato a ogni VM in quella TPU. Per impedire a due o più VM TPU di scrivere su un disco contemporaneamente, devi configurare tutti i dischi collegati a una TPU multi-host come di sola lettura. I dischi di sola lettura sono utili per archiviare un set di dati per l'elaborazione su una sezione TPU.
Prerequisiti
Prima di utilizzare le seguenti procedure, devi configurare un Google Cloud account e un progetto. Per ulteriori informazioni, vedi Configurare l'ambiente Cloud TPU.
Crea un disco
Utilizza il seguente comando per creare un disco:
$ gcloud compute disks create DISK_NAME \ --size DISK_SIZE \ --zone ZONE \ --type DISK_TYPE
Descrizioni dei flag dei comandi
DISK_NAME: il nome del nuovo disco.DISK_SIZE: le dimensioni del nuovo disco. Il valore deve essere un numero intero seguito da un'unità di misura della dimensione in GB per gigabyte o TB per tebibyte. Se non viene specificata un'unità di misura delle dimensioni, viene utilizzato il GB.ZONE: il nome della zona in cui creare il nuovo disco. Deve essere la stessa zona utilizzata per creare la TPU.DISK_TYPE: il tipo di disco. Utilizza uno dei seguenti valori:hyperdisk-balanced,hyperdisk-ml, opd-balanced.
Per Hyperdisk, puoi facoltativamente specificare il flag --access-mode con uno dei seguenti valori:
READ_WRITE_SINGLE: accesso in lettura/scrittura da un'istanza. Questo è il valore predefinito.READ_ONLY_MANY: (solo Hyperdisk ML) accesso simultaneo di sola lettura da più istanze.
Per ulteriori informazioni sulla creazione dei dischi, vedi Crea un nuovo volume Hyperdisk e Crea un nuovo volume Persistent Disk.
Collega un disco
Puoi collegare un volume disco alla VM TPU quando crei la VM TPU oppure puoi collegarne uno dopo la creazione della VM TPU.
Collega un disco quando crei una VM TPU
Utilizza il flag --data-disk per collegare un volume disco quando crei una VM TPU.
Se stai creando una TPU multi-host, devi specificare mode=read-only (solo Hyperdisk ML e Balanced Persistent Disk). Se stai creando una TPU a host singolo, puoi specificare mode=read-only (solo Hyperdisk ML e disco permanente bilanciato) o mode=read-write. Per ulteriori informazioni, vedi Modalità di accesso.
L'esempio seguente mostra come collegare un volume disco durante la creazione di una VM TPU utilizzando risorse in coda:
$ 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
Descrizioni dei flag dei comandi
QR_NAME: il nome della richiesta di risorse in coda.TPU_NAME: il nome della nuova TPU.PROJECT_ID: l'ID del Google Cloud progetto in cui creare la TPU.ZONE: il nome della 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, vedi Versioni di TPU.TPU_SOFTWARE_VERSION: la versione software TPU.DISK_NAME: il nome del disco da collegare a la VM TPU.MODE: la modalità del disco. La modalità deve essere una tra:read-onlyoread-write. Se non specificata, la modalità predefinita èread-write. Per ulteriori informazioni, vedi Modalità di accesso.
Puoi anche collegare un disco quando crei una VM TPU utilizzando il
gcloud compute tpus tpu-vm create
comando:
$ 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
Descrizioni dei flag dei comandi
TPU_NAME: il nome della nuova TPU.PROJECT_ID: l'ID del Google Cloud progetto in cui creare la TPU.ZONE: il nome della 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, vedi Versioni di TPU.TPU_SOFTWARE_VERSION: la versione software TPU.DISK_NAME: il nome del disco da collegare alla VM TPU.MODE: la modalità del disco. La modalità deve essere una tra:read-onlyoread-write. Se non specificata, la modalità predefinita èread-write. Per ulteriori informazioni, vedi Modalità di accesso.
Collega un disco a una VM TPU esistente
Utilizza il gcloud alpha compute tpus tpu-vm
attach-disk
comando per collegare un disco a una VM TPU esistente.
$ gcloud alpha compute tpus tpu-vm attach-disk TPU_NAME \ --zone=ZONE \ --disk=DISK_NAME \ --mode=MODE
Descrizioni dei flag dei comandi
TPU_NAME: il nome della TPU.ZONE: la zona in cui si trova la Cloud TPU.DISK_NAME: il nome del disco da collegare alla VM TPU.MODE: la modalità del disco. La modalità deve essere una tra:read-onlyoread-write. Se non specificata, la modalità predefinita èread-write. Deve corrispondere alla modalità di accesso del disco.
Se la VM si arresta per qualsiasi motivo, potrebbe essere necessario montare il disco dopo aver riavviato la VM. Per informazioni su come abilitare il montaggio automatico del disco al riavvio della VM, vedi Configurare il montaggio automatico al riavvio del sistema
Per ulteriori informazioni sull'eliminazione automatica di un disco, vedi Modificare un Hyperdisk e Modificare un Persistent Disk.
Formatta e monta un disco
Se hai collegato un nuovo disco vuoto alla VM TPU, prima di poterlo utilizzare devi formattarlo e montarlo. Se hai collegato un disco che già contiene dati, devi montarlo prima di poterlo utilizzare.
Per ulteriori informazioni sulla formattazione e sul montaggio di un disco non di avvio, vedi Formattare e montare un disco non di avvio su una VM Linux.
Connettiti alla VM TPU tramite SSH:
$ gcloud compute tpus tpu-vm ssh TPU_NAME --zone ZONE
Se utilizzi una TPU multi-host, questo comando ti connetterà alla prima TPU nella sezione TPU (chiamata anche worker 0).
Dalla VM TPU, elenca i dischi collegati alla VM TPU:
(vm)$ sudo lsblk
L'output del comando
lsblkè 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
In questo esempio,
sdaè il disco di avvio esdbè il nome del disco appena collegato. Il nome del disco collegato dipende dal numero di dischi collegati alla VM.Quando utilizzi una TPU multi-host, devi montare il disco su tutte le VM TPU nella sezione TPU. Il nome del disco deve essere uguale per tutte le VM TPU, ma non è garantito. Ad esempio, se scolleghi e poi ricolleghi il disco, il nome del dispositivo viene incrementato, passando da
sdbasdc.Se il disco non è stato formattato, formattalo utilizzando lo
mkfsstrumento. Sostituisci sdb se il disco ha un nome di dispositivo diverso. Sostituisci ext4 se vuoi utilizzare un file system diverso.(vm)$ sudo mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/sdb
Crea una directory per montare il disco sulla TPU.
Se utilizzi una TPU a host singolo, esegui il seguente comando dalla TPU per creare una directory in cui montare il disco:
(vm)$ sudo mkdir -p /mnt/disks/MOUNT_DIR
Sostituisci MOUNT_DIR con la directory in cui montare il disco.
Se utilizzi una TPU multi-host, esegui il seguente comando all'esterno della VM TPU. Questo comando creerà la directory su tutte le VM TPU nella sezione TPU.
(vm)$ gcloud compute tpus tpu-vm ssh TPU_NAME --worker=all --command="sudo mkdir -p /mnt/disks/MOUNT_DIR"
Monta il disco sulla TPU utilizzando lo strumento
mount.Se utilizzi una TPU a host singolo, esegui il seguente comando per montare il disco sulla VM TPU:
(vm)$ sudo mount -o discard,defaults /dev/sdb /mnt/disks/MOUNT_DIR
Se utilizzi una TPU multi-host, esegui il seguente comando all'esterno della VM TPU. Il disco verrà montato su tutte le VM TPU nella sezione TPU.
(vm)$ gcloud compute tpus tpu-vm ssh TPU_NAME --worker=all --command="sudo mount -o discard,defaults /dev/sdb /mnt/disks/MOUNT_DIR"
Configura le autorizzazioni di lettura e scrittura sul disco. Ad esempio, il seguente comando concede l'accesso in scrittura al disco per tutti gli utenti.
(vm)$ sudo chmod a+w /mnt/disks/MOUNT_DIR
Smonta un disco
Per smontare (scollegare) un disco dalla VM TPU, 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 della TPU.ZONE: la zona in cui si trova la Cloud TPU.DISK_NAME: il nome del disco da scollegare dalla VM TPU.
Libera spazio
Elimina le risorse Cloud TPU e Compute Engine quando non ti servono più.
Disconnettiti dalla Cloud TPU, se non l'hai già fatto:
(vm)$ exit
Il tuo prompt dovrebbe ora essere
username@projectname, a indicare che ti trovi in Cloud Shell.Elimina la Cloud TPU:
$ gcloud compute tpus tpu-vm delete TPU_NAME \ --zone=ZONE
Verifica che la Cloud TPU sia stata eliminata. L'eliminazione potrebbe richiedere alcuni minuti.
$ gcloud compute tpus tpu-vm list --zone=ZONE
Verifica che il disco sia stato eliminato automaticamente quando la VM TPU è stata eliminata elencando tutti i dischi nella zona in cui hai creato il disco:
$ gcloud compute disks list --filter="zone:( ZONE )"
Se il disco non è stato eliminato quando la VM TPU è stata eliminata, utilizza il seguente comando per eliminarlo:
$ gcloud compute disks delete DISK_NAME \ --zone ZONE