Risolvere i problemi relativi ai trasferimenti del file system

Questo documento descrive come risolvere i problemi relativi a trasferimento e agente e dove trovare i log degli agenti per aiutarti a risolvere i problemi.

Errori

La seguente tabella descrive i messaggi di errore del trasferimento e come risolverli:

Messaggio di errore Tipo di errore Significato dell'errore Come risolvere l'errore
Modificato durante il trasferimento FILE_MODIFIED_FAILURE Il file di origine è stato modificato durante il trasferimento ogni volta che Storage Transfer Service ha tentato di copiarlo. Impedisci le scritture nel file specificato durante la successiva operazione di Storage Transfer Service.
Trasferimento non riuscito PRECONDITION_FAILURE L'oggetto Cloud Storage associato al file di origine è stato modificato ogni volta che Storage Transfer Service ha tentato di caricare il file. Impedisci a più job di trasferimento di scrivere lo stesso file nello stesso bucket Cloud Storage, utilizzando prefissi univoci degli oggetti Cloud Storage quando crei job di trasferimento.
Directory di origine non trovata SOURCE_DIR_NOT_FOUND Il percorso di origine specificato non è corretto oppure il percorso è corretto, ma non tutti gli agenti hanno accesso al percorso. Controlla la configurazione del job di trasferimento e verifica quanto segue:
Impossibile trovare la directory di origine o di destinazione del job ROOT_DIR_NOT_FOUND Il percorso di origine/destinazione specificato non è corretto oppure il percorso è corretto, ma non tutti gli agenti hanno accesso al percorso. Controlla la configurazione del job di trasferimento e verifica quanto segue:
File non trovato FILE_NOT_FOUND_FAILURE Il file di origine è stato trovato, ma è stato eliminato prima di essere trasferito a Cloud Storage. Se il file è stato eliminato per errore, ripristinalo in modo che il job di trasferimento successivo possa caricarlo.
Impossibile trovare il bucket di destinazione BUCKET_NOT_FOUND Il bucket di destinazione non esiste in Cloud Storage. Verifica che l'ortografia del bucket di destinazione sia corretta e che esista.
Impossibile trovare un oggetto di metadati interno METADATA_OBJECT_
NOT_FOUND_FAILURE
Storage Transfer Service archivia i metadati nel bucket di destinazione con il prefisso storage-transfer. Se i file di metadati vengono eliminati prima del completamento delle operazioni di trasferimento corrispondenti, viene visualizzato questo errore. Evita di eliminare gli oggetti con il prefisso storage-transfer/ nel bucket di destinazione fino al completamento di tutti i job di trasferimento.
Operazione non riuscita a causa di un nome file non valido INVALID_FILE_NAME Il percorso di un file di origine non è valido. Verifica e correggi il percorso del file specificato. Verifica che il percorso utilizzi caratteri supportati da Cloud Storage.
Operazione non riuscita a causa di un URI della sessione di caricamento ripristinabile non valido SESSION_URI_INVALID L'ID di caricamento o l'URI di sessione ripristinabili è scaduto o è stato annullato. L'errore è stato ripetuto in modo errato. Contatta l'assistenza.
Operazione non riuscita a causa di dimensioni del file non valide INVALID_FILE_SIZE Le dimensioni del file non sono valide. Verifica che la dimensione del file sia maggiore o uguale a 0 e <= 5 TiB (dimensione massima dell'oggetto Cloud Storage) per i trasferimenti a Cloud Storage.
Operazione non riuscita a causa delle autorizzazioni PERMISSION_PERMISSION e NON AUTENTICATO Un agente di trasferimento non disponeva di autorizzazioni sufficienti per eseguire un'operazione. Questo errore può verificarsi in due modi:
  • Un agente non disponeva di autorizzazioni Google Cloud sufficienti.
  • Un agente non è riuscito a leggere un file o una directory a causa di autorizzazioni insufficienti per il file system di origine.

Verifica quanto segue:

L'oggetto è soggetto al criterio di conservazione del bucket e non può essere eliminato, sovrascritto o archiviato PERMISSION_FAILURE Il bucket ha un criterio di conservazione attivo e l'oggetto esiste già nel bucket. Storage Transfer Service non può sovrascrivere gli oggetti esistenti nel bucket. Questo errore può essere visualizzato se il file è stato modificato all'origine o se Storage Transfer Service tenta di eseguire il caricamento due volte a causa delle condizioni della rete e il primo caricamento è riuscito. Verifica che i dati nel bucket Cloud Storage corrispondano alle tue aspettative. Per confermare che le dimensioni e l'ora modificata (mtime) dei file di origine corrispondano alle controparti degli oggetti Cloud Storage, esegui nuovamente il job e conferma che non sono presenti errori.
Il servizio non disponeva di autorizzazioni sufficienti SERVICE_PERMISSION_FAILURE Storage Transfer Service non disponeva di autorizzazioni sufficienti per eseguire un'operazione. Storage Transfer Service utilizza un account di servizio gestito da Google, in genere nel formato project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com, per accedere alle risorse. Per determinare il tuo PROJECT_NUMBER specifico, utilizza la chiamata API googleserviceaccounts.get. Verifica che l'account di servizio abbia i ruoli seguenti:
  • roles/storagetransfer.serviceAgent per il progetto.
  • roles/storage.admin per tutti i bucket di destinazione.
Agente non supportato AGENT_UNSUPPORTED_VERSION La versione dell'agente non è più compatibile con Storage Transfer Service. Si tratta di un errore temporaneo correlato a un aggiornamento dell'agente non valido. In caso affermativo:
  1. Interrompi tutti gli agenti.
  2. Esegui il pull dell'immagine Docker più recente eseguendo: sudo docker pull gcr.io/cloud-ingest/tsop-agent
  3. Esegui il comando run Docker per avviare tutti i container degli agenti.
Se il problema persiste, contatta il team di assistenza.
Operazione non riuscita a causa di una mancata corrispondenza dell'hash HASH_MISMATCH_FAILURE Ogni volta che Storage Transfer Service ha tentato di caricare questo file, i byte caricati erano danneggiati. Di conseguenza, l'hash del file on-premise non corrisponde all'hash dell'oggetto Cloud Storage risultante. Questo errore può essere causato da una serie di potenziali problemi. Se noti una piccola percentuale di errori di mancata corrispondenza dell'hash (inferiore all'1%) in un trasferimento di grandi dimensioni, riprova a caricare i file non riusciti. Se noti un'elevata percentuale di errori di mancata corrispondenza dell'hash (1% o più), ti consigliamo di analizzare i potenziali errori di memoria, CPU o altri hardware sulla macchina dell'agente.
Operazione non riuscita a causa di una modalità file non supportata UNSUPPORTED_FILE_MODE Storage Transfer Service ha rilevato un file con una modalità non supportata, ad esempio un dispositivo, un socket, una pipeline denominata o un file irregolare. Rimuovi questi tipi di file speciali dalla directory di origine.
Operazione non riuscita a causa di un errore nel file system FILESYSTEM_ERROR Un agente ha riscontrato un errore del file system o del sistema operativo durante l'esecuzione di un'operazione di file system come lettura, ricerca o stat. Leggi la descrizione dell'errore per capire quale operazione del file system non è riuscita. Assicurati che il file system sia accessibile all'agente on-prem e reattivo alle operazioni di base sui file.
Operazione non riuscita a causa di un errore sconosciuto UNKNOWN_FAILURE Si è verificato un errore imprevisto. Leggi la descrizione dell'errore. Se la descrizione dell'errore non contiene informazioni sufficienti per risolvere il problema, contatta l'assistenza.
Operazione non riuscita a causa di una specifica non valida INVALID_SPEC L'agente ha ricevuto una specifica interna danneggiata. Verifica che i dati siano danneggiati negli host degli agenti e contatta l'assistenza se non ne riesci.
Operazione non riuscita a causa di un file manifest vuoto o non valido CONFORMANCE_FAILURE L'agente non può leggere o ottenere byte CSV validi a causa di formattazione o voci CSV non valide. Assicurati che le voci del manifest siano percorsi di file validi. Se la descrizione dell'errore non contiene informazioni sufficienti per risolvere il problema, contatta l'assistenza.
Possibilità di utilizzare caricamenti ripristinabili anziché caricamenti multiparte a causa di un errore di autorizzazione negata PERMISSION_FAILURE I caricamenti multiparte sono stati abilitati per questo trasferimento, ma non sono state impostate le autorizzazioni corrette nel bucket. Consulta la sezione Caricamenti multiparte di Autorizzazioni del file system per le autorizzazioni richieste.

Visualizzazione dei log dell'agente

I log degli agenti contengono informazioni pertinenti ai processi degli agenti e possono aiutarti a risolvere i problemi di connessione degli agenti. Se gli agenti sono elencati come connessi nella console Google Cloud e riscontri errori di trasferimento, consulta la pagina Visualizzazione degli errori per visualizzare un esempio di errori di trasferimento. Per visualizzare i log che contengono un record per ogni file di Storage Transfer Service preso in considerazione durante un trasferimento, vedi Visualizzazione dei log di trasferimento.

Per impostazione predefinita, i log degli agenti sono archiviati in /tmp. Puoi modificare la località con l'opzione della riga di comando --log-dir=logs-directory.

I log sono denominati:

agent.hostname.username.log.log-level.timestamp

Dove:

  • hostname: nome host su cui è in esecuzione l'agente.
  • username: nome utente che esegue l'agente.
  • log-level è uno dei seguenti:
    • INFO - messaggi informativi
    • ERROR: errori riscontrati durante il trasferimento, ma che non impediscono il proseguimento del job di trasferimento.
    • FATAL: errori che impediscono la prosecuzione del job di trasferimento.
  • timestamp - timestamp in formato YYYYMMDD-hhmmss.thread-id.

La directory dei log contiene collegamenti simbolici ai log più recenti per ciascuno dei livelli di priorità:

  • agent.ERROR
  • agent.FATAL
  • agent.INFO

Velocità di trasferimento bassa

Se il trasferimento dei dati richiede molto tempo, controlla quanto segue:

  1. La velocità effettiva di lettura del file system dovrebbe essere circa 1,5 volte la velocità di caricamento desiderata. Puoi utilizzare FIO per testare la velocità effettiva di lettura del tuo file system.

    Installa fi:

     sudo apt install -y fio
     

    Crea una nuova directory fiotest:

     TEST_DIR=/mnt/mnt_dir/fiotest
     sudo mkdir -p $TEST_DIR
     

    Test velocità effettiva di lettura:

     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
     

    Dopo aver eseguito i comandi sopra indicati, Fio genera un report. La riga "bw" rappresenta la larghezza di banda aggregata totale di tutti i thread e può essere utilizzata come proxy per la velocità effettiva di lettura.

  2. Usa iPerf3 per verificare la larghezza di banda internet disponibile per Storage Transfer Service.

  3. Assicurati che ciascuno dei tuoi agenti di trasferimento abbia almeno 4 vCPU e 8 GB di RAM.

Se hai verificato le condizioni precedenti e riscontri ancora tempi di trasferimento lunghi, puoi aggiungere altri agenti per aumentare il numero di connessioni simultanee al file system dei dati.

Per ulteriori informazioni su come massimizzare le prestazioni degli agenti di trasferimento, consulta le best practice per gli agenti.

Risoluzione dei problemi relativi agli errori dell'agente

Le seguenti sezioni descrivono come individuare e risolvere gli errori dell'agente di trasferimento:

Gli agenti non sono connessi

Se gli agenti di trasferimento non vengono visualizzati come connessi all'interno della console Google Cloud:

  1. Verifica che gli agenti possano connettersi alle API Cloud Storage:

    1. Esegui il comando seguente dalla stessa macchina dell'agente di trasferimento per verificare la connessione dell'agente alle API Cloud Storage:

      gsutil cp test.txt gs://my-bucket

      Sostituisci:

      my-bucket con il nome del bucket Cloud Storage.

  2. Se il progetto utilizza Controlli di servizio VPC, visualizza i log dell'agente per individuare eventuali errori. Se Controlli di servizio VPC non sono configurati correttamente, i log dell'agente INFO conterranno il seguente errore:

    Request is prohibited by organization's policy. vpcServiceControlsUniqueIdentifier: id

    In questo output:

Gli agenti sono connessi, ma i job non riescono

Se gli agenti vengono visualizzati come connessi ma i job di trasferimento non vanno a buon fine, controlla i dettagli dell'errore dei job non riusciti.