Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Risoluzione dei problemi relativi ai file S3
Questa pagina consente di diagnosticare e risolvere i problemi più comuni relativi ai file S3.
Il comando Mount non riesce
Il mount -t s3files comando ha esito negativo e genera un errore.
Cause e azioni comuni:
«mount.s3files: command not found» — Il client S3 Files (amazon-efs-utils) non è installato o è inferiore alla versione 3.0.0. Installa o aggiorna il client. Per ulteriori informazioni, consulta Prerequisiti per i file S3.
«Risoluzione del nome DNS del file system non riuscita»: non esiste un target di montaggio nella zona di disponibilità in cui è in esecuzione l'istanza EC2. Crea un target di montaggio in quella zona di disponibilità o avvia l'istanza in una zona di disponibilità con un target di montaggio. Per ulteriori informazioni, consulta Creazione di destinazioni di montaggio.
Connessione scaduta: la configurazione del gruppo di sicurezza non consente il traffico NFS. Verifica che il gruppo di sicurezza del target di montaggio consenta il TCP in ingresso sulla porta 2049 dal gruppo di sicurezza della tua istanza e che il gruppo di sicurezza della tua istanza consenta il TCP in uscita sulla porta 2049 al gruppo di sicurezza del target di montaggio. Per ulteriori informazioni, consulta Prerequisiti per i file S3.
«Accesso negato» durante il montaggio: il ruolo IAM associato alla risorsa di calcolo non dispone delle autorizzazioni S3 Files richieste. Verifica che al ruolo sia associata la policy
AmazonS3FilesClientFullAccessoAmazonS3FilesClientReadOnlyAccessgestita, o almeno l'autorizzazione.s3files:ClientMountPer ulteriori informazioni, consulta Prerequisiti per i file S3.botocore non installato: il mount helper richiede botocore per interagire con i servizi. AWS Installa botocore seguendo le istruzioni nel README di amazon-efs-utils on. GitHub
Autorizzazione negata per le operazioni sui file
È possibile montare il file system ma ricevere gli errori «Autorizzazione negata» o «Operazione non consentita» durante la lettura, la scrittura o l'accesso ai file.
Cause e azioni comuni:
Autorizzazione di scrittura mancante: se sai leggere ma non scrivere, verifica che il ruolo IAM associato alla tua risorsa di calcolo includa l'
s3files:ClientWriteautorizzazione oppure allega la policyAmazonS3FilesClientReadWriteAccessoAmazonS3FilesClientFullAccessgestita. Per ulteriori informazioni, consulta le politiche AWS gestite per i file Amazon S3.Accesso root mancante: se ricevi errori di autorizzazione durante l'accesso ai file di proprietà di root (UID 0), il tuo ruolo IAM potrebbe non disporre dell'
s3files:ClientRootAccessautorizzazione. Senza questa autorizzazione, tutte le operazioni vengono eseguite come utente anonimo NFS (in genere nfsnobody), che potrebbe non avere accesso ai file. Allega la policyAmazonS3FilesClientFullAccessgestita o aggiungilas3files:ClientRootAccessalla tua policy.Politica del file system che nega l'accesso: se hai allegato una politica del file system, verifica che non neghi le azioni necessarie ai tuoi clienti. Un «consenti» nella policy basata sull'identità o nella policy del file system è sufficiente per l'accesso. Per ulteriori informazioni, consulta Come funziona S3 Files con IAM.
Mancata corrispondenza delle autorizzazioni POSIX: S3 Files applica le autorizzazioni POSIX standard (proprietario, gruppo, altri) su file e directory. Se l'applicazione viene eseguita come utente che non corrisponde al proprietario o al gruppo del file, l'accesso potrebbe essere negato anche se le autorizzazioni IAM sono corrette. Utilizza un punto di accesso per imporre uno specifico UID/GID per tutte le richieste. Per ulteriori informazioni, consulta Creazione di punti di accesso per un file system S3.
Il routing di lettura intelligente non funziona
S3 Files esegue un routing di lettura intelligente poiché indirizza automaticamente le richieste di lettura al livello di archiviazione più adatto a loro, mantenendo al contempo la semantica completa del file system, tra cui coerenza, blocco e autorizzazioni POSIX. Le piccole letture casuali dei file utilizzati attivamente vengono eseguite dallo storage ad alte prestazioni per una bassa latenza. Le letture sequenziali di grandi dimensioni e le letture di dati non presenti nel file system vengono eseguite direttamente dal bucket S3 per un throughput elevato, senza alcun costo per i dati del file system.
Il routing di lettura intelligente potrebbe non funzionare se una delle metriche di connettività del client (NFSConnectionAccessible,S3BucketAccessible, eS3BucketReachable) mostra 0 o se non viene visualizzata la velocità di lettura prevista.
Cause e azioni comuni:
Politica in linea S3 mancante sul ruolo di elaborazione: il ruolo IAM associato alla risorsa di elaborazione deve includere una concessione di policy in linea
s3:GetObjectes3:GetObjectVersionsul bucket S3 collegato. Senza questa policy, il mount helper non può leggere direttamente da S3 e tutte le letture passano attraverso il file system. Per ulteriori informazioni, consulta Prerequisiti per i file S3.Secchio S3 non raggiungibile: controlla la metrica.
S3BucketReachableSe mostra 0, verifica che la tua risorsa di calcolo abbia accesso alla rete a S3 (ad esempio, tramite un endpoint VPC o un gateway NAT).Il file è stato modificato: le letture vengono effettuate direttamente da S3 solo quando il file non è stato modificato tramite il file system. Se avete scritto sul file e le modifiche non sono ancora state sincronizzate con S3, le letture vengono eseguite nel file system fino al completamento della sincronizzazione.
Il file system restituisce costantemente un errore del server NFS
Un file system crittografato restituisce regolarmente errori del server NFS. Questi errori possono verificarsi quando S3 Files non è in grado di recuperare la chiave KMS da AWS KMS per uno dei seguenti motivi:
La chiave è stata disabilitata.
La chiave è stata eliminata.
L'autorizzazione per S3 Files di utilizzare la chiave è stata revocata.
AWS KMS è temporaneamente non disponibile.
Operazione da eseguire
Innanzitutto, conferma che la chiave AWS KMS sia abilitata. Puoi visualizzare le tue chiavi nella console AWS KMS. Per ulteriori informazioni, consulta Visualizzazione di chiavi nella Guida per gli sviluppatori del Servizio AWS di gestione delle chiavi.
Se la chiave non è abilitato, abilitarla. Per ulteriori informazioni, consulta Abilitazione e disabilitazione delle chiavi nella Guida per gli sviluppatori del Servizio AWS di gestione delle chiavi.
Se la chiave è in attesa di cancellazione, annulla l'eliminazione e riattiva la chiave. Per ulteriori informazioni, vedere Pianificazione e annullamento dell'eliminazione delle chiavi nella Key Management Service Developer Guide. AWS
Se la chiave è abilitata e i problemi persistono, contatta l'assistenza. AWS
Oggetto mancante nel bucket S3 dopo la scrittura del file system
Hai scritto un file tramite il file system e ti aspettavi che apparisse come oggetto nel bucket S3, ma l'oggetto non è presente. S3 Files attende un periodo di inattività di scrittura (60 secondi) prima di esportare nuovamente le modifiche nel bucket S3. Se l'oggetto continua a non apparire dopo questo periodo, l'esportazione potrebbe non essere riuscita. In tal caso, viene visualizzato l'aumento della FailedExports CloudWatch metrica.
Operazione da eseguire
Controlla lo stato di esportazione del file utilizzando gli attributi estesi:
getfattr -n "user.s3files.status;$(date -u +%s)" missing-file.txt --only-values
Il timestamp nel nome dell'attributo ti assicura di ottenere lo stato più recente. Output di esempio:
S3Key: s3://bucket/prefix/missing-file.txt ExportError: PathTooLong
ExportErrornon viene visualizzato se non si verifica un errore di esportazione. S3Keyè vuoto se un oggetto S3 non è mai stato collegato al file.
La tabella seguente elenca tutti i ExportError valori possibili:
| Errore | Causa |
|---|---|
S3AccessDenied |
Il ruolo IAM che S3 Files assume non dispone di autorizzazioni sufficienti per scrivere nel bucket S3. Per ulteriori informazioni, consulta Prerequisiti per i file S3. |
InternalError |
Si è verificato un errore interno del sistema. |
S3UserMetadataTooLarge |
È stato superato il limite di dimensione dei metadati utente S3. Funzionalità, limiti e quote non supportatiPer informazioni su questi limiti, consulta. |
EncryptionKeyInaccessible |
La chiave di crittografia utilizzata dal bucket S3 non è accessibile ai file S3. Concedi a S3 Files l'accesso alla tua chiave di crittografia. Per ulteriori informazioni, consulta Encryption (Crittografia). |
RoleAssumptionFailed |
Non ho potuto assumere il ruolo. Controlla le tue politiche di fiducia. Per ulteriori informazioni, consulta Prerequisiti per i file S3. |
KeyTooLongToBreakCycle |
S3 Files non è riuscito a risolvere una dipendenza circolare (ad esempio, a causa della ridenominazione di due file con i rispettivi nomi) perché il percorso del file supera il limite di lunghezza della chiave S3. Abbreviate il percorso della directory per risolvere questo errore. |
PathTooLong |
Il percorso del file supera il limite di lunghezza della chiave S3. Funzionalità, limiti e quote non supportatiPer informazioni su questi limiti, consulta. |
DependencyExportFailed |
Un elemento principale o una dipendenza presenta un errore di esportazione non ripetibile. Controlla lo stato del genitore o di eventuali dipendenze utilizzando. getfattr |
S3ObjectArchived |
L'oggetto S3 è archiviato (S3 Glacier Flexible Retrieval o S3 Glacier Deep Archive) e non può essere letto. Ripristina prima l'oggetto utilizzando le API S3. |
S3 Files riprova automaticamente le esportazioni non riuscite. ExportErrorviene visualizzato solo per gli errori non ripetibili.
Oggetto S3 non visibile nel file system
Un oggetto esiste nel bucket S3 ma non appare nel file system. Il nome della chiave dell'oggetto potrebbe non corrispondere a un percorso di file POSIX valido. S3 Files non supporta l'accesso ai nomi di chiave S3 con componenti di percorso vuoti (foo//bar), componenti di percorso relativo (foo/./bar,foo/../bar), nomi di chiave contenenti byte nulli o nomi di chiave in cui qualsiasi componente di percorso supera i 255 byte. Gli oggetti con nomi di chiave incompatibili non vengono importati nel file system.
File che appaiono nella directory oggetti smarriti
I file sono stati visualizzati nella .s3files-lost+found- directory principale del file system. In questo caso, si vede l'aumento della file-system-idLostAndFoundFiles CloudWatch metrica. Ciò si verifica quando si verifica un conflitto di sincronizzazione. Si verifica un conflitto quando lo stesso file viene modificato tramite il file system e l'oggetto S3 corrispondente cambia prima che S3 Files sincronizzi le modifiche del file system con S3. S3 Files considera il bucket S3 come fonte di verità, sposta il file in conflitto nella directory degli oggetti smarriti e importa la versione più recente dal bucket S3 nel file system.
Identificazione dei file nella directory degli oggetti smarriti
Quando S3 Files sposta un file nella directory degli oggetti smarriti, aggiunge al nome del file un identificatore esadecimale per distinguere più versioni dello stesso file che possono essere spostate nel tempo. I nomi di file più lunghi di 100 caratteri vengono troncati per fare spazio a questo identificatore. Il percorso della directory originale del file non viene conservato nella directory degli oggetti smarriti.
Operazione da eseguire
Ottieni il percorso originale del file e la chiave oggetto S3 corrispondente:
getfattr -n "user.s3files.status;$(date -u +%s)" .s3files-lost+found-fs-12345678/abcdef1234_report.csv--only-values
Output di esempio:
S3Key: s3://bucket/prefix/report.csv FilePath: /data/report.csv
| Campo | Description |
|---|---|
S3Key |
Percorso S3 completo dell'oggetto che ha causato il conflitto o vuoto se l'oggetto è stato eliminato nel bucket S3. |
FilePath |
Percorso relativo del file prima del conflitto. |
È quindi possibile conservare la versione più recente dal bucket S3 ed eliminare il file dalla directory oggetti smarriti oppure copiare il file dalla directory oggetti smarriti nel percorso originale per sovrascrivere la versione S3.
Nota
I file nella directory degli oggetti smarriti rimangono lì a tempo indeterminato e vengono conteggiati ai fini dei costi di archiviazione del file system. Elimina i file dalla directory oggetti smarriti quando non sono più necessari.
La sincronizzazione è in ritardo
La PendingExports CloudWatch metrica è in aumento, a indicare che il carico di lavoro sta generando modifiche più velocemente di quanto S3 Files sia in grado di sincronizzarle con S3.
Ciò significa che il carico di lavoro potrebbe superare la velocità di sincronizzazione. S3 Files esporta fino a 800 file al secondo per file system. Valuta la possibilità di ridurre il tasso di modifiche ai file o di distribuire il lavoro su più file system. Monitora la PendingExports metrica nel tempo. Se si stabilizza o diminuisce, S3 Files sta recuperando terreno. Se continua a crescere, contatta l'assistenza. AWS
Attivazione dei log di debug dei client
Se stai risolvendo problemi di montaggio, connettività o bypass di lettura, puoi abilitare la registrazione a livello di debug sul client S3 Files per acquisire maggiori dettagli.
Mount helper e watchdog logs
Modifica /etc/amazon/efs/s3files-utils.conf e cambia il livello di registrazione da INFO a DEBUG:
[DEFAULT] logging_level = DEBUG
Smonta e rimonta il file system affinché la modifica abbia effetto:
sudo umount /mnt/s3files sudo mount -t s3filesfile-system-id:/ /mnt/s3files
I log vengono scritti su. /var/log/amazon/efs/ Il log di mount helper èmount.log.
Log del proxy (efs-proxy)
Il proxy gestisce il traffico NFS e il bypass di lettura S3. Per abilitare la registrazione di debug per il proxy, modifica: /etc/amazon/efs/s3files-utils.conf
[proxy] proxy_logging_level = DEBUG
Smonta e rimonta per rendere effettiva la modifica. I log dei proxy vengono scritti su. /var/log/amazon/efs/
Log del tunnel TLS (stunnel)
I log del tunnel TLS sono disabilitati per impostazione predefinita. Per abilitarli, modifica /etc/amazon/efs/s3files-utils.conf e imposta quanto segue:
[mount] stunnel_debug_enabled = true
Per salvare tutti i log degli stunnel di un file system in un unico file, decommentate anche la stunnel_logs_file riga:
stunnel_logs_file = /var/log/amazon/efs/{fs_id}.stunnel.log
Limiti alle dimensioni dei log
I file di registro vengono ruotati automaticamente. È possibile configurare la dimensione e il numero massimi di file ruotati in: s3files-utils.conf
[DEFAULT] logging_max_bytes = 1048576 logging_file_count = 10
L'impostazione predefinita è 1 MB per file di registro con 10 file ruotati, per un massimo di 10 MB per tipo di registro.
Condivisione dei log con l'assistenza AWS
Quando contatti l' AWS assistenza, raccogli i log e la configurazione del cliente in un unico archivio:
sudo tar -czf /tmp/s3files-support-logs.tar.gz \ /var/log/amazon/efs/ \ /etc/amazon/efs/s3files-utils.conf
/tmp/s3files-support-logs.tar.gzIncludilo nella tua richiesta di assistenza.