Share via


BlobFuse nedir? - BlobFuse2

BlobFuse, Azure Blob Depolama için bir sanal dosya sistemi sürücüsüdür. Mevcut Azure blok blob verilerinize Linux dosya sistemi üzerinden erişmek için BlobFuse kullanın. Sayfa blobları desteklenmez.

BlobFuse2 açık kaynak projesi hakkında

BlobFuse2, Linux FUSE çekirdek modülüyle iletişim kurmak için libfuse açık kaynak kitaplığını (fuse3) kullanan bir açık kaynak projesidir. BlobFuse2, Azure Depolama REST API'lerini kullanarak dosya sistemi işlemlerini uygular.

açık kaynak BlobFuse2 projesi GitHub'dadır:

Lisanslama

BlobFuse2 projesi MIT lisansı kapsamında lisanslanır.

Özellikler

BlobFuse2 özelliklerinin tam listesi BlobFuse2 BENİOKU içindedir. BlobFuse2 kullanarak gerçekleştirebileceğiniz temel görevlerden bazıları şunlardır:

  • Linux'ta bir Azure Blob Depolama kapsayıcısı veya Azure Data Lake Storage 2. Nesil dosya sistemi bağlayın. (BlobFuse2, düz ad alanları veya hiyerarşik ad alanı yapılandırılmış depolama hesaplarını destekler.)
  • , , , , , , rmdiropen, , read, truncateclosecreatewriteunlinkstatve renamegibi mkdirtemel dosya sistemi işlemlerini kullanın. readdiropendir
  • Sonraki erişim sürelerini iyileştirmek için yerel dosya önbelleğe alma özelliğini kullanın.
  • BlobFuse2 Sistem Durumu İzleyicisi kullanarak bağlama etkinlikleri ve kaynak kullanımı hakkında içgörüler elde edin.

BlobFuse2'deki diğer önemli özellikler şunlardır:

  • Büyük dosyaları okumayı ve yazmayı desteklemek için akış
  • Büyük dosyalar için erişim süresini geliştirmek için paralel indirmeler ve yüklemeler
  • Salt okunur iş yükleri için aynı kapsayıcıya birden çok bağlama

BlobFuse v1'den BlobFuse2 geliştirmeleri

BlobFuse2, BlobFuse v1'den birden çok kullanıcı senaryosunda daha fazla özellik desteğine ve geliştirilmiş performansa sahiptir. Kapsamlı iyileştirme listesi için bkz . BlobFuse2 BENİOKU. BlobFuse v1'den BlobFuse2'deki geliştirmelerin özeti aşağıdadır:

  • Geliştirilmiş önbelleğe alma
  • Yeni Azure CLI komutları aracılığıyla daha fazla yönetim desteği
  • Daha fazla günlük desteği
  • Büyük dosyalar için yazma akışı ekleme (daha önce yalnızca okuma akışı destekleniyordu)
  • Bağlama etkinlikleri ve kaynak kullanımı hakkında içgörüler elde etmenize yardımcı olmak için yeni BlobFuse2 Sistem Durumu İzleyicisi
  • Mevcut BlobFuse v1 kullanıcıları için uyumluluk ve yükseltme seçenekleri
  • Sürüm denetimi ve yükseltme istemi
  • Yapılandırma dosyası şifreleme desteği

BlobFuse v1'den BlobFuse2 performans geliştirmeleri listesine bakın.

BlobFuse v1 kullanıcıları için

BlobFuse2 tarafından sağlanan geliştirmeler, BlobFuse2'yi yükseltmek ve blobFuse2'ye geçirmek için cazip nedenlerdir. Geçişe hazır değilseniz BlobFuse v1 ile kullandığınız yapılandırma seçeneklerini ve Azure CLI parametrelerini kullanarak blob kapsayıcısını bağlamak için BlobFuse2 kullanabilirsiniz.

BlobFuse2 geçiş kılavuzu, uyumluluk ve geçerli iş yüklerinizi geçirmek için ihtiyacınız olan tüm ayrıntıları sağlar.

Destek

BlobFuse2, belirtilen sınırlar içinde kullanılıyorsa Microsoft tarafından desteklenir. Bir sorunla karşılaşırsanız GitHub'da bildirin.

Sınırlamalar

BlobFuse2 yalnızca istekleri Blob REST API'lerine çevirdiğinden, BlobFuse2 %100 POSIX uyumluluğunu garanti etmez. Örneğin, yeniden adlandırma işlemleri POSIX'te atomiktir ancak BlobFuse2'de değildir.

Yerel dosya sistemi ile BlobFuse2 arasındaki farkların tam listesine bakın.

Linux dosya sistemi ile BlobFuse2 arasındaki farklar

Yerel Linux dosya sistemi gibi BlobFuse2'ye bağlı depolamayı birçok şekilde kullanabilirsiniz. Sanal dizin düzeni aynıdır ve sınırlayıcı olarak eğik çizgi (/) kullanır. , , , , , rmdir, open, , read, , create, write, unlinkstattruncateclose, ve rename gibi mkdirtemel dosya sistemi işlemleri Linux dosya sistemindekiyle aynı şekilde çalışır. readdiropendir

BlobFuse2, Linux dosya sisteminden bazı önemli yollarla farklıdır:

  • Sabit bağlantıların readdir sayısı:

    Performans nedenleriyle BlobFuse2, bir dizinin içindeki sabit bağlantıları doğru şekilde raporlamaz. Boş dizinler için sabit bağlantı sayısı 2 olarak döndürülüyor. Boş olmayan dizinlerin sayısı, sabit bağlantıların gerçek sayısından bağımsız olarak her zaman 3 olarak döndürür.

  • Atomik olmayan yeniden adlandırmalar:

    Azure Blob Depolama atomik yeniden adlandırma işlemlerini desteklemez. Tek dosyalı yeniden adlandırmalar aslında iki işlemdir: bir kopya ve ardından özgün dosyanın silinmesi. Dizin, dizindeki tüm dosyaları yinelemeli olarak yeniden adlandırır ve her dosyayı yeniden adlandırır.

  • Özel dosyalar:

    BlobFuse2 yalnızca dizinleri, normal dosyaları ve sembolik bağlantıları destekler. Cihaz dosyaları, kanallar ve yuvalar gibi özel dosyalar desteklenmez.

  • mkfifo:

    Fifo oluşturma, BlobFuse2 tarafından desteklenmez. Bu eylemin denenmesi "işlev uygulanmadı" hatasıyla sonuçlanır.

  • chown ve chmod:

    Data Lake Storage 2. Nesil depolama hesapları nesne başına izinleri ve ACL'leri destekler, ancak düz ad alanı (FNS) blok blobları desteklemez. Sonuç olarak, BlobFuse2 bağlı blok blob kapsayıcıları chown için ve chmod işlemlerini desteklemez. İşlemler Data Lake Storage 2. Nesil için desteklenir.

  • Cihaz dosyaları veya kanalları:

    BlobFuse2, cihaz dosyalarının veya kanalların oluşturulmasını desteklemez.

  • Genişletilmiş öznitelikler (x-attrs):

    BlobFuse2, genişletilmiş öznitelik (x-attrs) işlemlerini desteklemez.

  • Yazma akışı:

    Büyük dosya verilerinde eşzamanlı okuma ve yazma işlemlerinin akışı öngörülemeyen sonuçlara neden olabilir. Aynı bloba farklı iş parçacıklarından aynı anda yazma desteklenmez.

Veri bütünlüğü

Dosya önbelleğe alma, bir Blob Depolama dosya sistemi bağlamasına okunan ve yazılan verilerin bütünlüğünde önemli bir rol oynar. Hem okuma hem de yazma işlemleri için akışı destekleyen büyük dosyalarla kullanmak üzere akış modunu öneririz. BlobFuse2, akış dosyalarının bloklarını bellekte önbelleğe alır. Bloklardan oluşmamış daha küçük dosyalar için dosyanın tamamı bellekte depolanır. Dosya önbelleği ikinci moddur. Dosyaların diskte tamamen depolandığı durumlar gibi büyük dosyalar içermeyen iş yükleri için dosya önbelleğini öneririz.

BlobFuse2, okuma ve yazma işlemlerini destekler. Diğer API'ler veya BlobFuse2'nin diğer bağlamaları kullanılarak depolamaya yazılan verilerin sürekli eşitlenmesi garanti değildir. Veri bütünlüğü için, özellikle aynı anda birden çok kaynağın aynı blobu değiştirmesini öneririz. Bir veya daha fazla uygulama aynı anda aynı dosyaya yazmaya çalışırsa, sonuçlar beklenmeyen olabilir. Birden çok yazma işleminin zamanlamasına ve her işlem için önbelleğin güncelliğine bağlı olarak, sonuç son yazıcının kazanması ve önceki yazma işlemlerinin kaybolması veya genellikle güncelleştirilmiş dosyanın hedeflenen durumda olmadığı olabilir.

Diskte dosya önbelleğe alma

Bir dosya bir yazma işleminin konusu olduğunda, veriler ilk olarak yerel diskte önbelleğe almak için kalıcı hale getirilir. Veriler Blob Depolama yalnızca dosya tanıtıcısı kapatıldıktan sonra yazılır. Verileri Blob Depolama kalıcı hale getirmek için bir sorun oluşursa bir hata iletisi görüntülenir.

Akışlar

Okuma ve yazma işlemleri sırasında akış için veri blokları, okundukça veya güncelleştirildikçe bellekte önbelleğe alınır. Güncelleştirmeler, bir dosya kapatıldığında veya arabellek kirli bloklarla doldurulduğunda Azure Depolama temizlenir.

Aynı blobu aynı anda birden çok iş parçacığından okumak desteklenir. Ancak eşzamanlı yazma işlemleri, veri kaybı da dahil olmak üzere beklenmeyen dosya verileri sonuçlarına neden olabilir. Eşzamanlı okuma işlemleri ve tek bir yazma işlemi gerçekleştirme desteklenir, ancak bazı iş parçacıklarından okunan veriler geçerli olmayabilir.

İzinler

Bir kapsayıcı varsayılan seçeneklerle bağlandığında, tüm dosyalar 770 izin alır ve yalnızca bağlamayı yapan kullanıcı tarafından erişilebilir. Herhangi bir kullanıcının BlobFuse2 bağlamasına erişmesine izin vermek için, seçeneğini kullanarak BlobFuse2'yi --allow-other bağlayın. Bu seçeneği YAML yapılandırma dosyasında da yapılandırabilirsiniz.

Daha chown önce belirtildiği gibi ve chmod işlemleri Data Lake Storage 2. Nesil için desteklenir, ancak FNS blok blobları için desteklenmez. Bağlı bir FNS blok blob kapsayıcısına yönelik bir chmod işlem çalıştırılırken başarılı bir ileti döndürülüyor, ancak işlem gerçekten başarılı olmuyor.

Özellik desteği

Bu tabloda, bu özelliğin hesabınızda nasıl desteklendiği ve belirli özellikleri etkinleştirdiğinizde destek üzerindeki etkisi gösterilir.

Storage account type Blob Depolama (varsayılan destek) Data Lake Storage 2. Nesil 1 Ağ Dosya Sistemi (NFS) 3.0 1 SSH Dosya Aktarım Protokolü (SFTP) 1
Standart genel amaçlı v2 Yes Evet Evet Yes
Premium blok blobları Yes Evet Evet Yes

1 Data Lake Storage 2. Nesil, NFS 3.0 protokolü ve SFTP desteği, hiyerarşik ad alanı etkinleştirilmiş bir depolama hesabı gerektirir.

Ayrıca bkz.

Sonraki adımlar