Притискане на 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 и малко по-бърз процесор. Но какво ще стане, ако ви кажем, че можете да направите приблизително същото на VPS, работещ под Windows? Защо не е необходимо да пуснете тежък Windows Server, който изисква три до четири хектара RAM и поне няколко ядра с тактова честота 1,4 GHz? Просто използвайте Windows Server Core - отървете се от GUI и някои услуги. Ще говорим как да направите това в статията.

Кой е този Windows Server Core?

Няма ясна информация за това какво е Windows (сървър) Core дори на официалния уебсайт на Mikes, или по-скоро всичко е толкова объркващо там, че няма да разберете веднага, но първите споменавания датират от ерата на Windows Server 2008 , По същество Windows Core е работещ сървър на ядрото на Windows (внезапно!), „по-тънък“ от размера на собствения си GUI и около половината от страничните услуги.

Основната характеристика на Windows Core е неговият неизискващ хардуер и пълен конзолен контрол чрез PowerShell.

Ако отидете на уебсайта на Microsoft и проверите техническите изисквания, тогава за стартиране на Windows Server 2016/2019 ще ви трябват поне 2 гига RAM и поне едно ядро ​​с тактова честота 1,4 GHz. Но всички разбираме, че с такава конфигурация можем да очакваме само стартиране на системата, но със сигурност не и удобната работа на нашата ОС. Именно поради тази причина на Windows Server обикновено се отделя повече памет и поне 2 ядра/4 нишки от процесора, ако не му предоставят скъпа физическа машина на някой Xeon, вместо евтина виртуална машина.

В същото време ядрото на самата сървърна система изисква само 512 MB памет и тези ресурси на процесора, които са били консумирани от GUI просто за да бъдат изобразени на екрана и да поддържат многобройните си услуги, могат да бъдат използвани за нещо по-полезно.

Ето сравнение на услугите на Windows Core, поддържани от кутията, и пълен Windows Server от официалния уебсайт на Microsoft:

прилагане
сървърно ядро
сървър снастолен опит

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

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

Taskbar
не е наличен
на разположение

Известия в лентата на задачите
не е наличен
на разположение

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

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

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

Обвивка на Windows 10
не е наличен
на разположение

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

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

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

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

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

Услуги за отдалечен работен плот
на разположение
на разположение

Мениджър Hyper-V
не е наличен
на разположение

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

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

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

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

Windows Server Core се доставя готов, чиято конфигурация по подразбиране може да се оцени от таблицата по-горе. Ако имате нужда от нещо от неподдържания списък, ще трябва да добавите липсващите елементи онлайн през конзолата. Вярно е, че не трябва да забравяте функцията при поискване и възможността за изтегляне на компоненти като 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 като основна версия, тоест изоставете GUI. За продукти от семейството на Windows Server 2019 това е 3 от 4 сървърни компилации: основният режим е наличен за Windows Server 2019 Standard Edition, Windows Server 2019 Datacenter и Hyper-V Server 2019, т.е. само Windows Server 2019 Essentials е изключен от този списък.

В този случай наистина не е нужно да търсите инсталационния пакет на Windows Server Core. В стандартния инсталатор на Microsoft основната версия се предлага буквално по подразбиране, докато GUI версията трябва да бъде избрана ръчно:

Притискане на Windows Server към VPS с ниска мощност с помощта на Windows Server Core
Всъщност има повече опции за управление на системата от споменатия PowerShell, който се предлага от производителя по подразбиране. Можете да управлявате виртуална машина на Windows Server Core по поне пет различни начина:

  • Отдалечен PowerShell;
  • Инструменти за отдалечено администриране на сървър (RSAT);
  • Център за администриране на Windows;
  • Sconfig;
  • Сървър мениджър.

Най-голям интерес представляват първите три позиции: стандартен 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

Разширена защита на нишки
ПРЕГЛЕД
Не

Windows Defender
ПРЕГЛЕД
Да

Контейнери
ПРЕГЛЕД
Да

АД Административен център
ПРЕГЛЕД
Да

AD домейн и тръстове
Не
Да

AD сайтове и услуги
Не
Да

DHCP
ПРЕГЛЕД
Да

DNS
ПРЕГЛЕД
Да

DFS мениджър
Не
Да

GPO мениджър
Не
Да

IIS мениджър
Не
Да

Тоест, вече е ясно, че ако се откажем от GUI и PowerShell в полза на други контроли, няма да можем да се измъкнем от използването на някакъв вид моноинструмент: за пълно администриране на всички фронтове ще ни трябва поне комбинация от RSAT и WAC.

Трябва обаче да запомните, че ще трябва да платите 150-180 мегабайта RAM, за да използвате WAC. Когато е свързан, Windows Admin Center създава 3-4 сесии от страна на сървъра, които не се убиват дори когато инструментът е прекъснат от виртуалната машина. WAC също не работи с по-стари версии на PowerShell, така че ще ви трябва поне PowerShell 5.0. Всичко това противоречи на нашата парадигма на строги икономии, но трябва да платите за комфорта. В нашия случай - RAM.

Друг вариант за управление на Server Core е да инсталирате GUI с помощта на инструменти на трети страни, за да не влачите тоновете боклук, които идват с интерфейса в пълноправен монтаж.

В този случай имаме две възможности: внедряване на оригиналния Explorer в системата или използване на Explorer++. Като алтернатива на последния е подходящ всеки файлов мениджър: Total Commander, FAR Manager, Double Commander и т.н. Последното е за предпочитане, ако спестяването на RAM е критично за вас. Можете да добавите Explorer++ или друг файлов мениджър, като създадете мрежова папка и я стартирате през конзолата или планировчика.

Инсталирането на пълноценен Explorer ще ни даде повече възможности по отношение на работата със софтуер, оборудван с потребителски интерфейс. За това ние ще трябва да се свържете към функцията за съвместимост на основните приложения на сървъра при поискване (FOD), която ще върне MMC, Eventvwr, PerfMon, Resmon, Explorer.exe и дори Powershell ISE към системата. За това обаче ще трябва да платим, както е в случая с WAC: ще загубим безвъзвратно около 150-200 мегабайта RAM, които ще бъдат безмилостно погълнати от explorer.exe и други услуги. Дори и да няма активен потребител на машината.

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

Тук възниква логичен въпрос: защо всички тези танци с PowerShell, FOD, файлови мениджъри, ако всяка стъпка наляво или надясно води до увеличаване на потреблението на RAM? Защо да се мажете с куп инструменти и да бъркате от едната страна на другата, за да осигурите комфортна работа на 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

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

Добавяне на нов коментар