
Witajcie moi drodzy
Przedstawię tutaj szczegółowy opis wykonania bezgłośnego, energooszczędnego serwera plików opartego na Banana PI M1+ i dysku SSD podłączonego poprzez SATA. Pokazany tutaj serwer w finalnej wersji (480GB+60GB na SD) zrobiłem kosztem około 500 zł (200 zł Banana Pi + 270 zł SSD + drobnica) a moc pobierana przez z niego z sieci nie przekracza 3W.
Wstęp
W temacie opiszę szczegółowo:
- pierwsze uruchomienie Banana Pi (wgranie systemu Armbian na kartę SD, określenie jego IP, podłączenie przez UART/TTL)
- podłączenie dysku HDD/SSD do Banana Pi poprzez SATA
- instalacje OpenMediaVault na Banana Pi
- tworzenie Share na OpenMediaVault (podłączenie poprzez SMB)
- instalacje pluginu ShareRootFS na OpenMediaVault (by móc udostępnić folder z karty SD)
- instalacje Dockera/Portainera na OpenMediaVault
- instalacje qBitTorrent na OpenMediaVault (poprzez Stacks z Portainer)
- instalacje Cloud Commander WWW na OpenMediaVault (narzędzie do zarządzania plikami, kopiowania ich, przesyłania przez panel WWW; poprzez Stacks z Portainer)
- instalacje RDekstop (pulpit zdalny; poprzez Stacks z Portainer)
- zużycie energii przez mój serwer (na bazie danych zebranych przez dwa tygodnie pracy serwera)
Temat pewnie będzie jeszcze redagowany, bo z Banana Pi dopiero się zapoznaję.
Zapraszam do lektury.
Założenia projektowe
Celem projektu było zrobienie bezgłośnego, energooszczędnego serwera na dodatkowe kopie zapasowe plików, który będzie mógł chodzić 24 godziny na dobę w sypialni.
Sama prędkość transferu (na dysk i przez sieć) nie była tu priorytetem, nie ma dla mnie znaczenia to czy plik będzie się kopiować nieco dłużej czy krócej.
Co zostało użyte do projektu?
Do przedstawionego tutaj projektu (w jego ostatecznej wersji) użyłem:
- jednopłytkowy komputer Banana Pi BPI-M1+ (choć ostatecznie WiFi i tak nie użyłem)
- zasilacz 5V o wydajności prądowej co najmniej 1A
- karta microSD 64GB (na system operacyjny dla Banana Pi)
- dysk SSD GOODRAM CL100 G2 480GB SATA3 2,5 (na dane dla Banana Pi; SSD bo chciałem bezgłośny)
- przewód SATA by podłączyć dysk do Banana Pi
- samodzielnie zrobiony przewód zasilający dla dysku SATA (by podpiąć 5V)
- przewód microUSB by podłączyć Banana PI do zasilaczami
Dodatkowo w trakcie testów użyłem starego dysku HDD 2.5" gdyż obawiałem się, że jak coś podłączę źle, to mogę uszkodzić o wiele droższe SSD.
Zakup Banana Pi M1+
Do projektu użyłem jednopłytkowego komputera Banana Pi BPI-M1+ produkcji SINOVOIP. Kupiłem go w jednym ze sklepów internetowych w naszym kraju za jakieś 200 zł + przesyłka. Jego parametry sklep przedstawiał następująco:

Banana Pi przyszedł w małym pudełku:

Na opakowaniu zaznaczony jest konkretny model produktu: BPM M1+

Jednopłytkowy komputer zabezpieczony był dodatkowo folią antystatyczną:

Po wyjęciu z folii prezentował się tak:


Co znajduje się na pokładzie BPI-M1+? Posłużę się tu obrazkiem z http://wiki.banana-pi.org/ :

Więcej informacje http://wiki.banana-pi.org/Banana_Pi_BPI-M1%2B
Załączam tu też dokumentację i pliki powiązane z BPI (w paczkach są pliki dotyczących różnych Banana Pi, nie tylko użytego tu M1+):
Zakup dysku SSD
Dysk SSD pod ten projekt kupiłem dopiero po przetestowaniu wszystkiego z Banana Pi na starym HDD - przed zakupem chciałem mieć pewność, że całość zadziała.
Zdecydowałem się na dysk GOODRAM Dysk SSD CL100 G2 480GB SATA3 2,5, za który zapłaciłem 270 zł + koszty przesyłki. Przyznam, że nie zależało mi jednak na tym, by ten dysk był wyjątkowo szybki, pewnie i tak w pełni tego nie wykorzystam, przede wszystkim zdecydowałem się na SSD dlatego, że jest bezgłośny.

Wybrałem ten dysk też dlatego, że oferuje 36 miesięcy gwarancji od producenta.

Lutowanie przewodu zasilania dysku 2.5" z Banana Pi
Banana Pi BPI-M1+ ma na pokładzie jedno złącze SATA. Podłączenie dysku 2.5" do Banana Pi wymaga zasadniczo dwóch przewodów:
- przewodu sygnałowego SATA - standardowego
- przewodu zasilania (5V) SATA - niestety dość nietypowego, z reguły pasującego do dwupinowego złącza 5V na pokładzie Banana Pi.
W kilku sklepach internetowych można oba te przewody dostać w formie połączonej, polecam wyszukiwać pod hasłem "banana pi sata kabel", wyglądają one tak:

Ale ja nie chciałem czekać z projektem na przesyłkę, więc na początek samodzielnie zlutowałem odpowiedni przewód z tego co miałem już w szufladzie.
Użyłem dwupinowego przewodu z wtyczką:

I przewodów od starego zasilacza komputerowego:

Przed lutowaniem sprawdziłem dwa razy polaryzację złącza z Banana Pi - odwrotne jego podłączenie z pewnością uszkodziłoby dysk.

Gotowa przejściówka:

Przejściówkę przetestowałem ze starym dyskiem 2.5", jeszcze bez karty SD w Banana Pi:

Przy okazji zmierzyłem, że nawet bez karty SD samo Banana Pi z dyskiem HDD 2.5" pobiera 0.4-0.5A.
Do podłączenia dysku też użyłem przewodu danych SATA:

Pełne podłączenie dysku:

Hardware gotowy, teraz trzeba przygotować kartę SD z systemem operacyjnym dla Banana Pi.
Przygotowanie karty SD z systemem operacyjnym Armbian
Kartę SD z systemem operacyjnym dla Banana Pi przygotowałem na komputerze z Windows 10 za pomocą programu Balena Etcher, a dokładniej jego wersji portable 1.5.91, stąd:
https://github.com/balena-io/etcher/releases
Z różnych systemów operacyjnych dostępnych dla Banana Pi zdecydowałem się na Armbian, czyli po prostu Debian dla procesorów Arm. Podyktowane było to m. in. tym, że planowałem użyć OpenMediaVault a OMV właśnie go wspiera.
Wybrałem najbardziej aktualną wersję, czyli Armbian_20.02.5_Bananapi_buster_current_5.4.26.7z. System ściągnąłem poprzez sieć Torrent, poniżej załączam torrent wybranej wersji:
Po ściągnięciu przygotowałem sobie kartę SD 64GB:


Kartę SD podłączyłem do komputera z systemem Windows przez taką przejściówkę na USB:

i za pomocą Etchera wgrałem na nią system (plik Armbian_20.02.5_Bananapi_bionic_current_5.4.26.img):




Po wgraniu systemu można kartę SD włożyć do Banana Pi i już uruchomić mikrokomputer odpowiednim przyciskiem.
Pierwsza komunikacja z Banana Pi
Pierwszą komunikację z Banana Pi można naprawdę zrealizować na różne sposoby, np:
- można podłączyć monitor na HDMI i klawiaturę na USB:


(widok na waszym monitorze po pierwszym uruchomieniu może trochę się różnić od tego ze zdjęcia ode mnie, bo ja te zdjęcie robiłem już po zainstalowaniu OpenMediaVault do Armbiana)
- można podłączyć przewodowo sieć z routerem z DHCP i odnaleźć jakie IP ma Banana Pi i dostać się do niego przez SSH (program Putty). Samo IP Banana Pi możemy odnaleźć poprzez skaner IP, np. Angry IP Scanner (i tam rozpoznamy Banana PI po nazwie hosta, a jeśli jej brakuje, to możemy ręcznie sprawdzić w przeglądarce każdy z aktywnych adresów IP, zwłaszcza jak nie jest ich dużo):

- można użyć znajdującego się na pokładzie portu szeregowego i przejściówki UART-USB
Ja wybrałem ten ostatni sposób.
Banana PI posiada wyprowadzone piny RX/TX o domyślnym baud 9600:

Piny są podpisane. Podłączyć się do nich można dowolną przejściówką USB-UART, ja użyłem taniego USB TO TTL HW-597:


Trzeba podłączyć zarówno RX jak i TX - i oczywiście masę. Rx z przejściówki podłączamy do Tx z Banana Pi, a Tx z przejściówki do Rx z Banana Pi.
Komunikacja z Banana Pi odbywać się będzie poprzez wirtualny port COM.
W trakcie podłączania polecam mieć Banana Pi wyłączone - włączyć je najlepiej jest już po podłączeniu.
Potrzebny będzie jeszcze jakiś program do komunikacji przez wirtualny port COM.
Tak na przykład wygląda komunikacja z Banana PI poprzez RealTerm:

Choć nie polecam z tego programu korzystać do tego celu, o wiele wygodniej jest użyć Putty. Wystarczy wybrać w nim tryb 'Serial' i wpisać nazwę naszego wirtualnego portu COM (można ją łatwo znaleźć, choćby w Menedżerze urządzeń):

Po podłączeniu:

Po pełnym uruchomieniu systemu można się tak przez UART zalogować:

Domyślne dane logowania dla systemu Armbian są nastepujące:
Quote:
Login: root
Hasło: 1234
Po pierwszym zalogowaniu się system wymusi na nas zmianę hasła. Wymagania co do nowego hasła są raczej standardowe. Nie może to być tylko kilka znaków, musi być co najmniej jedna duża litera, co najmniej jedna mała litera i co najmniej jedna cyfra.

Po wpisaniu hasła system prosi nas o podanie jeszcze wymyślonej przez nas nazwy użytkownika i kilku dodatkowych informacji (które są opcjonalne i nie są wysyłane nigdzie do sieci):


Już po utworzeniu naszego konta użytkownika polecam podłączyć kabel Ethernetowy i sprawdzić, czy Banana Pi na pewno poprawnie widzi sieć. Najwygodniej jest to zrobić za pomocą komendy ping i jakiegoś na pewno dostępnego adresu IP, np. 8.8.8.8 od Googla. Zrzut ekranu pokazuje oczekiwany rezultat 'ping 8.8.8.8':

U mnie zadziałało to z miejsca - DHCP z routera przypisał odpowiedni IP i Banana Pi od razu widziało sieć.
Warto też sprawdzić, czy DNS działa poprawnie. Do tego można użyć komendy nslookup, która bierze za argument nazwę domenową hosta (np. elektroda.pl) i zamienia ją na adres ip. Rezultaty poniżej:

Jak widać przewodowe połączenie internetowe działa bez uprzedniej konfiguracji.
Aktualizacja apt na Armbianie
Tuż potem polecam wykonać klasyczną operacje update/upgrade, tylko by upewnić się, że wszystko mamy aktualne. W tym celu w terminalu wpisujemy komendy:
apt-get update
apt-get upgrade
reboot
Sama aktualizacja może dość długo potrwać, ale myślę, że warto.

Po aktualizacji warto uruchomić ponownie system (komenda reboot).
Instalacja OpenMediaVault
Teraz można zainstalować nakładkę OpenMediaVault na naszym Armbianie. Można to zrobić ręcznie, ale najwygodniej skorzystać jest z gotowego skryptu dostępnego na Githubie, w repozytorium OpenMediaVault-Plugin-Developers, tutaj:
https://github.com/OpenMediaVault-Plugin-Deve...master/Adden-A-Installing_OMV5_on_Armbian.pdf
Kopię tego dokumentu załączam poniżej:
Całe uruchomienie skryptu instalacyjnego OMV ogranicza się do wpisania:
wget -O - https://github.com/OpenMediaVault-Plugin-Developers/installScript/raw/master/install | sudo bash
w konsoli systemu i odczekania niecałej godziny aż wszystko się wykona. Zero zbędnych konfiguracji.
Więcej szczegółów oraz dokładny opis użycia tego skryptu możecie znaleźć tutaj:
https://github.com/OpenMediaVault-Plugin-Deve...master/Adden-A-Installing_OMV5_on_Armbian.pdf
Poniżej przedstawiam zrzuty ekranu z wykonania tego skryptu.




Pierwsze uruchomienie OpenMediaVault
Od tego momentu Web Panel OpenMediaVault jest dostępny przez przeglądarkę na porcie 80, możemy dostać się do niego wpisując adres serwera na pasku adresu:

Domyślne dane logowania do OpenMediaVault to:
Quote:
admin
openmediavault

Po zalogowaniu się mamy widoczne informacje o uruchomionych usługach (np. NFS, FTP, RSync, SMB/CIFS, SSH), oraz o samym systemie (nazwę hosta, wersję systemu, procesor, jądro, czas systemowy oraz czas jak długo serwer już chodzi):

Podłączenie dysku HDD na Sata
Dysk podłączyłem tak jak wcześniej opisałem:

Banana Pi po uruchomieniu sam już wykrywa ten dysk w panelu OpenMediaVault, a dokładniej w Storage->Disks. Nie trzeba wpisywać żadnych komend:

(Na powyższym zrzucie ekranu widać dwa dyski - /dev/sda to omawiany tutaj dysk HDD 2.5" podłączony poprzez SATA, a /dev/mmcblk0 jest to karta SD na której jest też sam system dla Banana Pi).
Dysk HDD przed użyciem trzeba jeszcze zamontować (operacja mount):

Jeśli dysk nie jest sformatowany, to wcześniej trzeba go też sformatować (utworzyć partycje).
Po zamontowaniu zmienia się jego stan, ale panel OpenMediaVault wyświetla informacje o tym, że musimy potwierdzić zmiany:

Dopiero potwierdzenie zmian zapisuje nową konfigurację, co może potrwać kilka chwil:

Od tego momentu dysk jest zamontowany. Można tworzyć na nim foldery udostępnione, itp. Możemy jeszcze zweryfikować czy wszystko przebiegło ok za pomocą konsoli - użyć komendy fdisk -l:

Uruchomienie SMB
Uruchomienie SMB (Samby) na OpenMediaVault jest bardzo proste - całość sprowadza się do włączenia 'Enable' z zakładki Services -> SMB/CIFS:

Przed włączeniem warto sprawdzić czy ustawienia domyślne nam odpowiadają, np. nazwa grupy roboczej (Workgroup; klient powinien mieć taką samą by móc się podłączyć do SMB).
Uruchamianie Samby może troszkę potrwać:

Dodawanie współdzielonego folderu
Wspóldzielony folder (Share) to taki folder, który możemy udostępnić w sieci. Tworzy się go w zakładce Access Rights Managment -> Shared Folders:

Przy tworzeniu Share wybieramy na jakim nośniku chcemy by on się znajdował (która partycja), określamy jego nazwę, ścieżkę oraz uprawnienia użytkowników (u mnie to jest serwer domowy, więc nadałem wszystkim read/write).

Dodawanie Share też wymaga zapisu zmian i też troszkę trwa:

Jeśli korzystamy z Samby, to Share trzeba dodać drugi raz już w samych ustawieniach Smb, czyli w Services -> SMB/CIFS -> Shares. Tak, tam tez jest zakładka Shares i tam też trzeba dopiero co utworzony Share dodać.

Okno 'Add Share' od Samby pokazane poniżej pozwala nam wybrać istniejący Share i udostępnić go poprzez SMB.

Dopiero po takim dodaniu go będziemy w stanie się do niego podłączyć przez SMB.
Łączenie się do współdzielonego folderu z poziomu Windowsa - przez Sieć
Odpowiednio skonfigurowany OpenMediaVault z SMB będzie widoczny w zakładce "Sieć" z poziomu systemu Windows. Jeśli nie jest widoczny, to polecam sprawdzić ustawienia zapory oraz grupy roboczej (nazwa workgroup na obu maszynach powinna być taka sama).

Pierwsze otwarcie miejsca sieciowego może wymagać zalogowania się.

Po otworzeniu miejsca sieciowego będziemy mieli widok na wszystkie udostępnione przez nas foldery:

Można wtedy na nich normalnie operować z poziomu Windowsa (przerzucać pliki, otwierać, edytować, tworzyć podfoldery itp):

Łączenie się do współdzielonego folderu z poziomu Windowsa - dodawanie lokalizacji sieciowej
Drugim sposobem na podłączenie się bezpośrednio z Windowsa do SMB z OpenMediaVault jest ręczne dodanie lokalizacji sieciowej poprzez wpisanie jej adresu IP i nazwy Share.

Nazwę podajemy w formacie \\ADRES_IP\NAZWA_SHARE, na przykład \\192.168.0.105\HDD300GB
Warto pamiętać, że jeśli zmieni się adres IP naszego serwera to stracimy w ten sposób podpięty folder, więc przed jego podpięciem powinniśmy ustawić serwerowi stały adres IP. Domyślnie Banana Pi ma DHCP, więc zmienne IP.

Możliwe, że przy dodawaniu będziemy musieli się zalogować:

Po pomyślnym dodaniu Share otrzymamy odpowiedni komunikat:

a folder Share będzie widoczny na Windowsie:

Warto też wiedzieć, że to jakie są bieżące połączenia z SMB można sprawdzić w samym panelu OpenMediaVault:

Łączenie się do współdzielonego folderu z poziomu Androida
Następnie sprawdziłem, czy mogę łatwo uzyskać dostęp do serwera z poziomu telefonu z systemem Android. Chciałem móc wygodnie odczytywać na nim udostępnione tam pdfy.
Na Google Play wybrałem jednego z darmowych klientów samby, AndSMB od Lysesoft:

Użycie go jest dość proste - podajemy raz dane dostępu do serwera (bez wskazywania konkretnego folderu udostępnionego):

i potem możemy otworzyć ten folder i przeglądać jego zawartość, wraz z folderami udostępnionymi:


Przygotowane przeze mnie wcześniej pdfy też tam są:

Po tapnięciu na taki plik pojawia nam się okno wyboru aplikacja za której pomocą chcemy go otworzyć.

Plugin sharerootfs
Dociekliwy użytkownik OpenMediaVault zauważy, że w podstawowej wersji OMV'ki nie można utworzyć współdzielonego folderu na partycji na której zainstalowany jest system.
Jest to znana limitacja OpenMediaVault i na szczęście jest możliwa do obejścia.
Z pomocą przychodzi plugin 'sharerootfs', który jak sama nazwa wskazuje pozwala nam utworzyć share na root filesystem.
Instalujemy go z poziomu Web Panelu z zakładki System->Plugins:

U mnie dostępna do instalacji była jego wersja openmediavault-sharerootfs (5.0.2-1). Instalacja może troszkę potrwać.


Po zainstalowaniu pluginu polecam dla pewności zrestartować serwer.
Od tego momentu w zakładce Access Rights Managment -> Shared Folders, w dialogu 'Add shared folder' będziemy mogli wybrać system plików na którym znajduje się system.

Na powyższym zrzucie ekranu widać, że po zainstalowaniu pluginu sharerootfs u mnie pojawiła się możliwość utworzenia folderu współdzielonego na /dev/mmcblk0p1 z 54GB miejsca wolnego, czyli na karcie SD.

Pozostałe kroki udostępniania Share są takie same jak opisałem wcześniej.


W ten sposób (wykonując też wcześniej opisane kroki tworzenia Share SMB) możemy upublicznić folder znajdujący się na samej karcie SD nawet dla systemu Windows.
Rezultat:

Bardzo przydatne - jeśli mamy kartę SD 64GB, to bez tego dobre kilkadziesiąt GB by się marnowało. Oczywiście można też obejść to inaczej - zrobić na karcie SD dwie partycje, ale tego nie próbowałem.
Instalacja klienta Torrent - Instalacja Dockera/Portainer
Następnie zdecydowałem się dodać do swojego serwera obsługę torrentów, a dokładniej qBitTorrent.
Torrenty są świetnym sposobem na dzielenie się plikami. Dużo darmowych programów (w tym systemów operacyjnych, ale nie tylko - np. Gimp) publikowanych jest właśnie na torrentach.
Torrent w dużym uproszczeniu działa tak, że każdy kto pobiera plik też go udostępnia, jak również może dalej go udostępniać już po pobraniu. W BitTorrent pliki pobiera się od takich samych użytkowników jak my sami i to też od nas zależy, ile innych osób będzie w stanie pobrać wybrany plik.
Dlatego właśnie poprzez udostępnianie poprzez Torrent np. plików ISO różnych dystrybucji Linuxa można pomagać społeczeństwu open source - bo wtedy każdy może od m. in. nas pobrać taką dystrybucje.
Na OpenMediaVault najwygodniej jest zainstalować klient qBitTorrent - najpierw potrzebny będzie nam Docker. Docker to mechanizm który tworzy uproszczone hermetyczne środowisko (tzw. 'container') gdzie możemy wygodnie uruchomić wybrany proces. Można poczytać o nim więcej tutaj: https://www.docker.com/
Na początek musimy przejść do OMV-Extras i włączyć tam testowe/extras Repozytoria:

Następnie w zakładce Docker (dalej w OMV-Extras) możemy uruchomić instalowanie Dockera:

Proces ten troszkę potrwa. Należy czekać cierpliwie do końca. Postęp wyświetlany jest w oknie.

Jeśli w trakcie instalacji Dockera otrzymamy taki błąd jak na zrzucie ekranu poniżej ("Failed to update apt repos."), to musimy wykonać apt clean (kliknąć przycisk apt clean, też dostępny w OMV-Extras).

Przycisk apt clean jest tutaj (trzeba rozwinąć tę listę z Update by go znaleźć):

Sam proces apt-clean też troszkę trwa - jego postęp wyświetla się w oknie.

Po wykonaniu apt-clean możemy ponowić instalację Dockera (tak jak opisałem wcześniej) i teraz powinien Docker się pomyślnie zainstalować:

Czekamy na komunikat "Successfully installed docker.", po czym możemy zamknąć okno instalacyjne przyciskiem 'Close'.

Po instalacji status Dockerae w zakładce Docker z OMV Extras powinien być "Installed and running".

Mamy już Docker, teraz zainstalujemy Portainer.
Portainer to dodatkowe narzędzie które ułatwia nam zarządzanie Dockerem. Więcej można poczytać tutaj: https://www.portainer.io/
Jego instalacja wygląda analogicznie - w OMV Extras, w Docker, jest przycisk Portainer:

Z rozwijanej listy trzeba wybrać "Install" i poczekać aż się zainstaluje:

Po pomyślnej instalacji Portainera jego status powinien być pokazany jako Up:

Instalacja klienta Torrent - Instalacja qBitTorrent poprzez Stacks w Portainer
Mamy już zainstalowane Docker, mamy zainstalowane Portainer.
Teraz użyjemy narzędzia Portainer do zainstalowania klienta qBitTorrent.
Do Portainera można się dostać poprzez przycisk 'Open Web' z OMV Extras/Docker:

Przycisk ten otwiera zupełnie niezależny, osobny Web Panel Portainera, u mnie dostępny ma porcie 9000 (ip oczywiście te same co serwera).
Przy pierwszym uruchomieniu musimy utworzyć konto:

Potem jednorazowo musimy połączyć klient Portainer z naszym serwerem:

Od tego momentu mamy dostępnego funkcjonalnego Portainera.
Tutaj możemy instalować różne dodatki do OpenMediaVault.

Nas tutaj interesuje lista Stacks - tam będą dodane moduły.

Tzw. 'Stacks' dodaje się poprzez przycisk 'Add stack' w widoku 'Stacks list':

Teraz zainstalujemy qBitTorrent. Do instalacji użyjemy następującego skryptu stacks:
---
version: "2"
services:
qbittorrent:
image: linuxserver/qbittorrent
container_name: qbittorrent
environment:
- PUID=TWOJE_PUID
- PGID=TWOJE_PGID
- TZ=Poland/Warsaw
- UMASK_SET=022
- WEBUI_PORT=8080
volumes:
- /srv/dev-disk-by-label-TwojShare/TwojShare/Btrt/Config:/config
- /srv/dev-disk-by-label-TwojShare/TwojShare/TwojShare/Data:/downloads
ports:
- 6881:6881
- 6881:6881/udp
- 8080:8080
restart: unless-stopped
Niestety musimy go uzupełnić.
Trzeba w nim poprawić:
- PUID
- PGID
- ścieżkę TwojShare (pełną ścieżkę)
Na początek uzupełnimy PUID/PGID. Można je łatwo poznać po zalogowaniu się na terminal za pomocą komendy "id <nazwa_użytkownika":

Teraz musimy poznać pełna ścieżkę (Absolute Path) do Share naszego dysku SSD. Najwygodniej jest znaleźć ją w panelu Web OpenMediaVault, w zakładce Storage -> Shared Folders.
Domyślnie 'Absolute Path' nie jest pokazywane, trzeba je włączyć w ustawieniach widoku kolumn (ustawienia kolumn są jak się rozwinie ten znaczek po prawej, widać to na zrzucie ekranu):

Po ich włączeniu mamy dodatkową kolumnę - Absolute Path, i jej zawartość kopiujemy:

U mnie ta ścieżka wygląda tak: /srv/dev-disk-by-label-Bsv/Bsv
Mamy już wszystko co potrzebne. Teraz można włączyć dodawanie Stack (Stacks->Add stack) z Portainer:

i wkleić tam odpowiednio uzupełniony skrypt (poprawiłem w nim PUID, PGID, i ścieżki):

Ostateczna wersja skryptu którego ja użyłem:
---
version: "2"
services:
qbittorrent:
image: linuxserver/qbittorrent
container_name: qbittorrent
environment:
- PUID=1000
- PGID=100
- TZ=Poland/Warsaw
- UMASK_SET=022
- WEBUI_PORT=8080
volumes:
- /srv/dev-disk-by-label-Bsv/Bsv/Btrt/Config:/config
- /srv/dev-disk-by-label-Bsv/Bsv/Btrt/Data:/downloads
ports:
- 6881:6881
- 6881:6881/udp
- 8080:8080
restart: unless-stopped
Ustawień portów w nim nie zmieniałem, strefę czasową ustawiłem na Poland/Warsaw, ale myślę, że taka wam odpowiada.
Po wklejeniu skryptu naciskamy przycisk 'Deploy the stack':

Następnie musimy poczekać aż stack się wykona; przez ten czas przycisk będzie mieć napis 'Deployment in progress' i nie będzie dało sie go nacisnąć.

Po wykonaniu Deployment na naszej liście Stacks list w Portainer powinien być widoczny qbittorrent.

Możemy wejść w jego ustawienia i sprawdzić jego stan - powinien być 'running'. Widzimy tu również kiedy został utworzony oraz jakie porty zajmuje (kolumna Published Ports).

W teorii po kliknięciu na 'Published Ports' powinno nas przekierować do danego panelu WWW usługi na wybranym porcie w przeglądarce, ale jak to nie działa, to możecie po prostu wpisać w pasku adresu IP serwera a potem wybrany port (np: 192.168.0.128:8080).
Instalacja klienta Torrent - logowanie do qBitTorrent i pierwszy test pobierania ISO Ubuntu
Po pomyślnej instalacji qBitTorrent dostępny jest przez przeglądarkę WWW na porcie 8080. Aby otworzyć jego panel, musimy wpisać w pasek adresu :8080 poprzedzone adresem IP naszego serwera, na przykład 192.168.0.128:8080.

Usługa qBitTorrent wymaga zalogowania się - domyślny login to 'admin' a hasło to 'adminadmin'.
Po zalogowaniu otrzymujemy dostęp do całego panelu:

Na powyższym zrzucie ekranu widzimy kolumny:
- Name - nazwa torrentu
- Done - pasek postępu / % ile się pobrało
- Size - rozmiar torrentu
- Status - stan torrentu (pobieranie, wysyłanie, itp)
- Seeds - ilość tzw. seedów torrentu, czyli użytkowników którzy już go ściągnęli i teraz go udostępniają innym (mogą wysyłać nam gdy pobieramy)
- Peers - ilość tzw. peerów torrentu, czyli użytkowników którzy teraz pobierają też ten torrent (my możemy im go też wysyłać; oraz peery mogą między sobą też wysyłać fragmenty torrentu które już pobrali)
- Down Speed - prędkość pobierania torrentu
- Up Speed - prędkość wysyłania torrentu (jak my wysyłamy innym)
- ETA - szacowany czas do zakończenia pobierania
Nowe zadania torrent do pobrania dodajemy poprzez dwie wskazane na zrzucie ekranu ikonki:

Zasadniczo są dwa sposoby na jaki można dodać nowy torrent do pobrania:
- poprzez plik .torrent - musimy mieć mały plik o rozszerzeniu .torrent i go wysłać do panelu poprzez formularz
- poprzez tzw. 'magnet link' - musimy mieć 'link' do torrentu, taki link zaczyna się od 'magnet:' i można go wygodnie kopiować i wysyłać przez tekstowe komunikatory, nawet przez IRC
Przedstawię tutaj dodawanie zadania poprzez plik torrent. Zrobię to na przykładzie Ubuntu - pliki .torrent z jego ISO można pobrać stąd:
https://ubuntu.com/download/alternative-downloads


Po chwili qBitTorrent powinien zacząć pobieranie. Oczywiście to kiedy pobieranie się rozpocznie i jak szybko będzie przebiegać zależy od wielu czynników, np. od tego ile osób w danej chwili u siebie udostępnia dany plik. To jest sieć P2P, czyli pobieramy od użytkowników takich jak my (i sami też innym wysyłamy).

WWW Cloud Commander - Instalacja menedżera plików poprzez Dockera
OpenMediaVault nie ma wbudowanej przeglądarki plików z której moglibyśmy korzystać przez przeglądarkę WWW - musimy ją osobno zainstalować. Dostępne są różne przeglądarki plików, ale ja zdecydowałem się na Cloud Commander.
Strona domowa Cloud Commandera:
https://cloudcmd.io/
Cloud Commander najprościej jest zainstalować tak jak wcześniej instalowałem qBitTorrent, czyli poprzez Stacks z Portainer. Musimy mieć wcześniej zainstalowanego Portainera.
Otwieramy Portainer->Stacks:

Tam klikamy 'Add stack'. W nowym formularzu podajemy nazwę naszego stack, np. "cloudcommander":

Następnie musimy przygotować skrypt Compose. Oto przykład, który utworzy usługę Cloud Commandera na porcie 7000:
version: '2'
services:
web:
ports:
- 7000:8000
volumes:
- ~:/root
- /:/mnt/fs
- /srv/dev-disk-by-label-Bsv:/srv/dev-disk-by-label-Bsv
image: team0/rpi-cloudcmd # arm-based docker images for cloudcmd
# image: coderaiser/cloudcmd
W nim powinniście co najmniej zmienić dev-disk-by-label-Bsv na wasz label dysku.
Warto tez zwrócić uwagę, że image coderaiser/cloudcmd jest zakomentowany, bo on nie udostępnia builda dla architektury Banana Pi/Raspberry Pi, więc korzystamy z image team0/rpi-cloudcmd.
Wypełniony formularz:

Potem klikamy 'Deploy' i oczekujemy na instalację. U mnie troszkę to czasu zajęło, zdecydowanie dłużej niż myślałem:

Po pomyślnej instalacji nastąpi automatyczne przekierowanie do listy Stacks, na której powinien pojawić się nasz cloudcommander:

Można na niego kliknąć i sprawdzić jego stan - powinien być running.

Wygląda na to, że wszystko jest ok - od teraz cloudcommander web powinien być dostępny na porcie 7000 na adresie naszego Banana Pi. Sprawdzę to w następnym akapicie.
WWW Cloud Commander - Przykład działania
Po zainstalowaniu Cloud Commander jest dostępny przez przeglądarkę na wybranym przez nas porcie. U mnie dało się do niego dostać poprzez adres 192.168.0.128:7000:

Cloud Commander nie wymaga żadnego logowania w domyślnej konfiguracji. Należy o tym pamiętać, jeśli chcemy by nas serwer był dostępny z Internetu.
W Cloud Commander możemy łatwo zajrzeć do tego co jest na podłączonym do Banana Pi dysku, u mnie jest to pod ścieżką /srv/dev-disk-by-label-Bsv/Bsv:

Te same pliki oczywiście mam na Windowsie dostępne przez Sambę:

W Cloud Commander można też dostać się do Share utworzonego na karcie SD (za pomocą pluginu sharerootfs). U mnie znajduje się to pod ścieżką /mnt/fs/SDShare/:

Widoczne są tam oczywiście te same pliki co widzi je Windows:

Cloud Commander pozwala wykonywać różne operacje na plikach, przenosić je, tworzyć foldery, nowe pliki, itp. Menu po kliknięciu prawym przyciskiem myszy na plik wygląda tak:

Menu po kliknięciu prawym przyciskiem w bieżącym folderze:

WWW Cloud Commander - Konsola komend przez WWW
Cloud Commander oferuje też bardzo wygodny terminal który jest dostępny przez WWW. Jest on w pełni funkcjonalny.
Otwiera się go tutaj:

Po uruchomieniu prezentuje się tak:

Można w nim normalnie operować komendami:

Jest to dość przydatne - dzięki temu mogę sobie dać Cloud Commander do zakładek w przeglądarce WWW i nie muszę uruchamiać Putty i SSH by coś porobić w cmd.
Instalacja pulpitu zdalnego - RDesktop
Na Banana Pi można zainstalować też pulpit zdalny. Przedstawię jak to zrobić za pomocą Dockera/Portainera, czyli analogicznie do poprzednich instalacji.
Skrypt stacks:
---
version: "2"
services:
rdesktop:
image: linuxserver/rdesktop
container_name: rdesktop
privileged: true #optional
environment:
- PUID=TWOJE_PUID
- PGID=TWOJE_PGID
- TZ=Poland/Warsaw
volumes:
- /var/run/docker.sock:/var/run/docker.sock #optional
- /srv/dev-disk-by-label-Bsv/Config/RDesktop:/config #optional
ports:
- 3389:3389
# shm_size: "2gb" #optional \
restart: unless-stopped
Skrypt też musicie uzupełnić tak jak w poprzednich instalacjach - podać PUID/PGID i label dysku.
Ja dodatkowo zakomentowałem "shm_size" który określa rozmiar pamięci dla RDesktop, bo użyty tu Banana Pi nawet tyle RAMu nie ma.

Instalacja się powiodła:

Po instalacji użyłem komputera z systemem Windows 10 by sprawdzić, czy pulpit zdalny działa - Windows ma wbudowaną aplikację do tego, można ją znaleźć w menu start pod nazwą "Podłączenie pulpitu zdalnego".

Zalogowanie się wymaga przede wszystkim podania IP naszego serwera:

Trzeba też zaakceptować certyfikat:

Następnie pojawia nam się już formularz logowania na samym RDP:

Domyślne dane logowania dla RDP tutaj to:
Quote:abc
abc

Po zalogowaniu się przez chwile może być widoczny czarny ekran, ale potem powinien pojawić się pulpit zdalny.

Tak dokładnie to nie jest pulpit Armbiana/Banana Pi, tylko wirtualny pulpit RDesktop z Portainera.
RDesktop na Banana Pi działa dość wolno, ale mimo wszystko da się go używać i w pewnych sytuacjach może być wygodniejszy niż panel WWW i konsola komend.

Na tym RDP da nawet się otworzyć przeglądarkę internetową i wyświetlać strony WWW:

Można też korzystać z różnych preinstalowanych narzędzi:

Nie polecam jednak w dużej mierze polegać na tym pulpicie zdalnym gdy uruchamiamy go na np. Banana Pi, gdyż jest on dość zasobożerny i czasem nie jest wystarczająco responsywny by się wygodnie na nim pracowało.
Mała wskazówka - partycje w systemie NTFS
OpenMediaVault w bieżącej wersji nie wspiera tworzenia partycji z systemem plików NTFS, ale bez problemu obsługuje takie już istniejące, więc jeśli ktoś chce użyć tego systemu plików to może sformatować dysk na systemie Windows a potem tylko podłączyć go do Banana Pi.
Dodawanie dysku SSD (a właściwie zamiana dysku HDD na SSD)
Po wykonaniu pierwszych testów i przekonaniu się, że wszystko działa jak powinno, postanowiłem zrezygnować ze starego dysku HDD na rzecz nowego, bezgłośnego SSD (GOODRAM SSD CL100 G2 480GB SATA3 2,5):

Dysk SSD dodaje się do serwera zupełnie tak samo jak HDD - po prostu podłączamy go i tworzymy system plików (lub tylko montujemy istniejący) z poziomu panelu WWW OpenMediaVault.
Jedyny problem możemy mieć tutaj jeśli wcześniej podłączyliśmy i skonfigurowaliśmy inny dysk.
OpenMediaVault 'nie lubi' mieć zapisanych w systemie ale odłączonych dysków. Nie będziemy mogli wtedy dodać kolejnego dysku, dodanie będzie kończyć się błędem.
Aby usunąć dysk musimy:
- najpierw usunąć jego Shared Folders z Samba
- potem ogólnie jego Shared Folders
- na koniec odmontować jego system plików
Tzn. wykonujemy operacje w odwrotnej kolejności niż przy podłączaniu dysku. Jeśli dysk będzie np. używany przez jakieś Share z Samba, to nie będzie dało się go usunąć z systemu plików.
Po wykonaniu tych operacji podłączenie SSD przebiegło bez problemów:


I to tego dysku ostatecznie użyłem do swojego serwera.
Stały IP dla OpenMediaVault (połączenie kablowe)
Banana PI domyślnie ma skonfigurowany dynamiczny adres IP - czyli adres IP przydziela nam routera poprzez usługę DHCP. Zasadniczo może się on w każdej chwili zmienić (choć to zależy też od routera i od tego czasu na jak długo nam IP przypisze).
Nie jest to pożądane w przypadku stawiania serwera, zwłaszcza że po zmianie IP OpenMediaVault od razu stracimy dostęp do wszystkich udostępnionych folderów i będziemy musieli się od nowa z nimi łączyć (też od nowa dodawać je do Windowsa).
Na szczęście bardzo łatwo można skonfigurować stały adres IP i to w pełni poprzez WebPanel OMV w zakładce System->Network->Interfaces:

Wybieramy tam interface który nas interesuje (tutaj: eth0, czyli podłączenie kablowe) i klikamy Edit. Tutaj musimy zmienić 'Method' dla IPV4 na 'Static', a potem uzupełnić pola Address (wybrany IP dla naszego serwera - musi być wolny), Netmask (maska sieciowa), Gateway (brama domyślna). IPv6 jeśli nie korzystamy to możemy wyłączyć.

Jeśli nie wiemy jak ustawić maskę/bramę domyślną, to możemy po prostu przepisać to co wyświetla nam nasz system Windows znajdujący się w tej samej sieci po wpisaniu komendy 'ipconfig' w konsoli:

Oczywiście bardziej zaawansowani użytkownicy (bądź użytkownicy linuxa) pewnie nie muszą tego przepisywać i wiedzą jak skonfigurowaną mają sieć.
Po ustawieniu konfiguracji trzeba oczywiście zapisać zmiany z pomocą Apply i poczekać aż zostaną wprowadzone w życie.

W tym momencie połączenie z OpenMediaVault zostanie utracone - musimy je na nowo nawiązać, już na wybranym przez nas wcześniej adresie IP.
Zużycie energii po 2 tygodniach użytkowania
Opiszę tutaj wyniki pomiarów zużycia energii przez serwer już normalnie w trakcie pracy, zmierzone zakupionym w chinach wtyczkowym miernikiem zużycia energii na układzie V9261F.
Serwer uruchomiłem i zostawiłem włączony na 2 tygodnie bez obudowy. Do Banana PI podłączony był tylko przewód Ethernet oraz dysk SSD. Na serwerze chodził OpenMediaVault wraz z włączonym klientem torrent udostępniającym wspomniane wcześniej obrazy .ISO systemów operacyjnych. To tak w celu zrobienia dodatkowego obciążenia - tak, by ciągle się coś działo w sieci. Dodatkowo oczywiście włączona była też Samba oraz co jakiś czas robiłem kopię zapasową plików ze swojego komputera na serwer. Używałem go też do przerzucenia plików między komputerami.


Wyniki pomiarów (ze zdjęć powyżej oraz obliczeń) są następujące:
Pomiar energii - czas od włączenia: 13 dni, 20 godzin i 31 minut -> około 332.5h pracy non stop.
Najwyższy zanotowany pomiar mocy: 4.3W
Zużycie energii w tym okresie: 0.756KWh
Średnie zużycie energii dziennie: 0.055KWh
Średnia wartość mocy: 0.756KWh/332.5h = 2.23W
Pokrewny temat - OpenMediaVault na starym sprzęcie
Jeśli kogoś zainteresował temat, to w ramach uzupełnienia polecam zapoznać się z moją poprzednią konstrukcją, która opierała się o stary sprzęt komputerowy i starszą wersję OpenMediaVault:
https://www.elektroda.pl/rtvforum/topic3626452.html
Ciąg dalszy tematu - obudowa
Tutaj miałem jeszcze opisać proces powstawania obudowy pod ten serwer, ale temat już i bez tego zrobił się bardzo długi (prawie 60 tys znaków), więc uznałem, że opis obudowy dam na forum jako osobną część, wtedy ten post tutaj zaktualizuję i wkleję tu link. Wtedy też wymienię kabel sata na lepszy.
Podsumowanie
Z serwera jestem bardzo zadowolony. Serwer jest absolutnie bezgłośny, a mimo to nie grzeje się przesadnie - jest tylko ciepły. Serwer zużywa nie więcej niż 3W, nawet w trakcie aktywnego działania (przesyłanie plików przez sieć). Banana Pi jest wystarczająco szybkie do zastosowania jakie mu wybrałem i dobrze spełnia swoją rolę.
Cool? Ranking DIY