Adicionar um disco permanente a uma VM de TPU

Neste documento, descrevemos como configurar e anexar um disco permanente (DP, na sigla em inglês) 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.

É possível adicionar um disco permanente à VM da TPU ao criar a VM ou adicioná-lo após a criação da VM.

Prerequisites

É 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 do Cloud TPU configurado, siga o procedimento em Configurar uma conta e um projeto do Cloud TPU antes de continuar.

Etapas avançadas

As etapas avançadas para configurar um disco permanente com uma VM de TPU são:

  1. Crie um disco permanente
  2. Iniciar uma VM de TPU com um disco permanente ou adicionar um disco permanente a uma VM de TPU atual
  3. Conectar-se por SSH à VM de TPU
  4. Listar os discos anexados
  5. Formatar o disco permanente anexado
  6. Criar um diretório para ativar o disco permanente
  7. Ativar o disco permanente
  8. Definir as permissões para o disco permanente
  9. Limpar 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 na qual criar o disco permanente. É necessário que seja 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-balanced'.
  2. Inicie uma VM de TPU com o disco permanente anexado ou adicione um disco permanente a uma VM de TPU atual.

    $ 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 você planeja criar a Cloud TPU.
    accelerator-type
    O tipo da Cloud TPU a ser criada.
    version
    A versão do software do Cloud TPU para seu framework.
    data-disk
    O nome e o modo de leitura/gravação do disco permanente a ser anexado à VM de TPU.
    1. Use o comando a seguir para adicionar um disco permanente a uma VM de TPU atual. Consulte a documentação gcloud para ver mais detalhes e exemplos.

      $ gcloud 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 a Cloud TPU está localizada.

      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.

  3. Conectar-se por SSH à VM de TPU

    $ gcloud compute tpus tpu-vm ssh tpu-name --zone zone
    
  4. Na VM de TPU, liste os discos anexados à VM:

    (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 de 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 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 em que o disco permanente está localizado.
    auto-delete
    Exclua automaticamente o disco permanente quando os recursos da TPU forem excluídos.
    disk-name
    Um nome de 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. Para mais informações, consulte Modificar um disco permanente.

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