Blog (83)
Komentarze (2k)
Recenzje (1)

Raspberry Pi CM4 jako serwer plików?

@cyrylloRaspberry Pi CM4 jako serwer plików?18.03.2021 04:37

Czy Raspberry Pi może być wydajnym serwerem plików? Tak o ile wybierzemy nowa wersję Compute Mode 4 wraz z płytą rozszerzeń CM4IO, która posiada port PCIe. Nowa odsłona popularnego mikrokomputera w wersji CM4 wreszcie pozwala na więcej.

Compute Mode 4 w wielu opcjach

Nowy moduł dostępny jest w różnych konfiguracjach. To co łączy wszystkie wersje to ten sam procesor oparty na układzie Broadcom BCM2711, który jest 64 bitowym układem posiadającym 4 rdzenie każdy po 1,5GHz oraz złącza 2x 104 pin-ów, które posiadają wyprowadzenia interfejsów:

  • Gigabit Ethernet
  • 1x USB 2.0
  • 28 GPIO
  • dual HDMI
  • 2-liniowy MIPI DSI dla ekranu
  • 2-liniowy MIPI CSI dla kamery
  • 4-liniowy MIPI DSI dla ekranu
  • 4-liniowy MIPI CSI dla kamery
  • PCIe

Ilość wielkości RAM zależna jest od wersji jaką wybierzemy, dostępne opcje od 1GB do 8GB. Są również wersje, które posiadają pamięć eMMC o różnych pojemnościach od 4GB do 32GB. Jak również opcjonalne wbudowany moduł Bluetooth i dwuzakresowym Wi-Fi.

Pełna specyfikacja i opcje dostępnych wersji można zobaczyć na oficjalnej stronie raspberrypi.org

Płyta rozszerzeń CM4IO

Sam moduł CM4 nie posiada praktycznie nic poza wyprowadzonych złączach pinów. Aby można było korzystać z niej należy zaopatrzyć się w płytę rozszerzeń i tutaj skupimy się na oficjalnej podstawce CM4IO. W przeciwieństwie do wcześniejszych wersji CM których ceny podstawek były powyżej 1 tyś zł to cena dla wersji 4 jest naprawdę niska i wynosi około 170zł, dzięki czemu dla zwykłego kowalskiego cena jest akceptowalna.

Płyta posiada załącza:

  • wejście zasilania: od 5 V do 12 V
  • 2x HDMI 2.0
  • 2x MIPI DSI do podłączenia ekranów
  • 2x MIPI CSI-2 do podłączenia kamer
  • 2x USB 2.0
  • standardowe złącza GPIO 2x 20
  • konektory pod nakładkę PoE
  • standardowy konektor pod wiatrak
  • wyjście zasilania 12/5V na zasilanie np. dysków
  • gigabit Ethernet ze wsparciem PoE (wymaga dedykowanej nakładki PoE HAT)
  • PCIe 2
  • wejście kart microSD (tylko dla wersji CM4 Lite bez pamięci eMMC)
  • gniazdo baterii RTC

Pełna specyfikacja i dokumentacja dostępna na stronie projektu raspberrypi.org

Instalacja systemu na CM4 z pamięcią eMMC jest nieco bardziej trudniejsza niżeli instalacja obrazu na kartę SD. Opis instalacji opisany jest na stronie raspberrypi.org

W porównaniu do podstawowej wersji RPi 4 płyta rozszerzeń jest większa i ma wymiar 160x90mm. Istnieją już inne płyty rozszerzeń dedykowane dla CM4, które są mniejsze lub dedykowane do konkretnych zastosowań.

PCIe i karta z kontrolerem SATA

Podstawka CM4IO posiada złącze PCI Express 2.0 ze złączem x1 dzięki czemu mamy możliwość podłączenia rożnych kart poprzez to złącze. Mi od razu do głowy wpadł pomysł użycia karty ze złączami SATA aby można było podpiąć dyski SSD lub zwykłe "talerzówki". Ale nie jest to jedna opcja można używać kontrolerów RAID, kart dźwiękowych i innych, które pracują na szynie x1 PCIe.

Ja wybrałem kartę PCIe z konwerterem SATA III z 2 złączami opartym na tanim układzie Marvell 9125. Kartę zamówiłem z aliexpress-u za około 20zł.

Moduł nie jest domyślnie wspierany w kernelu systemu raspbian i należy dodać samemu moduły do naszego kernela. Informacje jak tego dokonać znalazłem na GitHub-ie Jeff'a Geerling, który jest znanym mi Youtuberem i podjął się sprawdzenia różnych kontrolerów SATA pod CM4IO.

Poniżej wkleiłem oryginalne polecenia jakie należy wykonać na naszej CM4 aby dodać i skompilować kernel z odpowiednim modułem.

# Instalacja zależności
sudo apt install -y git bc bison flex libssl-dev make libncurses5-dev

# Klonujemy źródła kernela dla rpi
git clone --depth=1 https://github.com/raspberrypi/linux

# Ustawiamy konfigurację 
cd linux
export KERNEL=kernel7l 
make bcm2711_defconfig

#Ustawiamy .config za pomocą menuconfig
make menuconfig
# Włączamy  odpowiednio zaznaczając poniższe opcje :
# Device Drivers:
#   -> Serial ATA and Parallel ATA drivers (libata)
#     -> AHCI SATA support
#     -> Marvell SATA support
#
# Dodatkowo OPCJONALNIE można włączyć inne kontrolery lub opcje:
# CONFIG_ATA=m
# CONFIG_ATA_VERBOSE_ERROR=y
# CONFIG_SATA_PMP=y
# CONFIG_SATA_AHCI=m
# CONFIG_SATA_MOBILE_LPM_POLICY=0
# CONFIG_ATA_SFF=y
# CONFIG_ATA_BMDMA=y
# CONFIG_SATA_MV=m

#edytujemy .config
nano .config
# możemy dodać naszą końcówkę nazwy kernela  w CONFIG_LOCALVERSION i zapisujemy 

# Budujemy  kernel  trrochę to potrwa
make -j4 zImage modules dtbs

# a na koniec instalujemy i kopiujemy wszystko
sudo make modules_install
sudo cp arch/arm/boot/dts/*.dtb /boot/
sudo cp arch/arm/boot/dts/overlays/*.dtb* /boot/overlays/
sudo cp arch/arm/boot/dts/overlays/README /boot/overlays/
sudo cp arch/arm/boot/zImage /boot/$KERNEL.img

Sama kompilacja trwa jakieś około 30 minut. Lecz po wykonaniu wszystkich operacji i restarcie podłączone dyski będą widoczne w systemie. Jeśli posiadamy inny kontroler na innym chipie można poszukać swój i włączyć go jak również można włączyć opcjonalne funkcje.

Czekając na kompilacje polecam obejrzeć wideo o innych kartach rozszerzeń dla CM4

Trzeba pamiętać aby po każdej aktualizacji kernela z repozytorium na nowo pobrać źródła i ponownie przekompilować i skonfigurować obsługę.

Instalacja OpenMediaVault

Teraz można pomyśleć nad konfiguracją różnych usług jak samba czy nextcloud lub po prostu pomyśleć o NAS-ie z użyciem OpenMediaVault.

Oprogramowanie można zainstalować za pomocą poniższego polecenia, które uruchomi skrypt i proces instalacji.

Opis instalacji i konfiguracji wg tego skryptu znajdziecie pod adresem pimylifeup.com

wget -O - https://raw.githubusercontent.com/OpenMediaVault-Plugin-Developers/installScript/master/install | sudo bash

Po wydaniu polecenia zostaną zainstalowane niezbędne pakiety oraz sam OMV. Instalacja zajmie trochę czasu. Podczas instalacji może rozłączyć połączenie bo skrypt konfiguruje wszystkie dostępne interfejsy sieciowe. Dlatego warto ustawić na sztywno na swoim routerze adres IP. W razie czego należy ponowić polecenie a wtedy wszystko zakończy się poprawnie.

Jeśli wszystko pójdzie dobrze pozostanie nam tylko zrestartować system.

sudo reboot

Po ponownym uruchomieniu możemy już zalogować się do panelu administracyjnego wchodząc na adres IP naszej maliny. Dane do logowania to użytkownik admin i hasło openmediavault

Teraz możemy stworzyć system plików na dyskach oraz udostępnić je za pomocą jednej z usług np. Samba.

Testy transferów z CM4, CM4IO i Marvell 9125

Postanowiłem przy okazji sprawdzić jakie transfery jesteśmy w stanie wyciągnąć na takim zestawie. Nie spodziewałem się szaleństwa na tym kontrolerze ale liczyłem na maksymalną przepustowość dla karty Gigabitowej w mojej sieci. Podłączyłem jeden dysk SSD GoodRam SSDPB-S400U-120-80 do testów i udostępniłem go w usłudze samba.

Test wykonany za pomocą narzędzia Helios LanTest
Test wykonany za pomocą narzędzia Helios LanTest

Przy kopiowaniu w eksploratorze Windows łącze 1GbE wysycało się. Zdarzały się zazwyczaj pod koniec kopiowania spadki do około 60% przepustowości.

kopiowanie w eksploratorze Windows
kopiowanie w eksploratorze Windows

Przetestowałem również lokalnie

  • hdparm 303MB/s
  • dd 4k 41 MB/s
  • dd 169MB/s

Wg producenta dysku odczyt/zapis maksymalny to 550/530MB/s.

Podsumowując. Wg mnie Raspberry Pi Compute Mode 4 radzi sobie całkiem nieźle z obsługą i prędkością wymiany danych poprzez złącze PCIe i sprawdzi się bardzo dobrze jako serwer plików do domu ale również bez problemu skorzystamy z konteneryzacji Docker'a instalując popularne usługi i oprogramowania jak Nextcloud, serwer www itp.. Brakuje póki co dobrej obudowy ale zawsze można spróbować zaprojektować i mając dostęp do drukarki 3D wydrukować sobie ją.

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.