14 पॉइंट द्वारा GN⁺ 2025-10-07 | 3 टिप्पणियां | WhatsApp पर शेयर करें
  • Framework लैपटॉप और JBOD का उपयोग करके अपना खुद का S3 स्टोरेज बनाया, और 10TB क्षमता को कम लागत पर चला रहे हैं; 4 महीनों तक बिना किसी प्रबंधन के भी यह स्थिर रूप से चलता रहा
  • स्क्रीन-रहित सेकंड-हैंड Framework लैपटॉप पर ZFS और garage S3 इंस्टॉल करके उसे होम सर्वर की तरह इस्तेमाल किया गया, और AppGoblin के SDK ट्रैकिंग प्रोजेक्ट के लिए बड़े स्टोरेज के रूप में उपयोग किया जा रहा है
  • 4 महीनों तक सर्वर पर बिल्कुल ध्यान नहीं दिया, फिर लॉग इन करने पर पता चला कि 10TB उपयोग हो चुका था और सिस्टम अपग्रेड के इंतज़ार में था; रीस्टार्ट के बाद भी सब कुछ सामान्य रूप से काम करता रहा
  • garage S3 को v1 से v2 में अपग्रेड करने की प्रक्रिया भी बिना किसी समस्या के पूरी हुई, जिससे स्थिर संचालन का अनुभव मिला
  • USB के जरिए लैपटॉप और JBOD को जोड़ने वाले गैर-मानक ZFS कॉन्फ़िगरेशन में शुरुआत में समस्या आई, लेकिन मेटाडेटा को लैपटॉप के अंदरूनी स्टोरेज में ले जाकर इसे हल कर लिया गया

प्रोजेक्ट की पृष्ठभूमि और प्रेरणा

  • 5 महीने पहले self-hosted S3 का फैसला
    • AppGoblin के शीर्ष 1 लाख Android और iOS ऐप्स की SDK ट्रैकिंग का काम चल रहा था
    • बड़े स्टोरेज स्पेस की ज़रूरत थी, लेकिन लागत कम रखनी थी
    • मौजूदा cloud S3 के बजाय self-hosting तरीका चुना गया

हार्डवेयर कॉन्फ़िगरेशन

  • Framework लैपटॉप का उपयोग
    • स्क्रीन-रहित सेकंड-हैंड Framework लैपटॉप सस्ते में खरीदा गया
    • पुराना मॉडल होने के कारण होम सर्वर के रूप में इस्तेमाल के लिए उपयुक्त था
    • लैपटॉप की पोर्टेबिलिटी और कम-बिजली खपत वाली विशेषताओं का उपयोग किया गया
  • JBOD(Just a Bunch of Disks) जोड़ा गया
    • बड़े स्टोरेज के लिए बाहरी डिस्क array
    • USB के जरिए लैपटॉप से जोड़ा गया

सॉफ़्टवेयर स्टैक

  • ZFS फ़ाइल सिस्टम
    • डेटा इंटीग्रिटी और snapshot फीचर प्रदान करता है
    • JBOD को ZFS pool के रूप में कॉन्फ़िगर किया गया
  • garage S3
    • हल्का distributed S3-compatible स्टोरेज solution
    • Deuxfleurs द्वारा विकसित open source प्रोजेक्ट
    • S3 API compatibility प्रदान करता है

4 महीनों का बिना-प्रबंधन संचालन

  • इंस्टॉल के बाद 4 महीनों तक सर्वर पर बिल्कुल ध्यान नहीं दिया गया
    • यात्रा, काम और व्यस्त दिनचर्या के दौरान भी S3 लगातार उपयोग में रहा
    • सर्वर के बारे में सोचने की ज़रूरत ही नहीं पड़ी
  • लॉग इन करने के बाद पता चली बातें
    • 10TB स्टोरेज इस्तेमाल हो चुका था
    • सिस्टम धैर्यपूर्वक अपग्रेड के लिए रीस्टार्ट का इंतज़ार कर रहा था
  • रीस्टार्ट का नतीजा
    • घबराहट के साथ रीस्टार्ट किया गया
    • सब कुछ फिर से सामान्य रूप से चल पड़ा, जिससे राहत मिली

garage S3 अपग्रेड

  • v1 से v2 में अपग्रेड
    • लंबित major version अपग्रेड मिला
    • अपग्रेड प्रक्रिया बिना किसी समस्या के पूरी हुई
    • इसे एक अच्छा वीकेंड बताया गया

तकनीकी चेतावनियाँ और समाधान

  • गैर-मानक ZFS कॉन्फ़िगरेशन के बारे में जागरूकता
    • USB के जरिए लैपटॉप और JBOD को जोड़ना ZFS का कुछ हद तक गैर-मानक use case है
    • इस बारे में Reddit कम्युनिटी से चेतावनी मिली थी
  • शुरुआती समस्या
    • जब garage बहुत अधिक read और write कर रहा था, तब ZFS समस्या सामने आई
    • शुरुआती सेटअप में SQLite मेटाडेटा भी JBOD/ZFS पर स्टोर किया गया था
  • समाधान
    • मेटाडेटा को लैपटॉप के अंदरूनी स्टोरेज में शिफ्ट किया गया
    • इसके बाद ZFS की समस्या हल हो गई और सिस्टम स्थिर रूप से चलने लगा

3 टिप्पणियां

 
shakespeares 2025-10-07

खुद होस्टिंग करने की चुनौती लेना ही अपने आप में बड़ी बात है।

 
rtyu1120 2025-10-07

हालांकि कीमत में काफ़ी अंतर है, लेकिन लगता है कि Framework मेनबोर्ड आधुनिक Raspberry Pi बन गया है।

 
GN⁺ 2025-10-07
Hacker News राय
  • अगर सिर्फ mainboard हो और स्क्रीन न हो, तो इसे CoolerMaster जैसे dedicated case में भी रखा जा सकता है CoolerMaster Framework case लिंक
    • ये सच में बहुत बढ़िया हैं, लेकिन मैं जिस बात पर ज़ोर देना चाहता था वह यह है कि यह laptop खुद भी बहुत अच्छी तरह काम करता है, fan की आवाज़ नहीं के बराबर है और heat भी लगभग नहीं होती, कम load पर power consumption भी बहुत अच्छा है, मुझे लगता है यही वजहें हैं कि यह laptop इस use case के लिए बिल्कुल फिट बैठता है
    • Framework marketplace में case लिंक साझा किया गया है Framework marketplace case लिंक मैंने पुराना mainboard इस case में डालकर upgrade किया था, VESA mount से monitor के पीछे लगाकर desktop PC की तरह भी इस्तेमाल किया, और अब इसे HTPC (home theater PC) के रूप में उपयोग कर रहा हूँ, बहुत संतुष्ट हूँ
    • 10-inch mini rack भी एक अच्छा विकल्प है DeskPi RackMate 10-inch mini rack
  • मुझे तकनीकी हिस्से के बारे में और जिज्ञासा है, इसलिए नहीं कि मैं इसे हूबहू दोहराना चाहता हूँ, बल्कि यह जानना चाहता हूँ कि ZFS pool configuration कैसे किया गया था, और क्या Garage सब कुछ अपने आप configure करता है, और क्या इसमें mirror है या बस अलग-अलग pools अलग disks पर sync होते हैं। मैं 2 USB disks के साथ सस्ता NAS बनाना चाहता हूँ, लेकिन सोच रहा हूँ कि ZFS mirror करूँ, या 2 independent pools बनाकर एक को दूसरे के backup के लिए इस्तेमाल करूँ, या SnapRAID के साथ जाऊँ ताकि पुराने hard drives मिलाकर hardware utilization को अधिकतम किया जा सके
    • अगर आप ZFS mirror और independent pools के बीच सोच रहे हैं, तो mirror करने पर bit rot protection और automatic recovery (scrub) मिलता है, और read speed भी बेहतर हो जाती है। अगर आपके पास लगभग समान size के दो hard disks हैं, तो ZFS में mirrored vdev को existing pool में जोड़ा जा सकता है, या एक नया backup pool बनाया जा सकता है। Mirror में शामिल दो disks का आपस में size मिलना ज़रूरी है, pool की बाकी सभी disks का एक जैसा होना ज़रूरी नहीं है
    • Garage किसी एक खास तरीके से बंधा नहीं है, और ZFS के बिना भी ठीक से काम कर सकता है। मैंने Ubuntu पर अलग से ZFS install करने के बाद Garage install किया। ZFS को बस RAID5/raidz1 के रूप में configure किया। मैं expert नहीं हूँ, लेकिन usable capacity लगभग 33% के पास आ रही है, इसलिए इस हिस्से पर फिर से विचार कर रहा हूँ। इसी संदर्भ में मुझे पहले HN पर देखी एक जादुई-सी comment याद आती है: “मेरे कुछ महत्वपूर्ण data के लिए मैं कुछ घंटों का data loss स्वीकार कर सकता हूँ, इसलिए mirror की जगह मैंने 1-disk वाले 2 independent pools बनाए, हर कुछ घंटों में primary pool का snapshot लेकर zfs send/recv से backup pool में भेजता हूँ।” ऐसा flow शायद मेरे use case के लिए बेहतर हो, और मूल रूप से RAID5 का मकसद एक disk failure के लिए सुरक्षा था, लेकिन इसे किसी दूसरे location पर वैसा ही बनाना काफ़ी महँगा (~$1,000 USD) पड़ता है, इसलिए अभी तक कर नहीं पाया हूँ
  • मैंने Garage के बारे में पहली बार अभी जाना और यह काफ़ी दिलचस्प लगा। काम में मैं S3 अक्सर इस्तेमाल करता हूँ और अपने personal homelab backups के लिए borgbase पर borg इस्तेमाल करता रहा हूँ। अब सोच रहा हूँ कि क्या garage के साथ local node और AWS glacier को जोड़कर बड़े media library की सस्ती redundant storage संभव है। यह भी जानना चाहता हूँ कि क्या सारी read traffic local node से ही serve होती है। TFA में actual Garage usage experience की ज़्यादा बात नहीं थी, इसलिए self-hosting के लिए इसे वास्तव में इस्तेमाल करने वालों की राय सुनना चाहूँगा। संपादन: अब समझ आया कि glacier पर ऐसा नहीं किया जा सकता, क्योंकि उसे Garage binary चलाने वाले EC2 instance में filesystem के रूप में mount होना चाहिए। glacier पर backup schedule करने के लिए साधारण borg/restic ज़्यादा बेहतर है
    • एक और विकल्प ZeroFS है, जो data को सीधे S3 में store कर सकता है ZeroFS GitHub
    • AWS S3 के साथ integrate करके aggressive lifecycle policy लगाई जा सकती है, ताकि data कुछ कम समय बाद अपने आप glacier में move हो जाए। मैंने अपनी पिछली नौकरी में इसे इसी तरह configure किया था, जहाँ data कुछ दिनों बाद standard से glacier में चला जाता था। आपकी स्थिति में X को 1 दिन रखा जा सकता है
    • मुझे Garage को सीधे handle करने की ज़रूरत नहीं पड़ी, awscli, s3cmd, rclone, Boto3 जैसे S3 API tools से सब काम हो गया। Garage को बस कुछ commands में आसानी से set up किया, और एक बार चलने के बाद 4 महीने तक यह अपने आप बिना दिक्कत चलता रहा। इस मामले में मैं इससे बहुत संतुष्ट हूँ
  • मैं बस एक शांत लेकिन सफल self-hosting setup साझा करना चाहता था
    • क्या यह JBOD SSDs से बना है? इतनी संख्या में HDDs हों तो काफ़ी शोर हो सकता है
    • पहले के समय में “अपने कंप्यूटर का मालिक होना और उस पर कुछ चलाना” जैसी बात को ‘self-hosting’ कहना मुझे काफ़ी अजीब लगता है। जैसे अब हर कंप्यूटर किसी और का हो गया हो, और इसलिए यह खास तौर पर बताना पड़ता हो कि आप खुद इस्तेमाल कर रहे हैं
  • मुझे लगता है कि पुराने Dell T30 में 10TB Seagate Exos की 2 drives के साथ ZFS RAID1 (mirror) ज़्यादा सुरक्षित महसूस होगा। प्रस्तावित तरीका, चाहे रोज़ backup हो, फिर भी हर बार थोड़ा अस्थिर लगेगा। Dell T30 भी पूरी तरह निश्चिंत नहीं करता, लेकिन कम से कम disks को किसी दूसरे device में लगाना आसान है और cable गलती से निकल जाने की चिंता भी कम है। फिर भी Garage काफ़ी अच्छा दिखता है, धन्यवाद
    • मैंने भी ZFS बहुत लंबे समय तक इस्तेमाल किया है, और इस निष्कर्ष पर पहुँचा हूँ कि बहुत-से data के लिए कुछ घंटों का loss स्वीकार्य है। इसलिए mirror की जगह मैंने 1-disk वाले 2 independent pools बनाए हैं, जहाँ primary pool पर हर कुछ घंटों में automatic snapshot लिया जाता है और फिर zfs send/recv से backup pool में replicate किया जाता है। इससे disks को mix-and-match करने की flexibility मिलती है, जैसे एक SSD हो और दूसरा HDD आदि। हाँ, read speed और uptime में कुछ समझौता करना पड़ता है। External hard drive को backup disk बनाकर हर कुछ दिनों में connect करने का तरीका भी है। महत्वपूर्ण data के लिए मेरे पास अलग mirrored RAID pool है। ZFS पर बहुत-से लेख RAID पर केंद्रित हैं, लेकिन ऊपर बताए गए hardware-minimized setup पर जानकारी कम मिलती है
  • मुझे नहीं लगता कि यहाँ Framework कोई बहुत खास value add करता है। मैं RPi5 में कुछ disks जोड़कर लगभग इसी स्तर की hosting कर रहा हूँ। ZFS की जगह lvm2 इस्तेमाल करता हूँ, जो RPi5 पर ठीक चलता है। ZFS बहुत ज़्यादा RAM लेता है, इसलिए इस use case के लिए उपयुक्त नहीं है
  • Garage मुझे बहुत पसंद है, यह बस अपने आप ठीक चलता रहता है। मैं कुछ पुराने Odroid HC2 machines पर Garage को k8s Velero backup के लिए चला रहा हूँ, और setup के बाद बिना छुए भी यह खुद से maintain होता रहा है
  • Garage की बात देखकर अच्छा लगा। जब मैं S3-compatible self-hosting alternative चुन रहा था, तब Garage और SeaweedFS के बीच सोच रहा था। मेरे अनुभव में SeaweedFS, Garage की तुलना में कम manual configuration माँगता है, इसलिए ज़्यादा सुविधाजनक लगा
  • शानदार नतीजा है। मैं भी Framework का mainboard बदलकर उसे सिर्फ NAS backup के लिए इस्तेमाल करने की कोशिश कर रहा हूँ। ZFS setup के बारे में थोड़ा और विस्तार से सुनना चाहूँगा। मैं इसे सिर्फ snapshots के लिए इस्तेमाल करना चाहता हूँ, लेकिन USB connection speed और गलती से disconnect होने पर data loss की चिंता है
  • Garage पर पहले की एक चर्चा भी है Hacker News Previous Discussion