View a markdown version of this page

Problembehandlung bei S3-Dateien - Amazon Simple Storage Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Problembehandlung bei S3-Dateien

Auf dieser Seite können Sie häufig auftretende Probleme mit S3-Dateien diagnostizieren und lösen.

Der Mount-Befehl schlägt fehl

Der mount -t s3files Befehl schlägt mit einem Fehler fehl.

Häufige Ursachen und Maßnahmen:

  • „mount.s3files: Befehl nicht gefunden“ — Der S3 Files-Client (amazon-efs-utils) ist nicht installiert oder liegt unter Version 3.0.0. Installieren oder aktualisieren Sie den Client. Weitere Informationen finden Sie unter Voraussetzungen für S3-Dateien.

  • „Fehler beim Auflösen des DNS-Namens des Dateisystems“ — In der Availability Zone, in der Ihre EC2-Instance ausgeführt wird, gibt es kein Mount-Ziel. Erstellen Sie ein Mount-Ziel in dieser Availability Zone oder starten Sie Ihre Instance in einer Availability Zone, die über ein Mount-Ziel verfügt. Weitere Informationen finden Sie unter Erstellen von Bereitstellungszielen.

  • Verbindungstimeout — Die Sicherheitsgruppenkonfiguration lässt keinen NFS-Verkehr zu. Stellen Sie sicher, dass die Sicherheitsgruppe des Mount-Ziels eingehendes TCP auf Port 2049 von der Sicherheitsgruppe Ihrer Instance zulässt und dass die Sicherheitsgruppe Ihrer Instance ausgehendes TCP auf Port 2049 zur Sicherheitsgruppe des Mount-Ziels zulässt. Weitere Informationen finden Sie unter Voraussetzungen für S3-Dateien.

  • „Zugriff verweigert“ beim Mounten — Die Ihrer Rechenressource zugeordnete IAM-Rolle verfügt nicht über die erforderlichen S3 Files-Berechtigungen. Stellen Sie sicher, dass der Rolle die Richtlinie AmazonS3FilesClientFullAccess oder die AmazonS3FilesClientReadOnlyAccess verwaltete Richtlinie oder zumindest die s3files:ClientMount entsprechende Berechtigung zugewiesen wurde. Weitere Informationen finden Sie unter Voraussetzungen für S3-Dateien.

  • Botocore nicht installiert — Der Mount Helper benötigt Botocore, um mit Diensten zu interagieren. AWS Installieren Sie Botocore gemäß den Anweisungen in der README-Datei unter. amazon-efs-utils GitHub

Zugriff auf Dateioperationen verweigert

Sie können das Dateisystem mounten, erhalten aber beim Lesen, Schreiben oder Zugreifen auf Dateien die Fehlermeldung „Zugriff verweigert“ oder „Vorgang nicht erlaubt“.

Häufige Ursachen und Maßnahmen:

  • Fehlende Schreibberechtigung — Wenn Sie lesen, aber nicht schreiben können, stellen Sie sicher, dass die Ihrer Rechenressource zugeordnete IAM-Rolle die s3files:ClientWrite entsprechende Berechtigung enthält, oder fügen Sie die Richtlinie AmazonS3FilesClientReadWriteAccess oder die AmazonS3FilesClientFullAccess verwaltete Richtlinie hinzu. Weitere Informationen finden Sie unter AWS Verwaltete Richtlinien für Amazon S3 S3-Dateien.

  • Fehlender Root-Zugriff — Wenn Sie beim Zugriff auf Dateien, die Root gehören (UID 0), Berechtigungsfehler erhalten, verfügt Ihre IAM-Rolle möglicherweise nicht über die s3files:ClientRootAccess entsprechende Berechtigung. Ohne diese Berechtigung werden alle Operationen als anonymer NFS-Benutzer (normalerweise nfsnobody) ausgeführt, der möglicherweise keinen Zugriff auf die Dateien hat. Hängen Sie die AmazonS3FilesClientFullAccess verwaltete Richtlinie an oder fügen Sie s3files:ClientRootAccess sie Ihrer Richtlinie hinzu.

  • Dateisystemrichtlinie, die den Zugriff verweigert — Wenn Sie eine Dateisystemrichtlinie angehängt haben, stellen Sie sicher, dass diese nicht die Aktionen verweigert, die Ihre Kunden benötigen. Ein „Zulassen“ in der identitätsbasierten Richtlinie oder der Dateisystemrichtlinie reicht für den Zugriff aus. Weitere Informationen finden Sie unter So funktioniert S3 Files mit IAM.

  • Nichtübereinstimmung der POSIX-Berechtigungen — S3 Files erzwingt POSIX-Standardberechtigungen (Besitzer, Gruppe, andere) für Dateien und Verzeichnisse. Wenn Ihre Anwendung als Benutzer ausgeführt wird, der nicht dem Eigentümer oder der Gruppe der Datei entspricht, kann der Zugriff verweigert werden, selbst wenn die IAM-Berechtigungen korrekt sind. Verwenden Sie einen Zugriffspunkt, um UID/GID für alle Anfragen eine bestimmte Regel durchzusetzen. Weitere Informationen finden Sie unter Access Points für ein S3-Dateisystem erstellen.

Intelligentes Leserouting funktioniert nicht

S3 Files führt intelligentes Leserouting durch, indem es Leseanforderungen automatisch an die für sie am besten geeignete Speicherebene weiterleitet und dabei die vollständige Dateisystemsemantik einschließlich Konsistenz, Sperren und POSIX-Berechtigungen beibehält. Kleine, zufällige Lesevorgänge von aktiv verwendeten Dateien werden aus dem Hochleistungsspeicher bereitgestellt, um eine geringe Latenz zu gewährleisten. Große sequentielle Lese- und Lesevorgänge von Daten, die sich nicht im Dateisystem befinden, werden direkt von Ihrem S3-Bucket aus ausgeführt, um einen hohen Durchsatz zu gewährleisten, ohne dass für das Dateisystem Gebühren anfallen.

Intelligentes Lese-Routing funktioniert möglicherweise nicht, wenn eine der Client-Konnektivitätsmetriken (NFSConnectionAccessibleS3BucketAccessible, undS3BucketReachable) 0 anzeigt oder wenn Sie nicht den erwarteten Lesedurchsatz sehen.

Häufige Ursachen und Maßnahmen:

  • Fehlende S3-Inline-Richtlinie für die Rechenrolle — Die Ihrer Rechenressource zugeordnete IAM-Rolle muss eine Inline-Policy-Gewährung s3:GetObject für den verknüpften S3-Bucket beinhalten. s3:GetObjectVersion Ohne diese Richtlinie kann der Mount-Helper nicht direkt aus S3 lesen und alle Lesevorgänge werden über das Dateisystem abgewickelt. Weitere Informationen finden Sie unter Voraussetzungen für S3-Dateien.

  • S3-Bucket nicht erreichbar — Überprüfen Sie die S3BucketReachable Metrik. Wenn 0 angezeigt wird, stellen Sie sicher, dass Ihre Rechenressource Netzwerkzugriff auf S3 hat (z. B. über einen VPC-Endpunkt oder ein NAT-Gateway).

  • Datei wurde geändert — Lesevorgänge werden nur direkt von S3 aus bereitgestellt, wenn die Datei nicht über das Dateisystem geändert wurde. Wenn Sie in die Datei geschrieben haben und die Änderungen noch nicht mit S3 synchronisiert wurden, werden Lesevorgänge durch das Dateisystem geleitet, bis die Synchronisation abgeschlossen ist.

Das Dateisystem gibt durchweg einen NFS-Serverfehler zurück

Ein verschlüsseltes Dateisystem gibt ständig NFS-Serverfehler zurück. Diese Fehler können auftreten, wenn S3 Files Ihren KMS-Schlüssel aus einem der folgenden Gründe nicht von AWS KMS abrufen kann:

  • Der Schlüssel wurde deaktiviert.

  • Der Schlüssel wurde gelöscht.

  • Die Erlaubnis für S3 Files, den Schlüssel zu verwenden, wurde widerrufen.

  • AWS KMS ist vorübergehend nicht verfügbar.

Maßnahme

Vergewissern Sie sich zunächst, dass der AWS KMS-Schlüssel aktiviert ist. Sie können Ihre Schlüssel in der AWS KMS-Konsole einsehen. Weitere Informationen finden Sie unter Anzeigen von Schlüsseln im Entwicklerhandbuch für AWS Key Management Service.

Wenn der Schlüssel nicht aktiviert ist, aktivieren Sie ihn. Weitere Informationen finden Sie unter Aktivieren und Deaktivieren von Schlüsseln im Entwicklerhandbuch für AWS Key Management Service.

Wenn der Schlüssel noch gelöscht werden muss, brechen Sie den Löschvorgang ab und aktivieren Sie den Schlüssel erneut. Weitere Informationen finden Sie im Key Management Service Developer Guide unter Planen und Abbrechen der AWS Schlüssellöschung.

Wenn der Schlüssel aktiviert ist und Sie weiterhin Probleme haben, wenden Sie sich an den AWS Support.

Fehlendes Objekt im S3-Bucket nach dem Schreiben im Dateisystem

Sie haben eine Datei über das Dateisystem geschrieben und erwartet, dass sie als Objekt in Ihrem S3-Bucket erscheint, aber das Objekt ist nicht da. S3 Files stapelt Änderungen für etwa 60 Sekunden, bevor sie nach S3 kopiert werden. Wenn das Objekt immer noch nicht angezeigt wird, ist der Export möglicherweise fehlgeschlagen. In einem solchen Fall werden Sie feststellen, dass die FailedExports CloudWatch Metrik zunimmt.

Maßnahme

Überprüfen Sie den Exportstatus der Datei mithilfe erweiterter Attribute:

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

Der Zeitstempel im Attributnamen stellt sicher, dass Sie den neuesten Status erhalten. Beispielausgabe:

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

ExportErrorwird nicht angezeigt, wenn kein Exportfehler vorliegt. S3Keyist leer, wenn ein S3-Objekt nie mit der Datei verknüpft wurde.

In der folgenden Tabelle sind alle möglichen ExportError Werte aufgeführt:

Fehler Ursache
S3AccessDenied Die IAM-Rolle, von der S3 Files ausgeht, verfügt nicht über ausreichende Berechtigungen, um in den S3-Bucket zu schreiben. Weitere Informationen finden Sie unter Voraussetzungen für S3-Dateien.
S3BucketNotFound Der Quell-S3-Bucket ist nicht mehr vorhanden oder wurde umbenannt. Stellen Sie sicher, dass er in der erwarteten AWS Region und im erwarteten Konto vorhanden ist.
InternalError Es ist ein interner Systemfehler aufgetreten.
S3UserMetadataTooLarge Die Größenbeschränkung für S3-Benutzermetadaten wurde überschritten. Informationen Nicht unterstützte Funktionen, Beschränkungen und Kontingente zu diesen Grenzwerten finden Sie unter.
FileSizeExceedsS3Limit Die Dateigröße überschreitet die Größenbeschränkung für S3-Objekte. Informationen Nicht unterstützte Funktionen, Beschränkungen und Kontingente zu diesen Beschränkungen finden Sie unter.
EncryptionKeyInaccessible Auf den vom S3-Bucket verwendeten Verschlüsselungsschlüssel kann für S3-Dateien nicht zugegriffen werden. Gewähren Sie S3 Files Zugriff auf Ihren Verschlüsselungsschlüssel. Weitere Informationen finden Sie unter Verschlüsselung.
RoleAssumptionFailed Die Rolle konnte nicht übernommen werden. Überprüfen Sie Ihre Vertrauensrichtlinien. Weitere Informationen finden Sie unter Voraussetzungen für S3-Dateien.
KeyTooLongToBreakCycle S3-Dateien konnten eine zirkuläre Abhängigkeit nicht auflösen (z. B. aufgrund der Umbenennung von zwei Dateien in jeweils andere Namen), da der Dateipfad die S3-Schlüssellängenbeschränkung überschreitet. Kürzen Sie den Verzeichnispfad, um diesen Fehler zu beheben.
PathTooLong Ihr Dateipfad überschreitet die S3-Schlüssellängenbeschränkung. Informationen Nicht unterstützte Funktionen, Beschränkungen und Kontingente zu diesen Beschränkungen finden Sie unter.
DependencyExportFailed Bei einem übergeordneten Element oder einer Abhängigkeit ist ein Exportfehler aufgetreten, der nicht erneut versucht werden kann. Überprüfen Sie den Status des übergeordneten Elements oder aller Abhängigkeiten mithilfe von. getfattr
S3ObjectArchived Das S3-Objekt ist archiviert (S3 Glacier Flexible Retrieval oder S3 Glacier Deep Archive) und kann nicht gelesen werden. Stellen Sie das Objekt zuerst mit dem S3 APIs wieder her.

S3 Files wiederholt automatisch fehlgeschlagene Exporte. ExportErrorwird nur bei Fehlern angezeigt, die nicht erneut versucht werden können.

Dateien, die im Verzeichnis Lost and Found erscheinen

Dateien wurden in dem .s3files-lost+found-file-system-id Verzeichnis im Stammverzeichnis Ihres Dateisystems angezeigt. In diesem Fall sehen Sie einen Anstieg der LostAndFoundFiles CloudWatch Metrik. Dies tritt auf, wenn ein Synchronisationskonflikt auftritt. Ein Konflikt tritt auf, wenn dieselbe Datei im Dateisystem geändert wird und sich das entsprechende S3-Objekt ändert, bevor S3 Files die Dateisystemänderungen wieder mit S3 synchronisiert. S3 Files behandelt den S3-Bucket als Quelle der Wahrheit, verschiebt die widersprüchliche Datei in das Verzeichnis Lost and Found und importiert die neueste Version aus dem S3-Bucket in das Dateisystem.

Identifizieren von Dateien im Verzeichnis Lost and Found

Wenn S3 Files eine Datei in das Verzeichnis Lost and Found verschiebt, wird dem Dateinamen eine hexadezimale Kennung vorangestellt, um mehrere Versionen derselben Datei zu unterscheiden, die im Laufe der Zeit möglicherweise verschoben werden. Dateinamen, die länger als 100 Zeichen sind, werden gekürzt, um Platz für diesen Bezeichner zu schaffen. Der ursprüngliche Verzeichnispfad der Datei wird im Verzeichnis Lost and Found nicht beibehalten.

Maßnahme

Rufen Sie den ursprünglichen Pfad der Datei und den entsprechenden S3-Objektschlüssel ab:

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

Beispielausgabe:

S3Key: s3://bucket/prefix/report.csv FilePath: /data/report.csv
Feld Description
S3Key Vollständiger S3-Pfad des Objekts, das den Konflikt verursacht hat, oder leer, wenn das Objekt im S3-Bucket gelöscht wurde.
FilePath Relativer Pfad der Datei vor dem Konflikt.

Sie können dann entweder die neueste Version aus Ihrem S3-Bucket behalten und die Datei aus dem Verzeichnis Lost and Found löschen, oder Sie können die Datei aus dem Lost & Found-Verzeichnis zurück in ihren ursprünglichen Pfad kopieren, um die S3-Version zu überschreiben.

Anmerkung

Dateien im Verzeichnis Lost and Found verbleiben dort auf unbestimmte Zeit und werden auf die Speicherkosten Ihres Dateisystems angerechnet. Löschen Sie Dateien aus dem Verzeichnis Lost and Found, wenn sie nicht mehr benötigt werden.

Die Synchronisation gerät ins Hintertreffen

Die PendingExports CloudWatch Zahl wächst, was darauf hindeutet, dass Ihr Workload Änderungen schneller generiert, als S3 Files sie mit S3 synchronisieren kann.

Das bedeutet, dass Ihre Arbeitslast möglicherweise die Synchronisierungsrate überschreitet. S3 Files exportiert bis zu 800 Dateien pro Sekunde pro Dateisystem. Erwägen Sie, die Anzahl der Dateiänderungen zu reduzieren oder die Arbeit auf mehrere Dateisysteme zu verteilen. Überwachen Sie die PendingExports Metrik im Laufe der Zeit. Wenn sie sich stabilisiert oder abnimmt, holt S3 Files auf. Wenn es weiter wächst, wenden Sie sich an den AWS Support.

Debug-Logs für Clients aktivieren

Wenn Sie Probleme mit der Bereitstellung, der Konnektivität oder der Umgehung von Lesevorgängen beheben möchten, können Sie die Protokollierung auf Debug-Ebene auf dem S3 Files-Client aktivieren, um mehr Details zu erfassen.

Mounten Sie die Helper- und Watchdog-Protokolle

Bearbeiten /etc/amazon/efs/s3files-utils.conf und ändern Sie die Protokollierungsebene von INFO auf DEBUG:

[DEFAULT] logging_level = DEBUG

Hängen Sie das Dateisystem aus und hängen Sie es erneut ein, damit die Änderung wirksam wird:

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

Protokolle werden in geschrieben. /var/log/amazon/efs/ Das Mount Helper-Protokoll istmount.log.

Proxyprotokolle (efs-proxy)

Der Proxy verarbeitet den NFS-Verkehr und den S3-Lesebypass. Um die Debug-Protokollierung für den Proxy zu aktivieren, bearbeiten Sie: /etc/amazon/efs/s3files-utils.conf

[proxy] proxy_logging_level = DEBUG

Hängen Sie das Gerät aus und hängen Sie es erneut ein, damit die Änderung wirksam wird. Proxyprotokolle werden in geschrieben. /var/log/amazon/efs/

TLS-Tunnelprotokolle (Stunnel)

TLS-Tunnelprotokolle sind standardmäßig deaktiviert. Um sie zu aktivieren, bearbeiten /etc/amazon/efs/s3files-utils.conf und stellen Sie Folgendes ein:

[mount] stunnel_debug_enabled = true

Um alle Stunnel-Logs für ein Dateisystem in einer einzigen Datei zu speichern, entfernen Sie auch das Kommentarzeichen aus der stunnel_logs_file Zeile:

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

Größenbeschränkungen für Protokolle

Protokolldateien werden automatisch rotiert. Sie können die maximale Größe und Anzahl rotierter Dateien konfigurieren ins3files-utils.conf:

[DEFAULT] logging_max_bytes = 1048576 logging_file_count = 10

Die Standardeinstellung ist 1 MB pro Protokolldatei mit 10 rotierten Dateien, also maximal 10 MB pro Protokolltyp.

Logs mit dem AWS Support teilen

Wenn Sie sich an den AWS Support wenden, sammeln Sie die Client-Logs und die Konfiguration in einem einzigen Archiv:

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

Fügen /tmp/s3files-support-logs.tar.gz Sie es Ihrer Support-Anfrage bei.