Conecta almacenamiento en bloque duradero a una VM de TPU
Una VM de TPU incluye un disco de arranque de 10 GB. En algunos casos, es posible que necesites almacenamiento adicional para el entrenamiento o el procesamiento previo. Agrega un volumen de Google Cloud Hyperdisk o Persistent Disk (PD) para expandir la capacidad del disco local.
Para obtener el mayor rendimiento y las funciones avanzadas, usa Hyperdisk si está disponible para tu versión de TPU. De lo contrario, usa Persistent Disk. Para obtener más información sobre las opciones de almacenamiento en bloque en Compute Engine, consulta Elige un tipo de disco.
Compatibilidad con TPU para Hyperdisk y Persistent Disk
En la siguiente tabla, se muestran los tipos de discos compatibles para cada versión de TPU:
| Versión de TPU | Tipos de discos compatibles | Cantidad máxima de discos por VM (incluye el disco de arranque) |
|---|---|---|
| TPU7x | Hyperdisk Balanced Hyperdisk ML |
128 |
| v6e | Hyperdisk Balanced Hyperdisk ML |
32 |
| v5p | Hyperdisk ML Disco persistente balanceado |
128 |
Modos de acceso
Configura un disco conectado a una sola VM de TPU (también llamada porción de TPU de un solo host), por ejemplo, ct6e-standard-4t, en modo de lectura y escritura (rw) o de solo lectura (ro).
Cuando conectas un disco a una porción de TPU de varios hosts, el disco se conecta a cada VM de la porción. Para evitar que varias VMs de TPU escriban en un disco de forma simultánea, debes configurar todos los discos conectados a una porción de TPU de varios hosts como de solo lectura (ro). Los discos de solo lectura son útiles para almacenar un conjunto de datos para su procesamiento en una porción de TPU.
Requisitos previos
Antes de usar estos procedimientos, configura una cuenta y un proyecto de Google Cloud . Para obtener más información, consulta Configura el entorno de Cloud TPU.
Crear un disco
Para crear un disco, usa el siguiente comando:
gcloud compute disks create DISK_NAME \
--size DISK_SIZE \
--zone ZONE \
--type DISK_TYPE
Reemplaza los marcadores de posición que se indican más abajo:
- DISK_NAME: Es el nombre del disco nuevo.
- DISK_SIZE: Es el tamaño del disco nuevo. El valor debe ser un número entero seguido de una unidad de tamaño de GB para gigabyte o TB para tebibyte. Si no especificas una unidad de tamaño, el sistema supone que es GB.
- ZONE: Es el nombre de la zona en la que se creará el disco nuevo. Debe ser la misma zona en la que creas la TPU.
- DISK_TYPE: Es el tipo de disco.
Usa uno de estos valores:
hyperdisk-balanced,hyperdisk-mlopd-balanced.
En el caso de Hyperdisk, puedes especificar opcionalmente la marca --access-mode con uno de estos valores:
- READ_WRITE_SINGLE: Es el acceso de lectura y escritura desde una instancia (predeterminado).
- READ_ONLY_MANY: (Solo para Hyperdisk ML) Es el acceso de solo lectura en simultáneo desde varias instancias.
Para obtener más información sobre cómo crear discos, consulta Crea un nuevo volumen de Hyperdisk y Crea un nuevo volumen de Persistent Disk.
Conecta un disco
Conecta un volumen de disco a tu VM o segmento de TPU cuando lo crees, o bien conéctalo después de la creación.
Conecta un disco cuando crees una VM de TPU
Cuando crees una VM de TPU o una plantilla de instancias, usa la marca --disk para conectar un volumen de disco.
Conecta un disco cuando crees una sola VM de TPU
En el siguiente ejemplo, se muestra cómo conectar un volumen de disco cuando creas una sola VM de TPU:
gcloud compute instances create TPU_NAME \
--machine-type=MACHINE_TYPE \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT \
--zone=ZONE \
--maintenance-policy=TERMINATE \
--disk=name=DISK_NAME,device-name=DEVICE_NAME,mode=MODE
Reemplaza los marcadores de posición que se indican más abajo:
- TPU_NAME: Es el nombre de tu VM de TPU.
- MACHINE_TYPE: El tipo de máquina de la VM de TPU (por ejemplo,
ct6e-standard-8t). - IMAGE_FAMILY: Es la familia de imágenes del SO de la VM de TPU. Si deseas instalar una versión específica del SO, usa la marca
--image. Para obtener más información sobre las imágenes de SO, consulta Imágenes de SO. - IMAGE_PROJECT: Es el proyecto que contiene la imagen de SO.
Para las imágenes de TPU, es
ubuntu-os-accelerator-images. - ZONE: Es la zona de la VM de TPU.
- DEVICE_NAME: Es el nombre del dispositivo que se usará para el disco. Este nombre identifica el disco en el SO.
- MODE: Es el modo del disco. Puede ser
rw(lectura y escritura) oro(solo lectura). Para obtener más información, consulta Modos de acceso.
Conecta un disco cuando crees una porción de TPU de varios hosts
Cuando creas una porción de TPU de varios hosts, debes especificar mode=read-only (solo para Hyperdisk ML y disco persistente balanceado). Para obtener más información, consulta Modos de acceso.
Para conectar un disco a una porción de TPU de varios hosts, crea una plantilla de instancia con el disco conectado, crea una política de carga de trabajo y, luego, crea un MIG:
Crea una plantilla de instancias
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME --machine-type=MACHINE_TYPE \ --maintenance-policy=TERMINATE \ --image-family=IMAGE_FAMILY \ --image-project=IMAGE_PROJECT \ --disk=name=DISK_NAME,mode=MODEReemplaza los marcadores de posición que se indican más abajo:
- INSTANCE_TEMPLATE_NAME: Es el nombre de la plantilla de instancias.
- MACHINE_TYPE: Es el tipo de máquina de la VM de TPU, por ejemplo,
ct6e-standard-8t. - IMAGE_FAMILY: Es la familia de imágenes del SO para la VM de TPU. Si deseas instalar una versión específica del SO, usa la marca
--image. Para obtener más información sobre las imágenes de SO, consulta Imágenes de SO. - IMAGE_PROJECT: Es el proyecto que contiene la imagen de SO.
Para las imágenes de TPU, es
ubuntu-os-accelerator-images. - DISK_NAME: Es el nombre del disco que se conectará a la VM de TPU.
- MODE: Es el modo del disco. El modo debe ser
ro(solo lectura) para las porciones de TPU de varios hosts.
Crear una política de cargas de trabajo
gcloud compute resource-policies create workload WORKLOAD_POLICY_NAME \ --type=high-throughput \ --accelerator-topology=TOPOLOGYReemplaza los marcadores de posición que se indican más abajo:
- WORKLOAD_POLICY_NAME: Es el nombre de tu política de carga de trabajo.
- TOPOLOGY: Es la topología de las VMs de TPU, por ejemplo,
4x4x8. Para obtener más información sobre la topología de cada versión de TPU, consulta Arquitectura del sistema.
Crea un MIG:
gcloud compute instance-groups managed create MIG_NAME \ --project=PROJECT_ID \ --zone=ZONE \ --template=TEMPLATE_NAME \ --size=SIZE \ --workload-policy=WORKLOAD_POLICY_NAMEReemplaza los marcadores de posición que se indican más abajo:
- MIG_NAME: Es el nombre del MIG.
- PROJECT_ID: El ID del proyecto
- ZONE: Es la zona en la que se encuentra la Cloud TPU.
- TEMPLATE_NAME: Es el nombre de la plantilla de instancias.
- SIZE: Es la cantidad de VMs para tu segmento de TPU de varios hosts.
- WORKLOAD_POLICY_NAME: Es el nombre de tu política de carga de trabajo.
Conecta un disco cuando crees un MIG con varias porciones de TPU de host único
Si creas una porción de TPU de un solo host, puedes especificar mode=read-only (solo para Hyperdisk ML y disco persistente balanceado) o mode=read-write.
Para conectar almacenamiento duradero a un MIG con segmentos de TPU independientes de un solo host, configura la plantilla de instancias para crear un disco nuevo para cada instancia con la marca --create-disk:
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT \
--disk=name=DISK_NAME,mode=MODE
Reemplaza los marcadores de posición que se indican más abajo:
- INSTANCE_TEMPLATE_NAME: Es el nombre de la plantilla de instancias.
- MACHINE_TYPE: Es el tipo de máquina de la VM de TPU (por ejemplo,
ct6e-standard-8t). - IMAGE_FAMILY: Es la familia de imagen de SO para la VM de TPU.
- IMAGE_PROJECT: Es el proyecto que contiene la imagen de SO (
ubuntu-os-accelerator-images). - DISK_NAME: Es el nombre base del disco que se creará y se conectará a cada VM de TPU.
- DISK_SIZE: Es el tamaño del disco en GB.
- DISK_TYPE: Es el tipo de disco (por ejemplo,
pd-balanced,hyperdisk-balanced).
Luego, crea el MIG como se muestra en la sección anterior y configura --size en la cantidad de VMs de TPU que elegiste.
Conecta un disco a una VM de TPU existente
Para conectar un disco a una VM de TPU existente, usa el comando gcloud compute instances attach-disk.
gcloud compute instances attach-disk VM_NAME \
--zone=ZONE \
--disk=DISK_NAME \
--mode=MODE
Reemplaza los marcadores de posición que se indican más abajo:
- VM_NAME: Es el nombre de la VM de TPU.
- ZONE: Es la zona en la que se encuentra la Cloud TPU.
- DISK_NAME: Es el nombre del disco que se conectará a la VM de TPU.
- MODE: Es el modo del disco. Para obtener más información, consulta Modos de acceso.
Si la VM se apaga por algún motivo, es posible que debas activar el disco después de reiniciar la VM. Para obtener información sobre cómo habilitar la activación automática del disco cuando se reinicia la VM, consulta Configura la activación automática cuando se reinicia el sistema.
Para obtener más información sobre cómo borrar un disco de forma automática, consulta Modifica un Hyperdisk y Modifica un Persistent Disk.
Formatea y activa un disco
Si conectas un disco nuevo en blanco a tu VM de TPU, debes formatearlo y activarlo antes de poder usarlo. Si conectas un disco que ya contiene datos, debes activarlo antes de poder usarlo.
Para obtener más información sobre cómo formatear y activar un disco que no sea de arranque, consulta Formatea y activa un disco que no sea de arranque en una VM de Linux.
Desconecta un disco
Para desconectar un disco de la VM de tu TPU, ejecuta el siguiente comando:
gcloud compute instances detach-disk VM_NAME \
--zone=ZONE \
--disk=DISK_NAME
Reemplaza los marcadores de posición que se indican más abajo:
- VM_NAME: Es el nombre de la VM de TPU.
- ZONE: Es la zona en la que se encuentra la Cloud TPU.
- DISK_NAME: Es el nombre del disco que se desconectará de la VM de TPU.
Para obtener más información sobre cómo desconectar un disco, consulta Desconecta un disco.
Realiza una limpieza
Borra tus recursos de Cloud TPU y Compute Engine cuando termines de usarlos.
Desconéctate de la Cloud TPU, si aún no lo hiciste:
exitBorra tu VM de TPU:
gcloud compute instances delete VM_NAME \ --zone=ZONEReemplaza los marcadores de posición que se indican más abajo:
- VM_NAME: Es el nombre de la VM de TPU.
- ZONE: Es la zona en la que se encuentra la Cloud TPU.
Si creaste una porción de TPU de varios hosts con un MIG, borra el grupo de instancias:
gcloud compute instance-groups managed delete MIG_NAME \ --zone=ZONEReemplaza los marcadores de posición que se indican más abajo:
- MIG_NAME: el nombre del MIG
- ZONE: Es la zona en la que se encuentra la Cloud TPU.
Verifica que se haya borrado la Cloud TPU. La eliminación puede tardar varios minutos.
gcloud compute instances list --zone=ZONEVerifica que el disco se borre automáticamente cuando se borre la VM de TPU. Para ello, enumera todos los discos de la zona en la que lo creaste:
gcloud compute disks list --filter="zone:( ZONE )"Reemplaza los marcadores de posición que se indican más abajo:
- ZONE: Es la zona en la que se encuentra la Cloud TPU.
Si el disco no se borra cuando se borra la VM de TPU, usa el siguiente comando para hacerlo de forma manual:
gcloud compute disks delete DISK_NAME \ --zone=ZONEReemplaza los marcadores de posición que se indican más abajo:
- DISK_NAME: Es el nombre del disco que se borrará.
- ZONE: Es la zona en la que se encuentra la Cloud TPU.