Poussez Windows Server sur un VPS de faible puissance à l'aide de Windows Server Core


En raison de la gourmandise des systèmes Windows, les distributions Linux légères dominent l'environnement VPS: Mint, Colibri OS, Debian ou Ubuntu, qui sont privés de l'environnement de bureau lourd et inutile dans le cadre de nos tâches. Comme on dit, seule la console, uniquement du hardcore! Et en fait, ce n'est pas du tout une exagération: la même Debian démarre avec 256 Mo de mémoire et un cœur avec un cycle d'horloge de 1 Ghz, c'est-à-dire sur presque n'importe quelle «souche». Pour un travail confortable, vous aurez besoin de 512 Mo et d'un processeur un peu plus rapide. Mais que se passe-t-il si nous vous disons qu'en gros, la même chose peut être faite sur Windows VPS? Qu'est-ce qui n'a pas besoin de rouler sur un serveur Windows lourd, qui nécessite trois à quatre hectares de RAM et au moins deux cœurs avec une vitesse d'horloge de 1,4 GHz? Utilisez simplement Windows Server Core - débarrassez-vous de l'interface graphique et de certains services. Nous expliquerons comment procéder dans un article.

Qui est votre Windows Server Core?


Il n'y a pas d'informations claires sur ce que Windows (serveur) Core est même sur le site officiel de Mikes, ou plutôt, tout est si déroutant que vous ne comprendrez pas tout de suite, mais les premières références remontent à l'ère de Windows Server 2008. En fait, Windows Core est un noyau Windows fonctionnel Serveur (du coup!), «Perte de poids» par la taille de sa propre interface graphique et environ la moitié des services annexes.

La principale caractéristique de Windows Core est la faible configuration matérielle et la gestion complète de la console via PowerShell.

Si vous allez sur le site Web de Microsoft et vérifiez les exigences techniques, alors pour démarrer Windows Server 2016/2019, vous aurez besoin de 2 Go de RAM et au moins un cœur avec une vitesse d'horloge de 1,4 GHz. Mais nous comprenons tous qu'avec cette configuration, nous ne pouvons qu'attendre que le système démarre, mais certainement pas le fonctionnement confortable de notre système d'exploitation. Pour cette raison, Windows Server se voit généralement allouer plus de mémoire et au moins 2 cœurs / 4 threads du processeur, s'ils ne lui fournissent 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 de processeur qui ont été consommées par l'interface graphique simplement pour afficher simplement à l'écran et maintenir leurs nombreux services en cours d'exécution peuvent être utilisées pour quelque chose de plus utile.

Voici une comparaison des services Windows Core pris en charge et de Windows Server complet sur le site officiel de Microsoft:

applicationnoyau serveurserveur avec une expérience de bureau
Invite de commandedisponibledisponible
Windows PowerShell / Microsoft .NETdisponibledisponible
Perfmon.exeindisponibledisponible
Windbg (GUI)prise en chargedisponible
Resmon.exeindisponibledisponible
Regeditdisponibledisponible
Fsutil.exedisponibledisponible
Disksnapshot.exeindisponibledisponible
Diskpart.exedisponibledisponible
Diskmgmt.mscindisponibledisponible
Devmgmt.mscindisponibledisponible
Gestionnaire de serveurindisponibledisponible
Mmc.exeindisponibledisponible
Eventvwrindisponibledisponible
Wevtutil (requêtes d'événement)disponibledisponible
Services.mscindisponibledisponible
Panneau de configurationindisponibledisponible
Windows Update (GUI)indisponibledisponible
Windows Explorerindisponibledisponible
Barre des tâchesindisponibledisponible
Notifications de la barre des tâchesindisponibledisponible
Taskmgrdisponibledisponible
Internet Explorer ou Edgeindisponibledisponible
Système d'aide intégréindisponibledisponible
Windows 10 Shellindisponibledisponible
Lecteur Windows Mediaindisponibledisponible
Powerhelldisponibledisponible
PowerShell ISEindisponibledisponible
PowerShell IMEdisponibledisponible
Mstsc.exeindisponibledisponible
Services de bureau à distancedisponibledisponible
Gestionnaire Hyper-Vindisponibledisponible

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

Presque comme Linux mais pas lui


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

L'exemple le plus simple est qu'avec l'aide de l'assemblage manuel du noyau Linux et de l'installation ultérieure de packages et de services, même la distribution Linux la plus légère peut être transformée en quelque chose de lourd et similaire à un couteau suisse (je veux vraiment jouer au jokey sur Python et insérer une image de la série «Si les langages de programmation étaient Armes ", mais nous ne le ferons pas). Dans Windows Core, cette liberté est bien moindre, car nous avons néanmoins affaire à un produit Microsoft.

Windows Server Core est livré avec un assemblage prêt à l'emploi, dont la configuration par défaut peut être estimée à partir du tableau ci-dessus. Si vous avez besoin de quelque chose de la liste des non pris en charge, vous devrez ajouter les éléments manquants en ligne via la console. Cependant, n'oubliez pas la fonctionnalité à la demande et la possibilité de dégonfler les composants sous forme de fichiers .cab, que vous pouvez ensuite ajouter à l'assemblage avant l'installation. Mais ce scénario ne fonctionne pas si vous avez déjà trouvé dans le processus que l'un des services coupés vous manquait.

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 roulement de packages à chaud sans redémarrage. Par conséquent, sur la base d'observations pratiques: une machine exécutant Windows Core doit être redémarrée environ 6 fois moins souvent que Windows Server, c'est-à-dire une fois tous les six mois et non une fois par mois.

Un bon avantage pour les administrateurs est que si vous utilisez le système comme prévu - via la console, sans RDP - et que vous n'en faites pas un deuxième serveur Windows, il devient extrêmement sécurisé par rapport à la version complète. Après tout, la plupart des vulnérabilités de Windows Server tombent sur RDP et les actions d'un utilisateur qui, à travers ce même RDP, fait ce qui ne devrait pas. Ceci est similaire à l'histoire avec Henry Ford et à sa relation avec la couleur de la voiture: "Tout client peut avoir une voiture peinte de n'importe quelle couleur tant qu'il est noir ." Il en va de même avec le système: l'utilisateur peut communiquer de quelque manière que ce soit avec le système, l'essentiel est qu'il le fasse via la console .

Installer et gérer Windows Server 2019 Core


Nous avons mentionné plus tôt que Windows Core est en fait un serveur Windows sans wrapper GUI. Autrement dit, vous pouvez utiliser presque toutes les versions 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 ne fait pas partie de cette liste.

Dans le même temps, il n'est pas nécessaire de rechercher le package d'installation pour Windows Server Core. Dans le programme d'installation standard de Microsoft, la version principale est proposée littéralement par défaut, lorsque vous devez sélectionner manuellement la version avec l'interface graphique:

image

Il existe en fait plus d'options pour gérer le système que celle mentionnée par PowerShell, qui est proposée par défaut par le fabricant. Il existe au moins cinq façons différentes de gérer une machine virtuelle sur Windows Server Core:

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

Les trois premiers postes sont les plus intéressants: PowerShell standard, RSAT et Windows Admin Center. Cependant, il est important de comprendre que lorsque nous bénéficions des avantages de l'un des outils, nous obtenons également les limitations 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. RSAT et WAC sont un peu plus compliqués. 

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 d'affichage et ne permettra aucune modification, et pour gérer les disques et les périphériques physiques des outils d'administration de serveur distant, vous avez besoin d'une interface graphique, ce qui n'est pas notre cas. En général, RSAT ne peut pas travailler avec des fichiers et, par conséquent, des mises à jour, l'installation / la désinstallation de programmes lors de la modification du registre.

▍ Gestion du système


 
WacRSAT
Gestion des composantsOuiOui
Éditeur de registreOuiNon
La gestion du réseauOuiOui
Observateur d'événementsOuiOui
Dossiers partagésOuiOui
Gestion des disquesOuiUniquement pour les serveurs avec une interface graphique
Planificateur de tâchesOuiOui
Gestion d'appareilsOuiUniquement pour les serveurs avec une interface graphique
Gestion de fichiersOuiNon
gestion des utilisateursOuiOui
Gestion de groupeOuiOui
Gestion des certificatsOuiOui
Mises à jourOuiNon
Désinstaller des programmesOuiNon
Moniteur systèmeOuiOui

D'un autre côté, RSAT nous donne un contrôle total sur les rôles sur la machine, quand, comme le Centre d'administration Windows, il ne peut littéralement rien faire. Voici une comparaison des capacités de RSAT et WAC dans cet aspect, pour plus de clarté:

Roles Rôles de gestion


 
WacRSAT
Protection avancée des threadsTEXTENon
Windows DefenderTEXTEOui
ConteneursTEXTEOui
Centre administratif ADTEXTEOui
Domaine AD et approbationsNonOui
Sites et services ADNonOui
DHCPTEXTEOui
DNSTEXTEOui
Gestionnaire DFSNonOui
Gestionnaire GPONonOui
Gestionnaire IISNonOui
Autrement dit, il est déjà clair que si vous abandonnez l'interface graphique et PowerShell au profit d'autres contrôles, se débarrasser de l'utilisation d'une sorte d'outil mono ne fonctionnera pas: pour une administration complète sur tous les fronts, nous avons besoin d'au moins un tas de RSAT et WAC.

Il faut se rappeler que l'utilisation du WAC devra payer 150 à 180 mégaoctets de RAM. Une fois connecté, le Centre d'administration Windows 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'un minimum de PowerShell 5.0. Tout cela va à l'encontre de notre paradigme d'austérité des ressources, mais il faut payer pour le confort. Dans notre cas, par RAM.

Une autre option pour gérer Server Core consiste à installer des interfaces graphiques tierces afin de ne pas faire glisser les tonnes de déchets qui viennent dans un assemblage complet avec l'interface.

Dans ce cas, nous avons deux options: déployer l'explorateur d'origine sur le système ou utiliser Explorer ++. Comme alternative à ce dernier, tout gestionnaire de fichiers convient: Total Commander, FAR Manager, Double Commander et ainsi de suite. Ce dernier est préférable si l'économie de mémoire est critique 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'options en termes de travail avec un logiciel équipé d'une interface utilisateur. Pour cela, nous devrons contacterServer Core App Compatibility Feature on Demand (FOD) qui retournera au système MMC, Eventvwr, PerfMon, Resmon, Explorer.exe et même Powershell ISE. Cependant, vous devrez payer pour cela, comme c'est le cas avec WAC: nous perdrons irrémédiablement environ 150-200 mégaoctets de RAM, qui dévoreront joyeusement explorer.exe et d'autres services. Même si la machine n'a pas d'utilisateur actif.



Voici à quoi ressemble la consommation de mémoire du système sur les machines avec et sans le package Explorer natif.

Cela soulève la question logique: pourquoi toutes ces danses avec PowerShell, FOD, les gestionnaires de fichiers, si une étape de gauche à droite entraîne une augmentation de la consommation de RAM? Pourquoi vous couvrir d'un tas d'outils et timide d'un côté à l'autre pour assurer un travail confortable sur Windows Server Core, alors que vous pouvez simplement rouler Windows Server 2016/2019 et vivre comme une personne blanche?

Il y a plusieurs raisons d'utiliser Server Core. Premièrement: le courant représente près de la moitié de la consommation de mémoire. Si vous vous souvenez, cette condition était la base de notre article au tout début. À titre de comparaison, la consommation de mémoire de Windows Server 2019, comparez avec les captures d'écran ci-dessus:


Et donc, 1146 Mo de mémoire consommée au lieu de 655 Mo sur Core. 

En supposant que vous n'avez pas besoin de WAC et que vous utilisez Explorer ++ au lieu de l'explorateur d'origine, vous gagnerez toujours 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 la croissance est insignifiante, mais s'il y en a cinq? Ici, la présence d'une interface graphique est importante, surtout si vous n'en avez pas besoin. 

Deuxièmement, toute danse autour de Windows Server Core ne vous mènera pas à la lutte contre le principal problème d'exploitation de Windows Server - RDP et sa sécurité (plus précisément, son absence totale). Windows Core, même sous la forme de FOD, RSAT et WAC, est toujours un serveur sans RDP, c'est-à-dire qu'il n'est pas soumis à 95% des attaques existantes.

Dans la balance


En général, Windows Core n'est que légèrement «plus gros» que n'importe quelle distribution Linux d'origine, mais beaucoup plus fonctionnel. Si vous avez besoin de libérer des ressources et que vous êtes prêt à travailler avec la console, le WAC et le RSAT, utilisez des gestionnaires de fichiers au lieu d'une interface graphique complète, alors Core mérite une attention particulière. De plus, il ne sera pas possible de payer un supplément pour un Windows à part entière et de dépenser l'argent économisé lors du bouleversement de votre VPS en ajoutant, par exemple, de la RAM. Pour plus de commodité, nous avons ajouté Windows Server Core à notre place de marché .


All Articles