Orange Pi Zero Plus, NAS Hat, Open Media Vault i pierwsza styczność z drukarką 3D

Sprzęt dotarł, testy wcześniej zrobione, warto postawić system 'na poważnie'.

Od razu ostrzegam – Orange Pi (w moim przypadku) Zero Plus jest dość specyficznym sprzętem. Z jednej strony świetnym – sieć 1Gigabit (prawdziwa, nie jak w Raspberry Pi, nawet 3B+), bez wewnętrznego huba USB, bez dzielenia przepustowości z Ethernet. Wsparcie w porównaniu do Raspberry Pi jest jednak małe, przez brak zgodności producentów ze standardami wielu twórców wycofuje się ze wsparcia oprogramowania (np. DietPi). Od razu widać, że samym sprzętem rynku się nie wygra.

Mnie osobiście zależało na oszczędności prądowej oraz dobrej nakładce SATA przy zachowaniu niskiej ceny – pod tym kątem sprzęt sprawdza się bardzo dobrze, ale wyłącznie do jednego celu – OpenMediaVault. W sumie można pracować z Armbianem, ale to mnie akurat nie interesowało. Najlepszą alternatywą byłby ODROID-HC1/HC2, ale koszt jest kilka razy większy. Dla sprawdzenia, czy się przyjmie w domu jest to już dyskusyjne.

Dla jasności – nie przekonuję tutaj, że sprzęt za 80 PLN jest lepszy niż QNAP czy Synology, lepiej spełnia swoje zadania, itp., itd. Bo na pewno nie jest z wielu względów. DLA MNIE jest wystarczający do celów, które sobie założyłem, czyli:
– dostęp do muzyki, filmów i zdjęć rodzinnych w sieci domowej w możliwie najszybszy sposób
– skonfiguruj raz i zapomnij
– energooszczędny

W przypadku Orange Pi okazało się, że ważne jest jedno. KARTA SD! Powtarzam – karta SD. A jakbym zapomniał – KARTA SD! Nie pamiętam abym AŻ takie problemu miał na Raspberry Pi, ale tutaj szczególnie. Wolne działanie, problemy – minęły gdy włożyłem ciut lepszą kartę SD.

Robiąc wszystko na Raspberry z podłączonym dyskiem HDD zapomniałem jak to jest działać na karcie SD…

Do tego – trzeba szczególnie uważać jakie obrazy pobieramy, ponieważ odmian Orange Pi jest wiele.

Zgrywamy obraz na kartę za pomocą Etcher i od razu mamy postawiony i dostępny OpenMediaVault.

I, podobnie jak w przypadku OMV na Raspberry Pi, miałem problem z aktualizacją systemu i OMV. Teraz już wiem dlaczego apt-get update && omv-update skutkuje błędem jak poniżej przy pierwszym uruchomieniu.

W tle pojawia się demon aktualizujący system, ale z jakichś powodów nie chciał się zakończyć. Albo byłem mało cierpliwy.

Pomogło:

ps aux | grep apt

kill processnumber

dpkg –configure -a

Czyli 'ubicie' procesu aktualizacji (raz w sumie zadziałał mi prosty restart systemu) i naprawienie repozytorium aktualizacji.

Później już wszystko poszło poprawnie.

System zaczął stabilnie i szybko działać.

Osobiście zainstalowałem kilka dodatków do OMV:
– shellinabox – możliwość zalogowania SSH bezpośrednio przez stronę OMV
– backup – kopia OMV (samej konfiguracji) w razie awarii
– duplicati – możliwość robienia kopii na serwisy chmurowe
– usbbackup – automatyczna kopia zadanych folderów w przypadku włożenia dysku USB
– minidlna – DLNA (Digital Living Network Alliance) – aby nasze zasoby były widoczne dla Smart TV (nie mam osobiście), media boxów (mam Xiaomi), telefonów, VLC, konsol, itp.
– domoticz – nie wiem jeszcze co robi ten plugin ale nazwa taka, że musiałem zainstalować 😀
– nut – do zarządzania w przypadku braku zasilania i komunikatów z UPS do zamknięcia systemu
Konfiguracją poszczególnych wtyczek zajmę się w osobnym wpisie.
Zainstalowałem również serwer Plex, ale nie wiem jak długo z nim zostanę, bo strasznie mnie denerwują nachalne reklamy i limitacje w aplikacjach na telefony (film tylko przez jedną minutę, itp.). Aplikacja na PS4 nie ma takich problemów i w sumie zobaczymy jak się to będzie sprawdzać w akcji.
Poniżej wartości poboru prądu dla podłączonego zasilacza do NAS (5V, 2A) oraz zasilania Orange Pi Zero Plus wraz z działającym dyskiem 2.5 cala. Znikomy – około 5 Watt. A z tego co czytałem na forum OMV i tak za duży – gdy tylko skończę konfigurację zabiorę się za 'tuning'. Dla czystej zabawy i chęci nauki.
Aha, niech Was nie zmyli nazwa wtyczki – zapomniałem zmienić z TV na inną.
Teraz obudowa. Skorzystałem z gotowego projektu dostępnego na stronie https://www.thingiverse.com/thing:2765840. Bardzo prosty, a jednocześnie funkcjonalny. Jak się okazało po wydruku – do tego bardzo ładny i estetyczny! Bardzo się zdziwiłem niesamowitą dokładnością tego wydruku. Wszystko co do milimetra spasowane, w odpowiednim miejscu. Wybaczcie emocje, ale pierwszy raz miałem osobiście w rękach potrzebny mi wydruk 3D. Owszem, wcześniej z dziećmi robiliśmy jakieś małe rzeczy na warsztatach w różnych miejscach, to jednak jakby nie to samo 🙂
Bez wstydu można postawić sprzęt obok amplitunera czy innych elementów.
Dla własnej informacji bardziej, poniżej Armbian.
Użytkownik: root, hasło: 1234

Raspberry Pi nie nadaje się na NAS! Ale możemy się dużo nauczyć przy OpenMediaVault…

Taki tytuł to typowy click-bait. Czyli link w który trzeba kliknąć, żeby doczytać o co chodziło autorowi.

A czemu nie – każdy może czasem taki zastosować 😀

Ale tak serio – szukam czegoś na czym będę mógł zbudować NAS. Czyli w skrócie dysk stale dostępny w sieci domowej. Mógłbym iść do sklepu i kupić QNAP albo Synology, ale z czystej przekory nie chcę tego zrobić. Widziałem te systemy w akcji, są świetne, ale nie jestem przekonany czy ich potrzebuję w domu. Owszem, bezpieczeństwo danych i RAID1, ale czyż nie wystarczy backup danych w chmurze i dane trzymane dodatkowo na dwóch osobnych dyskach? Niby wystarczy, ale mamy 2018 rok i wypadałoby wykrzesać coś więcej z tych systemów niż tylko kopię danych.

Warto się przekonać czy faktycznie NAS jest dla nas (taki żart słowny, wybaczcie 😉 ) instalując wcześniej system podobny, nie tak rozbudowany, ale wbrew pozorom całkiem ciekawy.

Akurat w domu leżało Raspberry Pi 3, które chwilowo nie miało żadnego zastosowania. 'Czemu by nie spróbować OpenMediaVault?' pomyślałem. I godzinę później miałem go już zainstalowanego na dysku 😀

Nawiązując jednak do tematu posta – Raspberry Pi jest faktycznie najgorszym możliwym SBC (Single Board Computer) jaki można wybrać to tworzenia NAS. Forsowane od dłuższego czasu dzielenie sterownika USB z portem Ethernet jest kiepskim rozwiązaniem, ponieważ teoretycznie montowana karta Gigabit osiąga maksymalnie, w szczycie 330 Mbit. A to i tak tylko Raspberry Pi3B+, bo w 3B jest to realnie około 60mbit. Jak na NAS to zbyt mało. Brak SATA nie pomaga, konieczne jest połączenie wyłącznie po USB, który jest w standardzie 2.0.

Ale nic to – sprawdzimy chociaż jak działa OpenMediaVault i z czym się to je.

Celów jest kilka, sprawdzimy które uda się zacząć realizować:
– udostępnienie danych rodzinie (jakby co najmniej była zainteresowana, ale przyjmijmy, że jest..)
– uruchomienie maszyny do tworzenia kopii zapasowych w formacie 3-2-1 – czyli:
a) co najmniej trzy kopie danych
b) przechowywać te kopie przynajmniej na dwóch różnych nośnikach
c) jedną kopię danych przechowywać 'na zewnątrz'
– media server z muzyką, filmami rodzinnymi

Po pierwsze nauczyłem się używać Etcher. Żadne to osiągnięcie, ale wcześniej był to Win32DiskImager. OpenMediaVault domyślnie jest udostępniony w formacie, który czyta Etcher.

Ram tam tam, kilka minut i gotowe.

Domyślny użytkownik to admin, hasło openmediavault.

Po uruchomieniu naszym oczom ukazuje się bardzo ładny, schludny ekran z możliwością konfiguracji.

Jak widać, mamy w sekcji System dostęp do:
– Ustawienia główne
– Data i czas
– Sieć
– Powiadomienia
– Zarządzanie energią
– Monitorowanie
– Zaplanowane zadania
– Aktualizacje
– Dodatki – na przykład Plex, integracja z LDAP, NUT do integracji z UPS, backup na dysk USB i wiele innych

W System -> Network możemy mieć na przykład to co poniżej:

W Storage -> Disks, gdy tylko podłączyłem dysk 2.5 cala w kieszeni, od razu pojawiła się o tym informacja.

Tutaj mamy esencję naszego NAS od strony bardziej technicznej, ponieważ:
– zawiadujemy tu dyskami
– monitorujemy je (S.M.A.R.T.) – Self-Monitoring, Analysis and Reporting Technology – dzięki niej dyski potrafią same w pewien sposób (na podstawie wielu parametrów) ocenić swój stan i przed prawdopodobną awarią poinformować o tym użytkownika
– zarządzamy RAID (Redundant Array of Independent Disks) czyli macierz dyskowa, która przez odpowiedni sposób traktowania dysków i zapisu na nich może:
a) w RAID 0 – w zależności od ilości dysków, tworzy na nich wspólną przestrzeń, czyli przy dyskach 2TB + 2TB będzie mieli dostępne 4TB, ale UWAGA, w przypadku 1TB + 2TB będzie to 2xnajmniejszy dysk, czyli 2TB
b) w RAID 1 – informacje są zapisywane na zdefiniowanej ilości dysków jednocześnie, czyli na przykład w przypadku 3x2TB mamy dostępne 2TB, przy czym dwa dyski mogę ulec awarii, a my ciągle mamy dostęp do danych
c) tutaj wiele innych typów, ale wchodzimy raczej w obszary firm i mechanizmów tworzenia kopii danych i ich zabezpieczania, a chcę się skupić na tym, co ma sens w domu

RAID na Raspberry Pi nie ma najmniejszego sensu (po USB?), ale OMV można zainstalować na innym sprzęcie, z kilkoma portami SATA i wtedy skonfigurować RAID.

– File Systems, czyli formaty zapisu na naszych dyskach – FAT, FAT32, NTFS, ext4, itp.

System pozwala oczywiście na definiowanie użytkowników oraz grup i przyznawanie im odpowiednich dostępów, uprawnień.

W Storage -> File Systems mamy dostęp do wszystkich naszych dysków, partycji, itp., wraz z podanym systemem plików. Jak widać, karta SD sformatowana w ext4 (domyślny dla Linuxa), mój dysk w ntfs – najgorszy możliwy system plików do współpracy z Raspberry Pi i NAS – zdecydowanie najwolniejszy. Ale… Kompatybilny z Windows, więc na początek musiał wystarczyć.

Poniżej jedno z okien, w którym można przydzielić odpowiednie foldery do różnych protokołów dostępu do plików. Zależy co włączycie – czy będzie to Samba, FTP, NFS, DLNA – tutaj nawet nie jest potrzebna wiedza techniczna. Jeżeli zależy Wam wyłącznie na dostępie do plików – będzie to zapewne Samba, jeżeli ma do tego mieć dostęp odtwarzacz video/muzyki/telewizor – zapewne DLNA. Oczywiście nic nie stoi na przeszkodzie, aby tych protokołów było uruchomionych kilka.

Jak widać na obrazku pod spodem – zadziałało i mam dostęp do swojego folderu, gdzie mogę zapisywać i odczytywać dane.

W przypadki OpenMediaVault napotkałem na pewien problem. Może nie potrafiłem czegoś zrobić, może coś pominąłem, ale nie udało mi się zaktualizować za pierwszym razem systemu i podległych komponentów. Miałem ciągły błąd, musiałem zadziałać w inny sposób, czyli SSH. Po pierwsze, logowanie na konto root trzeba włączyć w konfiguracji OpenMediaVault. Użytkownik root, hasło podawaliście w momencie wstępnej konfiguracji.

Później już sudo apt-get update, sudo apt-get upgrade i wszystko ruszyło. Następne aktualizacje można już realizować z poziomu interface użytkownika.

OpenMediaVault ma również bogatą sekcję raportową. Przy okazji zobaczcie, jak wygląda oprogramowanie w języku polskim, co możecie wybrać w momencie logowania do systemu. Informacje o uruchomionych serwisach, obciążeniu procesora, dysku, pamięci, itp., itd.

Teraz będzie trochę bardziej 'niskopoziomowo', będziemy usuwać partycje, zakładać i formatować dysk w ext4. Chciałem zmienić domyślny (dla mnie) ntfs na coś szybszego pod Raspberry po USB.
Uruchamiamy sudo cfdisk i naszym oczom ukazują się informacje o partycjach, które aktualnie są na dysku. 
Kasujemy wybierając Delete, 

Później wybieramy New.

Później Quit

I Write, aby zatwierdzić zmiany.

Partycja gotowa, teraz trzeba ją sformatować. Można użyć albo sudo mkfs.ext4 /dev/symbol_dysku,

Albo zrobić to z poziomu OpenMediaVault:

Formatowanie:

I dysk gotowy do pracy:

Na koniec dodatek, przy którym może się wyklarować do czego tak naprawdę może nam się przydać NAS – serwer PLEX. PLEX jest serwerem/klientem multimediów, który pozwala skatalogować i udostępniać swoje zasoby. Przeważnie wyłącznie w sieci domowej, chociaż można wykupić opcje synchronizacji w mobilnymi urządzeniami (tablety, telefony), synchronizacja z chmurą, itp. Ewoluował (a jakże…) z XMB (Xbox Media Center – aktualnie KODI). Od razu piszę, że to raczej w formie zabawy, ponieważ wspomniane wcześniej ograniczenia Raspberry Pi wykluczają możliwość używania go szybko i sprawnie.

Instalujemy go z poziomu dodatków w OMV,

Włączamy, wskazujemy miejsce na repozytorium:

I od razu (no, gdy już dane zostaną skatalogowane) na stronie projektu mamy dostęp do filmów, muzyki, zdjęć. Można tym zawiadywać z poziomu klientów na tablet, telefon, ze strony internetowej – nie jest źle.

Przepraszam za potraktowanie tematu pobieżnie, ale każdy z nich można rozwijać na kilka kolejnych wpisów – co postaram się zrobić w miarę rozwoju systemu.

Podsumowując to, co udało mi się zrobić i jakie wnioski wyciągnąłem:
– OpenMediaVault to pokaźne, darmowe narzędzie, które spełnia moje wymagania
– Raspberry Pi się na NAS nie nadaje 😉
– OMV udostępni moje pliki w sieci domowej – protokół Samba, mogę mieć swój, zabezpieczony hasłem folder
– OMV udostępni pliki dla Xiaomi Mi Box czy też innych urządzeń Smart (których akurat nie mam w domu zbyt wiele…)
– OMV zrobi backup na dysk zewnętrzny, gdy go podłączę – tu pomogą pluginy
– miniDLNA czy też PLEX pozwolą zawiadywać biblioteką mediów
– możliwości raportowania oraz informowania powiadomią mnie o potencjalnych problemach

Moje kolejne przemyślenia były następujące:
– idę w tę stronę! Nie kupię Qnap ani Synology, zrobię NAS sam! Platformę już mam wybraną, na razie nie zdradzę tajemnicy, ale wszystko już przygotowane. Nadmieniam, że brałem pod uwagę na przykład HP Proliant Microserver, Dell Optiplex 960, platforma Atom.
– ze względu na to, że nie lubię marnowania energii, platforma ma być maksymalnie oszczędna i pobierać minimalne ilości prądu
– będę się opierał na OpenMediaVault albo DietPi – zobaczymy co będzie lepsze
– backup 3-2-1 będę realizował trochę inaczej
a) 3 kopie – dwie w domu, jedna w chmurze – zapewne Google Drive
b) dwa dyski – jeden na stałe w NAS, drugi podłączany co pewien czas aby synchronizować najważniejsze dane, albo podłączony do Raspberry w drugiej części domu – tu mi na zależy na czasie dostępu, a na zrobieniu kopii
c) kopia zewnętrzna na Google Drive
albo
kopia na kolejny dysk i przechowywanie go poza domem
– zainteresuję się Docker’em, aby serwisy stawiać w nowoczesny, bezpieczny sposób

Może być ciekawie 😀 Pozdrawiam!

Przechodzimy na Malinie z karty SD na dysk HDD/SSD…

Nadeszła pora…

Pora na zmianę głównego miejsca systemu Raspberry Pi. Wiele dobrego mogę powiedzieć o Raspberry Pi, ale na pewno nie to, że używanie kart pamięci (szczególnie przy wielu zapisach do loga, bazy danych, itp.) pozwala na bezstresową pracę. Ostatnio odzyskiwałem backup karty praktycznie co tydzień.

Jakoś tak się stało, że leżał mi mały dysk talerzowy 80GB ze starej PS3. Gdzieś, kiedyś w promocji kupiłem również aktywny hub USB. Niestety, napięcie na portach USB z Raspberry (nie chciałem modyfikować zmiennej max_usb_current) niby zasilało dysk, ale bardzo niestabilnie. Podłączyłem dysk do huba, hub do USB, podpiąłem zasilanie, ruszyło. Pierwszy sukces.

Na początku warto sprawdzić jak nasz dysk przestawia się w systemie, żeby przez przypadek nie sformatować czego, czego zdecydowanie nie chcemy 😉

sudo fdisk -l

Ok, jak widać mój dysk 80GB znalazł się pod /dev/sdb/. Pod /sda/ jest pendrive na którego zapisywane są backupy i leży część danych, na przykład z bajkami dla dzieci. Tak w sumie to warto będzie to niedługo przenieść na dysk, a backupy wypchnąć albo na FTP, albo w chmurę. Może kiedyś…

Skoro wiemy jaki dysk mamy sformatować, bierzemy się do pracy.

sudo fdisk /dev/sdb

I teraz po kolei komendy (po każdej literze Enter):

d – wyczyść dysk

n – new

 p – utwórz domyślną partycję

 1 – podaj numer partycji

w – zapisz zmiany

Po kolei (dinozaury może jeszcze pamiętają to wszystko ze starych komputerów, kiedy jeszcze nie było Windows i dyski trzeba było formatować z linii poleceń 😀 ):
1. Wymazaliśmy partycje z dysku, jeżeli jakieś były
2. Utworzyliśmy partycję domyślną
3. Podaliśmy dane domyślne – dla uproszczenia, oczywiście partycji można zrobić więcej, zmienić ich rozmiar…
4. Zapisaliśmy zmiany

Pora sformatować dysk.

sudo mkfs.ext4 /dev/sdb

Póżniej musimy dysk sparować z Raspberry Pi:

sudo mount /dev/sdb /mnt

I teraz sedno, synchronizacja naszej karty SD z dyskiem. rsync zachowuje wszystkie uprawnienia, restrykcje, itp.

sudo rsync -axv / /mnt

Kilka minut i mamy kopię karty na dysku.

Wypadałoby również powiadomić Raspberry Pi, że karta SD jest potrzebna tylko i wyłącznie do 'bootowania', cały system jest już na dysku twardym.

To ważna różnica! Raspberry Pi 3 ma opcję jednorazowego przeprogramowania bitu OTP, aby bootowanie odbywało się bez użycia karty SD, ale osobiście się na to jeszcze nie zdecydowałem – po kilku tygodniach testów możliwe, że tak zrobię. Obciążenie karty SD jest jednak teraz minimalne i znacznie zwiększa bezawaryjność systemu.

Najpierw kopia

sudo cp /boot/cmdline.txt /boot/cmdline.txt.bak

I zmieniamy plik cmdline.txt

sudo nano /boot/cmdline.txt

Zmieniamy wartość przy root i dodajemy na końcu rootdelay

root=/dev/sdb i na końcu rootdelay=5

Efekt:

dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/sdb rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait rootdelay=5

Brawo! Teraz pora wyedytować fstab, aby nasz dysk zawsze się mapował i system wiedział, że 'rootfs' jest na HDD. Czyli używamy karty tylko na moment startu Raspberry Pi, później już wszystko odbywa się na HDD.

sudo nano /mnt/etc/fstab

Zamieniamy wpis przy karcie SD na nasz HDD, stary komentujemy:

/dev/sdb       /               ext4    defaults,noatime  0       1

U mnie wygląda to tak:
proc            /proc           proc    defaults          0       0
/dev/sdb       /               ext4    defaults,noatime  0       1
PARTUUID=376f54aa-01  /boot           vfat    defaults          0       2
#PARTUUID=376f54aa-02  /               ext4    defaults,noatime  0       1
Cudnie! Teraz 
sudo reboot
Chwila stresu i powinniśmy wystartować z dysku. Jak to informatycy piszą: 'U mnie działa'.
Mam nadzieję, że teraz żadnych rozjazdów w systemie nie będę już miał.
W przyszłości przejdę na dysk SSD, gdy uda mi się kupić coś fajnego, małego w dobrej cenie.