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.

Tentang proyek sumber terbuka BlobFuse2

BlobFuse2 adalah proyek sumber terbuka yang menggunakan pustaka sumber terbuka libfuse (fuse3) untuk berkomunikasi dengan modul kernel Linux FUSE. BlobFuse2 menerapkan operasi sistem file dengan menggunakan REST API Azure Storage.

Proyek sumber terbuka BlobFuse2 ada di GitHub:

Lisensi

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, rmdiropen, read, create, write, close, unlink, truncate, statdan rename.
  • Gunakan penembolokan file lokal untuk meningkatkan waktu akses berikutnya.
  • Dapatkan wawasan tentang aktivitas pemasangan dan penggunaan sumber daya dengan menggunakan BlobFuse2 Health Monitor.

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

Penyempurnaan BlobFuse2 dari BlobFuse v1

BlobFuse2 memiliki lebih banyak dukungan fitur dan peningkatan performa dalam beberapa skenario pengguna dari BlobFuse v1. Untuk daftar peningkatan yang luas, lihat README BlobFuse2. 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 Kesehatan 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 yang menarik 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 REST API Blob. Misalnya, operasi penggantian nama bersifat atomik 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 hal, 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, , opendirreaddir, rmdir, open, read, createwrite, , close, unlink, truncate, stat, dan rename berfungsi 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 dengan benar di dalam direktori. 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 aslinya. Direktori mengganti nama secara rekursif menghitung semua file dalam 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:

    Data Lake Storage Gen2 dukungan akun penyimpanan per izin objek dan ACL, tetapi blob blok namespace datar (FNS) tidak. Akibatnya, BlobFuse2 tidak mendukung operasi chown dan chmod 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 di 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 menang dan tulisan 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 muncul.

Streaming

Untuk streaming selama operasi baca dan tulis, blok data di-cache dalam memori saat dibaca atau diperbarui. Updates 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 tulis tunggal didukung, tetapi data yang dibaca dari beberapa utas mungkin tidak terkini.

Izin

Ketika kontainer dipasang dengan opsi default, semua file mendapatkan 770 izin dan hanya dapat diakses oleh pengguna yang melakukan pemasangan. Untuk memungkinkan setiap 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 sebenarnya tidak 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 Ya Ya Ya Ya
Blob Block Premium Ya Ya Ya Ya

1 Data Lake Storage Gen2, protokol NFS 3.0, dan dukungan SFTP semuanya memerlukan akun penyimpanan yang mengaktifkan namespace hierarkis.

Lihat juga

Langkah berikutnya