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 utilizzati attivamente vengono copiati nel file system, in modo da poter leggere e scrivere file utilizzando le operazioni sui file standard di Linux a bassa latenza. S3 Files richiede che il versionamento S3 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 conservate. 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 a causa di 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 calcolo 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 di tutti i file in quella directory, insieme ai dati per i file inferiori alla soglia di dimensione di importazione (impostazione predefinita 128 KiB) dal bucket S3. Il primo accesso a una directory potrebbe avere una latenza più elevata, ma le letture e le scritture successive sono notevolmente più veloci. Importando i metadati in anticipo, S3 Files consente di sfogliare i contenuti 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/ La prima volta che si eseguels /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 dimensione di importazione nel file system. L'elenco iniziale può richiedere alcuni secondi, ma i comandi successivi, ad esempio, o cat sui singoli file di quella stat directoryls -la, vengono restituiti a bassa latenza.
Per i file di dimensioni superiori alla soglia di importazione, S3 Files importa solo 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 più dati in anticipo per i carichi di lavoro che accedono ripetutamente agli stessi file e beneficiano di 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 grandi blocchi 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 bucket S3. I nuovi file diventano nuovi oggetti S3, le modifiche ai file esistenti diventano nuove versioni degli oggetti e i file eliminati diventano indicatori di eliminazione S3.
Le autorizzazioni POSIX impostate su file e directory tramite il file system, ad esempio owner (UID), group (GID) e bit di autorizzazione, vengono archiviate come metadati degli oggetti S3 definiti dall'utente negli oggetti S3 corrispondenti. Quando modifichi le autorizzazioni utilizzandochmod, ochown, S3 Files esporta tali modifiche nel bucket S3 chgrp 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 dei metadati delle autorizzazioni POSIX vengono assegnate le autorizzazioni predefinite.
Quando un file viene modificato sul file system, S3 Files attende un periodo di inattività di scrittura (60 secondi) prima di esportare nuovamente le modifiche nel bucket S3. Le scritture rapide e successive sullo stesso file vengono acquisite in una singola richiesta PUT S3 anziché generare più versioni dell'oggetto per ogni singola modifica. Ciò riduce sia i costi delle richieste S3 che i costi di archiviazione. È possibile utilizzare questa finestra di inattività di 60 secondi come trigger di esportazione. Ad esempio, se l'applicazione aggiunge dati a un file ogni 30 secondi per un totale di 5 minuti, S3 Files avvia il processo di esportazione al minuto 6. Se si apportano ulteriori modifiche, il processo si ripete dopo ogni periodo di 60 secondi di inattività di scrittura.
Le modifiche nel bucket S3 vengono visualizzate automaticamente nel file system
S3 Files monitora le modifiche nel bucket S3 utilizzando le notifiche di 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 nella memoria ad alte prestazioni del file system. I file i cui dati sono scaduti dal file system non vengono aggiornati fino al successivo accesso, dopodiché S3 Files recupera la versione più recente 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. Mentre S3 Files consente 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 si rinomina o si sposta un file, S3 Files deve scrivere i dati su un nuovo oggetto con la chiave aggiornata ed eliminare l'originale. Quando si rinomina o si sposta una directory, S3 Files deve ripetere questo processo per ogni oggetto che condivide quel prefisso. Pertanto, quando si rinomina o si sposta una directory contenente decine di milioni di file, i costi delle richieste S3 e il tempo di sincronizzazione aumentano notevolmente.
S3 Files restituisce un errore quando si tenta di creare un file system con un prefisso con un numero elevato di oggetti, in modo tale che la ridenominazione possa richiedere fino a 4 ore (circa fino a 12 milioni di oggetti). Questo errore segnala che le 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 di quel prefisso, puoi aggiungere il parametro. --AcceptBucketWarning
Poiché S3 Files rinomina gli oggetti singolarmente nel bucket S3, entrambe le directory saranno visibili nel bucket S3 fino al completamento della ridenominazione. Gli oggetti scritti dopo che la directory è stata rinominata 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 immediatamente sul file system. Nel bucket S3, S3 Files inizia a copiare ed eliminare ogni oggetto nella 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 sia sotto che. 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 in modo da poter 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. Alla successiva lettura del file, S3 Files recupera l'ultima versione 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 nuovamente. Dopo 30 giorni, S3 Files rimuove i dati del file dal file system. Il file viene ancora visualizzato negli elenchi delle directory con le dimensioni e le autorizzazioni corrette, ma i dati non sono più presenti 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
Un conflitto si verifica quando lo stesso file è stato modificato tramite il file system e anche l'oggetto S3 corrispondente è cambiato prima che S3 Files abbia sincronizzato le modifiche al file system nel bucket S3. Ad esempio, è possibile modificare un file tramite il file system montato mentre un'altra applicazione carica una nuova versione dell'oggetto corrispondente, o la elimina, direttamente nel bucket S3 collegato.
S3 Files rileva i conflitti quando tenta di sincronizzare le modifiche apportate al file system nel 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 tuoi dati, quindi S3 Files considera il bucket S3 come fonte di verità in caso di conflitto. Ciò garantisce una coerenza prevedibile, assicurando che la versione nel bucket S3 abbia sempre la precedenza. In caso di conflitto, S3 Files sposta il file in conflitto dalla 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 nuovamente 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 tua versione nella directory degli oggetti smarriti e report.csv la sostituisce con la versione del bucket S3.
La directory degli oggetti smarriti si trova nella directory principale del file system con il nome. .s3files-lost+found- Se si monta il file system tramite un punto di accesso che specifica una directory principale, la directory smarrita non è visibile da quel mount perché si trova sopra la directory principale del punto di accesso. Per accedere alla directory smarrita, montate il file system senza un punto di accesso o utilizzate un punto di accesso senza una restrizione alla directory principale in modo da poter accedere all'intero ambito del file system tramite il punto di accesso.file-system-id
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 possono 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 al file system invece della versione più recente nel bucket S3, copia il file dalla directory oggetti smarriti nel percorso originale. Puoi recuperare il percorso originale del file dagli attributi estesi del file nella directory degli 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.
Nota
I file in conflitto che S3 Files sposta nella directory degli oggetti smarriti rimangono lì a tempo indeterminato e vengono conteggiati ai fini dei costi di archiviazione del file system. È necessario eliminare i file dalla directory 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 maggiori dettagli su come configurare questi parametri, consulta. Personalizzazione della sincronizzazione per i file S3