Поради високата консумация на ресурси, в средата на VPS доминират леки Linux дистрибуции: Mint, Colibri OS, Debian или Ubuntu, лишени от ненужна, в контекста на нашите задачи, обемна графична среда. Както казват, само конзолата, само хардкора! И наистина, това изобщо не е преувеличение: същият Debian стартира на 256 MB памет и едно ядро с такт 1 GHz, тоест почти на всяка 'пън'. За комфортна работа са необходими поне 512 MB и малко по-бърз процесор. Но какво ако ви кажем, че нещо подобно може да се постигне и на VPS с Windows? Не е необходимо да инсталирате обемист Windows Server, изискващ от три до четири гигабайта оперативна памет и поне два ядра с такт 1,4 GHz? Просто използвайте Windows Server Core — освободете се от GUI и част от услугите. За това как да стане ще говорим в статията.
Кой е този ваш Windows Server Core?
Ясна информация за това какво представлява Windows (server) Core няма дори на официалния сайт на Microsoft, по-скоро всичко е толкова заплетено, че не е веднага ясно, но първите споменавания датират още от епохата на Windows Server 2008. В същината си, Windows Core е работоспособно ядро на Windows Server (изненадващо!), "стесняващо" се по размера на собственото си GUI и приблизително половината от страничните услуги.
Основната особеност на Windows Core е ниските изисквания към хардуера и пълното управление чрез PowerShell.
Ако се обърнем към сайта на Microsoft и проверим техническите изисквания, то за стартиране на Windows Server 2016/2019 са необходими поне 2 гига оперативна памет и минимум едно ядро с такт 1,4 GHz. Но всички ние разбираме, че с такава конфигурация можем да очакваме само стартиране на системата, но определено не и комфортна работа на нашата ОС. Именно по тази причина за работа с Windows Server обикновено се отреждат повече памет и минимум 2 ядра/4 потока от процесора, ако изобщо не им се предоставя скъпа физическа машина на някой Xeon вместо евтина виртуалка.
Същевременно, самото ядро на сървърната система изисква само 512 MB памет, а ресурсите на процесора, които бяха окупирани от GUI просто за да бъде визуализирано на екрана и да поддържа активни многобройни услуги, могат да бъдат насочени към нещо по-полезно.
Ето сравнение на поддържаните услуги от Windows Core и пълноценен Windows Server от официалния сайт на Microsoft:
application
server core
server withdesktop experience
Команден ред
достъпен
достъпен
Windows PowerShell/ Microsoft .NET
достъпен
достъпен
Perfmon.exe
не е наличен
достъпен
Windbg (GUI)
поддържан
достъпен
Resmon.exe
не е наличен
достъпен
Regedit
достъпен
достъпен
Fsutil.exe
достъпен
достъпен
Disksnapshot.exe
не е наличен
достъпен
Diskpart.exe
достъпен
достъпен
Diskmgmt.msc
не е наличен
достъпен
Devmgmt.msc
не е наличен
достъпен
Server Manager
не е наличен
достъпен
Mmc.exe
не е наличен
достъпен
Eventvwr
не е наличен
достъпен
Wevtutil (квартира на събития)
достъпен
достъпен
Services.msc
не е наличен
достъпен
Control Panel
не е наличен
достъпен
Windows Update (GUI)
не е наличен
достъпен
Windows Explorer
не е наличен
достъпен
Taskbar
не е наличен
достъпен
Уведомления на лентата
не е наличен
достъпен
Taskmgr
достъпен
достъпен
Internet Explorer или Edge
не е наличен
достъпен
Вградена помощна система
не е наличен
достъпен
Обвивка на Windows 10
не е наличен
достъпен
Windows Media Player
не е наличен
достъпен
PowerShell
достъпен
достъпен
PowerShell ISE
не е наличен
достъпен
PowerShell IME
достъпен
достъпен
Mstsc.exe
не е наличен
достъпен
Remote Desktop Services
достъпен
достъпен
Hyper-V Manager
не е наличен
достъпен
Както е видно, от Windows Core е премахнато много. Изрязани са услуги и процеси, свързани с GUI на системата, както и всевъзможен „мусор“, който със сигурност няма да е необходим на нашата конзолна виртуалка, например, Windows Media Player.
Почти като Linux, но не съвсем
Windows Server Core много иска да бъде сравняван с дистрибуции на Linux, но наистина не е съвсем коректно. Да, тези системи си приличат по отношение на намаленото потребление на ресурси заради отказа от GUI и много вторични услуги, но по отношение на експлоатацията и някои подходи към сглобяването, това все пак е Windows, а не unix-система.
Примерът с ръчното сглобяване на ядрото на Linux и последващата инсталация на пакети и услуги е изключително прост — дори и най-леките Linux дистрибуции могат да се превърнат в нещо тежко и подобно на швейцарския нож. В Windows Core обаче такава свобода е много по-малко, защото все пак имаме работа с продукт на Microsoft.
Windows Server Core идва вече като готова система, а стандартната конфигурация може да бъде оценена по таблицата по-горе. Ако ви е нужно нещо от списъка с неподдържани елементи, тогава ще трябва онлайн чрез конзолата да добавяте липсващите елементи. Въпреки това, не бива да забравяте за Feature on demand и възможността да изтеглите компоненти като CAB файлове, които след това могат да бъдат добавени в системата преди инсталацията. Но този сценарий не работи, ако вече в процеса на работа установите, че ви липсва някоя от изрязани услуги.
Но това, което отличава версията Core от пълната, е възможността за обновление на системата и добавяне на услуги без спиране на работата. Windows Core поддържа инсталацията на пакети „на горещо“, без ребут. В резултат на практически наблюдения: машината, управлявана от Windows Core, трябва да се рестартира приблизително 6 пъти по-рядко в сравнение с Windows Server, тоест на всеки 6 месеца, а не на всеки месец.
Приятен е бонусът за администраторите, че ако системата се използва както е замислено — през конзолата, без RDP — и не се превръща във втори Windows Server, тя става изключително сигурна в сравнение с пълната версия. Въпреки това, повечето уязвимости на Windows Server са свързани именно с RDP и действията на потребителя, който чрез този RDP прави неща, които не следва да прави. Това е подобно на историята с Хенри Форд и неговото отношение към цвета на автомобилите: „Всеки клиент може да има автомобил в какъвто цвят иска, стига да е черен“. Същото е и със системата: потребителят може да общува със системата по какъвто и да било начин, стига да го прави чрез конзолата.
Инсталиране и управление на Windows Server 2019 Core
По-рано споменахме, че Windows Core е всъщност Windows Server без графичен интерфейс. Тоест, можете да използвате почти всяка версия на Windows Server като core-версия, отказвайки се от GUI. За продуктите от семейството на Windows Server 2019, 3 от 4 серверни версии предлагат core-режим: той е наличен за Windows Server 2019 Standard Edition, Windows Server 2019 Datacenter и Hyper-V Server 2019, което означава, че единствено Windows Server 2019 Essentials не попада в този списък.
В същото време пакетът за инсталиране на Windows Server Core не е нужно да се търси особено. В стандартния инсталатор на Microsoft core-версията се предлага по подразбиране, докато версията с GUI трябва да бъде избрана ръчно:

Наистина има повече от един начин за управление на системата, освен споменатия PowerShell, който производителят предлага по подразбиране. Управлението на виртуална машина на Windows Server Core може да се осъществи с минимум пет различни метода:
- Remote PowerShell;
- Remote Server Administration Tools (RSAT);
- Windows Admin Center;
- Sconfig;
- Server Manager.
Най-голям интерес будят първите три опции: стандартният PowerShell, RSAT и Windows Admin Center. Важно е обаче да разберем, че получавайки предимствата на един от инструментите, ние също така поемаме и наложените от него ограничения.
Не ще описваме възможностите на конзолата, PowerShell е просто PowerShell, с очевидно своите плюсове и минуси. С RSAT и WAC всичко е малко по-сложно.
WAC предоставява достъп до важни елементи за управление на системата, като редактиране на регистъра и управление на дискове и устройства. RSAT в първия случай работи само в режим на преглед и не позволява да се правят изменения, а за управление на дискове и физически устройства Remote Server Administration Tools е необходим GUI, което не е при нашия случай. Всъщност, RSAT не може да работи с файлове и съответно с ъпдейти, инсталиране/деинсталиране на програми в редактиране на регистъра.
▍Управление на системата
WAC
RSAT
Управление на компонентите
Да
Да
Редактор на регистъра
Да
Не
Управление на мрежата
Да
Да
Преглед на събитията
Да
Да
Общи папки
Да
Да
Управление на дисковете
Да
Само за сървъри с GUI
Планировчик на задачите
Да
Да
Управление на устройствата
Да
Само за сървъри с GUI
Управление на файлове
Да
Не
Управление на потребителите
Да
Да
Управление на групите
Да
Да
Управление на сертификатите
Да
Да
Актуализации
Да
Не
Деинсталиране на програми
Да
Не
Системен монитор
Да
Да
От друга страна, RSAT ни дава пълен контрол върху ролите на машината, докато Windows Admin Center не може в този аспекті буквално нищо. Ето сравнение на възможностите на RSAT и WAC в този аспект, за нагледност:
▍Управление на ролите
WAC
RSAT
Advanced Thread Protection
ПРЕВЬЮ
Не
Windows Defender
ПРЕВЬЮ
Да
Контейнери
ПРЕВЬЮ
Да
AD Administrative Center
ПРЕВЬЮ
Да
AD Domain and Trusts
Не
Да
AD sites and services
Не
Да
DHCP
ПРЕВЬЮ
Да
DNS
ПРЕВЬЮ
Да
Диспетчер DFS
Не
Да
Диспетчер GPO
Не
Да
Диспетчер IIS
Не
Да
Така че вече е видно, че при отказ от GUI и PowerShell в полза на други елементи за управление, няма да успеем да се изправим само с използването на един моноинструмент: за пълно администриране на всички фронтове, ни е необходима поне комбинация от RSAT и WAC.
При това трябва да помним, че използването на WAC ще струва 150-180 мегабайта оперативна памет. Windows Admin Center при свързване създава 3-4 сесии на страната на сървъра, които не се убиват дори при изключване на инструмента от виртуалната машина. Освен това WAC не работи със стари версии на PowerShell, така че ще ви трябва поне PowerShell 5.0. Всичко това е в противоречие с нашата парадигма за строга икономия на ресурси, но за комфорт трябва да се плаща. В нашия случай — с оперативната памет.
Още един вариант за управление на Server Core — инсталиране на GUI през трети страни, за да не се носи целият този тон боклук, който идва с пълната версия заедно с интерфейса.
В този случай имаме два варианта: да инсталираме оригиналния Explorer на системата или да използваме Explorer++. Като алтернатива на последния подхожда всякакъв файлов мениджър: Total Commander, FAR Manager, Double Commander и така нататък. Последният е предпочитан, ако спестяването на оперативна памет е критично за вас. Можете да добавите Explorer++ или друг файлов мениджър, създавайки мрежова папка и стартирайки през конзолата или планировчика.
Инсталирането на пълноценен Explorer ще ни предостави повече възможности относно работата с софтуера, оборудван с UI. За целта ще към Server Core App Compatibility Feature on Demand (FOD), който ще върне MMC, Eventvwr, PerfMon, Resmon, Explorer.exe и дори Powershell ISE в системата. Обаче за това ще трябва да платим, както е и с WAC: безвъзвратно ще загубим около 150-200 мегабайта оперативна памет, които безмилостно ще използва explorer.exe и други услуги. Дори ако на машината няма активен потребител.


Така изглежда потреблението на памет от системата на машини с оригиналния Explorer пакет и без него.
Тук възниква закономерен въпрос: защо всички тези маневри с PowerShell, FOD и файлови мениджъри, ако всяка стъпка наляво-надясно увеличава потреблението на оперативна памет? Защо да се обгръщаме с куп инструменти и да се движим насам-натам, за да си осигурим комфортна работа на Windows Server Core, когато можем просто да инсталираме Windows Server 2016/2019 и да живеем като нормални хора?
Има няколко причини за използването на Server Core. Първата: почти двойно по-ниско потребление на памет. Ако помните, това условие беше в основата на статията ни още в самото начало. Ето за сравнение, потреблението на памет на Windows Server 2019, сравнете съсScreenshot-ите малко по-горе:

И ето, 1146 MB потребявана памет вместо 655 MB на Core.
Ако предположим, че WAC не ви е необходим и ще използвате Explorer++ вместо оригиналния Explorer, то вие все още ще спечелите почти половин хектар на всяка виртуална машина под управление на Windows Server. Ако виртуалната машина е една, печалбата е незначителна, но ако са пет? Тогава наличието на GUI има значение, особено ако не ви е нужно.
Второто — каквито и да са танците около Windows Server Core, те няма да решат основния проблем с експлоатацията на Windows Server — RDP и неговата безопасност (по-точно, напълно нейното отсъствие). Windows Core, дори и в конфигурация с FOD, RSAT и WAC, все още е сървър без RDP, тоест не е уязвим на 95% от съществуващите атаки.
В остатък
Общо взето, Windows Core е само леко „по-дебел“ от който и да е стандартен Linux дистрибутив, но е много по-функционален. Ако търсите освобождаване на ресурси и сте готови да работите с конзолата, WAC и RSAT, да използвате файлови мениджъри вместо пълноценен GUI — Core определено си струва да бъде разгледан. Още повече, че с него можете да не плащате за пълна версия на Windows и спестените средства да инвестирате в ъпгрейд на своя , добавяйки там, например, RAM. За улеснение, добавихме Windows Server Core в нашия .
Източник: habr.com
