All Products
Search
Document Center

Object Storage Service:ossfs FAQ

Last Updated:Jun 21, 2026

Topik ini menjelaskan isu umum dan solusinya saat menggunakan ossfs. Jika Anda mengalami masalah, periksa terlebih dahulu versi ossfs yang digunakan. Jika Anda masih menggunakan versi lama seperti 1.80.x, kami menyarankan agar Anda melakukan upgrade ke versi terbaru. Versi yang lebih baru menyediakan fitur-fitur baru dan stabilitas yang lebih baik.

Ikhtisar

Setiap error ossfs mencakup sebuah pesan. Untuk memecahkan masalah seperti kegagalan koneksi socket atau kode status HTTP 4xx/5xx, kumpulkan pesan-pesan tersebut untuk mengidentifikasi penyebabnya. Aktifkan log debug sebelum memulai.

  • Error 403 menunjukkan bahwa permintaan ditolak karena izin tidak mencukupi.

  • Error 400 menunjukkan operasi pengguna yang salah.

  • Error 5xx biasanya terkait dengan fluktuasi jaringan atau masalah di sisi client.

Karakteristik utama ossfs:

  • ossfs memasang bucket OSS remote sebagai disk lokal. Jika workload Anda sensitif terhadap performa I/O file, kami menyarankan agar Anda tidak menggunakan ossfs.

  • Operasi dalam ossfs tidak menjamin atomicity. Operasi lokal mungkin berhasil meskipun operasi OSS remote yang sesuai gagal.

Jika ossfs tidak memenuhi kebutuhan bisnis Anda, gunakan ossutil.

Isu izin

Dec 22 17:21:22 rerpdb1601 s3fs[21838]: [tid-21839][INF]      curl.cpp:PutHeadRequest(2278):   [tpath=/.fuse_hidden0000002700000006]
Dec 22 17:21:22 rerpdb1601 s3fs[21838]: [tid-21839][INF]      curl.cpp:prepare_url(4030):  URL is http://oss-cn-hangzhou-internal.aliyuncs.com/pgback/.fuse_hidden0000002700000006
Dec 22 17:21:22 rerpdb1601 s3fs[21838]: [tid-21839][INF]      curl.cpp:prepare_url(4062):  URL changed is http://pgback.oss-cn-hangzhou-internal.aliyuncs.com/.fuse_hidden0000002700000006
Dec 22 17:21:22 rerpdb1601 s3fs[21838]: [tid-21839][INF]      curl.cpp:PutHeadRequest(2330):   ...fuse_hidden0000002700000001
Dec 22 17:21:22 rerpdb1601 s3fs[21838]: [tid-21840][INF]      curl.cpp:RequestPerform(63...):  HTTP response code 403 was returned, returning EPERM
Dec 22 17:21:22 rerpdb1601 s3fs[21838]: [tid-21840][INF]      s3fs:s3fs_flush(2127):  [path=/tmp/7kAcr][fd=6]
Dec 22 17:21:22 rerpdb1601 s3fs[21838]: [tid-21840][INF]      fdcache.cpp:RowFlush(1302):  [path]=[path=/tmp/7kAcr][fd=6]
Dec 22 17:21:22 rerpdb1601 s3fs[21838]: [tid-21845][INF]      s3fs:s3fs_release(2185):  [path=/tmp/7kAcr][fd=6]

Error 403 saat menyentuh file

Penyebab: Error 403 biasanya disebabkan oleh masalah izin. Anda mungkin menerima error 403 saat menjalankan perintah touch dalam kasus berikut:

  • File tersebut merupakan objek Archive Storage. Menyentuh jenis objek ini menghasilkan error 403.

  • AccessKey yang Anda gunakan tidak memiliki izin untuk melakukan operasi pada bucket.

Solusi:

  • Untuk objek Archive Storage: Pulihkan objek sebelum mengaksesnya, atau aktifkan akses real-time untuk objek Archive Storage di bucket.

  • Untuk error izin: Berikan izin yang diperlukan kepada akun pemilik AccessKey.

Error perintah rm: Operation not permitted

Penyebab: Perintah rm memanggil operasi API DeleteObject. Jika Anda memasang bucket sebagai RAM user, pastikan RAM user tersebut memiliki izin untuk menghapus objek.

Solusi: Berikan izin yang diperlukan kepada RAM user. Untuk informasi lebih lanjut, lihat Ikhtisar kebijakan RAM dan Contoh umum kebijakan RAM.

Error: Invalid endpoint

Penyebab: Error ini menunjukkan bahwa endpoint ditentukan secara salah. Hal ini dapat terjadi karena alasan berikut:

  • Bucket dan endpoint tidak sesuai.

  • UID pemilik bucket tidak sesuai dengan UID yang terkait dengan AccessKey.

Solusi: Verifikasi dan perbaiki konfigurasi Anda.

Masalah mount

Dukungan nama domain kustom

Tidak, ossfs tidak mendukung pemasangan dengan nama domain kustom.

Pemasangan HTTPS gagal di CentOS 7.x

Solusi:

  1. Tambahkan opsi -ocurldbg saat Anda memasang bucket dan periksa apakah log berisi NSS error -8023 (SEC_ERROR_PKCS11_DEVICE_ERROR).

  2. Jika error ini ada dalam log, periksa versi NSS yang terinstal secara lokal.

    Jika versi NSS adalah 3.36, jalankan perintah yum update nss untuk memperbarui NSS, lalu coba pasang bucket lagi.

Pemasangan gagal dengan peran RAM ECS

Solusi:

  1. Jalankan perintah curl http://100.100.100.200/latest/meta-data/ram/security-credentials/[your-ecs-ram-role] untuk memeriksa konektivitas.

  2. Jika perintah curl berhasil, tambahkan opsi -o disable_imdsv2 saat Anda memasang bucket.

Galat mount: Titik akhir transport tidak terhubung

Penyebab: Direktori yang ditentukan tidak ada.

Solusi: Buat direktori tersebut, lalu lakukan operasi pemasangan.

Error pemasangan: Permission denied

Penyebab: Ini adalah bug pada FUSE. FUSE mengharuskan pengguna saat ini memiliki izin baca pada direktori kerja saat ini, yang bukan merupakan titik pemasangan.

Solusi: Gunakan perintah cd untuk berpindah ke direktori yang Anda miliki izin bacanya, lalu jalankan perintah ossfs.

Error pemasangan: Mountpoint is not empty

Penyebab: Secara default, ossfs hanya dapat dipasang ke direktori kosong. Error ini terjadi saat memasang ossfs ke direktori yang tidak kosong.

Solusi: Beralihlah ke direktori kosong dan pasang kembali. Jika Anda tetap perlu memasang ke direktori ini, tambahkan parameter -ononempty saat pemasangan.

Kesalahan waktu habis pemasangan

Penyebab: Permintaan pemasangan ossfs mengalami timeout.

Solusi: ossfs menggunakan opsi readwrite_timeout untuk mengatur periode timeout dalam detik untuk permintaan baca dan tulis. Nilai default-nya adalah 60. Tingkatkan nilai ini sesuai dengan workload Anda.

Error pemasangan: Izin file kredensial salah

Penyebab: Izin untuk file /etc/passwd-ossfs salah.

Solusi: File /etc/passwd-ossfs menyimpan kredensial, sehingga Anda harus membatasi akses bagi pengguna lain. Jalankan perintah chmod 640 /etc/passwd-ossfs untuk mengubah izin file.

Error ls: Operation not permitted

Penyebab: Periksa apakah bucket Anda berisi objek dengan nama yang mengandung karakter tak terlihat. Sistem file memberlakukan batasan ketat pada nama file dan direktori, yang dapat menyebabkan error ini.

Solusi: Ubah nama objek-objek tersebut menggunakan tool lain. Setelah itu, perintah ls dapat menampilkan isi direktori dengan benar.

Error pemasangan: FUSE device not found

Penyebab: Error ini biasanya terjadi di dalam kontainer Docker karena kontainer tidak memiliki izin untuk mengakses atau memuat modul kernel FUSE.

Solusi: Saat menjalankan di dalam kontainer Docker, Anda dapat menambahkan parameter --privileged=true untuk memberikan hak istimewa yang lebih tinggi kepada kontainer. Hal ini memungkinkan proses di dalam kontainer melakukan operasi yang mirip dengan yang dilakukan pada mesin host, seperti menggunakan sistem file FUSE. Berikut adalah contoh perintah untuk memulai kontainer menggunakan flag --privileged:

docker run --privileged=true -d your_image

Error pemasangan: libcrypto.so.1.1 not found

Penyebab: Versi paket instalasi tidak sesuai dengan versi sistem operasi Anda.

Solusi: Untuk mengatasi masalah ini, unduh paket instalasi yang sesuai dengan sistem operasi Anda.

Penagihan

Hindari biaya dari pemindaian file latar belakang

Penyebab: Saat program memindai direktori yang dipasang oleh ossfs, pemindaian tersebut menghasilkan permintaan ke OSS. Laju permintaan yang tinggi dapat menimbulkan biaya.

Solusi: Gunakan tool auditd untuk mengidentifikasi proses mana yang memindai direktori yang dipasang OSS. Lakukan langkah-langkah berikut:

  1. Instal dan mulai auditd.

    sudo apt-get install auditd
    sudo service auditd start
  2. Tetapkan titik pemasangan OSS sebagai direktori yang dipantau. Misalnya, jika titik pemasangan adalah /mnt/ossfs, jalankan perintah berikut:

    auditctl -w /mnt/ossfs
  3. Periksa log audit untuk melihat proses mana yang mengakses direktori tersebut.

    ausearch -i | grep /mnt/ossfs
  4. Konfigurasikan proses agar melewati pemindaian titik pemasangan.

    Misalnya, jika log audit menunjukkan bahwa updatedb memindai direktori yang dipasang, ubah file /etc/updatedb.conf untuk mengecualikannya. Untuk melakukannya, ikuti langkah-langkah berikut:

    1. Pada parameter RUNEFS =, tambahkan fuse.ossfs.

    2. Pada parameter PRUNEPATHS =, tambahkan titik pemasangan.

Isu disk dan memori

Nov  8 02:58:28 izw9e9xgcy43hdoultcoez kernel: [30273]     0 30273  33017    827   61     0  AliYunDun
Nov  8 02:58:28 izw9e9xgcy43hdoultcoez kernel: [16398]     0 16398  1301998  317459   955     0  java
Nov  8 02:58:28 izw9e9xgcy43hdoultcoez kernel: Out of memory: Kill process 3017 (ossfs) score 58 or sacrifice child
Nov  8 02:58:28 izw9e9xgcy43hdoultcoez kernel: Killed process 3017 (ossfs) total-vm:3840372kB, anon-rss:4787892kB, file-rss:208kB, shmem-rss:0kB
Nov  8 02:58:45 izw9e9xgcy43hdoultcoez s3fs s3fs[2968]: s3fs.cpp:list_bucket(2382): list_bucket returns error(-1).
Nov  8 02:58:45 izw9e9xgcy43hdoultcoez s3fs s3fs[2968]: s3fs.cpp:list_bucket(2459): xmlReadMemory with error...
Nov  8 02:58:45 izw9e9xgcy43hdoultcoez s3fs s3fs[2968]: s3fs.cpp:list_bucket(2382): list_bucket returns error(-1).
Nov  8 02:58:47 izw9e9xgcy43hdoultcoez systemd: Started Session 4614 of user root.

ossfs terputus secara intermiten

Penyebab:

  1. Periksa log debug untuk error kehabisan memori (OOM). Untuk melakukannya, aktifkan logging debug dengan menambahkan parameter -d -odbglevel=dbg. ossfs menulis log ke file log sistem default.

    • Pada sistem CentOS, log ditulis ke /var/log/messages.

    • Pada sistem Ubuntu, log ditulis ke /var/log/syslog.

  2. Log mungkin menunjukkan bahwa penggunaan memori tinggi selama operasi listbucket dan listobject memicu OOM killer sistem, sehingga menghentikan proses ossfs.

    Catatan

    Operasi listobject mengirim permintaan HTTP ke OSS untuk mengambil metadata objek. Jika Anda memiliki banyak objek, perintah ls dapat mengonsumsi sejumlah besar memori sistem untuk mengambil metadata.

Solusi:

  • Tingkatkan ukuran cache stat menggunakan parameter -omax_stat_cache_size=xxx. Operasi ls pertama lebih lambat, tetapi panggilan berikutnya lebih cepat karena metadata di-cache secara lokal. Nilai default-nya adalah 1.000, yang mengonsumsi sekitar 4 MB memori. Sesuaikan nilai ini berdasarkan memori yang tersedia di mesin Anda.

  • Selama operasi baca dan tulis, ossfs dapat menulis sejumlah besar data cache sementara ke disk, mirip dengan Nginx. Hal ini dapat menghabiskan ruang disk yang tersedia. ossfs secara otomatis membersihkan file sementara saat keluar.

  • Gunakan ossutil sebagai ganti ossfs. ossfs dapat digunakan untuk workload non-produksi. Untuk layanan yang memerlukan keandalan dan stabilitas tinggi, kami menyarankan agar Anda menggunakan ossutil.

Mengapa ossfs mengisi ruang disk?

Penyebab: Untuk meningkatkan performa, secara default ossfs menggunakan ruang disk sebanyak mungkin untuk menyimpan data unggah dan unduh sementara. Hal ini dapat menghabiskan ruang disk yang tersedia.

Solusi: Gunakan opsi -oensure_diskfree untuk menyisakan ruang disk. Misalnya, untuk menyisakan ruang disk 20 GB, jalankan perintah berikut:

ossfs examplebucket /tmp/ossfs -o url=http://oss-cn-hangzhou.aliyuncs.com -oensure_diskfree=20480

Perintah df menampilkan ukuran disk 256 TB

Ukuran disk yang ditampilkan oleh perintah df hanya untuk tujuan tampilan dan tidak merepresentasikan kapasitas bucket yang sebenarnya. Nilai Size (total ruang disk) dan Avail (ruang disk yang tersedia) tetap pada 256 TB, dan nilai Used (ruang disk yang digunakan) tetap pada 0 TB.

OSS menyediakan kapasitas bucket tanpa batas. Penggunaan penyimpanan bergantung pada penggunaan aktual Anda. Untuk informasi lebih lanjut tentang cara menanyakan penggunaan bucket, lihat Tanyakan penggunaan tingkat bucket.

[root@rjhdadmin xxx]# du -sh *
24G    caohh.zip
[root@rjhdadmin lixiao]# cp caohh.zip  /data/ossfs/xxx
cp: writing '/data/ossfs/xxx/caohh.zip': Input/output error
cp: closing '/data/ossfs/xxx.zip': Input/output error
[root@rjhdadmin xxx]#

Perintah cp: Input/output error

Penyebab: Error ini menunjukkan adanya masalah dengan I/O disk. Periksa apakah disk memiliki beban baca/tulis yang tinggi saat error terjadi.

Solusi: Tambahkan parameter terkait part untuk mengontrol operasi baca dan tulis file. Jalankan perintah ossfs -h untuk melihat parameter terkait part yang tersedia.

cp: writing '/data/tmp/I_201704/12/request.1491926430217.avro': Input/output error
cp: closing '/data/tmp/I_201704/12/request.1491926430217.avro': Input/output error

Error I/O saat menyalin file besar

Penyebab: Menggunakan ossfs dengan rsync dapat menyebabkan masalah. Dalam kasus ini, pengguna menjalankan perintah cp pada file berukuran 141 GB, yang memberikan beban sangat tinggi pada disk dan menyebabkan error ini.

Solusi: Untuk mengunduh file dari OSS ke instans ECS atau mengunggah file dari instans ECS ke OSS, gunakan fitur unggah multi-bagian dan unduh multi-bagian dari ossutil.

[root@c653a8832c9eb4d8d9xxx xxx a-node5 ~]# ossfs xxx xxx xxx /xxx/daily -o multipart_size=31457280 -ourl=http://oss-ap-southeast-3-internal.aliyuncs.com
ossfs: There is no enough disk space for used as cache(or temporary) directory by s3fs.
[root@c653a8832c9eb4d8d9xxx a-node5 ~]#

Error unggah: Ruang disk tidak cukup untuk cache

  • Penyebab

    Ruang disk yang tersedia kurang dari multipart_size * parallel_count.

    Parameter multipart_size menentukan ukuran bagian. Satuan default-nya adalah MB. Parameter parallel_count menentukan jumlah bagian yang diunggah secara paralel. Nilai default-nya adalah 5.

  • Analisis

    Secara default, ossfs mengunggah file besar menggunakan unggah multi-bagian. Selama unggahan, ossfs menulis file cache sementara ke direktori /tmp. Sebelum menulis data, ossfs memeriksa apakah ruang bebas pada disk yang berisi direktori /tmp kurang dari multipart_size * parallel_count. Jika ruang bebas lebih besar dari multipart_size * parallel_count, penulisan berlangsung normal. Jika ruang bebas kurang dari multipart_size * parallel_count, ossfs mengembalikan error yang menunjukkan ruang disk lokal tidak mencukupi.

    Misalnya, ruang disk yang tersedia adalah 300 GB dan file yang akan diunggah adalah 200 GB. Jika multipart_size diatur ke 100000 (100 GB) dan parallel_count tetap pada nilai default 5, ossfs menghitung ruang yang diperlukan sebagai 100 GB × 5 = 500 GB, yang melebihi ruang bebas lokal.

  • Solusi

    Jika parallel_count tetap pada nilai default 5, atur multipart_size ke nilai yang wajar.

    • Jika ruang disk yang tersedia adalah 300 GB dan file yang akan diunggah adalah 200 GB, atur multipart_size ke 20.

    • Jika ruang disk yang tersedia adalah 300 GB dan file yang akan diunggah adalah 500 GB, atur multipart_size ke 50.

Isu dependensi

Error instalasi: Pustaka FUSE terlalu lama

Penyebab: Versi libfuse yang digunakan untuk mengompilasi ossfs lebih tinggi daripada versi libfuse yang ditautkan saat runtime. Hal ini sering terjadi jika Anda menginstal libfuse secara manual. Pada sistem CentOS 5.x dan CentOS 6.x, paket ossfs yang disediakan oleh Alibaba Cloud mencakup libfuse-2.8.4. Jika libfuse-2.8.3 ada di lingkungan runtime dan ossfs menautkan ke versi FUSE yang lebih lama, peringatan ini muncul.

Jalankan perintah ldd $(which ossfs) | grep fuse untuk mengonfirmasi versi FUSE mana yang ditautkan oleh ossfs saat runtime. Jika hasilnya adalah /lib64/libfuse.so.2, jalankan perintah ls -l /lib64/libfuse* untuk melihat versi FUSE.

Solusi: Konfigurasikan ossfs untuk menautkan ke versi yang benar.

  1. Jalankan perintah rpm -ql ossfs | grep fuse untuk menemukan direktori libfuse.

  2. Jika hasilnya adalah /usr/lib/libfuse.so.2, jalankan ossfs menggunakan perintah LD_LIBRARY_PATH=/usr/lib ossfs ….

Total size: 6.0 M
Installed size: 6.0 M
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Check Error:
  file /sbin/mount.fuse from install of ossfs-1.80.3-1.x86_64 conflicts with file from package fuse-2.8.3-5.el6.x86_64
  file /usr/bin/fusermount from install of ossfs-1.80.3-1.x86_64 conflicts with file from package fuse-2.8.3-5.el6.x86_64
  file /usr/bin/ulockmgr_server from install of ossfs-1.80.3-1.x86_64 conflicts with file from package fuse-2.8.3-5.el6.x86_64
Error Summary
-------------
[root@localhost 123]# rpm -qa |grep fuse
fuse-2.8.3-5.el6.x86_64
fuse-ntfs-3g-2013.1.13-2.el6.rf.x86_64
You have new mail in /var/spool/mail/root
[root@localhost 123]#

Error instalasi dependensi FUSE

Penyebab: Versi FUSE tidak memenuhi persyaratan ossfs.

Solusi: Unduh dan instal versi terbaru FUSE secara manual. Jangan gunakan yum. Untuk informasi lebih lanjut, lihat fuse.

Error ls: Input/output error

Penyebab: Masalah ini terutama terjadi di lingkungan CentOS. Log menunjukkan error NSS error -8023. Masalah terjadi saat ossfs menggunakan libcurl untuk komunikasi HTTPS, kemungkinan karena pustaka Network Security Services (NSS) yang menjadi dependensi libcurl terlalu lama.

Solusi: Jalankan perintah berikut untuk memperbarui pustaka NSS ke versi terbaru:

yum update nss

Error instalasi: Konflik dengan fuse-devel

Penyebab: Versi lama FUSE ada di sistem dan bertentangan dengan versi dependensi dalam ossfs.

Solusi: Copot pemasangan FUSE menggunakan manajer paket Anda, lalu instal ulang ossfs.

Isu lainnya

ossfs lambat dengan banyak file atau konkurensi tinggi

ossfs 1.0 tidak direkomendasikan untuk skenario konkurensi tinggi. Jika Anda harus menggunakannya dalam skenario ini, pertimbangkan opsi berikut:

  • Opsi 1: Pasang bucket menggunakan ossfs 2.0. Dibandingkan dengan ossfs 1.0, ossfs 2.0 memberikan peningkatan performa signifikan untuk operasi baca dan tulis berurutan serta untuk pembacaan konkuren file kecil. Untuk informasi lebih lanjut, lihat Peningkatan performa.

  • Opsi 2: Gunakan Cloud Storage Gateway untuk memasang bucket OSS demi performa yang lebih baik. Performa ossfs 1.0 tidak cocok untuk workload konkurensi tinggi atau unggah dan unduh file besar. OSS paling cocok untuk operasi rutin pada file kecil.

File yang diunggah memiliki Content-Type salah

Penyebab: Saat mengunggah file, ossfs mengatur Content-Type dengan membaca file /etc/mime.types. Jika file ini tidak ada, ossfs menggunakan nilai default application/octet-stream.

Solusi: Periksa apakah file ini ada. Jika tidak, tambahkan file tersebut.

  • Tambahkan file mime.types secara otomatis menggunakan perintah.

    • Untuk sistem Ubuntu:

      Jalankan perintah sudo apt-get install mime-support.

    • Untuk sistem CentOS:

      Jalankan perintah sudo yum install mailcap.

  • Tambahkan file mime.types secara manual.

    1. Buat file mime.types.

      vi /etc/mime.types
    2. Tambahkan format yang diperlukan, satu per baris. Gunakan format application/javascript js.

Setelah Anda menambahkan file tersebut, Anda harus memasang ulang bucket OSS.

Folder diidentifikasi sebagai file

  • Skenario 1

    Penyebab: Jika Anda membuat objek folder (objek yang namanya diakhiri dengan garis miring (/)) dan mengatur Content-Type-nya ke text/plain, ossfs mengidentifikasi objek tersebut sebagai file.

    Solusi: Anda dapat menambahkan parameter -ocomplement_stat saat pemasangan. Jika objek folder memiliki ukuran 0 atau 1, ossfs mengenalinya sebagai folder.

  • Skenario 2

    Penyebab: Jalankan perintah ossutil stat , di mana <folder-object> adalah nama objek yang diakhiri dengan garis miring (/). Misalnya, ossutil stat oss://[bucket]/folder/. Setelah menjalankan perintah tersebut, periksa bidang-bidang berikut:

    1. Periksa bidang Content-Length, yang menunjukkan ukuran objek. Jika ukuran objek bukan 0, objek tersebut diidentifikasi sebagai file.

      Solusi: Jika Anda tidak lagi memerlukan konten objek folder ini, jalankan perintah ossutil rm oss://[bucket]/folder/ untuk menghapus objek tersebut. Operasi ini tidak memengaruhi file di dalam folder. Atau, Anda dapat menggunakan ossutil untuk mengunggah objek berukuran nol byte dengan nama yang sama untuk menimpa objek folder tersebut.

    2. Jika ukuran objek adalah 0, periksa bidang Content-Type. Jika nilai bidang ini bukan application/x-directory, httpd/unix-directory, binary/octet-stream, atau application/octet-stream, objek tersebut juga diidentifikasi sebagai file.

      Solusi: Jalankan perintah ossutil rm oss://[bucket]/folder/ untuk menghapus objek tersebut. Operasi ini tidak memengaruhi file di dalam folder.

Operasi mv gagal

Penyebab: Operasi mv dalam ossfs dapat gagal jika file sumber merupakan objek Archive Storage, Penyimpanan Arsip Dingin, atau Deep Cold Archive.

Solusi: Sebelum menjalankan operasi mv, Anda harus memulihkan objek tersebut. Untuk informasi lebih lanjut, lihat Pulihkan objek.

Dukungan Windows

Tidak. Di Windows, Anda dapat memasang bucket menggunakan Rclone. Untuk informasi lebih lanjut, lihat Rclone.

Pemasangan pada beberapa server Linux

Ya. Anda dapat memasangnya pada beberapa server ECS Linux. Untuk informasi lebih lanjut, lihat Pasang bucket.

Informasi file tidak konsisten di berbagai tool

Penyebab: Secara default, ossfs menyimpan cache metadata file, termasuk ukuran file dan izin, untuk meningkatkan performa. Hal ini menghindari pengiriman permintaan ke OSS setiap kali Anda menjalankan perintah ls. Jika Anda memodifikasi file menggunakan tool lain seperti SDK, konsol OSS, atau ossutil, ossfs mungkin tidak memperbarui cache-nya tepat waktu, sehingga menyebabkan inkonsistensi data.

Solusi: Tambahkan parameter -omax_stat_cache_size=0 saat memasang bucket untuk menonaktifkan caching metadata. Setiap kali perintah ls dieksekusi, permintaan dikirim ke OSS untuk mengambil informasi file terbaru.

Pemasangan lambat setelah mengaktifkan pengendalian versi

Penyebab: Secara default, ossfs mencantumkan file menggunakan operasi ListObjects (GetBucket). Jika pengendalian versi diaktifkan dan bucket berisi satu atau beberapa versi historis objek serta sejumlah besar penanda hapus yang kedaluwarsa, pencantuman objek saat ini menggunakan ListObjects (GetBucket) dapat menjadi lambat, sehingga menurunkan performa pemasangan.

Solusi: Tambahkan opsi -olistobjectsV2 untuk mengalihkan ossfs menggunakan operasi ListObjectsV2 (GetBucketV2) demi performa pencantuman yang lebih baik.

Pemasangan melalui HTTPS

ossfs mendukung pemasangan melalui HTTPS. Berikut adalah contoh perintah untuk wilayah China (Hangzhou):

ossfs examplebucket /tmp/ossfs -o url=https://oss-cn-hangzhou.aliyuncs.com

Perintah ls lambat di direktori besar

Penyebab: Jika direktori berisi N file, mencantumkan isinya memerlukan setidaknya N permintaan HTTP ke OSS. Hal ini dapat menyebabkan masalah performa serius saat N besar.

Solusi: Tingkatkan ukuran cache stat menggunakan parameter -omax_stat_cache_size=xxx. Operasi ls pertama lebih lambat, tetapi panggilan berikutnya lebih cepat karena metadata di-cache secara lokal. Sebelum ossfs 1.91.1, nilai default parameter ini adalah 1.000. Di ossfs 1.91.1 dan versi setelahnya, nilai default-nya adalah 100.000, yang mengonsumsi puluhan megabyte memori. Sesuaikan nilai ini berdasarkan memori yang tersedia di mesin Anda.

Kesalahan Unmount: Perangkat atau sumber daya sibuk

Penyebab: Proses sedang mengakses file di bawah titik pemasangan /mnt/ossfs-bucket, yang mencegah direktori dilepas pemasangannya.

Solusi:

  1. Jalankan perintah lsof /mnt/ossfs-bucket untuk menemukan proses yang menggunakan direktori tersebut.

  2. Gunakan perintah kill untuk menghentikan proses tersebut.

  3. Jalankan perintah fusermount -u /mnt/ossfs-bucket untuk melepas pemasangan bucket.

Banyak log 404 di ossfs 1.0

Informasi latar belakang: Saat Anda menggunakan ossfs 1.0, umum melihat catatan 404 Not Found di log. Dalam kebanyakan kasus, ini bukan error sistem. Ini adalah perilaku yang diharapkan karena ossfs 1.0 mensimulasikan sistem file lokal.

Sebelum melakukan operasi pada file, sistem operasi memeriksa apakah objek target ada. Proses ini dapat memicu banyak permintaan probe ke OSS. Jika objek tidak ada, OSS mengembalikan kode status 404.

Langkah-langkah berikut menjelaskan cara ossfs 1.0 memeriksa keberadaan objek:

  1. ossfs mengirim permintaan HeadObject untuk memeriksa apakah path yang ditentukan, seperti object, ada sebagai objek aktual.

    Jika objek ada, sistem mengembalikan metadata objek. Jika objek tidak ada, sistem mengembalikan error 404 dan melanjutkan ke langkah berikutnya.

  2. Setelah menerima error 404, ossfs mengirim permintaan HeadObject untuk memeriksa apakah objek object/ ada.

    Jika objek ada, sistem mengembalikan metadata objek. Jika objek tidak ada, sistem mengembalikan error 404 dan melanjutkan ke langkah berikutnya.

  3. Setelah menerima error 404, ossfs mengirim permintaan HeadObject untuk memeriksa apakah objek object_$folder$ ada.

    Jika objek ada, sistem mengembalikan metadata objek. Jika objek tidak ada, sistem mengembalikan error 404 dan melanjutkan ke langkah berikutnya.

  4. Setelah menerima error 404, ossfs mengirim permintaan ListObjects untuk menentukan apakah path yang ditentukan adalah direktori dengan mencantumkan objek yang memiliki awalan object/.

    Jika hasilnya kosong, path tersebut tidak ada. Jika hasilnya tidak kosong, direktori tersebut ada dan sistem mencantumkan isi direktori.

Penyebab:

  • Jika Anda menggunakan perintah seperti stat untuk mengakses file yang tidak ada, OSS mengembalikan error 404, yang dipetakan ke error sistem file lokal "No such file or directory".

  • Sebelum membuat file atau direktori secara massal, sistem operasi memeriksa apakah target ada dan hanya mengirim permintaan pembuatan jika tidak ada. Error 404 yang dihasilkan selama pemeriksaan ini adalah perilaku yang diharapkan, bukan masalah sistem.

Solusi: Meskipun error 404 menunjukkan perilaku yang diharapkan, permintaan probe yang sering dapat memengaruhi performa dalam skenario konkurensi tinggi atau operasi massal. Anda dapat menggunakan opsi berikut untuk mengoptimalkan performa:

Penting

Setelah Anda mengonfigurasi opsi ini, ossfs 1.0 tidak dapat mendeteksi perubahan yang dilakukan pada objek di OSS hingga cache lokal kedaluwarsa.

  1. Tingkatkan nilai -o stat_cache_expire dan -o max_stat_cache_size untuk memperpanjang durasi cache metadata dan meningkatkan jumlah entri cache.

    Jika Anda menanyakan file atau direktori sebelum metadata-nya kedaluwarsa, ossfs menghindari pengiriman permintaan berulang ke OSS.

    • -o stat_cache_expire: menentukan waktu kedaluwarsa cache metadata. Nilai default-nya adalah 900 detik.

    • -o max_stat_cache_size: menentukan jumlah entri dalam cache metadata. Nilai default-nya adalah 100000.

  2. Jika Anda menggunakan versi ossfs sebelum 1.91.6, aktifkan cache negatif menggunakan opsi -o enable_noobj_cache. Di ossfs 1.91.6 dan versi setelahnya, cache negatif diaktifkan secara default.

    Saat file ditanyakan untuk pertama kalinya dan tidak ada, ossfs menyimpan hasilnya dalam memori. Sebelum cache kedaluwarsa, permintaan berikutnya menggunakan cache negatif lokal alih-alih mengirim permintaan ke OSS.

    Catatan

    Di ossfs 1.0, cache negatif file merupakan bagian dari cache metadata. Anda dapat menggunakan parameter -o stat_cache_expire untuk mengontrol waktu kedaluwarsa dan parameter -o max_stat_cache_size untuk mengontrol jumlah maksimum entri cache.