🇬🇧 Go to english version of this post / Przejdź do angielskiej wersji tego wpisu
Omówiłem już jak dość prosto i stosunkowo niskim kosztem ogarnąć sobie serwer domowy bazując na platformach Raspberry Pi i podobnych. Istnieją jednak również inne, nieco bardziej ambitne, rozwiązania. Przykładem może być serwer domowy zbudowany w oparciu o urządzenia, które ze względu na swoją specyfikę lubię nazywać terminalami. Takie urządzenia to np. Intel NUC. Oczywiście taki NUC w sensownej konfiguracji będzie dość sporo kosztował, szczególnie w odniesieniu do RPi. Jednak jest wyjście, aby nie zrujnować swojego portfela! Jest nim zakup sprzętu poleasingowego, powystawowego lub po prostu używanego. Jest wiele firm, które oferują sprzęt tego typu z drugiej ręki, dając przy tym gwarancję nawet na 6 miesięcy. Sporo ciekawych ofert można znaleźć chociażby na Allegro.
Terminal vs Raspberry Pi
Postanowiłem obrazowo przedstawić zady i walety terminali względem opisywanego wcześniej Raspberry Pi.
Zalety
- Mocniejsze procesory
- Procesory w architekturze x86 (a nie tylko ARM)
- Procesor montowany w normalnym socket’cie, np. LGA 1150, a nie wlutowany na płycie głównej, co pozwala na jego wymianę
- Więcej RAMu (rozsądne cenowo są rozwiązania nawet z 16GB)
- Zwarta bryła ze zintegrowanym chłodzeniem i przestrzenią na dyski
- Można bardziej zaawansowana wirtualizacja
Wady
- Cena, szczególnie za sensowną specyfikację
- Trzeba raczej celować w sprzęt używany, żeby nie zbankrutować
- Większe zużycie energii
- Kultura pracy – chłodzenie aktywne (wentylator)
- Większy rozmiary
Jak widać to rozwiązanie ma swoje zalety, ale ma też wady. Jednak jeżeli ktoś na poważnie chce wejść w self-hosting to myślę, że i tak skończy się to na zakupie terminala.
Sensowne parametry
Ze względu na stosunek ceny do jakości, bardzo dużą popularnością cieszy się Dell Wyse 5070. Jeżeli stawiamy na optymalizację budżetu to zdecydowanie polecam pochylić się nad tą opcją. Jednakże według mnie 8GB RAMu to zbyt mało. Jakbym miał określić moje minimalne parametry, od których zaczynamy mówić o naprawdę fajnym sprzęcie, to będą to:
- 4 rdzeniowy procesor w architekturze x86,
- 16GB RAM,
- dysk SSD 512GB,
- port Ethernet (RJ45) w standardzie 1 Gbps.
To takie minimum, które pozwoli uruchomić całkiem niezłe 4 maszyny wirtualne (oczywiście to tylko przykład, bo zasoby można dzielić wedle uznania), z których każda dostanie po jednym dedykowanym rdzeniu i 4GB RAMu. Będzie to podobne doznanie do posiadania czterech Raspberry Pi 4B, a cena wcale nie będzie tak bardzo odjechana, co za chwilę pokażę.
Na własnym przykładzie
Jako przykład najlepiej mi będzie przytoczyć to co sam nabyłem jakiś czas temu. Swój terminal kupiłem jako powystawowy na Allegro. Jakby ktoś był zainteresowany to dla ułatwienia przygotowałem link do Allegro z odpowiednio wybranymi filtrami wyszukiwania, który może stanowić dobrą bazę do rozpoczęcia poszukiwań. Znajdują się tam też komputery znacznie większego formatu (wielkości normalnego PC) niż rozwiązania, o których rozmawiamy, bo spełniają one wymagania sprzętowe określone w filtrach wyszukiwania, a nie da się ich odfiltrować w żadne sposób pod kątem rozmiaru czy nawet typu, więc niestety tą część roboty musisz, drogi Czytelniku, wykonać sam. Na marginesie, nie jest to link w żaden sposób afiliacyjny, więc nie mam żadnych benefitów z tego, że go tutaj wkleiłem.
Wracając do tematu, terminal jaki kupiłem to Fujitsu Q920 wyposażony w 4-rdzeniowy procesor Intel i5-4590T, a więc leciwa ale dalej szanowana 4-ta generacja, o taktowaniu 2.0GHz (max. 3.0 GHz) i 16GB pamięci RAM (to było chyba dla mnie najważniejsze). Zapłaciłem za niego w granicach 630 zł, ale było to jakiś czas temu, więc ceny obecnie mogą być nieco innego, jednak rząd wielkości powinien zostać taki sam, a jest to już pewnego rodzaju cenna informacja. Musiałem do niego dokupić jeszcze dysk SSD w standardzie rozmiarowym 2.5″ i pojemności 512GB (stwierdziłem, że tyle mi wystarczy). Tutaj warto podkreślić, że postanowiłem nieco dopłacić do dysku typu SLC, który charakteryzuje się większą wytrzymałością, dlatego jest dedykowanym rozwiązaniem do zastosowań serwerowych. SLC wiąże się też z nieco wyższą kwotą, ale obecne ceny pamięci są tak niskie, że spokojnie z takim dyskiem zmieściłem się w 200 zł.
Instalacja Proxmox
W mojej ocenie najlepszym co można zainstalować jako system operacyjny dla takiego terminala jest Proxmox. Jest to bezpłatne środowisko do wirtualizacji o otwartym kodzie źródłowym, działające w oparciu o system Debian. W jednym z poprzednich wpisów pisałem o Dockerze. Proxmox to taki bardziej zaawansowany Docker, który pozwala stawiać nie tyle kontenery (podsystemy) z usługami, co całe pełnoprawne systemy operacyjne. To bardziej jak uruchamianie wielu płytek Raspberry Pi w jednym terminalu. Proxmox ma też swoje wymagania, na które trzeba zwrócić uwagę przy zakupie terminala, główne z nich to:
- 64 bitowa architektura procesora,
- wsparcie dla wirtualizacji (w przypadku procesorów Intela – Intel-VT, a dla AMD – AMD-V)
Instalacja jest banalnie prosta i analogiczna do tej, którą opisałem we wpisie o konfiguracji serwera domowego opartego o platformy Raspberry Pi i podobne. W skrócie, pobieramy obraz Proxmox ze strony twórców i wgrywamy na pendrive przy pomocy programu balenaEther, tworząc tym samym bootowalne USB, które następnie wpinamy do terminala i uruchamiamy go. Tutaj sytuacja wygląda trochę inaczej, bo nie możemy wykonać tzw. headless setup tak jak to robiliśmy w przypadku RPi. Niezbędne nam będą przynajmniej monitor i klawiatura. Instalacja Proxmox jest dość prosta, ale w skrócie hasłowo przejdę przez cały proces.
- Ekran powitalny, na którym wybieramy oczywiście Install Proxmox VE.
- Akceptacja licencji.
- Wybór dysku, na który ma zostać zainstalowany.
- Wybór lokalizacji (państwo/miasto) i strefy czasowej.
- Ustawienie hasła administratora oraz adresu e-mail, na który będą przychodziły wszystkie istotne komunikaty związane z naszym serwerem.
- Ustawienia sieciowe – tutaj dla każdego będzie to wyglądało inaczej. Najpierw wybieramy kartę sieciową jaka ma być wykorzystana (istotne, jeżeli nasz serwer posiada więcej niż jedną kartę, nie muszę chyba mówić, że zalecane jest podłączenie serwera poprzez LAN bezpośrednio do naszego routera i wybranie karty sieciowej odpowiadającej interfejsowi kablowemu, a nie karty odpowiedzialnej za komunikację bezprzewodową). Następnie dość istotne jest ustawienie odpowiedniego Hostname, który będzie identyfikatorem naszego serwera w sieci lokalnej. Później już należy tylko skontrolować czy automatycznie podany adres IP w sieci lokalnej, brama dostępowa (gateway) i serwer DNS, obsługujący nasz ruch sieciowy, zostały wskazane prawidłowo. Proxmox zawsze próbuje sam ustalić wartości domyślne, które w razie potrzeby należy skorygować.
- Ekran podsumowujący wszystko co ustawiliśmy. Warto sprawdzić wszystko jeszcze raz i jeżeli jest OK to rozpocząć instalację.
- Trzeba się niestety uzbroić w cierpliwość, bo proces nie jest błyskawiczny. Dużo też zależy od mocy naszego urządzenia i chociażby szybkości dysku.
- Po zakończeniu instalacji (jeżeli nie odznaczyliśmy tej opcji to) urządzenie powinno się samo zrestartować.
- Prawidłowo uruchomiony serwer powinien wyświetlić na monitorze następujący komunikat:
Welcome to the Proxmox Virtual Environment. Please use your web browser to configure this server – connect to:
https://[adres ip serwera]:8006/
Zgodnie z treścią komunikatu wystarczy przepisać podany adres i na innym komputerze wejść do panelu zarządzania środowiskiem Proxmox. W tym momencie można też odłączyć monitor i klawiaturę od serwera, bo nie będą one już potrzebne. Dodatkowo nie trzeba się martwić o ostrzeżenia przeglądarki, które zostaną prawdopodobnie wyświetlone po wejściu na podany adres. Chodzi o to, że używamy połączenia HTTPS, a nasz serwer nie posiada certyfikatu SSL, więc przeglądarka zgłosi, że coś jest nie tak i ostrzeże nas o tym ogromnym komunikatem. Panel zarządzania naszym serwerem będzie dostępny jedynie z poziomu sieci lokalnej, więc nie ma potrzeby bawienia się w jakiekolwiek certyfikaty, a wszelkie komunikaty tego typu należy przeklikać przyciskami o treści znam ryzyko i chcę je zignorować lub coś w tym stylu.
Ciąg dalszy nastąpi…
Niestety ten wpis zaczął się robić niewygodnie długi, a ja chciałbym przekazać jeszcze sporo informacji, więc na tym etapie zatrzymuję się i zapraszam do kolejnego wpisu, w którym opiszę jak uruchomić pierwszą maszynę wirtualną w świeżo zainstalowanym środowisku Proxmox.
Chłop Marcin :fediverse:
@to3k@blog.tomaszdunia.pl Świetny artykuł! Dzięki!Przy okazji: zauważyłeś, że we fragmencie "Autor: @to3k@tomaszdunia.pl" w Twoim wpisie Twój adres nie zostaje zmieniony przez Mastodona na link?
Jerry
@to3k o jaki piekny protip, RPI tanie też nie jest, a maszyna za 500 zł plus kość DDR3 wlająca się w garażu to świetne rozwiązanie, thnx
Pingback: Terminal z Proxmox – tworzenie VM – Tomasz Dunia Blog
Pingback: Terminal with Proxmox – more ambitious home server [ENG 🇬🇧] – Tomasz Dunia Blog
pigux01
Cześć. Czy sprawdzałeś może jaki pobór energii ma ten Fujitsu Q920? Czy to portu oznaczonego jako mSATA można podłączyć jakiś sensowny dysk? Ogólnie zastanawiam się nad wyborem sprzętu, który ma być podstawą do domowego NAS i chciałbym móc podłaczyć conajmniej 2 dyski SATA + coś na system (stąd pytanie o to mSATA). Znalazłem też model Q956 od Fujitsu, który jest trochę nowszy i trochę droższy, ale waham się, który wybrać. Może będziesz mógł coś doradzić?
Tomasz Dunia
Niestety pobór mocy zależy wprost proporcjonalnie od tego jak intensywnie będziesz go używał (obciążenie), więc nie jestem w stanie podać żadnej miarodajnej wartości. Można jedynie sprawdzić ile używa bez obciążenia a nawet znaleźć taką informację w internecie, jednak czy ma to sens? Nikt raczej nie stawia takiego terminala tylko po to żeby pracował bez obciążenia 🙂 Co do dysków to niestety nie jestem w stanie powiedzieć wiele więcej niż to co opisałem. Ja korzystam z dysku SATA 2.5” i jedyne co mogę tutaj polecić to rozważenie dysków typu SLC , które są przeznaczone do tego typu zastosowań.
luk
mam Wyse 5070 i przy iddle
top – 13:02:25 up 9 days, 22:06, 2 users, load average: 1.03, 0.94, 0.81
Tasks: 344 total, 1 running, 343 sleeping, 0 stopped, 0 zombie
%Cpu(s): 9.1 us, 18.2 sy, 0.0 ni, 72.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 7692.3 total, 394.3 free, 5225.3 used, 2478.0 buff/cache
MiB Swap: 7688.0 total, 6369.7 free, 1318.2 used. 2466.9 avail Mem
pobór >10W.