W artykule o modernizacji domowej sieci komputerowej pisałem o moich planach zakupu dedykowanego serwera NAS: Synology RX418. Serwer ten jest o tyle ciekawy, iż pozwala na uruchomienie wielu dedykowanych usług, w tym maszyn wirtualnych.
Niestety, cena takiego zestawu (bez dysków twardych) zaczyna się od 2500 zł, a doliczając 4 dyski 4TB po ok 300 zł za sztukę, zamykamy się z kosztami w okolicach 4000 zł. Trochę dużo jak na sieć domową, gdzie wszystko co odpalam ma charakter póki co hobbistyczny.
Poszukałem jednak i znalazłem ciekawą alternatywę. Ponieważ jeden serwer NAS już mam (co prawda jedno-dyskowy Seagate 3TB, ale zawsze to jednak dysk sieciowy), zacząłem się rozglądać za jakimś budżetowym rozwiązaniem do wirtualizacji.
MiniPC na ratunek
Na rynku komputerów poleasingowych i używanych istnieje interesująca nisza z komputerami mini PC. Są to zwykle tzw. thin client – czyli komputery robocze współpracujące z serwerami. Są one malutkie, kompaktowe, ale jednocześnie potrafią mieć całkiem niezłe podzespoły.
Wśród najczęściej spotykanych można wyróżnić:
- Fujitsu QXXX
- Dell Wyse
- Lenovo MXXX
- i kilka innych
Ja wybrałem Lenovo M710q, ponieważ sprzedawca zapewniał sporo możliwych konfiguracji, mogłem więc wyklikać sobie taki jaki chciałem. Moim głównym założeniem była duża ilość pamięci RAM i jakiś w miarę sensowny dysk SSD z możliwością rozbudowy.
W efekcie kupiłem komputer o następujących parametrach:
- Procesor: Intel® CeleronG3930T 2,7GHz
- Pamięć RAM: 16GB DDR4
- Pojemność dysku: 240GB SSD
- Karta graficzna: Zintegrowana wydajna karta graficzna Intel HD Graphics 610
- System: Windows 10 Professional – system zainstalowany (klucz wbudowany w płytę główną), komputer gotowy do pracy.
- Rodzaje wejść / wyjść – panel przedni: 2 x USB 3.0 (1 do szybkiego ładowania), 2 x audio (1 wielofunkcyjne)
- Rodzaje wejść / wyjść – panel tylny: 4 x USB 3.0, 1x DisplayPort, 1xVGA, LAN
- Oryginalny zasilacz w zestawie
Koszt zakupu: 829 zł brutto (faktura na firmę, więc aż tak nie boli…).
Czy to mało czy dużo? Można kupić taniej jeżeli nie zależy nam na pamięci RAM i zdecydujemy się na mniejszy dysk twardy. Z drugiej strony w pakiecie dostajemy licencję na WIndows 10 Professional przypisaną do BIOSu – jak by nie patrzył kilka zł to jest warte…
Z mojego punktu widzenia inwestycja 4x tańsza niż dedykowany serwer Synology. Oczywiście zastosowanie trochę inne, ale też większe możliwości instalowania dowolnego oprogramowania.
Zanim opiszę zastosowanie tego mini PC, to wspomnę o jeszcze o jednej sprawie
Wszystko co pobiera prąd – kosztuje
Na rynku wtórnym pełno jest używanych serwerów – takich prawdziwych – do dużych szaf rackowych. Można je kupić za naprawdę niewielkie pieniądze. Trzeba jednak pamiętać, iż te serwery nie są projektowane by być energooszczędne – wręcz przeciwnie – one mają być po prostu niezawodne. Z tego powodu mają np. podwójne zasilacze i to takie po kilkaset W. Takie urządzenie podłączone do prądu w warunkach domowych i pracujące 24/7 staje się w ujęciu rocznym dość drogą zabawką (o ile nie zarabia na siebie).
Tymczasem Mini PC pracuje na zasilaczu laptopowym i pobiera max kilkadziesiąt W.
Postanowiłem sprawdzić jaki jest obciążenie na całej szafce rackowej, dlatego podłączyłem w torze zasilania odpowiedni miernik. Ku mojemu zaskoczeniu pokazuje on ok 60 W.
To wynik dużo lepszy niż się spodziewałem, bo w końcu jest tam kilka urządzeń aktywnych:
- switch Netgear POE zasilający 2 kamery HikVision
- dysk sieciowy Seagate
- Raspberry Pi 3
- Lenovo M710q
- NVR – czyli nagrywarka od kamer
Informacja o generowanym przez te wszystkie urządzenia zapotrzebowaniu na prąd jest o tyle istotna, iż w najbliższej przyszłości mam w planach włączyć w tor zasilania UPSa. Plan jest taki, by choćby w razie chwilowego braku prądu system (internet, monitoring, serwer lokalny) działał na zasilaniu awaryjnym przynajmniej 30 minut.
Proxmox – czyli system do zarządzania virtualkami
Jak wspomniałem wcześniej, na zakupionym Mini PC był zainstalowany Windows 10 Professional, jednak długo nie przetrwał, zastąpiłem go instalując Proxmox.
Proxmox Virtual Environment to rozwiązanie do zarządzania wirtualizacją serwerów typu open source oparte na QEMU/KVM i LXC. Możesz zarządzać maszynami wirtualnymi, kontenerami, klastrami o wysokiej dostępności, pamięcią masową i sieciami dzięki zintegrowanego, łatwego w użyciu interfejsu internetowego lub CLI.
https://www.proxmox.com/en/Nie będę opisywać samej instalacji Proxmox, bo filmów o tym na YT jest pełno. Opiszę za to do czego ja go używam.
Dostęp do NAS
Zanim jeszcze stworzyłem pierwszą wirtualkę, dodałem jako zasób sieciowy główny katalog publiczny na moim NASie. Dzięki temu mogę zaoszczędzić miejsce na dysku lokalnym, a obrazy ISO czy backupy wirtualek trzymam na dysku sieciowym. Nie bez znaczenia jest też możliwość podmontowania tego zasobu w ramach serwerów wirtualnych, ale o tym później.
Druga instancja Pi-Hole
W poprzednim artykule opisałem zalety własnego serwera DNS – w oparciu o rozwiązanie Pi-Hole. Ta instancja jest postawiona na Raspberry Pi. Postanowiłem jednak utworzyć instancję zapasową na osobnej maszynie – i tu właśnie mamy zastosowanie dla pierwszego serwera wirtualnego.
„Two is one, and one is none” – jak mówią Indianie – dlatego warto mieć tak najważniejsze rozwiązanie jak serwer DNS zdublowane. Dzięki temu, jeżeli któreś urządzenie trzeba zrestartować, lub na jednym coś padnie, drugie wciąż powinno działać. Ma to oczywiście odzwierciedlenie w konfiguracji routera internetowego.
Prometheus i Grafana
Druga maszyna wirtualna obsługuje instancję z Prometheusem (czyli oprogramowaniem do zbierania metryk z różnych systemów) a także Grafanę – czyli świetne narzędzie do obrazowania danych w postaci interaktywnych wykresów. To rozwiązanie wciąż rozwijam i w wolnych chwilach staram się rozbudowywać o kolejne wizualizacje. O tym pewnie jeszcze kiedyś napiszę.
Lokalny serwer Minecraft
Ponieważ moi synowie bardzo lubią grać w Minecrafta, na kolejnej wirtualce uruchomiłem lokalny serwer tej gry. Dzięki temu chłopaki mogą grać w swoim własnym świecie, a dzięki DDNS i przekierowaniu portu na firewallu w routerze będą mogli zaprosić do gry swoich znajomych.
Minecraft to tylko jedna z wielu opcji – zainteresowanych tematem zapraszam na stronę Linux Game Server Managers – gdzie znajdziecie opis instalacji wielu różnych serwerów do gier multiplayer.
Serwer multimedialny PLEX
Póki co ostatnią wirtualkę okupuje serwer PLEX – czyli multimedialny kombajn pozwalający na udostępnienie plików multimedialnych w sieci domowej. Po instalacji i konfiguracji dodałem biblioteki filmów i muzyki z NASa, a aplikację PLEX zainstalowałem np. na MiBox – dzięki temu mam dostęp do domowej biblioteki mediów z sypialni.
Aplikacja Plex jest dostępna na szeroką gamę urządzeń, telefony, komputery jaki i Smart TV.
Ogromnym plusem takiego dostępu do multimediów jest możliwość transkodowania filmu w locie. jeżeli nasze urządzenie działa na niezbyt silnym WiFi lub na mniejszym ekranie, to może nie ma potrzeby oglądania filmu w 4K. Plex umożliwia wybór formatu i transkoduje taki stream w czasie rzeczywistym – dzięki temu choćby na WiFi film się nie zacina.
Co dalej?
Póki co rozglądam się za ciekawym i przydatnym oprogramowaniem dla sieci lokalnej.
Trafiłem na ogromny spis oprogramowania, które można lokalnie zainstalować:
https://github.com/awesome-selfhosted/awesome-selfhosted
Polecam też artykuł, który mnie zainspirował do takiej zabawy:
https://jaszczur.eu/czym-jest-self-hosting
Jeśli ktoś jest zainteresowany wykorzystaniem Mini PC jako klastra komputerów, to tu mogę polecić fajny artykuł i film na YT:
https://www.servethehome.com/introducing-project-tinyminimicro-home-lab-revolution/