BlobFuse nedir? - BlobFuse2

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

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 dosyasındadır. 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.)
  • , , , , readdiropenrmdirread, create, , write, close, unlinkstattruncateve renamegibi mkdirtemel dosya sistemi işlemlerini kullanın. opendir
  • Sonraki erişim sürelerini geliştirmek için yerel dosya önbelleğe alma özelliğini kullanın.
  • BlobFuse2 Sistem Durumu İzleyicisi'yi 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 karşıya 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. İyileştirmelerin kapsamlı listesi için bkz . BlobFuse2 BENİOKU. BlobFuse v1'den BlobFuse2'deki iyileş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 (önceden yalnızca okuma akışı destekleniyordu)
  • Bağlama etkinlikleri ve kaynak kullanımıyla ilgili 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 iyileştirmelerinin listesine bakın.

BlobFuse v1 kullanıcıları için

BlobFuse2 tarafından sağlanan geliştirmeler, BlobFuse2'ye yükseltmek ve geçiş yapmak 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 bunu 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 şeması aynıdır ve sınırlayıcı olarak eğik çizgi (/) kullanır. , , , , , rmdir, open, read, , create, , , writeunlinktruncateclosestatve 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 dizin 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 blobu 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ı veya kanalları oluşturmayı desteklemez.

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

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

  • Yazma akışı:

    Büyük dosya verilerinde okuma ve yazma işlemlerinin eşzamanlı 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, 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 tamamen diskte depolandığında olduğu 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'leri veya BlobFuse2'nin diğer bağlamalarını kullanarak 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ı dosyaya aynı anda yazma girişiminde bulunursa, 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 olmaması olabilir.

Diskte dosya önbelleğe alma

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

Akış

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'ya boşaltılır.

Aynı blobu birden çok eşzamanlı iş parçacığından okuma desteklenir. Ancak, eşzamanlı yazma işlemleri veri kaybı da dahil olmak üzere beklenmeyen dosya verisi sonuçlarına neden olabilir. Eşzamanlı okuma işlemlerinin ve tek bir yazma işleminin gerçekleştirilmesi 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ı üzerinde işlem chmod çalıştırmak başarılı bir ileti döndürür, ancak işlem aslında başarılı olmaz.

Ö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.

Depolama hesabı türü 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 Yes Yes Yes
Premium blok blobları Yes Yes Yes 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