Уціскаем 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, які патрабуе ад трох-чатырох гектараў аператыўнай памяці і мінімум пары ядраў з тактам у 1,4 GHz? Проста скарыстайцеся Windows Server Core - пазбаўцеся ад GUI і часткі службаў. Аб тым як гэта зрабіць і пагаворым у артыкуле.

Хто такі гэты ваш Windows Server Core?

Выразнай інфармацыі, што такое Windows (server) Core няма нават на афіцыйным сайце майкаў, дакладней, тамака ўсё так заблытана, што і не адразу зразумееш, але першыя згадванні датуюцца яшчэ эпохай 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:

прымяненне
ядро сервера
сервер зпрацоўны стол

Камандны радок
даступны
даступны

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 (Event queries)
даступны
даступны

Services.msc
няма ў наяўнасці
даступны

пульт кіравання
няма ў наяўнасці
даступны

Windows Update (GUI)
няма ў наяўнасці
даступны

Windows Explorer
няма ў наяўнасці
даступны

Панэль задач
няма ў наяўнасці
даступны

Taskbar notifications
няма ў наяўнасці
даступны

taskmgr
даступны
даступны

Internet Explorer або Edge
няма ў наяўнасці
даступны

Убудаваная сістэма дапамогі
няма ў наяўнасці
даступны

Windows 10 Shell
няма ў наяўнасці
даступны

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 і ўставіць малюнак з серыі If Programming Langua Weapons», але мы не будзем). У 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;
  • Дыспетчар сервераў.

Найбольшую цікавасць уяўляюць першыя тры пазіцыі: стандартны PowerShell, RSAT і Windows Admin Center. Аднак важна разумець, што атрымліваючы перавагі адной з прылад, мы атрымліваем і якія накладаюцца ім абмежаванні.

Распісваць магчымасці кансолі мы не будзем, PowerShell - гэта PowerShell, са сваімі відавочнымі плюсамі і мінусамі. Вось з RSAT і WAC ўсё крыху больш складана. 

WAC дае доступ да такіх важных элементаў кіравання сістэмай, як рэдагаванне рэестра і кіраванне дыскамі і прыладамі. RSAT у першым выпадку працуе толькі ў рэжыме прагляду і не дазволіць унесці якія-небудзь змены, а для кіравання дыскамі і фізічнымі прыладамі Remote Server Administration Tools патрэбен GUI, што не пра наш выпадак. Наогул, RSAT не можа ў працу з файламі і, адпаведна, абнаўленнямі, усталёўкай/выдаленнем праграм у рэдагаванне рэестра.

▍Кіраванне сістэмай

 

WAC
РСАТ

Упраўленне кампанентамі
Так
Так

рэдактар ​​рэестра
Так
Няма

Упраўленне сеткай
Так
Так

прагляд падзей
Так
Так

Агульныя папкі
Так
Так

Упраўленне дыскамі
Так
Толькі для сервераў з GUI

Планавальнік заданняў
Так
Так

кіраванне прыладамі
Так
Толькі для сервераў з GUI

Кіраванне файламі
Так
Няма

Упраўленне карыстальнікамі
Так
Так

Упраўленне групамі
Так
Так

Упраўленне сертыфікатамі
Так
Так

Абнаўленні
Так
Няма

Выдаленне праграм
Так
Няма

Сістэмны манітор
Так
Так

З іншага боку, RSAT дае нам поўны кантроль за ролямі на машыне, калі як Windows Admin Center не можа ў гэтым плане літаральна нічога. Вось параўнанне магчымасцяў RSAT і WAC у гэтым аспекце, для навочнасці:

▍Кіраванне ролямі

 

WAC
РСАТ

Advanced Thread Protection
ПРЕВ'Ю
Няма

Абаронца Windows
ПРЕВ'Ю
Так

кантэйнеры
ПРЕВ'Ю
Так

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 і іншыя службы. Нават калі на машыне няма актыўнага карыстальніка.

Уціскаем 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, дадаўшы туды, напрыклад, АЗП. Для зручнасці, мы дадалі Windows Server Core у свой маркетплейс.

Уціскаем Windows Server на маламагутную VPS з дапамогай Windows Server Core

Крыніца: habr.com

Дадаць каментар