RadarGitHub Radarai üretimi

GitHub Radar — SeaweedFS

Facebook Haystack mimarisiyle küçük dosyaların meta veri darboğazını çözen, O(1) disk erişimli ve ayrık Filer katmanlı dağıtık nesne depolama sistemi.

SeaweedFS, dağıtık dosya sistemlerinin ve nesne depolama çözümlerinin milyarlarca küçük dosya karşısında yaşadığı merkezi meta veri şişmesini ve disk arama (disk seek) gecikmelerini kökten çözmek amacıyla Facebook’un Haystack mimarisinden esinlenerek Go ile geliştirilmiş yüksek performanslı bir dağıtık depolama platformudur 1. Geleneksel dosya sistemlerinin (HDFS, CephFS veya GlusterFS) her dosya için merkezi NameNode üzerinde inode veya dizin meta verisi tuttuğu, dosya boyutları küçüldükçe RAM tüketimini katladığı ve okuma başına 3-4 rastgele disk araması yaptığı hantal mimarilere karşı SeaweedFS; dosyaları hacim dosyalarında sıralı birleştiren iğne (needle) yapısı, bellek içi kompakt indeksleri ve O(1) disk erişim garantisiyle saniyede yüz binlerce dosyayı donanım sınırında servis eden radikal bir sistem katmanıdır 2.

Büyük ölçekli medya depolama, nesne depolama (S3) ve veri gölü altyapıları çevrelerinde 35 bin yıldız ve son commit 1 gün önce düzeyinde derin bir mühendislik güveni kazanan depo, aktif olarak yönetilen 800 açık issue ve kesintisiz sürümleme takvimini gösteren son sürüm v4.24 (Ağustos 2026) metrikleriyle olgunluğunu sergilemektedir.

Mimari Deep-Dive: SeaweedFS

SeaweedFS’in sistem mühendisliğindeki temel sıçraması, dosya depolama ile dosya meta verisi yönetimini birbirinden tamamen koparan iki katmanlı ayrık mimarisinden kaynaklanır. Proje bütünüyle saf Go diliyle geliştirilmiştir 1. Go seçimi; platformlar arası tek bir hafif ikili dosya (single binary) üretebilmesi, yüksek eşzamanlı HTTP ve gRPC akışlarını goroutine’ler üzerinden minimum bellek ayak iziyle yönetmesi ve Linux çekirdeğinin O_NOATIME ile doğrudan G/Ç sistem çağrılarını sıfır ek yükle yürütmesi için yapılmıştır.

İlk radikal mimari karar, dosya bloklarının ve meta verilerin ayrıştırılmasıdır 3. Geleneksel sistemlerde dosya oluşturulduğunda dosya adı, izinler ve blok konumları merkezi sunucuda kaydedilir. SeaweedFS ise dosya sistemi hiyerarşisini depolama katmanından tamamen çıkarır. Sistemde sadece iki ana aktör bulunur: Hacim yönetimini ve Raft konsensüsünü yürüten Master sunucuları ve ham verileri diskte saklayan Hacim (Volume) sunucuları. Master sunucusu dosya adlarıyla ilgilenmez; sadece istemciye boş bir hacim kimliği (Volume ID) ve benzersiz bir dosya anahtarı (File Key) atar.

İkinci kritik sütun hacim dosyası ve iğne (needle) organizasyonudur. Hacim sunucusunda her 32 gigabaytlık veri, disk üzerinde tek bir büyük .dat dosyası olarak saklanır. İstemciden gelen dosyalar bu dosyanın sonuna ardışık olarak birer “iğne” (needle) halinde eklenir. Her dosyanın konumu (offset) ve boyutu ise bellekte tutulan son derece hafif bir ikili arama tablosunda (.idx bellek içi indeks) saklanır. Bir dosya okunmak istendiğinde Master sunucusu doğrudan sorgulanmaz; istemci elindeki dosya kimliğiyle ilgili Hacim sunucusuna gider, Hacim sunucusu belleğindeki .idx tablosundan dosyanın diskteki bayt ofsetini anında bulur ve disk kafasını tek bir hamleyle (O(1) disk seek) hedefe yönlendirir.

Üçüncü sütun ise hiyerarşik dizin yapısı sunan Filer katmanı ve silme kodlamasıdır (Erasure Coding) 4. Dizinler ve POSIX dosya yolları gerektiğinde devreye giren Filer; etcd, Cassandra, Redis veya PostgreSQL gibi harici dağıtık veritabanlarını meta veri arka ucu olarak kullanabilir. Soğuk veriler için devreye giren Reed-Solomon silme kodlaması (EC 8+2 veya 10+4), dolan hacimleri salt okunur parçalara bölerek disk tasarrufunu %50’ye varan oranda artırır ve S3 uyumlu API geçidiyle kurumsal depolamayı modernize eder.

Kod ve Topluluk Sağlığı

SeaweedFS, projenin kurucusu Chris Lu liderliğinde küresel bulut sağlayıcıları, telekomünikasyon şirketleri ve geniş açık kaynak topluluğunun katkılarıyla geliştirilmektedir 1. Bağımsız açık kaynak ruhunu koruyan proje, petabaytlarca fotoğraf, video ve yapay zeka eğitim verisi barındıran binlerce kurumsal kümede aktif olarak kullanılmaktadır.

Depodaki 800 açık issue sayısı, projenin tek bir ikiliden Kubernetes operatörlerine, WebDAV, FUSE bağlama ve S3 API katmanlarına kadar devasa bir depolama yüzey alanını kapsamasından ileri gelmektedir. Maintainer kadrosu hata bildirimlerine ve kullanıcı sorularına hızla dönüş yapmakta, veri tutarlılığı ve gRPC kimlik doğrulama mekanizmalarını güvenlik danışma bültenleriyle şeffaf biçimde yamamaktadır 5. Çekirdek depoya sunulan her PR; dağıtık kopyalama simülasyonlarından, hacim birleştirme (compaction) testlerinden ve S3 uyumluluk paketlerinden geçer. Sürümleme takvimi düzenli semantik yamalarla kararlı bir çizgide yürütülmektedir. health_score bu bölümden türer: issue kapanma hızı, sürüm düzeni, bakımcı ekibi. Ajanın tahminidir; künyede öyle yazılır. Projenin bağımsız mimari başarısı, sektörde yıllardır kanıtlanmış dayanıklılığı ve etkin sürüm disiplini dikkate alınarak health_score: 9.3 takdir edilmiştir.

Production Riski: Gerçekten Kullanılır mı?

SeaweedFS’i üretim altyapılarına dahil etmeyi planlayan sistem mimarları için lisanslama açısından herhangi bir hukuki pürüz bulunmamaktadır; proje Apache 2.0 lisansı ile dağıtılmakta olup şirket içi veri merkezlerinde veya tescilli bulut ortamlarında tam kullanım özgürlüğü sunar 6.

SeaweedFS’in üretimde hayat kurtardığı senaryolar son derece nettir: Milyarlarca profil fotoğrafı, ürün görseli, ses kaydı ve telemetri dosyası barındıran ve MinIO veya Ceph kümelerinin yüksek bellek tüketimi altında zorlandığı altyapılar. Dosya okumalarında tek disk araması garantisi sunması, disk G/Ç darboğazlarını ortadan kaldırarak medya servis etme hızını katbekat artırır. AWS S3 API uyumluluğu sayesinde mevcut uygulamalarda kod değişikliği yapmadan doğrudan devreye alınabilir.

Buna karşın, operasyonel olarak dikkate alınması gereken yapısal sınırlar mevcuttur. İlk risk, Filer katmanının ölçeklenmesidir; milyarlarca dosyanın tam POSIX dizin ağacı yönetilmek istendiğinde Filer’ın konuştuğu arkadaki veritabanının (PostgreSQL, Cassandra vb.) yüksek kullanılabilirlik ve yedeklilik mimarisi titizlikle yönetilmelidir. İkinci operasyonel husus ise silinen dosyaların yarattığı boşlukları temizleyen hacim sıkıştırma (volume compaction) süreçleridir; arka planda yürütülen bu operasyonlar yoğun yazma anlarında geçici disk G/Ç dalgalanmalarına yol açabilir. Doğru yapılandırıldığında SeaweedFS, küçük dosya depolama problemine dünyada geliştirilmiş en yalın, en hızlı ve maliyet etkin açık kaynak sistem çözümüdür.

Kaynaklar

  1. SeaweedFS GitHub Ana Deposu
  2. Facebook Haystack Bildirisi: Finding a Needle in Haystack
  3. SeaweedFS Resmi Mimari Dokümantasyonu
  4. SeaweedFS S3 Yaşam Döngüsü ve Tasarım Notları
  5. SeaweedFS GitHub Sürüm Notları ve Değişiklik Günlüğü
  6. SeaweedFS Apache 2.0 Lisans Dosyası