Cache metadata ossfs cocok untuk skenario dengan IOPS baca/tulis tinggi pada data Object Storage Service (OSS). Dengan mengaktifkan cache metadata ossfs, efisiensi operasi objek dan waktu respons permintaan meningkat. Topik ini menjelaskan cara mengonfigurasi dan menggunakan cache metadata ossfs secara efektif.
Saat menggunakan cache metadata ossfs, perhatikan masalah konsistensi dan ketepatan waktu data. Oleh karena itu, kami menyarankan agar Anda tidak mengaktifkan cache metadata ossfs dalam skenario yang memiliki persyaratan tinggi terkait ketepatan waktu data.
Informasi latar belakang
Metadata adalah informasi yang menggambarkan data, seperti ukuran objek, waktu pembuatan, waktu modifikasi, serta ID pengguna dan grup. OSS tidak mendukung atribut ID pengguna dan grup, tetapi sistem file bergantung pada atribut ini untuk pemeriksaan izin. ossfs memungkinkan Anda mendapatkan informasi tambahan dari header kustom objek di OSS, sehingga Anda dapat melakukan operasi pada objek berdasarkan atributnya di Linux.
Dengan mengaktifkan cache metadata ossfs, performa, penggunaan sumber daya, dan pengalaman pengguna meningkat.
Performa: Cache metadata ossfs mengurangi latensi pembacaan metadata, terutama dalam skenario dengan operasi I/O tinggi, sehingga meningkatkan efisiensi operasi objek.
Penggunaan Sumber Daya: Cache metadata ossfs mengurangi jumlah panggilan ke OSS dan permintaan per detik (QPS) saat Anda sering mengakses data panas.
Pengalaman Pengguna: Waktu respons permintaan meningkat.
Skenario
Cache metadata ossfs cocok untuk skenario di mana server digunakan untuk mengakses data OSS.
Dalam lingkungan terdistribusi, cache metadata ossfs cocok untuk skenario di mana data yang jarang berubah dibaca dari OSS, seperti set data pelatihan AI, file model AI, dan kueri data besar.
Cara kerjanya
ossfs menggunakan memori klien untuk menyimpan cache metadata OSS, mengurangi latensi operasi penyimpanan jarak jauh.
Cache Metadata untuk Akses Data Pertama:
Saat pertama kali mengakses objek atau direktori di bawah titik mount ossfs, klien ossfs mengambil metadata objek dari OSS dan menyimpannya di cache lokal.
Akselerasi Akses Selanjutnya:
Jika kebijakan penghapusan cache dinonaktifkan atau cache belum kedaluwarsa, akses selanjutnya ke metadata objek langsung dibaca dari cache lokal tanpa perlu mengirim permintaan ke OSS, sehingga sangat mengurangi latensi.
Kebijakan Pembaruan Cache:
ossfs memperbarui cache lokal berdasarkan kebijakan tertentu, seperti kedaluwarsa cache dan batas atas cache.
Sinkronisasi Cache Multi-Klien:
Cache metadata ossfs adalah cache lokal satu server yang menggunakan memori klien. Anda tidak dapat menggunakan satu server untuk memasang beberapa bucket ke beberapa sistem file lokal sekaligus atau menyinkronkan perubahan metadata antara beberapa server.
Perbandingan mode
Tabel berikut menjelaskan perbedaan sebelum dan sesudah mengaktifkan cache metadata ossfs.
Cache metadata ossfs | Perintah | Metode Permintaan | Operasi | Performa |
Cache metadata ossfs dinonaktifkan | stat | ossfs mengirim permintaan HeadObject ke bucket untuk mendapatkan metadata objek. | ossfs mengirim permintaan HeadObject untuk mendapatkan hanya satu objek dari bucket. | Metadata objek diperoleh dari bucket, yang lebih lambat daripada membaca dari memori. |
ls | ossfs mengirim permintaan ListObject ke bucket untuk mendapatkan objek dalam direktori dan mengirim permintaan HeadObject untuk mendapatkan metadata objek. | Setelah ossfs mengirim permintaan ListObject, ossfs mengirim permintaan HeadObject untuk mendapatkan hanya satu objek dalam direktori dari bucket. | ||
Cache metadata ossfs diaktifkan (cache metadata tidak kedaluwarsa) | stat | ossfs mendapatkan metadata objek dari memori lokal. | ossfs mendapatkan objek dari memori. | Metadata objek dibaca dari memori lokal, yang lebih cepat. |
ls | ossfs mengirim permintaan ListObject ke bucket untuk mendapatkan objek dalam direktori dan mendapatkan metadata objek dari memori lokal. | Setelah ossfs mengirim permintaan ListObject, ossfs mendapatkan objek dalam direktori. Jika Anda ingin mengakses objek tertentu dalam direktori, ossfs mendapatkan objek tersebut dari memori lokal. |
Parameter
Tabel berikut menjelaskan parameter yang dapat dikonfigurasikan untuk cache metadata ossfs.
Parameter | Deskripsi | Nilai |
max_stat_cache_size | Menentukan apakah akan mengaktifkan cache metadata dan ukuran maksimum cache metadata. Tentukan parameter berdasarkan jumlah objek yang sering diakses di OSS. Jika memori mencukupi, kami menyarankan Anda menetapkan parameter ke nilai yang lebih besar untuk meningkatkan performa operasi.
| Nilai default: 100.000. Satuan: objek atau direktori. Ukuran: sekitar 40 MB. |
stat_cache_expire | Menentukan apakah akan mengaktifkan kebijakan penghapusan cache untuk cache metadata dan mengubah periode validitas cache metadata. Kami menyarankan Anda menentukan periode validitas cache metadata berdasarkan kebutuhan bisnis Anda.
Catatan Secara default, ossfs mengaktifkan kebijakan penghapusan cache dan menetapkan batas atas untuk cache metadata menjadi 100.000, yang mengonsumsi sekitar 40 MB memori. | Nilai default: 900. Satuan: detik. |
readdir_optimize | Menentukan apakah akan menggunakan optimasi cache. Nilai default: false. Setelah Anda menentukan parameter, ossfs tidak mengirim permintaan HeadObject untuk mendapatkan metadata objek, seperti Untuk menggunakan optimasi cache, tentukan | Nilai default: false. |
Mekanisme manajemen cache metadata
Tabel berikut menjelaskan mekanisme manajemen cache metadata ossfs.
Status Cache | Operasi |
Metadata objek disimpan dalam cache dan kebijakan penghapusan cache dinonaktifkan atau cache belum kedaluwarsa. | Baca metadata objek langsung dari cache. |
Metadata objek disimpan dalam cache dan cache telah kedaluwarsa. | Perbarui cache. |
Metadata objek tidak disimpan dalam cache dan kapasitas cache tersedia. | Simpan objek dalam cache. |
Metadata objek tidak disimpan dalam cache, kapasitas cache sepenuhnya terpakai, dan kebijakan penghapusan cache diaktifkan. | Lakukan penelusuran cache dan hapus objek yang kedaluwarsa. |
Metadata objek tidak disimpan dalam cache, kapasitas cache sepenuhnya terpakai, dan kebijakan penghapusan cache dinonaktifkan. | Hapus objek yang disimpan dalam cache yang tidak diakses untuk periode waktu yang lama berdasarkan kebijakan least recently used (LRU). |
Saran
Jika Anda tidak memerlukan metadata objek, tentukan parameter
readdir_optimizeuntuk meningkatkan performa operasilistdanfind. Setelah mengaktifkan cache metadata ossfs, tautan simbolik tidak lagi didukung.Dalam skenario multi-klien dengan persyaratan real-time tinggi untuk pembaruan data, lanjutkan dengan hati-hati jika Anda mengaktifkan cache metadata ossfs. Nonaktifkan cache metadata ossfs dengan menentukan parameter
-omax_stat_cache_size=0untuk menjaga konsistensi data. Namun, penurunan performa mungkin terjadi dan biaya tambahan mungkin dikenakan.Jika aplikasi Anda memerlukan konsistensi data yang kuat di beberapa klien, gunakan Cloud Storage Gateway (CSG) atau Cloud Parallel File Storage (CPFS). Kami menyarankan Anda tidak menggunakan ossfs.
Jika jumlah objek yang sering diakses di OSS besar, tingkatkan nilai parameter
max_stat_cache_sizesecara tepat untuk mencegah cache sering dihapus.Jika Anda ingin melakukan operasi pada sejumlah besar objek dan memori server tidak mencukupi, gunakan ossutil atau OSS SDKs untuk melakukan operasi. Jika Anda ingin memasang bucket ke sistem file lokal, gunakan CSG atau CPFS.
Jika jumlah objek yang sering diakses di OSS besar, buat beberapa titik mount OSSFS, masing-masing didedikasikan untuk subdirektori terpisah. Pengaturan ini mendistribusikan beban kerja di seluruh titik mount dan meningkatkan performa.