Adicionar um disco permanente a uma VM de TPU
Uma VM de TPU inclui um disco de inicialização de 100 GB. Em alguns cenários, a VM da TPU pode precisar armazenamento extra para treinamento ou pré-processamento. É possível adicionar um Persistent Disk para expandir a capacidade do disco local.
Visão geral
Um Persistent Disk anexado a uma TPU de dispositivo único (v2-8, v3-8, v4-8 etc.) pode ser
configurado como read-write
ou read-only
. Quando você anexa um Persistent Disk a um
VM da TPU que faz parte de um pod de TPU, o disco é anexado a cada VM de TPU
do pod. Para impedir que duas ou mais VMs de TPU de um pod gravem em um disco permanente
de uma só vez, todos os discos permanentes anexados a uma VM de TPU em um pod precisam ser configurados
como read-only
. Os discos read-only
são úteis para armazenar um conjunto de dados para processamento
em um pod de TPU.
Depois de criar e anexar um disco permanente à VM de TPU, você precisa montar o disco permanente, especificando onde no sistema de arquivos ele pode ser acessado. Para mais informações, consulte Como montar um disco.
Pré-requisitos
É necessário ter uma conta e um projeto do Google Cloud configurados antes de usar os procedimentos a seguir. Se você ainda não tiver um projeto do Cloud TPU configurado, siga o procedimento em Configurar o ambiente do Cloud TPU antes de continuar.
Etapas avançadas
As etapas gerais para configurar um Persistent Disk:
- Criar um disco permanente
- Anexar um Persistent Disk a uma VM da TPU
- Montar o disco permanente
- Limpar recursos de VM e de disco permanente da TPU
Como configurar uma VM de TPU e um disco permanente
É possível anexar um disco permanente a uma VM de TPU ao criar essa VM. Também é possível anexar um disco permanente a uma VM de TPU.
Criar disco permanente
Use o seguinte comando para criar um Persistent Disk:
$ gcloud compute disks create disk-name \ --size disk-size \ --zone zone \ --type pd-balanced
Descrições de sinalizações de comando
disk-name
- Um nome de sua escolha para o disco permanente.
disk-size
- O tamanho do Persistent Disk em GB.
zone
- A zona em que o Persistent Disk será criado. Ela precisa ser a mesma zona usada para criar a TPU.
type
- O
tipo de disco a ser adicionado. Os tipos aceitos são:
pd-standard
,pd-ssd
oupd-balanced
.
Anexar um Persistent Disk
É possível anexar um disco permanente à VM de TPU ao criar a VM de TPU ou adicionar um depois que ela for criada.
Anexar um disco permanente ao criar uma VM de TPU
Use a flag --data-disk
para anexar um disco permanente ao criar uma VM de TPU.
Se você estiver criando um pod de TPU, especifique mode=read-only
. Se você for
criar um único dispositivo TPU, é possível especificar mode=read-only
ou mode=read-write
.
O comando a seguir cria uma única TPU e define o modo Persistent Disk como
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
Descrições de sinalizações de comando
tpu-name
- O nome que você escolheu para os recursos da TPU.
project
- O ID do projeto.
zone
- A zona em que o Cloud TPU será criado.
accelerator-type
- O tipo de acelerador especifica a versão e o tamanho da Cloud TPU que você quer criar. Para mais informações sobre os tipos de aceleradores compatíveis com cada versão de TPU, consulte versões de TPU.
version
- A imagem da VM de TPU para sua estrutura.
data-disk
- O nome e o modo de leitura/gravação do Persistent Disk a ser anexado VM da TPU.
Anexar um disco permanente a uma VM de TPU
Use o comando gcloud alpha compute tpus tpu-vm attach-disk
para anexar um
Persistent Disk a uma VM da TPU atual. Consulte o gcloud
para mais detalhes e exemplos.
$ gcloud alpha compute tpus tpu-vm attach-disk tpu-name \ --zone=zone \ --disk=disk-name \ --mode=disk-mode
Descrições de sinalizações de comando
tpu-name
- O nome dos recursos de TPU.
zone
- A zona em que o Cloud TPU está localizado.
disk-name
- O nome do Persistent Disk a ser anexado à VM da TPU.
mode
- O modo do disco. O modo precisa ser
read-only
ouread-write
.
Se você quiser excluir o disco permanente ao excluir a VM de TPU, definirá o estado de exclusão automática do disco permanente usando o seguinte comando:
$ gcloud compute instances set-disk-auto-delete vm-instance \ --zone=zone \ --auto-delete \ --disk=disk-name
Descrições de sinalizações de comando
vm-instance
- Depois de se conectar por SSH à VM de TPU, o prompt do shell é alterado para incluir o ID do usuário seguido por um nome de instância de VM gerada (por exemplo, pjohnston@t1v-n-...$). Substitua vm-instance pelo nome da instância de VM gerada,
zone
- A zona na qual o Persistent Disk está localizado.
auto-delete
- Exclua automaticamente o disco permanente quando os recursos da TPU forem excluídos.
disk-name
- Um nome do disco permanente.
Se a VM for desligada por algum motivo, o disco permanente poderá ser desconectado. Consulte Configurar a ativação automática na reinicialização do sistema para fazer com que seu disco permanente seja ativado automaticamente na reinicialização da VM.
Para mais informações sobre a exclusão automática de um Persistent Disk, consulte Modificar um disco permanente.
Montar um disco permanente
Para acessar um disco permanente de uma VM de TPU, você precisa montar o disco. Especifica um local no sistema de arquivos da VM da TPU em que o Persistent Disk podem ser acessados.
Conecte-se à VM da TPU usando SSH:
$ gcloud compute tpus tpu-vm ssh tpu-name --zone zone
Ao trabalhar com um pod de TPU, há uma VM de TPU para cada TPU no pod. O comando anterior vai funcionar para dispositivos de TPU e pods de TPU. Se você for usando pods de TPU, esse comando conectará você à primeira TPU no pod (também chamado worker 0).
Na VM de TPU, liste os discos anexados à VM:
(vm)$ sudo lsblk
A saída do comando
lsblk
vai ser semelhante a esta: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
Neste exemplo,
sda
é o disco de inicialização esdb
é o nome da o Persistent Disk anexado. O nome do disco permanente anexado depende de quantos discos permanentes estão conectados à VM.Ao usar um pod de TPU, você precisa montar o disco persistente em todas as VMs de TPU no pod. O nome do Persistent Disk deve ser o mesmo VMs de TPU, mas isso não é garantido. Por exemplo, se você desconectar e reconectar o disco permanente, o nome do dispositivo será incrementado, mudando de
sdb
parasdc
.Se o disco não tiver sido formatado, faça isso agora:
(vm)$ sudo mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/sdb
Crie um diretório para montar o disco permanente:
Se você estiver usando um dispositivo TPU, execute o seguinte comando para criar um diretório para montar o Persistent Disk:
(vm)$ sudo mkdir -p /mnt/disks/persist
Se você estiver usando um pod de TPU, execute o comando a seguir fora da VM da TPU. Isso vai criar o diretório em todas as VMs de TPU no pod.
(vm)$ gcloud compute tpus tpu-vm ssh $TPU_NAME --worker=all --command="sudo mkdir -p /mnt/disks/persist"
Monte o disco permanente:
Se você estiver usando um dispositivo TPU, execute o seguinte comando para montar o Persistent Disk na VM da TPU.
(vm)$ sudo mount -o discard,defaults /dev/sdb /mnt/disks/persist
Se você estiver usando um pod de TPU, execute o comando abaixo fora da VM de TPU. Ele vai montar o disco permanente em todas as VMs de TPU no Pod.
(vm)$ gcloud compute tpus tpu-vm ssh $TPU_NAME --worker=all --command="sudo mount -o discard,defaults /dev/sdb /mnt/disks/persist"
Desmontar um disco permanente
Para desmontar (desanexar) um disco permanente, execute o seguinte comando:
$ gcloud alpha compute tpus tpu-vm detach-disk tpu-name \ --zone=zone \ --disk=disk-name
Descrições de sinalizações de comando
tpu-name
- O nome dos recursos de TPU.
zone
- A zona em que o Cloud TPU está localizado.
disk-name
- O nome do Persistent Disk a ser removido da VM da TPU.
Limpar
Exclua os recursos da TPU quando não precisar mais deles.
Desconecte-se da instância do Compute Engine, caso ainda não tenha feito isso:
(vm)$ exit
Agora, o prompt será
username@projectname
, mostrando que você está no Cloud Shell.Exclua os recursos do Cloud TPU e do Compute Engine.
$ gcloud compute tpus tpu-vm delete tpu-name \ --zone=zone
Execute
gcloud list
para verificar se os recursos foram excluídos. A exclusão pode levar vários minutos. A saída degcloud list
não pode mostrar nenhum dos recursos de VM de TPU criados por este procedimento.$ gcloud compute tpus tpu-vm list --zone=zone
Verifique se o Persistent Disk foi excluído automaticamente quando o A VM da TPU foi excluída listando todos os discos na zona em que você criou do Persistent Disk:
$ gcloud compute disks list --filter="zone:( us-central1-b )"
Se o Persistent Disk não tiver sido excluído junto com a VM da TPU, use o seguintes comandos para excluí-lo:
$ gcloud compute disks delete disk-name \ --zone zone