Garage - Penyimpanan objek S3 berkeandalan tinggi yang dapat dijalankan di luar pusat data
(garagehq.deuxfleurs.fr)- Garage adalah penyimpanan objek kompatibel S3 yang dapat beroperasi stabil bahkan di lingkungan di luar pusat data
- Tersedia sebagai biner tunggal tanpa dependensi sehingga mudah dijalankan di semua distribusi Linux
- Data direplikasi ke 3 zona (zone) untuk memastikan redundansi dan toleransi kesalahan yang tinggi
- Mengimplementasikan Amazon S3 API sehingga kompatibel dengan berbagai aplikasi seperti Nextcloud, Matrix, dan Mastodon
- Dengan kebutuhan perangkat keras yang rendah dan desain berbasis riset terbuka, Garage memperluas aksesibilitas sistem terdistribusi
Gambaran umum
- Garage adalah penyimpanan objek S3 yang dapat dioperasikan secara stabil di luar pusat data, dan dapat dijalankan lintas beberapa pusat data melalui internet
- Dapat digunakan untuk berbagai keperluan seperti hosting situs web, penyimpanan media, dan target cadangan
Tujuan desain
- Sistem ini dikembangkan dengan menitikberatkan pada ringan dan efisien
- Didistribusikan sebagai berkas eksekusi tunggal tanpa dependensi dan berjalan di semua distribusi Linux
- Dirancang ramah administrator sistem untuk deployment cepat dan operasi yang aman
- Dirancang agar dapat di-deploy di semua lingkungan, sehingga bisa dijalankan antar beberapa pusat data melalui internet tanpa jaringan backbone khusus
- Memiliki ketahanan tinggi terhadap gangguan jaringan, latensi, kesalahan disk, dan kesalahan operator
Persyaratan minimum
- CPU: x86_64, ARMv7, atau ARMv8 dari 10 tahun terakhir
- RAM: 1GB
- Ruang disk: minimal 16GB
- Jaringan: latensi 200ms atau kurang, bandwidth 50Mbps atau lebih
- Dengan dukungan perangkat keras heterogen, klaster dapat dibangun menggunakan perangkat bekas
Ketahanan data dan kompatibilitas
- Setiap potongan data (chunk) disimpan dengan replikasi ke 3 zona
- Mengimplementasikan Amazon S3 API sehingga langsung kompatibel dengan aplikasi yang sudah ada
- Contoh dukungan: Nextcloud, Matrix, Cyberduck, Mastodon, Rclone, PeerTube
Dasar teknis
- Garage dirancang berdasarkan capaian terbaru dalam riset sistem terdistribusi
- Penyimpanan key-value Dynamo dari Amazon
- Conflict-Free Replicated Data Types (CRDTs)
- Load balancer jaringan perangkat lunak Maglev
Sponsor dan pendanaan
- Proyek Garage telah beberapa kali menerima dukungan dana publik
- 2021–2022: NGI POINTER – dukungan 1 tahun untuk 3 pegawai penuh waktu
- 2023–2024: NLnet / NGI0 Entrust – dukungan 1 tahun untuk 1 pegawai penuh waktu
- 2025: NLnet / NGI0 Commons Fund – dukungan 1 tahun untuk 1,5 pegawai penuh waktu
- Menerima dukungan finansial dari program riset dan inovasi Horizon 2021 Uni Eropa serta program Next Generation Internet
- Dukungan tambahan atau partisipasi melalui kontrak sponsorship juga dimungkinkan (kontak: garagehq@deuxfleurs.fr)
1 komentar
Komentar Hacker News
Baru-baru ini kami menguji Garage secara cukup luas dalam pengujian internal
Deploy-nya sedikit lebih sederhana dibanding MinIO, tetapi tertinggal dalam performa tinggi
Di lingkungan 25G NIC, MinIO bisa mencapai 20~25Gbps, sedangkan Garage terbatas di kisaran 5Gbps
Kesan saya, Garage memang tidak menargetkan kasus penggunaan berperforma tinggi seperti ini
Berikutnya saya berencana meninjau RustFS dan Ceph/Rook juga
Karena arah terbaru MinIO, sepertinya pada akhirnya kami memang harus mencari alternatif lain
Filosofinya adalah, “performa tinggi membatasi desain dan infrastruktur, jadi kami mengejar performa melalui minimalisme”
(dokumen Design Goals)
Meski begitu, menarik juga melihat di mana bottleneck performanya muncul. Mungkin paralelismenya lebih sedikit dibanding MinIO
Kompleksitasnya sangat tinggi, jadi kalau tidak benar-benar memahaminya, akan sulit memulihkan cluster saat rusak
Ini terlihat seperti proyek yang menarik untuk pengembangan lokal
Tetapi setelah melihat panduan konfigurasi production, saya agak khawatir
Garage merekomendasikan filesystem seperti BTRFS atau ZFS karena saat menyimpan metadata, ia tidak melakukan checksum dan verifikasi integritas sendiri
Engine LMDB bawaan punya risiko kerusakan data saat shutdown tidak normal, sehingga snapshot berkala diperlukan
SQLite juga bisa dipakai, tetapi cukup mengejutkan bahwa DB default-nya rentan terhadap mati listrik
Katanya itu akan langsung diintegrasikan ke Garage
Persyaratan minimum Garage yaitu RAM 1GB terasa agak membebani
Disarankan menggunakan drive NVMe dengan fitur PLP (power loss protection) atau UPS
Setelah insiden MinIO, saya melihat adopsi Garage melonjak tajam
Tulisan perbandingan benchmark dari Repoflow cukup berguna
RustFS juga menarik, tetapi saya mengecualikannya karena alasan non-teknis
Kalau ada tips saat mengganti MinIO, saya ingin mendengarnya
Lihat tautan GitHub
Saya juga penasaran bagaimana perbandingannya dengan Ceph S3 Gateway
Situs resmi Deuxfleurs punya desain paling indah di antara website yang pernah saya lihat sejauh ini
Saya memakai Garage untuk pengembangan lokal dan pengujian
Dengan s5cmd, saya bisa melakukan seed 15GB dan lebih dari 60 ribu objek dalam waktu kurang dari 60 detik
Replikasi lingkungan staging yang mencakup API, DB, cache, dan container objek dengan Docker selesai dalam waktu kurang dari 2 menit
Konfigurasinya sangat sederhana dan sejauh ini berjalan stabil
Sebelumnya saya memakai LocalStack S3, tetapi kurangnya persistensi menjadi masalah, dan MinIO OSS juga sudah dihentikan pemeliharaannya
Saya juga meninjau SeaweedFS dan RustFS, tetapi Garage yang paling mudah digunakan
Garage sangat mengesankan dalam kode uji dan benchmark
Deploy mudah karena berupa satu executable, dan dokumentasinya juga bagus
Tetapi tidak adanya fitur object tagging cukup disayangkan
Di dunia API cloud, tagging adalah fitur dasar, jadi saya berharap bagian ini bisa diperbaiki
Saya sangat menyukai Garage
Lebih dari sekadar alternatif S3 yang sederhana, ini juga berguna dalam arsitektur hyper-converged
Strukturnya keren: membaca data terlebih dahulu dari mesin lokal, lalu hanya memakai jaringan saat diperlukan
Tidak adanya erasure coding adalah kekurangan besar dari sisi toleransi kesalahan dan efisiensi
Kekhawatiran utamanya adalah bagaimana pemulihan dilakukan saat terjadi kegagalan hardware
Garage berguna dalam skrip data engineering
Karena sebagian besar tool mendukung integrasi S3, mudah untuk membuang data ke Garage lalu memperluasnya ke cloud nanti
Baru-baru ini saya menguji Garage
Setelah mengunggah sekitar 300 dokumen (1GB) lalu mencoba menghapusnya, layanan S3 crash di dalam container sehingga harus direstart
Ini proyek yang keren, tetapi menurut pengalaman saya, keandalannya masih kurang