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à.
Comprendere come funziona la sincronizzazione
S3 Files mantiene il file system e il bucket S3 collegato sincronizzati automaticamente. I dati che utilizzi attivamente vengono copiati nel file system, quindi puoi leggere e scrivere file utilizzando le operazioni standard di Linux sui file a bassa latenza. S3 Files richiede che S3 Versioning sia abilitato sul bucket S3 collegato. Quando modifichi i file sul file system, S3 Files copia le modifiche nel bucket S3 come nuove versioni degli oggetti corrispondenti, assicurandosi che le vecchie versioni vengano preservate. Quando altre applicazioni aggiungono, modificano o eliminano oggetti nel bucket S3, S3 Files riflette automaticamente tali modifiche nel file system. Quando si verifica un conflitto dovuto a modifiche simultanee agli stessi dati sia nel file system che nel bucket S3, S3 Files considera il bucket S3 come fonte di verità in caso di conflitti.
Per ottimizzare i costi di archiviazione, S3 Files rimuove dal file system i dati non utilizzati di recente. I dati rimangono archiviati in modo duraturo nel bucket S3 collegato e vengono recuperati nel file system al successivo accesso.
Il bucket S3 è accessibile tramite il file system
Dopo aver creato un file system S3, puoi montare i bucket S3 su risorse di elaborazione e iniziare subito ad accedere ai dati del bucket S3. Per impostazione predefinita, quando accedi per la prima volta a una directory elencandone il contenuto o aprendo un file al suo interno, S3 Files importa i metadati per tutti i file in quella directory, insieme ai dati per i file di dimensioni inferiori alla soglia di importazione (impostazione predefinita 128 KB) dal bucket S3. Il primo accesso a una directory potrebbe avere una latenza maggiore, ma le letture e le scritture successive sono notevolmente più veloci. Importando i metadati in anticipo, S3 Files consente di sfogliare il contenuto delle directory, visualizzare le dimensioni dei file e controllare le autorizzazioni a bassa latenza.
Ad esempio, supponiamo che il bucket S3 contenga un prefisso con 1.000 oggetti. data/images/ Alla prima esecuzionels /mnt/s3files/data/images/, S3 Files importa i metadati per tutti i 1.000 file e copia in modo asincrono i dati per i file al di sotto della soglia di importazione nel file system. Questo elenco iniziale può richiedere alcuni secondi, ma i comandi successivi, come o cat su singoli file in quella directory ls -lastat, vengono restituiti a bassa latenza.
Per i file di dimensioni superiori alla soglia di importazione, S3 Files importa solo i metadati, mentre i dati non vengono copiati nel file system e vengono invece letti direttamente dal bucket S3 quando vi si accede. Puoi modificare questa soglia per adattarla meglio al tuo carico di lavoro. Ad esempio, puoi aumentarla per importare in anticipo più dati per carichi di lavoro che accedono ripetutamente agli stessi file e traggono vantaggio da letture a bassa latenza. Per i carichi di lavoro che trasmettono dati in modo sequenziale, una soglia più bassa può essere più conveniente, poiché il vantaggio in termini di latenza derivante dall'importazione anticipata dei dati è meno significativo quando i dati vengono letti in sequenza in blocchi di grandi dimensioni anziché in piccole letture casuali. Per ulteriori informazioni, consulta Personalizzazione della sincronizzazione per i file S3.
Le modifiche al file system si riflettono automaticamente nel bucket S3
Quando crei, modifichi o elimini file nel file system, S3 Files copia automaticamente tali modifiche nel tuo bucket S3. I nuovi file diventano nuovi oggetti S3, le modifiche ai file esistenti diventano nuove versioni degli oggetti e i file eliminati diventano marcatori di eliminazione S3.
Le autorizzazioni POSIX impostate su file e directory tramite il file system, come proprietario (UID), gruppo (GID) e bit di autorizzazione, vengono archiviate come metadati degli oggetti S3 definiti dall'utente sugli oggetti S3 corrispondenti. Quando modifichi le autorizzazioni utilizzando o chmodchown, S3 Files esporta tali modifiche nel tuo chgrp bucket S3 insieme a qualsiasi modifica ai dati. Quando S3 Files importa oggetti dal bucket S3, legge questi metadati e applica le autorizzazioni POSIX corrispondenti sul file system. Agli oggetti che non dispongono di metadati di autorizzazione POSIX vengono assegnate autorizzazioni predefinite.
Quando modifichi un file nel file system, S3 Files attende fino a 60 secondi, aggregando tutte le modifiche successive al file in quel lasso di tempo, prima di copiarlo nel tuo bucket S3. Ciò significa che le scritture successive rapide sullo stesso file vengono acquisite in una singola richiesta S3 PUT anziché generare una nuova versione dell'oggetto per ogni singola modifica, riducendo i costi delle richieste S3 e i costi di archiviazione. Se continui a modificare il file dopo che S3 Files ha copiato le modifiche nel bucket S3, copierà le modifiche successive secondo necessità.
Ad esempio, se un'applicazione apre un file di registro e lo aggiunge 50 volte nell'arco di 30 secondi, S3 Files raggruppa tutti i 50 allegati in un'unica richiesta PUT S3. Se l'applicazione continua a scrivere dopo la prima sincronizzazione, S3 Files copia le modifiche aggiuntive in una sincronizzazione successiva.
Le modifiche nel bucket S3 vengono visualizzate automaticamente nel file system
S3 Files monitora le modifiche nel bucket S3 utilizzando le notifiche degli eventi S3. Quando un'altra applicazione che funziona con l'API S3 aggiunge, modifica o elimina oggetti nel bucket S3, S3 Files riflette automaticamente tali modifiche nel file system per i file i cui dati sono attualmente archiviati nello storage ad alte prestazioni del file system. I file i cui dati sono scaduti dal file system non vengono aggiornati fino al successivo accesso, a quel punto S3 Files recupera l'ultima versione dal bucket S3.
Comprendere l'impatto delle operazioni di ridenominazione e spostamento
Amazon S3 utilizza una struttura di storage piatta in cui gli oggetti sono identificati dai loro nomi chiave. Sebbene S3 Files ti consenta di organizzare i dati in directory, S3 non ha un concetto nativo di directory. Ciò che appare come una directory nel file system è un prefisso comune condiviso dalle chiavi degli oggetti all'interno del bucket S3. Inoltre, gli oggetti S3 sono immutabili e non supportano le ridenominazioni atomiche. Di conseguenza, quando rinomini o sposti un file, S3 Files deve scrivere i dati su un nuovo oggetto con la chiave aggiornata ed eliminare l'originale. Quando rinomini o sposti una directory, S3 Files deve ripetere questo processo per ogni oggetto che condivide quel prefisso. Pertanto, quando rinomini o sposti una directory contenente decine di milioni di file, i costi delle richieste S3 e il tempo di sincronizzazione aumentano in modo significativo.
S3 Files restituisce un errore quando si tenta di creare un file system con un prefisso con più di 125 milioni di oggetti. Questo errore ti avvisa che operazioni di ridenominazione o spostamento ricorsive di grandi dimensioni possono influire sulle prestazioni del file system, poiché ogni file richiede richieste di scrittura ed eliminazione separate nel bucket S3. Se desideri comunque creare un file system con ambito a quel prefisso, puoi aggiungere il parametro. --AcceptBucketWarning
Poiché S3 Files rinomina gli oggetti singolarmente nel bucket S3, entrambe le directory saranno visibili sul bucket S3 fino al completamento della ridenominazione. Gli oggetti scritti dopo la ridenominazione della directory ma prima che la ridenominazione sia completamente sincronizzata non verranno spostati. Per semplificare il lavoro di riorganizzazione dei dati, si consiglia di non creare nuovi oggetti tramite il bucket S3 durante la ridenominazione di una directory corrispondente.
Ad esempio, se eseguimv /mnt/s3files/projects/alpha /mnt/s3files/projects/beta, la ridenominazione viene completata istantaneamente sul file system. Nel bucket S3, S3 Files inizia a copiare ed eliminare ogni oggetto nella sua nuova chiave all'interno del bucket S3 (sostituendo il prefisso con) e a eliminare l'originale. projects/alpha/ projects/beta/ Durante questo processo, il bucket S3 contiene temporaneamente oggetti in entrambi e. projects/alpha/ projects/beta/ Una volta che tutti gli oggetti sono stati spostati, ne rimane solo projects/beta/ uno.
I dati non utilizzati vengono eliminati dal file system per ottimizzare l'archiviazione
S3 Files ottimizza i costi di archiviazione rimuovendo automaticamente dal file system i dati dei file che non sono stati letti di recente. I tuoi dati rimangono archiviati in modo sicuro nel tuo bucket S3. S3 Files rimuove solo la copia dal file system. I metadati dei file, come nomi, dimensioni e autorizzazioni, non vengono mai rimossi dal file system, quindi puoi continuare a navigare nel file system a bassa latenza.
Se un file nel file system non viene letto da 30 giorni (configurabile) e le relative modifiche sono già state sincronizzate nel bucket S3, S3 Files rimuove i dati del file dal file system. La prossima volta che leggi quel file, S3 Files recupera la versione più recente dell'oggetto corrispondente dal bucket S3 e la copia nuovamente nel file system.
Ad esempio, supponiamo di elaborare un set di dati /mnt/s3files/data/batch-jan.parquet a gennaio e di non accedervi più. Dopo 30 giorni, S3 Files rimuove i dati del file dal file system. Il file appare ancora negli elenchi delle directory con le dimensioni e le autorizzazioni corrette, ma i dati non si trovano più nel file system. Quando rileggi il file ad aprile, S3 Files lo recupera dal bucket S3 e lo copia nuovamente nel file system. La prima lettura può avere una latenza maggiore, ma le letture successive sono veloci.
Il bucket S3 è la fonte della verità in caso di conflitti
Si verifica un conflitto quando lo stesso file è stato modificato tramite il file system e anche l'oggetto S3 corrispondente è cambiato prima che S3 Files sincronizzasse le modifiche del file system nel bucket S3. Ad esempio, è possibile modificare un file tramite il file system montato mentre un'altra applicazione carica o elimina una nuova versione dell'oggetto corrispondente direttamente nel bucket S3 collegato.
S3 Files rileva i conflitti quando tenta di sincronizzare le modifiche del file system con il bucket S3 o quando riceve una notifica di evento S3 che indica che l'oggetto è cambiato. Il bucket S3 funge da archivio a lungo termine per i dati, quindi S3 Files considera il bucket S3 come fonte di verità in caso di conflitto. Ciò garantisce una coerenza prevedibile, garantendo che la versione nel bucket S3 abbia sempre la precedenza. In caso di conflitto, S3 Files sposta il file in conflitto dalla sua posizione corrente nel file system in una directory smarrita e importa la versione più recente dal bucket S3 collegato nel file system.
Ad esempio, supponiamo di modificare /mnt/s3files/report.csv tramite il file system. Prima che S3 Files sincronizzi le modifiche nel bucket S3, un'altra applicazione carica una nuova versione direttamente nel bucket S3. report.csv Quando S3 Files rileva il conflitto, sposta la versione di nella directory oggetti smarriti e report.csv la sostituisce con la versione del bucket S3.
La directory persa e trovata si trova nella directory principale del file system sotto il nome. .s3files-lost+found- Quando S3 Files sposta un file nella directory degli oggetti smarriti, aggiunge al nome del file un identificatore per distinguere più versioni dello stesso file che potrebbero essere spostate nel tempo. I file nella directory degli oggetti smarriti non vengono copiati nel bucket S3. È possibile eliminare file e copiare file da questa directory, ma non è possibile spostare o rinominare i file al suo interno o eliminare la directory stessa. Se desideri mantenere le modifiche apportate al file system anziché la versione più recente nel bucket S3, copia il file dalla directory degli oggetti smarriti nel percorso originale. Puoi recuperare il percorso originale del file dagli attributi estesi del file nella directory oggetti smarriti. S3 Files lo copierà quindi nel bucket S3 come nuova versione dell'oggetto. Per ulteriori informazioni, consulta Risoluzione dei problemi relativi ai file S3.file-system-id
Nota
I file in conflitto che S3 Files sposta nella directory Lost and Found rimangono lì a tempo indeterminato e vengono conteggiati ai fini dei costi di archiviazione del file system. È necessario eliminare i file dalla directory degli oggetti smarriti per liberare spazio di archiviazione quando non sono più necessari.
Le impostazioni di sincronizzazione predefinite funzioneranno per la maggior parte dei carichi di lavoro per l'accesso ai dati S3 a bassa latenza e basato su file. Per ulteriori dettagli su come configurare questi parametri, consulta. Personalizzazione della sincronizzazione per i file S3