Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

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, pode ser necessário mais armazenamento local para treinamento ou pré-processamento. Adicione um disco permanente para expandir a capacidade do disco local.

Visão geral

Um disco permanente 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 disco permanente a uma VM de TPU que faz parte de um pod de TPU, o disco é conectado a cada VM de TPU nesse pod. Para evitar 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 à sua 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 uma conta e um projeto do Cloud TPU antes de continuar.

Etapas avançadas

Etapas gerais para configurar um disco permanente:

  1. Crie um disco permanente
  2. Anexar um disco permanente a uma VM de TPU
  3. Ativar o disco permanente
  4. 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 criá-la. Também é possível anexar um disco permanente a uma VM de TPU atual.

Crie um disco permanente

Use o seguinte comando para criar um disco permanente:

  $ 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 disco permanente em GB.
zone
A zona em que o disco permanente será criado. Ela precisa ser a mesma zona usada para criar a TPU.
type
O tipo de disco a ser adicionado. Os tipos compatíveis são: "pd-standard", "pd-ssd" ou "pd-balance".

Anexar um disco permanente

É possível anexar um disco permanente à VM da TPU ao criá-la. Também é possível adicionar um depois da criação da VM da TPU.

Anexar um disco permanente ao criar uma VM de TPU

Use a sinalização --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ê estiver criando um único dispositivo de TPU, especifique mode=read-only ou mode=read-write. O comando a seguir cria uma única TPU e define o modo do disco permanente como read-write:

  $ gcloud compute tpus tpu-vm create tpu-name \
    --project project-id \
    --zone=zone \
    --accelerator-type=v3-8 \
    --version=Cloud TPU software version \
    --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 a Cloud TPU é criada.
accelerator-type
O tipo do Cloud TPU a ser criado.
version
A versão do software do Cloud TPU para seu framework.
data-disk
Nome e modo de leitura/gravação do disco permanente para anexar à VM da TPU.

Anexar um disco permanente a uma VM de TPU atual

Use o comando gcloud alpha compute tpus tpu-vm attach-disk para anexar um disco permanente a uma VM de TPU atual. Consulte a documentaçã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 da TPU.
zone
A zona em que o Cloud TPU está localizado.
disk-name
O nome do disco permanente que será anexado à VM da TPU.
mode
O modo do disco. O modo precisa ser "read-only" ou "read-write".

Se você quiser excluir o disco permanente ao excluir a VM da TPU, defina o estado de exclusão automática dele 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 aplicar SSH à VM da TPU, o prompt do shell será alterado para incluir o ID do usuário seguido por um nome de instância de VM gerado (por exemplo, pjohnston@t1v-n-...$). Substitua vm-instance pelo nome da instância da VM gerada,

zone
A zona em que o disco permanente está localizado.
auto-delete
Excluir automaticamente o disco permanente quando os recursos da TPU forem excluídos.
disk-name
Um nome de disco permanente.

Se a VM for desligada por algum motivo, o disco permanente poderá ser desconectado. Consulte Configurar montagem automática na reinicialização do sistema para que o disco permanente seja ativado automaticamente na reinicialização da VM. Para mais informações, 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 disco permanente pode ser acessado.

  1. Conecte-se à sua VM de 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 funciona em dispositivos e pods de TPU. Se você estiver usando pods da TPU, esse comando conectará você à primeira TPU no pod, também chamada de worker 0.

  2. Na VM de TPU, liste os discos anexados à VM:

    (vm)$ sudo lsblk
    

    A saída do comando lsblk vai ficar assim:

    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 e sdb é o disco permanente. O nome do disco permanente anexado depende de quantos discos permanentes estão anexados à VM.

    Ao usar um pod de TPU, você precisará montar o disco permanente em todas as VMs de TPU no seu pod. O nome do disco permanente precisa ser o mesmo para todas as VMs da TPU, mas não há garantia disso. Por exemplo, se você desanexar e, em seguida, anexar novamente o disco permanente, o nome do dispositivo vai ser incrementado, mudando de sdb para sdc e assim por diante.

  3. Se o disco não tiver sido formatado, formate o disco permanente anexado agora:

    (vm)$ sudo mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/sdb
    
  4. Crie um diretório para ativar o disco permanente:

    Se você estiver usando um dispositivo TPU, execute o seguinte comando para criar um diretório que ative o disco permanente:

    (vm)$ sudo mkdir -p /mnt/disks/persist
    

    Se você estiver usando um pod de TPU, execute o seguinte comando fora da sua VM da TPU. Isso vai criar o diretório em todas as VMs da TPU no pod.

    gcloud compute tpus tpu-vm ssh $TPU_NAME --worker=all --command="sudo mkdir -p /mnt/disks/persist"
    
  5. Ative o disco permanente:

    Se você estiver usando um dispositivo TPU, execute o comando a seguir para ativar o disco permanente 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 seguinte comando fora da sua VM de TPU. Ele vai ativar o disco permanente em todas as VMs da 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"

Limpar

Exclua os recursos da TPU quando terminar de usá-los.

  1. 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.

  2. Exclua os recursos do Cloud TPU e do Compute Engine.

    $ gcloud compute tpus tpu-vm delete tpu-name \
     --zone=zone
    
  3. Execute gcloud list para verificar se os recursos foram excluídos. A exclusão pode levar vários minutos. A saída de gcloud list não pode exibir nenhum dos recursos de VM de TPU criados por este procedimento.

    VM de TPU

    $ gcloud compute tpus tpu-vm list --zone=zone
    

    Nó da TPU

    $ gcloud compute tpus execution-groups list --zone zone
    
  4. Verifique se o disco permanente foi excluído automaticamente quando a VM de TPU foi excluída, listando todos os discos na zona em que o disco permanente foi criado:

    $ gcloud compute disks list --filter="zone:( us-central1-b )"
    

    Se o disco permanente não tiver sido excluído quando a VM de TPU foi excluída, use os seguintes comandos para excluí-lo:

    $ gcloud compute disks delete disk-name \
    --zone zone