1 पॉइंट द्वारा GN⁺ 2024-07-05 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • यह एक प्रयोग था जिसमें पुराने OpenWRT राउटर-आधारित नेटवर्क ड्राइव को SBC+HDD कॉम्बिनेशन से बदलकर bottleneck कम करने की कोशिश की गई, जबकि samba, git, rsyncd और dnf repo को वैसे ही बनाए रखा गया
  • Libre Computer AML-S805X-AC €20 के बोर्ड पर 4-कोर ARM Cortex-A53, 1GB RAM, USB boot और Debian support देता है, लेकिन LAN सिर्फ 100Mb है और 2 USB-A पोर्ट भी USB 2.0 तक सीमित हैं
  • HDD को छोड़कर कुल लागत लगभग €43 रहती है, लेकिन HDD enclosure, power supply, micro-USB cable और वैकल्पिक TTL-to-USB dongle भी चाहिए
  • आधिकारिक Debian 12-आधारित image MBR के अंदर EFI partition और btrfs root partition इस्तेमाल करती है, और first boot पर होने वाला auto-resize USB dongle पर अस्थिर और धीमा चला
  • JMicron JMS578 HDD enclosure में UAS error को workaround करने के बाद latency तो खत्म हो गई, लेकिन ext4 पर प्रदर्शन लगभग 23.95MB/s ही रहा, इसलिए power saving जैसी मजबूत वजह न हो तो इसकी सिफारिश करना मुश्किल है

OpenWRT राउटर से SBC NAS पर बदलना

  • मौजूदा डिवाइस एक पुराना राउटर था जिसमें HDD जुड़ी थी, और OpenWRT डालने के बाद उसे राउटर नहीं बल्कि network drive की तरह इस्तेमाल किया जा रहा था
  • नए डिवाइस को samba, git, rsyncd और dnf repo को ज्यों का त्यों रखते हुए उससे तेज चलना था
    • पुराने राउटर का CPU कमजोर था, इसलिए rsync over SSH में दिक्कत होती थी
    • RAM कम थी, इसलिए 15MB से बड़े binary वाले git push commit पर अटक जाता था
  • विकल्पों में Libre Computer का AML-S805X-AC बोर्ड चुना गया
    • LAN पोर्ट है, लेकिन सिर्फ 100Mb तक support करता है
    • 2 USB-A पोर्ट हैं, लेकिन दोनों सिर्फ USB 2.0 support करते हैं
    • 4-कोर ARM Cortex-A53, 1GB RAM, USB boot और नवीनतम Debian support
    • अलग से sourcing की कठिनाई के बिना खरीदा जा सकता है

कम नेटवर्क स्पेक और वास्तविक उपयोग

  • 100Mb नेटवर्क आज के हिसाब से कम स्पेक है, लेकिन मुख्य उपयोग लगभग 2 लाख छोटी files वाले directory copy को बनाए रखना था
  • लेखक का मानना था कि SBC USB 3.0 support करता तब भी 1Gb नेटवर्क से sync speed में बहुत बड़ा फर्क नहीं आता
  • सिर्फ बोर्ड से NAS सेटअप पूरा नहीं हुआ, इसलिए अतिरिक्त parts की जरूरत पड़ी
    • बोर्ड के USB-A पोर्ट हर पोर्ट पर अधिकतम 900mA देते हैं
    • बाहरी power वाला HDD enclosure चाहिए था
    • कम से कम 3A power supply और 3A संभाल सकने वाली micro-USB cable भी चाहिए थी

€43 का सेटअप और भौतिक असेंबली

  • HDD को छोड़कर कुल लागत €43 थी
    • SBC: €20
    • HDD enclosure: €12
    • 3A power supply: €5
    • micro-USB cable: €3
    • 4 bolts और 12 nuts: €0
    • TTL-to-USB dongle: €3, क्योंकि बोर्ड पर HDMI output है इसलिए यह वैकल्पिक है
  • HDD को लागत में शामिल नहीं किया गया, यह मानकर कि एक spare HDD पहले से मौजूद है
  • HDD enclosure को 2.5-इंच के छोटे plastic case समझकर खरीदा गया था, लेकिन वह वास्तव में 3.5-इंच का box निकला
  • case में जगह होने की वजह से SBC को भी HDD enclosure के अंदर साथ रखने का फैसला किया गया

बूट और Debian image की खुरदरी बातें

  • बोर्ड के GPIO में TTL-to-USB dongle जोड़कर screen से कनेक्ट किया गया
$ sudo screen /dev/ttyUSB0 115200
  • शुरुआती output में Libre Computer AML-S805X-AC, Amlogic Meson GXL और DRAM: 512 MiB (effective 1 GiB) दिखा
    • इसके बाद Debian 12 image को flash drive पर dd से लिखने के बाद free(1) ने 1GB पहचाना
  • Libre Computer की आधिकारिक OS image stock Debian पर आधारित है
    • disk image 2.25GiB की है
    • MBR layout के अंदर EFI partition है
    • दूसरी partition btrfs है, जिसे first boot पर बची हुई जगह भरने के लिए auto-resize किया जाता है
  • USB dongle पर auto-resize भरोसेमंद नहीं था
    • उपलब्ध 3 USB dongle में से एक resize के दौरान स्थायी रूप से अटक गया
    • दूसरे ने काम पूरा किया, लेकिन उसके बाद बहुत धीमा हो गया
  • OS image बनाने में इस्तेमाल होने वाला repository सार्वजनिक नहीं है, यह भी एक समस्या रही
    • संबंधित विवरण में कहा गया है कि distribution builder customer IP और integration शामिल करने वाला proprietary commercial offering है, इसलिए उसे सार्वजनिक नहीं किया जा सकता
    • यह सलाह भी दी गई कि standard distribution में कुछ settings के अलावा बदलाव नहीं हैं, इसलिए image का विश्लेषण करना हो तो bootstrap के बाद diff देखना चाहिए

HDD enclosure error और अंतिम प्रदर्शन

  • HDD enclosure को बोर्ड से जोड़ने के बाद प्रक्रिया USB dongle से कहीं तेज थी, लेकिन फिर भी कुछ random points पर अप्रत्याशित latency दिखी
  • login के तुरंत बाद kernel में uas_eh_abort_handler error आया
  • lsusb के नतीजे से पता चला कि enclosure के अंदर JMicron JMS578 SATA 6Gb/s डिवाइस है
Bus 001 Device 002: ID 152d:0578 JMicron Technology Corp. / JMicron USA Technology Corp. JMS578 SATA 6Gb/s
  • समाधान यह था कि kernel command line में usb-storage.quirks=152d:0578:u जोड़कर UAS बंद किया जाए
    • इसके बाद latency गायब हो गई
    • benchmark numbers फिर भी प्रभावशाली नहीं थे
  • USB 2.0 कनेक्शन पर dd से 524MB लिखने और sync तक शामिल करने पर परिणाम real 0m21.876s था
    • ext4 partition के हिसाब से यह लगभग 23.95MB/s बनता है
  • अंत में इस सेटअप की सिफारिश करना मुश्किल है
    • SBC चुनने की एक वजह power consumption कम करना थी
    • अगर ऐसी सीमाएँ नहीं हैं, तो इतने झंझट वाले सस्ते डिवाइस से जूझने की कोई खास वजह नहीं है

1 टिप्पणियां

 
GN⁺ 2024-07-05
Hacker News की राय
  • सीक्रेट टिप है पुराने Fujitsu डेस्कटॉप/NUC PC। जर्मनी में कई कंपनियां इन्हें नियमित रूप से बदलती रहती हैं, इसलिए eBay पर सेकंड-हैंड कीमतें सस्ती होती हैं
    अगर power consumption अहम है, तो "$model energy consumption white paper" से खोजने पर idle power जैसी काफी सटीक जानकारी मिल जाती है; उदाहरण है https://sp.ts.fujitsu.com/dmsp/Publications/public/wp-energy...
    एक NUC के लिए PDF में 9W लिखा था, लेकिन Linux में SATA controller power saving चालू करने के बाद idle power 5W तक नीचे आ गई
    किसी random single-board computer की बजाय असली PC इस्तेमाल करने पर connectivity, expandability और software support कहीं बेहतर मिलते हैं; और ज्यादातर single-board computers अपने release-time के अधकचरे kernel से बंधे रहते हैं, जहां vendor द्वारा छोड़े गए Armbian fork को पुराने kernel के साथ मिलाकर नए distro जैसा बनाना पड़ता है

    • Parkytowers कई तरह के thin client reuse की जानकारी जुटाने वाली साइट है, इसलिए power consumption, Linux compatibility और possible hardware mods खोजने के लिए यह खजाने जैसी है: https://www.parkytowers.me.uk/thin/hware/hardware.shtml
    • अगर यह जानकारी बहुत ज्यादा फैला दी गई, तो used market में कीमतें बढ़ जाएंगी और बेहद सस्ते PC stock पर नजर रखने वालों का नुकसान हो सकता है
      अजीब बात है, सस्ता computing resource ठुकराना मुश्किल होता है
    • मैंने लगभग 200 डॉलर में Lenovo thin client खरीदा और उसे Debian home server की तरह इस्तेमाल कर रहा हूं; यह लगभग हर काम के लिए अच्छा बैठता है और Raspberry Pi या नए mini PC से कहीं बेहतर value देता है
      कमी बस इतनी है कि इसमें कई 2.5/3.5-inch disk लगाने की जगह नहीं है, लेकिन यह भी काफी हद तक preference की बात है
    • ऑस्ट्रेलिया में हर हफ्ते auction sites पर lease खत्म हुए Dell 7060 SFF और 7060 Micro PC हजारों की संख्या में आते हैं
      अभी lease-end में आ रहे Dell machines में Intel 8th-gen CPU, TPM, USB-C जैसे आधुनिक features भी हैं
    • Dell/HP SFF PC के बारे में भी यही सलाह सुनी है। वैसे, link के लिए username/password login चाहिए
  • Raspberry Pi-टाइप NAS experiment, खासकर अगर कई power adapters लगाने और case को काट-छांटने जैसा हो, तो थोड़ा questionable लगता है। सब कुछ बहुत ज्यादा tinkering वाला और धीमा है, फिर भी “इतना सस्ता भी नहीं” लगता
    जरूरी personal data को USB drive पर रखना भी कुछ risky लगता है। घर तो नहीं जलेगा, लेकिन फिर भी मन में खटक रहती है
    असली फायदा छोटा form factor और “कम” power consumption है; लेकिन पूरी चीज 43 डॉलर की हो तब भी सोचना पड़ता है कि कुछ डॉलर बचाने के लिए 100Mbit network झेलें या 150 डॉलर देकर 2.5Gig लें
    विकल्प भी बहुत हैं, जैसे Fujitsu Futro S920 (used 75 डॉलर से कम, लगभग 10W), FriendlyElec NanoPI R6C (150 डॉलर से कम, लगभग 2W, https://www.friendlyelec.com/index.php?route=product/product...), FriendlyElec Nas Kit (150 डॉलर से कम, लगभग 5W, https://www.friendlyelec.com/index.php?route=product/product...), Dell T20/T30 (used 100 डॉलर से कम, लगभग 25W), Fujitsu Celsius W570 (used 100 डॉलर से कम, लगभग 15W)
    मेरा personal NAS/home server Fujitsu D3417-B, Intel Xeon 1225v5, 64GB ECC RAM, WD SN850x 2TB NVMe, Pico PSU 120 configuration वाला है; यह महंगा है, लेकिन stable और powerful है, और idle power 10W से कम है

    • यह apples और oranges की तुलना जैसी बात है। लेखक ने जो single-board computer इस्तेमाल किया है, वह idle में 0.75W और maximum load पर 4W लेता है
  • जब सब कुछ ठीक चल रहा होता है, तो हर कोई storage expert होता है। कुछ खराब होते ही लगता है कि RAID array में एक और hard disk डालनी चाहिए थी, backup NAS एक और रखना चाहिए था, या data भेजने के लिए एक और offsite location बनानी चाहिए थी
    अब मैं सस्ते रास्ते पर नहीं जाता। फिर भी उसका आकर्षण समझता हूं

    • ये सब strategy का मामला है, इसलिए device की price range से फर्क नहीं पड़ता
      ज्यादा disks चाहिए तो और खरीदें; backup NAS चाहिए तो एक और खरीदें। offsite copy चाहिए तो space खरीदें या बाहरी जगह के लिए NAS और disks खरीदें
      device की कीमत यहां कुछ नहीं बदलती
    • यह इस पर निर्भर करता है कि आप क्या store कर रहे हैं
      अगर work documents, accounting records, family photos हैं, तो आप उन्हें सुरक्षित रखना चाहेंगे
      लेकिन अगर NAS में सिर्फ 20TB की pirated movies और TV shows हैं, तो सबसे सस्ती drives खरीदकर देखना कि क्या होता है, कहीं ज्यादा आरामदेह है
    • आजकल के बच्चों को बिल्कुल अंदाजा नहीं कि पुराने drives कितनी बार fail होते थे
    • कुछ single external drives को हर 1–2 हफ्ते पुराने तरीके से USB के जरिए sync करता हूं। घर के अंदर की sneakernet है
      Freefilesync जैसे tools से यह आसान और तेज है, और गलती से delete हुआ data भी आंखों से confirm किया जा सकता है
      बहुत सस्ता है और 10 साल से ज्यादा अच्छी तरह चला है। drive failure, user mistake और अनचाहे software bugs/errors से data loss झेला, लेकिन कोई दिक्कत नहीं हुई
    • तो फिर सस्ती चीज 2 खरीद लो। वैसे भी backup तो चाहिए ही
  • ऐसा NAS सेटअप करने पर फ़ाइलों तक कैसे पहुंचते हैं, यह जानना चाहूंगा। NFS है या SFTP?
    घर के बाहर से कैसे access करते हैं, यह भी जानना चाहूंगा। हमेशा connected रहने वाला VPN है, या NAT hole punching का कोई अच्छा तरीका है?
    Syncthing इस लिहाज़ से चाही हुई चीज़ जैसा है कि सभी कंप्यूटर चाहे किसी भी network में हों, वही files sync कर देता है, लेकिन वह हमेशा सभी files copy करने की कोशिश करता है। मैं चाहता हूं कि files सिर्फ NAS पर रहें और कहीं से भी access हो सकें
    Nextcloud भी चाही हुई चीज़ जैसा है, लेकिन जब पहले इस्तेमाल किया था तो unstable और भरोसे लायक नहीं लगा, और ऐसा लगा कि यह बहुत सारे गैर-ज़रूरी features भी करता है

    • क्रम से जवाब दूं तो, अपने NAS पर ज़्यादातर clients cover करने के लिए मैं NFS और SMB इस्तेमाल करता हूं
      Remote access के लिए Tailscale से expose किया हुआ SSH bastion इस्तेमाल करता हूं। यह VPN तो है, लेकिन WireGuard-based है इसलिए बहुत खलता नहीं। हालांकि upload gigabit है, इसलिए environment के हिसाब से फर्क पड़ सकता है
      NAS में 28TB space है और backup strategy पर अभी सोच रहा हूं। फिलहाल इसमें Dropbox और ऐसी miscellaneous files ही हैं जिन्हें खो देने से फर्क नहीं पड़ेगा
      दूसरी service के तौर पर Dropbox काफी इस्तेमाल करता हूं, लेकिन आजकल 2TB बहुत बड़ा नहीं है। ऊपर से files 5 लाख से ज़्यादा हो गई हैं, इसलिए यह थोड़ा संवेदनशील/नखरे वाला भी हो जाता है
      यह personal setup है और लोगों के हिसाब से काफी अलग हो सकता है
    • Synology यह सब कर देता है
      घर और office में एक-एक, कुल दो इस्तेमाल करता हूं; मेरी एकमात्र शिकायत यह है कि इसमें थोड़ा ज़्यादा “idiot-proofing” है। फिर भी web-based GUI शानदार है
      NAT और dynamic IP को पार कराने वाला free software भी है और अच्छे से काम करता है (quickconnect.to). मुख्यतः SFTP और media server के तौर पर इस्तेमाल करता हूं
    • Syncthing से छोटे datasets को laptop, phone और NAS के बीच sync करता हूं। production work और creative work का ज़्यादातर हिस्सा इससे cover हो जाता है
      LAN में बस SMB इस्तेमाल करता हूं, और मेरी जरूरतों के लिए यह काफी है
      Remote तौर पर Linux ISO collection access करने के लिए Plex इस्तेमाल करता हूं
    • आम तौर पर LAN के अंदर सिर्फ SMB share इस्तेमाल करता हूं। मेरी मामूली जरूरतों के लिए काफी है
      पहले WebDAV या FTP भी इस्तेमाल किया है, और यह specific use case पर निर्भर करता है
      घर के बाहर से access के लिए VPN जरूरी है। आजकल सिर्फ port forwarding कर देना बहुत risky है
    • VPN वाले हिस्से का आसान solution Zerotier या Tailscale है। अगर मुझे सही याद है, Zerotier encryption के लिए chacha20 इस्तेमाल करता है, इसलिए AES से तेज़ है, और खासकर power-constrained single-board computers के लिए फायदेमंद है
  • usb-storage.quirks=152d:0578:u को kernel command line में जोड़कर UAS बंद करना पड़ेगा—यह पढ़कर मैं तो इसे सीधे कूड़ेदान में फेंककर हार मान लेता
    पता नहीं लोगों में ऐसी problems को अंत तक debug करने का धैर्य कैसे होता है। समझता हूं कि इस project का मकसद सस्ता और simple बनाना है, लेकिन समय की लागत महंगी है और यह बिल्कुल simple नहीं है

  • इस board का image builder काफी संदिग्ध लगता है
    “distribution builder में कई customer IP और integrations शामिल हैं, इसलिए इसे public नहीं किया जा सकता; यह proprietary commercial offering है” — यह explanation supply-chain injector जैसा महसूस होता है

    • linked https://hub.libre.computer/t/source-code-git-repository-for-... पढ़कर Libre Computer के बारे में मेरी धारणा काफी खराब हो गई
      UEFI शामिल होने से generic images को ज्यों का त्यों इस्तेमाल कर पाना बड़ा plus point है, लेकिन default images और खासकर firmware को proprietary process बनाना इतना बड़ा red flag है कि पूरी चीज़ ही संदिग्ध लगने लगती है
      अगर firmware free/open source हो और free/open source inputs से सीधे build किया जा सके, तो शायद ठीक हो। हालांकि उस discussion से यह स्पष्ट नहीं होता
      UEFI की वजह से generic images support करना बड़ा फायदा है, लेकिन यह default नहीं है—यह बात company के values और culture पर शक कराती है
    • घरेलू इस्तेमाल के लिए “NAS” की नकल करने वाले cargo cult से बचने की यह एक और वजह है। बस disk को computer में लगा दीजिए
  • शायद यह अनजान सवाल हो, लेकिन सोच रहा हूं कि NAS server ECC memory के बिना क्यों बनाया जाता है

    • क्योंकि non-ECC सस्ता होता है। मुझे कोई और वजह नहीं सूझती। बाकी कोई भी explanation, सस्ता बनाने की बात को ढकने वाला झूठ ही होगा
    • क्योंकि NAS लगभग कुछ करता ही नहीं। इसमें 4TB RAM लगाकर कई databases नहीं चला रहे होते
      enterprise servers में भी ECC सच में जरूरी है या नहीं, इस पर बहस हो सकती है
  • काफी बढ़िया। उस use case के लिए ठीक लगता है। मैं होता तो थोड़ा और खर्च करके gigabit port वाला option चुनता
    Jeff Geerling के videos देखकर लगता है कि ऐसे छोटे single-board computers से भी काफी अच्छा-performing NAS बनाया जा सकता है

    • latest-generation Arm single-board computers, खासकर अगर सिर्फ NAS चलाना हो, तो सच में काफी पर्याप्त हैं
      Pi 4 या Pi 5, RK3566 या RK3588 वाले Rockchip boards हों तो USB hard disk/SSD जोड़ सकते हैं, या आजकल ज्यादातर में M.2 drive या SATA hard disk/SSD adapter जोड़ सकते हैं। 1Gbps, और कभी-कभी 2.5Gbps पर भी RAID बिना बड़ी समस्या के चला सकते हैं
      कुछ लोग OpenMediaVault इस्तेमाल करते हैं, वह ठीक है। मेरे NAS Ansible + ZFS को bare Debian पर रखकर configured हैं, और मेरे लिए वह तरीका manage करना ज्यादा simple है: https://github.com/geerlingguy/arm-nas
      अगर Raspberry Pi नहीं लेना हो तो शायद Radxa या Libre Computer चुनूंगा। दोनों के latest boards के लिए images ठीक-ठाक हैं, लेकिन HDMI output issues लगभग हमेशा आते हैं, इसलिए SSH या serial console से setup करने के लिए तैयार रहना चाहिए
  • इस थ्रेड की बाकी बातों की तरह, सेकंड-हैंड मार्केट में मिलने वाले refurbished SFF office PC की value-for-money सचमुच बहुत बड़ी है
    मैंने पहले HP ultradesk सीरीज़ बहुत सस्ते में खरीदी थी, और मिलने पर पता चला कि वह used नहीं बल्कि surplus inventory थी, यानी नया product था, और retail price का लगभग 20% पड़ा। बहुत शांत चलता है और power efficiency भी बेहतरीन है
    CPU top-end नहीं है, लेकिन 10th gen या 11th gen है, इसलिए media server के लिए hardware encoding में बिल्कुल सही है
    RAID और कई hard disk के लिए पूरा hardware तो नहीं है, लेकिन एक NVMe boot disk और एक 16TB hard disk मेरी जरूरत के लिए काफी है। Media है, इसलिए खो भी जाए तो चिंता नहीं
    ऐसे box सस्ते होते हैं, इसलिए एक “deployment” में अलग-अलग काम संभालने वाली कई machines रख सकते हैं। एक समय मेरे पास NAS, media server, CCTV IP camera और homeassistant के लिए अलग-अलग box थे, और सब अच्छी तरह चल रहे थे
    खुशकिस्मती से मैं इतना masochist नहीं था कि कई devices को साथ में orchestrate करने के लिए Kubernetes जैसी चीज़ आज़माता
    यह जाहिर तौर पर homelab/personal use के हिसाब से है। ज्यादा serious use के लिए recommend नहीं करूंगा। लेकिन ये machines बस ठीक से काम करती हैं, और standard x86 PC होने की वजह से ज्यादा special platforms पर आने वाली hardware setup और compatibility की कई समस्याएं हटा देती हैं

    • एक RAID 1 से बेहतर शायद 2 single-drive devices हों, जिनमें हर एक के पास data की copy हो
  • Libre Computer कहलाते हुए भी users को अपनी image बनाने के tools सार्वजनिक नहीं करना ironic है