- Garage, veri merkezi dışındaki ortamlarda da kararlı şekilde çalışabilen S3 uyumlu nesne depolama çözümüdür
- Tek bir bağımlılıksız ikili dosya olarak sunulur ve tüm Linux dağıtımlarında kolayca çalıştırılabilir
- Veriler 3 bölgeye (zone) çoğaltılarak yüksek yedeklilik ve hata toleransı sağlar
- Amazon S3 API'sini uyguladığı için Nextcloud, Matrix, Mastodon gibi çeşitli uygulamalarla uyumludur
- Düşük donanım gereksinimleri ve kamuya açık araştırmalara dayanan tasarımıyla dağıtık sistemlerin erişilebilirliğini artırır
Genel Bakış
- Garage, veri merkezi dışında da güvenilir biçimde işletilebilen bir S3 nesne depolama çözümüdür; internet üzerinden birden fazla veri merkezine yayılmış şekilde çalıştırılabilir
- Web sitesi barındırma, medya depolama, yedekleme hedefi gibi çeşitli amaçlarla kullanılabilir
Tasarım Hedefleri
- Hafiflik ve verimlilik odağıyla geliştirilmiş bir sistemdir
- Tek bir bağımlılıksız çalıştırılabilir dosya olarak dağıtılır ve tüm Linux dağıtımlarında çalışır
- Hızlı dağıtım ve güvenli işletim için sistem yöneticisi dostu şekilde tasarlanmıştır
- Her ortamda dağıtılabilir olacak şekilde tasarlanmıştır; özel bir omurga ağ olmadan da internet üzerinde birden fazla veri merkezi arasında işletilebilir
- Ağ kesintileri, gecikme, disk hataları ve operatör hataları karşısında dayanıklı olacak yüksek esneklik sunar
Minimum Gereksinimler
- CPU: Son 10 yıl içinde üretilmiş x86_64, ARMv7 veya ARMv8
- RAM: 1GB
- Disk alanı: En az 16GB
- Ağ: 200ms veya daha düşük gecikme, 50Mbps veya daha yüksek bant genişliği
- Heterojen donanım desteği sayesinde ikinci el ekipmanlarla küme kurulabilir
Veri Dayanıklılığı ve Uyumluluk
- Her veri parçası (chunk) 3 bölgeye çoğaltılarak saklanır
- Amazon S3 API'sini uyguladığı için mevcut uygulamalarla hemen uyumludur
- Destek örnekleri: Nextcloud, Matrix, Cyberduck, Mastodon, Rclone, PeerTube
Teknik Temel
- Garage, modern dağıtık sistem araştırmalarının çıktıları temel alınarak tasarlanmıştır
- Amazon'un Dynamo anahtar-değer deposu
- Conflict-Free Replicated Data Types (CRDTs)
- Maglev yazılım tabanlı ağ yük dengeleyicisi
Sponsorluk ve Finansman
- Garage projesi birkaç kez kamu fonu desteği aldı
- 2021–2022: NGI POINTER – 3 tam zamanlı çalışan için 1 yıllık destek
- 2023–2024: NLnet / NGI0 Entrust – 1 tam zamanlı çalışan için 1 yıllık destek
- 2025: NLnet / NGI0 Commons Fund – 1,5 tam zamanlı çalışan için 1 yıllık destek
- Avrupa Birliği'nin Horizon 2021 araştırma ve inovasyon programı ile Next Generation Internet programından mali destek aldı
- Ek sponsorluk veya destek sözleşmeleriyle katkı sağlanabilir (iletişim: garagehq@deuxfleurs.fr)
1 yorum
Hacker News yorumları
Yakın zamanda dahili testlerde Garage'ı oldukça kapsamlı biçimde doğruladık
Dağıtımı MinIO'ya göre biraz daha kolaydı, ancak yüksek hız performansında geride kaldı
25G NIC ortamında MinIO 20~25Gbps'ye kadar ulaşırken Garage yaklaşık 5Gbps seviyesinde sınırlı kaldı
Garage'ın bu tür yüksek performanslı kullanım senaryolarını hedeflemediği izlenimini veriyor
Bir sonraki aşamada RustFS ve Ceph/Rook da birlikte incelenecek
MinIO'nun son dönemdeki yönelimi nedeniyle sonunda başka alternatifler aramamız gerekecek gibi görünüyor
Felsefesi, “yüksek performans tasarım ve altyapıyı kısıtlar; biz ise minimalizm yoluyla performans peşindeyiz” şeklinde
(Design Goals belgesi)
Yine de performans darboğazının nerede oluştuğu ilginç bir nokta. MinIO'ya kıyasla daha az paralel işlem yapıyor olabilir
Karmaşıklığı çok yüksektir; tam olarak anlaşılmazsa küme bozulduğunda kurtarmak zor olur
Yerel geliştirme için ilginç bir proje gibi görünüyor
Ancak prodüksiyon yapılandırma kılavuzuna bakınca biraz ürkütüyor
Garage, metadata depolarken kendi checksum ve bütünlük doğrulamasını yapmadığı için BTRFS veya ZFS gibi dosya sistemlerini öneriyor
Varsayılan LMDB motorunda beklenmedik kapanma durumunda veri bozulması riski var, bu yüzden düzenli snapshot gerekiyor
SQLite da kullanılabiliyor, ancak varsayılan veritabanının güç kesintisine karşı hassas olması şaşırtıcıydı
Hemen Garage'a entegre edeceklerini söylüyorlar
Garage'ın asgari gereksiniminin 1GB RAM olması biraz külfetli geldi
PLP (power loss protection) özelliğine sahip NVMe sürücüler veya UPS kullanılması öneriliyor
MinIO olayından sonra Garage benimsenmesinin hızla arttığını görüyorum
Repoflow'un benchmark karşılaştırma yazısı faydalıydı
RustFS de ilginçti, ancak teknik olmayan nedenlerle elendi
MinIO'yu değiştirirken işe yarayan ipuçları varsa duymak isterim
GitHub bağlantısı incelenebilir
Ceph S3 Gateway ile kıyaslaması da merak ediliyor
Deuxfleurs resmî sitesi şimdiye kadar gördüğüm web siteleri arasında en güzel tasarıma sahip olanı
Yerel geliştirme ve test için Garage kullanıyorum
s5cmd ile birlikte 15GB ve 60 binden fazla nesneyi 60 saniyeden kısa sürede seed edebiliyorum
Docker ile API, DB, cache ve nesne konteynerlerini içeren bir staging ortamı kopyası 2 dakikadan kısa sürede tamamlanıyor
Yapılandırması çok basit ve kararlı biçimde çalışıyor
Daha önce LocalStack S3 kullanıyordum ama kalıcılık eksikliği sorundu; MinIO OSS'nin de bakımı durduruldu
SeaweedFS ve RustFS'i de değerlendirdim, ancak Garage en kolay olanıydı
Garage test kodu ve benchmark'larda çok etkileyiciydi
Tek bir çalıştırılabilir dosya olarak dağıtılması kolay ve dokümantasyonu iyi
Ancak nesne etiketleme özelliğinin olmaması büyük bir eksiydi
Bulut API dünyasında etiketler temel bir özellik, bu yüzden bu tarafın iyileşmesini umuyorum
Garage'ı gerçekten seviyorum
Basit bir S3 alternatifinden fazlası; hyper-converged architecture içinde de faydalı
Veriyi önce yerel makineden okuyup yalnızca gerektiğinde ağı kullanma yapısı çok hoş
Erasure coding olmaması, hata toleransı ve verimlilik açısından büyük bir kayıp
Donanım arızasında nasıl toparlandığı temel endişeydi
Veri mühendisliği script'lerinde Garage faydalı oldu
Araçların çoğu S3 entegrasyonunu desteklediği için, veriyi Garage'a dump edip daha sonra buluta genişletmek kolay oluyor
Yakın zamanda Garage'ı test ettim
Yaklaşık 300 belgeyi (1GB) yükledikten sonra silmeye çalıştım, ancak S3 servisi konteyner içinde crash oldu ve yeniden başlatmak zorunda kaldım
Harika bir proje ama benim deneyimime göre hâlâ güvenilirlik açısından yetersiz