Opções avançadas

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

Copiar dados em volumes CIFS ou SMB

Os agentes de transferência não são diretamente suportados em servidores Windows. No entanto, pode mover os dados armazenados em qualquer sistema de ficheiros compatível com POSIX montando-o num servidor Linux ou numa máquina virtual (VM) e, em seguida, executando um agente a partir do servidor Linux ou da VM para copiar os dados para o Cloud Storage.

Para mover dados de um volume CIFS ou SMB:

  1. Aprovisione um servidor ou uma VM do Linux.

    Para ver os sistemas operativos suportados, consulte a secção Pré-requisitos.

  2. Execute o seguinte comando no servidor Linux ou na VM que aprovisionou para montar o volume:

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

    Substitua o seguinte:

    • IP-ADDRESS: o endereço IP do servidor Microsoft Windows no qual o volume CIFS ou SMB está localizado.
    • SHARE-NAME: o nome da partilha que está a montar.
    • WINDOWS-SHARE-USER: um utilizador autorizado para aceder ao volume CIFS ou SMB.
    • WINDOWS-SHARE-PASSWORD: a palavra-passe do utilizador autorizado do volume CIFS ou SMB.
  3. Confirme que o volume CIFS está montado executando o seguinte comando:

    findmnt -l
    
  4. Confirme que o utilizador que vai executar o agente pode listar e copiar ficheiros no volume montado executando os seguintes comandos:

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

    Substitua o seguinte:

    • USERNAME: o utilizador que vai executar o agente.
    • FILE1: o ficheiro a partir do qual vai copiar.
    • FILE2: nome do ficheiro para o qual copiar.
  5. Instale o agente de transferência.

Usar credenciais da conta de serviço

Pode usar as credenciais da conta de serviço para executar o agente. A utilização de credenciais da conta de serviço permite-lhe autenticar o agente de transferência sem depender de uma única conta de utilizador. Para mais informações acerca dos tipos de contas, consulte o artigo Principais.

  1. Crie uma chave de conta de serviço. Para mais informações, consulte o artigo Criar e gerir chaves de contas de serviço.

  2. Transmita a localização 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 ficheiro de credenciais é montado automaticamente pelo gcloud transfer e não tem de ser especificado com a flag --mount-directories.

Ajustar a memória máxima do agente

Por predefinição, os agentes de transferência usam um máximo de 8 GiB de memória do sistema. Pode ajustar a memória máxima usada pelos agentes para se adequar ao seu ambiente transmitindo --max-physical-mem=MAXIMUM-MEMORY, substituindo MAXIMUM-MEMORY por um valor adequado ao seu ambiente.

Seguem-se os requisitos de memória para o serviço de transferência para agentes de dados nas instalações:
  • Memória mínima: 1 GiB
  • Memória mínima para suportar carregamentos de alto desempenho: 6 GiB

Recomendamos a predefinição de 8 GiB.

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

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

Restringir o acesso ao diretório de agentes

Os utilizadores capazes de criar tarefas de transferência podem obter dados de qualquer diretório do sistema de ficheiros acessível pelo agente e transferir dados para esse diretório.

Se os agentes forem executados como raiz e tiverem acesso a todo o sistema de ficheiros, um interveniente malicioso pode conseguir assumir o controlo do anfitrião. Recomendamos vivamente que 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 os diretórios aos quais o agente pode aceder num sistema de ficheiros, use a flag --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 estiver a especificar um ficheiro de credenciais através da flag --creds-file, gcloud transfer monta automaticamente o ficheiro de credenciais. Outros ficheiros no mesmo diretório que o ficheiro de credenciais não são montados.

docker run

Para especificar os diretórios aos quais o agente pode aceder durante uma transferência, transmita -v HOST_DIRECTORY:CONTAINER_DIRECTORY ao agente, em que:

  • HOST_DIRECTORY é o diretório na máquina anfitriã a partir do qual pretende copiar.
  • CONTAINER_DIRECTORY é o diretório mapeado no contentor do agente.

HOST_DIRECTORY e CONTAINER_DIRECTORY têm de ser iguais para que o agente possa localizar os ficheiros a copiar.

Quando usar esta opção:

  • Não especifique --enable-mount-directory.
  • Não preceda o caminho do ficheiro com /transfer_root.

A opção --enable-mount-directory monta todo o sistema de ficheiros no diretório /transfer_root no contentor. Se --enable-mount-directory for especificado, as restrições de diretório não são aplicadas.

Pode usar mais do que uma flag -v para especificar diretórios adicionais a partir dos quais copiar. Por 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 estiver a usar uma conta de serviço, certifique-se de que monta o ficheiro de credenciais no contentor e transmite o parâmetro --creds-file=CREDENTIAL_FILE. Por 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 o seguinte:

  • HOST_DIRECTORY: o diretório na máquina anfitriã a partir do qual pretende copiar.
  • CONTAINER_DIRECTORY: o diretório mapeado no contentor do agente.
  • FULL_CREDENTIAL_FILE_PATH: o caminho totalmente qualificado para o ficheiro de credenciais.
  • PROJECT_ID: o ID do projeto que está a alojar os recursos de transferência são criados e faturados.
  • CREDENTIAL_FILE: um ficheiro de credenciais de conta de serviço formatado em JSON. Para mais informações sobre como gerar um ficheiro de credenciais de uma conta de serviço, consulte o artigo Criar e gerir chaves de contas de serviço.
  • ID_PREFIX: o prefixo que é adicionado ao ID do agente para ajudar a identificar o agente ou a respetiva máquina na consola Google Cloud . Quando é usado um prefixo, o ID do agente é formatado como prefix + hostname + Docker container ID.

Coordenar agentes com o Kubernetes

O Docker é um tempo de execução de contentores suportado para o Kubernetes. Pode usar o Kubernetes para orquestrar o início e a paragem de muitos agentes em simultâneo. Do ponto de vista do Kubernetes, o contentor do agente é considerado uma aplicação sem estado, pelo que pode seguir as instruções do Kubernetes para implementar uma aplicação sem estado.

Usar pontos finais de API privados no Cloud Interconnect

Para usar pontos finais de API privados no Cloud Interconnect:

  1. Inicie sessão no anfitrião no local onde pretende executar o agente.

  2. Configure o acesso privado à Google. Para mais informações, consulte o artigo Configurar o acesso privado à Google para anfitriões no local.

  3. Confirme se consegue estabelecer ligação às APIs do Cloud Storage:

    1. Para as APIs Cloud Storage, execute o seguinte comando a partir da mesma máquina que o agente de transferência para testar a movimentação de um ficheiro para o seu contentor do Cloud Storage: gcloud storage cp test.txt gs://MY-BUCKET onde MY-BUCKET é o nome do seu contentor do Cloud Storage. Se a transferência funcionar, o teste é bem-sucedido.

Usar um proxy de encaminhamento

Os agentes de transferência suportam a utilização de um proxy de encaminhamento na sua rede através da transmissão da variável de ambiente HTTPS_PROXY.

Por 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 o seguinte:

  • PROXY: o URL HTTP e a porta do servidor proxy. Certifique-se de que especifica o URL HTTP e não um URL HTTPS para evitar pedidos de encapsulamento duplo na encriptação TLS. Os pedidos com encapsulamento duplo impedem o servidor proxy de enviar pedidos de saída válidos.
  • PROJECT_ID: o ID do projeto que está a alojar os recursos de transferência são criados e faturados.
  • ID_PREFIX: o prefixo que é adicionado ao ID do agente para ajudar a identificar o agente ou a respetiva máquina na consola Google Cloud . Quando é usado um prefixo, o ID do agente é formatado como prefix + hostname + Docker container ID.

Copie para um contentor com uma política de retenção

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

  1. Crie um contentor do Cloud Storage na mesma região que o contentor final. Certifique-se de que este contentor temporário não tem uma política de retenção.

    Para mais informações sobre regiões, consulte o artigo Localizações dos contentores.

  2. Use o Serviço de transferência de armazenamento para transferir os seus dados para o contentor temporário que criou sem uma política de retenção.

  3. Faça uma transferência de contentor para contentor para transferir os dados para o contentor com uma política de retenção.

  4. Elimine o contentor do Cloud Storage que criou para armazenar temporariamente os seus dados.

Opções para obter mais largura de banda da rede

Existem várias opções para obter mais largura de banda da rede para transferências do sistema de ficheiros. Aumentar a largura de banda da rede ajuda a diminuir os tempos de transferência, especialmente para conjuntos de dados grandes.

  • Intercâmbio com a Google: o intercâmbio é onde interliga diretamente com a Google para suportar a troca de tráfego. Temos localizações de intercâmbio direto em todo o mundo. Para saber mais acerca das vantagens e das nossas políticas, consulte Intercâmbio de tráfego.

  • Cloud Interconnect: o Cloud Interconnect é semelhante ao peering, mas usa um interconexão para se ligar à Google. Existem dois tipos de interligações à sua escolha:

    • Interligação dedicada: estabelece ligação diretamente do seu centro de dados a um centro de dados da Google através de uma ligação privada e dedicada. Para mais informações, consulte o artigo Vista geral do Dedicated Interconnect.

    • Interligação de parceiros: trabalha com um fornecedor de serviços para estabelecer uma ligação a um centro de dados da Google através da rede de um parceiro de serviços. Para mais informações, consulte o artigo Vista geral da interconexão de parceiros.

  • Obtenha largura de banda do seu ISP: o seu fornecedor de serviços de Internet (ISP) pode conseguir oferecer mais largura de banda para as suas necessidades. Pondere contactá-los para perguntar que opções têm disponíveis.