13 puan yazan xguru 2023-09-22 | 4 yorum | WhatsApp'ta paylaş
  • FUSE, çekirdek modülüne ihtiyaç duymadan dosya sistemi sürücüsü yazmayı mümkün kılar
    • NTFS, SFTP, S3 gibi çeşitli dosya sistemi istemcileri tarafından kullanılır
    • WikipediaFS gibi, gerçek bir dosya sistemi olmayan şeyler bile oluşturulabilir
  • Ancak FUSE, geliştirme açısından kullanışsızdır
    • 2 API arasından seçim gerekir: Low-Level ve High-Level
    • Birbiriyle uyumsuz 2 API sürümü vardır: libfuse2 ve libfuse3
    • Azar azar sürekli değişen API'ler (FUSE_USE_VERSION)
    • Mac ve Windows'ta yerel değildir; MacFuse, WinFuse gibi üçüncü taraf sürücülerin kurulması gerekir
  • Biz (XetHub), görüntü veri kümelerinin çeşitli sürümlerine S3 komutları kullanmaya gerek kalmadan kişisel dizüstü bilgisayarlardan rahatça erişilebilmesini istedik
  • "Gerçekten çapraz platform bir kullanıcı alanı dosya sistemi oluşturabilir miyiz?" sorusundan yola çıkıp NFSv3'e ulaştık

NFS

  • NFSv3, 20 yıllık bir ağ dosya sistemi protokolüdür; çok basit ve yaygın olduğu için neredeyse tüm işletim sistemlerinde varsayılan olarak uygulanır
  • Zarif ve basit tasarım ilkeleri
    • Sunucu tamamen stateless'tir
    • NFS sunucusu basittir, NFS istemcisi ise akıllıdır
    • Basit önbellek tutarlılığı kuralları vardır (sunucu önbellek politikasını tanımlamaz; istemci istediği kadarını kendi yönetir)
    • NFS istemcisi, ağ üzerinden iletişim kurduğunu bilir
    • Pratikte performansı da oldukça iyidir
  • Özetle, FUSE yerine localhost NFS kullanarak kullanıcı alanı dosya sistemi uygulamak, performans ve dayanıklılığı elde etmeyi kolaylaştırır
  • Sunucu protokolünü yalnızca bir kez uygulamak yeterlidir; ardından mevcut önbellekleme ve 20 yılda olgunlaşmış özelliklerden doğrudan yararlanılabilir

XetHub'da NFS nasıl kullanılıyor

  • Yerel çapraz platform bir kullanıcı alanı dosya sistemi uygulaması geliştirildi
  • Çekirdek sürücüsü olmadan büyük veri kümeleri kullanıcı makinesine mount edilebiliyor
    • Örneğin 660GB'lık Llama 2 modelini mount etmek veya DuckDB sorgularıyla büyük Parquet dosyalarını analiz etmek mümkün
  • Linux, Mac ve Windows Pro ve üzeri sürümlerde desteklenir (Windows Home çalışmaz)
  • Rust ile yazılmış NFS sunucusu nfsserve GitHub'da açık kaynak olarak yayımlandı
  • Okuma performansı oldukça iyi; yazma çalışıyor, ancak hâlâ optimizasyona ihtiyaç var

4 yorum

 
ntpd3300 2023-09-22

Başlığın aksine, neden Rust ile yazıldığına dair asıl gerekçe aslında yer almıyor.

 
botplaysdice 2023-09-23

Orijinal yazının odağı, kendi NFS sunucularını neden geliştirdikleri... ama galiba Rust gibi popüler bir anahtar kelimeyi de atlamak istemedikleri için başlıkta kullanmışlar :-)

 
blueprajna 2023-09-22

Görünüşe göre asıl mesele, neden Rust ile yazdıkları değil de neden FUSE yerine NFS’yi seçtikleri.

 
xguru 2023-09-22

Aa, düşününce sadece Rust olduğu için hızlı olduğundan bahsetmişim, onun dışında bir şey yokmuş. Hiç düşünmeden özetlemişim.