View a markdown version of this page

Dépannage des fichiers S3 - 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.

Dépannage des fichiers S3

Cette page vous aide à diagnostiquer et à résoudre les problèmes courants liés aux fichiers S3.

La commande de montage échoue

La mount -t s3files commande échoue avec une erreur.

Causes et actions courantes :

  • « mount.s3files : commande introuvable » — Le client S3 Files (amazon-efs-utils) n'est pas installé ou est inférieur à la version 3.0.0. Installez ou mettez à niveau le client. Pour de plus amples informations, veuillez consulter Prérequis pour les fichiers S3.

  • « Impossible de résoudre le nom DNS du système de fichiers »  : il n'existe aucune cible de montage dans la zone de disponibilité où s'exécute votre instance EC2. Créez une cible de montage dans cette zone de disponibilité ou lancez votre instance dans une zone de disponibilité dotée d'une cible de montage. Pour de plus amples informations, veuillez consulter Création de cibles de montage.

  • Extinction du délai de connexion  : la configuration du groupe de sécurité n'autorise pas le trafic NFS. Vérifiez que le groupe de sécurité de la cible de montage autorise le TCP entrant sur le port 2049 depuis le groupe de sécurité de votre instance, et que le groupe de sécurité de votre instance autorise le TCP sortant sur le port 2049 vers le groupe de sécurité de la cible de montage. Pour de plus amples informations, veuillez consulter Prérequis pour les fichiers S3.

  • « Accès refusé » lors du montage  : le rôle IAM associé à votre ressource de calcul ne dispose pas des autorisations S3 Files requises. Vérifiez que le rôle est associé à la politique AmazonS3FilesClientFullAccess ou AmazonS3FilesClientReadOnlyAccess à la politique gérée, ou au moins à l's3files:ClientMountautorisation. Pour de plus amples informations, veuillez consulter Prérequis pour les fichiers S3.

  • botocore n'est pas installé — L'assistant de montage nécessite Botocore pour interagir avec les services. AWS Installez botocore en suivant les instructions du fichier README d'amazon-efs-utils sur. GitHub

Autorisation refusée pour les opérations sur les fichiers

Vous pouvez monter le système de fichiers mais recevoir des erreurs « Autorisation refusée » ou « Opération non autorisée » lors de la lecture, de l'écriture ou de l'accès à des fichiers.

Causes et actions courantes :

  • Autorisation d'écriture manquante  : si vous pouvez lire mais pas écrire, vérifiez que le rôle IAM associé à votre ressource de calcul inclut cette s3files:ClientWrite autorisation, ou associez la politique AmazonS3FilesClientReadWriteAccess ou la politique AmazonS3FilesClientFullAccess gérée. Pour plus d'informations, consultez les politiques AWS gérées pour Amazon S3 Files.

  • Accès root manquant  : si vous recevez des erreurs d'autorisation lors de l'accès à des fichiers appartenant à l'utilisateur root (UID 0), il est possible que votre rôle IAM ne dispose pas de cette autorisation. s3files:ClientRootAccess Sans cette autorisation, toutes les opérations sont effectuées en tant qu'utilisateur anonyme NFS (généralement nfsnobody), qui n'a peut-être pas accès aux fichiers. Joignez la politique AmazonS3FilesClientFullAccess gérée ou ajoutez-la s3files:ClientRootAccess à votre politique.

  • Politique de système de fichiers refusant l'accès — Si vous avez joint une politique de système de fichiers, vérifiez qu'elle ne refuse pas les actions dont vos clients ont besoin. Un « autoriser » dans la politique basée sur l'identité ou dans la politique du système de fichiers est suffisant pour l'accès. Pour de plus amples informations, veuillez consulter Comment S3 Files fonctionne avec IAM.

  • Incompatibilité des autorisations POSIX — S3 Files applique les autorisations POSIX standard (propriétaire, groupe, autres) sur les fichiers et les répertoires. Si votre application s'exécute en tant qu'utilisateur ne correspondant pas au propriétaire ou au groupe du fichier, l'accès peut être refusé même si les autorisations IAM sont correctes. Utilisez un point d'accès pour appliquer une spécification UID/GID pour toutes les demandes. Pour de plus amples informations, veuillez consulter Création de points d'accès pour un système de fichiers S3.

Le routage de lecture intelligent ne fonctionne pas

S3 Files effectue un routage de lecture intelligent en acheminant automatiquement les demandes de lecture vers la couche de stockage qui leur convient le mieux, tout en conservant la sémantique complète du système de fichiers, notamment la cohérence, le verrouillage et les autorisations POSIX. De petites lectures aléatoires de fichiers activement utilisés sont diffusées à partir du stockage haute performance pour une faible latence. Les lectures séquentielles volumineuses et les lectures de données ne figurant pas dans le système de fichiers sont effectuées directement depuis votre compartiment S3 pour un débit élevé, sans frais de données du système de fichiers.

Le routage de lecture intelligent peut ne pas fonctionner si l'une des mesures de connectivité du client (NFSConnectionAccessibleS3BucketAccessible, etS3BucketReachable) affiche 0, ou si vous n'obtenez pas le débit de lecture attendu.

Causes et actions courantes :

  • Politique en ligne S3 manquante sur le rôle de calcul — Le rôle IAM associé à votre ressource de calcul doit inclure une politique en ligne accordant s3:GetObject et s3:GetObjectVersion sur le compartiment S3 lié. Sans cette politique, l'assistant de montage ne peut pas lire directement depuis S3 et toutes les lectures passent par le système de fichiers. Pour de plus amples informations, veuillez consulter Prérequis pour les fichiers S3.

  • Le compartiment S3 n'est pas accessible — Vérifiez la S3BucketReachable métrique. S'il affiche 0, vérifiez que votre ressource de calcul dispose d'un accès réseau à S3 (par exemple, via un point de terminaison VPC ou une passerelle NAT).

  • Le fichier a été modifié  : les lectures ne sont effectuées directement depuis S3 que lorsque le fichier n'a pas été modifié via le système de fichiers. Si vous avez écrit dans le fichier et que les modifications n'ont pas encore été synchronisées avec S3, les lectures passent par le système de fichiers jusqu'à la fin de la synchronisation.

Le système de fichiers renvoie systématiquement une erreur de serveur NFS

Un système de fichiers chiffré renvoie systématiquement des erreurs de serveur NFS. Ces erreurs peuvent se produire lorsque S3 Files ne peut pas récupérer votre clé AWS KMS depuis KMS pour l'une des raisons suivantes :

  • La clé a été désactivée.

  • La clé a été supprimée.

  • L'autorisation accordée à S3 Files d'utiliser la clé a été révoquée.

  • AWS KMS est temporairement indisponible.

Action à exécuter

Tout d'abord, vérifiez que la clé AWS KMS est activée. Vous pouvez consulter vos clés dans la console AWS KMS. Pour plus d’informations, consultez Affichage des clés dans le Guide du développeur AWS Key Management Service.

Si la clé n’est pas activée, activez-la. Pour plus d’informations, consultez Activation et désactivation de clés dans le Guide du développeur AWS  Key Management Service.

Si la clé est en attente de suppression, annulez-la et réactivez-la. Pour plus d'informations, consultez la section Planification et annulation de la suppression des clés dans le Guide du développeur du service de gestion des AWS clés.

Si la clé est activée et que vous rencontrez toujours des problèmes, contactez le AWS support.

Objet manquant dans le compartiment S3 après l'écriture du système de fichiers

Vous avez écrit un fichier via le système de fichiers et vous vous attendiez à ce qu'il apparaisse en tant qu'objet dans votre compartiment S3, mais l'objet n'y figure pas. S3 Files attend une période d'inactivité d'écriture (60 secondes) avant d'exporter les modifications vers votre compartiment S3. Si l'objet n'apparaît toujours pas après cette période, l'exportation a peut-être échoué. Dans ce cas, vous constatez une augmentation de la FailedExports CloudWatch métrique.

Action à exécuter

Vérifiez l'état d'exportation du fichier à l'aide d'attributs étendus :

getfattr -n "user.s3files.status;$(date -u +%s)" missing-file.txt --only-values

L'horodatage figurant dans le nom de l'attribut vous permet d'obtenir le statut le plus récent. Exemple de sortie :

S3Key: s3://bucket/prefix/missing-file.txt ExportError: PathTooLong

ExportErrorne s'affiche pas s'il n'y a pas d'échec d'exportation. S3Keyest vide si aucun objet S3 n'a jamais été lié au fichier.

Le tableau suivant répertorie toutes les ExportError valeurs possibles :

Erreur Cause
S3AccessDenied Le rôle IAM assumé par S3 Files ne dispose pas des autorisations suffisantes pour écrire dans le compartiment S3. Pour de plus amples informations, veuillez consulter Prérequis pour les fichiers S3.
InternalError Une erreur système interne s'est produite.
S3UserMetadataTooLarge La limite de taille des métadonnées utilisateur S3 est dépassée. Voir Fonctionnalités, limites et quotas non pris en charge pour plus d'informations sur ces limites.
EncryptionKeyInaccessible La clé de chiffrement utilisée par le compartiment S3 n'est pas accessible aux fichiers S3. Autorisez S3 Files à accéder à votre clé de chiffrement. Pour de plus amples informations, veuillez consulter Chiffrement.
RoleAssumptionFailed Je n'ai pas pu assumer le rôle. Vérifiez vos politiques de confiance. Pour de plus amples informations, veuillez consulter Prérequis pour les fichiers S3.
KeyTooLongToBreakCycle S3 Files n'a pas pu résoudre une dépendance circulaire (par exemple, en raison du changement de nom de deux fichiers) car le chemin du fichier dépasse la limite de longueur de clé S3. Raccourcissez le chemin du répertoire pour résoudre cette erreur.
PathTooLong Le chemin de votre fichier dépasse la limite de longueur de clé S3. Voir Fonctionnalités, limites et quotas non pris en charge pour plus d'informations sur ces limites.
DependencyExportFailed Un parent ou une dépendance connaît un échec d'exportation non réessayable. Vérifiez l'état du parent ou de toute dépendance à l'aide degetfattr.
S3ObjectArchived L'objet S3 est archivé (S3 Glacier Flexible Retrieval ou S3 Glacier Deep Archive) et ne peut pas être lu. Restaurez d'abord l'objet à l'aide des API S3.

S3 Files réessaie automatiquement les exportations ayant échoué. ExportErrors'affiche uniquement pour les erreurs qui ne peuvent pas être réessayées.

L'objet S3 n'est pas visible dans le système de fichiers

Un objet existe dans votre compartiment S3 mais n'apparaît pas dans le système de fichiers. Le nom de la clé de l'objet peut ne pas correspondre à un chemin de fichier POSIX valide. S3 Files ne prend pas en charge l'accès aux noms de clé S3 avec des composants de chemin vides (foo//bar), à des composants de chemin relatifs (foo/./bar,foo/../bar), aux noms de clé contenant des octets nuls ou aux noms de clé dont l'un des composants de chemin dépasse 255 octets. Les objets dont les noms de clé sont incompatibles ne sont pas importés dans le système de fichiers.

Fichiers figurant dans le répertoire des objets trouvés

Les fichiers sont apparus dans le .s3files-lost+found-file-system-id répertoire du répertoire racine de votre système de fichiers. Dans ce cas, vous constatez une augmentation de la LostAndFoundFiles CloudWatch métrique. Cela se produit lorsqu'un conflit de synchronisation survient. Un conflit se produit lorsque le même fichier est modifié via le système de fichiers et que l'objet S3 correspondant change avant que S3 Files ne synchronise les modifications du système de fichiers vers S3. S3 Files considère le compartiment S3 comme source de vérité, déplace le fichier en conflit vers le répertoire des objets trouvés et importe la dernière version du compartiment S3 dans le système de fichiers.

Identification des fichiers dans le répertoire des objets trouvés

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 hexadécimal pour distinguer les différentes versions du même fichier susceptibles d'être déplacées au fil du temps. Les noms de fichiers de plus de 100 caractères sont tronqués pour faire de la place pour cet identifiant. Le chemin du répertoire d'origine du fichier n'est pas conservé dans le répertoire des objets trouvés.

Action à exécuter

Obtenez le chemin d'origine du fichier et la clé d'objet S3 correspondante :

getfattr -n "user.s3files.status;$(date -u +%s)" .s3files-lost+found-fs-12345678/abcdef1234_report.csv --only-values

Exemple de sortie :

S3Key: s3://bucket/prefix/report.csv FilePath: /data/report.csv
Champ Description
S3Key Chemin S3 complet de l'objet à l'origine du conflit, ou vide si l'objet a été supprimé dans le compartiment S3.
FilePath Chemin relatif du fichier avant le conflit.

Vous pouvez ensuite soit conserver la dernière version de votre compartiment S3 et supprimer le fichier du répertoire des objets trouvés, soit copier le fichier du répertoire des objets trouvés vers son chemin d'origine pour remplacer la version S3.

Note

Les fichiers du 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. Supprimez les fichiers du répertoire des objets trouvés lorsqu'ils ne sont plus nécessaires.

La synchronisation prend du retard

La PendingExports CloudWatch métrique augmente, ce qui indique que votre charge de travail génère des modifications plus rapidement que S3 Files ne peut les synchroniser avec S3.

Cela signifie que votre charge de travail dépasse peut-être le taux de synchronisation. S3 Files exporte jusqu'à 800 fichiers par seconde et par système de fichiers. Envisagez de réduire le taux de modification des fichiers ou de répartir le travail sur plusieurs systèmes de fichiers. Surveillez la PendingExports métrique au fil du temps. S'il se stabilise ou diminue, S3 Files rattrape son retard. S'il continue de croître, contactez le AWS support.

Activation des journaux de débogage des clients

Si vous êtes en train de résoudre des problèmes de montage, de connectivité ou de contournement de lecture, vous pouvez activer la journalisation au niveau du débogage sur le client S3 Files pour obtenir plus de détails.

Logs d'assistance au montage et de surveillance

Modifiez /etc/amazon/efs/s3files-utils.conf et changez le niveau de journalisation de INFO à DEBUG :

[DEFAULT] logging_level = DEBUG

Démontez et remontez le système de fichiers pour que la modification soit prise en compte :

sudo umount /mnt/s3files sudo mount -t s3files file-system-id:/ /mnt/s3files

Les journaux sont écrits dans/var/log/amazon/efs/. Le journal d'assistance au montage estmount.log.

Journaux du proxy (efs-proxy)

Le proxy gère le trafic NFS et le contournement de lecture S3. Pour activer la journalisation du débogage pour le proxy, modifiez /etc/amazon/efs/s3files-utils.conf :

[proxy] proxy_logging_level = DEBUG

Démontez et remontez pour que la modification prenne effet. Les journaux du proxy sont écrits dans/var/log/amazon/efs/.

Journaux du tunnel TLS (stunnel)

Les journaux du tunnel TLS sont désactivés par défaut. Pour les activer, modifiez /etc/amazon/efs/s3files-utils.conf et définissez les paramètres suivants :

[mount] stunnel_debug_enabled = true

Pour enregistrer tous les journaux de tunnel d'un système de fichiers dans un seul fichier, supprimez également les commentaires de la stunnel_logs_file ligne :

stunnel_logs_file = /var/log/amazon/efs/{fs_id}.stunnel.log

Limites de taille des journaux

Les fichiers journaux font l'objet d'une rotation automatique. Vous pouvez configurer la taille maximale et le nombre de fichiers pivotés dans s3files-utils.conf :

[DEFAULT] logging_max_bytes = 1048576 logging_file_count = 10

La valeur par défaut est de 1 Mo par fichier journal avec 10 fichiers pivotés, pour un maximum de 10 Mo par type de journal.

Partage de journaux avec AWS le support

Lorsque vous contactez le AWS support, collectez les journaux et la configuration du client dans une archive unique :

sudo tar -czf /tmp/s3files-support-logs.tar.gz \ /var/log/amazon/efs/ \ /etc/amazon/efs/s3files-utils.conf

/tmp/s3files-support-logs.tar.gzInclus dans votre étui de support.