Dziś powrócimy do poruszanego już tematu obudowy Cloudshell, która pozwala zamienić naszego ODROID-XU4 w serwer NAS. Dzięki uprzejmości sklepu internetowego ElTy.pl miałem przyjemność przyjrzeć jej się z bliska i odpowiedzieć na pytanie - jak sprawuje się ona w boju poza oficjalnymi przechwałkami producenta.
Cloudshell - obudowa NAS dla ODROID-XU4
Głównymi bohaterami dzisiejszego wpisu będą: Cloudshell, ODROID-XU4 oraz dwa nośniki danych - dysk twardy Seagate ST500LM000 oraz dysk SSD ADATA SX300 z interfejsem SATA (z odpowiednim adapterem)
ODROID-XU4
Seagate ST500LM000 oraz SSD ADATA SX300
Budowa i trochę informacji
Najważniejszym elementem obudowy Cloudshell jest frontowy panel, wyposażony w ekran TFT LCD o rozdzielczości 320x240 pikseli z popularnym kontrolerem ILI9340, odbiornik podczerwieni IR oraz mostek USB 3.0 ↔ SATA, którego funkcje realizuje układ Genesis GL3321G.
Panel Cloudshell (front)
Po drugiej stronie znajdują się wszystkie potrzebne nam złącza: gniazdo SATA, port USB 3.0 oraz GPIO wykorzystywane do sterowania wyświetlaczem TFT.
Panel Cloudshell (tył)
Złożenie całego zestawu zajęło mi niecały kwadrans, tak więc nie powinna sprawić nikomu większych problemów. Wszystkie elementy są wysokiej jakości i są dobrze do siebie dopasowane. Jednak proces składania Cloudshella pozwolę sobie zaprezentować na sam koniec.
Instalacja systemu operacyjnego
Na chwilę obecną dostępne są dwie oficjalne wersje systemu Linux: Ubuntu 14.04.01 z jądrem 3.10.69 oraz Ubuntu 15.10 z jądrem 3.10.92. Jest też wersja eksperymentalna opierająca się o jądro 4.2+, ale na dziś nie jest to tematem naszej czytanki, dlatego finalnie wybierzemy wersję LTS.
Oczywiście pierwszym krokiem, jest wgranie systemu operacyjnego na kartę microSD za pomocą dobrze znanego nam polecenia dd lub Win32DiskImager, jeśli korzystamy z systemu operacyjnego Windows. Oficjalne obrazy systemów znajdziecie tutaj.
Pierwsze co musimy zrobić, to przygotować nasz system do przyszłej obsługi ekranu TFT, ponieważ domyślnie nie jest on obsługiwany. Jak wspomniałem wcześniej, system dostarczony jest z wersją jądra 3.10.69, dlatego na początek musimy skorzystać z programu Odroid Utility (program znajduje się domyślnie na pulpicie) i zaktualizować jądro do najnowszej wersji.
Po udanym procesie aktualizacji, restarcie i wydaniu polecenia, powinniśmy zobaczyć nowszą wersję jądra:
- uname -a
- Linux odroid 3.10.92 #1 SMP PREEMPT Tue Nov 17 00:15:24 BRST 2015 armv7l armv7l armv7l GNU/Linux
W drugiej kolejności instalujemy specjalną wersję Smartmontools, obsługującą nasz specyficzny mostek SATA na USB.
- sudo wget http://deb.odroid.in/manual/5422/smartmontools/14.04/smartmontools_6.5%2bsvn4132-1_armhf.deb
- sudo dpkg -i smartmontools_6.5+svn4132-1_armhf.deb
Wynik polecenia smartclt
W przypadku dysku Seagate ST500LM000 prędkość zapisu oscyluje w granicach 70MB/s, natomiast odczytu 73MB/s. Dla SSD ADATA SX300 prędkość zapisu to 108MB/s, natomiast dla odczytu 110MB/s. Pomiary uwzględniają czas synchronizacji dysku.
Przygotowanie dysku oraz usług SAMBA / NFS
Dysk twardy partycjonujemy według własnego uznania, na przykład za pomocą programu cfdisk oraz formatujemy go z wykorzystaniem systemu plików ext4. Tutaj jest już to kwestia Waszej fantazji, ile będzie docelowo partycji oraz jakie systemy plików zamierzacie oferować. Ja pokusiłem się tylko o jedną.
- sudo cfdisk /dev/sda
- sudo mkfs.ext4 /dev/sda1
Nie zapomnijmy też o odpowiednim wpisie w pliku /etc/fstab do którego dodajmy nasz dysk w celu automatycznego montowania podczas startu systemu.
- /dev/sda1 /mnt/storage ext4 rw,nosuid,nodev,uhelper=udisks2 0 0
Następnie instalujemy serwer SAMBA oraz NFS:
- sudo apt-get install samba
- sudo apt-get install nfs-kernel-server
- sudo mkdir -p /mnt/storage
- sudo chown nobody:nogroup /mnt/storage
Poniżej przykładowa konfiguracja SAMBA, którą dokonujemy w pliku /etc/samba/smb.conf. Są to ustawienia, które pozwoliły mi na otrzymanie optymalnych wyników, które nieco różnią się od tych podawanych przez producenta, ale do tego tematu powrócimy nieco później.
- [global]
- workgroup = MYGROUP
- server string = ODROID Samba server (%h)
- netbios name = ODROID
- dns proxy = no
- create mask = 0660
- directory mask = 0770
- log file = /var/log/samba/log.%m
- max log size = 1000
- syslog = 0
- panic action = /usr/share/samba/panic-action %d
- security = user
- encrypt passwords = true
- passdb backend = tdbsam
- obey pam restrictions = yes
- unix password sync = no
- map to guest = bad user
- usershare allow guests = no
- max protocol = SMB2
- max xmit = 65535
- socket options = TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=65535 SO_RCVBUF=65535
- read raw = yes
- write raw = yes
- max connections = 65535
- max open files = 65535
- [STORAGE]
- comment = Storage dir
- path = /mnt/storage
- browsable = yes
- guest ok = no
- read only = no
- create mask = 0755
Na koniec tworzymy hasło dla użytkownika odroid:
- sudo smbpasswd -a odroid
Jeśli chodzi o NFS, konfiguracja udostępniania zasobów dla konkretnego adresu IP wygląda następująco:
- /mnt/storage 10.42.0.1(rw,async,no_subtree_check,insecure,no_root_squash)
Oczywiście, jeśli macie taką potrzebę, można również zastosować zapis z maską sieci lub wildcardy.
Instalacja sterowników TFT
Kiedy mamy już przygotowany dysk, możemy przejść do instalacji i konfiguracji wyświetlacza TFT.
- sudo su
- echo "options fbtft_device name=hktft9340 busnum=1 rotate=270" > /etc/modprobe.d/odroid-cloudshell.conf
- echo "spi_s3c64xx" >> /etc/modules
- echo "fbtft_device" >> /etc/modules
Dodatkowo, możemy również zainstalować oprogramowanie dodatkowe, które pozwoli nam na wyświetlenie niezbędnych informacji o naszym NAS na ekranie TFT.
- sudo wget https://raw.githubusercontent.com/mdrjr/cloudshell_lcd/master/cloudshell-lcd_20150731-2_armhf.deb
- sudo dpkg -i cloudshell-lcd_20150731-2_armhf.deb
- sudo apt-get -f install
Jeśli po restarcie urządzenia, na ekranie widoczny będzie tylko znak zachęty, należy wyłączyć serwer Xorg za pomocą narzędzia ordroid-utility.sh lub dopisać do /etc/rc.local polecenie chvt 1, które przełączy nas z powrotem na terminal tty1 po uruchomieniu systemu.
odroid-utility.sh
Po ponowny restarcie powinniśmy uzyskać następujący efekt.
Wygląd ekranu informacyjnego
Testy w boju
Do testów protokołu SMB wykorzystałem zarówno system operacyjny Windows 10 jak i Ubuntu 14.04. Co ciekawe, w przypadku Windowsa uzyskałem lepsze wyniki niż w przypadku Linuksa. Ma to jednak pewne odzwierciedlenie w obiegowej opinii, nie specjalnie dobrej implementacji tego mechanizmu na Linuksie. Być może winę ponoszą ustawienia, więc jeśli czyta to jakiś specjalista w tym temacie, bardzo chętnie zasięgnę opinii.
Windows 10 / SAMBA / Odczyt
Windows 10 / SAMBA / Zapis
Ubuntu 14.04 / SAMBA / Odczyt
Ubuntu 14.04 / SAMBA / Zapis
Dopiero w przypadku NFS uzyskałem wynik przy odczycie na poziomie 72MB/s, a więc w granicach możliwości testowanego dysku.
Ubuntu 14.04 / NFS / Odczyt
Kolejną ciekawostką jest fakt, że zastosowanie szybszego dysku SSD przyniosło prawie identyczne wyniki. Tajemnicą jest więc dla mnie, w jaki sposób producent uzyskał wynik na poziomie 80MB/s. Jednak uzyskane pomiary NFS pozwalają mi mocno wierzyć, że nie jest to tylko chwyt marketingowy :)
Inny trop?
Zacząłem więc podejrzewać, że winę ponosi połączenie ethernet, ale uzyskany wynik 874 MBit/s zbił mnie z tropu.
Podsumowanie
Cloudshell bez wątpienia jest ciekawym produktem, pozwalającym na stworzenie własnego, wymarzonego serwera NAS.
Przyznam się bez bicia, że byłem sceptycznie nastawiony do takiego rozwiązania - głównie za sprawą możliwości podłączenia tylko jednego dysku twardego, który wyklucza jakąkolwiek konfigurację RAID.
Jednak po głębszym zastanowieniu i dodatkowych pomysłach, jak można jeszcze wykorzystać taki zestaw, jestem zmuszony powiedzieć, że bardzo przypadł mi do gustu.
Tym bardziej, że całość w trakcie pracy pobiera jedynie 12-13W, a w spoczynku poniżej 8W. Czego chcieć więcej?
Proces montażu
Wpisy na podobny temat
- 05 Aug 2013 » Nowy ODROID-XU z procesorem Exynos5 Octa Hardware
- 08 Sep 2013 » ODROID-X2 zamiast tradycyjnego komputera? Hardware Dystrybucje Android
- 08 Mar 2014 » Odroid-XU - Pierwsze wrażenia Hardware Android
Komentarze
Wszystko pięknie ładnie ale imo za dużo kombinowania.
Na tym, zdaje się, polega DIY :)
Dokłądnie :D
Ja "lekko" zmodyfikowałem Cloudshell - wyciąłem paski akrylu z chłodzenia nad wentylatorem, zmieniłem radiator na taki od NorthBridge i wentylator na Noctuę 40mm (teraz całość konstrukcji przyklejonek na thermopad do procka wystaje jak kominek ponad Cloudshell :D
I co?.... I nadal mi mało, bo w testach obciążalności procesora dla 4 tylko wątków pracujących po 100% osiągam wynik .... kilkunastu sekund do rozpoczęcia zrzutów prędkości (takie zabezpieczenie przed przegrzaniem przy osiągnięciu 95 stopni na którymś z 8 procesorów).
Na warsztacie jest teraz radiator od stacjonarnego chłodzenia procesora BeQuiet + ogniwo Peltiera 5V + kostka miedzi 40x40x40mm po stronie zimnej w celu odbierania ciepła i penie jeszcze będzie izolowana termicznie obudowa... Ale czy chęć schłodzenia procka pod maksymalnym obciążeniem poniżej 90 stopni C. okupiona sporym nakładem finansowym opłąci się?
No cóż.... Tak jak napisał Korneliusz... DIY :)
Witam
Jak z głośnością takiego zestawu? Mam pi2 i wiecznie mi się wiesza. Planuje zamienić na c1+ albo właśnie zestaw, o którym piszesz ale boje się, że będzie słychać wentylator.
Co prawda nie mam słuchu drygenta :) ale jest cicho.
dodatkowy skrypt CPU-cotrol zmieniający ustawienia governora na "ONDEMAND" i max. częstotliwość na np. 1800MHz zamiast 2.0GHz i FAN-control zmieniający progi temperaturowe i PWM dla wentylatora i.... jak oglądasz filmy nawet te 1080p/HD to wentylator praktycznie nie załącza się :D
Wszystkie tv mają dlna więc nie używam pi jako media center tylko jako domowy serwer(seafile, dlna, mpd, ssh, backup). Mam dołączony dysk seagata z własnym zasilaniem, ale co 2-3 dni pi przestaje odpowiadać(ping,ssh) ale za to muzyka puszczona przez mpd dalej gra. W logach tylko @@@ x 1000. Przemyślę sprawę.
konfiguracja z jednym dyskiem nadaje sie tylko na odtwarzacz multimedialny oraz seedbox bo raczej żadnych ważnych danych tam trzymać nie będziemy. a do tego z powodzeniem można wykorzystać pi2 B+ z osmc i dyskiem pod usb. taki sam efekt tyle ze niższe transfery (100 Mbit), i niższa cena a jednak pełnego BD w 1080 po hdmi wyciąga. Fajna ciekawostka owszem, ale zastosowanie tak samo ograniczone jak w przypadku tańszych rozwiązań więc po co przepłacać :)
Pozdrawiam i dalej penetruje bloga bo nowy tu jestem :)
A ja właśnie chyba zastosuje go jako odtwarzacz multimedialny, dla mojego XU4. Fajna obudowa, na ekranik wrzuczę jakieś komunikaty :)
Fajna sprawa, mam tak na RPi2 B+, osmc a w tym klienta torrent - na prywatne trakery idealna sprawa jak ma się dobre łącze. Na prawde fajne rozwiązanie.
No z tym to się tak Kolego nie rozpędzaj... LCD w Cloudshell możesz wykorzystać jako monitor w przypadku instalacji headless, a w przypadku instalacji z monitorem HDMI wymaga to już trochę ingerencji w xorg... Jeśli jednak chcesz używać KODI jako odtwarzacza multimedialnego po HDMI, to LCD odpada, bo gryzie się głębia kolorów w lcd z ustawieniami monitora głównego HDMI i nie działa to tak jak trzeba... :(
Nie zgodzę się z Tobą. Na LCD nie będę wyświetlał filmów / xorg, tylko tty1. Nawet jeśli będzie trzeba zrezygnować z ttyX, bo jest jak piszesz, zawsze pozostanie gcc i spi.
Masz rację ale to już nie jest zabawa "off-the-shelf" - trzeba samemu zabrać się za obsługę GPIO - jest działający port WiringPi i można się pobawić :D
Jestem właśnie na początku "przychody" z programowaniem GPIO. Masz może jakiś fajny tutorial jak zacząć na ODROID-XU4 z wykorzystaniem WiringPi?
Powinien być na wiki Hardkernel
Niby fajne, ale ciężko mi nazwać to serwerem NAS, skoro jest tam tylko jeden dysk. Marzy mi się takie ustrojstwo z 4 portami SATA, tak żeby były po dwa dyski w RAID 1.
Niby tak :) ale RAID nie jest wymogiem NAS, a NAS to właśnie dysk sieciowy. Oczywiście kwestią bezdyskusyjną jest bezpieczeństwo danych w trakcie awarii, ale w dużej ilość przypadków, dla sporego grona jest to wystarczające.
Jednodyskowy NAS QNAP TS-112 chyba taniej wyjdzie w sumie :D Ja na XU4 z CS i pamięcią eMMC 32GB wydałem znacznie więcej....
Dokładnie, 2 porty sata by wystarczyły i 1GbE, przyjdzie nam jeszcze chwilę poczekać na takie cacko :)
W sumie XU4 ma dwa porty USB 3.0 (CloudShell zabiera jeden) więc można drugi dysk podpiąć również na przjściówce po USB (nawet jakoś zmieściłyby się w obudowie gdyby troszkę przedłużyć kołki (podnieść XU4 do góry) - jest tylko jedno małe ALE - obydwa porty USB3.0 oraz dodatkowo GigE są na tym samym pojedynczym kontorlerze i chyba niespecjalnie się to ma do wydajności....
Korneliusz jak masz taka możliwość to przetestuj go jako media playera. Głownie h265 oraz czynie ma problemów z dźwiękiem hd po hdmi
Z mojego półrocznego użytkowania XU4 powiem Ci, że nie ma większych problemów - wszystkie są jakoś zgrabnie rozwiązywane przez ekipy tworzącw kolejne dystrybucje :D
Ten temat też może Cię zainteresować: http://forum.odroid.com/viewtopic.php?f=56&t=17150
Witam.
Mam taki problem po podłączeniu odroid xu4 nie wyświetla się nic na ekranie, nawet dioda alive nie daje znaku życia. problem z kartą sd jak myslicie.
Pozdrawiam