FuseFS dosya sistemlerini kullanmanın yararları ve dezavantajları nelerdir?


19

Bazı dosya sistemlerinin kendilerini Fuse aracılığıyla sunduğunu biliyorum ve bu yaklaşımın artılarını ve eksilerini merak ediyordum.

Yanıtlar:


17

Gerçek, diskteki dosya sistemlerini veya herhangi bir dosya sistemini kastediyorsanız olumlu değilim. Mümkün olduğunu düşünmeme rağmen normal bir dosya sisteminin FUSE kullandığını hiç görmedim; FUSE ürününün ana yararı, dosya sistemine benzeyen uygulamalara (veya kullanıcıya) bir şey sunmanıza izin verir, ancak kullanıcı bir dizindeki dosyaları listelemek veya yeni bir dosya oluşturmak gibi şeyler yapmaya çalıştığında gerçekten uygulamanızdaki işlevleri çağırır. dosya. Plan9 , dosya sistemi aracılığıyla her şeyi erişilebilir hale getirmeye çalıştığı iyi bilinir ve /procsözde dosya sistemi bunlardan gelir; FUSE, uygulamaların bu kalıbı kolayca takip etmesinin bir yoludur

Örneğin, SE site verilerine erişim sağlayan (çok özelliksiz) bir FUSE dosya sisteminin ekran görüntüsü:

Eylemdeki FUSE dosya sisteminin ekran görüntüsü

Doğal olarak bu dosyaların hiçbiri aslında mevcut değildir; ne zaman lskullanıcı 73 hakkında yük bilgilere bu siteye bir API isteği yaptılar benim programda bir işlev çağrıldığında dizin FUSE dosyaların listesini istedi (me); önbelleğe alınmış verileri bellekten, diskte gerçekte hiçbir şey olmadan döndüren daha fazla işlev catokumaya display_nameve website_urlçağırmaya


3
FAT , NTFS , iso9660 , ext2 ve daha fazlasının FUSE uygulamaları vardır .
Gilles 'SO- kötü olmayı kes

2
Sigortada uygulanan ağır iş dosya sistemlerini bulacaksınız: LessFS, GlusterFS, MooseFS. Google'ın GFS'si (POSIX değil) kullanıcı alanında da çalışır.
Tobu

Bu uygulamayı nerede buldun?!?!
Nathan Osman

5
@George SO API ile uğraşırken yazdım. / Users dışında herhangi bir rota kullanmaz, bu nedenle temelde bu ekran görüntüsünde uygulanan tüm özellikleri görürsünüz; sadece ne kadar zor olacağını görmekti
Michael Mrozek

5
@George github
Michael Mrozek

19

Unix dosya sistemleri geleneksel olarak çekirdeğe uygulanır. FUSE , dosya sistemlerinin bir kullanıcı programı tarafından uygulanmasına izin verir.

Çekirdek dosya sistemleri, programlar ve veriler için ana dosya sistemleri için daha uygundur:

  • Önyükleme ortamında kullanılabilir (FUSE dosya sistemini uygulayan programın bir yerden yüklenmesi gerekir).
  • Daha sağlamdırlar, çünkü bir sürecin yanlışlıkla çökmesi veya yanlışlıkla öldürülmesi nedeniyle gitmeyeceklerdir.
  • Biraz daha hızlı.

FUSE dosya sistemlerinin, çoğunlukla esneklikleri etrafında dönen başka avantajları vardır:

  • Sıradan kullanıcılar tarafından yüklenebilir ve monte edilebilirler, bu nedenle kullanıcıların kendi başlarına monte etme eğiliminde oldukları dosya sistemleri için uygundurlar: ağ erişimi, arşiv dosyalarından geçmek, çıkarılabilir medya vb.
  • Bir FUSE dosya sistemi sürücüsü çökerse, çekirdeğiniz panik yapmaz: dosya sistemine erişen uygulamalarda G / Ç hatalarından daha kötü bir şey göremezsiniz.
  • Çok hızlı bir şekilde programlanabilirler; yararlı bir FUSE dosya sistemi sürücüsünün birkaç yüz kod satırında yazılabildiği birçok komut dosyası dili için FUSE bağlamaları vardır .
  • Hem bunları yüklemek için yönetici müdahalesine gerek olmadığı hem de desteklenen işletim sistemleri arasında kolayca taşınabildikleri için çok hızlı bir şekilde dağıtılabilirler .
  • Bir çekirdeğe statik olarak bağlı olmakla ilgili herhangi bir lisans sorunu yoktur (bu, zfs'yi etkilemektedir ).

7

FUSE gerçekten bir dosya sistemi değil, dosya sistemlerinin çekirdek modülleri yerine süreç olarak uygulanmasına izin veren kod.

SİGORTA'nın en yararlı faydalarından biri, GPL kodunun GPL olmayan bir kodla "karışmasına" izin vermektir. Örneğin, OpenSolaris ve * BSD gibi birçok işletim sisteminde Gnu / Linux ve ZFS http://zfs-fuse.net/ veya NTFS-3G http://www.tuxera.com/community/ntfs-3g-download/

Ana dezavantajı, yerel (çekirdek) sürücülere kıyasla performans etkisidir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.