Стискаем Windows Server на маломощна VPS с помощта на Windows Server Core

Стискаем Windows Server на маломощна VPS с помощта на Windows Server Core
Поради ненаситността на Windows системи в средата на VPS, доминират по-леките Linux дистрибуции: Mint, Colibri OS, Debian или Ubuntu, лишени от ненужната за нашите цели тежка работна среда. Както се казва, само конзолата, само хардкор! И наистина, това не е никакво преувеличение: същият Debian стартира на 256 MB памет и едно ядро с такт 1 GHz, тоест почти на който и да е 'пън'. За комфортна работа са необходими минимум 512 MB и немного по-бързо CPU. Но какво ако ви кажем, че подобно нещо може да се направи и на 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 withдесктопно преживяване

Команден интерпретатор
на разположение
на разположение

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
не е на разположение
на разположение

Контролен панел
не е на разположение
на разположение

Windows Update (GUI)
не е на разположение
на разположение

Windows Explorer
не е на разположение
на разположение

Задачи
не е на разположение
на разположение

Уведомления за задачи
не е на разположение
на разположение

Taskmgr
на разположение
на разположение

Internet Explorer или Edge
не е на разположение
на разположение

Вградена помощна система
не е на разположение
на разположение

Windows 10 Shell
не е на разположение
на разположение

Windows Media Player
не е на разположение
на разположение

PowerShell
на разположение
на разположение

PowerShell ISE
не е на разположение
на разположение

PowerShell IME
на разположение
на разположение

Mstsc.exe
не е на разположение
на разположение

Remote Desktop Services
на разположение
на разположение

Hyper-V Manager
не е на разположение
на разположение

Както виждате, от Windows Core е изрязано много. Под ножа отидоха услуги и процеси, свързани с графичния интерфейс на системата, както и всичко ненужно, което със сигурност няма да е необходимо на нашия конзолен виртуален машина, например, Windows Media Player.

Почти като Linux, но не е той

Windows Server Core много иска да се сравнява с Linux дистрибуции, но всъщност това не е съвсем коректно. Да, системите са сходни по отношение на понижено потребление на ресурси благодарение на отказа от GUI и много странични услуги, но по отношение на експлоатацията и някои подходи към компилацията, все още е Windows, а не unix система.

Най-простият пример — с помощта на ръчна компилация на ядрото на Linux и последваща инсталация на пакети и услуги, дори най-леката Linux дистрибуция може да се превърне в нещо обемисто и подобно на швейцарски нож (тук много искаме баянисто да шегуваме за Python и да вмъкнем изображение от серията «Ако програмиращите езици бяха оръжия», но няма да го направим). В Windows Core това е много по-малко, тъй като работим с продукт на Microsoft.

Windows Server Core идва вече готова сборка, чийто стандартен комплект можете да оцените по таблицата по-горе. Ако ви е необходимо нещо от списъка с неподдържани, ще трябва онлайн чрез конзолата да добавите липсващите елементи. Въпреки това, не трябва да забравяте за Feature on demand и възможността да изтеглите компоненти като CAB файлове, които след това могат да бъдат добавени в сборката преди инсталирането. Но този сценарий не работи, ако вече по време на работа откриете, че ви липсва някаква от изрязаният услуги.

Но това, което изгодно отличава Core версията от пълната — е възможността за актуализиране на системата и добавяне на услуги без спиране на работата. Windows Core поддържа разгръщане на пакети «на горещо», без ребут. В резултат на базата на практически наблюдения: машината, управлявана от Windows Core, трябва да се перезарежда приблизително 6 пъти по-рядко в сравнение с управляваната от Windows Server, т.е. веднъж на половин година, а не веднъж на месец.

Приятен бонус за администраторите, че ако системата се използва както е замислена — през конзолата, без RDP — и не се превръща във втори Windows Server, тя става изключително сигурна в сравнение с пълната версия. Все пак, повечето уязвимости на Windows Server са свързани именно с RDP и действията на потребителя, който чрез този RDP прави неща, които не бива. Това е подобно на историята с Хенри Форд и отношението му към цвета на автомобила: «Всеки клиент може да има кола, боядисана в цвят, който желае, стига да е черен». Така е и със системата: потребителят може да взаимодейства със системата по всякакъв начин, важно е само да го прави през конзолата.

Инсталиране и управление на Windows Server 2019 Core

По-рано споменахме, че Windows Core е фактически Windows Server без графичен интерфейс (GUI). Тоест можете да използвате почти всяка версия на 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 трябва да бъде избрана ръчно:

Стискаем Windows Server на маломощна VPS с помощта на Windows Server Core
На практика има повече от един начин за управление на системата, освен споменатия 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 Manager
Не
Да

GPO Manager
Не
Да

IIS Manager
Не
Да

Тоест вече е ясно, че при отказ от 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 и другите услуги. Дори когато няма активен потребител на машината.

Стискаем Windows Server на маломощна VPS с помощта на Windows Server Core
Стискаем Windows Server на маломощна VPS с помощта на Windows Server Core
Ето как изглежда потреблението на паметта от системата на машини с оригиналния пакет Explorer и без него.

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

Причините за използване на Server Core са няколко. Първата: в него потреблението на памет е почти два пъти по-малко. Ако помните, това условие беше основата на нашата статия в самото начало. Ето за сравнение, потреблението на паметта на Windows Server 2019, сравнете със скрийншотовете малко по-горе:

Стискаем Windows Server на маломощна VPS с помощта на Windows Server Core
И ето, 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 и спестените пари да вложите в увеличаване на ресурси, VPS, добавяйки например RAM. За удобство, добавихме Windows Server Core в нашия маркетплейс.

Стискаем Windows Server на маломощна VPS с помощта на Windows Server Core

Източник: habr.com

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster