Lenovo ThinkCentre M700 Tiny jako homelab?
W codziennej pracy często zajmuję się konfiguracją i obsługą serwerów VPS lub rozwiązań chmurowych. Konsola i protokół SSH są mi znane. Nie posiadałem jednak żadnego rozwiązania w domu, które pozwoliłoby mi testować rozwiązania na natywnym Linuxie. Windowsowe środowisko oparte na XAMPPie lub podobnym zbyt często zawodziło przy produkcji stron internetowych, najczęściej problem wynikał z rozsypanej bazy MySQL. Oczywiście, można również odpalić WSL dla Windows i skorzystać z wirtualki Linuxa. Miałem jednak jeszcze jeden problem, raz pracuję na desktopie, raz na laptopie, ciągła synchronizacja plików nie jest idealnym rozwiązaniem.
W 2023 roku postanowiłem kupić, na próbę, mały komputerek od Lenovo.
Jego konfiguracja to:
- Procesor: Intel Celeron G3900T 2 x 2,6 GHz (2 rdzenie / 2 wątki)
- Pamięć operacyjna: 8 GB SODIMM DDR4 PC4-2133
- Dysk twardy: 500 GB SATA
- Złącze M.2: Tak
- Napęd optyczny: BRAK
- Komunikacja: LAN (RJ45) 10/100/1000
- System operacyjny: Windows 10 Pro
- Wymiary: (szer. x gł. x wys.) : 34,5 x 182,9 x 179 mm
- Waga: 1,5 kg
Nie planowałem żadnych szalonych akcji, na wstępie zainstalowałem Linux Mint, za pomocą SMB utworzyłem udział sieciowy i tak z malutkiego M700 powstał mini-NAS. Wtedy również pomyślałem, że w zasadzie mogę hostować tam lokalnie strony internetowe i tworzone aplikacje internetowe. Zainstalowałem Apache’a, obsługę GITa i tak chwilę to działało. Kolejnym krokiem był pomysł, aby serwować chmurę Nextcloud, problemem jednak jest zmienne IP. Tu z pomocą przyszła usługa No-IP.com, która synchronizuje zmienne IP z wykupioną domeną. Nextcloud serwowany jest natywnie w postaci typowej instalacji. Kolejne pomysły przyniosły instalację w postaci kontenerów Docker:
- Home Assistant – automatyzacja domu, statystyki zużycia energii, podgląd kamer
- Frigate – rejestrator obrazów z kamer
- Portainer – podgląd na kontenery Docker
- Mosquitto – agent do obsługi powiadomień na telefon między Frigate a Home Assistant
Jak widać zrobiło się dość skomplikowanie. 2 rdzeniowy Celeron obsługujący dodatkowo 2 kamery miał ciężko. Obsługa zdarzeń we Frigate powodowała 80% użycie CPU. Doczytałem w internetach o urządzeniu Coral Accelerator, który występuje również w wersji USB.

Szybka instalacja sterowników pod Ubuntu i CPU miało lżej. Zajęcie procesora spadło, tak samo jak pobór prądu. Nie było jednak idealnie. W tym celu kolejny upgrade zakładał wymianę procesora na kompatybilny i5-6500 4 rdzenie, 4 wątki.

W rezultacie doszły jeszcze 2 kamery, obecnie komputerek obsługuje 4, hostuje chmurę, lokalne projekty, parę plików, robi za doraźny backup, inaczej mówiąc kombajn.
Zużycie prądu w czasie idle’a kształtuje się mniej więcej tak:

Miesięcznie wychodzi w okolicach 10-12kWh, w zależności od stopnia obciążenia aktualnym zadaniami.
BTOP pokazuje nam takie dane:

Jak widać 8GB RAM to jednak ciut mało i tu przydałby się kolejny upgrade, producent deklaruje obsługę max 32GB RAM.
Od roku planuje dołożyć dedykowane urządzenie pod typowego NAS’a, aby oddzielić obsługę plików od obsługi kamer i lokalnej produkcji stron internetowych. Rozwiązania Tiny (SFF) mają jedną wadę, brak możliwości rozbudowy o kolejne dyski na złączach SATA. Mają co prawda wiele złącz USB-A 3.0, ale nie jest to rozwiązanie idealne. Niewątpliwą zaletą jest zużycie prądu, w zasadzie żadne desktopowe rozwiązanie nie jest w stanie zbliżyć się z kosztami. Nie wiem czy jestem gotów na rozwiązania typu Synology czy QNAP, nie chcę być uzależniony od producentów i ich oprogramowania. Jak zwykle przy planowaniu są dwie opcje, może być drogo lub bardzo drogo.
Czy Lenovo M700 nadaje się na pierwszy homelab? Jak najbardziej polecam.
Od 2 lat nieprzerwanie służy, bez większych historii, pomijając fakt że sam wysypałem system instalując kolejne środowisko graficzne. Ale od czego są backup’y? Timeshift załatwił sprawę i w 15min wszystko wróciło do normy.