Dlaczego serwer na płycie mITX to zły pomysł?
31.12.2016 18:36
Pierwszym moim wpisem na blogu dobreprogramy był opis jak nie stawiać serwera plików na Raspberry Pi. W komentarzach wiele osób podsunęło mi pomysł użycia thin clienta zamiast malinki - stwierdziłem, że zakupie takowego i spróbuje przenieść mój serwer na tą platformę.
Ale czym właściwie są te thin client'y?
Thin client - z ang. Cienki klient - komputer w małej obudowie ze średnimi specyfikacjami; Większość takich komputerów używa płyty standardu mITX lub większej mATX. Szukając na allegro spotkałem się z dość wysokimi cenami za taki hardware - procesor VIA 1GHz(tak na prawdę chipset był branowany przez VIA a procesor na tej płycie pozostaje dla mnie zagadką), 512MB ram i dysk "SSD" o zawrotnej pojemności 2GB za - bagatela - 180zł(cenę skutecznie podwyższał fakt zainstalowanego Windowsa XP z "wątpliwą" licencją(żeby nie powiedzieć brakiem)). Najtańsze oferty "gotowych" cienkich klientów jakie znalazłem to około 130zł - i to jedynie za płytę w obudowie oraz zasilacz - komplet nie zawierał ani dysku, ani pamięci RAM. Postanowiłem poszukać inaczej - szybki research w googlach podpowiedział mi, że moge spróbować szukać frazą HTPC. Tutaj niektóre ceny też były śmieszne - taka sama płyta z chipsetem VIA i procesorem taktowanym 1GHz na trzech aukcjach za kolejno.. 60zł, 80zł i 99zł? Najbardziej zastanawiający był fakt, iż wszystkie trzy płyty były sprzedawane przez tego samego sprzedawcę i nie różniły się niczym oprócz rewizji płyty(pare kondensatorów oraz części pasywnych było umiejscowione inaczej na płycie). Trzecią moją opcją było szukanie samej płyty, przykładowo frazą mITX - zrobiłem to i doszedłem do ciekawych wyników. Znalazłem płytę dla siebie - jest to bazowana na wlutowanym Atomie 330(czyli dual-core!) płyta fanless za którą razem z przesyłką zapłaciłem 70zł. Do tego doszedł jeszcze gigabajt ramu w jednej kości(płyta posiada tylko jeden slot), za który inny sprzedawca życzył sobie 13zł. Spodobała mi się perspektywa posiadania zupełnie bezgłośnego serwera, więc zainwestowałem w jeden z adapterów, który miał zamienić napięcie z zasilacza laptopowego na odpowiednie napięcia potrzebne na złaczu ATX.
This doesn't look good..
Od razu po tym, jak przyszły do mnie wszystkie części, począłem składać ten zestaw. Najpierw ułożony na pudełeczku po płycie głównej, z czasem serwer przeniosłem do obudowy "modułowej" ;)
Problemem okazał się adapter, o którym przed chwilą pisałem - sprzedawca na aukcji pisał, że przy 12 woltach trzeba dostarczyć mu minimalnie cztery ampery - mój najmocniejszy zasilacz o tym woltażu(nie licząc zasilaczy ATX) niestety nie miał nawet połowy tego amperażu; Aukcjoner nie napisał zaś jakie jest napięcie maksymalne.. Szybko sprawdziłem napięcia maksymalne na chipach które wyglądały na regulatory napięcia - wszystkie z nich przyjmowały napięcia aż do 20V co postanowiłem wykorzystać. Podłączyłem jeden z moich zasilaczy o napięciu 16V i odpowiednim amperażu(zrobiłem sobie nawet tabelkę jaki jest minimalny amperaż dla danego napięcia, ale niestety gdzieś ją w tej chwili zapodziałem).. Pierwsze uruchomienie - działa! Szybko wyłączyłem płytę i podpiąłem pod port SATA dysk 3,5". Próbuje odpalić płytę ponownie.. nie działa. Testowo podłączyłem normalny zasilacz ATX zamiast fikuśnego adaptera - wszystko w normie. Niestety, mój system od tego momentu nie był stricte fanless, bo w zasilaczu cicho kręcił sie jeden wiatraczek, a adaptera nie udało mi się naprawić.
Let's start testing!
Na dysku zainstalowałem Debiana 8, a na nim serwer FTP, SSH i Samba. Szybkość przesyłu plików niestety nie powalała - 9MB/s to rekord zarówno po Sambie jak i FTP używając Ethernetu, SFTP plasuje się nieco niżej z 8,5MB/s po Ethernecie. Czemu tak wolno? Okazuje się, że kupując płytę zapomniałem o jednej bardzo ważnej dla serwera rzeczy - dobrej karcie sieciowej. Byłem prawie pewien, że moja karta wspiera prędkość Gigabitową, niestety okazało się że jest to tylko karta 10/100Mbps. WiFi to(prawdopodobnie przez słabej jakości dongle) jeszcze większa tragedia; Wszystkie transfery nie przekraczały 1MB/s, a niektóre spadały do około 250KB/s co nie wystarcza nawet na streamowanie mp4 w 480p(o 720p którego zwykle używam nie wspominając).
Już po pierwszym dniu używania zauważyłem pewien mały lecz bardzo dokuczliwy problem - chciałem, aby moje dyski były włączone tylko, kiedy będą potrzebne; Można osiągnąć to odpowiednim parametrem komendy hdparm, ale przynajmniej jeden z dysków(ten, na którym oprócz plików miałem zainstalowanego linuxa) praktycznie się nie wyłączał - było to spowodowane tym, że linux ciągle chciał odczytać jakiś plik systemowy z dysku. Rozwiązałem to przegrywając partycję z systemem na stary dysk SSD o pojemności 32GB który co prawda nie powala prędkością, ale idealnie nadaje się do takiego zastosowania. Minusem tego rozwiązania jest fakt, iż nie mogę podłączyć drugiego dysku HDD(płyta posiada tylko dwa porty SATA2; DVD‑ROM potrzebny w pewnym momencie do archiwizacji moich danych z płyt podłączyłem przelotką IDE/SATA›USB)
Podsumowując - projekt był ciekawy, ale niepraktyczny. Osiągnięte prędkości przesyłu danych były tylko troche lepsze niż te na raspberry, a ja nie zamierzałem pakować więcej kasy w kartę Ethernet 1Gbps na PCI - robią się one coraz rzadsze i te które istotnie działają mogą chodzić nawet po 50zł(co już jest prawie całą ceną płyty głównej!) Poważnym minusem płyty mITX jest też jej pobór prądu - moja płyta w idle wżera około 20 w porywach do 25W - jeśli zostawić by ją włączoną na cały miesiąc(a taki jest sens posiadania serwera), prąd kosztowałby około 50zł, kiedy przy podobnych prędkościach przesyłu danych malinka pobiera maksymalnie 10W(włączając w to dysk!), a jej pobór mocy w idle to około 4‑5W, co kosztowałoby wielokrotnie mniej. Biorąc pod uwagę cenę prądu, warto też zastanowić się nad ceną zestawu - serwer na malince kosztował około 150zł, kiedy między innymi przez fakt kupna adaptera , którego nie użyłem koszt serwera na mITX to około 200‑250zł.