View a markdown version of this page

Comprendre le fonctionnement de la synchronisation - Amazon Simple Storage Service

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 lié. 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 avec une faible latence. S3 Files nécessite que le contrôle de version S3 soit activé 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 dans le système de fichiers et dans le compartiment S3, S3 Files traite le compartiment S3 comme source de vérité en cas de conflit.

Pour optimiser les coûts de stockage, S3 Files supprime du système de fichiers les données que vous n'avez pas utilisées récemment. Vos données restent stockées de manière durable dans le compartiment S3 lié 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 informatiques 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 listant 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) à partir du compartiment S3. Le premier accès à un répertoire peut avoir 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, de visualiser 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/ de 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 portant cat sur des fichiers individuels de ce répertoire, retournent avec une faible latence.

Pour les fichiers dont la taille est supérieure au 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 qu'il corresponde mieux à votre charge de travail. Par exemple, vous pouvez l'augmenter pour importer davantage 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 d'une faible latence de lecture. Pour les charges de travail qui diffusent des données de manière séquentielle, un seuil inférieur peut être plus rentable, car l'avantage de latence lié à l'importation initiale des données 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 ou chmod chownchgrp, 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 au système de fichiers. Les objets qui ne possèdent pas de métadonnées d'autorisation POSIX se voient attribuer des autorisations par défaut.

Lorsque vous modifiez un fichier dans le système de fichiers, S3 Files attend jusqu'à 60 secondes, agrégeant toutes les modifications successives apportées au fichier pendant cette période, avant de le copier dans votre compartiment S3. Cela signifie que les écritures successives rapides dans le même fichier sont capturées dans une seule requête PUT S3 plutôt que de générer une nouvelle version d'objet pour chaque modification individuelle, ce qui réduit les coûts de vos demandes S3 et les coûts de stockage. Si vous continuez à modifier le fichier une fois que S3 Files a recopié vos modifications dans le compartiment S3, il copiera les modifications suivantes selon les besoins.

Par exemple, si une application ouvre un fichier journal et y ajoute 50 ajouts en 30 secondes, S3 Files regroupe les 50 ajouts dans une seule requête S3 PUT. Si l'application continue d'écrire après la première synchronisation, S3 Files copie les modifications supplémentaires lors d'une synchronisation ultérieure.

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é du système de fichiers ne sont pas mis à jour avant votre prochain accès. S3 Files récupère alors la dernière version du compartiment S3.

Comprendre l'impact des opérations de renommage et de déménagement

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 aucun concept natif de répertoire. 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, le coût de votre demande 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 plus de 125 millions d'objets. Cette erreur vous avertit que des opérations de renommage ou de déplacement récursives de grande envergure 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 adressées à 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.

Comme S3 Files renomme les objets individuellement dans le compartiment S3, les deux répertoires seront visibles sur le compartiment S3 jusqu'à ce que le changement de nom soit complètement terminé. Les objets écrits après le changement de nom du répertoire 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 se termine instantanément dans 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 n'en projects/beta/ reste plus que.

Les données inutilisées sont supprimées 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 depuis 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 le copie de nouveau dans le système de fichiers.

Supposons, par exemple, que vous traitez un ensemble 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 fichier 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 du 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 changé avant que S3 Files n'ait resynchronisé les modifications du système de fichiers avec 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 changé. 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, garantissant que la version de votre compartiment S3 a toujours la priorité. 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 effectuez /mnt/s3files/report.csv des modifications via le système de fichiers. Avant que S3 Files ne synchronise à nouveau vos modifications dans le compartiment S3, une autre application télécharge une nouvelle version de 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-file-system-id. Lorsque S3 Files déplace un fichier vers le répertoire des objets trouvés, le nom du fichier est précédé d'un identifiant pour 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 des fichiers et copier des fichiers depuis 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 de 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 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 Résolution des problèmes liés aux 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 lorsqu'ils ne sont plus nécessaires.

Les paramètres de synchronisation par défaut fonctionnent pour la plupart des charges de travail pour un accès aux données S3 basé sur des fichiers à faible latence. Pour plus de détails sur la configuration de ces paramètres, consultezPersonnalisation de la synchronisation pour les fichiers S3.