Wciśnięcie systemu Windows Server na serwer VPS o niskim poborze mocy przy użyciu systemu Windows Server Core

Wciśnięcie systemu Windows Server na serwer VPS o niskim poborze mocy przy użyciu systemu Windows Server Core
Ze względu na obżarstwo systemów Windows, w środowisku VPS dominują lekkie dystrybucje Linuksa: Mint, Colibri OS, Debian czy Ubuntu, pozbawione ciężkiego środowiska graficznego, które jest dla nas niepotrzebne. Jak to mówią, tylko konsola, tylko hardcor! I w zasadzie nie jest to wcale przesada: ten sam Debian startuje na 256 MB pamięci i jednym rdzeniu z zegarem 1 Ghz, czyli na prawie każdym „pniu”. Do komfortowej pracy potrzebne będzie co najmniej 512 MB i nieco szybszy procesor. Ale co, jeśli powiemy Ci, że możesz zrobić mniej więcej to samo na VPS z systemem Windows? Dlaczego nie trzeba wdrażać ciężkiego systemu Windows Server, który wymaga od trzech do czterech hektarów pamięci RAM i co najmniej kilku rdzeni taktowanych zegarem 1,4 GHz? Po prostu użyj Windows Server Core - pozbądź się GUI i niektórych usług. Porozmawiamy o tym, jak to zrobić w artykule.

Kim jest rdzeń serwera Windows?

Nawet na oficjalnej stronie Mikesa nie ma jasnej informacji o tym, czym jest Windows (serwer) Core, a raczej wszystko jest tam tak zagmatwane, że nie od razu zrozumiesz, ale pierwsze wzmianki pochodzą z epoki Windows Server 2008. Zasadniczo Windows Core to działający serwer jądra systemu Windows (nagle!), „cieńszy” pod względem rozmiaru własnego GUI i około połowy usług pobocznych.

Główną cechą Windows Core jest niewymagający sprzęt i pełna kontrola konsoli poprzez PowerShell.

Jeśli wejdziesz na stronę Microsoftu i sprawdzisz wymagania techniczne, to do uruchomienia Windows Server 2016/2019 potrzebne będą co najmniej 2 gigabajty pamięci RAM i co najmniej jeden rdzeń o taktowaniu 1,4 GHz. Ale wszyscy rozumiemy, że przy takiej konfiguracji możemy oczekiwać jedynie uruchomienia systemu, ale na pewno nie wygodnej obsługi naszego systemu operacyjnego. Z tego powodu Windows Serverowi zwykle przydziela się więcej pamięci i co najmniej 2 rdzenie/4 wątki z procesora, jeśli nie zapewni mu drogiej maszyny fizycznej na jakimś Xeonie, zamiast taniej maszyny wirtualnej.

Jednocześnie sam rdzeń systemu serwerowego wymaga jedynie 512 MB pamięci, a zasoby procesora, które zużywał GUI po prostu na narysowanie na ekranie i utrzymanie licznych usług, można wykorzystać do czegoś bardziej przydatnego.

Oto porównanie usług Windows Core obsługiwanych fabrycznie i pełnego systemu Windows Server z oficjalnej witryny Microsoft:

aplikacja
rdzeń serwera
serwer zdoświadczenie z komputerem

Wiersz polecenia
dostępny
dostępny

Windows PowerShell/Microsoft .NET
dostępny
dostępny

Perfmon.exe
niedostępne
dostępny

Windbg (GUI)
utrzymany
dostępny

Resmon.exe
niedostępne
dostępny

regedit
dostępny
dostępny

Fsutil.exe
dostępny
dostępny

Disksnapshot.exe
niedostępne
dostępny

Diskpart.exe
dostępny
dostępny

ggmt.msc
niedostępne
dostępny

devmgmt.msc
niedostępne
dostępny

Server Manager
niedostępne
dostępny

mmc.exe
niedostępne
dostępny

Wydarzenie
niedostępne
dostępny

Wevtutil (zapytania o zdarzenia)
dostępny
dostępny

Services.msc
niedostępne
dostępny

Panel sterowania
niedostępne
dostępny

Aktualizacja systemu Windows (GUI)
niedostępne
dostępny

Windows Explorer
niedostępne
dostępny

Pasek zadań
niedostępne
dostępny

Powiadomienia na pasku zadań
niedostępne
dostępny

Taskmgr
dostępny
dostępny

Internet Explorer lub Edge
niedostępne
dostępny

Wbudowany system pomocy
niedostępne
dostępny

Powłoka systemu Windows 10
niedostępne
dostępny

Windows Media Player
niedostępne
dostępny

PowerShell
dostępny
dostępny

PowerShell ISE
niedostępne
dostępny

Edytor edytora PowerShell
dostępny
dostępny

Mstsc.exe
niedostępne
dostępny

Usługi pulpitu zdalnego
dostępny
dostępny

Menedżer funkcji Hyper-V
niedostępne
dostępny

Jak widać, sporo zostało wyciętych z Windows Core. Pod nóż poszły usługi i procesy związane z GUI systemu, a także wszelkie „śmieci”, które zdecydowanie nie są potrzebne na naszej wirtualnej maszynie konsoli, np. Windows Media Player.

Prawie jak Linux, ale nie to

Naprawdę chcę porównać Windows Server Core z dystrybucjami Linuksa, ale w rzeczywistości nie jest to do końca poprawne. Tak, te systemy są do siebie podobne pod względem zmniejszonego zużycia zasobów ze względu na rezygnację z GUI i wielu usług pobocznych, ale pod względem obsługi i niektórych podejść do montażu jest to nadal system Windows, a nie Unix.

Najprostszym przykładem jest to, że ręcznie budując jądro Linuksa, a następnie instalując pakiety i usługi, nawet lekką dystrybucję Linuksa można przekształcić w coś ciężkiego i podobnego do szwajcarskiego scyzoryka (tutaj naprawdę chcę zażartować na temat Pythona na akordeonie i wstaw obrazek z serii „Gdyby języki programowania były bronią”, ale tego nie zrobimy). W Windows Core tej swobody jest znacznie mniej, bo przecież mamy do czynienia z produktem Microsoftu.

Windows Server Core jest dostarczany jako gotowy, którego domyślną konfigurację można oszacować z powyższej tabeli. Jeśli potrzebujesz czegoś z nieobsługiwanej listy, będziesz musiał dodać brakujące elementy online za pośrednictwem konsoli. To prawda, nie należy zapominać o funkcji na żądanie i możliwości pobierania komponentów w postaci plików CAB, które można następnie dodać do złożenia przed instalacją. Ale ten skrypt nie zadziała, jeśli już w trakcie procesu odkryjesz, że brakuje Ci którejkolwiek z usług cięcia.

Jednak tym, co odróżnia wersję Core od wersji pełnej, jest możliwość aktualizacji systemu i dodawania usług bez przerywania pracy. Windows Core obsługuje walcowanie na gorąco pakietów bez ponownego uruchamiania. W rezultacie, z praktycznych obserwacji: komputer z systemem Windows Core należy uruchamiać ~6 razy rzadziej niż komputer z systemem Windows Server, czyli raz na sześć miesięcy, a nie raz na miesiąc.

Przyjemnym bonusem dla administratorów jest to, że jeśli system będzie używany zgodnie z przeznaczeniem - poprzez konsolę, bez RDP - a nie zamieniony na drugi Windows Server, wówczas stanie się wyjątkowo bezpieczny w porównaniu do pełnej wersji. W końcu większość luk w zabezpieczeniach systemu Windows Server wynika z protokołu RDP i działań użytkownika, który za pośrednictwem tego protokołu RDP robi coś, czego nie powinno się robić. Przypomina to historię Henry’ego Forda i jego podejścia do koloru samochodu: „Każdy klient może zlecić pomalowanie samochodu na dowolny kolor, pod warunkiem, że jest czarny" Podobnie jest z systemem: użytkownik może komunikować się z systemem w dowolny sposób, najważniejsze, że robi to poprzez konsola.

Zainstaluj i zarządzaj systemem Windows Server 2019 Core

Wspomnieliśmy wcześniej, że Windows Core to w zasadzie Windows Server bez opakowania GUI. Oznacza to, że możesz używać prawie dowolnej wersji systemu Windows Server jako wersji podstawowej, czyli porzucić GUI. W przypadku produktów z rodziny Windows Server 2019 są to 3 z 4 kompilacji serwerów: tryb podstawowy jest dostępny dla systemów Windows Server 2019 Standard Edition, Windows Server 2019 Datacenter i Hyper-V Server 2019, czyli wykluczony jest tylko system Windows Server 2019 Essentials z tej listy.

W takim przypadku tak naprawdę nie trzeba szukać pakietu instalacyjnego systemu Windows Server Core. W standardowym instalatorze Microsoftu domyślnie oferowana jest wersja core, natomiast wersję GUI należy wybrać ręcznie:

Wciśnięcie systemu Windows Server na serwer VPS o niskim poborze mocy przy użyciu systemu Windows Server Core
Tak naprawdę opcji zarządzania systemem jest więcej niż wspomniany PowerShell, który domyślnie oferuje producent. Maszyną wirtualną w systemie Windows Server Core można zarządzać na co najmniej pięć różnych sposobów:

  • Zdalny PowerShell;
  • Narzędzia administracji zdalnej serwera (RSAT);
  • Centrum administracyjne systemu Windows;
  • Skonfiguruj;
  • Menedżer serwera.

Największym zainteresowaniem cieszą się trzy pierwsze pozycje: standardowy PowerShell, RSAT i Windows Admin Center. Należy jednak zrozumieć, że choć zyskujemy korzyści płynące z jednego z narzędzi, otrzymujemy także ograniczenia, jakie ono narzuca.

Nie będziemy opisywać możliwości konsoli; PowerShell to PowerShell, z jego oczywistymi zaletami i wadami. W przypadku RSAT i WAC wszystko jest nieco bardziej skomplikowane. 

WAC zapewnia dostęp do ważnych elementów sterujących systemem, takich jak edycja rejestru oraz zarządzanie dyskami i urządzeniami. RSAT w pierwszym przypadku działa tylko w trybie przeglądania i nie pozwoli na dokonanie jakichkolwiek zmian, a do zarządzania dyskami i urządzeniami fizycznymi Narzędzia administracji zdalnej serwera wymagają GUI, co w naszym przypadku nie ma miejsca. Ogólnie rzecz biorąc, RSAT nie może pracować z plikami, a zatem aktualizacjami, instalacją/usuwaniem programów podczas edycji rejestru.

▍Zarządzanie systemem

 

WAC
RSAT

Zarządzanie komponentami
Tak
Tak

Edytor rejestru
Tak
Nie

Zarządzanie siecią
Tak
Tak

Podgląd zdarzeń
Tak
Tak

Udostępnione foldery
Tak
Tak

Zarządzanie dyskiem
Tak
Tylko dla serwerów z GUI

Harmonogram zadań
Tak
Tak

Zarządzanie urządzeniami
Tak
Tylko dla serwerów z GUI

Zarządzanie plikami
Tak
Nie

Zarządzanie użytkownikami
Tak
Tak

Zarządzanie grupą
Tak
Tak

Zarządzanie certyfikatami
Tak
Tak

Aktualizacje
Tak
Nie

Odinstalowywanie programów
Tak
Nie

Monitor systemu
Tak
Tak

Z drugiej strony RSAT daje nam pełną kontrolę nad rolami na komputerze, podczas gdy Windows Admin Center nie może w tym zakresie zrobić dosłownie nic. Oto porównanie możliwości RSAT i WAC w tym aspekcie, dla przejrzystości:

▍Zarządzanie rolami

 

WAC
RSAT

Zaawansowana ochrona wątków
ZAPOWIEDŹ
Nie

Windows Defender
ZAPOWIEDŹ
Tak

pojemniki
ZAPOWIEDŹ
Tak

Centrum administracyjne AD
ZAPOWIEDŹ
Tak

Domena AD i trusty
Nie
Tak

Witryny i usługi reklamowe
Nie
Tak

DHCP
ZAPOWIEDŹ
Tak

DNS
ZAPOWIEDŹ
Tak

Menedżer DFS
Nie
Tak

Menedżer GPO
Nie
Tak

Menedżer IIS
Nie
Tak

Oznacza to, że jest już jasne, że jeśli porzucimy GUI i PowerShell na rzecz innych elementów sterujących, nie będziemy w stanie obejść się bez korzystania z jakiegoś mononarzędzia: do pełnej administracji na wszystkich frontach będziemy potrzebować co najmniej połączenie RSAT i WAC.

Trzeba jednak pamiętać, że za korzystanie z WAC trzeba będzie zapłacić 150-180 megabajtów pamięci RAM. Po podłączeniu Centrum administracyjne systemu Windows tworzy 3-4 sesje po stronie serwera, które nie są przerywane nawet po odłączeniu narzędzia od maszyny wirtualnej. WAC nie działa również ze starszymi wersjami programu PowerShell, dlatego będziesz potrzebować co najmniej programu PowerShell 5.0. Wszystko to jest sprzeczne z naszym paradygmatem oszczędności, ale za wygodę trzeba płacić. W naszym przypadku - RAM.

Inną opcją zarządzania Server Core jest instalacja GUI przy użyciu narzędzi innych firm, aby nie ciągnąć ton śmieci, które są dostarczane z interfejsem w pełnoprawnym zestawie.

W tym przypadku mamy dwie możliwości: wdrożyć w systemie oryginalnego Eksploratora lub użyć Eksploratora++. Alternatywą dla tego ostatniego jest odpowiedni dowolny menedżer plików: Total Commander, FAR Manager, Double Commander i tak dalej. To drugie rozwiązanie jest preferowane, jeśli oszczędność pamięci RAM jest dla Ciebie krytyczna. Możesz dodać Explorer++ lub dowolny inny menedżer plików, tworząc folder sieciowy i uruchamiając go za pomocą konsoli lub harmonogramu.

Zainstalowanie pełnoprawnego Explorera da nam większe możliwości w zakresie pracy z oprogramowaniem wyposażonym w UI. W tym celu my będzie musiał się skontaktować do funkcji zgodności aplikacji Server Core na żądanie (FOD), która zwróci do systemu MMC, Eventvwr, PerfMon, Resmon, Explorer.exe, a nawet Powershell ISE. Będziemy jednak musieli za to zapłacić, podobnie jak w przypadku WAC: stracimy bezpowrotnie około 150-200 megabajtów pamięci RAM, która zostanie bezlitośnie pochłonięta przez explorer.exe i inne usługi. Nawet jeśli na komputerze nie ma aktywnego użytkownika.

Wciśnięcie systemu Windows Server na serwer VPS o niskim poborze mocy przy użyciu systemu Windows Server Core
Wciśnięcie systemu Windows Server na serwer VPS o niskim poborze mocy przy użyciu systemu Windows Server Core
Tak wygląda zużycie pamięci przez system na komputerach z natywnym pakietem Explorer i bez niego.

Powstaje tutaj logiczne pytanie: po co to wszystko tańczyć z PowerShellem, FOD, menedżerami plików, jeśli jakikolwiek krok w lewo lub w prawo prowadzi do wzrostu zużycia pamięci RAM? Po co smarować się masą narzędzi i przerzucać się na boki, aby zapewnić wygodną pracę na Windows Server Core, skoro można po prostu pobrać Windows Server 2016/2019 i żyć jak biały człowiek?

Istnieje kilka powodów, dla których warto używać Server Core. Po pierwsze: bieżące zużycie pamięci jest prawie o połowę mniejsze. Jeśli pamiętasz, ten warunek był podstawą naszego artykułu na samym początku. Dla porównania, oto zużycie pamięci w systemie Windows Server 2019, porównaj ze zrzutami ekranu tuż powyżej:

Wciśnięcie systemu Windows Server na serwer VPS o niskim poborze mocy przy użyciu systemu Windows Server Core
I tak 1146 MB zużycia pamięci zamiast 655 MB na Core. 

Zakładając, że nie potrzebujesz WAC i będziesz używać Explorer++ zamiast oryginalnego Explorera, to ty i tak wygrasz prawie pół hektara na każdej maszynie wirtualnej z systemem Windows Server. Jeśli jest tylko jedna maszyna wirtualna, to wzrost jest niewielki, ale jeśli jest ich pięć? W tym miejscu liczy się posiadanie GUI, szczególnie jeśli go nie potrzebujesz. 

Po drugie, wszelkie tańce wokół Windows Server Core nie doprowadzą Cię do walki z głównym problemem działania Windows Server - RDP i jego bezpieczeństwem (a dokładniej jego całkowitym brakiem). Windows Core, nawet pokryty FOD, RSAT i WAC, nadal jest serwerem bez RDP, czyli nie jest podatny na 95% istniejących ataków.

Pozostały

Ogólnie rzecz biorąc, Windows Core jest tylko trochę grubszy niż jakakolwiek standardowa dystrybucja Linuksa, ale jest znacznie bardziej funkcjonalny. Jeśli chcesz zwolnić zasoby i jesteś gotowy do pracy z konsolą, WAC i RSAT oraz korzystasz z menedżerów plików zamiast pełnoprawnego GUI, warto zwrócić uwagę na Core. Co więcej, dzięki niemu będziesz mógł uniknąć dodatkowych opłat za pełnoprawny system Windows i wydać zaoszczędzone pieniądze na aktualizację swojego VPS, dodając tam np. RAM. Dla wygody dodaliśmy do naszego systemu Windows Server Core rynek.

Wciśnięcie systemu Windows Server na serwer VPS o niskim poborze mocy przy użyciu systemu Windows Server Core

Źródło: www.habr.com

Dodaj komentarz