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
- Como usar credenciais de conta de serviço
- Como ajustar a memória máxima do agente
- Como restringir o acesso ao diretório do agente
- Como coordenar agentes com o Kubernetes
- Como usar um proxy de encaminhamento
- Como copiar para um bucket com uma política de retenção
- Opções para conseguir mais largura de banda de rede
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:
Provisione um servidor Linux ou VM.
Para sistemas operacionais compatíveis, consulte Pré-requisitos.
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.
Confirme se o volume CIFS está ativado executando o seguinte comando:
findmnt -l
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.
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.
Crie uma chave para a conta de serviço. Para mais informações, consulte Como criar e gerenciar chaves de conta de serviço.
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ê.
- 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 são criados e faturados.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 comoprefix + 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:
Faça login no host local onde você pretende executar o agente.
Configure Acesso privado do Google. Se você quiser mais informações, consulte Como configurar o Acesso privado do Google para hosts locais.
Confirme se é possível se conectar às APIs do Cloud Storage:
- 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:
gcloud storage cp test.txt gs://MY-BUCKET
, em queMY-BUCKET
é o nome do bucket do Cloud Storage. Se a transferência funcionar, o teste foi bem-sucedido.
- 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:
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 são criados e faturados.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 comoprefix + 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:
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.
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.
Realize uma transferência entre buckets para transferir os dados para o bucket com uma política de retenção.
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.