Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Comprendre le fonctionnement de la synchronisation
S3 Files synchronise automatiquement votre système de fichiers et le compartiment S3 associé. Les données que vous utilisez activement sont copiées dans le système de fichiers, ce qui vous permet de lire et d'écrire des fichiers à l'aide d'opérations de fichiers Linux standard à faible latence. S3 Files nécessite que la gestion des versions S3 soit activée sur le compartiment S3 lié. Lorsque vous modifiez des fichiers sur le système de fichiers, S3 Files copie vos modifications dans le compartiment S3 en tant que nouvelles versions des objets correspondants, en veillant à ce que les anciennes versions soient préservées. Lorsque d'autres applications ajoutent, modifient ou suppriment des objets dans votre compartiment S3, S3 Files reflète automatiquement ces modifications dans votre système de fichiers. Lorsqu'un conflit survient en raison de modifications simultanées apportées aux mêmes données à la fois dans le système de fichiers et dans le compartiment S3, S3 Files considère le compartiment S3 comme la source de vérité en cas de conflit.
Pour optimiser les coûts de stockage, S3 Files supprime les données que vous n'avez pas utilisées récemment du système de fichiers. Vos données restent stockées de manière durable dans le compartiment S3 associé et sont récupérées dans le système de fichiers la prochaine fois que vous y accédez.
Le compartiment S3 est accessible via le système de fichiers
Après avoir créé un système de fichiers S3, vous pouvez monter vos compartiments S3 sur des ressources de calcul et commencer à accéder immédiatement aux données de vos compartiments S3. Par défaut, lorsque vous accédez pour la première fois à un répertoire en répertoriant son contenu ou en y ouvrant un fichier, S3 Files importe les métadonnées de tous les fichiers de ce répertoire, ainsi que les données des fichiers dont la taille est inférieure au seuil d'importation (128 Ko par défaut) depuis le compartiment S3. Le premier accès à un répertoire peut présenter une latence plus élevée, mais les lectures et écritures suivantes sont nettement plus rapides. En important les métadonnées dès le départ, S3 Files vous permet de parcourir le contenu des répertoires, d'afficher la taille des fichiers et de vérifier les autorisations avec une faible latence.
Supposons, par exemple, que votre compartiment S3 contienne un préfixe data/images/ avec 1 000 objets. Lors de la première exécutionls /mnt/s3files/data/images/, S3 Files importe les métadonnées des 1 000 fichiers et copie de manière asynchrone les données des fichiers dont la taille est inférieure au seuil d'importation dans le système de fichiers. Cette liste initiale peut prendre plusieurs secondes, mais les commandes suivantes, telles que ls -lastat, ou cat relatives à des fichiers individuels de ce répertoire, sont renvoyées avec une faible latence.
Pour les fichiers dont la taille dépasse le seuil d'importation, S3 Files importe uniquement les métadonnées, tandis que les données ne sont pas copiées dans le système de fichiers et sont lues directement depuis le compartiment S3 lorsque vous y accédez. Vous pouvez ajuster ce seuil pour mieux l'adapter à votre charge de travail. Par exemple, vous pouvez l'augmenter pour importer plus de données à l'avance pour les charges de travail qui accèdent de manière répétée aux mêmes fichiers et bénéficient de lectures à faible latence. Pour les charges de travail qui diffusent des données de manière séquentielle, un seuil plus bas peut être plus rentable, car l'avantage de latence lié à l'importation de données en amont est moins significatif lorsque les données sont lues séquentiellement en gros morceaux plutôt que lors de petites lectures aléatoires. Pour de plus amples informations, veuillez consulter Personnalisation de la synchronisation pour les fichiers S3.
Les modifications apportées à votre système de fichiers sont automatiquement répercutées dans votre compartiment S3
Lorsque vous créez, modifiez ou supprimez des fichiers dans le système de fichiers, S3 Files copie automatiquement ces modifications dans votre compartiment S3. Les nouveaux fichiers deviennent de nouveaux objets S3, les modifications apportées à des fichiers existants deviennent de nouvelles versions d'objets et les fichiers supprimés deviennent des marqueurs de suppression S3.
Les autorisations POSIX que vous définissez sur les fichiers et les répertoires via le système de fichiers, telles que le propriétaire (UID), le groupe (GID) et les bits d'autorisation, sont stockées sous forme de métadonnées d'objet S3 définies par l'utilisateur sur les objets S3 correspondants. Lorsque vous modifiez les autorisations à l'aide de chmod chownchgrp, ou, S3 Files exporte ces modifications vers votre compartiment S3 avec toutes les modifications de données. Lorsque S3 Files importe des objets depuis votre compartiment S3, il lit ces métadonnées et applique les autorisations POSIX correspondantes sur le système de fichiers. Les objets qui ne disposent pas de métadonnées d'autorisation POSIX se voient attribuer des autorisations par défaut.
Lorsqu'un fichier est modifié dans le système de fichiers, S3 Files attend une période d'inactivité d'écriture (60 secondes) avant de réexporter ces modifications vers votre compartiment S3. Les écritures successives rapides dans le même fichier sont capturées dans une seule requête PUT S3 au lieu de générer plusieurs versions d'objets pour chaque modification individuelle. Cela réduit à la fois les coûts de vos requêtes S3 et les coûts de stockage. Vous pouvez utiliser cette fenêtre d'inactivité de 60 secondes comme déclencheur d'exportation. Par exemple, si votre application ajoute des données à un fichier toutes les 30 secondes pour un total de 5 minutes, S3 Files lance le processus d'exportation à la sixième minute. Si vous apportez des modifications supplémentaires, le processus se répète après chaque période de 60 secondes sans activité d'écriture.
Les modifications apportées à votre compartiment S3 apparaissent automatiquement dans votre système de fichiers
S3 Files surveille les modifications apportées à votre compartiment S3 à l'aide des notifications d'événements S3. Lorsqu'une autre application utilisant l'API S3 ajoute, modifie ou supprime des objets dans votre compartiment S3, S3 Files reflète automatiquement ces modifications dans le système de fichiers pour les fichiers dont les données sont actuellement stockées dans le stockage haute performance du système de fichiers. Les fichiers dont les données ont expiré depuis le système de fichiers ne sont pas mis à jour avant la prochaine fois que vous y accéderez, date à laquelle S3 Files extrait la dernière version du compartiment S3.
Comprendre l'impact des opérations de renommage et de déplacement
Amazon S3 utilise une structure de stockage plate dans laquelle les objets sont identifiés par leur nom de clé. Alors que S3 Files vous permet d'organiser vos données dans des répertoires, S3 n'a pas de concept natif de répertoires. Ce qui apparaît comme un répertoire dans votre système de fichiers est un préfixe commun partagé par les clés des objets du compartiment S3. De plus, les objets S3 sont immuables et ne prennent pas en charge les renommages atomiques. Par conséquent, lorsque vous renommez ou déplacez un fichier, S3 Files doit écrire les données dans un nouvel objet avec la clé mise à jour et supprimer l'original. Lorsque vous renommez ou déplacez un répertoire, S3 Files doit répéter ce processus pour chaque objet qui partage ce préfixe. Par conséquent, lorsque vous renommez ou déplacez un répertoire contenant des dizaines de millions de fichiers, les coûts de votre requête S3 et le temps de synchronisation augmentent considérablement.
S3 Files renvoie une erreur lorsque vous tentez de créer un système de fichiers limité à un préfixe contenant un grand nombre d'objets, de sorte qu'un changement de nom peut prendre jusqu'à 4 heures (environ 12 millions d'objets). Cette erreur vous indique que des opérations de renommage ou de déplacement récursives volumineuses peuvent avoir un impact sur les performances du système de fichiers, car chaque fichier nécessite des demandes d'écriture et de suppression distinctes dans votre compartiment S3. Si vous souhaitez toujours créer un système de fichiers limité à ce préfixe, vous pouvez ajouter le --AcceptBucketWarning paramètre.
Étant donné que S3 Files renomme les objets individuellement dans le compartiment S3, les deux répertoires seront visibles dans le compartiment S3 jusqu'à ce que le changement de nom soit complètement terminé. Les objets écrits après que le répertoire a été renommé mais avant que ce changement de nom ne soit complètement synchronisé ne seront pas déplacés. Pour simplifier le travail de réorganisation des données, nous vous recommandons de ne pas créer de nouveaux objets via le compartiment S3 lorsque vous renommez un répertoire correspondant.
Par exemple, si vous exécutezmv /mnt/s3files/projects/alpha /mnt/s3files/projects/beta, le changement de nom s'effectue instantanément sur le système de fichiers. Dans le compartiment S3, S3 Files commence à copier et à supprimer chaque objet vers sa nouvelle clé dans le compartiment S3 (en remplaçant le projects/alpha/ préfixe parprojects/beta/) et à supprimer l'original. Au cours de ce processus, le compartiment S3 contient temporairement des objets situés à la fois sous projects/alpha/ etprojects/beta/. Une fois que tous les objets ont été déplacés, il ne projects/beta/ reste plus qu'à le déplacer.
Les données non utilisées ont expiré du système de fichiers pour optimiser le stockage
S3 Files optimise les coûts de stockage en supprimant automatiquement du système de fichiers les données qui n'ont pas été lues récemment. Vos données restent stockées en toute sécurité dans votre compartiment S3. S3 Files supprime uniquement la copie du système de fichiers. Les métadonnées des fichiers, telles que les noms, les tailles et les autorisations, ne sont jamais supprimées du système de fichiers. Vous pouvez donc continuer à parcourir votre système de fichiers avec une faible latence.
Si un fichier de votre système de fichiers n'a pas été lu pendant 30 jours (configurable) et que ses modifications ont déjà été synchronisées avec le compartiment S3, S3 Files supprime les données du fichier du système de fichiers. La prochaine fois que vous lirez ce fichier, S3 Files récupère la dernière version de l'objet correspondant dans le compartiment S3 et la copie à nouveau dans le système de fichiers.
Supposons, par exemple, que vous traitiez un jeu de données /mnt/s3files/data/batch-jan.parquet en janvier et que vous n'y accédiez plus. Au bout de 30 jours, S3 Files supprime les données du système de fichiers. Le fichier apparaît toujours dans les listes de répertoires avec sa taille et ses autorisations correctes, mais les données ne figurent plus dans le système de fichiers. Lorsque vous relisez le fichier en avril, S3 Files le récupère depuis le compartiment S3 et le copie de nouveau dans le système de fichiers. La première lecture peut avoir une latence plus élevée, mais les lectures suivantes sont rapides.
Le compartiment S3 est la source de vérité en cas de conflit
Un conflit se produit lorsque le même fichier a été modifié via le système de fichiers et que l'objet S3 correspondant a également été modifié avant que S3 Files n'ait synchronisé les modifications du système de fichiers vers le compartiment S3. Par exemple, vous pouvez modifier un fichier via votre système de fichiers monté pendant qu'une autre application télécharge une nouvelle version de l'objet correspondant, ou le supprime, directement dans le compartiment S3 lié.
S3 Files détecte les conflits lorsqu'il tente de synchroniser les modifications de votre système de fichiers avec le compartiment S3 ou lorsqu'il reçoit une notification d'événement S3 indiquant que l'objet a été modifié. Votre compartiment S3 sert de stockage à long terme pour vos données. S3 Files considère donc le compartiment S3 comme la source de vérité en cas de conflit. Cela garantit une cohérence prévisible, en veillant à ce que la version de votre compartiment S3 soit toujours prioritaire. En cas de conflit, S3 Files déplace le fichier en conflit de son emplacement actuel dans votre système de fichiers vers un répertoire des objets trouvés et importe la dernière version du compartiment S3 lié dans le système de fichiers.
Supposons, par exemple, que vous modifiiez /mnt/s3files/report.csv via le système de fichiers. Avant que S3 Files ne synchronise vos modifications avec le compartiment S3, une autre application télécharge une nouvelle version report.csv directement dans le compartiment S3. Lorsque S3 Files détecte le conflit, il déplace votre version de report.csv vers le répertoire des objets trouvés et la remplace par la version du compartiment S3.
Le répertoire des objets trouvés se trouve dans le répertoire racine de votre système de fichiers sous le nom.s3files-lost+found-. Si vous montez votre système de fichiers via un point d'accès qui spécifie un répertoire racine, le répertoire des objets trouvés n'est pas visible depuis ce montage car il se trouve au-dessus du répertoire racine du point d'accès. Pour accéder au répertoire des objets trouvés, montez le système de fichiers sans point d'accès ou utilisez un point d'accès sans restriction de répertoire racine afin de pouvoir accéder à l'ensemble du système de fichiers via le point d'accès.file-system-id
Lorsque S3 Files déplace un fichier vers le répertoire des objets trouvés et perdus, le nom du fichier est précédé d'un identifiant afin de distinguer les différentes versions du même fichier susceptibles d'être déplacées au fil du temps. Les fichiers du répertoire des objets trouvés ne sont pas copiés dans votre compartiment S3. Vous pouvez supprimer et copier des fichiers de ce répertoire, mais vous ne pouvez pas déplacer ou renommer les fichiers qu'il contient, ni supprimer le répertoire lui-même. Si vous souhaitez conserver les modifications apportées à votre système de fichiers plutôt que la dernière version dans le compartiment S3, copiez le fichier depuis le répertoire des objets trouvés et perdus vers son chemin d'origine. Vous pouvez récupérer le chemin d'origine du fichier à partir des attributs étendus du fichier dans le répertoire des objets trouvés. S3 Files le copiera ensuite dans votre compartiment S3 en tant que nouvelle version de l'objet. Pour de plus amples informations, veuillez consulter Dépannage des fichiers S3.
Note
Les fichiers en conflit que S3 Files déplace vers le répertoire des objets trouvés y restent indéfiniment et sont pris en compte dans les coûts de stockage de votre système de fichiers. Vous devez supprimer les fichiers du répertoire des objets trouvés pour libérer de l'espace de stockage lorsqu'ils ne sont plus nécessaires.
Les paramètres de synchronisation par défaut fonctionneront pour la plupart des charges de travail pour un accès basé sur des fichiers à faible latence aux données S3. Pour plus de détails sur la configuration de ces paramètres, consultezPersonnalisation de la synchronisation pour les fichiers S3.