Stiskanje Windows Servera na VPS niske potrošnje koristeći Windows Server Core

Stiskanje Windows Servera na VPS niske potrošnje koristeći Windows Server Core
Zbog proždrljivosti Windows sistema, VPS okruženjem dominiraju lagane Linux distribucije: Mint, Colibri OS, Debian ili Ubuntu, lišene teškog desktop okruženja koje je nepotrebno za naše potrebe. Kako kažu, samo konzola, samo hardcore! I zapravo, to uopće nije pretjerivanje: isti Debian počinje s 256 MB memorije i jednom jezgrom s taktom od 1 Ghz, odnosno na gotovo bilo kojem "panju". Za udoban rad trebat će vam najmanje 512 MB i nešto brži procesor. Ali šta ako vam kažemo da možete da uradite otprilike istu stvar na VPS-u koji koristi Windows? Zašto ne biste trebali izbaciti težak Windows Server, koji zahtijeva tri do četiri hektara RAM-a i barem nekoliko jezgara takta od 1,4 GHz? Samo koristite Windows Server Core - riješite se GUI-ja i nekih usluga. O tome kako to učiniti, razgovarat ćemo u članku.

Ko je ovaj Windows Server Core?

Nema jasnih informacija o tome šta je Windows (server) Core čak ni na zvaničnom sajtu Mikesa, tačnije, tamo je sve toliko zbunjujuće da nećete odmah shvatiti, ali prva pominjanja datiraju iz ere Windows Servera 2008. U suštini, Windows Core je radni Windows kernel Server (odjednom!), "tanji" po veličini sopstvenog GUI-a i oko polovine sporednih servisa.

Glavna karakteristika Windows Core-a je njegov nezahtjevan hardver i potpuna kontrola konzole putem PowerShell-a.

Ako odete na Microsoft web stranicu i provjerite tehničke zahtjeve, tada će vam za pokretanje Windows Servera 2016/2019 trebati najmanje 2 giga RAM-a i najmanje jedna jezgra sa taktom od 1,4 GHz. Ali svi razumijemo da s takvom konfiguracijom možemo očekivati ​​samo pokretanje sistema, ali svakako ne udoban rad našeg OS-a. Upravo iz tog razloga Windows Serveru se obično izdvaja više memorije i najmanje 2 jezgra/4 niti iz procesora, ako mu ne daju skupu fizičku mašinu na nekom Xeonu, umesto jeftine virtuelne mašine.

Istovremeno, jezgro samog serverskog sistema zahtijeva samo 512 MB memorije, a oni procesorski resursi koje je GUI potrošio samo da bi se nacrtali na ekranu i održavali rad njegovih brojnih servisa mogu se iskoristiti za nešto korisnije.

Evo poređenja Windows Core servisa podržanih iz kutije i kompletnog Windows Servera sa službene Microsoft web stranice:

aplikacija
jezgra servera
server sadesktop iskustvo

Komandni redak
dostupan
dostupan

Windows PowerShell/Microsoft .NET
dostupan
dostupan

Perfmon.exe
Nije dostupno
dostupan

Windbg (GUI)
podržano
dostupan

Resmon.exe
Nije dostupno
dostupan

Regedit
dostupan
dostupan

Fsutil.exe
dostupan
dostupan

Disksnapshot.exe
Nije dostupno
dostupan

Diskpart.exe
dostupan
dostupan

Diskmgmt. msc
Nije dostupno
dostupan

devmgmt.msc
Nije dostupno
dostupan

server Manager
Nije dostupno
dostupan

mmc.exe
Nije dostupno
dostupan

Eventvwr
Nije dostupno
dostupan

Wevtutil (upiti o događajima)
dostupan
dostupan

Services.msc
Nije dostupno
dostupan

Kontrolna tabla
Nije dostupno
dostupan

Windows Update (GUI)
Nije dostupno
dostupan

Windows Explorer
Nije dostupno
dostupan

Taskbar
Nije dostupno
dostupan

Obavještenja na traci zadataka
Nije dostupno
dostupan

taskmgr
dostupan
dostupan

Internet Explorer ili Edge
Nije dostupno
dostupan

Ugrađeni sistem pomoći
Nije dostupno
dostupan

Windows 10 Shell
Nije dostupno
dostupan

Windows Media Player
Nije dostupno
dostupan

PowerShell
dostupan
dostupan

PowerShell ISE
Nije dostupno
dostupan

PowerShell IME
dostupan
dostupan

Mstsc.exe
Nije dostupno
dostupan

Usluge udaljene radne površine
dostupan
dostupan

Hyper-V Manager
Nije dostupno
dostupan

Kao što vidite, mnogo je izrezano iz Windows Core-a. Usluge i procesi povezani sa GUI sistema, kao i svako „smeće“ koje definitivno nije potrebno na našoj konzolnoj virtuelnoj mašini, na primer, Windows Media Player, otišli su pod nož.

Skoro kao Linux, ali ne

Zaista želim da uporedim Windows Server Core sa Linux distribucijama, ali u stvari ovo nije sasvim tačno. Da, ovi sistemi su slični jedni drugima u smislu smanjene potrošnje resursa zbog napuštanja GUI-ja i mnogih sporednih servisa, ali u smislu rada i nekih pristupa sklapanju, ovo je i dalje Windows, a ne Unix sistem.

Najjednostavniji primjer je da se ručnom izgradnjom Linux kernela, a zatim instaliranjem paketa i servisa, čak i lagana Linux distribucija može pretvoriti u nešto teško i slično švicarskom nožu (ovdje stvarno želim da se našalim na harmonici o Pythonu i ubacite sliku iz serije “Kad bi programski jezici bili oružje”, ali nećemo). U Windows Core-u takve slobode je mnogo manje, jer mi ipak imamo posla sa Microsoftovim proizvodom.

Windows Server Core dolazi gotov, čija se podrazumevana konfiguracija može proceniti iz gornje tabele. Ako vam treba nešto sa nepodržane liste, moraćete da dodate elemente koji nedostaju na mreži preko konzole. Istina, ne biste trebali zaboraviti na Feature on demand i mogućnost preuzimanja komponenti kao CAB datoteka, koje se zatim mogu dodati u sklop prije instalacije. Ali ova skripta ne radi ako već tokom procesa otkrijete da vam nedostaje neka od usluga rezanja.

Ali ono što razlikuje Core verziju od pune verzije je mogućnost ažuriranja sistema i dodavanja usluga bez prekida rada. Windows Core podržava vruće kotrljanje paketa, bez ponovnog pokretanja. Kao rezultat toga, na osnovu praktičnih zapažanja: mašinu sa Windows Core potrebno je ponovo pokrenuti ~6 puta ređe nego onu koja radi na Windows Serveru, to jest, jednom u šest meseci, a ne jednom mesečno.

Ugodan bonus za administratore je da ako se sistem koristi kako je predviđeno - preko konzole, bez RDP-a - a ne pretvara se u drugi Windows Server, onda postaje izuzetno siguran u odnosu na punu verziju. Uostalom, većina ranjivosti Windows Servera je zbog RDP-a i radnji korisnika koji upravo preko ovog RDP-a radi nešto što ne bi trebalo. To je nešto poput priče s Henryjem Fordom i njegovim odnosom prema boji automobila: „Svaki kupac može farbati automobil u koju god želi sve dok je crn" Isto je i sa sistemom: korisnik može komunicirati sa sistemom na bilo koji način, najvažnije je da to radi preko konzola.

Instaliranje i upravljanje Windows Server 2019 Core

Ranije smo spomenuli da je Windows Core u suštini Windows Server bez GUI omota. Odnosno, možete koristiti gotovo bilo koju verziju Windows Servera kao osnovnu verziju, odnosno napustiti GUI. Za proizvode iz porodice Windows Server 2019, ovo su 3 od 4 verzije servera: osnovni režim je dostupan za Windows Server 2019 Standard Edition, Windows Server 2019 Datacenter i Hyper-V Server 2019, odnosno isključen je samo Windows Server 2019 Essentials sa ove liste.

U ovom slučaju, zapravo ne morate tražiti instalacijski paket Windows Server Core. U standardnom Microsoft instalacijskom programu, osnovna verzija se nudi doslovno po defaultu, dok se GUI verzija mora odabrati ručno:

Stiskanje Windows Servera na VPS niske potrošnje koristeći Windows Server Core
U stvari, postoji više opcija za upravljanje sistemom od pomenutog PowerShell-a, koji proizvođač podrazumevano nudi. Virtuelnom mašinom na Windows Server Core možete upravljati na najmanje pet različitih načina:

  • Remote PowerShell;
  • Alati za udaljenu administraciju servera (RSAT);
  • Windows Admin Center;
  • Sconfig;
  • ServerManager.

Prve tri pozicije su od najvećeg interesa: standardni PowerShell, RSAT i Windows Admin Center. Međutim, važno je shvatiti da, dok primamo prednosti jednog od alata, primamo i ograničenja koja nameće.

Nećemo opisivati ​​mogućnosti konzole; PowerShell je PowerShell, sa svojim očiglednim prednostima i nedostacima. Sa RSAT-om i WAC-om sve je malo komplikovanije. 

WAC vam daje pristup važnim sistemskim kontrolama kao što je uređivanje registra i upravljanje diskovima i uređajima. RSAT u prvom slučaju radi samo u režimu pregleda i neće vam dozvoliti da napravite bilo kakve promene, a za upravljanje diskovima i fizičkim uređajima Remote Server Administration Tools zahteva GUI, što nije slučaj u našem slučaju. Generalno, RSAT ne može raditi sa datotekama i, shodno tome, ažuriranjima, instalacijom/uklanjanjem programa u uređivanju registra.

▍Upravljanje sistemom

 

WAC
RSAT

Upravljanje komponentama
Da
Da

Urednik registra
Da
Nijedan

Upravljanje mrežom
Da
Da

Event Viewer
Da
Da

Shared Folders
Da
Da

Upravljanje diskovima
Da
Samo za servere sa GUI

Task Scheduler
Da
Da

Upravljanje uređajem
Da
Samo za servere sa GUI

Upravljanje datotekama
Da
Nijedan

upravljanje korisnicima
Da
Da

Grupno upravljanje
Da
Da

Upravljanje certifikatima
Da
Da

Ažuriranja
Da
Nijedan

Uklanjanje programa
Da
Nijedan

Monitor sistema
Da
Da

S druge strane, RSAT nam daje potpunu kontrolu nad ulogama na mašini, dok Windows Admin Center ne može učiniti bukvalno ništa po tom pitanju. Evo poređenja mogućnosti RSAT-a i WAC-a u ovom aspektu, radi jasnoće:

▍Upravljanje ulogama

 

WAC
RSAT

Napredna zaštita niti
PREGLED
Nijedan

Windows Defender
PREGLED
Da

Kontejneri
PREGLED
Da

AD Administrativni centar
PREGLED
Da

AD domena i povjerenja
Nijedan
Da

AD stranice i usluge
Nijedan
Da

DHCP
PREGLED
Da

DNS
PREGLED
Da

DFS Manager
Nijedan
Da

GPO Manager
Nijedan
Da

IIS Manager
Nijedan
Da

Odnosno, već je jasno da ako napustimo GUI i PowerShell u korist drugih kontrola, nećemo se moći izvući korištenjem neke vrste mono-alata: za potpunu administraciju na svim frontovima, trebat će nam barem kombinacija RSAT-a i WAC-a.

Međutim, morate imati na umu da ćete morati platiti 150-180 megabajta RAM-a da biste koristili WAC. Kada je povezan, Windows Admin Center kreira 3-4 sesije na strani servera, koje se ne prekidaju čak ni kada je alatka isključena sa virtuelne mašine. WAC također ne radi sa starijim verzijama PowerShell-a, tako da će vam trebati barem PowerShell 5.0. Sve je to protiv naše paradigme štednje, ali za udobnost morate platiti. U našem slučaju - RAM.

Druga opcija za upravljanje jezgrom servera je instaliranje GUI pomoću alata treće strane, kako ne bi povlačili tone smeća koje dolazi sa interfejsom u punom sklopu.

U ovom slučaju imamo dvije opcije: izbaciti originalni Explorer na sistem ili koristiti Explorer++. Kao alternativa potonjem, prikladan je bilo koji upravitelj datoteka: Total Commander, FAR Manager, Double Commander i tako dalje. Potonje je poželjno ako je štednja RAM-a kritična za vas. Možete dodati Explorer++ ili bilo koji drugi upravitelj datoteka kreiranjem mrežne mape i pokretanjem kroz konzolu ili planer.

Instalacija punopravnog Explorera pružit će nam više mogućnosti u smislu rada sa softverom opremljenim korisničkim sučeljem. Za ovo mi morat će kontaktirati na Server Core App Compatibility Feature on Demand (FOD) koji će vratiti MMC, Eventvwr, PerfMon, Resmon, Explorer.exe, pa čak i Powershell ISE u sistem. Međutim, za to ćemo morati platiti, kao što je slučaj sa WAC-om: nepovratno ćemo izgubiti oko 150-200 megabajta RAM-a, koji će explorer.exe i drugi servisi nemilosrdno progutati. Čak i ako na mašini nema aktivnog korisnika.

Stiskanje Windows Servera na VPS niske potrošnje koristeći Windows Server Core
Stiskanje Windows Servera na VPS niske potrošnje koristeći Windows Server Core
Ovako izgleda potrošnja memorije od strane sistema na mašinama sa i bez izvornog Explorer paketa.

Ovdje se postavlja logično pitanje: čemu sve ovo plesanje sa PowerShell-om, FOD-om, file managerima, ako bilo koji korak lijevo ili desno dovodi do povećanja potrošnje RAM-a? Zašto se mazati gomilom alata i premještati s jedne na drugu stranu kako biste osigurali udoban rad na Windows Server Core, kada možete jednostavno preuzeti Windows Server 2016/2019 i živjeti kao bijeli čovjek?

Postoji nekoliko razloga za korištenje Server Core. Prvo: trenutna potrošnja memorije je skoro upola manja. Ako se sjećate, ovo stanje je bilo osnova našeg članka na samom početku. Za poređenje, evo potrošnje memorije za Windows Server 2019, uporedite sa snimkama ekrana iznad:

Stiskanje Windows Servera na VPS niske potrošnje koristeći Windows Server Core
I tako, 1146 MB potrošnje memorije umjesto 655 MB na Core. 

Pod pretpostavkom da vam nije potreban WAC i da ćete koristiti Explorer++ umjesto originalnog Explorera, onda vi i dalje ćeš osvojiti skoro pola hektara na svakoj virtuelnoj mašini sa Windows Serverom. Ako postoji samo jedna virtuelna mašina, onda je povećanje neznatno, ali ako ih je pet? Ovdje je važno imati GUI, posebno ako vam nije potreban. 

Drugo, bilo kakav ples oko Windows Server Core-a neće vas navesti da se borite protiv glavnog problema rada Windows Servera - RDP-a i njegove sigurnosti (tačnije, njegovog potpunog odsustva). Windows Core, čak i obložen u obliku FOD, RSAT i WAC, i dalje je server bez RDP-a, odnosno nije podložan 95% postojećih napada.

Preostalo

Općenito, Windows Core je samo malo deblji od bilo koje dioničke Linux distribucije, ali je mnogo funkcionalniji. Ako trebate osloboditi resurse i spremni ste za rad s konzolom, WAC-om i RSAT-om i koristiti upravitelje datoteka umjesto punopravnog GUI-a, onda je Core vrijedan pažnje. Štoviše, uz njega ćete moći izbjeći dodatno plaćanje za punopravni Windows, a ušteđeni novac potrošiti na nadogradnju vašeg VPS, dodajući tamo, na primjer, RAM. Radi praktičnosti, dodali smo Windows Server Core u naše tržište.

Stiskanje Windows Servera na VPS niske potrošnje koristeći Windows Server Core

izvor: www.habr.com

Dodajte komentar