Garage - डेटा सेंटर के बाहर भी चल सकने वाला उच्च-विश्वसनीयता S3 ऑब्जेक्ट स्टोरेज
(garagehq.deuxfleurs.fr)- Garage एक S3-compatible object storage है जो डेटा सेंटर के बाहर के वातावरण में भी स्थिर रूप से काम कर सकता है
- यह बिना किसी dependency वाला single binary के रूप में उपलब्ध है, इसलिए किसी भी Linux distribution पर आसानी से चलाया जा सकता है
- डेटा को 3 zone में replicate किया जाता है, जिससे उच्च redundancy और fault tolerance मिलती है
- यह Amazon S3 API को implement करता है, इसलिए Nextcloud, Matrix, Mastodon जैसी कई applications के साथ compatible है
- कम hardware requirements और public research आधारित design के जरिए यह distributed systems की accessibility बढ़ाता है
अवलोकन
- Garage एक S3 object storage है जिसे डेटा सेंटर के बाहर भी विश्वसनीय रूप से चलाने के लिए बनाया गया है, और इसे इंटरनेट के जरिए कई डेटा सेंटरों में चलाया जा सकता है
- इसका उपयोग website hosting, media storage, backup target जैसे कई कामों में किया जा सकता है
डिज़ाइन लक्ष्य
- यह सिस्टम हल्केपन और दक्षता को ध्यान में रखकर विकसित किया गया है
- इसे एक बिना dependency वाली executable file के रूप में वितरित किया जाता है, जो सभी Linux distribution पर चलती है
- तेज़ deployment और सुरक्षित संचालन के लिए इसे system administrators के अनुकूल डिज़ाइन किया गया है
- इसे हर तरह के environment में deploy करने योग्य बनाया गया है, इसलिए dedicated backbone network के बिना भी इंटरनेट पर कई डेटा सेंटरों के बीच चलाया जा सकता है
- इसमें network failures, latency, disk errors, और operator mistakes को सहने लायक उच्च resilience है
न्यूनतम आवश्यकताएँ
- CPU: पिछले 10 वर्षों के भीतर का x86_64, ARMv7 या ARMv8
- RAM: 1GB
- डिस्क स्पेस: कम से कम 16GB
- नेटवर्क: latency 200ms या कम, bandwidth 50Mbps या अधिक
- heterogeneous hardware support के कारण पुरानी या सेकंड-हैंड मशीनों से भी cluster बनाया जा सकता है
डेटा रिकवरी क्षमता और compatibility
- हर data chunk को 3 zone में replicate करके store किया जाता है
- यह Amazon S3 API को implement करता है, इसलिए मौजूदा applications के साथ तुरंत compatible है
- समर्थित उदाहरण: Nextcloud, Matrix, Cyberduck, Mastodon, Rclone, PeerTube
तकनीकी आधार
- Garage को नवीनतम distributed systems research के आधार पर डिज़ाइन किया गया है
- Amazon का Dynamo key-value store
- Conflict-Free Replicated Data Types (CRDTs)
- Maglev software network load balancer
प्रायोजन और फंडिंग
- Garage project को कई बार public funding मिली है
- 2021–2022: NGI POINTER – 3 full-time कर्मचारियों के लिए 1 वर्ष का समर्थन
- 2023–2024: NLnet / NGI0 Entrust – 1 full-time कर्मचारी के लिए 1 वर्ष का समर्थन
- 2025: NLnet / NGI0 Commons Fund – 1.5 full-time कर्मचारियों के लिए 1 वर्ष का समर्थन
- इसे यूरोपीय संघ के Horizon 2021 research and innovation programme और Next Generation Internet programme से वित्तीय समर्थन मिला है
- अतिरिक्त sponsorship या support contract के माध्यम से भी भागीदारी संभव है (संपर्क: garagehq@deuxfleurs.fr)
1 टिप्पणियां
Hacker News की राय
हाल की internal testing में Garage को काफ़ी व्यापक रूप से validate किया गया
deployment, MinIO से थोड़ा ज़्यादा आसान था, लेकिन high-speed performance में यह पीछे रहा
25G NIC environment में MinIO 20~25Gbps तक पहुँच गया, लेकिन Garage लगभग 5Gbps के स्तर पर सीमित रहा
ऐसा लगा कि Garage ऐसे high-performance use case को target नहीं करता
अगली बार RustFS और Ceph/Rook को भी साथ में evaluate करने की योजना है
MinIO की हाल की दिशा को देखते हुए लगता है कि आख़िरकार कोई दूसरा alternative ढूँढना पड़ेगा
इसकी philosophy है: “high performance design और infrastructure पर constraints लगाती है, इसलिए हम minimalism through performance का पीछा करते हैं”
(Design Goals दस्तावेज़)
फिर भी performance bottleneck कहाँ पैदा हो रहा है, यह दिलचस्प है। हो सकता है MinIO की तुलना में parallel processing कम हो
इसकी complexity बहुत ज़्यादा है, इसलिए अगर इसे ठीक से नहीं समझते तो cluster टूटने पर recovery मुश्किल हो सकती है
local development के लिए यह एक दिलचस्प project लगता है
लेकिन production setup guide को देखकर थोड़ा डर लगता है
metadata store करते समय Garage अपना checksum और integrity validation नहीं करता, इसलिए BTRFS या ZFS जैसे filesystem की सिफारिश की जाती है
default LMDB engine में abnormal shutdown के समय data corruption का जोखिम है, इसलिए regular snapshot की ज़रूरत होती है
SQLite भी संभव है, लेकिन यह थोड़ा surprising था कि default DB power failure के प्रति कमज़ोर है
कहा गया कि उसे तुरंत Garage में integrate कर देंगे
Garage की minimum requirement RAM 1GB होना थोड़ा बोझिल लगा
PLP(power loss protection) वाले NVMe drive या UPS के उपयोग की सिफारिश की गई
MinIO घटना के बाद Garage adoption में तेज़ बढ़ोतरी देखी जा रही है
Repoflow का benchmark comparison लेख उपयोगी था
RustFS भी दिलचस्प था, लेकिन non-technical कारणों से उसे हटा दिया गया
MinIO को replace करते समय कोई tips हों तो सुनना चाहूँगा
GitHub लिंक देखें
Ceph S3 Gateway के साथ इसकी तुलना भी जानने की उत्सुकता है
Deuxfleurs की आधिकारिक साइट अब तक देखी गई वेबसाइटों में सबसे खूबसूरत design वाली है
local development और testing के लिए Garage इस्तेमाल किया जा रहा है
s5cmd के साथ 15GB और 60 हज़ार से ज़्यादा objects को 60 सेकंड के भीतर seed किया जा सकता है
Docker के ज़रिए API, DB, cache और object container सहित staging environment की replication 2 मिनट के भीतर पूरी हो जाती है
configuration बहुत सरल है और यह stable तरीके से चल रहा है
पहले LocalStack S3 इस्तेमाल किया गया, लेकिन persistence की कमी समस्या थी, और MinIO OSS का maintenance भी बंद हो गया
SeaweedFS और RustFS को भी देखा गया, लेकिन Garage सबसे आसान निकला
Garage test code और benchmark में बहुत प्रभावशाली था
single executable file होने से deployment आसान है और documentation भी अच्छी है
लेकिन object tagging feature की कमी बड़ी निराशा थी
cloud API की दुनिया में tagging एक basic feature है, इसलिए उम्मीद है कि यह हिस्सा सुधरेगा
Garage सचमुच बहुत पसंद है
यह सिर्फ़ एक simple S3 alternative से बढ़कर, hyper-converged architecture में भी उपयोगी है
local machine पर पहले data पढ़ना और ज़रूरत पड़ने पर ही network का उपयोग करना बहुत बढ़िया structure है
Erasure coding का न होना fault tolerance और efficiency दोनों के लिहाज़ से बड़ा नुकसान है
hardware failure के समय recovery कैसे होगी, यही मुख्य चिंता थी
data engineering scripts में Garage उपयोगी रहा
ज़्यादातर tools S3 integration support करते हैं, इसलिए Garage में data dump करना और बाद में cloud तक scale करना आसान है
हाल ही में Garage को test किया गया
लगभग 300 documents (1GB) upload करने के बाद delete करने की कोशिश की गई, लेकिन S3 service container के अंदर crash हो गई और restart करना पड़ा
project शानदार है, लेकिन मेरे अनुभव में अभी इसकी reliability कम है