Jak stworzyć domowy NAS z Raspberry Pi — Poradnik OMV i Samba

Jak stworzyć domowy NAS z Raspberry Pi — Poradnik OMV i Samba

Jakiś czas temu postanowiłem, że stworzę kopię zapasową dla wszystkich posiadanych przeze mnie fizycznych wersji gier. Szybko okazało się jednak, że pełne kopie dysków i kartridży potrafią zająć naprawdę sporo miejsca. God of War 3 na PS3? 40 GB. MGS4 na tą samą konsolę? 30 GB. Tears of The Kingdom dla Nintendo Switch? Kolejne 30 GB. Przy zapisywaniu tak ogromnych plików, zajęte miejsce na dysku wewnętrznym SSD 2 TB rosło dosłownie jak na drożdżach. Po kilku tygodniach na moim praktycznie nowym dysku zostało marne 400 GB przestrzeni na dane, a wciąż pozostała mi masa gier, za które nawet się nie zabrałem. Stwierdziłem wtedy, że potrzebuję lepszego sposobu na przechowywanie tych wszystkich gier. Wybór padł oczywiście na NAS’a (ang. Network Attached Storage), czyli potocznie mówiąc: dysk sieciowy. Takie urządzenie z odpowiednio dużym dyskiem rozwiązałoby mój problem magazynowania mojej prywatnej biblioteki, a przy okazji nieco ułatwiłoby przenoszenie plików na inne urządzenia (np. na Steam Decka w celu ich emulowania).

Obecnie jednym z najtańszych sposobów na stworzenie takiego prostego domowego Nasa jest wykorzystanie Raspberry Pi. W tym poradniku pokażę więc jak krok po kroku wygląda proces tworzenia NAS’a na Raspberry Pi przy pomocy oprogramowania Open Media Vault oraz Samba.

Co będzie nam potrzebne?

Zaczynamy od tego, co będzie nam potrzebne. W przypadku projektu tworzenia NAS’a z Raspberry Pi będzie to:

  • Samo Raspberry Pi — Polecam model RPI 4/RPI 5. Mają one złącza USB 3, co powinno zapewnić znacznie lepsze transfery w porównaniu ze starszym USB 2.
  • Dyski zewnętrzne/dyski wewnętrzne z obudową USB — Miejsce, na którym będą zapisywane nasze pliki. Raczej celowałbym tutaj w dyski HDD, są one tańsze niż SSD, a w przypadku NAS’a na Raspberry Pi zapewnią bardzo podobną wydajność. Przy 1/maksymalnie 2 dyskach powinny nam wystarczyć modele zasilane wyłącznie z samego USB. Przy większej liczbie dysków zaleca się korzystanie z modeli z zewnętrznym zasilaniem (RPI może mieć bowiem problemy z dostarczeniem wystarczającej ilości prądu, żeby zasilić wszystkie dyski naraz). Przy dwóch dyskach o tej samej pojemności będziemy mogli stworzyć z nich (programowo) RAID1 (innymi słowy: 1 dysk będzie służył jako kopia lustrzana tego drugiego, co pozwoli odzyskać dane nawet w przypadku awarii jednego z dysków).
  • Karta microSD — Na system dla Raspberry Pi. Wystarczy nam niewielka tania karta o pojemności 32/64 GB.
  • Czytnik kart microSD — Do podłączenia karty do innego komputera i sflashowania systemu operacyjnego.
  • Zasilacz dla Raspberry Pi
  • (Opcjonalnie) Obudowa dla RPI — Jeśli jesteśmy naprawdę zaangażowani w ten projekt to możemy pokusić się o dedykowane obudowy pod zrobienie NAS’a z Raspberry Pi (oferują one między innymi możliwość podłączenia dysków wewnętrznych poprzez specjalne dodatki). Dla prostego NAS’a uważam to jednak trochę za przerost formy nad treścią (zwłaszcza patrząc na cenę takich rozwiązań).

Jeśli wszystko mamy już gotowe, to możemy przejść bezpośrednio do flashowania systemu na karcie microSD!

Jeszcze informacyjne: do swojego domowego NASA wykorzystałem Raspberry Pi 4 z 2 GB pamięci RAM, pojedynczy dysk zewnętrzny HDD 5 TB WD Passport, kartę microSD o pojemności 32 GB. RPI zapakowane było do taniej plastikowej obudowy i podłączone do Internetu kabelkiem Ethernet. Całość zasila ładowarka Xiaomi zapewniająca 3A przy 5V.

Flashowanie systemu na karcie microSD i uruchamianie RPI

UWAGA! Ta procedura usunie wszystkie dane z wybranej karty pamięci. Przed tym warto przenieść wszystkie istotne pliki na inny nośnik.

Aby sflashować system operacyjny na karcie microSD przeznaczonej dla Raspberry Pi:

  1. Pobieramy narzędzie Raspberry Pi imager z oficjalnej strony producenta.
  2. Klikamy dwukrotnie na pobrany plik w celu rozpoczęcia instalacji programu. Przeprowadzamy instalację dokładnie tak samo, jak w przypadku każdej innej aplikacji (klikamy dalej i zgadzamy się na warunki).
  3. Teraz podłączamy kartę microSD do komputera za pomocą odpowiedniego adaptera.
  4. Szukamy Raspberry Pi Imager wśród naszych aplikacji i ją uruchamiamy.
  5. Klikamy na przycisk “Wybierz model” i zaznaczamy, z jakiego modelu Raspberry Pi korzystamy.
    Wybieranie modelu RPI
  6. Zaznaczamy “Wybierz OS”, przechodzimy do zakładki “Raspberry Pi OS (Other)” i wybieramy wersję Lite 64-bity lub wersję Lite 32-bity. Oba te systemy są bardzo lekkie, bo nie mają interfejsu graficznego (nie będziemy go potrzebować, bo do stworzenia NAS’a musimy zastosować tylko kilka komend w terminalu). Jeśli uznamy, że Interfejs graficzny jednak jest nam potrzebny (np. dla innego projektu), to możemy wybrać inną wersję Raspberry Pi OS.
    Wybieranie OS
  7. Po zaznaczeniu odpowiedniego systemu klikamy CTRL + Shift + X na klawiaturze. Powinno to wyświetlić nowe małe okienko.
  8. Teraz:
    • W zakładce “Ogólne” ustawiamy hostname (np. pi) oraz hasło. Login pozostawiamy bez zmian jako “pi”. Jeśli chcemy korzystać z Wi-Fi na Raspberry Pi to powinniśmy też zaznaczyć opcję “Skonfiguruj sieć Wi-Fi” i wpisać nazwę sieci oraz hasło do odpowiednich pól. UWAGA! Hostname, login oraz hasło będą potrzebne do późniejszego połączenia zdalnego z komputerkiem, więc warto je zapamiętać/zapisać lub po prostu zrobić ich zdjęcie.
      Ustawienie loginu i hasła
    • W zakładce “Usługi” upewniamy się, że opcja SSH jest włączona i została ona ustawiona na “Używaj uwierzytelniania hasłem”. Pozwoli to na łatwe połączenie zdalne z Raspberry Pi poprzez protokół SSH.
      Włączenie ssh
    • Zakładkę “Opcje” pozostawiamy bez zmian.
  9. Po wprowadzeniu wszystkich zmian w okienku konfiguracji systemowej klikamy przycisk “Zapisz”.
  10. Teraz zaznaczamy opcję “Wybierz Dysk” i wskazujemy kartę microSD.
    Wybór karty pamięci
  11. Na sam koniec klikamy przycisk “Kontynuuj” i zatwierdzamy tę operację przyciskiem “TAK”, aby sformatować kartę i zainstalować na niej nowy system.
    Tak kontynuuj

Włączanie RPI

Teraz przyszła pora na uruchomienie RPI z naszym systemem. Tak więc standardowo:

  1. Wyciągamy sflashowaną kartę microSD z komputera i wkładamy ją do Raspberry PI.
  2. (opcjonalnie) Jeśli mamy jakąś obudowę/chłodzenie, które chcemy zastosować, to teraz zakładamy je na Raspberry Pi.
  3. Kładziemy RPI w dogodnym miejscu i podpinamy do malinki zewnętrzny dysk USB (najlepiej do portu USB 3 z niebieskimi wstawkami w środku) oraz kabel Ethernet (w przypadku, gdy chcemy korzystać z Internetu przewodowo, co zresztą polecam). Trzeba tutaj pamiętać, że Raspberry Pi powinno być podłączone do tego samego Routera co urządzenia, na których będziemy chcieli korzystać z NAS’a.
  4. Na sam koniec podłączamy ładowarkę do złącza USB-C (RPI-4/RPI-5) lub złącza micro USB (starsze wersje malinki). Po chwili Raspberry Pi powinno samo się uruchomić i przejść do systemu.

Łączenie z Raspberry Pi poprzez SSH

Teraz możemy już połączyć się zdalnie z Raspberry Pi poprzez SSH. Ten proces pokażę na przykładzie terminala Windows, ale będzie on wyglądał bardzo podobnie także na terminalu dla macOS/Linuxa lub dedykowanego oprogramowania SSH takiego jak PuTTY, czy Termius

Tak więc:

  1. Na naszym komputerze z Windowsem wyszukujemy aplikację Terminal i uruchamiamy ją.
    Terminal Windows
  2. Po otwarciu terminala wpisujemy do niego komendę ssh pi@ustawiony_hostname. W moim przypadku będzie to np. ssh [email protected]l. Zatwierdzamy tą i kolejne komendy klawiszem Enter. Jeśli z jakiegoś powodu RPI nie jest odnajdywanie po samej nazwie hosta, to, zamiast niej możemy wprowadzić adres IP urządzenia (można go znaleźć na stronie routera dostępnej pod adresem 192.168.1.1 lub 192.168.1.0).
    Łączenie SSH
  3. Po chwili powinno pojawić się zapytanie, czy na pewno chcemy się połączyć. Wpisujemy słowo yes i ponownie klikamy Enter.
    Yes SSH
  4. Teraz Terminal poprosi nas o podanie hasła. Będzie to, to samo hasło, które ustaliliśmy przy instalacji systemu na karcie microSD. Wpisujemy nasze hasło i zatwierdzamy je klawiszem Enter.
    Hasło SSH

Jeśli wszystko zrobiliśmy dobrze, to po wpisaniu hasła powinno pojawić się kilka nowych linijek tekstu, a zaraz pod nimi pojawi się nowa kolorowa linijka z tekstem pi@ustawiony_hostname: ~ $. To właśnie w tym miejscu będziemy wprowadzać wszystkie komendy potrzebne do skonfigurowania oprogramowania dla NAS’a.

Aktywna sesja SSH z Raspberry Pi
Aktywna Sesja SSH z Raspberry Pi

Wybór pomiędzy Open Media Vault i Sambą

Ok na chwilę robimy sobie przerwę od konfigurowania, bo teraz musimy zdecydować, jakie oprogramowania użyjemy do stworzenia naszego serwera NAS. W przypadku Raspberry Pi mamy kilka opcji. Dwie zdecydowanie najczęściej wykorzystywane do: Samba oraz Open Media Vault (w skrócie OMV).

Samba to oprogramowanie, które pozwoli stworzyć nam prosty serwer plików i udostępnić w sieci folder znajdujący się na dysku. Konfiguracja Samby jest trochę trudniejsza niż ta w przypadku Open Media Vault (ta trudność polega głównie na tym, że wpisujemy komendy, a nie korzystamy z interfejsu graficznego), ale teoretycznie NAS stworzony przy pomocy Samby powinien zjadać nieco mniej zasobów.

Z drugiej strony mamy Open Media Vault, który jest już takim pełnoprawnym systemem dla NAS’a z wieloma dodatkowymi opcjami (i notabene używa Samby do udostępniania folderu). Konfiguracja OMV jest (chyba?) nieco łatwiejsza niż samej Samby (wystarczy wpisać dosłownie 1 komendę, a potem przeklinać kilka opcji w przeglądarce), ale OMV może zjadać nieco więcej zasobów (co może być ważne, jeśli planujemy na RPI postawić jeszcze kilka innych aplikacji).

Która z tych opcji będzie lepsza? Szczerze to: nie mam pojęcia. Przez kilka ostatnich dni na swoim Raspberry Pi testowałem zarówno Open Media Vault, jak i Sambę i jak na razie obie usługi zapewniały podobne wrażenia z używania NASA (prędkości w okolicach 110-120 MB/s w jedną i drugą stronę z okazjonalnymi spadkami). Może w najbliższych miesiąc podczas testowania usługi znajdę jakieś wady w jednym bądź drugim rozwiązaniu, jednak do tego czasu dla większości nowych użytkowników raczej polecałbym Open Media Vault i to tylko przez wzgląd na nieco łatwiejszą (ale też dłuższą) konfigurację.

Wydajność NAS'a
Wydajność NAS’a

Konfiguracja Open Media Vault na Raspberry Pi

Poniżej znajdziecie instrukcję dotyczącą instalacji i konfiguracji oprogramowania Open Media Vault.

Instalacja Open Media Vault

Aby zainstalować OMV na Raspberry Pi:

  1. Wracamy do terminala z aktywną sesją SSH.
  2. Aktualizujemy zainstalowane paczki komendą sudo apt-get update && sudo apt-get upgrade
    Aktualizowanie paczek na RPI
  3. Na sam koniec wklejamy komendę sudo wget -O - https://github.com/OpenMediaVault-Plugin-Developers/installScript/raw/master/install | sudo bash i zatwierdzamy ją klawiszem Enter.
    Instalacja Open Media Vault

I… to tyle! Po zakończeniu kilkunastominutowej instalacji Raspberry Pi powinno zostać samoistnie zrestartowane. Przy okazji zostaną uruchomione wszystkie serwisy potrzebne do dalszej konfiguracji.

Połączenie z OMV w przeglądarce i tworzenie udostępnianego folderu

Aby stworzyć udostępniany folder przez Open Media Vault na Raspberry Pi:

  1. Otwieramy dowolną przeglądarkę Internetową i wpisujemy w pasku wyszukiwania nazwę hosta Raspberry Pi (w moim przypadku pi.local) lub adres IP malinki. Zatwierdzamy wprowadzony adres enterem. Po chwili powinna pojawić się strona logowania OMV.
  2. Wpisujemy domyślne dane logowania dla OMV, czyli: User name “admin” i password “openmediavault”.
    Logowanie na OpenMediaVault
  3. Teraz pierwsze co powinniśmy zrobić, to zmienić domyślne hasło do logowania. Klikamy więc na avatar ludzika w prawym górnym rogu i zaznaczamy opcję “Change Password”. Następnie w wyświetlonym menu wprowadzamy dwukrotnie nasze nowe hasło i zatwierdzamy je przyciskiem “Save”.
    Change Password OMV
  4. Po zmianie hasła przechodzimy do prawidłowego skonfigurowania NAS’a. Najpierw wchodzimy więc w “Storage” > “Disks”.
    Storage Disks
  5. Zaznaczamy nasz dysk zewnętrzny (nazwa /dev/sda lub sdb), a następnie klikamy gumkę, aby sformatować nasz dysk. Jeśli chcemy spróbować stworzyć NAS bez sformatowania dysku to możemy pominąć ten krok (czasem stworzenie NAS’a bez uprzedniego formatowania, może zakończyć się niepowodzeniem).
    Formatowanie dysku OMV
  6. (Dodatkowy krok dla osób, które sformatowały dysk) Wchodzimy w “Storage” > “File Systems”. Klikamy na + zaznaczamy “EXT4”, wskazujemy nasz dysk w polu “Select a device” i klikamy przycisk Save. Stworzy to nową partycję na naszym dysku.
    Creating file system
  7. Wchodzimy w “Storage” > “File Systems”. Klikamy na przekręcony trójkąt (pierwsza opcja z lewej) i w otwartym formularzu zaznaczamy naszą partycję, po czym klikamy Save. Spowoduje to zamontowanie dysku.
  8. Jeśli wszystko zrobiliśmy poprawnie, to powinno wyświetlić się żółte powiadomienie. Zaznaczamy na nim ptaszek, aby zastosować zmiany.
    Stosowanie zmian
  9. Po zastosowaniu zmian wchodzimy w “Storage” > “Shared Folders”. Zaznaczamy + i w otwartym formularzu:
    • W pierwszym polu wpisujemy nazwę folderu, który będzie udostępniany (można go np. nazwać “Share”; ta nazwa będzie potem wykorzystywana do łączenia z NAS’em.)
    • W opcji “File system” zaznaczamy zamontowaną wcześniej partycję.
    • Resztę opcji pozostawiamy bez zmian.
  10. Klikamy Save, aby utworzyć udostępniany folder i tak jak poprzednio, zaznaczamy ptaszek w żółtym powiadomieniu.
    Zatwierdzenie zmian udostępniania folderu

Włączenie SMB/CIFS i NFS

Aby włączyć SMB/CIFS i udostępnić nasz folder w sieci:

  1. Wchodzimy w “Services” > “SMB/CIFS” > Settings.
  2. Klikamy opcję “Enable” na samej górze i zapisujemy zmiany przyciskiem “Save” w dolnej części listy.
    Ajtywacja SMBCIFS
  3. Po włączeniu usługi przechodzimy do “Services” > “SMB/CIFS” > “Shares”.
  4. Klikamy +. Spowoduje to wyświetlenie kolejnego formularze.
  5. W polu “Shared folder” zaznaczamy nasz udostępniany folder. Jeśli chcemy mieć dostęp do NAS’a bez wprowadzenia hasła (innymi słowy: każdy w naszej sieci lokalnej będzie miał dostęp do plików), to możemy zaznaczyć opcję “Guests allowed”. We wspomnianym formularzu znajdziemy też wiele innych ciekawych opcji (np. wsparcie dla Time-Machine), ale jeśli chcemy tylko stworzyć prostego NAS’a to nie musimy się nimi teraz interesować.
    Creating Share
  6. Po wypełnieniu formularza klikamy “Save” na samym dole i znowu (ponownie) naciskamy ptaszek w żółtym powiadomieniu, aby zastosować zmiany.
  7. Teraz przechodzimy do zakładki “NFS” > “Konfiguracja”. Zaznaczamy tutaj ptaszek przy “Enabled” i klikamy “Save”.
  8. Na sam koniec wchodzimy w “NFS” > “Shares”, klikamy + i w otwartym formularzu zaznaczamy:
    • “Shared folder”, jako nasz folder udostępniania.
    • Client jako “0.0.0.0/0” (pozwoli to na dostęp z dowolnego urządzenia)
    • Permission jako “Read/Write”.
  9. Po wypełnieniu formularza zapisujemy zmiany przyciskiem Save i (jak zawsze) aplikujemy je ptaszkiem w żółtym powiadomieniu.

I to tyle! Teraz nasz NAS powinien być już dostępny w sieci. To jak się z nim połączyć w zależności od wykorzystywanego urządzenia pokazuję nieco niżej. W niektórych konfiguracjach,  przed połączeniem konieczna będzie zmiana uprawnień użytkownika.

Oprócz pokazanych powyżej ustawień, na stronie Open Media Vault znajdziemy też wiele innych ciekawych opcji (np. dotyczących monitorowania dysków, czy udostępniania zawartości konkretnym użytkownikom). Jeśli interesuje was taki aspekt zarządzania NAS’em to po pierwotnej konfiguracji możecie przeklikać sobie przez dostępne zakładki.

Zmiana hasła i uprawnień

Jeżeli podczas konfiguracji NAS’a nie ustawiliśmy opcji dostępu dla gości (Guests allowed) to, aby połączyć się z naszym dyskiem sieciowym, będziemy musieli wpisać login i hasło użytkownika. Niestety czasem podczas takiej procedury może okazać się, że aktualny użytkownik pi nie ma wymaganych uprawnień. Aby to naprawić:

  1. Tak samo, jak wcześniej wchodzimy i logujemy się na stronę zarządzania Open Media Vault.
  2. Wchodzimy w “Users” > “Users”.
  3. Klikamy na użytkownika “pi”, a następnie zaznaczamy ikonkę katalogu z kluczem.
  4. Zmieniamy “Permissions” na “Read/Write” i klikamy Save.
  5. Aplikujemy zmianę ptaszkiem w żółtym powiadomieniu.
  6. Teraz przechodzimy do “Users” > “Groups”.
  7. Zaznaczamy grupę “pi” i ponownie klikamy katalog z kluczem, po czym wybieramy “Read/Write” i zapisujemy zmiany.

Po wprowadzeniu tych zmian połączenie z NAS’em stworzonym w Open Media Vault powinno być już możliwe z naszego urządzenia z wykorzystaniem loginu “pi” i hasła ustalonego przy instalacji systemu Raspberry Pi OS (w razie potrzeby to hasło możemy zmienić bezpośrednio w interfejsie Open Media Vault w zakładce Users/Users).

Konfiguracja Samba dla Raspberry Pi

W tej sekcji pokazuję jak stworzyć NAS z RPI poprzez konfigurację oprogramowania Samba.

Formatowanie i montowanie dysku

Z poniższej instrukcji dowiesz się jak sformatować dysk i stworzyć na nim folder do późniejszego udostępnienia przez oprogramowanie Samba. Jeśli chcesz spróbować stworzyć NAS bez uprzedniego formatowania dysku (raczej niezalecane), to możesz pominąć kroki od 2 do 7. 

Bez zbędnego przedłużania:

  1. Po połączeniu z RPI przez SSH wpisujemy komendę sudo apt-get update && sudo apt-get upgrade w celu zaktualizowania wszystkich zainstalowanych paczek.
    Aktaulizowanie paczek na RPI
  2. Teraz wpisujemy komendę lsblk. Wyświetli to wszystkie podłączone dyski. Sprawdzamy jaką nazwę (NAME) ma nasz dysk. Zapewnia będzie to sda/sdb/sdc. Wszystkie poniższe przykłady są pokazywane na dysku sda, jeśli wasz dysk ma inną nazwę, to wystarczy zmienić samą nazwę dysku w komendach.
    Sprawdzanie nazwy dysku
  3. Używamy komendy sudo fdisk /dev/sda. Rozpocznie to formatowanie dysku. Klikamy kolejno d (usunie to aktualną partycję), a następnie n (stworzy to zupełnie nową partycję) i kilkukrotnie zatwierdzamy komendę (oraz jej domyślne opcje) Enterem (w razie potrzeby może być też koniecznie wpisanie literki Y, tak jak jest to pokazane na screenie).
    Fdisk formatowanie dysku
  4. Zamykamy narzędzie fdisk poprzez aktywację skrótu klawiszowego CTRL+Z.
  5. Uruchamiamy ponownie system poprzez zastosowanie komendy sudo reboot.
  6. Po odczekaniu kilkunastu sekund ponownie łączymy się z RPI przez sesję SSH.
  7. Teraz wklejamy do terminala komendę sudo mkfs.ext4 /dev/sda1 spowoduje to utworzenie nowej partycji w formacie ext4 na naszym dysku. Tę operację trzeba czasem zatwierdzić poprzez wpisanie litery y i ponowne kliknięcie Enter.
    Tworzenie nowej partycji
  8. Stosujemy komendę sudo mkdir /media/pi —- stworzy to nowy folder, do którego będziemy mogli zamontować dysk.
  9. Używamy komendy sudo mount /dev/sda1 /media/pi w celu zamontowania naszego dysku.
    Montowanie dysku
  10. Wpisujemy komendę systemctl daemon-reload i zatwierdzamy tę operację poprzez wprowadzenie hasła. Spowoduje to odświeżenie pliku fstab, dzięki czemu nasz system będzie mógł rozpoznać dysk jako rzeczywiście zamontowany.
    Odświeżenie Daemona
  11. Wklejamy do terminala komendę sudo nano /etc/fstab — spowoduje to wyświetlenie krótkiego pliku z tekstem.
  12. Na końcu otwartego pliku wklejamy linijkę /dev/sda1 /media/pi/ ext4 defaults,noatime 0 1 dzięki tej linijce nasz dysk będzie montowany automatycznie przy każdym uruchomieniu systemu.
    Edycja pliku fstab
  13. Zapisujemy zmiany w pliku poprzez naciśnięcie kolejno klawiszy CTRL+X > Y > Enter.

Tworzenie folderu do udostępnienia

Teraz musimy utworzyć na naszym dysku folder, który potem udostępnimy przy pomocy Samby. Na szczęście, jest to bardzo proste, bo wygląda tak:

  1. Wpisujemy komendę sudo mkdir /media/pi/shared stworzy to nowy folder na naszym dysku zewnętrznym. Słowo “shared” jest tylko nazwą folderu, więc możemy je zastąpić dowolnym innym słowem (np. filmy/NAS/kopia, dosłownie cokolwiek).
  2. Wklejamy do terminala komendę sudo chmod -R 777 /media/pi/shared spowoduje to nadanie praw do odczytywania zapisywania i edycji plików w stworzonym przed chwilą folderze dla wszystkich lokalnych użytkowników Raspberry Pi.
    Tworzenie folderu i nadawanie mu uprawnień

Udostępnianie dysku w sieci przy pomocy Samby

Przedostatni krok to udostępnienie folderu w sieci przy pomocy oprogramowania Samba. W tym celu:

  1. Używamy komendy sudo apt-get install samba samba-common-bin i w odpowiednim momencie zatwierdzamy tę operację poprzez wpisanie literki Y. Zainstaluje to oprogramowanie Samba na naszym Raspberry Pi.
    Instalacja Samby
  2. Wchodzimy do pliku konfiguracyjnego Samby poprzez użycie komendy sudo nano /etc/samba/smb.conf
  3. Za pomocą strzałki w dół zjeżdżamy na sam koniec pliku i wklejamy tam następujące wartości:

    [NAS]
    path=/media/pi/shared
    writeable=Yes
    create mask=0777
    directory mask=0777
    public=no

Modyfikacja pliku konfiguracyjnego
Jeśli nazwaliśmy nasz folder inaczej niż “shared” to w powyższej komendzie również powinniśmy odpowiednio zmienić nazwę. Nazwę NAS na samej górze będziemy wykorzystywać do łączenia z… NAS’em. W razie potrzeby możemy ją zmienić na inną frazę.

  1. Zapisujemy zmiany w pliku poprzez naciśnięcie kolejno klawiszy CTRL+X > Y > Enter.

Tworzenie użytkownika Samba

Jedyne co zostało nam do zrobienia to stworzenie użytkownika Samba. Przez którego będziemy łączyć się z NAS’em. Aby to zrobić:

  1. Wklejamy do terminala komendę sudo smbpasswd -a pi
  2. Dwukrotnie podajemy nowe hasło dla użytkownika Samba i zatwierdzamy je Enterem.
    Tworzenie użytkownika Samba
  3. Resetujemy Sambę komendą sudo systemctl restart smbd.
    Restart samby

I to tyle! Po tym wszystkim możemy już połączyć się z NAS’em z innego urządzenia.

Łączenie z utworzonym NAS’em

Łączenie z NAS’em wygląda troszkę inaczej w zależności od tego, z jakiego komputer lub innego urządzenia to robimy. Poniżej znajdziecie odpowiednią instrukcję, dla wszystkich popularnych systemów operacyjnych.

Windows

Kiedy chcemy połączyć się z domowym NAS’em z poziomu Windowsa:

  1. Uruchamiamy eksplorator plików i przechodzimy do zakładki “Ten komputer”.
  2. Klikamy prawym przyciskiem myszy na wolną przestrzeń i zaznaczamy “Dodaj lokalizację sieciową”.
  3. Na pierwszej stronie kreatora klikamy dalej, a w kolejnym kroku zaznaczamy “Wybierz niestandardową lokalizację sieciową i przechodzimy dalej.
  4. Teraz wpisujemy \\nazwa_hosta_RPI\nazwa_Share’a. W moim przypadku po konfiguracji za pomocą Samba będzie to na przykład: \\pi.local\nas. Alternatywnie, zamiast nazwy hosta możemy też skorzystać z adresu IP malinki.
    Dodawanie folderu sieciowego
  5. Po prawidłowym wpisaniu lokalizacji sieciowej przechodzimy dalej. Powinniśmy wtedy zostać zapytani o login oraz hasło. Wpisujemy je.
    Logowanie się do NAS'a
  6. Na kolejnym ekranie wprowadzamy nazwę, z jaką ma wyświetlać się NAS wśród dysków (byłem oryginalny i wybrałem NAS) i kończymy konfigurację.
    Nazywanie NAS'a

Po wszystkim w “Ten komputer” pojawi się nowy folder, który będzie prowadził prosto do naszego NAS’a. Tam możemy bez problemu wklejać i kopiować z niego wszelkie rodzaje plików.

macOS

W celu uzyskania połączenia z naszym NAS’em na macOS:

  1. Klikamy na klawiaturze skrót klawiszowy Command + K.
  2. W otwartym okienku łączenia wpisujemy smb://nazwa_hosta_rpi/nazwa_share’a.
  3. Klikamy Connect.
  4. Wpisujemy nazwę użytkownika oraz hasło.

Po wszystkim znajdziemy folder z naszego NAS’a w Finderze.

Linux

Aby połączyć się z NAS’em na Linuxie:

  1. Wchodzimy do naszego eksploratora plików.
  2. W pasku adresowym wpisujemy smb://nazwa_hosta_rpi/nazwa_share’a i klikamy Enter. Nazwę hosta możemy zamienić też na adres IP malinki.
  3. Na koniec wpisujemy naszą nazwę użytkownika oraz hasło.
    Logowanie się do NAS'a na Linuxie

Po chwili powinniśmy zobaczyć folder z naszego NAS’a RPI.

Wiele eksploratorów plików na Linuxie ma też specjalną zakładkę “Network”, w której będziemy mogli nieco szybciej znaleźć folder sieciowy udostępniany przez nasze Raspberry Pi

Android

Do połączenia z NAS’em na telefonie (raczej) będziemy musieli pobrać niestandardowy menedżer plików. Większość rozwiązań tego typu, zainstalowanych domyślnie na smartfonach nie obsługuje takich połączeń. Od siebie mogę polecić darmowy CX file Explorer i to właśnie na przykładzie tej appki pokażę proces połączenia.

Tak więc w celu podłączenia telefonu z Androidem do NAS’a:

  1. Wchodzimy do sklepu play i pobieramy CX file Explorer (lub inny menedżer z obsługą SMB/CIFS).
  2. Wchodzimy do pobranej aplikacji.
  3. Przechodzimy do zakładki “Network” i klikamy przycisk “New location”.
  4. Wybieramy “Remote” > “SMB”.
  5. Wprowadzamy nazwę naszego hosta/jego adres IP uzupełnioną o nazwę Share’a (w moim przypadku pi.local/nas), nazwę użytkownika (pi) oraz hasło.
    Łączenie z NAS'em
  6. Po uzupełnieniu wszystkich pól klikamy “OK”, po chwili powinniśmy zostać przeniesieni do udostępnionego folderu na naszym NAS’ie. Od tej pory skrót do lokalizacji naszego NAS’a będzie też widoczny w zakładce “Network”.
    Zawartość NAS'a na Androidzie

iOS

Aby połączyć się z NAS’em na naszym iPhone:

  1. Wchodzimy do aplikacji “pliki”.
  2. Klikamy na 3 kropki w prawym górnym rogu i wybieramy opcję “Połącz z serwerem”.
  3. W polu “serwer” wpisujemy smb://nazwa_hosta/nazwa_share’a lub smb://IP_RPI/nazwa Share’a i zaznaczamy “Połącz”.
    Połącz z serwerem
  4. W kolejnym kroku podajemy odpowiednią nazwę użytkownika oraz hasło.
    Wpisywanie loginu oraz hasła

Po chwili na ekranie powinniśmy zobaczyć folder z dysku podłączonego do Raspberry Pi. Od tego momentu tenże folder znajdziemy też wchodzą do zakładki “Przeglądaj” > “Udostępniane” w aplikacji pliki.

Plusy i minus NASA postawionego na RPI

Na koniec chciałbym opisać kilka plusów oraz minusów, które zauważyłem podczas tego projektu.

Plusy:

  • Koszt — Jednym z największych pozytywów prostego domowego NAS’a stworzonego przy pomocy Raspberry Pi jest na pewno niska cena. Swoją malinkę 4 z 2 GB pamięci RAM kupiłem z drugiej ręki za około 200 zł. Do tego dodajemy 450 zł za dysk 5 TB i 30 zł za kartę pamięci i powiedzmy, że 20 zł za obudowę i dostajemy finalny koszt w granicach 700 zł. Jeśli chciałbym kupić dedykowany mini-komputerek pod NAS’a (np. ciekawy Toptom n1 z procesorem n100) to za NAS’a o podobnej pojemności musiałbym zapłacić mniej więcej 2 razy tyle. Oczywiście taki dedykowany mini-komputer zapewniałby trochę lepsze wrażenia, jednak dla kogoś, kto po prostu chciał trzymać swoją kolekcję gier w wygodnym miejscu, byłaby to spora (i nie do końca wiem, czy sensowna) dopłata.
  • Pobór mocy — Drugim plusem RPI jako NAS’a jest też z pewnością pobór mocy. Mój zestaw przy obciążeniu pobiera tylko 10-11W i około połowę tego, gdy stoi bezczynnie. Są to więc bardzo dobre wyniki, które niezbyt wpłyną na nasze rachunki za prąd.
  • Ogólna wydajność — To z czego byłem też zadowolony to ogólna wydajność dysku sieciowego. Nie będę udawał, że było z tym absolutnie idealnie, bo czasem transfery potrafiły spaść na kilka chwil nawet do 15/20 MB/s. Przez większość czasu utrzymywały się one jednak w okolicach 100-110 MB/s, czyli summa summarum blisko limitu dla portu Ethernet zintegrowanego w RPI.
  • Wsparcie dla innych aplikacji — Ostatnim plusem (z pewnym “ale”, o czym nieco później) jest wsparcie dla innych aplikacji. Raspberry Pi jest jednym z popularniejszych SBC co sprawia, że oprócz samego NAS’a możemy łatwo zainstalować obok serwer Plex, usługę blokującą reklamy pihole, czy nawet serwer Minecrafta. Osobiście mam w planach zainstalować obok samby Syncthing i automatycznie synchronizować zapisy z emulowanych gier pomiędzy kilkoma urządzeniami (zobaczymy, jak to będzie działać w praktyce).

Minusy:

  • Możliwości podłączenia dysków/rozbudowy — Chyba największą wadą NAS’a stworzonego na podstawie Raspberry Pi są ograniczone możliwości podłączenia dysków. W oryginalnej formie mamy tutaj tylko 2 złącza USB 3 oraz 2 złącza USB 2 (z których raczej nie warto korzystać, bo będą ograniczały nasze prędkości). Co więcej, przy większej liczbie dysków Pi może mieć problemy z zasilaniem ich bezpośrednio z portów USB. W takim przypadku trzeba szukać dysków zasilanych zewnętrznie albo tzw. aktywnych hubów. Brak dedykowanych złączy SATA można teoretycznie rozwiązać poprzez zastosowanie specjalnych adapterów/obudów, ale takowe znacznie podnoszą koszt (do poziomu, który osobiście uznałbym już jako nieopłacalny).
  • Wsparcie tylko dla programowego RAID — Kolejna wada Raspberry Pi to brak wsparcia dla sprzętowego RAID’a. Tak jak pisałem nieco wyżej: można się tutaj programowym RAID’em (np. stworzonym przy pomocy programu mdadm), ale według informacji, które znalazłem w sieci, nie będzie on zbytnio niezawodny (zwłaszcza, jeśli ustawimy RAID dla dysków zewnętrznych, z których defacto zazwyczaj korzystamy przy malince).
  • Małe rezerwy wydajności — Ostatnią istotniejszą wadą są małe rezerwy wydajności po postawieniu NAS’a. Tak jak pisałem nieco wyżej: na RPI teoretycznie możemy zainstalować (obok Samby lub OMV) dziesiątki innych aplikacji. Problem pojawia się jednak w momencie, gdzie chcielibyśmy skorzystać z wielu takich aplikacji naraz. Przy pobieraniu i wysyłaniu plików do NAS’a zrobionego z malinki 4, obciążenie procesora sięga często 80-90, a czasem nawet 100%. Jeśli chcielibyśmy więc postawić na malince inne nieco bardziej wymagające serwisy, to przy takim przesyłaniu plików zaczynałby one walczyć o zasoby, co w efekcie skutkowałoby obniżeniem wydajności jednej bądź drugiej aplikacji. Dla mnie osobiście to nie jest wielki problem, bo planowałem stworzyć tylko prostego NAS’a (z ewentualnym dodatkiem SyncThing), ale jeśli ktoś oczekiwał, że na Pi spokojnie postawi dziesiątki różnorakich serwerów. to niestety może niemiło się zaskoczyć.

W dużym skrócie: RPI jest niezłe jako mały, prosty i energooszczędny NAS, ale jeśli oczekujemy bardziej zaawansowanych funkcji oraz możliwości uruchomienia wielu serwisów naraz bez obawy o wydajność, to raczej rozejrzałbym się za droższymi (dedykowanymi) rozwiązaniami.

Podsumowanie

To już chyba wszystko, co musicie wiedzieć, aby stworzyć serwer NAS z Raspberry Pi. Dajcie znać w komentarzach czy ostatecznie zdecydowaliście się na dysk sieciowy zrobiony z malinki a jeśli tak to, czy skorzystaliście w tym wypadku z Samby, czy też Open Media Vault!

Podobał Ci się artykuł i chcesz wesprzeć tworzenie podobnych treści? Możesz postawić mi kawę/herbatę (zapewne to drugie) w serwisie buycoffee.to

Zaproszenie na kawę

Komentarze

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *