View a markdown version of this page

Memecahkan Masalah File S3 - Amazon Simple Storage Service

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Memecahkan Masalah File S3

Halaman ini membantu Anda mendiagnosis dan menyelesaikan masalah umum dengan File S3.

Perintah mount gagal

Per mount -t s3files intah gagal dengan kesalahan.

Penyebab dan tindakan umum:

  • “mount.s3files: perintah tidak ditemukan” - Klien File S3 (amazon-efs-utils) tidak diinstal atau di bawah versi 3.0.0. Instal atau upgrade klien. Untuk informasi selengkapnya, lihat Prasyarat untuk File S3.

  • “Gagal menyelesaikan nama DNS sistem file” — Tidak ada target pemasangan di Zona Ketersediaan tempat instans EC2 Anda berjalan. Buat target pemasangan di Zona Ketersediaan tersebut, atau luncurkan instans Anda di Zona Ketersediaan yang memiliki target pemasangan. Untuk informasi selengkapnya, lihat Pembuatan target pemasangan.

  • Waktu koneksi habis — Konfigurasi grup keamanan tidak mengizinkan lalu lintas NFS. Pastikan grup keamanan target mount mengizinkan TCP masuk pada port 2049 dari grup keamanan instans Anda, dan grup keamanan instans Anda mengizinkan TCP keluar pada port 2049 ke grup keamanan target mount. Untuk informasi selengkapnya, lihat Prasyarat untuk File S3.

  • “Akses ditolak” selama pemasangan — Peran IAM yang dilampirkan ke sumber daya komputasi Anda tidak memiliki izin File S3 yang diperlukan. Verifikasi bahwa peran memiliki kebijakan AmazonS3FilesClientFullAccess atau ter AmazonS3FilesClientReadOnlyAccess kelola yang dilampirkan, atau setidaknya s3files:ClientMount izin. Untuk informasi selengkapnya, lihat Prasyarat untuk File S3.

  • botocore tidak diinstal - Pembantu pemasangan membutuhkan botocore untuk berinteraksi dengan layanan. AWS Instal botocore mengikuti instruksi di amazon-efs-utils README pada. GitHub

Izin ditolak pada operasi file

Anda dapat memasang sistem file tetapi menerima kesalahan “Izin ditolak” atau “Operasi tidak diizinkan” saat membaca, menulis, atau mengakses file.

Penyebab dan tindakan umum:

  • Izin menulis hilang — Jika Anda dapat membaca tetapi tidak menulis, verifikasi bahwa peran IAM yang dilampirkan ke sumber daya komputasi Anda menyertakan s3files:ClientWrite izin, atau lampirkan kebijakan atau terkel AmazonS3FilesClientReadWriteAccess AmazonS3FilesClientFullAccess ola. Untuk informasi selengkapnya, lihat AWS kebijakan terkelola untuk File Amazon S3.

  • Akses root hilang — Jika Anda menerima kesalahan izin saat mengakses file yang dimiliki oleh root (UID 0), peran IAM Anda mungkin tidak memiliki izin. s3files:ClientRootAccess Tanpa izin ini, semua operasi dilakukan sebagai pengguna anonim NFS (biasanya nfsnone), yang mungkin tidak memiliki akses ke file. Lampirkan kebijakan AmazonS3FilesClientFullAccess terkelola atau tambahkan s3files:ClientRootAccess ke kebijakan Anda.

  • Kebijakan sistem file menolak akses — Jika Anda telah melampirkan kebijakan sistem file, verifikasi bahwa kebijakan itu tidak menyangkal tindakan yang dibutuhkan klien Anda. “Izinkan” baik dalam kebijakan berbasis identitas atau kebijakan sistem file sudah cukup untuk akses. Untuk informasi selengkapnya, lihat Cara File S3 bekerja dengan IAM.

  • Ketidakcocokan izin POSIX — File S3 memberlakukan izin POSIX standar (pemilik, grup, lainnya) pada file dan direktori. Jika aplikasi Anda berjalan sebagai pengguna yang tidak cocok dengan pemilik atau grup file, akses dapat ditolak meskipun izin IAM sudah benar. Gunakan titik akses untuk menerapkan spesifik UID/GID untuk semua permintaan. Untuk informasi selengkapnya, lihat Membuat titik akses untuk sistem file S3.

Perutean baca cerdas tidak berfungsi

S3 Files melakukan perutean baca cerdas karena secara otomatis merutekan permintaan baca ke lapisan penyimpanan yang paling sesuai untuk mereka, sambil mempertahankan semantik sistem file lengkap termasuk konsistensi, penguncian, dan izin POSIX. Pembacaan kecil dan acak dari file yang digunakan secara aktif disajikan dari penyimpanan berkinerja tinggi untuk latensi rendah. Pembacaan dan pembacaan data berurutan besar yang tidak ada di sistem file disajikan langsung dari bucket S3 Anda untuk throughput tinggi, tanpa biaya data sistem file.

Perutean baca cerdas mungkin tidak berfungsi jika salah satu metrik konektivitas klien (NFSConnectionAccessibleS3BucketAccessible,, danS3BucketReachable) menunjukkan 0, atau jika Anda tidak melihat throughput baca yang diharapkan.

Penyebab dan tindakan umum:

  • Kehilangan kebijakan sebaris S3 pada peran komputasi — Peran IAM yang dilampirkan ke sumber daya komputasi Anda harus menyertakan pemberian kebijakan sebaris s3:GetObject dan s3:GetObjectVersion pada bucket S3 yang ditautkan. Tanpa kebijakan ini, mount helper tidak dapat membaca langsung dari S3 dan semua pembacaan melalui sistem file. Untuk informasi selengkapnya, lihat Prasyarat untuk File S3.

  • Bucket S3 tidak dapat dijangkau — Periksa S3BucketReachable metriknya. Jika menunjukkan 0, verifikasi bahwa sumber daya komputasi Anda memiliki akses jaringan ke S3 (misalnya, melalui titik akhir VPC atau gateway NAT).

  • File telah dimodifikasi - Bacaan hanya disajikan langsung dari S3 ketika file belum dimodifikasi melalui sistem file. Jika Anda telah menulis ke file dan perubahan belum disinkronkan ke S3, pembacaan akan melalui sistem file sampai sinkronisasi selesai.

Sistem file secara konsisten mengembalikan kesalahan server NFS

Sistem file terenkripsi secara konsisten mengembalikan kesalahan server NFS. Kesalahan ini dapat terjadi ketika File S3 tidak dapat mengambil kunci KMS Anda dari AWS KMS karena salah satu alasan berikut:

  • Kuncinya dinonaktifkan.

  • Kuncinya telah dihapus.

  • Izin untuk File S3 untuk menggunakan kunci dicabut.

  • AWS KMS untuk sementara tidak tersedia.

Tindakan yang harus diambil

Pertama, konfirmasikan bahwa kunci AWS KMS diaktifkan. Anda dapat melihat kunci Anda di konsol AWS KMS. Untuk informasi selengkapnya, lihat Melihat AWS Kunci di Panduan Pengembang Layanan Manajemen Kunci.

Jika kunci tidak diaktifkan, aktifkan. Untuk informasi selengkapnya, lihat Mengaktifkan dan Menonaktifkan K AWS unci di Panduan Pengembang Layanan Manajemen Kunci.

Jika kunci tertunda penghapusan, batalkan penghapusan dan aktifkan kembali kunci tersebut. Untuk informasi selengkapnya, lihat Men jadwalkan dan Membatalkan Penghapusan K AWS unci di Panduan Pengembang Layanan Manajemen Kunci.

Jika kunci diaktifkan dan Anda masih mengalami masalah, hubungi AWS Dukungan.

Objek hilang di bucket S3 setelah penulisan sistem file

Anda menulis file melalui sistem file dan mengharapkannya muncul sebagai objek di bucket S3 Anda, tetapi objek tidak ada di sana. File S3 menunggu periode penulisan tidak aktif (60 detik) sebelum mengekspor perubahan kembali ke bucket S3 Anda. Jika objek masih tidak muncul setelah periode ini, ekspor mungkin gagal. Dalam kasus seperti itu, Anda melihat peningkatan FailedExports CloudWatch metrik.

Tindakan yang harus diambil

Periksa status ekspor file menggunakan atribut yang diperluas:

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

Stempel waktu dalam nama atribut memastikan Anda mendapatkan status terbaru. Contoh output:

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

ExportErrortidak ditampilkan jika tidak ada kegagalan ekspor. S3Keykosong jika objek S3 tidak pernah ditautkan ke file.

Tabel berikut mencantumkan semua ExportError nilai yang mungkin:

Kesalahan Penyebab
S3AccessDenied Peran IAM yang diasumsikan S3 Files tidak memiliki izin yang cukup untuk menulis ke bucket S3. Untuk informasi selengkapnya, lihat Prasyarat untuk File S3.
InternalError Ada kesalahan sistem internal.
S3UserMetadataTooLarge Batas ukuran metadata pengguna S3 terlampaui. Lihat Fitur, batasan, dan kuota yang tidak didukung untuk informasi tentang batasan ini.
EncryptionKeyInaccessible Kunci enkripsi yang digunakan oleh bucket S3 tidak dapat diakses untuk File S3. Berikan akses File S3 ke kunci enkripsi Anda. Untuk informasi selengkapnya, lihat Enkripsi.
RoleAssumptionFailed Tidak bisa mengambil peran. Periksa kebijakan kepercayaan Anda. Untuk informasi selengkapnya, lihat Prasyarat untuk File S3.
KeyTooLongToBreakCycle File S3 tidak dapat menyelesaikan ketergantungan melingkar (misalnya, karena mengganti nama dua file menjadi nama satu sama lain) karena jalur file melebihi batas panjang kunci S3. Persingkat jalur direktori untuk mengatasi kesalahan ini.
PathTooLong Jalur file Anda melebihi batas panjang kunci S3. Lihat Fitur, batasan, dan kuota yang tidak didukung untuk informasi tentang batasan ini.
DependencyExportFailed Induk atau ketergantungan mengalami kegagalan ekspor yang tidak dapat dicoba ulang. Periksa status untuk induk atau dependensi apa pun yang digunakan. getfattr
S3ObjectArchived Objek S3 diarsipkan (S3 Glacier Flexible Retrieval atau S3 Glacier Deep Archive) dan tidak dapat dibaca. Kembalikan objek terlebih dahulu menggunakan API S3.

File S3 secara otomatis mencoba kembali ekspor yang gagal. ExportErrorditampilkan hanya untuk kesalahan yang tidak dapat dicoba ulang.

Objek S3 tidak terlihat dalam sistem file

Objek ada di bucket S3 Anda tetapi tidak muncul di sistem file. Nama kunci objek mungkin tidak dipetakan ke jalur file POSIX yang valid. File S3 tidak mendukung akses nama kunci S3 dengan komponen jalur kosong (foo//bar), komponen jalur relatif (foo/./bar,foo/../bar), nama kunci yang berisi byte nol, atau nama kunci di mana komponen jalur melebihi 255 byte. Objek dengan nama kunci yang tidak kompatibel tidak diimpor ke sistem file.

File muncul di direktori hilang dan ditemukan

File telah muncul di .s3files-lost+found-file-system-id direktori di direktori root sistem file Anda. Dalam hal ini, Anda melihat peningkatan LostAndFoundFiles CloudWatch metrik. Ini terjadi ketika konflik sinkronisasi muncul. Konflik terjadi ketika file yang sama dimodifikasi melalui sistem file dan objek S3 yang sesuai berubah sebelum File S3 menyinkronkan perubahan sistem file kembali ke S3. File S3 memperlakukan bucket S3 sebagai sumber kebenaran, memindahkan file yang saling bertentangan ke direktori hilang dan ditemukan, dan mengimpor versi terbaru dari bucket S3 ke sistem file.

Mengidentifikasi file di direktori hilang dan ditemukan

Ketika File S3 memindahkan file ke direktori hilang dan ditemukan, ia menambahkan nama file dengan pengenal heksadesimal untuk membedakan beberapa versi file yang sama yang dapat dipindahkan dari waktu ke waktu. Nama file yang lebih panjang dari 100 karakter dipotong untuk memberi ruang bagi pengidentifikasi ini. Jalur direktori asli file tidak disimpan di direktori hilang dan ditemukan.

Tindakan yang harus diambil

Dapatkan jalur asli file dan kunci objek S3 yang sesuai:

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

Contoh output:

S3Key: s3://bucket/prefix/report.csv FilePath: /data/report.csv
Bidang Deskripsi
S3Key Jalur S3 penuh dari objek yang menyebabkan konflik, atau kosong jika objek dihapus di bucket S3.
FilePath Jalur relatif file sebelum konflik.

Anda kemudian dapat menyimpan versi terbaru dari bucket S3 Anda dan menghapus file dari direktori hilang dan ditemukan, atau menyalin file dari direktori hilang dan ditemukan kembali ke jalur aslinya untuk mengganti versi S3.

catatan

File di direktori hilang dan ditemukan tetap di sana tanpa batas waktu dan diperhitungkan dalam biaya penyimpanan sistem file Anda. Hapus file dari direktori yang hilang dan ditemukan ketika mereka tidak lagi diperlukan.

Sinkronisasi tertinggal

PendingExports CloudWatch Metrik bertambah, menunjukkan bahwa beban kerja Anda menghasilkan perubahan lebih cepat daripada File S3 dapat menyinkronkannya ke S3.

Ini berarti beban kerja Anda mungkin melebihi tingkat sinkronisasi. File S3 mengekspor hingga 800 file per detik per sistem file. Pertimbangkan untuk mengurangi tingkat modifikasi file atau mendistribusikan pekerjaan di beberapa sistem file. Pantau PendingExports metrik dari waktu ke waktu. Jika stabil atau berkurang, File S3 mengejar ketinggalan. Jika terus berkembang, hubungi AWS Dukungan.

Mengaktifkan log debug klien

Jika Anda memecahkan masalah pemasangan, konektivitas, atau bypass baca, Anda dapat mengaktifkan logging tingkat debug pada klien S3 Files untuk menangkap lebih banyak detail.

Pasang log pembantu dan pengawas

Edit /etc/amazon/efs/s3files-utils.conf dan ubah level logging dari INFO ke DEBUG:

[DEFAULT] logging_level = DEBUG

Lepaskan dan pasang kembali sistem file agar perubahan berlaku:

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

Log ditulis ke/var/log/amazon/efs/. Log pembantu pemasangan adalahmount.log.

Log Proxy (efs-proxy)

Proxy menangani lalu lintas NFS dan bypass baca S3. Untuk mengaktifkan pencatatan debug untuk proxy, edit: /etc/amazon/efs/s3files-utils.conf

[proxy] proxy_logging_level = DEBUG

Lepaskan dan pasang kembali agar perubahan berlaku. Log proxy ditulis ke/var/log/amazon/efs/.

Log terowongan TLS (stunnel)

Log terowongan TLS dinonaktifkan secara default. Untuk mengaktifkannya, edit /etc/amazon/efs/s3files-utils.conf dan atur yang berikut:

[mount] stunnel_debug_enabled = true

Untuk menyimpan semua log stunnel untuk sistem file ke satu file, juga hapus komentar baris: stunnel_logs_file

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

Batas ukuran log

File log diputar secara otomatis. Anda dapat mengonfigurasi ukuran maksimum dan jumlah file yang diputar dis3files-utils.conf:

[DEFAULT] logging_max_bytes = 1048576 logging_file_count = 10

Standarnya adalah 1 MB per file log dengan 10 file yang diputar, untuk maksimum 10 MB per jenis log.

Berbagi log dengan AWS Dukungan

Saat menghubungi AWS Dukungan, kumpulkan log klien dan konfigurasi ke dalam satu arsip:

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

Sertakan /tmp/s3files-support-logs.tar.gz dengan kasus dukungan Anda.