Po 3 latach przyszła pora na poskładanie nowego serwera na zloty starych komputerów.
Poprzednim serwerem był Dell Optiplex FX160 wyposażony w 4-wątkowy procesor Atom 330. Pracując pod systemem Windows Server 2003 pracował w sposób w zupełności wystarczający na potrzeby podłączania starych komputerów, a do tego doczekał się kilku zwariowanych modyfikacji (4TB dysk twardy pod Windowsem 2003, który nie mieścił się w obudowie i SSD). Niestety gdy zaszła potrzeba odpalenia etherdfs na potrzeby dziwaków używających DOS, okazało się, że nie mam realnej możliwości pogodzenia etherdfs z Windows Server 2003. Udało mi się nawet z powodzeniem odpalić Ubuntu 16.04 w wersji 32-bit owej używając starych wersji VirtualBox, ale wydajność była tak żenująca, że stwierdziłem, że dotarłem do kresu możliwości tego sprzętu (Atom 330 nie ma wsparcia dla VT-x).
Tutaj pojawia się idea skonfigurowania czegoś kompaktowego na częściach własnych. Tym sposobem zaprzęgnąłem do pracy specyficzną obudowę miniITX którą kupiłem od administratora portalu i forum 3dfx.pl (za co serdecznie dziękuję).


Obudowa jest bardzo ciekawa, ale ma niefortunny mankament. Fabrycznie po bokach wyposażona była w śruby M3, które wkręcają się w żywe aluminium. To połączenie nie jest wytrzymałe – w momencie jak otrzymałem tą obudowę, dwa gwinty z ośmiu były zerwane. W miejsce śrub M3 wkręciłem zwykłe śruby od obudowy w rozmiarze 6/32, ale po kilku skręceniach obudowy, gwint puścił ponownie. Po tym postanowiłem rozwiercić otwory wkrętami 3,9mm i zastosować śruby M4. Niestety jeden gwint już się zerwał a dalsze powiększanie tego otworu mija się z celem. Docelowo będę musiał wymienić tą obudowę na inną czego bardzo żałuję, bo bardzo podoba mi się jej surowy wygląd.
Sercem serwera została płyta główna Gigabyte H97N-WiFi. Głównym powodem było to, że już ją miałem 🙂 Niemniej, jak na płytę w formacie mITX, jest ona świetnie wyposażona: 6x SATA, 2x LAN, WiFi w standardowym formacie mini-PCI-E (więc można kartę zastąpić trzecią sieciówką jak będzie potrzeba).

Sercem zestawu został najmocniejszy konsumencki procesor dostępny pod tą płytę główną – Intel Core i7 5775C „Broadwell”. To ciekawa jednostka, która posiada 4 poziomy pamięci podręcznej – coś po dziś dzień niespotykanego. Wspomaga go 8GB pamięci RAM, dysk SSD Samsung 950 Pro 256GB (nie byłem pewien, czy płyta potrafi wystartować z dysku NVMe, więc użyłem dysku do którego nie jest potrzebna obsługa NVMe w BIOS/UEFI. Okazało się to zbędne) oraz 2,5″ dysk 4TB na dane. Całość prezentuje się następująco:







Na zdjęciach powyżej widać dwie modyfikacje które możliwe były dzięki użyciu drukarki 3D. Na procesor, który jest chłodzony układem ID-COOLING IS-47-XT z odwróconym wentylatorem zaprojektowałem i wydrukowałem ramkę, która „uszczelnia” wylot powietrza kierując powietrze na zewnątrz. Później odkryłem, że Noctua również sprzedaje produkt o identycznej zasadzie działania – skoro oni to robią, to znaczy że to musi mieć sens 😉 W ten sposób i przy tym umieszczeniu, wentylator powinien wyciągać powietrze z okolic VRM oraz pamięci RAM i pracować jako jedyny „wydmuch” z obudowy.
Drugą modyfikacją jest projekt i wydruk tunelu do zasilacza. W fabrycznej konfiguracji zasilacz wciąga powietrze ze środka obudowy i wydmuchuje je z powrotem po drugiej stronie. Dzięki modyfikacji, powietrze powinno być kierowane na zewnątrz obudowy.
Teraz pora na programową część zabawy. Założenie projektu było następujące – tam gdzie pracował stary serwer, nowy powinien móc być wpięty w taki sam sposób jak stary. Gwoli przypomnienia, stary serwer pracował pod kontrolą Windows Server 2003 R2. Nowy serwer pracuje pod kontrolą Proxmox VE.
Aby móc spełnić swoje założenie, oczywiście potrzebne było wykonanie procesu „P2V” (Physical-to-virtual) wcześniejszego systemu, co w zasadzie odbyło się bezboleśnie – Clonezillą zrobiłem kopię dysku i przywróciłem ją pod wirtualnym systemem – konieczne było jedynie wybranie ustawień maszyny wirtualnej, które będą współpracować z archaicznym systemem. W ten sposób zyskałem retro serwer, który jest „Windows 95-friendly”, działający pod kontrolą współczesnego systemu operacyjnego. Nice!
Tutaj wchodzi jeszcze jedna kwestia – stary serwer robił za router pomiędzy siecią Internet a LANem, do czego wykorzystywałem dwie karty sieciowe (jedna podpięta przez USB) oraz współdzielenie łącza internetowego w Windows Server 2003. Aby zreplikować to zachowanie, zachować wszystkie rezerwacje adresów IP (stary serwer to również serwer DHCP/DNS) itp itd, udało mi się poprawnie uruchomić VT-d które ta platforma obsługuje. To znaczy, że jestem w stanie przekazać do maszyny wirtualnej fizyczny sprzęt z pominięciem warstwy wirtualizacji. Do VMki z Windows Server 2003 przekazałem zatem wbudowany kontroler Intel SATA pracujący w trybie AHCI oraz przewodową kartę sieciową Atheros. Do obu tych urządzeń udało mi się namierzyć i zainstalować sterowniki (pewien problem miałem z kontrolerem Intela, ponieważ ta płyta nie obsługuje Windows XP/2003, ale sam kontroler SATA zainstalować się udało).
W ten sposób wymiana serwera 3.0 na serwer 4.0 powinna być transparentna: wszystkie usługi działają tak jak wcześniej (SMB, FTP, DHCP, NetBIOS, DNS, VNC, RDP, serwery gier Quake, Quake II, Quake III, Unreal Tournament i pewnie parę innych rzeczy o których zapomniałem) z zachowaniem uprawnień do plików NTFS. Serwer przetestowałem podczas jednego „iwentu” i w 8 osób bez problemu graliśmy w Q3 na serwerze, który konfigurowałem pewnie więcej jak 5 lat temu.
Dodatkowo, serwer ma skonfigurowane i uruchomione Prometheus + Grafana, dzięki czemu sam siebie monitoruje i zapisuje sobie te dane. Jeśli będzie się przegrzewał, to mogę sobie to wygodnie podejrzeć w panelu webowym używając Grafany.
Plan na przyszłość przewiduje dwie dodatkowe maszyny wirtualne:
- Dla etherdfs (pewnie jakieś Ubuntu 20/22/24)
- Coś co obsłuży routing zamiast Windowsa Server 2003 (no bo trochę przypał, że wystawiony jest na świat. Pewnie jakieś pfsense/opnsense)
Mimo to, jestem dumny z tego co udało mi się osiągnąć mixując archaiczny Windows Server z nowoczysnymi technologiami. Pomimo tego, że od pewnie 10+ lat wiedziałem jak to działa, to mój pierwszy raz kiedy faktycznie skonfigurowałem i użyłem VT-d, pierwszy raz z Prometheus i pierwszy raz z Proxmox VE na użytek własny. Poczułem sie prawie jak dorosły sysadmin 🙂
Poniżej dwa projekty, które stworzyłem na potrzeby tego komputera. „Uszczelkę” na CPU wydrukowałem z TPU, a tunel do zasilacza z PET-G.
Wow. Uwielbiam takie ultra kompaktowe rozwiązania! A jeszcze bardziej imponująca strona konfiguracji – sam bym czegoś takiego chyba nie ogarnął, albo męczył się bardzo długo
Dziękuję za komentarz! 🙂