Cum poți „transforma” Raspberry Pi într-un NAS

O vreme am folosit un NAS QNAP, însă după achiziționarea Raspberry Pi 4 a cam rămas de bibelou, dar asta s-a întâmplat și datorită aplicațiilor extraordinare compatibile cu «zmeurică», în special a openmediavault, dar și a PIVPN, Nextcloud și Portainer, printre multe altele.

Au mai contat, desigur, și dimensiunile-i reduse și consumul nesemnificativ de energie electrică pe durata funcționării, iar între noi fie vorba, și-un mSATA rătăcit prin sertare și cu care oricum nu aveam alte intenții. Dar cu un adaptor mSATA la USB 3.0, un radiator și niște bandă adezivă i-am dat o întrebuințare neașteptat de practică.

Aproape un an mai târziu, tocmai când nu mai aveam niciun PC cu SATA prin preajmă, am primit cadou un SSD de 480 GB, ocazie ideală pentru a trece de la 120 la 480 GB și documenta procedura de la A la Z, ceea ce voi și face în continuare.

Deși pentru a găzdui fișierele poate fi folosit același card MicroSD pe care este instalat sistemul de operare ori un pendrive, nu merită deranjul. În primul rând le-am schimba ca pe șosete, că niciunul dintre acestea n-a fost conceput pentru o astfel de întrebuințare, dar să nu uităm că numai NAS nu poate fi numit un dispozitiv spre care nu putem trimite fișiere cu mai mult de 20-30 MB/s.

Puteți folosi un hard disk extern, dar trebuie să-l alegeți cu grijă, necesarul de energie electrică al acestora fiind suficient de mare încât Raspberry Pi 4 să nu-l poată asigura în permanență, iar asta poate duce la moartea-i subită. Mi s-a întâmplat recent cu un Toshiba de 2 TB și care niciodată înainte nu dăduse semne de oboseală.

O altă problemă a hard disk-urilor externe e că nu vin însoțite de propria sursă de alimentare, iar cele care o fac habar n-au de UASP ori rămân active indiferent de instrucțiunile primite de la dispozitivul la care sunt conectate prin USB, ceea ce iar nu e bine.

Așadar, în astfel de cazuri cea mai bună alegere o reprezintă un SSD și un adaptor cu UASP. Nu sunt nici greu de găsit și nici scumpe, însă înainte de a achiziționa unul vedeți ce spun despre el cei care l-au cumpărat, în special cei care oferă în recenzii detalii tehnice. Eu am optat pentru unul marca Onvian (de care, apropo, nu mai auzisem niciodată) și-s mulțumit de el.

După conectarea SSD-ului la Raspberry Pi, executați comanda «lsblk» pentru a vă asigura că sistemul de operare l-a detectat și recunoscut corect. În mod normal apare primul în listă și are eticheta «sda»:

SSD detecctat corect de Raspberry Pi OS

În caz contrar, verificați că e conectat corect și că adaptorul utilizat funcționează.

1. Instalarea și configurarea Openmediavault în Raspberry Pi

Având Raspberry Pi OS Lite arm64 instalat și configurat după cum am explicat aici și aici, cu SSD-ul conectat și detectat corect, puteți executa scriptul de instalare al Openmediavault după cum este explicat de către dezvoltatorul său pe GitHub.

Descărcare și executare script de instalare a Openmediavault în Raspberry Pi OS

Din linia de comandă, treceți de la utilizatorul pi la root (administrator) cu ajutorul comenzii «sudo su» apoi descărcați scriptul de instalare cu wget:

wget https://github.com/OpenMediaVault-Plugin-Developers/installScript/raw/master/install

După descărcare, dați scriptului permisiuni de execuție:

chmod +x install

Apoi executați-l:

sudo ./install -n

Instalarea Openmediavault și a dependențelor acestuia va începe și, dacă ați dezactivat IPv6 așa cum v-am recomandat în articolul anterior, va raporta o eroare.

Processing triggers for php7.4-fpm (7.4.25-1+deb11u1) ...
Processing triggers for php7.4-cgi (7.4.25-1+deb11u1) ...
Errors were encountered while processing:
 nginx-core
 nginx
 openmediavault
 salt-minion
E: Sub-process /usr/bin/dpkg returned an error code (1)
failed to install openmediavault package.
[email protected]:/#

Investigând problema cu ajutorul log-ului, observăm că NGINX se aștepta să poată folosi IPv6 pentru viitoarele site-uri generate cu ajutorul său, iar când a „descoperit” că nu este așa s-a panicat și nu mai vrea să pornească.

Job for nginx.service failed because the control process exited with error code.
See "systemctl status nginx.service" and "journalctl -xe" for details.
invoke-rc.d: initscript nginx, action "start" failed.
● nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Sat 2022-01-08 14:42:56 GMT; 21ms ago
       Docs: man:nginx(8)
    Process: 25264 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=1/FAILURE)
        CPU: 43ms

Jan 08 14:42:56 cls systemd[1]: Starting A high performance web server and a reverse proxy server...
Jan 08 14:42:56 cls nginx[25264]: nginx: [emerg] socket() [::]:80 failed (97: Address family not supported by protocol)
Jan 08 14:42:56 cls nginx[25264]: nginx: configuration file /etc/nginx/nginx.conf test failed
Jan 08 14:42:56 cls systemd[1]: nginx.service: Control process exited, code=exited, status=1/FAILURE

[...]

[email protected]:/# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: [emerg] socket() [::]:80 failed (97: Address family not supported by protocol)
nginx: configuration file /etc/nginx/nginx.conf test failed

Problema se rezolvă dezactivând IPv6 în /etc/nginx/sites-available/default.

Implicit, blocul «Default server configuration» arată așa:

# Default server configuration
#
server {
        listen 80 default_server;
        listen [::]:80 default_server;

Îl deschidem cu nano și adăugăm un # la începutul liniei listen [::]:80 default_server;

Modificare /etc/nginx/sites-available/default

Apoi executăm scriptul de instalare:

sudo ./install -n

Și așteptăm ca Openmediavault să se instaleze. Vom ști ca a terminat atunci când în terminal vom vedea următoarele:

Openmediavault a fost instalat în Raspberry Pi

Iar în Internet Browser, accesând adresa IP ori hostname-ul Raspberry Pi vedem asta:

Openmediavault - pagina de login

Dacă vedeți acestă papină, puteți răsufla ușurați, „ce a fost mai greu, a trecut!”. Mai trebuie doar realizată configurarea Openmediavault și a serviciilor cu ajutorul cărora vom transforma micuțul Raspberry Pi 4 într-un NAS.

Dar toate astea se fac prin intermediul unei interfețe grafice, a panoului de control intern și la care puteți ajunge folosind utilizatorul «admin» și parola «openmediavault» pentru autentificare.

Panou de control openmediavault

Pentru aplicarea setărilor realizate din cadrul panoului de control va trebui să apăsați bifa afișată în bara galbenă ce-și va face apariția, să confirmați și să așteptați câteva secunde.

Salvare setări în Openmediavault

În timp ce așteptați, sub capotă, Openmediavault va „traduce” setarea realizată în comenzi pe care altfel ar trebui să trimiteți diverselor componente prin intermediul liniei de comandă.

2. Înregistrarea și configurarea SSD-ului în Openmediavault

Chiar dacă SSD-ul este conectat la Raspberry Pi și detectat de către sistemul de operare, Openmediavault „nu știe” că-l poate folosi și pune la dispoziția serviciilor pe care le veți instala. Tocmai de aceea, înainte de a crea folderul ce va putea fi accesat de către orice alt dispozitiv din rețea, trebuie să-l formatăm și creăm în acesta folderele necesare.

Pentru început, mergeți la Storage » Disks, bifați linia reprezentând SSD-ul și apăsați butonul Edit.

Înregistrare SSD în Openmediavault

Dacă opțiunea Write Cache este activată, dezactivați-o. Nu e recomandat să umblați nici la celelalte setări, Openmediavault nu poate interveni asupra directivelor date de controller-ul interfeței USB (detalii), există riscul să-i faceți SSD-ului mai mult rău decât bine.

Accesați Storage » File Systems și apăsați Add » Create:

Creare sistem de fișiere în Openmediavault

La Device alegeți SSD-ul, iar la Type alegeți EXT4, apăsați butonul Save și așteptați ca sistemul de fișiere să fie creat.

Formatare SSD în EXT4 cu Openmediavault

Montați noua partiție din Storage » File Systems » Add » Mount:

În funcție de capacitatea SSD-ul și de modelul Raspberry Pi folosit, această operație poate dura de la câteva secunde la câteva minute bune. Așteptați până când este finalizată, apoi mergeți la Shared Folders și creați în SSD folderul pe care ulterior îl veți putea accesa din rețeaua locală.

Pentru a putea accesa respectivul folder din Windows, Linux, Android sau Mac OS, vă recomand să optați pentru partajarea prin SMB/CIFS. Nu este metoda ideală, însă singura care nu mi-a dat niciodată bătăi de cap indiferent de sistemul de operare folosit.

3. Activarea și configurarea SMB/CIFS

Înainte de activarea SMB/CIFS va trebui să-i indicăm lui Openmediavault unde se află folderul pe care vom dori să-l putem accesa de pe oricare dintre dispozitivele conectate la rețeaua domestică. Pentru asta, accesați Services » SMB/CIFS » Shares și creați regula de partajare cu permisiunile vizibile în capturile de ecran din galeria inferioară.

După aplicarea modificărilor, activați SMB/CIFS bifând din Services » SMB/CIFS » Settings:

A mai rămas doar de creat și configurat utilizatorul cu care ne vom autentifica atunci când vom încerca să accesăm folderul proaspăt creat și partajat. Acest lucru se face din User Management » Users » Create.

Dacă ați respectat indicațiile cu strictețe, acum ar trebui să vedeți Raspberry Pi-ul în secțiunea Network a Windows Explorer.

Accesare Raspberry Pi din Rețea

Pentru accesare vi se va cere să introduceți un nume de utilizator și o parolă. Folosiți datele de autentificare ale utilizatorului pe care tocmai l-ați creat.

Accesare folder partajat

Pentru a vă asigura că utilizatorul a fost creat și aderat corect la grupurile necesare pentru a putea accesa și utiliza locația de rețea, creați un document text în folderul partajat, ori încercați să încărcați în acesta un fișier nou. Încărcarea unui fișier de mari dimensiuni (film, imagine ISO), vă va ajuta să vă faceți o idee și despre viteza de transfer dintre PC și Raspberry Pi.

În cazul meu, viteza de transfer este mai mult decât satisfăcătoare având în vedere că laptopul de pe care am realizat testele, un Thinkpad L13 Gen 2, e conectat la rețea prin WiFi. Pentru bunele rezultate ajută în primul rând interfața de rețea gigabit a Raspberry Pi 4, controller-ul adaptorului USB și bineînțeles SSD-ul. Oricât de performante ar fi routerul și PC-ul, pe un Raspberry Pi 3 ori mai vechi nici n-aș fi putut spera la rezultate asemănătoare.

Lasă un răspuns

Adresa ta de email nu va fi publicată.

Acest site folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.