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
- Usar credenciais da conta de serviço
- Ajustar a memória máxima do agente
- Restringir o acesso ao diretório de agentes
- Coordenar agentes com o Kubernetes
- Usar um proxy de encaminhamento
- Copiar para um contentor com uma política de retenção
- Opções para obter mais largura de banda da rede
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:
Aprovisione um servidor ou uma VM do Linux.
Para ver os sistemas operativos suportados, consulte a secção Pré-requisitos.
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.
Confirme que o volume CIFS está montado executando o seguinte comando:
findmnt -l
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.
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.
Crie uma chave de conta de serviço. Para mais informações, consulte o artigo Criar e gerir chaves de contas de serviço.
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.
- 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 comoprefix + 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:
Inicie sessão no anfitrião no local onde pretende executar o agente.
Configure o acesso privado à Google. Para mais informações, consulte o artigo Configurar o acesso privado à Google para anfitriões no local.
Confirme se consegue estabelecer ligação às APIs do Cloud Storage:
- 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
ondeMY-BUCKET
é o nome do seu contentor do Cloud Storage. Se a transferência funcionar, o teste é bem-sucedido.
- 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:
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 comoprefix + 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:
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.
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.
Faça uma transferência de contentor para contentor para transferir os dados para o contentor com uma política de retenção.
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.