Opções avançadas

Este documento descreve as opções avançadas de configuração para transferências do sistema de arquivos, incluindo:

Como copiar dados em volumes CIFS ou SMB

Os agentes de transferência não são compatíveis diretamente com servidores Windows. No entanto, é possível mover os dados armazenados em qualquer sistema de arquivos compatível com POSIX ativando-o em um servidor Linux ou máquina virtual (VM) e, em seguida, executando um agente do servidor Linux ou da VM para copiar seus dados para o Cloud Storage.

Para mover dados de um volume CIFS ou SMB:

  1. Provisione um servidor Linux ou VM.

    Para sistemas operacionais compatíveis, consulte Pré-requisitos.

  2. Execute o seguinte comando no servidor Linux ou na VM que você provisionou para ativar o volume:

    sudo mount -t cifs -o
    username=WINDOWS-SHARE-USER,password=WINDOWS-SHARE-PASSWORD //IP-ADDRESS/SHARE-NAME /mnt
    

    Substitua:

    • IP-ADDRESS: o endereço IP do servidor Microsoft Windows no qual o volume CIFS ou SMB está localizado.
    • SHARE-NAME: o nome do compartilhamento que você está ativando.
    • WINDOWS-SHARE-USER: um usuário autorizado para acessar o volume CIFS ou SMB.
    • WINDOWS-SHARE-PASSWORD: a senha do usuário autorizado para acessar o volume CIFS ou SMB.
  3. Confirme se o volume CIFS está ativado executando o seguinte comando:

    findmnt -l
    
  4. Confirme se o usuário que executará o agente pode listar e copiar arquivos no volume ativado executando os seguintes comandos:

    sudo -u USERNAME cp /mnt/FILE1 /mnt/FILE2
    

    Substitua:

    • USERNAME: usuário que executará o agente.
    • FILE1: o arquivo a ser copiado.
    • FILE2: nome do arquivo para onde copiar.
  5. Instale o agente de transferência.

Como usar credenciais de conta de serviço

É possível usar as credenciais da conta de serviço para executar o agente. O uso de credenciais de conta de serviço é uma maneira de autenticar o agente de transferência sem depender de uma única conta de usuário. Para mais informações sobre os tipos de conta, consulte Principais.

  1. Crie uma chave de conta de serviço. Para mais informações, consulte Como criar e gerenciar chaves de conta de serviço.

  2. Transmita o local da chave de serviço para o comando de criação do agente:

    gcloud transfer agents install --pool=POOL_NAME --count=NUM_AGENTS \
      --mount-directories=MOUNT_DIRECTORIES \
      --creds-file=RELATIVE_PATH_TO/KEY_FILE.JSON
    

    O arquivo de credenciais é ativado automaticamente por gcloud transfer e não precisa ser especificado com a sinalização --mount-directories.

Como ajustar a memória máxima do agente

O padrão dos agentes de transferência é usar no máximo 8 GiB de memória do sistema. É possível ajustar a memória máxima usada por eles para se adequar ao seu ambiente passando --max-physical-mem=MAXIMUM-MEMORY e substituindo MAXIMUM-MEMORY por um valor que seja ideal para você.

Veja a seguir os requisitos de memória para agentes do serviço de transferência de dados locais:
  • Memória mínima: 1 GiB
  • Memória mínima para compatibilidade com uploads de alto desempenho: 6 GiB

Recomendamos o padrão de 8 GiB.

A tabela a seguir descreve exemplos de formatos aceitáveis para MAXIMUM-MEMORY:

Valor de max-physical-mem Configuração máxima de memória
6g 6 gigabytes
6gb 6 gigabytes
6GiB 6 gibibytes

Como restringir o acesso ao diretório do agente

Os usuários que criam jobs de transferência podem recuperar e fazer o download de dados em qualquer diretório do sistema de arquivos que possa ser acessado pelo agente

Se os agentes forem executados como raiz e tiverem acesso a todo o sistema de arquivos, uma pessoa mal-intencionada poderá assumir o controle do host. É altamente recomendável que você restrinja o acesso do agente apenas aos diretórios necessários.

Para restringir o acesso de um agente a diretórios específicos:

gcloud

Para especificar diretórios que o agente pode acessar em um sistema de arquivos, use a sinalização --mount-directories com gcloud transfer agents install:

gcloud transfer agents install --pool=POOL_NAME --count=NUM_AGENTS \
  --mount-directories=MOUNT_DIRECTORIES

Especifique vários diretórios separando cada um com uma vírgula e sem espaço:

gcloud transfer agents install --pool=POOL_NAME --count=NUM_AGENTS \
  --mount-directories=MOUNT_DIRECTORY_1,MOUNT_DIRECTORY_2

Se você estiver especificando um arquivo de credenciais usando a sinalização --creds-file, o gcloud transfer monta automaticamente o arquivo de credenciais. Outros arquivos no mesmo diretório que o arquivo de credenciais não estão montados.

docker run

Para especificar diretórios que o agente pode acessar ao executar uma transferência, transmita -v HOST_DIRECTORY:CONTAINER_DIRECTORY para o agente, em que:

  • HOST_DIRECTORY é o diretório na máquina host de onde você pretende copiar.
  • CONTAINER_DIRECTORY é o diretório mapeado no contêiner do agente.

HOST_DIRECTORY e CONTAINER_DIRECTORY precisam ser iguais para que o agente possa localizar os arquivos a serem copiados.

Veja o que acontece quando você usa esta opção:

  • Não especifique --enable-mount-directory.
  • Não use o /transfer_root no início do caminho do arquivo.

A opção --enable-mount-directory monta todo o sistema de arquivos no diretório /transfer_root do contêiner. Se --enable-mount-directory for especificado, as restrições de diretório não serão aplicadas.

É possível usar mais de uma sinalização -v para especificar diretórios adicionais a serem copiados. Exemplo:

sudo docker run --ulimit memlock=64000000 -d -rm --volumes-from gcloud-config \
-v /usr/local/research:/usr/local/research \
-v /usr/local/billing:/usr/local/billing \
-v /tmp:/tmp \
gcr.io/cloud-ingest/tsop-agent:latest \
--project-id=PROJECT_ID \
--hostname=$(hostname) \
--agent-id-prefix=ID_PREFIX

Se você estiver usando uma conta de serviço, certifique-se de ativar o arquivo de credenciais no contêiner e transmitir o --creds-file=CREDENTIAL_FILE. Exemplo:

sudo docker run --ulimit memlock=64000000 -d -rm \
-v HOST_DIRECTORY:CONTAINER_DIRECTORY \
-v /tmp:/tmp \
-v FULL_CREDENTIAL_FILE_PATH:FULL_CREDENTIAL_FILE_PATH \
gcr.io/cloud-ingest/tsop-agent:latest \
--project-id=PROJECT_ID \
--creds-file=CREDENTIAL_FILE \
--hostname=$(hostname) \
--agent-id-prefix=ID_PREFIX

Substitua:

  • HOST_DIRECTORY: o diretório na máquina host que você pretende copiar.
  • CONTAINER_DIRECTORY: o diretório mapeado no contêiner do agente.
  • FULL_CREDENTIAL_FILE_PATH: o caminho totalmente qualificado para o arquivo de credenciais.
  • PROJECT_ID: o ID do projeto que hospeda os recursos de transferência é criado e faturado.
  • CREDENTIAL_FILE é um arquivo de credencial da conta de serviço no formato JSON. Para mais informações sobre como gerar um arquivo de credencial da conta de serviço, consulte Como criar e gerenciar chaves da conta de serviço.
  • ID_PREFIX: o prefixo anexado ao ID do agente para ajudar a identificar o agente ou a máquina no Console do Google Cloud. Quando um prefixo é usado, o ID do agente é formatado como prefix + hostname + Docker container ID.

Como coordenar agentes com o Kubernetes

O Docker é um ambiente de execução de contêiner compatível com o Kubernetes. Use o Kubernetes para orquestrar a inicialização e a interrupção de vários agentes ao mesmo tempo. Da perspectiva do Kubernetes, o contêiner do agente é considerado um aplicativo sem estado. Portanto, siga as instruções do Kubernetes para implantar um aplicativo sem estado.

Como usar endpoints particulares de API no Cloud Interconnect

Para usar endpoints particulares de API no Cloud Interconnect:

  1. Faça login no host local onde você pretende executar o agente.

  2. Configure Acesso privado do Google. Se você quiser mais informações, consulte Como configurar o Acesso privado do Google para hosts locais.

  3. Confirme se é possível se conectar às APIs do Cloud Storage:

    1. Para APIs Cloud Storage, execute o comando a seguir na mesma máquina que o agente de transferência para testar mover um arquivo para o bucket do Cloud Storage: gsutil cp test.txt gs://MY-BUCKET, em que MY-BUCKETé o nome do bucket do Cloud Storage. Se a transferência funcionar, o teste foi bem-sucedido.

Como usar um proxy de encaminhamento

Os agentes de transferência aceitam o uso de um proxy de encaminhamento na sua rede transmitindo a variável de ambiente HTTPS_PROXY.

Exemplo:

sudo docker run -d --ulimit memlock=64000000 --rm \
--volumes-from gcloud-config \
-v /usr/local/research:/usr/local/research \
--env HTTPS_PROXY=PROXY\
gcr.io/cloud-ingest/tsop-agent:latest \
--enable-mount-directory \
--project-id=PROJECT_ID \
--hostname=$(hostname) \
--agent-id-prefix=ID_PREFIX

Substitua:

  • PROXY: o URL HTTP e a porta do servidor proxy. Especifique o URL HTTP e não um HTTPS, para evitar solicitações duplas na criptografia TLS. Essas solicitações impedem que o servidor proxy envie solicitações de saída válidas.
  • PROJECT_ID: o ID do projeto que hospeda os recursos de transferência é criado e faturado.
  • ID_PREFIX: o prefixo anexado ao ID do agente para ajudar a identificar o agente ou a máquina no Console do Google Cloud. Quando um prefixo é usado, o ID do agente é formatado como prefix + hostname + Docker container ID.

Copiar para um bucket com uma política de retenção

Para transferir para um bucket com uma política de retenção, recomendamos o seguinte processo:

  1. Crie um bucket do Cloud Storage na mesma região do bucket final. Verifique se esse bucket temporário não tem uma política de retenção.

    Para mais informações sobre regiões, consulte Locais de bucket.

  2. Use o serviço de transferência do Cloud Storage para transferir seus dados para o bucket temporário criado sem uma política de retenção.

  3. Realize uma transferência entre buckets para transferir os dados para o bucket com uma política de retenção.

  4. Exclua o bucket do Cloud Storage criado para armazenar temporariamente os dados.

Opções para conseguir mais largura de banda de rede

Há várias opções para conseguir mais largura de banda de rede para transferências do sistema de arquivos. Aumentar a largura de banda da rede ajudará a diminuir o tempo de transferência, especialmente grandes conjuntos de dados.

  • Peering com o Google: é quando você interage diretamente com o Google para oferecer suporte à troca de tráfego. Temos locais de peering direto em todo o mundo. Para saber mais sobre os benefícios e nossas políticas, consulte Peering.

  • Cloud Interconnect: o Cloud Interconnect é semelhante ao peering, mas você usará uma interconexão para se conectar ao Google. Há dois tipos de interconexões para escolher:

    • Interconexão dedicada: você se conecta diretamente de seu data center a um data center do Google através de uma conexão particular e dedicada. Para mais informações, consulte a Visão geral da interconexão dedicada.

    • Interconexão por parceiro: você colabora com um provedor de serviços para estabelecer uma conexão com um data center do Google através da rede de um parceiro de serviço. Para mais informações, consulte Visão geral da interconexão por parceiro.

  • Conseguir mais largura de banda do seu ISP: seu provedor de serviços de Internet (ISP) pode oferecer mais largura de banda para suas necessidades. Considere entrar em contato com ele para perguntar quais opções estão disponíveis.