Adicionar um Persistent Disk a uma VM da 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 disco permanente 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 de TPU que faz parte de um pod de TPU, o disco é anexado a cada VM de TPU do pod. evitar que duas ou mais VMs de TPU de um pod gravem em um Persistent Disk. de uma só vez, é preciso configurar todos os discos permanentes anexados a uma VM de TPU em um pod 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 Persistent Disk à VM da TPU, ative o Persistent Disk, especificando em que parte do sistema de arquivos podem ser acessados. Para mais informações, consulte Como montar um disco.

Pré-requisitos

Você precisa ter uma conta do Google Cloud e um projeto configurados antes de usar o procedimentos a seguir. Se você ainda não configurou um projeto do Cloud TPU, Siga o procedimento em Configurar o ambiente do Cloud TPU. antes de continuar.

Etapas avançadas

As etapas gerais para configurar um Persistent Disk:

  1. Criar um disco permanente
  2. Anexar um Persistent Disk a uma VM da TPU
  3. Montar o disco permanente
  4. Limpe recursos de VM da TPU e de Persistent Disk permanente

Como configurar uma VM de TPU e um Persistent Disk

É possível anexar um Persistent Disk a uma VM da TPU ao criar essa VM. Você pode anexar um Persistent Disk a uma VM de TPU atual.

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 Persistent Disk.
disk-size
O tamanho do Persistent Disk em GB.
zone
A zona em que o Persistent Disk será criado. Isso precisa a mesma zona usada para criar a TPU.
type
O tipo de disco a ser adicionado. Os tipos com suporte são: pd-standard, pd-ssd ou pd-balanced.

Anexar um Persistent Disk

É possível anexar um Persistent Disk à VM da TPU ao criar o VM da TPU ou adicione uma após a criação da VM da TPU.

Anexar um Persistent Disk ao criar uma VM da TPU

Use a sinalização --data-disk para anexar um Persistent Disk ao criar uma VM da TPU. Se você estiver criando um pod de TPU, especifique mode=read-only. Se você for criando 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 para criar o Cloud TPU.
accelerator-type
O tipo de acelerador especifica a versão e o tamanho do 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
O Imagem da VM da 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 Persistent Disk a uma VM de TPU atual

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 onde 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 ou read-write.

Se você quiser excluir o Persistent Disk ao excluir a VM da TPU, será preciso para definir o estado de exclusão automática do Persistent Disk 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 estabelecer conexão SSH com a VM da TPU, o prompt do shell é alterado para incluir seu ID de usuário seguido por um nome de instância de VM gerado (por exemplo, pjohnston@t1v-n-...$). Substitua vm-instance pelo gerado pelo nome da instância de VM,
zone
A zona na qual o Persistent Disk está localizado.
auto-delete
Excluir automaticamente o Persistent Disk quando os recursos de TPU forem excluída.
disk-name
Um nome do seu Persistent Disk.

Se a VM for encerrada por qualquer motivo, o Persistent Disk poderá estar desconectado. Consulte Configurar a montagem automática na reinicialização do sistema para que os Persistent Disk seja montado 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 Persistent Disk

Para acessar um Persistent Disk por uma VM da TPU, ative o disco. Especifica um local no sistema de arquivos da VM da TPU em que o Persistent Disk podem ser acessados.

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

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

    (vm)$ sudo lsblk
    

    A saída do comando lsblk 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 e sdb é o nome da o Persistent Disk anexado. O nome do Persistent Disk anexado dependerá quantos discos permanentes estão anexados à VM.

    Ao usar um pod de TPU, será preciso montar o Persistent Disk em todas as TPUs no seu pod. O nome do Persistent Disk deve ser o mesmo VMs de TPU, mas isso não é garantido. Por exemplo, se você separar e depois anexar novamente o Persistent Disk, o nome do dispositivo será incrementado, alterando de sdb a sdc.

  3. Se o disco não tiver sido formatado, formate o Persistent Disk 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 montar o Persistent Disk:

    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"
    
  5. Monte o Persistent Disk:

    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 a seguir fora do VM da TPU. Isso vai montar o Persistent Disk em todas as VMs de TPU no seu 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 de 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 da TPU criados por esse procedimento.

    $ gcloud compute tpus tpu-vm list --zone=zone
    
  4. 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 o 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