Como adicionar um disco permanente a uma VM de TPU

Neste documento, você verá como configurar e anexar um disco permanente a uma VM de TPU.

Visão geral

Uma VM de TPU inclui um disco de inicialização de 100 GB. Para alguns conjuntos de dados, talvez seja necessário aumentar o armazenamento local para treinamento ou pré-processamento. Para treinar esses modelos, adicione um disco permanente para expandir a capacidade do disco local.

Pré-requisitos

É necessário ter uma conta do GCP e um projeto configurados antes de usar os procedimentos a seguir. Se você ainda não tiver um projeto configurado para a Cloud TPU, siga o procedimento em Configurar uma conta e um projeto da Cloud TPU antes de continuar.

Etapas avançadas

As etapas gerais para configurar um disco permanente com uma VM da TPU são:

  1. Crie um disco permanente
  2. Iniciar uma VM de TPU com um disco permanente
  3. Conecte-se por SSH à VM da TPU
  4. Listar os discos anexados
  5. Formatar o disco permanente anexado
  6. Crie um diretório para ativar o disco permanente
  7. Ativar o disco permanente
  8. Defina as permissões do disco permanente
  9. Limpe recursos de VM e de disco permanente da TPU

Como configurar uma VM de TPU e um disco permanente

  1. Em um Cloud Shell, crie 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. Ele 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".
  2. Inicie uma VM de TPU com o disco permanente anexado:

    $ gcloud alpha compute tpus tpu-vm create tpu-name \
    --project project-id \
    --zone=zone \
    --accelerator-type=v3-8 \
    --version=v2-alpha \
    --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 você planeja criar a Cloud TPU.
    accelerator-type
    O tipo da Cloud TPU a ser criada.
    version
    A versão do ambiente de execução do Cloud TPU.
    data-disk
    O nome e o modo de leitura/gravação do disco permanente a ser anexado à VM da TPU.
  3. SSH na VM da TPU

    $ gcloud alpha compute tpus tpu-vm ssh tpu-name --zone zone
    
    (em inglês)
  4. Na VM da TPU, liste os discos anexados à VM da TPU:

    (vm)$ sudo lsblk
    
    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
    

    sda é o disco de inicialização da VM. O nome do disco permanente anexado depende de quantos discos permanentes estão conectados à VM.

  5. Formate o disco permanente anexado:

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

    (vm)$ sudo mkdir -p /mnt/disks/persist
    
  7. Ative o disco permanente:

    (vm)$ sudo mount -o discard,defaults /dev/sdb /mnt/disks/persist
  8. Defina as permissões do disco permanente:

    (vm)$ sudo chmod a+w /mnt/disks/persist
    
  9. Se você quiser excluir o disco permanente quando excluir a VM da TPU, será necessário definir o estado de exclusão automática desse disco usando o comando a seguir:

    $ gcloud alpha 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 usar SSH na VM da 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. joao@t1v-n-...$). Substitua vm-instance pelo nome da instância de VM gerada.
    zone
    A zona em que o disco permanente está localizado.
    auto-delete
    Exclua automaticamente o disco permanente quando os recursos de TPU forem excluídos.
    disk-name
    Um nome de seu disco permanente.

    Se você não quiser que o disco permanente seja excluído automaticamente, ignore este comando. A qualquer momento, é possível usar o comando mostrado em Limpeza para remover manualmente o 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. Consulte o documento sobre discos permanentes para mais detalhes sobre como gerenciar discos permanentes.

Limpar

  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 alpha 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 da TPU criados por este procedimento.

    VM de TPU

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

    Nó da TPU

    $ gcloud compute tpus execution-groups list --zone zone
    
  4. Para verificar se o disco permanente foi excluído automaticamente quando a VM da TPU foi excluída, liste 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 da TPU foi excluída, use os seguintes comandos para excluí-lo:

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