Raspberry Pi to częsty wybór na komputer, który obsługuje inteligentny dom: broker MQTT, Zigbee2MQTT, Node-RED, platformę automatyki, czasem małą bazę danych. Zużywa mało prądu i zajmuje mało miejsca. Kiedy jednak taki serwer przestaje działać, przyczyną rzadko jest procesor. Najczęściej winna jest karta SD, zasilacz albo przegrzanie. Poniżej opisuję wybory sprzętowe, od których zależy, czy serwer na Raspberry Pi będzie działał latami, czy co kilka miesięcy trzeba będzie go ratować. Liczby pochodzą z oficjalnej dokumentacji Raspberry Pi.
Pamięć: najczęstsze źródło awarii
Dlaczego karty SD psują się w serwerach
Domowy serwer zapisuje dane bez przerwy: dzienniki, zmiany w bazie, trwałe wiadomości MQTT, pliki stanu. Karty SD projektuje się z myślą o aparatach, które od czasu do czasu zapisują duże pliki, a nie o ciągłym strumieniu małych, losowych zapisów. Pamięć flash zużywa się z każdym zapisem, a tanie karty są mało odporne zarówno na to zużycie, jak i na nagły zanik zasilania. Typowy objaw to system, który nie uruchamia się po przerwie w dostawie prądu, albo system plików przełączony w tryb tylko do odczytu.
W dokumentacji Raspberry Pi napisano wprost, że jakość karty SD ma kluczowe znaczenie dla wrażeń z użytkowania. Oficjalne karty Raspberry Pi mają klasę wydajności aplikacji A2 i obsługują kolejkowanie poleceń. Według specyfikacji na Raspberry Pi 5 osiągają 5000 operacji odczytu i 2000 operacji zapisu na sekundę (IOPS) dla losowych bloków 4 kB. Jeśli wybierasz kartę SD, kup dobrą kartę A2 od znanego producenta, a nie najtańszą z dostępnych.
Lepiej: dysk SSD
Serwer pracujący całą dobę lepiej uruchamiać z dysku SSD:
- Raspberry Pi 5: dysk NVMe na nakładce M.2 HAT+ (mieści dyski 2230 i 2242) albo M.2 HAT+ Compact (tylko 2230). Złącze to jedna linia PCIe 2.0 o szczytowej przepustowości 500 MB/s, czyli więcej, niż potrzebuje domowy serwer. Oficjalny dysk Raspberry Pi SSD 256 GB ma według producenta 40 000 IOPS przy odczycie i 70 000 IOPS przy zapisie losowych bloków 4 kB, o rząd wielkości więcej niż karta SD.
- Raspberry Pi 4 i 3B+: uruchamiaj system z dysku SSD na USB w dobrej obudowie. Rozruch z pamięci USB obsługują wszystkie modele od Raspberry Pi 3B+.
Dla systemu automatyki z bazą danych najważniejsza jest różnica w szybkości losowych zapisów. Im szybciej kończy się zapis, tym krócej trwa moment, w którym zanik zasilania może przerwać go w połowie.
Rozruch Raspberry Pi 5 z dysku NVMe
Oficjalna procedura w skrócie:
- Zaktualizuj system:
sudo apt update && sudo apt full-upgrade. Sprawdź wersję programu rozruchowego poleceniemsudo rpi-eeprom-update. Jeśli jest starsza niż z 6 grudnia 2023 roku, wybierz wsudo raspi-configpozycję Advanced Options > Bootloader Version > Latest, uruchomsudo rpi-eeprom-update -ai zrestartuj urządzenie. - Wyłącz zasilanie i zamontuj nakładkę M.2 HAT+ z dyskiem. Zawsze odłączaj zasilanie przed podłączeniem lub odłączeniem urządzenia M.2.
- Sprawdź, czy system widzi dysk:
ls -l /dev/nvme*powinno pokazać/dev/nvme0i/dev/nvme0n1. - Wgraj Raspberry Pi OS na dysk NVMe za pomocą Raspberry Pi Imager. Program działa także na samym Raspberry Pi.
- Wyjmij kartę SD albo ustaw w
raspi-configpozycję Advanced Options > Boot Order > NVMe/USB boot, żeby rozruch nie zaczynał się od karty.
Można włączyć PCIe trzeciej generacji, ale w dokumentacji jest ostrzeżenie, że Raspberry Pi 5 nie ma do tego certyfikatu, a połączenie może być niestabilne. W serwerze stabilność jest ważniejsza niż dodatkowa prędkość.
Zasilanie: wybierz właściwy zasilacz
Zbyt niskie napięcie powoduje losowe zawieszenia, rozłączanie urządzeń USB i uszkodzenia systemu plików. Trudno to wykryć, bo Raspberry Pi często dalej działa. Zalecane zasilacze według oficjalnej dokumentacji:
| Model | Zalecany zasilacz | Maksymalny łączny prąd USB |
|---|---|---|
| Raspberry Pi 4 | 3,0 A (5,1 V, USB-C) | 1,2 A |
| Raspberry Pi 5 | 5,0 A (zasilacz USB-C 27 W) | 1,6 A, a z zasilaczem 3 A tylko 600 mA |
Szczegół dotyczący Raspberry Pi 5 łatwo przeoczyć. Z ładowarką do telefonu albo dowolnym zasilaczem, który nie dostarcza 5 A przy 5 V, łączny prąd wszystkich urządzeń USB w Raspberry Pi 5 jest ograniczony do 600 mA. Dysk SSD na USB razem z koordynatorem Zigbee może przekroczyć ten limit. Użyj oficjalnego zasilacza 27 W albo takiego, który wyraźnie obsługuje tryb 5 V i 5 A. Żaden model Raspberry Pi nie obsługuje też USB-PPS.
Żeby sprawdzić, czy wystąpiły problemy z zasilaniem, uruchom vcgencmd get_throttled. Wynik inny niż throttled=0x0 oznacza, że od uruchomienia systemu doszło do spadku napięcia albo obniżenia taktowania.
Mały zasilacz awaryjny (UPS) albo powerbank z ładowaniem przelotowym chroni przed krótkimi przerwami w dostawie prądu. Ważniejsze jest jednak, żeby zapisy były bezpieczne, kiedy prąd jednak zniknie: dysk SSD, system plików z księgowaniem (domyślny ext4 wystarczy) i kopie zapasowe.
Temperatura: unikaj obniżania taktowania
Każdy model Raspberry Pi ma wbudowaną kontrolę temperatury. Według dokumentacji między 80 a 85 °C taktowanie rdzeni Arm stopniowo spada, a przy 85 °C zwalniają zarówno procesor, jak i układ graficzny. Ten mechanizm chroni układ, więc radiator nie jest konieczny, żeby uniknąć uszkodzenia. Serwer, który co popołudnie zwalnia w nasłonecznionej szafce, jest jednak po prostu wolnym serwerem.
- W Raspberry Pi 5 zamontuj Active Cooler albo użyj oficjalnej obudowy z wentylatorem. Jeśli planujesz dysk NVMe, pamiętaj, że Active Cooler mieści się pod standardową nakładką M.2 HAT+, ale nie pod wersją Compact.
- Nie zamykaj Raspberry Pi w szafce bez przepływu powietrza obok routera i serwera NAS.
- Sprawdź temperaturę poleceniem
vcgencmd measure_tempw czasie największego obciążenia.
Mniejsze szczegóły
- Zegar czasu rzeczywistego. Raspberry Pi 5 ma wbudowany zegar RTC, który może podtrzymywać akumulatorek w formie pastylki podłączony do złącza J5. Bez niego po przerwie w zasilaniu zegar wskazuje zły czas, dopóki system nie pobierze czasu z sieci. Ma to wpływ na dzienniki i automatyzacje zależne od czasu uruchamiane zaraz po starcie. Ładowanie akumulatorka jest domyślnie wyłączone i trzeba je włączyć.
- Ethernet zamiast Wi-Fi. Serwer powinien być podłączony kablem. Znika wtedy cała grupa problemów z łącznością, a moduł radiowy jest wolny do innych zadań.
- Adaptery radiowe USB. Podłącz adapter Zigbee albo Thread przez krótki przedłużacz USB, z dala od portów USB 3 i dysku SSD, które mogą zakłócać łączność w paśmie 2,4 GHz.
- Kopie zapasowe poza urządzeniem. Dysk SSD psuje się rzadziej niż karta SD, ale też się psuje. Regularnie kopiuj konfigurację i dane na inny komputer albo serwer NAS.
Kiedy wybrać coś innego niż Raspberry Pi
Jeśli planujesz wiele kontenerów, lokalnego asystenta głosowego albo analizę obrazu z kamer, porównaj cenę kompletnego zestawu z Raspberry Pi 5 (płytka, dysk SSD, nakładka, obudowa, chłodzenie i zasilacz 27 W) z ceną małego komputera x86 z wbudowanym dyskiem SSD. Różnica bywa mniejsza, niż się wydaje, a mały komputer ma większy zapas mocy. Raspberry Pi nadal dobrze sprawdza się jako niewielki, energooszczędny serwer z kilkoma usługami.