Agrega un disco persistente a una VM de TPU
Una VM TPU incluye un disco de arranque de 100 GB. En algunas situaciones, es posible que tu VM de TPU necesite almacenamiento adicional para el entrenamiento o el procesamiento previo. Puedes agregar un disco persistente para expandir la capacidad de tu disco local.
Descripción general
Un disco persistente conectado a una TPU de un solo dispositivo (v2-8, v3-8, v4-8, etcétera) se puede configurar como read-write
o read-only
. Cuando conectas un disco persistente a una VM de TPU que forma parte de una porción de TPU, el disco se conecta a cada VM de TPU en ese pod. Para evitar que dos o más VMs de TPU de un Pod escriban en un disco persistente
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 para almacenar un conjunto de datos para procesarlo en un pod de TPU.
Después de crear y conectar un disco persistente a tu VM de TPU, debes activar el disco persistente y especificar en qué parte del sistema de archivos se puede acceder al disco persistente. Para obtener más información, consulta Cómo activar un disco.
Requisitos previos
Debes tener una cuenta y un proyecto de Google Cloud configurados antes de usar los siguientes procedimientos. Si aún no tienes configurado un proyecto de Cloud TPU, sigue el procedimiento que se indica en Configura el entorno de Cloud TPU antes de continuar.
Pasos de alto nivel
Estos son los pasos de alto nivel para configurar un disco persistente:
- Cómo crear un disco persistente
- Cómo conectar un disco persistente a una VM de TPU
- Activa el disco persistente
- Cómo limpiar los recursos de la VM y el disco persistente de TPU
Configura una VM de TPU y un disco persistente
Puedes conectar un disco persistente a una VM de TPU cuando la creas. También puedes conectar un disco persistente a una VM de TPU existente.
Creación de un disco persistente
Usa el siguiente comando para crear un disco persistente:
$ gcloud compute disks createdisk-name \ --sizedisk-size \ --zonezone \ --typepd-balanced
Descripciones de las marcas de comandos
disk-name
- Un nombre que elijas para el disco persistente.
disk-size
- El tamaño del disco persistente en GB.
zone
- La zona en la que se creará el disco persistente. 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
.
Cómo conectar un disco persistente
Puedes conectar un disco persistente a tu VM de TPU cuando la creas o puedes agregar uno después de crearla.
Cómo conectar un disco persistente cuando creas una VM de TPU
Usa la marca --data-disk
para conectar un disco persistente cuando crees una VM de TPU.
Si creas un Pod de TPU, debes especificar mode=read-only
. Si estás creando un solo dispositivo TPU, puedes especificar mode=read-only
o mode=read-write
.
El siguiente comando crea una sola TPU y establece el modo de disco persistente en read-write
:
$ gcloud compute tpus tpu-vm createtpu-name \ --projectproject-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 de TPU.
project
- El ID de tu proyecto.
zone
- Es la zona en la que debes 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. Para obtener más información sobre los tipos de aceleradores compatibles con cada versión de TPU, consulta Versiones de TPU.
version
- La imagen de la VM de TPU para tu framework
data-disk
- El nombre y el modo de lectura/escritura del disco persistente que se conectará a la VM de TPU.
Cómo conectar un disco persistente a una VM de TPU existente
Usa el comando gcloud alpha compute tpus tpu-vm attach-disk
para conectar un disco persistente 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-disktpu-name \ --zone=zone \ --disk=disk-name \ --mode=disk-mode
Descripciones de las marcas de comandos
tpu-name
- El nombre de los recursos de TPU.
zone
- Es la zona en la que se encuentra la Cloud TPU.
disk-name
- Es el nombre del disco persistente que se adjuntará a la VM de TPU.
mode
- Es el modo del disco. El modo debe ser
read-only
oread-write
.
Si quieres borrar el disco persistente cuando borres la VM de TPU, debes establecer el estado de eliminación automática del disco persistente con el siguiente comando:
$ gcloud compute instances set-disk-auto-deletevm-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 mensaje 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 disco persistente.
auto-delete
- Borra automáticamente el disco persistente cuando se borran los recursos de TPU.
disk-name
- Un nombre para tu disco persistente.
Si la VM se apaga por algún motivo, es posible que el disco persistente se desconecte. Consulta Configura la activación automática cuando se reinicia el sistema para que tu disco persistente se active automáticamente cuando se reinicie la VM.
Para obtener más información sobre cómo borrar automáticamente un disco persistente, consulta Cómo modificar un disco persistente.
Activa un disco persistente
Para acceder a un disco persistente desde una VM de TPU, debes activarlo. Esto especifica una ubicación en el sistema de archivos de la VM de TPU a la que se puede acceder al disco persistente.
Conéctate a tu VM de TPU con SSH:
$ gcloud compute tpus tpu-vm ssh
tpu-name --zonezone 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 TPU y pods TPU. Si usas Pods de TPU, este comando te conectará a la primera TPU del Pod (también llamada trabajador 0).
Desde la VM de TPU, muestra una lista de 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 disco persistente que se agregó recientemente. El nombre del disco persistente conectado dependerá de la cantidad de discos persistentes que se conecten a la VM.Cuando uses un pod de TPU, deberás activar el disco persistente en todas las VMs de TPU de tu pod. El nombre del disco persistente debe ser el mismo para todas las VMs de TPU, pero no se garantiza. Por ejemplo, si desconectas y vuelves a conectar el disco persistente, el nombre del dispositivo aumentará y cambiará de
sdb
asdc
.Si el disco no tiene formato, formatea el disco persistente 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 disco persistente:
Si usas un dispositivo TPU, ejecuta el siguiente comando para crear un directorio para activar el disco persistente:
(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 del pod.
(vm)$ gcloud compute tpus tpu-vm ssh $TPU_NAME --worker=all --command="sudo mkdir -p /mnt/disks/persist"
Activa el disco persistente:
Si usas un dispositivo TPU, ejecuta el siguiente comando para activar el disco persistente en tu 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. Se adjuntará el disco persistente a todas las VMs de TPU de tu Pod.
(vm)$ gcloud compute tpus tpu-vm ssh $TPU_NAME --worker=all --command="sudo mount -o discard,defaults /dev/sdb /mnt/disks/persist"
Desactiva un disco persistente
Para desactivar (desactivar) un disco persistente, ejecuta el siguiente comando:
$ gcloud alpha compute tpus tpu-vm detach-disktpu-name \ --zone=zone \ --disk=disk-name
Descripciones de las marcas de comandos
tpu-name
- El nombre de los recursos de TPU.
zone
- Es la zona en la que se encuentra la Cloud TPU.
disk-name
- Es el nombre del disco persistente que se desconectará de la VM de TPU.
Limpia
Borra tus recursos de 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 debería 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 disco persistente se borró automáticamente cuando se borró la VM de TPU, muestra una lista de todos los discos de la zona en la que creaste el disco persistente:
$ gcloud compute disks list --filter="zone:(
us-central1-b )"Si el disco persistente no se borró cuando se borró la VM de TPU, usa los siguientes comandos para borrarlo:
$ gcloud compute disks delete
disk-name \ --zonezone