Apa itu BlobFuse? - BlobFuse2
BlobFuse adalah driver sistem file virtual untuk Azure Blob Storage. Gunakan BlobFuse untuk mengakses data blob blok Azure yang ada melalui sistem file Linux. Blob halaman tidak didukung.
Tentang proyek sumber terbuka BlobFuse2
BlobFuse2 adalah proyek sumber terbuka yang menggunakan pustaka libfuse sumber terbuka (fuse3) untuk berkomunikasi dengan modul kernel Linux FUSE. BlobFuse2 mengimplementasikan operasi sistem file dengan menggunakan REST API Azure Storage.
Proyek sumber terbuka BlobFuse2 ada di GitHub:
Pelisensian
Proyek BlobFuse2 dilisensikan di bawah lisensi MIT.
Fitur
Daftar lengkap fitur BlobFuse 2 ada di BlobFuse 2 README. Ini adalah beberapa tugas utama yang dapat Anda lakukan dengan menggunakan BlobFuse2:
- Pasang kontainer Azure Blob Storage atau sistem file Azure Data Lake Storage Gen2 di Linux. (BlobFuse2 mendukung akun penyimpanan dengan namespace datar atau namespace hierarkis yang dikonfigurasi.)
- Gunakan operasi sistem file dasar seperti
mkdir
, ,opendir
,readdir
,rmdir
open
,read
,create
,write
,close
,unlink
,truncate
,stat
danrename
. - Gunakan penembolokan file lokal untuk meningkatkan waktu akses berikutnya.
- Dapatkan wawasan tentang aktivitas pemasangan dan penggunaan sumber daya dengan menggunakan blobFuse2 Monitor Kondisi.
Fitur utama lainnya di BlobFuse2 meliputi:
- Streaming untuk mendukung membaca dan menulis file besar
- Unduhan dan unggahan paralel untuk meningkatkan waktu akses file besar
- Beberapa pemasangan ke kontainer yang sama untuk beban kerja baca-saja
Penting
Jika Anda menggunakan versi 2.2.0, 2.2.1, atau 2.3.0, menahan diri dari menggunakan Block-cache
mode dan beralih ke file-cache
mode sampai masalah yang diketahui diperbaiki.
Peningkatan BlobFuse2 dari BlobFuse v1
BlobFuse2 memiliki lebih banyak dukungan fitur dan peningkatan performa dalam beberapa skenario pengguna dari BlobFuse v1. Untuk daftar peningkatan yang lengkap, lihat BlobFuse2 README. Berikut adalah ringkasan peningkatan di BlobFuse2 dari BlobFuse v1:
- Penembolokan yang disempurnakan
- Lebih banyak dukungan manajemen melalui perintah Azure CLI baru
- Dukungan pengelogan lainnya
- Penambahan write-streaming untuk file besar (sebelumnya, hanya read-streaming yang didukung)
- Monitor Kondisi BlobFuse2 baru untuk membantu Anda mendapatkan wawasan tentang aktivitas pemasangan dan penggunaan sumber daya
- Opsi kompatibilitas dan peningkatan untuk pengguna BlobFuse v1 yang ada
- Pemeriksaan dan permintaan versi
- Dukungan untuk enkripsi file konfigurasi
Lihat daftar peningkatan performa BlobFuse2 dari BlobFuse v1.
Untuk pengguna BlobFuse v1
Peningkatan yang disediakan oleh BlobFuse2 adalah alasan kuat untuk meningkatkan dan bermigrasi ke BlobFuse2. Jika Anda belum siap untuk bermigrasi, Anda dapat menggunakan BlobFuse2 untuk memasang kontainer blob dengan menggunakan opsi konfigurasi yang sama dan parameter Azure CLI yang Anda gunakan dengan BlobFuse v1.
Panduan migrasi BlobFuse2 menyediakan semua detail yang Anda butuhkan untuk kompatibilitas dan memigrasikan beban kerja Anda saat ini.
Dukungan
BlobFuse2 didukung oleh Microsoft jika digunakan dalam batas yang ditentukan. Jika Anda mengalami masalah, laporkan di GitHub.
Batasan
BlobFuse2 tidak menjamin kepatuhan POSIX 100% karena BlobFuse2 hanya menerjemahkan permintaan ke dalam API REST Blob. Misalnya, operasi penggantian nama adalah atom di POSIX tetapi tidak di BlobFuse2.
Lihat daftar lengkap perbedaan antara sistem file asli dan BlobFuse2.
Perbedaan antara sistem file Linux dan BlobFuse2
Dalam banyak cara, Anda dapat menggunakan penyimpanan yang dipasang BlobFuse2 seperti sistem file Linux asli. Skema direktori virtual sama dan menggunakan garis miring (/
) sebagai pemisah. Operasi sistem file dasar seperti mkdir
, , opendir
, readdir
, rmdir
, open
read
, create
write
, , close
, unlink
, truncate
, stat
dan rename
bekerja sama seperti dalam sistem file Linux.
BlobFuse2 berbeda dari sistem file Linux dengan beberapa cara utama:
Jumlah tautan keras Readdir:
Untuk alasan performa, BlobFuse2 tidak melaporkan tautan keras di dalam direktori dengan benar. Jumlah tautan keras untuk direktori kosong ditampilkan sebagai 2. Angka untuk direktori yang tidak kosong selalu ditampilkan sebagai 3, terlepas dari jumlah tautan keras yang sebenarnya.
Penggantian nama non-atomik:
Azure Blob Storage tidak mendukung operasi penggantian nama atomik. Penggantian nama file tunggal sebenarnya adalah dua operasi: salinan, lalu penghapusan asli. Direktori mengganti nama secara rekursif menghitung semua file di direktori dan mengganti nama setiap file.
File khusus:
BlobFuse2 hanya mendukung direktori, file reguler, dan tautan simbolis. File khusus seperti file perangkat, pipa, dan soket tidak didukung.
mkfifo:
Pembuatan fifo tidak didukung oleh BlobFuse2. Mencoba tindakan ini menghasilkan kesalahan "fungsi tidak diimplementasikan".
chown dan chmod:
Akun penyimpanan Data Lake Storage Gen2 mendukung izin per objek dan ACL, tetapi blob blok namespace datar (FNS) tidak. Akibatnya, BlobFuse2 tidak mendukung operasi
chown
danchmod
untuk kontainer blob blok yang dipasang. Operasi didukung untuk Data Lake Storage Gen2.File atau pipa perangkat:
BlobFuse2 tidak mendukung pembuatan file atau pipa perangkat.
Atribut yang diperluas (x-attrs):
BlobFuse2 tidak mendukung operasi extended-attributes (
x-attrs
).Write-streaming:
Streaming bersamaan operasi baca dan tulis pada data file besar mungkin menghasilkan hasil yang tidak dapat diprediksi. Menulis secara bersamaan ke blob yang sama dari utas yang berbeda tidak didukung.
Integritas data
Penembolokan file memainkan peran penting dalam integritas data yang dibaca dan ditulis ke pemasangan sistem file Blob Storage. Kami merekomendasikan mode streaming untuk digunakan dengan file besar, yang mendukung streaming untuk operasi baca dan tulis. BlobFuse2 menyimpan blok file streaming dalam memori. Untuk file yang lebih kecil yang tidak terdiri dari blok, seluruh file disimpan dalam memori. Cache file adalah mode kedua. Kami merekomendasikan cache file untuk beban kerja yang tidak berisi file besar, seperti ketika file disimpan pada disk secara keseluruhan.
BlobFuse2 mendukung operasi baca dan tulis. Sinkronisasi data berkelanjutan yang ditulis ke penyimpanan dengan menggunakan API lain atau pemasangan BlobFuse2 lainnya tidak dijamin. Untuk integritas data, sebaiknya beberapa sumber tidak memodifikasi blob yang sama, terutama pada saat yang sama. Jika satu atau beberapa aplikasi mencoba menulis ke file yang sama secara bersamaan, hasilnya mungkin tidak terduga. Tergantung pada waktu beberapa operasi tulis dan kesegaran cache untuk setiap operasi, hasilnya mungkin penulis terakhir yang menang dan penulis sebelumnya hilang, atau umumnya file yang diperbarui tidak dalam keadaan yang dimaksudkan.
Penembolokan file pada disk
Ketika file adalah subjek operasi tulis, data pertama kali disimpan ke cache pada disk lokal. Data ditulis ke Blob Storage hanya setelah handel file ditutup. Jika masalah saat mencoba mempertahankan data ke Blob Storage terjadi, pesan kesalahan akan muncul.
Streaming
Untuk streaming selama operasi baca dan tulis, blok data di-cache dalam memori saat dibaca atau diperbarui. Pembaruan dibersihkan ke Azure Storage saat file ditutup atau saat buffer diisi dengan blok kotor.
Membaca blob yang sama dari beberapa utas simultan didukung. Namun, operasi tulis simultan dapat mengakibatkan hasil data file yang tidak terduga, termasuk kehilangan data. Melakukan operasi baca simultan dan operasi penulisan tunggal didukung, tetapi data yang dibaca dari beberapa utas mungkin tidak terkini.
Izin
Saat kontainer dipasang dengan opsi default, semua file mendapatkan 770 izin dan hanya dapat diakses oleh pengguna yang melakukan pemasangan. Untuk mengizinkan pengguna mengakses pemasangan BlobFuse2, pasang BlobFuse2 dengan menggunakan --allow-other
opsi . Anda juga dapat mengonfigurasi opsi ini dalam file konfigurasi YAML.
Seperti yang dinyatakan chown
sebelumnya, operasi dan chmod
didukung untuk Data Lake Storage Gen2, tetapi tidak untuk blob blok FNS. chmod
Menjalankan operasi terhadap kontainer blob blok FNS yang dipasang mengembalikan pesan sukses, tetapi operasi tidak benar-benar berhasil.
Dukungan fitur
Tabel ini menunjukkan bagaimana fitur ini didukung di akun Anda dan berdampak pada dukungan saat Anda mengaktifkan kemampuan tertentu.
Jenis akun penyimpanan | Blob Storage (dukungan default) | Data Lake Storage Gen2 1 | Network File System (NFS) 3.0 1 | Protokol Transfer File SSH (SFTP) 1 |
---|---|---|---|---|
Tujuan umum standar v2 | ||||
Blob Block Premium |
1 Data Lake Storage Gen2, protokol NFS 3.0, dan dukungan SFTP semuanya memerlukan akun penyimpanan yang mengaktifkan namespace hierarkis.