En raison de la gourmandise des systèmes Windows dans l'environnement VPS, les distributions Linux légères telles que Mint, Colibri OS, Debian ou Ubuntu dominent, dépourvues d'un environnement de bureau lourd et superflu pour nos besoins. Comme on dit, seulement la console, seulement du hardcore ! Et en réalité, ce n'est pas du tout une exagération : le même Debian démarre avec 256 Mo de mémoire et un seul cœur cadencé à 1 GHz, presque sur n'importe quel 'souche'. Pour un confort d'utilisation, il vous faudra au moins 512 Mo et un processeur un peu plus rapide. Mais que diriez-vous si nous vous disions que vous pouvez faire à peu près la même chose sur une VPS sous Windows ? Qu'il n'est pas nécessaire d'installer un Windows Server massif, qui nécessite au moins trois ou quatre Go de RAM et au minimum deux cœurs clockés à 1,4 GHz ? Il suffit d'utiliser Windows Server Core — débarrassez-vous de l'interface graphique et de certaines fonctions. C'est ce que nous allons explorer dans cet article.
Qui est donc ce Windows Server Core ?
Il n'y a pas d'informations claires sur ce qu'est Windows (server) Core, même sur le site officiel de Microsoft, c'est si confus que l'on ne comprend pas tout de suite, mais les premières mentions datent de l'époque de Windows Server 2008. En essence, Windows Core est le noyau fonctionnel de Windows Server (surprise !), 'amincie' de la taille de son interface graphique et d'environ la moitié des services secondaires.
Le principal atout de Windows Core est sa légèreté sur le matériel et son contrôle entièrement en console via PowerShell.
Si l'on consulte le site de Microsoft pour vérifier les exigences techniques, il vous faudra au moins 2 Go de RAM et un cœur cadencé à 1,4 GHz pour démarrer Windows Server 2016/2019. Mais nous comprenons tous qu'avec une telle configuration, nous ne pouvons nous attendre qu'au démarrage du système, mais certainement pas à un fonctionnement confortable de notre OS. C'est pourquoi pour faire fonctionner Windows Server, on alloue généralement plus de mémoire et au moins 2 cœurs/4 threads du processeur, à moins qu'on ne lui fournisse une coûteuse machine physique sur un Xeon, plutôt qu'une cheap virtual machine.
Cependant, le noyau du système serveur lui-même nécessite seulement 512 Mo de mémoire, et les ressources processeur auparavant utilisées par l'interface graphique juste pour s'afficher à l'écran et maintenir en marche ses nombreux services peuvent être utilisées pour quelque chose de plus utile.
Voici une comparaison des services pris en charge par défaut entre Windows Core et Windows Server complet sur le site officiel de Microsoft :
application
server core
server withasztali élmény
Parancssor
elérhető
elérhető
Windows PowerShell / Microsoft .NET
elérhető
elérhető
Perfmon.exe
nem elérhető
elérhető
Windbg (GUI)
támogatott
elérhető
Resmon.exe
nem elérhető
elérhető
Regedit
elérhető
elérhető
Fsutil.exe
elérhető
elérhető
Disksnapshot.exe
nem elérhető
elérhető
Diskpart.exe
elérhető
elérhető
Diskmgmt.msc
nem elérhető
elérhető
Devmgmt.msc
nem elérhető
elérhető
Szerverkezelő
nem elérhető
elérhető
Mmc.exe
nem elérhető
elérhető
Eventvwr
nem elérhető
elérhető
Wevtutil (Event lekérdezések)
elérhető
elérhető
Services.msc
nem elérhető
elérhető
Vezérlőpult
nem elérhető
elérhető
Windows Update (GUI)
nem elérhető
elérhető
Windows Intéző
nem elérhető
elérhető
Feladatkezelő
nem elérhető
elérhető
Feladatkezelő értesítések
nem elérhető
elérhető
Taskmgr
elérhető
elérhető
Internet Explorer vagy Edge
nem elérhető
elérhető
Beépített súgórendszer
nem elérhető
elérhető
Windows 10 Shell
nem elérhető
elérhető
Windows Media Player
nem elérhető
elérhető
PowerShell
elérhető
elérhető
PowerShell ISE
nem elérhető
elérhető
PowerShell IME
elérhető
elérhető
Mstsc.exe
nem elérhető
elérhető
Távasztali Szolgáltatások
elérhető
elérhető
Hyper-V Kezelő
nem elérhető
elérhető
Ahogyan látható, a Windows Core-ból nagyon sok mindent kiemeltek. Azokat a szolgáltatásokat és folyamatokat vágták ki, amelyek a rendszer GUI-jával kapcsolatosak, valamint mindenféle 'szemetet', amely egyértelműen nem lesz szükséges a konzolos virtuális gépünkön, például a Windows Media Player.
Majdnem mint Linux, de nem az
A Windows Server Core-t nagyon szeretném összehasonlítani a Linux disztribúciókkal, de valójában ez nem teljesen korrekt. Igen, ezek a rendszerek hasonlítanak egymásra a GUI és sok mellék szolgáltatás elhagyásával járó csökkentett erőforrás-felhasználás szempontjából, de a működési és a felépítési megközelítések alapján ez még mindig Windows, nem unix-rendszer.
A legegyszerűbb példa — a Linux kernel kézi összeszerelésével és azután a csomagok és szolgáltatások telepítésével, még a legkönnyebb Linux disztribúciót is át lehet alakítani valami nehézkes dologgá, ami hasonlít egy svájci bicskára (itt nagyon szeretnék viccelődni a Pythonnal, és betenni egy képet a 'Ha a programozási nyelvek fegyverek lennének' sorozatból, de ezt nem fogjuk megtenni). A Windows Core esetében sokkal kevesebb szabadságunk van, hiszen végül is a Microsoft termékével van dolgunk.
A Windows Server Core már egy kész összeállítással érkezik, a default kialakítást pedig a fenti táblázaton lehet értékelni. Ha szükséged van valami olyanra a támogatott lista mellett, amit nem kínál, akkor az hiányzó elemeket online kell hozzáadnod a konzolon. Azonban ne felejtsd el a Feature on demand és az összetevők letöltésének lehetőségét CAB fájlok formájában, amelyeket később hozzá lehet adni az installáció előtt. De ez a forgatókönyv nem működik, ha már a munka folyamán fedezted fel, hogy hiányzik valamelyik kiemelt szolgáltatás.
De ami lényegesen megkülönbözteti a Core verziót a teljes verziótól — az a rendszer frissítésének és a szolgáltatások hozzáadásának lehetősége a működés megszakítása nélkül. A Windows Core támogatja a csomagok 'meleg' telepítését, újraindítás nélkül. Az eredmények alapján, a gyakorlati megfigyelések szerint: a Windows Core-t futtató gépet ~6-szor ritkábban kell újraindítani, mint a Windows Server-t, azaz félévente, nem pedig havonta.
Az adminisztrátorok számára kellemes bónusz, hogy ha a rendszert a tervek szerint használják - konzolon, RDP nélkül - és nem alakítanak belőle egy második Windows Server-t, akkor rendkívül biztonságos lesz a teljes verzióhoz képest. Hiszen a Windows Server sérülékenységeinek többsége éppen az RDP-re és a felhasználók cselekedeteire vonatkozik, akik ezen az RDP-n keresztül teszik azt, amit nem kellene. Ez körülbelül olyan, mint Henry Ford története és a hozzáállása az autók színéhez: „Bármely vásárló bármilyen színű autót kaphat, amilyet csak akar, amennyiben az fekete». Így van a rendszerrel is: a felhasználó bármilyen módon kommunikálhat a rendszerrel, csak az a fontos, hogy ezt konzolon.
Windows Server 2019 Core telepítése és kezelése
Korábban említettük, hogy a Windows Core valójában Windows Server grafikus felület nélküli változata. Tehát szinte bármilyen Windows Server verziót használhatunk core-verzióként, azaz lemondhatunk a GUI-ról. A Windows Server 2019 termékcsalád esetében ez a 4 szerver verzióból 3: a core mód elérhető a Windows Server 2019 Standard Edition, Windows Server 2019 Datacenter és Hyper-V Server 2019 esetében, tehát ebből a listából csak a Windows Server 2019 Essentials esik ki.
Eközben a Windows Server Core telepítőcsomagot külön nem kell keresni. A Microsoft standard telepítőjében a core-verzió gyakorlatilag alapértelmezett, míg a GUI-val rendelkező verziót manuálisan kell kiválasztani:

A rendszert tényleg többféleképpen lehet kezelni, mint az egyetlen említett PowerShell, amit a gyártó alapértelmezettként ajánl. A Windows Server Core virtuális gépét legalább öt különböző módon lehet kezelni:
- Távollévő PowerShell;
- Távollévő Szerveradminisztrációs Eszközök (RSAT);
- Windows Admin Center;
- Sconfig;
- Szerverkezelő.
A legnagyobb érdeklődés a három első pozíció iránt mutatkozik: a standard PowerShell, RSAT és Windows Admin Center. Fontos azonban megérteni, hogy miközben az egyik eszköz előnyeit élvezzük, annak korlátozásait is alkalmazzuk.
A konzol lehetőségeit nem részletezzük, a PowerShell a PowerShell, a maga nyilvánvaló előnyeivel és hátrányaival. Az RSAT és a WAC esetében azonban a helyzet kicsit bonyolultabb.
A WAC hozzáférést biztosít olyan fontos rendszervezérlő elemekhez, mint a rendszerleíró adatbázis szerkesztése és a lemezek, valamint eszközök kezelése. Az RSAT az első esetben csak megtekintési módban működik, és nem engedi meg a változtatásokat, míg a lemezek és fizikai eszközök kezeléséhez a Remote Server Administration Tools GUI-ra van szükség, ami nem vonatkozik a mi esetünkre. Általában az RSAT nem képes fájlokkal, így frissítésekkel, programok telepítésével/uninstallálásával és a rendszerleíró adatbázis szerkesztésével foglalkozni.
▍Rendszerkezelés
WAC
RSAT
Komponenskezelés
Igen
Igen
Rendszerleíró adatbázis szerkesztő
Igen
Nem
Hálózatkezelés
Igen
Igen
Eseménynéző
Igen
Igen
Közös mappák
Igen
Igen
Lemezkezelés
Igen
Csak GUI-val rendelkező szerverekhez
Feladatütemező
Igen
Igen
Eszközkezelés
Igen
Csak GUI-val rendelkező szerverekhez
Fájlkezelés
Igen
Nem
Felhasználókezelés
Igen
Igen
Csoportkezelés
Igen
Igen
Tanúsítványkezelés
Igen
Igen
Frissítések
Igen
Nem
Programok eltávolítása
Igen
Nem
Rendszerfigyelő
Igen
Igen
Másrészről az RSAT teljes körű irányítást biztosít a gépen található szerepek felett, míg a Windows Admin Center ezen a téren gyakorlatilag semmit sem tud. Íme az RSAT és a WAC képességeinek összehasonlítása ezen a téren, az érthetőség kedvéért:
▍Szerepkezelés
WAC
RSAT
Fejlett Szálvédelem
ELŐNÉZET
Nem
Windows Defender
ELŐNÉZET
Igen
Konténerek
ELŐNÉZET
Igen
AD Adminisztratív Központ
ELŐNÉZET
Igen
AD Tartományok és Megbízások
Nem
Igen
AD helyek és szolgáltatások
Nem
Igen
DHCP
ELŐNÉZET
Igen
DNS
ELŐNÉZET
Igen
DFS Menedzser
Nem
Igen
GPO Menedzser
Nem
Igen
IIS Menedzser
Nem
Igen
Ezért már látható, hogy ha elhagyjuk a GUI-t és a PowerShell-t más vezérlőelemek javára, akkor nem lehet elégszünk meg egyetlen eszköz használatával: a teljes körű adminisztráláshoz minden fronton legalább az RSAT és WAC párosára lesz szükségünk.
Ugye tudni kell, hogy a WAC használatáért 150-180 MB memóriahasználatot kell fizetni. A Windows Admin Center kapcsolat során 3-4 munkamenetet hoz létre a szerver oldalán, amelyek nem törlődnek akkor sem, ha az eszközt lekapcsolják a virtuális gépről. Ezenkívül a WAC nem működik régi PowerShell verziókkal, így minimum PowerShell 5.0-ra lesz szükség. Mindez ellentétes a szigorú erőforrás-kezelési paradigmánkkal, de a kényelemért fizetni kell. A mi esetünkben ez memóriát jelent.
Egy másik lehetőség a Server Core kezelésére a GUI külső eszközökkel való telepítése, hogy ne kelljen azokat a tonnányi hulladékokat cipelni, amelyek a teljes kiadással együtt járnak az interfésszel.
Ebben az esetben két lehetőségünk van: az eredeti Explorer telepítése a rendszerre, vagy az Explorer++ használata. Alternatívaként bármely fájlkezelő is megfelelő: Total Commander, FAR Manager, Double Commander, és így tovább. Az utolsó előnyösebb, ha kritikus a memóriahatékonyság szempontjából. Az Explorer++-t vagy bármely más fájlkezelőt hálózati mappa létrehozásán keresztül adhatjuk hozzá, és indíthatjuk konzolon vagy ütemezőn keresztül.
A teljes értékű Explorer telepítése több lehetőséget ad a szoftverek kezelése során, amelyek UI-val vannak felszerelve. Ehhez a Server Core App Compatibility Feature on Demand (FOD) funkcióhoz, amely visszahozza a rendszerbe az MMC-t, Eventvwr-t, PerfMon-t, Resmont, Explorer.exe-t és még a Powershell ISE-t is. Azonban ezt meg kell fizetni, akárcsak a WAC esetében: körülbelül 150-200 megabájt RAM-ot véglegesen elveszítünk, amelyet könyörtelenül elfogyaszt az explorer.exe és más szolgáltatások. Még akkor is, ha a gépen nincs aktív felhasználó.


Így néz ki a memóriafogyasztás a rendszerben az alapértelmezett Explorer csomaggal rendelkező és nélküli gépeken.
Itt felmerül a jogos kérdés: miért mindez a PowerShell, FOD, fájlkezelők használata, ha bármilyen lépés balra vagy jobbra növeli a RAM-fogyasztást? Miért kell túlbonyolítani a dolgokat egy rakás eszközzel, hogy kényelmesen tudjunk dolgozni a Windows Server Core-on, amikor egyszerűen telepíthetjük a Windows Server 2016/2019-et és élhetünk, mint egy rendes ember?
Több oka van a Server Core használatának. Az első: a memóriafogyasztás szinte a felére csökken. Ha emlékszik, ez a feltétel állt cikkünk alapjaiban a kezdetektől fogva. Íme a memóriafogyasztás összehasonlításképpen a Windows Server 2019 esetén, hasonlítsa össze a fent látható képernyőképekkel:

És itt van, 1146 MB memóriafogyasztás a Core esetében a 655 MB helyett.
Ha feltételezzük, hogy a WAC-ra nincs szüksége, és az Explorer++-t használja az eredeti Explorer helyett, akkor még mindig nyeri majdnem fél hektárt minden egyes virtuális gépen, amely Windows Server alatt fut. Ha csak egy virtuális gép van, akkor a nyereség elhanyagolható, de ha öt van? Itt már számít a GUI megléte, különösen, ha nincs rá szüksége.
A második — bármilyen Windows Server Core körüli tánc nem oldja meg a Windows Server működésének fő problémáját — az RDP-t és annak biztonságát (pontosabban annak teljes hiányát). A Windows Core, még a FOD, RSAT és WAC formájában is, továbbra is RDP-mentes szerver, tehát nem exponált 95%-os támadással szemben.
A fennmaradó
Összességében a Windows Core csak egy kicsit „zsírosabb” mint bármelyik alap Linux disztribúció, viszont sokkal funkcionálisabb. Ha erőforrásokat szeretne felszabadítani és hajlandó a konzollal, WAC-cal és RSAT-tal dolgozni, valamint fájlkezelőket használni a teljes értékű GUI helyett — érdemes a Core-ra figyelni. Főleg mert így nem kell teljes Windowsért fizetnie, a megtakarított pénzt pedig az , például a RAM-ra költheti. A kényelem érdekében hozzáadtuk a Windows Server Core-t a .
Forrás: habr.com
