Raspberry Pi jako NAS

Nie bardzo miałem co zrobić z moim Raspberry Pi, a przecież nie może się maszynka nudzić. Przy czym łącze do domu mam całkiem fajne i w praktyce po WiFi nie do wykorzystania[1], więc postanowiłem zrobić sobie seeder torrentów[2], serwer do backupu innych maszynek i ogólnie NAS dla domu. Niby coś jak Dockstar, ale nie głównie router, tylko z akcentem na NAS. W sumie może kiedyś dorzucę mini hosting dla własnych gadżetów. Na razie leży to sobie na dedyku, zresztą rpi demonem szybkości nie jest, więc z czymkolwiek ponad statyczne strony może być ciężko…

Nierozwiązaną miałem kwestię obudowy dla Raspberry Pi. Przy czym, gdybym zrobił to tradycyjnie, to byłby hub USB, kabelki do rpi, kabelki do dysku, kabel do zasilania, kabel do routera. Trochę plątanina, którą ciężko utrzymać w czystości, bo ani odkurzyć porządnie, ani przetrzeć szmatką. No i podatne na usterki, bo taki kabel na wierzchu jednak łatwo szturchnąć. Postanowiłem, że spróbuję upchać to wszystko w jedno pudło i zacząłem rozglądać się za jakimś dającym się wykorzystać gotowcem.

Pierwsze co mi wpadło w oko, to pudełka do żywności w Netto. Trzy sztuki (różnej wielkości) za 8 zł. Szybka przymiarka ujawniła, że średnie, na które liczyłem się nie nadaje, bo jest za małe. Za to największe pasuje. Na styk, zresztą, ale to dobrze – można zrezygnować z mocowania elementów w środku. Trochę bałem się, że plastik nie będzie odporny na temperaturę, ale niesłusznie. Według opisu pojemniki są przeznaczone do temperatur od -30 do +100 C i do użytku w mikrofali.

Układ elementów w pudełku następujący: na dole dysk w kieszeni, jako element najchłodniejszy i najcięższy, ma lekko miękkie etui z tworzywa, więc na nim bez obaw mogę położyć Raspberry Pi. Hub USB Unitek przymocowany do pokrywki przy pomocy opasek samozaciskowych (AKA żmijki). Po pierwsze jest metalowy, więc nie chcę go mieć w pobliżu rpi z uwagi na możliwe zwarcia, po drugie jego ażurowa obudowa sugeruje, że może się grzać. Pierwotnie rpi miało leżeć wzdłuż dysku, ale nie pasowało to do układu kabli. Zresztą jest na tyle małe, że w poprzek też praktycznie nie wystaje poza obrys dysku.

Miałem obawy o temperaturę w środku, bo wymiana powietrza jest mocno utrudniona. Nie było źle – S.M.A.R.T. dla dysku pokazywał góra 40 stopni, ale ostatecznie zdecydowałem się na dodanie otworów od spodu pudełka (w zamyśle wlot zimnego), zrobienie nóżek z podkładek filcowych (samoprzylepne do mebli) w celu umożliwienia dopływu powietrza do nich, oraz kilku otworów na samej górze z boku (w zamyśle wylot ciepłego powietrza; nie pokrywka, żeby kurz nie wpadał od góry do środka). Dzięki temu jakiś tam przepływ jest i odrobinę chłodniej.

Uroki notek po czasie są takie, że mogę napisać, jak to działało i czemu przestało. Działało bardzo dobrze i stabilnie. Jedyne restarty to braki prądu (rzadko się zdarza, ale się zdarza) lub wymiana kernela. Uptime po kilkadziesiąt dni. Wydajnościowo szału nie ma. Sam NTFS via ntfs-3g potrafił wskoczyć w top na pierwsze miejsce z kilkadziesiąt procent (40-60) zużycia CPU. Oczywiście NTFS jest tam tymczasowy – po prostu chwyciłem do testu dysk, który robił za przenośny. No i całość jak najbardziej wyrabiała się z serwowaniem plików po sambie po WiF. Tyle, że cokolwiek więcej w tym czasie na rpi było problematyczne. Dysk po USB jak najbardziej daje radę, ale ten element miałem przetestowany już wcześniej.

Dzięki temu, że miałem notkę o testowym uruchomieniu Raspberry Pi, wiem dość dokładnie, ile działało. Problemy (niemożność zalogowania się po SSH) zaczęły się na początku kwietnia, czyli podziałało jakieś 4 m-ce. Niestety, trafnie przewidziałem powód: pad karty micro SD (ja wiedziałem, że tak będzie… pamięci flash nie nadają się do zapisu ja wiedziałem, że tak będzie…). Początkowo uważałem, że to zwykłe zawieszenie, ale po restarcie po paru godzinach sytuacja się powtórzyła. Wyjąłem kartę, w komputerze popełniłem backup przez obraz partycji, następnie fsck (były błędy) i przy okazji zdjąłem journal z ext4. Podziałało jeszcze parę dni i sytuacja znowu się powtórzyła. Tym razem sprawdziłem dokładniej. Badblocks widzi błędy na karcie, zarówno na teście odczytu (jeden), jak i niedestrukcyjnym teście zapisu (więcej). Próbowałem reanimować przez oznaczenie przez fsck sektorów jako uszkodzonych (patrz przydatne polecenia Linux), ale bez powodzenia. Po naprawie rpi już się nie bootuje z tej karty.

Nie jestem w stanie stwierdzić, czy winien był – niestety domyślnie w Raspbianie włączony – journal, czy zapisywanie przez transmission stanu co kilkanaście minut na dysk (kartę) gdzieś w /var. Symlinka i przenoszenia na dysk twardy nie robiłem. Po pierwsze i tak system był z journalem, po drugie, chciałem zobaczyć, na ile to szkodliwe dla karty. Jak widać jest szkodliwe i karta potrafi paść w mniej niż pół roku. Co prawda widzę karty Goodram 4 GB za ok. 10 zł, ale nie widzę sensu w grzebaniu i ew. utracie danych.

Niebawem, po kupnie karty (tak się pechowo składa, że nic wolnego większego niż 2 GB chwilowo pod ręką nie mam), wskrzeszę system. Być może kupię docelowy dysk do kieszeni i wtedy zrobię od razu root montowany w trybie read only. Nawet jeśli nie, to od razu po instalacji zdejmę journal z ext4, prawdopodobnie zajmę się też od razu transmission…

Kiedyś pojawią się tu zdjęcia – leżą na dysku, który był podłączony do NAS, a nie chce mi się podłączać go bezpośrednio do kompa…

[1] Bo router to WRT54GL, który co prawda linkuje się na 54 Mbit bezprzewodowo, ale realnie komputery wyciągają ok. 20 Mbps. Po wpięciu na kablu nie ma problemu. W eterze umiarkowany syf, wybrany najlepszy kanał i tryb G only. Ogólnie 802.11n by się przydało, ale przecież router działa, a szczerze mówiąc nie sądzę, bym zobaczył różnicę – 20 Mbps to kosmos. Chociaż znajomi donoszą, że przy 802.11n poprawia się zasięg, więc pewnie się skuszę…

[2] Żadne tam nielegale, po prostu mały wkład w projekty open source. Seedują się netiso Debiana (trzy architektury), pierwszy CD Debiana (trzy architektury), t(a)ils, tego typu sprawy. Zresztą pisałem o tym już (uroki niechronologicznego publikowania notek).

UPDATE: W jednej z kolejnych notek opisuję, jak zrobić z maszynki z Linuksem router GSM/Wi-Fi. Z uwagi na niewielkie rozmiary i mały pobór energii Raspberry Pi nadaje się do tego bardzo dobrze.

Najpopularniejsza bateria.

Battery lithium CR2032

Źródło: http://en.wikipedia.org/wiki/File:Battery-lithium-cr2032.jpg

Czasem człowiekowi się wydaje, że wie całkiem sporo i mało co jest go w stanie zaskoczyć, a tymczasem zupełnie niedawno zaskoczył mnie temat, po którym zaskoczenia się w sumie nie spodziewałem: bateria. Zaczęło się od tego, że w wadze kuchennej coraz częściej widoczne były objawy słabej baterii. A to nie bardzo chciał się pomiar wagi załączyć, a to po załączeniu pomiaru wagi znikał czas, a to wręcz przygasał wyświetlacz w charakterystyczny dla dogorywającej baterii sposób.

Otworzyłem klapkę i ujrzałem to, czego się obawiałem, czyli wynalazek podobny do stosowanych w zegarku (fachowo, za angielską Wikipedią: button cell lithium battery). A z zegarkiem i tego typu bateriami to do tej pory zwykle było tak, że sam nie wymieniałem baterii, tylko grzecznie do zegarmistrza nosiłem. Co prawda ostatnio wątpię w sensowność takiego postępowania, bo wymiana kosztuje coraz więcej, a wystarcza na coraz krócej, ale to temat na zupełnie inny wpis.

Wynalazek okazał się mieć napis, który głosił CR2032. Szybkie sprawdzenie, za ile można to kupić w sieci i trafiam na stronę Wikipedii poświęconej baterii CR2032. I okazuje się, że to dobrze znana mi z komputerów bateria do BIOSu (w zasadzie CMOS) i w ogóle jeden z najpopularniejszych rodzajów baterii we wszelkiego rodzaju elektronice w ogóle.

Na koniec jeszcze tip dla kupujących, bo początkowo rozważałem zakup przez sieć. Głównie ze względu na koszt przesyłki, który dla jednej czy dwóch baterii jest miażdżący, a w sumie mam parę wiekowych płyt głównych, a jak się kiedyś przekonałem wymiana baterii w płycie głównej potrafi zdziałać cuda. Ostatecznie kupiłem jedną sztukę w sklepie z elektroniką. Zakup przez sieć może się opłacać przy naprawdę dużych ilościach, ale – tu tip właściwy – Ikea również posiada takie baterie o nazwie Solviden w przyzwoitej cenie, pakowne po 8 (co też nie jest małą ilością, ale w sklepie z elektroniką tyle zapłacimy za 2-3 sztuki). Niestety, mało który producent podaje pojemność baterii, więc ciężko jednoznacznie określić, który wariant jest korzystniejszy w dłuższym okresie.

Prąd do budzika za darmo.

W budziku[1] wysiadła bateria. Zwykła bateria R14. Można kupić kolejną baterię i mieć spokój na rok czy dwa, a można pokombinować. Mam w domu trochę akumulatorów R6 (AKA AA), więc wpadłem na szatański – jak mi się wydawało – pomysł użycia akumulatora AA jako zamiennika.

Okazało się, że pomysł miałem dobry, bo jeśli chodzi o długość, to R14 i R6 są dokładnie takie same. Ale okazuje się, że nie jestem pierwszą osobą, która na to wpadła i nie trzeba wcale robić przejściówki pogrubiającej typu DIY (w planie był papier i taśma klejąca), bo za grosze dostępne są gotowe adaptery.

Pozostają dwie sprawy. Różnica napięcia 1,2V w akumulatorach vs. 1,5V w zwykłych bateriach. Nie do końca pomijalne, bo niektóre sprzęty czują różnicę (na różne sposoby, do „nie działa” do np. sygnalizowania rozładowania baterii). Okazuje się, że zegarek działa.

Sprawa druga, to pojemność. R14 nie są grubsze tak po prostu. Mają też większą pojemność, czyli starczają na dłużej, niż R6. Wg wiki, baterie R14 to od 8000 mAh w przypadku baterii alkalicznych, przez 6000 mAh w przypadku akumulatorów NiMH do 3800 mAh w przypadku zwykłych cynkowo-węglowych. Biorąc pod uwagę, że używałem zwykłych, a planuję użyć akumulatorów R6 o pojemności ok. 2000 mAh[2], spodziewać się mogę ok. 50% czasu korzystania, co w zupełności wystarczy.

Na deser jeszcze jedna sprawa. Wszystko jest interesujące tym bardziej, że akumulatory AA (3 sztuki) są używane w lampce z panelem słonecznym Sunnan (sekcja lampki Sunnan z IKEA). Co znaczy, że można je w takiej lampce w stosunkowo prosty i w miarę elegancki sposób[3] ładować za darmo, bez użycia prądu z sieci. Czyli kolejny krok bliżej niezależności energetycznej (taki mój konik, ekonomicznie to specjalnie sensu nie ma, póki co).

Umieszczenie tymczasowej baterii bez stosownej przejściówki okazało się nietrywialne, ale wykonalne. Budzik działa. Dam mu parę dni, żeby sprawdzić czy nie ma ewidentnych niedokładności i – jeśli będzie OK – kupuję przejściówkę i dedykowany akumulator (pewnie komplet od razu).

[1] Casio TQ 313. Aktualnie pełniącym rolę zwykłego zegarka. Jeśli chodzi o budziki, byłem bardzo wybredny i używałem tylko Casio. Powód był prosty – moje budziki musiały być na baterię, wskazówkowe i bardzo ciche. Był więc mniejszy, czyli Casio TQ 110 i większy, czyli Casio TQ 313 (jakoś nie widzę możliwości kupna w sieci, ani na stronie Casio, jeśli wycofany to wielka szkoda). Dość drogie, ale warto – działają latami, są dokładne. Teraz budzik mam w komórce, ale to zupełnie inna historia.

[2] Wiem, są akumulatory R6 o większej pojemności, nawet 2700 mAh, ale od dłuższego czasu korzystam tylko z ogniw nowej generacji, nie tracących szybko pojemności (np. Sanyo Eneloop), a te mają zwykle niższą pojemność od tradycyjnych. Lub są nieprzyzwoicie drogie, w przypadku wariantu znacznie większego od 2000 mAh.

[3] Elegancki optycznie. Rozwiązanie zastosowane w tej lampce jest bardzo prymitywne, jeśli chodzi o regulację napięcia i kontrolę ładowania. Tzn. w zasadzie brak czegokolwiek.

UPDATE: Ostatecznie korzystałem z Sanyo Eneloop 1900 mAh. Budzik przestał działać jakieś 2-3 tygodnie temu, co oznacza, że bateria wystarczyła na jakieś 2,5 roku pracy. Lepiej niż dobrze. 🙂