Conectar VMs de TPU a buckets do Cloud Storage

Nesta página, apresentamos o Cloud Storage como uma opção para armazenar os dados de machine learning e a saída do treinamento. Também descrevemos como conceder à VM de TPU acesso aos objetos de dados no Cloud Storage.

Antes de começar

É preciso ter uma conta de serviço anexada à VM de TPU para acessar um bucket do Cloud Storage. Se você não especificar uma conta de serviço ao criar uma VM de TPU, ela vai usar a conta de serviço padrão do Compute Engine.

Para configurar um Google Cloud projeto para TPUs e criar uma instância de VM de TPU, siga as instruções em:

  1. Configurar um Google Cloud projeto para TPUs.
  2. Criar uma instância de VM de TPU usando o Compute Engine

Gravar dados no Cloud Storage

Console

  1. Acesse a página do Cloud Storage no console do Google Cloud .

    Acessar a página do Cloud Storage

  2. Crie um novo bucket especificando as opções a seguir:

    • Um nome exclusivo à sua escolha
    • Classe de armazenamento padrão: Standard
    • Local: a região em que você criou a VM de TPU. Para mais informações sobre regiões e disponibilidade de TPUs, consulte Regiões e zonas de TPU.

CLI

  1. Use o comando gcloud storage buckets create para criar um bucket do Cloud Storage:

    gcloud storage buckets create gs://BUCKET_NAME --location REGION
    

    Substitua os seguintes marcadores de posição:

    • BUCKET_NAME é o nome do bucket que você quer criar.
    • REGION é a região em que você criou a VM de TPU. Para mais informações sobre regiões e disponibilidade de TPUs, consulte Regiões e zonas de TPU.
  2. Use o comando gcloud storage cp para gravar arquivos no bucket do Cloud Storage:

    gcloud storage cp -r LOCAL_DATA_DIR gs://BUCKET_NAME
    

    Substitua os seguintes marcadores de posição:

    • LOCAL_DATA_DIR é um caminho local para seus dados. Por exemplo: $HOME/your-data
    • BUCKET_NAME é o nome do bucket em que você quer gravar.

Conceder acesso à VM de TPU ao Cloud Storage

É necessário conceder à VM de TPU acesso de leitura/gravação aos objetos do Cloud Storage. Para isso, conceda o acesso necessário à conta de serviço anexada à VM de TPU. As seções a seguir mostram como encontrar a conta de serviço anexada e conceder o acesso necessário.

Autorizar a conta de serviço anexada

A maneira recomendada de autorizar a conta de serviço anexada é usar listas de controle de acesso (ACLs) refinadas. Você também pode conceder permissões mais amplas usando as permissões do IAM.

Como usar ACLs refinadas para VM de TPU (recomendado)

Se você armazenar dados de treinamento no Cloud Storage, será necessário conceder à conta de serviço anexada permissão de leitura e gravação no bucket.

Console

  1. Acesse a página do navegador do Cloud Storage para ver seus buckets.

    Acessar o navegador do Cloud Storage

  2. Selecione o bucket que tem a ACL a ser modificada.

  3. Selecione a guia Permissões.

  4. Selecione Conceder acesso para adicionar uma nova permissão e digite o nome completo da conta de serviço na caixa de edição Novos principais.

  5. Se você estiver lendo esse bucket, autorize a conta de serviço anexada a ler esse recurso. Isso pode ser feito concedendo o papel Storage Legacy > Storage Legacy Bucket Reader à conta de serviço.

  6. Se você estiver gravando nesse bucket, autorize a conta de serviço anexada a gravar nesse recurso. Isso pode ser feito concedendo o papel Storage Legacy > Storage Legacy Bucket Writer à conta de serviço.

CLI

  1. Se você estiver lendo esse bucket, conceda a permissão de leitura à conta de serviço anexada.

     gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME --member=serviceAccount:SERVICE_ACCOUNT --role=roles/storage.objectViewer
    

    Substitua os seguintes marcadores de posição:

    • BUCKET_NAME é o nome do bucket que você quer ler.
    • SERVICE_ACCOUNT é o nome da conta de serviço anexada à VM de TPU.
  2. Se você estiver gravando nesse bucket, conceda a permissão de gravação à conta de serviço anexada:

     gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME --member=serviceAccount:SERVICE_ACCOUNT --role=roles/storage.objectCreator
    

    Substitua os seguintes marcadores de posição:

    • BUCKET_NAME é o nome do bucket em que você quer gravar.
    • SERVICE_ACCOUNT é o nome da conta de serviço anexada à VM de TPU.

Como usar permissões do IAM para VM de TPU (alternativa)

Se você quiser conceder permissões mais amplas, em vez de permitir explicitamente o acesso a cada bucket, conceda à conta de serviço anexada à VM de TPU o papel do Identity Access Management (IAM) de Administrador do Storage.

  1. Acessar IAM

  2. Clique no botão Conceder acesso para adicionar principais ao projeto.

  3. Digite o nome da conta de serviço anexada no campo Principais.

  4. Clique na lista suspensa Papéis.

  5. Ative os seguintes papéis:

    • Projeto > Leitor

    • Storage > Administrador do Storage

Cloud Storage FUSE

O Cloud Storage FUSE permite ativar e acessar buckets do Cloud Storage como sistemas de arquivos locais. Isso permite que os aplicativos leiam e gravem objetos no bucket usando a semântica padrão dos sistemas de arquivos.

Consulte a documentação do Cloud Storage FUSE para saber como ele funciona e conferir uma descrição de como as operações dele são associadas às do Cloud Storage. No GitHub, é possível saber mais sobre o Cloud Storage FUSE, por exemplo, como instalar a CLI gcsfusee como ativar buckets.

Limpar

  1. Desconecte-se da VM de TPU, se ainda não tiver feito isso:

    exit
    
  2. No Cloud Shell ou terminal, exclua a VM de TPU:

    gcloud compute instances delete TPU_NAME --zone=ZONE
    

    Substitua os seguintes marcadores de posição:

    • TPU_NAME: o nome da VM de TPU que você criou.
    • ZONE: a zona em que a VM de TPU foi criada.
  3. Execute gcloud compute instances list para verificar se a VM foi excluída. A exclusão pode levar vários minutos.

    gcloud compute instances list --zone=ZONE
    

    Substitua ZONE pela zona em que a VM de TPU foi criada.

    Se a resposta não listar a instância de TPU, ela foi excluída.

  4. Execute o comando abaixo para excluir o bucket do Cloud Storage e o conteúdo dele, substituindo BUCKET_NAME pelo nome do bucket que você criou:

    gcloud storage rm --recursive gs://BUCKET_NAME
    

    Substitua os seguintes marcadores de posição:

    • BUCKET_NAME: o nome do bucket que você quer excluir.

A seguir