Klämning av Windows Server på en lågeffekts VPS med Windows Server Core

Klämning av Windows Server på en lågeffekts VPS med Windows Server Core
På grund av frossandet av Windows-system domineras VPS-miljön av lätta Linux-distributioner: Mint, Colibri OS, Debian eller Ubuntu, utan en tung skrivbordsmiljö som är onödig för våra syften. Som de säger, bara konsol, bara hardcore! Och i själva verket är detta inte alls en överdrift: samma Debian startar på 256 MB minne och en kärna med en 1 Ghz klocka, det vill säga på nästan vilken "stubb som helst". För bekvämt arbete behöver du minst 512 MB och en något snabbare processor. Men vad händer om vi berättade att du kan göra ungefär samma sak på en VPS som kör Windows? Varför behöver du inte rulla ut en tung Windows Server, som kräver tre till fyra hektar RAM och minst ett par kärnor klockade till 1,4 GHz? Använd bara Windows Server Core - bli av med GUI och vissa tjänster. Vi kommer att prata om hur man gör detta i artikeln.

Vem är denna Windows Server Core?

Det finns ingen tydlig information om vad Windows (server) Core är ens på Mikes officiella webbplats, eller snarare, allt är så förvirrande där att du inte direkt kommer att förstå, men de första omnämnandena går tillbaka till eran av Windows Server 2008 I huvudsak är Windows Core en fungerande Windows-kärnserver (plötsligt!), "tunnare" med storleken på sitt eget GUI och ungefär hälften av sidotjänsterna.

Huvudfunktionen hos Windows Core är dess krävande hårdvara och fullständiga konsolkontroll via PowerShell.

Om du går till Microsofts webbplats och kontrollerar de tekniska kraven behöver du för att starta Windows Server 2016/2019 minst 2 gig RAM och minst en kärna med en klockhastighet på 1,4 GHz. Men vi förstår alla att med en sådan konfiguration kan vi bara förvänta oss att systemet startar, men absolut inte den bekväma driften av vårt operativsystem. Det är av denna anledning som Windows Server vanligtvis tilldelas mer minne och minst 2 kärnor/4 trådar från processorn, om de inte förser den med en dyr fysisk maskin på någon Xeon, istället för en billig virtuell maskin.

Samtidigt kräver själva kärnan i själva serversystemet bara 512 MB minne, och de processorresurser som förbrukades av GUI helt enkelt för att ritas upp på skärmen och hålla dess många tjänster igång kan användas till något mer användbart.

Här är en jämförelse av Windows Core-tjänster som stöds direkt och en komplett Windows Server från den officiella Microsoft-webbplatsen:

ansökan
server kärna
server medskrivbordsupplevelse

Kommandotolken
tillgänglig
tillgänglig

Windows PowerShell/Microsoft .NET
tillgänglig
tillgänglig

Perfmon.exe
ej tillgänglig
tillgänglig

Windbg (GUI)
uppburen
tillgänglig

Resmon.exe
ej tillgänglig
tillgänglig

Regedit
tillgänglig
tillgänglig

Fsutil.exe
tillgänglig
tillgänglig

Disksnapshot.exe
ej tillgänglig
tillgänglig

Diskpart.exe
tillgänglig
tillgänglig

diskmgmt.msc
ej tillgänglig
tillgänglig

devmgmt.msc
ej tillgänglig
tillgänglig

server manager
ej tillgänglig
tillgänglig

mmc.exe
ej tillgänglig
tillgänglig

Eventvwr
ej tillgänglig
tillgänglig

Wevtutil (händelsfrågor)
tillgänglig
tillgänglig

Services.msc
ej tillgänglig
tillgänglig

kontrollpanelen
ej tillgänglig
tillgänglig

Windows Update (GUI)
ej tillgänglig
tillgänglig

Utforskaren
ej tillgänglig
tillgänglig

Aktivitetsfältet fältet~~POS=HEADCOMP
ej tillgänglig
tillgänglig

Aviseringar i aktivitetsfältet
ej tillgänglig
tillgänglig

taskmgr
tillgänglig
tillgänglig

Internet Explorer eller Edge
ej tillgänglig
tillgänglig

Inbyggt hjälpsystem
ej tillgänglig
tillgänglig

Windows 10 Shell
ej tillgänglig
tillgänglig

Windows mediaspelare
ej tillgänglig
tillgänglig

Power
tillgänglig
tillgänglig

PowerShell ISE
ej tillgänglig
tillgänglig

PowerShell IME
tillgänglig
tillgänglig

Mstsc.exe
ej tillgänglig
tillgänglig

Fjärrskrivbordstjänster
tillgänglig
tillgänglig

Hyper-V Manager
ej tillgänglig
tillgänglig

Som du kan se har mycket klippts bort från Windows Core. Tjänsterna och processerna som är förknippade med systemets GUI, såväl som alla "skräp" som definitivt inte behövs på vår virtuella konsolmaskin, till exempel Windows Media Player, gick under kniven.

Nästan som Linux, men inte det

Jag vill verkligen jämföra Windows Server Core med Linux-distributioner, men det är faktiskt inte helt korrekt. Ja, dessa system liknar varandra när det gäller minskad resursförbrukning på grund av övergivandet av GUI och många sidotjänster, men när det gäller drift och vissa metoder för montering är detta fortfarande Windows, och inte ett Unix-system.

Det enklaste exemplet är att genom att manuellt bygga Linux-kärnan och sedan installera paket och tjänster kan även en lätt Linux-distribution förvandlas till något tungt och likt en schweizisk armékniv (här vill jag verkligen dra ett dragspelsskämt om Python och infoga en bild från serien "If Programming Languages ​​Weare Weapons", men det gör vi inte). I Windows Core finns det mycket mindre sådan frihet, eftersom vi trots allt har att göra med en Microsoft-produkt.

Windows Server Core kommer färdiggjord, vars standardkonfiguration kan uppskattas från tabellen ovan. Om du behöver något från listan som inte stöds måste du lägga till de saknade elementen online via konsolen. Det är sant att du inte bör glömma Feature on demand och möjligheten att ladda ner komponenter som CAB-filer, som sedan kan läggas till i monteringen före installationen. Men det här skriptet fungerar inte om du redan under processen upptäcker att du saknar någon av klipptjänsterna.

Men det som skiljer Core-versionen från den fullständiga versionen är möjligheten att uppdatera systemet och lägga till tjänster utan att sluta arbeta. Windows Core stöder varmrullning av paket, utan omstart. Som ett resultat, baserat på praktiska observationer: en maskin som kör Windows Core måste startas om ~6 gånger mindre ofta än en som kör Windows Server, det vill säga en gång var sjätte månad, och inte en gång i månaden.

En trevlig bonus för administratörer är att om systemet används som avsett - genom konsolen, utan RDP - och inte förvandlas till en andra Windows Server, så blir det extremt säkert jämfört med den fullständiga versionen. När allt kommer omkring beror majoriteten av Windows Server-sårbarheter på RDP och handlingar från användaren som genom just denna RDP gör något som inte bör göras. Det är ungefär som historien med Henry Ford och hans inställning till färgen på en bil: "Alla kunder kan få en bil målad vilken färg han vill så länge den är svart" Det är samma sak med systemet: användaren kan kommunicera med systemet på vilket sätt som helst, huvudsaken är att han gör det genom konsol.

Installera och hantera Windows Server 2019 Core

Vi nämnde tidigare att Windows Core i huvudsak är Windows Server utan GUI-omslaget. Det vill säga, du kan använda nästan vilken version av Windows Server som helst som en kärnversion, det vill säga överge GUI. För produkter i Windows Server 2019-familjen är detta 3 av 4 serverbyggen: kärnläge är tillgängligt för Windows Server 2019 Standard Edition, Windows Server 2019 Datacenter och Hyper-V Server 2019, det vill säga endast Windows Server 2019 Essentials är undantagna från denna lista.

I det här fallet behöver du egentligen inte leta efter installationspaketet för Windows Server Core. I Microsofts standardinstallationsprogram erbjuds kärnversionen bokstavligen som standard, medan GUI-versionen måste väljas manuellt:

Klämning av Windows Server på en lågeffekts VPS med Windows Server Core
Faktum är att det finns fler alternativ för att hantera systemet än det nämnda PowerShell, som erbjuds av tillverkaren som standard. Du kan hantera en virtuell maskin på Windows Server Core på minst fem olika sätt:

  • Fjärr PowerShell;
  • Remote Server Administration Tools (RSAT);
  • Windows Admin Center;
  • Sconfig;
  • Serverhanterare.

De tre första positionerna är av största intresse: standard PowerShell, RSAT och Windows Admin Center. Det är dock viktigt att förstå att även om vi får fördelarna med ett av verktygen, får vi också de begränsningar det medför.

Vi kommer inte att beskriva konsolens funktioner; PowerShell är PowerShell, med dess uppenbara för- och nackdelar. Med RSAT och WAC är allt lite mer komplicerat. 

WAC ger dig tillgång till viktiga systemkontroller som att redigera registret och hantera diskar och enheter. RSAT i det första fallet fungerar bara i visningsläge och tillåter dig inte att göra några ändringar, och för att hantera diskar och fysiska enheter Remote Server Administration Tools kräver ett GUI, vilket inte är fallet i vårt fall. I allmänhet kan RSAT inte arbeta med filer och följaktligen uppdateringar, installation/borttagning av program vid redigering av registret.

▍Systemhantering

 

WAC
RSAT

Komponenthantering
Ja
Ja

Registerredigerare
Ja
Ingen

Nätverkshantering
Ja
Ja

Visa händelser
Ja
Ja

Delade mappar
Ja
Ja

Diskhantering
Ja
Endast för servrar med GUI

Schemaläggaren
Ja
Ja

Enhetshantering
Ja
Endast för servrar med GUI

Filhantering
Ja
Ingen

Användarhantering
Ja
Ja

Koncernledning
Ja
Ja

Certifikathantering
Ja
Ja

Uppdateringar
Ja
Ingen

Avinstallera program
Ja
Ingen

Systemövervakare
Ja
Ja

Å andra sidan ger RSAT oss fullständig kontroll över rollerna på maskinen, medan Windows Admin Center kan bokstavligen ingenting göra i detta avseende. Här är en jämförelse av funktionerna hos RSAT och WAC i denna aspekt, för tydlighetens skull:

▍Rollhantering

 

WAC
RSAT

Avancerat trådskydd
FÖRHANDSVISNING
Ingen

Windows Defender
FÖRHANDSVISNING
Ja

behållare
FÖRHANDSVISNING
Ja

AD Administrativt center
FÖRHANDSVISNING
Ja

AD-domän och förtroende
Ingen
Ja

AD-webbplatser och tjänster
Ingen
Ja

DHCP-
FÖRHANDSVISNING
Ja

DNS
FÖRHANDSVISNING
Ja

DFS Manager
Ingen
Ja

GPO Manager
Ingen
Ja

IIS Manager
Ingen
Ja

Det vill säga, det är redan klart att om vi överger GUI och PowerShell till förmån för andra kontroller kommer vi inte att kunna komma undan med att använda något slags mono-verktyg: för full administration på alla fronter kommer vi att behöva minst en kombination av RSAT och WAC.

Du måste dock komma ihåg att du måste betala 150-180 megabyte RAM för att använda WAC. När det är anslutet skapar Windows Admin Center 3-4 sessioner på serversidan, som inte dödas även när verktyget kopplas bort från den virtuella maskinen. WAC fungerar inte heller med äldre versioner av PowerShell, så du behöver minst PowerShell 5.0. Allt detta strider mot vårt paradigm av åtstramning, men du måste betala för komfort. I vårt fall - RAM.

Ett annat alternativ för att hantera Server Core är att installera det grafiska användargränssnittet med hjälp av tredjepartsverktyg, för att inte dra runt de massor av skräp som följer med gränssnittet i en fullfjädrad sammansättning.

I det här fallet har vi två alternativ: rulla ut den ursprungliga Explorer till systemet eller använd Explorer++. Som ett alternativ till det senare är vilken filhanterare som helst lämplig: Total Commander, FAR Manager, Double Commander, och så vidare. Det senare är att föredra om det är viktigt för dig att spara RAM. Du kan lägga till Explorer++ eller någon annan filhanterare genom att skapa en nätverksmapp och starta den via konsolen eller schemaläggaren.

Att installera en fullfjädrad Explorer kommer att ge oss fler möjligheter när det gäller att arbeta med programvara utrustad med ett användargränssnitt. För detta vi kommer att behöva kontakta till Server Core App Compatibility Feature on Demand (FOD) som kommer att returnera MMC, Eventvwr, PerfMon, Resmon, Explorer.exe och till och med Powershell ISE till systemet. Vi kommer dock att behöva betala för detta, som är fallet med WAC: vi kommer oåterkalleligt att förlora cirka 150-200 megabyte RAM, som skoningslöst kommer att slukas upp av explorer.exe och andra tjänster. Även om det inte finns någon aktiv användare på maskinen.

Klämning av Windows Server på en lågeffekts VPS med Windows Server Core
Klämning av Windows Server på en lågeffekts VPS med Windows Server Core
Så här ser minnesförbrukningen i systemet ut på maskiner med och utan det inbyggda Explorer-paketet.

En logisk fråga uppstår här: varför all denna dans med PowerShell, FOD, filhanterare, om något steg åt vänster eller höger leder till en ökning av RAM-förbrukningen? Varför smörja in dig med en massa verktyg och blanda från sida till sida för att säkerställa bekvämt arbete på Windows Server Core, när du bara kan ladda ner Windows Server 2016/2019 och leva som en vit man?

Det finns flera skäl att använda Server Core. För det första: nuvarande minnesförbrukning är nästan hälften så mycket. Om du kommer ihåg var detta tillstånd grunden för vår artikel i början. För jämförelse, här är minnesförbrukningen för Windows Server 2019, jämför med skärmdumparna precis ovan:

Klämning av Windows Server på en lågeffekts VPS med Windows Server Core
Och så, 1146 MB minnesförbrukning istället för 655 MB på Core. 

Förutsatt att du inte behöver WAC och kommer att använda Explorer++ istället för den ursprungliga Explorer, då kan du du kommer fortfarande att vinna nästan ett halvt hektar på varje virtuell maskin som kör Windows Server. Om det bara finns en virtuell maskin är ökningen obetydlig, men om det finns fem av dem? Det är här det är viktigt att ha ett GUI, speciellt om du inte behöver det. 

För det andra, några danser runt Windows Server Core kommer inte att leda till att du bekämpar huvudproblemet med att driva Windows Server - RDP och dess säkerhet (mer exakt, dess fullständiga frånvaro). Windows Core, även belagd med FOD, RSAT och WAC, är fortfarande en server utan RDP, det vill säga den är inte mottaglig för 95 % av befintliga attacker.

Återstående

I allmänhet är Windows Core bara något fetare än någon vanlig Linux-distribution, men den är mycket mer funktionell. Om du behöver frigöra resurser och är redo att arbeta med konsolen, WAC och RSAT, och använda filhanterare istället för ett fullfjädrat GUI, så är Core värt att uppmärksamma. Dessutom kommer du att kunna undvika att betala extra för ett fullfjädrat Windows och spendera de sparade pengarna på att uppgradera din VPS, lägga till där, till exempel, RAM. För enkelhetens skull har vi lagt till Windows Server Core till vår marknad.

Klämning av Windows Server på en lågeffekts VPS med Windows Server Core

Källa: will.com

Lägg en kommentar