SantyagoSantyago
Avatar

Witaj!
Blog archiwalny. Już niebawem nowy serwis!

YouTube RSS Facebook GitHub

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:

  1. uname -a
  2. 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.

  1. sudo wget http://deb.odroid.in/manual/5422/smartmontools/14.04/smartmontools_6.5%2bsvn4132-1_armhf.deb
  2. 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ą.

  1. sudo cfdisk /dev/sda

  1. 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.

  1. /dev/sda1 /mnt/storage ext4 rw,nosuid,nodev,uhelper=udisks2 0 0

Następnie instalujemy serwer SAMBA oraz NFS:

  1. sudo apt-get install samba
  2. sudo apt-get install nfs-kernel-server
  3. sudo mkdir -p /mnt/storage
  4. 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.

  1. [global]
  2.  
  3. workgroup = MYGROUP
  4. server string = ODROID Samba server (%h)
  5. netbios name = ODROID
  6. dns proxy = no
  7. create mask = 0660
  8. directory mask = 0770
  9.  
  10. log file = /var/log/samba/log.%m
  11. max log size = 1000
  12. syslog = 0
  13. panic action = /usr/share/samba/panic-action %d
  14.  
  15. security = user
  16. encrypt passwords = true
  17. passdb backend = tdbsam
  18. obey pam restrictions = yes
  19. unix password sync = no
  20. map to guest = bad user
  21.  
  22. usershare allow guests = no
  23. max protocol = SMB2
  24. max xmit = 65535
  25. socket options = TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=65535 SO_RCVBUF=65535
  26. read raw = yes
  27. write raw = yes
  28. max connections = 65535
  29. max open files = 65535
  30.  
  31. [STORAGE]
  32. comment = Storage dir
  33. path = /mnt/storage
  34. browsable = yes
  35. guest ok = no
  36. read only = no
  37. create mask = 0755

Na koniec tworzymy hasło dla użytkownika odroid:

  1. sudo smbpasswd -a odroid

Jeśli chodzi o NFS, konfiguracja udostępniania zasobów dla konkretnego adresu IP wygląda następująco:

  1. /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.

  1. sudo su
  2. echo "options fbtft_device name=hktft9340 busnum=1 rotate=270" > /etc/modprobe.d/odroid-cloudshell.conf
  3. echo "spi_s3c64xx" >> /etc/modules
  4. 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.

  1. sudo wget https://raw.githubusercontent.com/mdrjr/cloudshell_lcd/master/cloudshell-lcd_20150731-2_armhf.deb
  2. sudo dpkg -i cloudshell-lcd_20150731-2_armhf.deb
  3. 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

Komentarze Komentarze
Avatar 1
Axo Mac OS X / Safari 601.1
06 February 2016 - 08:42 Jaworzno

Wszystko pięknie ładnie ale imo za dużo kombinowania.

Avatar 2
Korneliusz Android 5.0 / Safari 537.36
06 February 2016 - 09:16 Brak informacji

Na tym, zdaje się, polega DIY :)

Avatar 1
hbieganowski Windows 7 / Safari 537.36
06 February 2016 - 20:18 Warszawa

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 :)

Avatar 2
Korneliusz Linux Ubuntu / Mozilla Firefox 43.0
09 February 2016 - 07:09 Bytom

:) podeślij fotkę !

Avatar 1
Janek Linux x86_64 / Safari 537.36
06 February 2016 - 10:21 Warszawa

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.

Avatar 2
Korneliusz Android 5.0 / Safari 537.36
06 February 2016 - 14:00 Brak informacji

Co prawda nie mam słuchu drygenta :) ale jest cicho.

Avatar 1
hbieganowski Windows 7 / Safari 537.36
06 February 2016 - 20:22 Warszawa

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

Avatar 1
Janek Linux x86_64 / Safari 537.36
07 February 2016 - 10:15 Warszawa

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ę.

Avatar 2
Korneliusz Linux Ubuntu / Mozilla Firefox 43.0
09 February 2016 - 07:09 Bytom

A mój nie ma :(

Avatar 1
ox1de Windows / Safari 537.36
06 February 2016 - 11:42 Wrocław

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 :)

Avatar 2
Korneliusz Android 5.0 / Safari 537.36
06 February 2016 - 14:02 Brak informacji

A ja właśnie chyba zastosuje go jako odtwarzacz multimedialny, dla mojego XU4. Fajna obudowa, na ekranik wrzuczę jakieś komunikaty :)

Avatar 1
ox1de Windows / Safari 537.36
06 February 2016 - 14:42 Radom

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.

Avatar 1
hbieganowski Windows 7 / Safari 537.36
06 February 2016 - 20:01 Warszawa

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... :(

Avatar 2
Korneliusz Android 5.0 / Safari 537.36
06 February 2016 - 20:12 Brak informacji

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.

Avatar 1
hbieganowski Windows 7 / Safari 537.36
06 February 2016 - 20:24 Warszawa

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

Avatar 1
goliat26 Windows / Safari 537.36
28 September 2016 - 13:48 Brak informacji

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?

Avatar 2
Korneliusz Linux Ubuntu / Mozilla Firefox 49.0
30 September 2016 - 07:32 Bytom

Powinien być na wiki Hardkernel

Avatar 1
#R2D2# Windows 7 / Mozilla Firefox 43.0
06 February 2016 - 13:15 Warszawa

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.

Avatar 2
Korneliusz Android 5.0 / Safari 537.36
06 February 2016 - 13:59 Brak informacji

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.

Avatar 1
hbieganowski Windows 7 / Safari 537.36
06 February 2016 - 20:05 Warszawa

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....

Avatar 1
ox1de Windows / Safari 537.36
06 February 2016 - 14:39 Radom

Dokładnie, 2 porty sata by wystarczyły i 1GbE, przyjdzie nam jeszcze chwilę poczekać na takie cacko :)

Avatar 1
hbieganowski Windows 7 / Safari 537.36
06 February 2016 - 20:09 Warszawa

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....

Avatar 1
Axo Mac OS X / Safari 601.1
06 February 2016 - 20:34 Jaworzno

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

Avatar 1
hbieganowski Windows 7 / Safari 537.36
06 February 2016 - 21:47 Warszawa

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

Avatar 1
ibenias Linux Ubuntu / Mozilla Firefox 48.0
11 August 2016 - 12:56 Lublin

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