Anexar um armazenamento em blocos durável a uma VM de TPU
Uma VM de TPU inclui um disco de inicialização de 10 GB. Alguns cenários exigem mais armazenamento para treinamento ou pré-processamento. Adicione um volume do Google Cloud Hyperdisk ou do Persistent Disk (DP) para expandir a capacidade do disco local.
Para ter o melhor desempenho e recursos avançados, use o Hyperdisk, se ele estiver disponível para sua versão de TPU. Caso contrário, use o Persistent Disk. Para mais informações sobre opções de armazenamento em blocos no Compute Engine, consulte Escolher um tipo de disco.
Disponibilidade da TPU para Hyperdisk e Persistent Disk
A tabela abaixo mostra os tipos de disco disponíveis em cada versão de TPU:
| Versão da TPU | Tipos de disco disponíveis | Número máximo de discos por VM (inclui o disco de inicialização) |
|---|---|---|
| TPU7x | Hyperdisk Balanced Hyperdisk ML |
128 |
| v6e | Hyperdisk Balanced Hyperdisk ML |
32 |
| v5p | Hyperdisk ML Balanced Persistent Disk |
128 |
Meios de acesso
Configure um disco anexado a uma única VM de TPU (também chamada de fração de TPU de host único), por exemplo, ct6e-standard-4t, no modo de leitura e gravação (rw) ou somente leitura (ro).
Quando você anexa um disco a uma fração de TPU de vários hosts, ele é anexado a cada VM na fração. Para evitar que várias VMs de TPU façam gravações em um disco simultaneamente, configure todos os discos anexados a uma fração de TPU de vários hosts como somente leitura (ro). Os discos somente leitura são úteis para armazenar um conjunto de dados para processamento em uma fração de TPU.
Pré-requisitos
Antes de usar esses procedimentos, configure uma Google Cloud conta e um projeto do. Para mais informações, consulte Configurar o ambiente do Cloud TPU.
Criar um disco
Para criar um disco, use o comando abaixo:
gcloud compute disks create DISK_NAME \
--size DISK_SIZE \
--zone ZONE \
--type DISK_TYPE
Substitua os seguintes marcadores de posição:
- DISK_NAME: o nome do novo disco.
- DISK_SIZE: o tamanho do novo disco. O valor precisa ser um número inteiro seguido por uma unidade de tamanho de GB para gibibyte ou TB para tebibyte. Se você não especificar uma unidade de tamanho, o sistema vai assumir GB.
- ZONE: o nome da zona em que o novo disco será criado. Ela precisa ser a mesma zona em que você cria a TPU.
- DISK_TYPE: o tipo do disco.
Use um destes valores:
hyperdisk-balanced,hyperdisk-mloupd-balanced.
Para o Hyperdisk, você pode especificar opcionalmente a flag --access-mode com um destes valores:
- READ_WRITE_SINGLE: acesso de leitura e gravação de uma instância (padrão).
- READ_ONLY_MANY: (somente Hyperdisk ML) acesso somente leitura simultâneo de várias instâncias.
Para saber como criar discos, consulte Criar um volume do Hyperdisk e Criar um volume do Persistent Disk.
Anexar um disco
Anexe um volume de disco à VM de TPU ou fração ao criar ou anexar um após a criação.
Anexar um disco ao criar uma VM de TPU
Ao criar uma VM de TPU ou um modelo de instância, use a flag --disk para anexar um volume de disco.
Anexar um disco ao criar uma única VM de TPU
O exemplo abaixo mostra como anexar um volume de disco ao criar uma única 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
Substitua os seguintes marcadores de posição:
- TPU_NAME: um nome para sua VM de TPU.
- MACHINE_TYPE: o tipo de máquina
da VM de TPU (por exemplo,
ct6e-standard-8t). - IMAGE_FAMILY: a família de imagens do SO
para a VM de TPU. Se você quiser instalar uma versão específica do SO, use a
--imageflag. Para mais informações sobre imagens do SO, consulte Imagens do SO. - IMAGE_PROJECT: o projeto que contém a imagem do SO.
Para imagens de TPU, esse é
ubuntu-os-accelerator-images. - ZONE: a zona da VM de TPU.
- DEVICE_NAME: o nome do dispositivo a ser usado para o disco. Esse nome identifica o disco no SO.
- MODE: o modo do disco. Pode ser
rw(leitura e gravação) ouro(somente leitura). Para mais informações, consulte Modos de acesso.
Anexar um disco ao criar uma fração de TPU de vários hosts
Ao criar uma fração de TPU de vários hosts, especifique mode=read-only (somente Hyperdisk ML e disco permanente equilibrado). Para mais informações, consulte
Modos de acesso.
Para anexar um disco a uma fração de TPU de vários hosts, crie um modelo de instância com o disco anexado, crie uma política de carga de trabalho e, em seguida, crie um MIG:
Criar um modelo de instância
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=MODESubstitua os seguintes marcadores de posição:
- INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.
- MACHINE_TYPE: o tipo de máquina
da VM de TPU, por exemplo,
ct6e-standard-8t. - IMAGE_FAMILY: a família de imagens do SO
para a VM de TPU. Se você quiser instalar uma versão específica do SO, use a flag
--image. Para mais informações sobre imagens do SO, consulte Imagens do SO. - IMAGE_PROJECT: o projeto que contém a imagem do SO.
Para imagens de TPU, esse é
ubuntu-os-accelerator-images. - DISK_NAME: o nome do disco a ser anexado à VM de TPU.
- MODE: o modo do disco. O modo precisa ser
ro(somente leitura) para frações de TPU de vários hosts.
Criar uma política de carga de trabalho
gcloud compute resource-policies create workload WORKLOAD_POLICY_NAME \ --type=high-throughput \ --accelerator-topology=TOPOLOGYSubstitua os seguintes marcadores de posição:
- WORKLOAD_POLICY_NAME: o nome da política de carga de trabalho.
- TOPOLOGY: a topologia das VMs de TPU, por exemplo,
4x4x8. Para mais informações sobre a topologia de cada versão da TPU, consulte Arquitetura do sistema.
Criar um MIG:
gcloud compute instance-groups managed create MIG_NAME \ --project=PROJECT_ID \ --zone=ZONE \ --template=TEMPLATE_NAME \ --size=SIZE \ --workload-policy=WORKLOAD_POLICY_NAMESubstitua os seguintes marcadores de posição:
- MIG_NAME: o nome do MIG.
- PROJECT_ID: o ID do projeto.
- ZONE: a zona em que o Cloud TPU está localizado.
- TEMPLATE_NAME: o nome do modelo de instância.
- SIZE: o número de VMs para sua fração de TPU de vários hosts.
- WORKLOAD_POLICY_NAME: o nome da política de carga de trabalho.
Anexar um disco ao criar um MIG com várias frações de TPU de host único
Se você criar uma fração de TPU de host único, poderá especificar mode=read-only (somente Hyperdisk ML e disco permanente equilibrado) ou mode=read-write.
Para anexar um armazenamento durável a um MIG com frações de TPU de host único independentes, configure o modelo de instância para criar um novo disco para cada instância usando a flag --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
Substitua os seguintes marcadores de posição:
- INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.
- MACHINE_TYPE: o tipo de máquina da VM de TPU (por exemplo,
ct6e-standard-8t). - IMAGE_FAMILY: a família de imagens do SO para a VM de TPU.
- IMAGE_PROJECT: o projeto que contém a imagem do SO (
ubuntu-os-accelerator-images). - DISK_NAME: o nome base do disco a ser criado e anexado a cada VM de TPU.
- DISK_SIZE: o tamanho do disco em GB.
- DISK_TYPE: o tipo de disco (por exemplo,
pd-balanced,hyperdisk-balanced).
Em seguida, crie o MIG conforme mostrado na seção anterior,
definindo --size como o número escolhido de VMs de TPU.
Anexar um disco a uma VM de TPU atual
Para anexar um disco a uma VM de TPU atual, use o gcloud compute instances attach-disk
comando.
gcloud compute instances attach-disk VM_NAME \
--zone=ZONE \
--disk=DISK_NAME \
--mode=MODE
Substitua os seguintes marcadores de posição:
- VM_NAME: o nome da VM de TPU.
- ZONE: a zona em que o Cloud TPU está localizado.
- DISK_NAME: o nome do disco a ser anexado à VM de TPU.
- MODE: o modo do disco. Para mais informações, consulte Modos de acesso.
Se a VM for interrompida por algum motivo, talvez seja necessário ativar o disco depois de reiniciá-la. Para saber como ativar automaticamente o disco na reinicialização da VM, consulte Configurar a ativação automática na reinicialização do sistema.
Para saber como excluir um disco automaticamente, consulte Modificar um Hyperdisk e Modificar um Persistent Disk.
Formatar e ativar um disco
Se você anexar um disco novo e em branco à VM de TPU, ele deverá ser formatado e ativado antes de ser usado. Se você anexar um disco que já contém dados, ative-o antes de usá-lo.
Para saber como formatar e ativar um disco que não é de inicialização, consulte Formatar e ativar um disco que não é de inicialização em uma VM do Linux.
Remover um disco
Para remover um disco da VM de TPU, execute este comando:
gcloud compute instances detach-disk VM_NAME \
--zone=ZONE \
--disk=DISK_NAME
Substitua os seguintes marcadores de posição:
- VM_NAME: o nome da VM de TPU.
- ZONE: a zona em que o Cloud TPU está localizado.
- DISK_NAME: o nome do disco a ser removido da VM de TPU.
Para mais informações sobre como remover um disco, consulte Remover um disco.
Limpar
Exclua os recursos do Cloud TPU e do Compute Engine quando terminar de usá-los.
Desconecte-se do Cloud TPU, caso ainda não tenha feito isso:
exitExclua a VM de TPU:
gcloud compute instances delete VM_NAME \ --zone=ZONESubstitua os seguintes marcadores de posição:
- VM_NAME: o nome da VM de TPU.
- ZONE: a zona em que o Cloud TPU está localizado.
Se você criou uma fração de TPU de vários hosts usando um MIG, exclua o grupo de instâncias:
gcloud compute instance-groups managed delete MIG_NAME \ --zone=ZONESubstitua os seguintes marcadores de posição:
- MIG_NAME: o nome do MIG.
- ZONE: a zona em que o Cloud TPU está localizado.
Verifique a exclusão do Cloud TPU. A exclusão pode levar vários minutos.
gcloud compute instances list --zone=ZONEVerifique se o disco é excluído automaticamente quando a VM de TPU é excluída, listando todos os discos na zona em que o disco foi criado:
gcloud compute disks list --filter="zone:( ZONE )"Substitua os seguintes marcadores de posição:
- ZONE: a zona em que o Cloud TPU está localizado.
Se o disco não for excluído quando a VM de TPU for excluída, use o comando abaixo para excluí-lo:
gcloud compute disks delete DISK_NAME \ --zone=ZONESubstitua os seguintes marcadores de posição:
- DISK_NAME: o nome do disco a ser excluído.
- ZONE: a zona em que o Cloud TPU está localizado.