Agrega un Persistent Disk a una VM de TPU
Una VM de TPU incluye un disco de arranque de 100 GB. En algunas situaciones, la VM de TPU puede necesitar almacenamiento adicional para el entrenamiento o el procesamiento previo. Puedes agregar un disco persistente para expandir la capacidad de disco local.
Descripción general
Un Persistent Disk conectado a una TPU de un solo dispositivo (v2-8, v3-8, v4-8, etc.) se puede configurar como read-write
o read-only
. Cuando conectas un Persistent Disk a una VM de TPU que es parte de un pod de TPU, el disco se conecta a cada VM de TPU en ese pod. Para evitar que dos o más VM de TPU de un pod escriban en un Persistent Disk a la vez, todos los discos persistentes conectados a una VM de TPU en un pod deben configurarse como read-only
. Los discos read-only
son útiles a fin de almacenar un conjunto de datos que se procesará en un pod de TPU.
Después de crear y conectar un Persistent Disk a tu VM de TPU, debes activarlo y especificar en qué parte del sistema de archivos se puede acceder al Persistent Disk. Para obtener más información, consulta Activa un disco.
Requisitos previos
Debes tener configurados una cuenta y un proyecto de Google Cloud antes de usar los siguientes procedimientos. Si aún no tienes configurado un proyecto de Cloud TPU, sigue el procedimiento de Configura el entorno de Cloud TPU antes de continuar.
Pasos de alto nivel
Estos son los pasos de alto nivel para configurar un Persistent Disk:
- Crea un disco persistente
- Conectar un Persistent Disk a una VM de TPU
- Activa el disco persistente
- Limpia recursos de Persistent Disk y VM de TPU
Configura una VM de TPU y un Persistent Disk
Puedes conectar un Persistent Disk a una VM de TPU cuando la creas. También puedes conectar un Persistent Disk a una VM de TPU existente.
Creación de un disco persistente
Usa el siguiente comando para crear un Persistent Disk:
$ gcloud compute disks create disk-name \
--size disk-size \
--zone zone \
--type pd-balanced
Descripciones de las marcas de comandos
disk-name
- Un nombre de tu elección para el Persistent Disk.
disk-size
- El tamaño del Persistent Disk en GB.
zone
- La zona en la que se creará el Persistent Disk. Debe ser la misma zona que se usó para crear la TPU.
type
- El
tipo de disco que se agregará. Los tipos admitidos son
pd-standard
,pd-ssd
opd-balanced
.
Conectar un Persistent Disk
Puedes conectar un Persistent Disk a tu VM de TPU cuando creas la VM de TPU o puedes agregar uno después de crear la VM de TPU.
Conecta un Persistent Disk cuando crees una VM de TPU
Usa la marca --data-disk
para conectar un Persistent Disk cuando crees una VM de TPU.
Si creas un pod de TPU, debes especificar mode=read-only
. Si creas un solo dispositivo de TPU, puedes especificar mode=read-only
o mode=read-write
.
Con el siguiente comando, se crea una sola TPU y se establece el modo de Persistent Disk en 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
Descripciones de las marcas de comandos
tpu-name
- Es el nombre que elegiste para los recursos TPU.
project
- El ID del proyecto
zone
- La zona en la que se creará la Cloud TPU.
accelerator-type
- El tipo de acelerador especifica la versión y el tamaño de la Cloud TPU que deseas crear. Si deseas obtener más información sobre los tipos de aceleradores compatibles con cada versión de TPU, consulta las versiones de TPU.
version
- La imagen de VM de TPU para tu marco de trabajo.
data-disk
- Es el nombre y el modo de lectura y escritura del Persistent Disk que se conectará a la VM de TPU.
Conectar un Persistent Disk a una VM de TPU existente
Usa el comando gcloud alpha compute tpus tpu-vm attach-disk
para conectar un Persistent Disk a una VM de TPU existente. Consulta la documentación de gcloud
para obtener más detalles y ejemplos.
$ gcloud alpha compute tpus tpu-vm attach-disk tpu-name \
--zone=zone \
--disk=disk-name \
--mode=disk-mode
Descripciones de las marcas de comandos
tpu-name
- Es el nombre de los recursos TPU.
zone
- La zona en la que se encuentra Cloud TPU.
disk-name
- Es el nombre del Persistent Disk que se conectará a la VM de TPU.
mode
- Es el modo del disco. El modo debe ser uno de los siguientes:
read-only
oread-write
.
Si deseas borrar el Persistent Disk cuando eliminas la VM de TPU, debes configurar su estado de eliminación automática mediante el siguiente comando:
$ gcloud compute instances set-disk-auto-delete vm-instance \
--zone=zone \
--auto-delete \
--disk=disk-name
Descripciones de las marcas de comandos
vm-instance
- Después de establecer una conexión SSH a la VM de TPU, el indicador de shell cambia para incluir tu ID de usuario seguido de un nombre de instancia de VM generado (por ejemplo. pjohnston@t1v-n-...$). Reemplaza vm-instance por el nombre de la instancia de VM generada.
zone
- La zona en la que se encuentra el Persistent Disk.
auto-delete
- Borra el Persistent Disk de forma automática cuando se borran los recursos TPU.
disk-name
- Un nombre de tu Persistent Disk.
Si tu VM se apaga por algún motivo, es posible que el Persistent Disk se desconecte. Consulta Configura la activación automática durante el reinicio del sistema para que el Persistent Disk se active automáticamente cuando se reinicie la VM.
Para obtener más información sobre cómo borrar un Persistent Disk de forma automática, consulta Modifica un disco persistente.
Activa un Persistent Disk
Para acceder a un Persistent Disk desde una VM de TPU, debes activar el disco. Esto especifica una ubicación en el sistema de archivos de la VM de TPU en la que se puede acceder al Persistent Disk.
Conéctate a la VM de TPU con SSH:
$ gcloud compute tpus tpu-vm ssh tpu-name --zone zone
Cuando se trabaja con un pod de TPU, hay una VM de TPU para cada TPU en el pod. El comando anterior funcionará para dispositivos de TPU y Pods de TPU. Si usas pods de TPU, este comando te conectará a la primera TPU en el pod (también llamada trabajador 0).
Desde la VM de TPU, enumera los discos conectados a la VM de TPU:
(vm)$ sudo lsblk
El resultado del comando
lsblk
debería verse de la siguiente manera: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
En este ejemplo,
sda
es el disco de arranque ysdb
es el nombre del Persistent Disk conectado recientemente. El nombre del Persistent Disk conectado dependerá de cuántos discos persistentes estén conectados a la VM.Cuando uses un pod de TPU, deberás activar el Persistent Disk en todas las VM de TPU del pod. El nombre del Persistent Disk debe ser el mismo para todas las VM de TPU, pero no está garantizado. Por ejemplo, si desconectas y vuelves a conectar el Persistent Disk, el nombre del dispositivo aumentará y cambiará de
sdb
asdc
.Si no se formateó el disco, formatea el Persistent Disk conectado ahora:
(vm)$ sudo mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/sdb
Crea un directorio para activar el Persistent Disk:
Si usas un dispositivo de TPU, ejecuta el siguiente comando para crear un directorio que active el Persistent Disk:
(vm)$ sudo mkdir -p /mnt/disks/persist
Si usas un pod de TPU, ejecuta el siguiente comando fuera de tu VM de TPU. Esto creará el directorio en todas las VMs de TPU en el Pod.
(vm)$ gcloud compute tpus tpu-vm ssh $TPU_NAME --worker=all --command="sudo mkdir -p /mnt/disks/persist"
Activa el Persistent Disk:
Si usas un dispositivo de TPU, ejecuta el siguiente comando para activar el Persistent Disk en la VM de TPU.
(vm)$ sudo mount -o discard,defaults /dev/sdb /mnt/disks/persist
Si usas un pod de TPU, ejecuta el siguiente comando fuera de tu VM de TPU. Esto activará el Persistent Disk en todas las VMs de TPU en su Pod.
(vm)$ gcloud compute tpus tpu-vm ssh $TPU_NAME --worker=all --command="sudo mount -o discard,defaults /dev/sdb /mnt/disks/persist"
Limpia
Borra los recursos TPU cuando termines de usarlos.
Desconéctate de la instancia de Compute Engine, si aún no lo hiciste:
(vm)$ exit
El mensaje ahora debería mostrar
username@projectname
, que indica que estás en Cloud Shell.Borra tus recursos de Cloud TPU y Compute Engine.
$ gcloud compute tpus tpu-vm delete tpu-name \ --zone=zone
Ejecuta
gcloud list
para verificar que los recursos se hayan borrado. La eliminación puede tardar varios minutos. El resultado degcloud list
no debe mostrar ninguno de los recursos de VM de TPU creados por este procedimiento.$ gcloud compute tpus tpu-vm list --zone=zone
Para verificar que el Persistent Disk se borró de forma automática cuando se borró la VM de TPU, enumera todos los discos en la zona en la que creaste el Persistent Disk:
$ gcloud compute disks list --filter="zone:( us-central1-b )"
Si no se borró el Persistent Disk cuando se borró la VM de TPU, usa los siguientes comandos para borrarlo:
$ gcloud compute disks delete disk-name \ --zone zone