Este documento descreve como resolver problemas de transferência e de agente, e onde encontrar registos de agentes para ajudar a resolver problemas.
Erros
A tabela seguinte descreve as mensagens de erro de transferência e como as resolver:
Mensagem de erro | Tipo de erro | O que significa o erro | Como resolver o erro |
---|---|---|---|
Modificado durante a transferência | FILE_MODIFIED_FAILURE | O ficheiro de origem foi modificado durante a transferência sempre que o Serviço de transferência de armazenamento tentou copiar o ficheiro de origem. | Impedir escritas no ficheiro especificado durante a próxima operação do serviço de transferência de armazenamento. |
Falha ao transferir | PRECONDITION_FAILURE | O objeto do Cloud Storage associado ao ficheiro de origem foi modificado sempre que o serviço de transferência de armazenamento tentou carregar o ficheiro. | Impeça que várias tarefas de transferência escrevam o mesmo ficheiro no mesmo contentor do Cloud Storage usando prefixos de objetos do Cloud Storage únicos quando criar tarefas de transferência. |
Diretório de origem não encontrado | SOURCE_DIR_NOT_FOUND | O caminho de origem especificado está incorreto ou o caminho está correto, mas nem todos os agentes têm acesso ao mesmo. | Verifique a configuração da tarefa de transferência e confirme o seguinte:
|
Não foi possível encontrar o diretório de origem ou de destino da tarefa | ROOT_DIR_NOT_FOUND | O caminho de origem/destino especificado está incorreto ou o caminho está correto, mas nem todos os agentes têm acesso ao caminho. | Verifique a configuração da tarefa de transferência e confirme o seguinte:
|
Ficheiro não encontrado | FILE_NOT_FOUND_FAILURE | O ficheiro de origem foi encontrado, mas foi eliminado antes de ser transferido para o Cloud Storage. | Se o ficheiro foi eliminado por engano, restaure-o para que a próxima tarefa de transferência o possa carregar. |
Não foi possível encontrar o contentor de destino | BUCKET_NOT_FOUND | O contentor de destino não existe no Cloud Storage. | Verifique se a ortografia do contentor de destino está correta e se este existe. |
Não foi possível encontrar um objeto de metadados interno | METADATA_OBJECT_ NOT_FOUND_FAILURE |
O serviço de transferência de armazenamento armazena metadados no contentor de destino com o prefixo storage-transfer . Se os ficheiros de metadados forem eliminados antes de as
respetivas operações de transferência serem concluídas, é apresentado
este erro.
|
Evite eliminar objetos com o prefixo storage-transfer/ no contentor de destino até que todas as tarefas de transferência estejam concluídas. |
Falhou devido a um nome de ficheiro inválido | INVALID_FILE_NAME | O caminho de um ficheiro de origem não é válido. | Valide e corrija o caminho do ficheiro especificado. Verifique se o caminho usa caracteres suportados pelo Cloud Storage. |
Falha devido à classe de armazenamento inválida | INVALID_FILE_STORAGE_CLASS | A classe de armazenamento da origem especificada não permite leituras. | Encontre a documentação do seu fornecedor de nuvem para determinar como transferir os dados para uma classe de armazenamento que permita copiar os dados para fora. |
Falhou devido ao URI da sessão de carregamento retomável inválido | SESSION_URI_INVALID | O ID de carregamento retomável ou o URI da sessão expirou ou foi cancelado. | A falha está a ser repetida incorretamente. Contacte o apoio técnico. |
Falha devido ao tamanho do ficheiro inválido | INVALID_FILE_SIZE | O tamanho do ficheiro é inválido. | Verifique se o tamanho do ficheiro é >= 0 e <= 5 TiB (tamanho máximo do objeto do Cloud Storage) para transferências para o Cloud Storage. |
Falha devido a autorizações | PERMISSION_FAILURE e UNAUTHENTICATED | Um agente de transferência não tinha autorizações suficientes para realizar uma operação. Existem duas possibilidades para este erro:
|
Verifique o seguinte:
|
O objeto está sujeito à política de retenção do contentor e não pode ser eliminado, substituído nem arquivado | PERMISSION_FAILURE | O contentor tem uma política de retenção em vigor e o objeto já existe no contentor. O Serviço de transferência de armazenamento não pode substituir objetos existentes no contentor. Este erro pode ser apresentado se o ficheiro tiver sido alterado na origem ou se o serviço de transferência de armazenamento tentar o carregamento duas vezes devido às condições da rede e o primeiro carregamento tiver sido bem-sucedido. | Verifique se os dados no seu contentor do Cloud Storage correspondem às suas expectativas. Pode confirmar que o tamanho e a hora de modificação (mtime) dos ficheiros de origem correspondem aos respetivos objetos do Cloud Storage executando novamente a tarefa e confirmando que não existem erros. |
O serviço não tinha autorizações suficientes | SERVICE_PERMISSION_FAILURE | O serviço de transferência de armazenamento não tinha autorizações suficientes para realizar uma operação. |
O serviço de transferência de armazenamento usa uma
conta de serviço gerida pela Google, normalmente no formato de
project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com , para aceder aos recursos.
Para determinar o seu PROJECT_NUMBER específico, use a chamada API
googleserviceaccounts.get .
Verifique se a conta de serviço tem as seguintes funções:
|
Agente não suportado | AGENT_UNSUPPORTED_VERSION | A versão do agente já não é compatível com o serviço de transferência de armazenamento. | Este é um erro temporário relacionado com uma atualização incorreta do agente. Se ocorrer, faça o
seguinte:
|
Falha devido a hash não correspondente | HASH_MISMATCH_FAILURE | Sempre que o serviço de transferência de armazenamento tentou carregar este ficheiro, os bytes carregados foram corrompidos. Este problema técnico fez com que o hash do ficheiro no local não correspondesse ao hash do objeto do Cloud Storage resultante. | Este erro pode ser causado por vários problemas potenciais. Se vir uma pequena percentagem de falhas de incompatibilidade de hash (inferior a 1%) numa transferência grande, experimente novamente os ficheiros com falhas. Se vir uma grande percentagem de falhas de incompatibilidade de hash (1% ou mais), recomendamos que investigue potenciais falhas de memória, CPU ou outro hardware na máquina do agente. |
Falha devido a um modo de ficheiro não suportado | UNSUPPORTED_FILE_MODE | O serviço de transferência de armazenamento encontrou um ficheiro com um modo não suportado, como um dispositivo, um soquete, um canal anónimo ou um ficheiro irregular. | Remova estes tipos de ficheiros especiais do diretório de origem. |
Falha devido a um erro no sistema de ficheiros | FILESYSTEM_ERROR | Um agente encontrou um erro do sistema de ficheiros ou do sistema operativo ao realizar uma operação do sistema de ficheiros, como leitura, procura ou estatísticas. | Leia a descrição da falha para compreender que operação do sistema de ficheiros falhou. Certifique-se de que o sistema de ficheiros está acessível ao agente no local e responde às operações básicas de ficheiros. |
Falha devido à falta de espaço no sistema de ficheiros | FILESYSTEM_NO_SPACE_ON_DEVICE | Um agente ficou sem espaço ao realizar uma operação do sistema de ficheiros, como abrir ou escrever. | Leia a descrição da falha para compreender que operação do sistema de ficheiros falhou. Certifique-se de que o sistema de ficheiros tem espaço suficiente para realizar operações de ficheiros. |
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 contiver informações suficientes para resolver o problema, contacte o apoio técnico. |
Falha devido a uma especificação inválida | INVALID_SPEC | O agente recebeu uma especificação interna danificada. | Verifique se existe corrupção de dados nos anfitriões dos agentes e contacte o apoio técnico se não conseguir encontrar nenhum. |
Falha devido a um ficheiro de manifesto vazio ou inválido | CONFORMANCE_FAILURE | O agente não consegue ler nem obter bytes CSV válidos devido a formatação ou entradas CSV inválidas. | Certifique-se de que as entradas do manifesto são caminhos de ficheiros válidos. Se a descrição da falha não contiver informações suficientes para resolver o problema, contacte o apoio técnico. |
A voltar a carregamentos retomáveis em vez de carregamentos multipartes devido a um erro de autorização recusada | PERMISSION_FAILURE | Os carregamentos multipartes foram ativados para esta transferência, mas as autorizações corretas não foram definidas no contentor. | Consulte a secção Carregamentos multipartes de Autorizações do sistema de ficheiros para ver as autorizações necessárias. |
As entradas estão listadas fora de ordem | INCOMPATIBLE_LIST_ORDER_FAILURE | O sistema de ficheiros de origem devolveu uma lista de ficheiros numa ordem que é incompatível com o serviço de transferência de armazenamento. O serviço de transferência de armazenamento requer que o sistema de ficheiros de origem devolva ficheiros por ordem alfabética. | Verifique se o sistema de ficheiros devolve ficheiros por ordem lexicográfica. |
Ver registos do agente
Os registos de agentes contêm informações relevantes para os processos dos agentes e podem ajudar a resolver problemas de ligação de agentes. Se os seus agentes estiverem listados como ligados na consola do Google Cloud Google Cloud e estiver a ter falhas de transferência, consulte Ver erros para ver um exemplo de erros de transferência. Para ver registos que contêm um registo de todos os ficheiros que o serviço de transferência de armazenamento considerou durante uma transferência, consulte o artigo Ver registos de transferência.
Por predefinição, os registos de agentes são armazenados em /tmp
. Pode alterar a localização com a
--log-dir=logs-directory
opção de linha de comandos.
Os registos têm os seguintes nomes:
agent.hostname.username.log.log-level.timestamp
Onde:
hostname
: o nome do anfitrião no qual o agente está a ser executado.username
: nome de utilizador 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 da tarefa de transferência.FATAL
- erros encontrados que impedem a continuação da tarefa de transferência.
timestamp
: indicação de tempo no formatoYYYYMMDD-hhmmss.thread-id
.
O diretório de registos contém links simbólicos para os registos 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 de dados estiver a demorar muito tempo, verifique o seguinte:
A taxa de transferência de leitura do seu sistema de ficheiros deve ser aproximadamente 1,5 vezes a velocidade de carregamento pretendida. Pode usar o FIO para testar a taxa de transferência de leitura do seu sistema de ficheiros.
Instalar fio:
sudo apt install -y fio
Crie um novo diretório
fiotest
:TEST_DIR=/mnt/mnt_dir/fiotest
sudo mkdir -p $TEST_DIR
Testar débito 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 etiquetada como "bw" representa a largura de banda agregada total de todas as linhas de execução e pode ser usada como um proxy para a taxa de transferência de leitura.
Use o iPerf3 para verificar a largura de banda da Internet disponível para o serviço de transferência de armazenamento.
Certifique-se de que cada um dos seus agentes de transferência tem, pelo menos, 4 vCPU e 8 GB de RAM.
Se verificou as condições acima e ainda está a ter tempos de transferência longos, pode adicionar agentes adicionais para aumentar o número de ligações simultâneas ao sistema de ficheiros dos seus dados.
Para mais informações sobre como maximizar o desempenho dos seus agentes de transferência, consulte as práticas recomendadas para agentes.
Resolução de problemas de erros do agente
As secções seguintes descrevem como resolver problemas e erros de agentes de transferência:
Os agentes não estão ligados
Se os agentes de transferência não forem apresentados como associados na Google Cloud consola:
Verifique se os agentes conseguem estabelecer ligação às APIs Cloud Storage:
Execute o seguinte comando a partir da mesma máquina que o agente de transferência para testar a ligação do agente às APIs Cloud Storage:
gcloud storage cp test.txt gs://my-bucket
Substituição:
my-bucket
com o nome do seu contentor do Cloud Storage.
Se o seu projeto usar os VPC Service Controls, veja os registos do agente para verificar se existem erros. Se o VPC Service Controls estiver configurado incorretamente, os registos do agente
INFO
vão conter o seguinte erro:Request is prohibited by organization's policy. vpcServiceControlsUniqueIdentifier: id
Neste resultado:
Os agentes estão ligados, mas as tarefas falham
Se os agentes forem apresentados como ligados, mas as tarefas de transferência falharem, verifique os detalhes do erro das tarefas com falhas.
O proxy rejeita endereços IP
Se estiver a usar um proxy como o Squid e usar uma lista de autorizações, pode ver pedidos recusados devido a endereços IP usados em vez de nomes de anfitriões.
Para resolver este problema, use o comando docker run para executar os agentes e adicione a seguinte flag:
--transfer-service-endpoint=storagetransfer.googleapis.com:443
Se usar um ponto final alternativo para aceder a googleapis.com
(por exemplo, para o
Private Service Connect), substitua googleapis.com
pelo
ponto final alternativo.
O agente não consegue estabelecer ligação a um ponto final HTTPS através de um certificado autoassinado
Se o seu agente não conseguir estabelecer ligação a um ponto final HTTPS através de um certificado
autossinado, use uma opção -v
adicional para montar o pacote de certificados
personalizado na localização predefinida do contentor (/etc/ssl/certs
).
Para o fazer, modifique o comando docker run
adicionando a seguinte flag:
-v PATH_TO_LOCAL_CERT:/etc/ssl/certs/ca-certificates.crt
Substituição:
- PATH_TO_LOCAL_CERT com o caminho para o ficheiro de certificado personalizado.