Compression de Windows Server dans un VPS basse consommation avec Windows Server Core

Compression de Windows Server dans un VPS basse consommation avec Windows Server Core
En raison de la gourmandise des systèmes Windows, l'environnement VPS est dominé par des distributions Linux légères : Mint, Colibri OS, Debian ou Ubuntu, dépourvues d'un environnement de bureau lourd et inutile pour nos besoins. Comme on dit, que console, que hardcore ! Et en fait, ce n'est pas du tout exagéré : la même Debian démarre sur 256 Mo de mémoire et un cœur avec une horloge de 1 Ghz, c'est-à-dire sur presque n'importe quelle « souche ». Pour un travail confortable, vous aurez besoin d'au moins 512 Mo et d'un processeur légèrement plus rapide. Mais et si nous vous disions que vous pouvez faire à peu près la même chose sur un VPS sous Windows ? Pourquoi n’avez-vous pas besoin de déployer un serveur Windows lourd, qui nécessite trois à quatre hectares de RAM et au moins quelques cœurs cadencés à 1,4 GHz ? Utilisez simplement Windows Server Core - débarrassez-vous de l'interface graphique et de certains services. Nous parlerons de la façon de procéder dans l'article.

Qui est ce Windows Server Core ?

Il n'y a pas d'informations claires sur ce qu'est Windows (serveur) Core même sur le site officiel de Mikes, ou plutôt, tout y est si confus que vous ne comprendrez pas immédiatement, mais les premières mentions remontent à l'ère de Windows Server 2008 Essentiellement, Windows Core est un serveur de noyau Windows fonctionnel (du coup !), « plus fin » par la taille de sa propre interface graphique et environ la moitié des services secondaires.

La principale caractéristique de Windows Core est son matériel peu exigeant et son contrôle complet de la console via PowerShell.

Si vous accédez au site Web de Microsoft et vérifiez les exigences techniques, pour démarrer Windows Server 2016/2019, vous aurez besoin d'au moins 2 Go de RAM et d'au moins un cœur avec une vitesse d'horloge de 1,4 GHz. Mais nous comprenons tous qu'avec une telle configuration, nous ne pouvons nous attendre qu'au démarrage du système, mais certainement pas au fonctionnement confortable de notre système d'exploitation. C'est pour cette raison que Windows Server se voit généralement allouer plus de mémoire et au moins 2 cœurs/4 threads du processeur, s'il ne lui fournit pas une machine physique coûteuse sur certains Xeon, au lieu d'une machine virtuelle bon marché.

Dans le même temps, le cœur du système serveur lui-même ne nécessite que 512 Mo de mémoire, et les ressources du processeur qui ont été consommées par l'interface graphique simplement pour être dessinées à l'écran et faire fonctionner ses nombreux services peuvent être utilisées pour quelque chose de plus utile.

Voici une comparaison des services Windows Core pris en charge par défaut et d'un serveur Windows complet sur le site officiel de Microsoft :

application
noyau de serveur
serveur avecexpérience de bureau

Invite de commande
disponibles
disponibles

Windows PowerShell/Microsoft.NET
disponibles
disponibles

Perfmon.exe
pas disponible
disponibles

Windbg (interface graphique)
soutenu
disponibles

Resmon.exe
pas disponible
disponibles

Regedit
disponibles
disponibles

Fsutil.exe
disponibles
disponibles

Disksnapshot.exe
pas disponible
disponibles

Diskpart.exe
disponibles
disponibles

Diskmgmt. msc
pas disponible
disponibles

Devmgmt.msc
pas disponible
disponibles

Gestionnaire de serveur
pas disponible
disponibles

mmc.exe
pas disponible
disponibles

Eventvwr
pas disponible
disponibles

Wevtutil (Requêtes d'événements)
disponibles
disponibles

Services.msc
pas disponible
disponibles

Panneau de configuration
pas disponible
disponibles

Windows Update (interface graphique)
pas disponible
disponibles

Explorateur windows
pas disponible
disponibles

barre des tâches
pas disponible
disponibles

Notifications de la barre des tâches
pas disponible
disponibles

Taskmgr
disponibles
disponibles

Internet Explorer ou Edge
pas disponible
disponibles

Système d'aide intégré
pas disponible
disponibles

Windows 10 Shell
pas disponible
disponibles

Windows Media Player
pas disponible
disponibles

PowerShell
disponibles
disponibles

ISE PowerShell
pas disponible
disponibles

IME PowerShell
disponibles
disponibles

Mstsc.exe
pas disponible
disponibles

Remote Desktop Services
disponibles
disponibles

Gestionnaire Hyper-V
pas disponible
disponibles

Comme vous pouvez le constater, beaucoup de choses ont été supprimées de Windows Core. Les services et processus associés à l'interface graphique du système, ainsi que tous les « déchets » qui ne sont certainement pas nécessaires sur notre machine virtuelle de console, par exemple Windows Media Player, sont passés sous le couteau.

Presque comme Linux, mais pas ça

Je veux vraiment comparer Windows Server Core avec les distributions Linux, mais en fait ce n'est pas tout à fait correct. Oui, ces systèmes sont similaires les uns aux autres en termes de consommation réduite de ressources en raison de l'abandon de l'interface graphique et de nombreux services secondaires, mais en termes de fonctionnement et de certaines approches d'assemblage, il s'agit toujours de Windows et non d'un système Unix.

L'exemple le plus simple est qu'en construisant manuellement le noyau Linux, puis en installant des packages et des services, même une distribution Linux légère peut être transformée en quelque chose de lourd et similaire à un couteau suisse (ici, je veux vraiment faire une blague en accordéon sur Python). et insérez une image de la série "Si les langages de programmation étaient des armes", mais nous ne le ferons pas). Dans Windows Core, cette liberté est bien moindre, car nous avons après tout affaire à un produit Microsoft.

Windows Server Core est livré prêt à l'emploi, dont la configuration par défaut peut être estimée à partir du tableau ci-dessus. Si vous avez besoin d'un élément de la liste non pris en charge, vous devrez ajouter les éléments manquants en ligne via la console. Certes, vous ne devez pas oublier la fonctionnalité à la demande et la possibilité de télécharger des composants sous forme de fichiers CAB, qui peuvent ensuite être ajoutés à l'assemblage avant l'installation. Mais ce script ne fonctionne pas si vous découvrez déjà au cours du processus qu'il vous manque l'un des services coupés.

Mais ce qui distingue la version Core de la version complète, c'est la possibilité de mettre à jour le système et d'ajouter des services sans arrêter le travail. Windows Core prend en charge le déploiement à chaud des packages, sans redémarrage. Résultat, d'après des observations pratiques : une machine exécutant Windows Core doit être redémarrée environ 6 fois moins souvent qu'une machine exécutant Windows Server, c'est-à-dire une fois tous les six mois, et non une fois par mois.

Un bonus agréable pour les administrateurs est que si le système est utilisé comme prévu - via la console, sans RDP - et non transformé en un deuxième serveur Windows, il devient alors extrêmement sécurisé par rapport à la version complète. Après tout, la majorité des vulnérabilités de Windows Server sont dues au RDP et aux actions de l'utilisateur qui, à travers ce même RDP, fait quelque chose qui ne devrait pas être fait. C’est un peu comme l’histoire d’Henry Ford et son attitude envers la couleur d’une voiture : « N’importe quel client peut faire peindre sa voiture dans la couleur de son choix, à condition qu’elle soit de la même couleur. noir" C'est la même chose avec le système : l'utilisateur peut communiquer avec le système de n'importe quelle manière, l'essentiel est qu'il le fasse via console.

Installer et gérer Windows Server 2019 Core

Nous avons mentionné plus tôt que Windows Core est essentiellement Windows Server sans le wrapper GUI. Autrement dit, vous pouvez utiliser presque n'importe quelle version de Windows Server comme version principale, c'est-à-dire abandonner l'interface graphique. Pour les produits de la famille Windows Server 2019, il s'agit de 3 versions de serveur sur 4 : le mode principal est disponible pour Windows Server 2019 Standard Edition, Windows Server 2019 Datacenter et Hyper-V Server 2019, c'est-à-dire que seul Windows Server 2019 Essentials est exclu. de cette liste.

Dans ce cas, vous n’avez pas vraiment besoin de rechercher le package d’installation de Windows Server Core. Dans le programme d'installation standard de Microsoft, la version principale est proposée littéralement par défaut, tandis que la version GUI doit être sélectionnée manuellement :

Compression de Windows Server dans un VPS basse consommation avec Windows Server Core
En fait, il existe plus d'options pour gérer le système que celle mentionnée par PowerShell, proposée par défaut par le fabricant. Vous pouvez gérer une machine virtuelle sur Windows Server Core d'au moins cinq manières différentes :

  • PowerShell à distance ;
  • Outils d'administration de serveur distant (RSAT) ;
  • Centre d'administration Windows ;
  • Sconfig ;
  • Gestionnaire de serveur.

Les trois premières positions sont les plus intéressantes : PowerShell standard, RSAT et Windows Admin Center. Cependant, il est important de comprendre que si nous bénéficions des avantages de l’un des outils, nous recevons également les limites qu’il impose.

Nous ne décrirons pas les capacités de la console ; PowerShell est PowerShell, avec ses avantages et ses inconvénients évidents. Avec RSAT et WAC, tout est un peu plus compliqué. 

WAC vous donne accès à des contrôles système importants tels que la modification du registre et la gestion des disques et des périphériques. RSAT dans le premier cas ne fonctionne qu'en mode affichage et ne vous permettra d'apporter aucune modification, et pour gérer les disques et les périphériques physiques, les outils d'administration de serveur distant nécessitent une interface graphique, ce qui n'est pas le cas dans notre cas. En général, RSAT ne peut pas fonctionner avec des fichiers et, par conséquent, avec des mises à jour, l'installation/suppression de programmes lors de l'édition du registre.

▍Gestion du système

 

WAC
RSAT

Gestion des composants
Oui
Oui

Éditeur de registre
Oui
Aucun

Gestion de réseau
Oui
Oui

Voir les événements
Oui
Oui

Dossiers partagés
Oui
Oui

Gestion de disque
Oui
Uniquement pour les serveurs avec interface graphique

Planificateur de tâches
Oui
Oui

Gestion d'appareils
Oui
Uniquement pour les serveurs avec interface graphique

Gestion de fichiers
Oui
Aucun

gestion des utilisateurs
Oui
Oui

Gestion de groupe
Oui
Oui

Gestion des certificats
Oui
Oui

Mises à jour
Oui
Aucun

Désinstallation de programmes
Oui
Aucun

Moniteur système
Oui
Oui

D'un autre côté, RSAT nous donne un contrôle total sur les rôles sur la machine, alors que Windows Admin Center ne peut littéralement rien faire à cet égard. Voici une comparaison des capacités de RSAT et WAC dans cet aspect, pour plus de clarté :

▍Gestion des rôles

 

WAC
RSAT

Protection avancée des fils
APERÇU
Aucun

windows Defender
APERÇU
Oui

Containers
APERÇU
Oui

Centre administratif AD
APERÇU
Oui

Domaine et approbations AD
Aucun
Oui

Sites et services AD
Aucun
Oui

DHCP
APERÇU
Oui

DNS
APERÇU
Oui

Gestionnaire SDF
Aucun
Oui

Gestionnaire d'objets de stratégie de groupe
Aucun
Oui

Gestionnaire IIS
Aucun
Oui

Autrement dit, il est déjà clair que si nous abandonnons l'interface graphique et PowerShell au profit d'autres contrôles, nous ne pourrons pas nous en sortir en utilisant une sorte de mono-outil : pour une administration complète sur tous les fronts, nous aurons besoin d'au moins une combinaison de RSAT et WAC.

Cependant, vous devez vous rappeler que vous devrez payer entre 150 et 180 Mo de RAM pour utiliser WAC. Une fois connecté, Windows Admin Center crée 3 à 4 sessions côté serveur, qui ne sont pas supprimées même lorsque l'outil est déconnecté de la machine virtuelle. WAC ne fonctionne pas non plus avec les anciennes versions de PowerShell, vous aurez donc besoin d'au moins PowerShell 5.0. Tout cela va à l’encontre de notre paradigme d’austérité, mais il faut payer pour le confort. Dans notre cas - RAM.

Une autre option pour gérer Server Core consiste à installer l'interface graphique à l'aide d'outils tiers, afin de ne pas traîner les tonnes de déchets fournis avec l'interface dans un assemblage à part entière.

Dans ce cas, nous avons deux options : déployer l'Explorateur d'origine sur le système ou utiliser Explorer++. Comme alternative à ce dernier, n'importe quel gestionnaire de fichiers convient : Total Commander, FAR Manager, Double Commander, etc. Ce dernier est préférable si l'économie de RAM est essentielle pour vous. Vous pouvez ajouter Explorer++ ou tout autre gestionnaire de fichiers en créant un dossier réseau et en le lançant via la console ou le planificateur.

L'installation d'un explorateur à part entière nous donnera plus d'opportunités en termes de travail avec des logiciels équipés d'une interface utilisateur. Pour cela nous il faudra contacter à la fonctionnalité de compatibilité des applications Server Core à la demande (FOD) qui renverra MMC, Eventvwr, PerfMon, Resmon, Explorer.exe et même Powershell ISE au système. Cependant, nous devrons payer pour cela, comme c'est le cas avec WAC : nous perdrons de manière irréversible environ 150 à 200 mégaoctets de RAM, qui seront impitoyablement engloutis par explorer.exe et d'autres services. Même s'il n'y a aucun utilisateur actif sur la machine.

Compression de Windows Server dans un VPS basse consommation avec Windows Server Core
Compression de Windows Server dans un VPS basse consommation avec Windows Server Core
Voici à quoi ressemble la consommation de mémoire par le système sur les machines avec et sans le package Explorer natif.

Une question logique se pose ici : pourquoi toute cette danse avec PowerShell, FOD, les gestionnaires de fichiers, si un pas à gauche ou à droite entraîne une augmentation de la consommation de RAM ? Pourquoi vous encombrer d'un tas d'outils et vous déplacer d'un côté à l'autre pour garantir un travail confortable sur Windows Server Core, alors que vous pouvez simplement télécharger Windows Server 2016/2019 et vivre comme un homme blanc ?

Il existe plusieurs raisons d'utiliser Server Core. Premièrement : la consommation actuelle de mémoire est presque la moitié de celle-ci. Si vous vous en souvenez, cette condition était la base de notre article au tout début. A titre de comparaison, voici la consommation mémoire de Windows Server 2019, comparez avec les captures d'écran juste au dessus :

Compression de Windows Server dans un VPS basse consommation avec Windows Server Core
Et donc, 1146 Mo de consommation mémoire au lieu de 655 Mo sur Core. 

En supposant que vous n'avez pas besoin de WAC et que vous utiliserez Explorer++ au lieu de l'Explorateur d'origine, alors vous tu gagneras quand même près d'un demi hectare sur chaque machine virtuelle exécutant Windows Server. S'il n'y a qu'une seule machine virtuelle, alors l'augmentation est insignifiante, mais s'il y en a cinq ? C’est là que disposer d’une interface graphique est important, surtout si vous n’en avez pas besoin. 

Deuxièmement, toute danse autour de Windows Server Core ne vous amènera pas à lutter contre le principal problème du fonctionnement de Windows Server - RDP et sa sécurité (plus précisément, son absence totale). Windows Core, même doté de FOD, RSAT et WAC, reste un serveur sans RDP, c'est-à-dire qu'il n'est pas sensible à 95 % des attaques existantes.

Restant

En général, Windows Core n'est que légèrement plus gros que n'importe quelle distribution Linux d'origine, mais il est beaucoup plus fonctionnel. Si vous avez besoin de libérer des ressources et êtes prêt à travailler avec la console, WAC et RSAT, et à utiliser des gestionnaires de fichiers au lieu d'une interface graphique à part entière, alors Core mérite une attention particulière. De plus, grâce à lui, vous pourrez éviter de payer un supplément pour un Windows à part entière et dépenser l'argent économisé pour mettre à niveau votre VPS, en y ajoutant, par exemple, de la RAM. Pour plus de commodité, nous avons ajouté Windows Server Core à notre marché.

Compression de Windows Server dans un VPS basse consommation avec Windows Server Core

Source: habr.com

Ajouter un commentaire