Transferir grandes conjuntos de dados do Cloud Storage para o Filestore

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

Use o Serviço de transferência do Cloud Storage para mover grandes conjuntos de dados do Cloud Storage para seus compartilhamentos de arquivos do Filestore.

Um fluxo de trabalho que mostra dados sendo movidos do Cloud Storage para uma instância do Filestore
usando o Serviço de transferência do Cloud Storage. A instância do Filestore é montada
em várias instâncias do Compute Engine.

O Serviço de transferência do Cloud Storage permite transferir grandes conjuntos de dados de maneira rápida e segura entre sistemas de armazenamento de objetos e arquivos, estejam eles hospedados no Cloud Storage, em provedores de nuvem terceirizados ou no local.

O Serviço de transferência do Cloud Storage oferece suporte a transferências aceleradas de grandes conjuntos de dados, facilitando o processamento de centenas de TB de dados ou mais. Mova seus grandes conjuntos de dados para a nuvem e aproveite as operações de análise e machine learning disponíveis nas instâncias do Compute Engine em que as instâncias do Filestore são montadas.

Com o Serviço de transferência do Cloud Storage, é fácil criar transferências gerenciadas pelo Google ou configurar transferências auto-hospedadas para ter controle total sobre o roteamento de rede e o uso da largura de banda.

Transferir dados de um bucket do Cloud Storage para um compartilhamento de arquivos do Filestore

A transferência de dados do Cloud Storage para um compartilhamento de arquivos do Filestore usando o Serviço de transferência do Cloud Storage requer as seguintes tarefas:

  1. Configurar o ambiente.
  2. Configure o Filestore.
  3. Configurar o Serviço de transferência do Cloud Storage
  4. Crie e inicie o job de transferência.

As seções abaixo descrevem cada tarefa.

Configurar o ambiente

  1. Selecionar ou criar um projeto.

    Para os fins deste guia, verifique se os recursos de origem e de destino estão no mesmo projeto.

    No Console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Se você estiver testando o Filestore e não quiser manter os recursos criados, recomendamos criar um projeto em vez de selecionar um projeto atual. Quando o teste terminar, você poderá excluir o projeto. Para isso, basta remover todos os recursos associados a ele.

    Acessar o seletor de projetos

  2. Ativar faturamento.

    Verifique se o faturamento está ativado para seu projeto do Cloud. Saiba como confirmar se o faturamento está ativado para o projeto.

  3. Ative as seguintes APIs:

    • API Filestore

    • API Resource Manager

    • API Pub/Sub

    • API Cloud Storage

    • API Storage Transfer

    • API Cloud Logging

    • API Compute Engine

    • API Service Usage

    • API Identity and Access Management

  4. Opcional: gcloud, um componente importante do SDK do Google Cloud, é instalado em cada VM do Compute Engine. Se estiver seguindo alguma das etapas abaixo na linha de comando local, configure o SDK do Google Cloud.

    Instale e inicialize o SDK do Google Cloud.

    Se você já instalou o SDK do Google Cloud, verifique se tem a versão mais recente disponível executando:

    gcloud components update
    
  5. Crie uma conta de serviço. Na seção Conceda a essa conta de serviço acesso ao projeto, atribua os seguintes papéis:

    • Owner

    • Project IAM Admin

    • Role Administrator

    • Pub/Sub Editor

    • Cloud Filestore Editor

    • Storage Object Admin

    • Storage Transfer Admin

    • Storage Transfer Agent

    1. Copie e salve o nome da conta de serviço que você criou para usar em outra etapa.

    2. Crie uma chave de conta de serviço para a conta que você acabou de criar. Para este guia, crie apenas uma chave. Faça o download do arquivo da chave e salve para uma etapa posterior.

  6. Atribuir funções a uma conta de usuário. Na página IAM, encontre sua conta de usuário e atribua a ela os seguintes papéis:

    • Owner

    • Project IAM Admin

    • Role Administrator

    • Storage Transfer Admin

    • Storage Admin

    Veja mais informações em Permissões do usuário.

Configurar o Filestore

  1. Crie uma instância do Filestore. Ao criar a instância, aplique as seguintes especificações:

    1. Verifique se o bucket do Cloud Storage, a VM do cliente e a instância do Filestore residem na mesma região.

    2. Selecione um tipo de instância do Enterprise.

    3. Opcional: para conjuntos de dados maiores, solicite um aumento de cota.

    4. Copie o nome da instância e o endereço IP e salve para uma etapa posterior.

  2. Ativar uma instância do Filestore em um computador cliente.

    Neste guia, descrevemos uma transferência que usa quatro VMs do Compute Engine como máquinas cliente do NFS. Você criará uma única conta de serviço que opera em nome das quatro máquinas clientes. Cada computador cliente terá três agentes do Storage Transfer Service instalados.

    1. Criar uma instância de VM do Compute Engine com acesso a outros serviços do Google Cloud.

      1. Configure uma VM com as especificações a seguir:

        1. Ao especificar um local, veja se o bucket do Google Cloud, a VM do cliente e a instância do Filestore residem na mesma região.

        2. Cada agente do Serviço de transferência do Cloud Storage precisa de 4 vCPUs e 8 GB de RAM. Para ter o melhor desempenho, execute vários agentes por VM. Para os fins deste guia, provisione uma instância de máquina virtual do e2-standard-32 Compute Engine.

        3. Na seção Identidade e acesso à API, especifique o seguinte:

          1. Na lista suspensa Contas de serviço, selecione a conta de serviço que você acabou de criar.
    2. Após a criação da instância de VM do Compute Engine, faça login na máquina usando SSH. Na página Instância de VM do Compute Engine, encontre a instância que você criou e clique em SSH.

    3. Use um editor de texto, como o Vim, para criar uma cópia do arquivo de chave da conta de serviço e salvá-lo temporariamente na VM. Por exemplo, service-account-key.json.

    4. Instale o Docker na VM.

    5. O gcloud já está instalado na instância da VM do Compute Engine. Na linha de comando SSH, digite o seguinte comando para autorizar a conta de serviço a usar gcloud:

      gcloud auth activate-service-account ACCOUNT --key-file=KEY_FILE
      

      em que:

      • ACCOUNT é o endereço de e-mail da conta de serviço que você criou. Por exemplo, my-service-account@my-project.iam.gserviceaccount.com.

      • KEY_FILE é o caminho local relativo para o arquivo de chave que você copiou anteriormente. Por exemplo, sa-key.json.

    6. Ainda na linha de comando SSH, instale o NFS:

      sudo apt-get -y update && sudo apt-get install nfs-common
      
    7. Crie um diretório local para mapear para o compartilhamento de arquivos do Filestore. Ao repetir essas etapas para as instâncias de VM subsequentes do Compute Engine, use o mesmo nome e caminho:

      sudo mkdir -p MY_DIRECTORY
      

      em que:

      • MY_DIRECTORY é o nome do diretório local POSIX da instância de VM do Compute Engine. Por exemplo, /usr/local/my_dir.
    8. Ative o compartilhamento de arquivos associado à instância do Filestore executando o comando mount. Você pode usar qualquer opção de montagem do NFS. Para ter o melhor desempenho, consulte as recomendações de montagem do NFS em Como montar um compartilhamento de arquivos em uma instância de VM do Compute Engine:

      sudo mount -o rw,intr IP_ADDRESS:/FILE_SHARE MY_DIRECTORY
      

      em que:

      • IP_ADDRESS é o endereço IP da instância do Filestore. Ela pode ser encontrada na página Instâncias do Filestore.

      • FILE_SHARE é o nome do compartilhamento de arquivos na instância. Por exemplo, my_fs_instance.

      • MY_DIRECTORY é o nome do diretório mapeado na etapa anterior. Este é um diretório na instância da VM do Compute Engine em que você quer montar a instância do Filestore.

    9. Confirme o ponto de montagem:

      mount -l | grep nfs
      

      Isso retorna o seguinte ou algo semelhante:

      10.66.55.194:/my_fs_instance on /home/usr/my_dir type nfs (rw,relatime,vers=3,rsize=262144,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=10.66.55.194,mountvers=3,mountport=2050,mountproto=udp,local_lock=none,addr=10.66.55.194)
      

      Também é possível usar o seguinte comando:

      df -h --type=nfs
      

      Isso retorna o seguinte ou algo semelhante:

      Filesystem                       Size  Used Avail Use% Mounted on
      10.66.55.194:/my_fs_instance  1.0T     0  1.0T   0% /home/usr/my_dir
      
    10. Anote o caminho do diretório local POSIX e salve para uma etapa posterior.

    11. Repita as etapas anteriores para criar mais três instâncias de VM do Compute Engine e montar a mesma instância do Filestore para cada uma. Use a mesma conta de serviço para gerenciar todas as quatro VMs do Compute Engine. Salve temporariamente uma cópia local da chave da conta de serviço em cada VM.

Configurar o Serviço de transferência do Cloud Storage

  1. Crie um pool de agentes.

  2. Autorize a conta de serviço gerenciada pelo Google para todos os recursos do Serviço de transferência do Storage.

    1. Digite este comando:

      gcloud transfer authorize --add-missing --creds-file=KEY_FILE
      

      em que:

      • KEY_FILE é o caminho local relativo para o arquivo de chave que você copiou anteriormente. Por exemplo, sa-key.json.

      Observe a notificação retornada referente à conta de serviço gerenciada pelo Google e salve o endereço de e-mail associado para a próxima etapa.

    2. Após alguns minutos, você verá a conta de serviço gerenciada pelo Google na página do IAM. Depois de propagados, verifique se os papéis a seguir foram atribuídos:

      • Pub/Sub Editor

      • Storage Admin

  3. Instalar agentes de transferência.

    Cada agente do Serviço de transferência do Cloud Storage requer 4 vCPUs e 8 GB de RAM.

    1. Recomendamos instalar vários agentes para maximizar a tolerância a falhas e aproveitar o escalonamento dinâmico oferecido pelo Serviço de transferência do Cloud Storage. No exemplo a seguir, mostramos como instalar três agentes em uma máquina cliente. Na linha de comando SSH, execute o seguinte:

      gcloud transfer agents install --pool=MY_AGENT_POOL --count=3 \
      --creds-file=MY_SERVICE_ACCOUNT_KEY_FILE
      

      em que:

      • MY_AGENT_POOL é o nome do pool de agentes que você criou anteriormente. Por exemplo, my-agent-pool.

      • MY_SERVICE_ACCOUNT_KEY_FILE é o caminho relativo para a chave da conta de serviço. Por exemplo, /relative/path/to/service-account-key.json.

    2. Repita essas etapas para cada computador cliente.

Crie e inicie o job de transferência

  1. Criar um job de transferência para mover dados do bucket do Cloud Storage para a instância do Filestore. Faça referência ao diretório POSIX local que você salvou antes para especificar o caminho de destino. Por exemplo, /home/usr/my_dir.

Monitorar o status da transferência

Console

Monitore o status da transferência na página Jobs de transferência do Console do Google Cloud.

Linha de comando

Você pode monitorar o status usando a linha de comando:

gcloud transfer jobs monitor JOB_NAME

em que:

  • JOB_NAME é o nome do job de transferência. Por exemplo, transferJobs/OPI6300379522015192941.

A resposta mostra o seguinte:

Polling for latest operation name...done.
Operation name: my-sts-project_transferJobs/OPI6300379522015192941_0000000001660692377
Parent job: OPI6300379522015192941
Start time: 2022-08-16T23:26:17.600981Z
SUCCESS | 100% (731.9MiB of 731.9MiB) | Skipped: 129.8kiB | Errors: 0
End time: 2022-08-16T23:27:23.429472Z

Para saber mais, consulte Monitorar a atividade do agente ou Detalhes da transferência do sistema de arquivos.

A seguir