Neste documento, descrevemos como solucionar problemas de transferência e de agente e como encontrar registros do agente para ajudá-lo a solucionar problemas.
Erros
A tabela a seguir descreve as mensagens de erros de transferência e como resolvê-los:
Mensagem de erro | Tipo de erro | O que o erro significa | Como resolver o erro |
---|---|---|---|
Modificado durante a transferência | FILE_MODIFIED_FAILURE | O arquivo de origem é modificado durante a transferência sempre que o Serviço de transferência do Cloud Storage tentava copiar o arquivo de origem. | Evite gravações no arquivo especificado durante a próxima operação do Serviço de transferência do Cloud Storage. |
Falha ao transferir | PRECONDITION_FAILURE | O objeto do Cloud Storage associado ao arquivo de origem foi modificado sempre que o Serviço de transferência do Cloud Storage tentou fazer upload do arquivo. | Ao criar jobs de transferência, use prefixos de objeto exclusivos do Cloud Storage para impedir que vários jobs de transferência gravem o mesmo arquivo no mesmo bucket do Cloud Storage. |
Diretório de origem não encontrado | SOURCE_DIR_NOT_FOUND | O caminho de origem especificado está incorreto ou está correto, mas nem todos os agentes têm acesso a ele. | Verifique a configuração do job de transferência e certifique-se de que:
|
Não foi possível encontrar o diretório de origem ou de destino do job | ROOT_DIR_NOT_FOUND | O caminho de origem/destino especificado está incorreto ou está correto, mas nem todos os agentes têm acesso a ele. | Verifique a configuração do job de transferência e certifique-se de que:
|
Arquivo não encontrado | FILE_NOT_FOUND_FAILURE | O arquivo de origem foi encontrado, mas foi excluído antes de ser transferido para o Cloud Storage. | Se o arquivo foi excluído por engano, restaure-o para que o próximo job de transferência possa fazer o upload. |
Falha ao encontrar o bucket de destino | BUCKET_NOT_FOUND | O bucket de destino não existe no Cloud Storage. | Verifique se o nome do bucket de destino está correto e se ele existe. |
Falha ao encontrar um objeto de metadados interno | METADATA_OBJECT_ NOT_FOUND_FAILURE |
O Storage Transfer Service armazena metadados no bucket de destino com o
prefixo storage-transfer . Esse erro será exibido se os arquivos de
metadados forem excluídos antes da conclusão das operações de transferência
correspondentes.
|
Evite excluir objetos com o prefixo storage-transfer/ no
bucket de destino até que todos os jobs de transferência sejam concluídos. |
Falha devido a um nome de arquivo inválido | INVALID_FILE_NAME | O caminho de um arquivo de origem é inválido. | Verifique e corrija o caminho do arquivo especificado. Verifique se o caminho usa caracteres compatíveis com o Cloud Storage. |
Falha devido a uma classe de armazenamento inválida | INVALID_FILE_STORAGE_CLASS | A classe de armazenamento da origem não permite leituras. | Encontre a documentação do seu provedor de nuvem para determinar como colocar os dados em uma classe de armazenamento que permita copiar os dados. |
Falha devido a um URI de sessão de upload retomável inválido | SESSION_URI_INVALID | O ID do upload retomável ou o URI da sessão expirou ou foi cancelado. | As novas tentativas estão sendo executadas incorretamente. Entre em contato com o suporte. |
Falha devido a um tamanho de arquivo inválido | INVALID_FILE_SIZE | O tamanho do arquivo é inválido. | Verifique se o tamanho do arquivo é maior ou igual a 0 e menor ou igual a 5 TiB (tamanho máximo do objeto do Cloud Storage) para transferências no Cloud Storage. |
Falha devido a permissões | PERMISSION_FAILURE e UNAUTHENTICATED | Um agente de transferência não tinha permissões suficientes para executar uma
operação. Há duas possibilidades para esse erro:
|
Confirme o seguinte:
|
O objeto está sujeito à política de retenção do bucket e não pode ser excluído, substituído ou arquivado | PERMISSION_FAILURE | O bucket tem uma política de retenção em vigor e o objeto já existe. O Storage Transfer Service não pode substituir os objetos existentes no bucket. Esse erro pode ser exibido se o arquivo tiver mudado na origem ou se o Serviço de transferência do Cloud Storage tentar fazer o upload duas vezes devido a condições de rede e o primeiro upload for bem-sucedido. | Verifique se os dados no seu bucket do Cloud Storage correspondem às suas expectativas. Confirme se o tamanho e o horário modificados (mtime) dos arquivos de origem correspondem aos equivalentes do objeto do Cloud Storage executando novamente o job e confirmando que não há erros. |
O serviço não tinha permissões suficientes | SERVICE_PERMISSION_FAILURE | O Serviço de transferência do Cloud Storage não tinha permissões suficientes para executar uma operação. |
O Serviço de transferência do Cloud Storage usa uma
conta de serviço gerenciada pelo
Google, normalmente no formato
project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com , para acessar recursos.
Para determinar o PROJECT_NUMBER específico, use a
chamada de API
googleserviceaccounts.get .
Verifique se a conta de serviço tem os seguintes papéis:
|
Agente incompatível | AGENT_UNSUPPORTED_VERSION | A versão do agente não é mais compatível com o Serviço de transferência do Cloud Storage. | Esse erro é temporário e está relacionado a uma atualização inválida do agente. Se ocorrer, faça
o seguinte:
|
Falha devido a incompatibilidade de hash | HASH_MISMATCH_FAILURE | Sempre que o Serviço de transferência do Cloud Storage tentava fazer upload desse arquivo, os bytes enviados eram corrompidos. Isso fez com que o hash do arquivo local não correspondesse ao hash do objeto resultante do Cloud Storage. | Esse erro pode ser causado por uma série de possíveis problemas. Se você vir uma pequena porcentagem de falhas de incompatibilidade de hash (menos de 1%) em uma transferência grande, repita os arquivos com falha. Se você encontrar uma grande porcentagem de falhas de incompatibilidade de hash (1% ou mais), investigue possíveis falhas de memória, CPU ou outras falhas de hardware na máquina do agente. |
Falha devido a um modo de arquivo incompatível | UNSUPPORTED_FILE_MODE | O Serviço de transferência do Cloud Storage encontrou um arquivo com um modo incompatível, como um dispositivo, um soquete, um pipe nomeado ou um arquivo irregular. | Remova esses tipos de arquivo especiais do diretório de origem. |
Falha devido a um erro no sistema de arquivos | FILESYSTEM_ERROR | Um agente encontrou um erro de sistema de arquivos ou sistema operacional ao executar uma operação do sistema de arquivos, como leitura, busca ou estatística. | Leia a descrição da falha para entender qual operação do sistema de arquivos falhou. Verifique se o sistema de arquivos pode ser acessado pelo agente local e responsivo a operações básicas de arquivos |
Falha devido a um erro desconhecido | UNKNOWN_FAILURE | Ocorreu um erro inesperado. | Leia a descrição da falha. Se a descrição da falha não tiver informações suficientes para resolver o problema, entre em contato com o suporte. |
Falha devido a uma especificação inválida | INVALID_SPEC | O agente recebeu uma especificação interna corrompida. | Verifique os dados corrompidos nos hosts de agentes e entre em contato com o suporte se você não encontrar nenhum. |
Falha devido a um arquivo de manifesto vazio ou inválido | CONFORMANCE_FAILURE | O agente não pode ler ou receber bytes CSV válidos devido à formatação inválida ou a entradas em CSV. | Verifique se as entradas do manifesto são caminhos de arquivo válidos. Se a descrição da falha não tiver informações suficientes para resolver o problema, entre em contato com o suporte. |
Estamos voltando a usar os uploads retomáveis em vez de uploads de várias partes devido a um erro de permissão negada | PERMISSION_FAILURE | Os uploads de várias partes foram ativados para esta transferência, mas as permissões corretas não foram definidas no bucket. | Consulte a seção Uploads em várias partes de Permissões do sistema de arquivos para ver as permissões necessárias. |
Como visualizar registros do agente
Os registros do agente contêm informações relevantes para os processos do agente e podem ajudar a solucionar problemas de conexão no agente. Se os agentes estiverem listados como conectados no Console do Google Cloud e você estiver enfrentando falhas de transferência, consulte Como visualizar erros para ver uma amostra de erros de transferência. Para visualizar registros com todos os arquivos do serviço de transferência do Cloud Storage considerados durante uma transferência, consulte Como visualizar registros de transferência.
Por padrão, os registros do agente são armazenados em /tmp
. É possível alterar o local com
a opção
de linha de comando --log-dir=logs-directory
.
Os registros são chamados de:
agent.hostname.username.log.log-level.timestamp
Em que:
hostname
: nome do host onde o agente está sendo executado.username
: nome do usuário que executa o agente.log-level
é um dos seguintes:INFO
: mensagens informativasERROR
: erros encontrados durante a transferência, mas que não impedem a continuação do job de transferência.FATAL
: erros encontrados que impedem a continuidade do job de transferência.
timestamp
: carimbo de data/hora no formatoYYYYMMDD-hhmmss.thread-id
.
O diretório de registros contém links simbólicos para os registros mais recentes de cada um dos níveis de prioridade:
agent.ERROR
agent.FATAL
agent.INFO
Velocidade de transferência lenta
Se a transferência dos seus dados estiver demorando muito, verifique o seguinte:
A capacidade de leitura do seu sistema de arquivos deve ser aproximadamente 1,5 vez a velocidade de upload desejada. É possível usar o FIO para testar a capacidade de leitura do seu sistema de arquivos.
Instale o fio:
sudo apt install -y fio
Crie um novo diretório
fiotest
:TEST_DIR=/mnt/mnt_dir/fiotest
sudo mkdir -p $TEST_DIR
Teste a capacidade de leitura:
sudo fio --directory=$TEST_DIR --direct=1 --rw=randread --randrepeat=0 --ioengine=libaio --bs=1M --iodepth=8 --time_based=1 --runtime=180 --name=read_test --size=1G
Depois de executar os comandos acima, o Fio gera um relatório. A linha denominada "bw" representa a largura de banda agregada total de todas as linhas de execução e pode ser usada como um proxy para capacidade de leitura.
Use iPerf3 para verificar a largura de banda da Internet disponível para o Serviço de transferência do Cloud Storage.
Cada agente de transferência precisa ter pelo menos 4 vCPUs e 8 GB de RAM.
Se você verificou as condições acima e ainda está com tempos de transferência longos, é possível adicionar outros agentes para aumentar o número de conexões simultâneas no sistema de arquivos dos seus dados.
Para mais informações sobre como maximizar o desempenho dos seus agentes de transferência, consulte Práticas recomendadas para agentes.
Solução de problemas de erros do agente
As seções a seguir descrevem como resolver problemas e resolver erros do agente de transferência:
Os agentes não estão conectados
Se os agentes de transferência não aparecerem como conectados no Console do Google Cloud:
Verifique se os agentes podem se conectar às APIs do Cloud Storage:
Execute o comando a seguir na mesma máquina que o agente de transferência para testar a conexão do agente com as APIs Cloud Storage:
gcloud storage cp test.txt gs://my-bucket
Substitua:
my-bucket
pelo nome do bucket do Cloud Storage.
Se o projeto usa o VPC Service Controls, visualize os registros do agente para ver se há erros. Se o VPC Service Controls estiver mal configurado, os registros do agente
INFO
conterão o erro a seguir:Request is prohibited by organization's policy. vpcServiceControlsUniqueIdentifier: id
Nesta saída:
Os agentes estão conectados, mas os jobs falham
Se os agentes forem exibidos como conectados, mas os jobs de transferência falharem, verifique os detalhes de erro dos jobs com falha.
O proxy rejeita endereços IP
Se você executar por trás de um proxy como o Squid e usar uma lista de permissões, as solicitações poderão ser negadas porque endereços IP estão sendo usados em vez de nomes de host.
Para resolver esse problema, use o comando docker run para executar os agentes e adicione a seguinte flag:
--transfer-service-endpoint=storagetransfer.googleapis.com:443
Se você usar um endpoint alternativo para acessar googleapis.com
(por exemplo, para o
Private Service Connect), substitua googleapis.com
pelo
endpoint alternativo.