Exprimir Windows Server en un VPS de bajo consumo usando Windows Server Core

Exprimir Windows Server en un VPS de bajo consumo usando Windows Server Core
Debido a la glotonería de los sistemas Windows, el entorno VPS está dominado por distribuciones Linux ligeras: Mint, Colibri OS, Debian o Ubuntu, desprovistas de un entorno de escritorio pesado e innecesario para nuestros propósitos. Como dicen, ¡solo consola, solo hardcore! Y, de hecho, esto no es una exageración en absoluto: el mismo Debian comienza con 256 MB de memoria y un núcleo con una frecuencia de 1 Ghz, es decir, en casi cualquier "muñón". Para trabajar cómodamente necesitará al menos 512 MB y un procesador un poco más rápido. Pero, ¿qué pasaría si le dijéramos que puede hacer más o menos lo mismo en un VPS con Windows? ¿Por qué no es necesario implementar un servidor Windows pesado, que requiere de tres a cuatro hectáreas de RAM y al menos un par de núcleos a 1,4 GHz? Simplemente use Windows Server Core: deshágase de la GUI y de algunos servicios. Hablaremos sobre cómo hacer esto en el artículo.

¿Quién es este Windows Server Core?

No hay información clara sobre qué es Windows (server) Core ni siquiera en el sitio web oficial de Mikes, o mejor dicho, todo es tan confuso allí que no lo entenderás de inmediato, pero las primeras menciones se remontan a la era de Windows Server 2008. Básicamente, Windows Core es un servidor kernel de Windows que funciona (¡de repente!), “más delgado” por el tamaño de su propia GUI y aproximadamente la mitad de los servicios secundarios.

La característica principal de Windows Core es su hardware poco exigente y el control total de la consola a través de PowerShell.

Si visita el sitio web de Microsoft y comprueba los requisitos técnicos, para iniciar Windows Server 2016/2019 necesitará al menos 2 gigas de RAM y al menos un núcleo con una velocidad de reloj de 1,4 GHz. Pero todos entendemos que con tal configuración sólo podemos esperar que el sistema se inicie, pero ciertamente no el cómodo funcionamiento de nuestro sistema operativo. Es por esta razón que a Windows Server se le suele asignar más memoria y al menos 2 núcleos/4 subprocesos del procesador, si no le proporcionan una costosa máquina física en algunos Xeon, en lugar de una máquina virtual barata.

Al mismo tiempo, el núcleo del sistema del servidor requiere solo 512 MB de memoria, y los recursos del procesador que consumió la GUI simplemente para dibujarlos en la pantalla y mantener sus numerosos servicios en funcionamiento se pueden usar para algo más útil.

A continuación se muestra una comparación de los servicios Windows Core admitidos de fábrica y un Windows Server completo del sitio web oficial de Microsoft:

solicitud en línea.
núcleo del servidor
servidor conExperiencia de escritorio

Símbolo del sistema
Hoy Disponibles
Hoy Disponibles

Windows PowerShell/Microsoft.NET
Hoy Disponibles
Hoy Disponibles

perfmon.exe
no disponible
Hoy Disponibles

Windbg (GUI)
apoyadas
Hoy Disponibles

Resmon.exe
no disponible
Hoy Disponibles

regedit
Hoy Disponibles
Hoy Disponibles

Fsutil.exe
Hoy Disponibles
Hoy Disponibles

Disksnapshot.exe
no disponible
Hoy Disponibles

discopart.exe
Hoy Disponibles
Hoy Disponibles

Administrador de disco.msc
no disponible
Hoy Disponibles

Devmgmt.msc
no disponible
Hoy Disponibles

Administrador de servidores
no disponible
Hoy Disponibles

mmc.exe
no disponible
Hoy Disponibles

Eventvwr
no disponible
Hoy Disponibles

Wevtutil (Consultas de eventos)
Hoy Disponibles
Hoy Disponibles

services.msc
no disponible
Hoy Disponibles

Panel de Control
no disponible
Hoy Disponibles

Actualización de Windows (GUI)
no disponible
Hoy Disponibles

Explorador de windows
no disponible
Hoy Disponibles

barra de tareas
no disponible
Hoy Disponibles

Notificaciones de la barra de tareas
no disponible
Hoy Disponibles

Taskmgr
Hoy Disponibles
Hoy Disponibles

Internet Explorer o borde
no disponible
Hoy Disponibles

Sistema de ayuda incorporado
no disponible
Hoy Disponibles

Carcasa de Windows 10
no disponible
Hoy Disponibles

Reproductor de Windows Media
no disponible
Hoy Disponibles

PowerShell
Hoy Disponibles
Hoy Disponibles

ISE de PowerShell
no disponible
Hoy Disponibles

IME de PowerShell
Hoy Disponibles
Hoy Disponibles

Mstsc.exe
no disponible
Hoy Disponibles

Servicios de Escritorio remoto
Hoy Disponibles
Hoy Disponibles

Administrador de Hyper-V
no disponible
Hoy Disponibles

Como puede ver, se han eliminado muchas cosas de Windows Core. Los servicios y procesos asociados con la GUI del sistema, así como cualquier "basura" que definitivamente no es necesaria en nuestra máquina virtual de consola, por ejemplo, Windows Media Player, pasaron por el quirófano.

Casi como Linux, pero no

Realmente quiero comparar Windows Server Core con distribuciones de Linux, pero en realidad esto no es del todo correcto. Sí, estos sistemas son similares entre sí en términos de consumo reducido de recursos debido al abandono de la GUI y muchos servicios secundarios, pero en términos de funcionamiento y algunos enfoques de ensamblaje, esto sigue siendo Windows y no un sistema Unix.

El ejemplo más simple es que al compilar manualmente el kernel de Linux y luego instalar paquetes y servicios, incluso una distribución liviana de Linux puede convertirse en algo pesado y similar a una navaja suiza (aquí realmente quiero hacer una broma de acordeón sobre Python). e inserte una imagen de la serie "Si los lenguajes de programación fueran armas", pero no lo haremos). En Windows Core esa libertad es mucho menor, porque, después de todo, estamos ante un producto de Microsoft.

Windows Server Core viene listo para usar, cuya configuración predeterminada se puede estimar a partir de la tabla anterior. Si necesita algo de la lista no compatible, deberá agregar los elementos que faltan en línea a través de la consola. Es cierto que no debe olvidarse de la función bajo demanda y la capacidad de descargar componentes como archivos CAB, que luego se pueden agregar al ensamblaje antes de la instalación. Pero este script no funciona si ya descubre durante el proceso que le falta alguno de los servicios cortados.

Pero lo que distingue a la versión Core de la versión completa es la capacidad de actualizar el sistema y agregar servicios sin dejar de funcionar. Windows Core admite la laminación en caliente de paquetes, sin necesidad de reiniciar. Como resultado, según observaciones prácticas: una máquina que ejecuta Windows Core debe reiniciarse ~6 veces menos que una que ejecuta Windows Server, es decir, una vez cada seis meses, y no una vez al mes.

Una ventaja agradable para los administradores es que si el sistema se utiliza según lo previsto (a través de la consola, sin RDP) y no se convierte en un segundo servidor Windows, se vuelve extremadamente seguro en comparación con la versión completa. Después de todo, la mayoría de las vulnerabilidades de Windows Server se deben a RDP y a las acciones del usuario que, a través de este mismo RDP, hace algo que no debería hacerse. Es algo así como la historia de Henry Ford y su actitud hacia el color de un coche: “Cualquier cliente puede pintar un coche del color que quiera, siempre que sea negro" Lo mismo ocurre con el sistema: el usuario puede comunicarse con el sistema de cualquier forma, lo principal es que lo hace a través de consola.

Instalar y administrar Windows Server 2019 Core

Mencionamos anteriormente que Windows Core es esencialmente Windows Server sin el contenedor GUI. Es decir, puede utilizar casi cualquier versión de Windows Server como versión principal, es decir, abandonar la GUI. Para los productos de la familia Windows Server 2019, estas son 3 de 4 compilaciones de servidores: el modo central está disponible para Windows Server 2019 Standard Edition, Windows Server 2019 Datacenter y Hyper-V Server 2019, es decir, solo se excluye Windows Server 2019 Essentials. de esta lista.

En este caso, no es necesario buscar el paquete de instalación de Windows Server Core. En el instalador estándar de Microsoft, la versión principal se ofrece literalmente de forma predeterminada, mientras que la versión GUI debe seleccionarse manualmente:

Exprimir Windows Server en un VPS de bajo consumo usando Windows Server Core
De hecho, existen más opciones para administrar el sistema que el mencionado PowerShell, que ofrece el fabricante de forma predeterminada. Puede administrar una máquina virtual en Windows Server Core de al menos cinco maneras diferentes:

  • PowerShell remoto;
  • Herramientas de administración remota del servidor (RSAT);
  • Centro de administración de Windows;
  • configuración;
  • Administrador del servidor.

Las tres primeras posiciones son las de mayor interés: PowerShell estándar, RSAT y Windows Admin Center. Sin embargo, es importante comprender que si bien recibimos los beneficios de una de las herramientas, también recibimos las limitaciones que impone.

No describiremos las capacidades de la consola, PowerShell es PowerShell, con sus pros y sus contras obvios. Con RSAT y WAC todo es un poco más complicado. 

WAC le brinda acceso a controles importantes del sistema, como editar el registro y administrar discos y dispositivos. RSAT en el primer caso solo funciona en modo de visualización y no le permitirá realizar ningún cambio, y para administrar discos y dispositivos físicos, las herramientas de administración remota del servidor requieren una GUI, lo que no es el caso en nuestro caso. En general, RSAT no puede trabajar con archivos y, en consecuencia, con actualizaciones, instalación/eliminación de programas al editar el registro.

▍Gestión del sistema

 

WAC
RSAT

Gestión de componentes

Editor de registro

No

Administración de redes

Ver eventos

Carpetas compartidas

Gestión de discos

Sólo para servidores con GUI

Programador de tareas

Gestión de dispositivos

Sólo para servidores con GUI

Gestión de archivos

No

Gestión de usuarios

Manejo de grupo

Gestión de certificados

Actualizaciones

No

Eliminar programas

No

Monitor del sistema

Por otro lado, RSAT nos brinda control total sobre los roles en la máquina, mientras que Windows Admin Center no puede hacer literalmente nada al respecto. A continuación se muestra una comparación de las capacidades de RSAT y WAC en este aspecto, para mayor claridad:

▍Gestión de roles

 

WAC
RSAT

Protección avanzada de hilos
AVANCE
No

windows Defender
AVANCE

contenedores
AVANCE

Centro administrativo de AD
AVANCE

Dominio AD y fideicomisos
No

Sitios y servicios de publicidad
No

DHCP
AVANCE

DNS
AVANCE

Administrador DFS
No

Gerente de GPO
No

Administrador de IIS
No

Es decir, ya está claro que si abandonamos la GUI y PowerShell en favor de otros controles, no podremos salirnos con la nuestra utilizando algún tipo de herramienta mono: para una administración completa en todos los frentes, necesitaremos al menos una combinación de RSAT y WAC.

Sin embargo, debe recordar que tendrá que pagar entre 150 y 180 megabytes de RAM para usar WAC. Cuando está conectado, Windows Admin Center crea de 3 a 4 sesiones en el lado del servidor, que no se cancelan incluso cuando la herramienta se desconecta de la máquina virtual. WAC tampoco funciona con versiones anteriores de PowerShell, por lo que necesitará al menos PowerShell 5.0. Todo esto va en contra de nuestro paradigma de austeridad, pero hay que pagar por la comodidad. En nuestro caso, RAM.

Otra opción para administrar Server Core es instalar la GUI utilizando herramientas de terceros, para no arrastrar toneladas de basura que vienen con la interfaz en un ensamblaje completo.

En este caso, tenemos dos opciones: implementar el Explorer original en el sistema o usar Explorer++. Como alternativa a este último, cualquier administrador de archivos es adecuado: Total Commander, FAR Manager, Double Commander, etc. Es preferible esto último si ahorrar RAM es fundamental para usted. Puede agregar Explorer++ o cualquier otro administrador de archivos creando una carpeta de red e iniciándola a través de la consola o el programador.

La instalación de un Explorer completo nos brindará más oportunidades en términos de trabajar con software equipado con una interfaz de usuario. Para esto nosotros tendra que contactar a la función de compatibilidad de aplicaciones principales del servidor bajo demanda (FOD), que devolverá MMC, Eventvwr, PerfMon, Resmon, Explorer.exe e incluso Powershell ISE al sistema. Sin embargo, tendremos que pagar por esto, como es el caso de WAC: perderemos irreversiblemente entre 150 y 200 megabytes de RAM, que serán devorados sin piedad por explorer.exe y otros servicios. Incluso si no hay ningún usuario activo en la máquina.

Exprimir Windows Server en un VPS de bajo consumo usando Windows Server Core
Exprimir Windows Server en un VPS de bajo consumo usando Windows Server Core
Así es como se ve el consumo de memoria del sistema en máquinas con y sin el paquete Explorer nativo.

Aquí surge una pregunta lógica: ¿por qué todo este baile con PowerShell, FOD, administradores de archivos, si cualquier paso hacia la izquierda o hacia la derecha conduce a un aumento en el consumo de RAM? ¿Por qué mancharse con un montón de herramientas y moverse de un lado a otro para garantizar un trabajo cómodo en Windows Server Core, cuando puede simplemente descargar Windows Server 2016/2019 y vivir como un hombre blanco?

Hay varias razones para utilizar Server Core. Primero: el consumo actual de memoria es casi la mitad. Si recuerdas, esta condición fue la base de nuestro artículo desde el principio. A modo de comparación, aquí está el consumo de memoria de Windows Server 2019, compárelo con las capturas de pantalla de arriba:

Exprimir Windows Server en un VPS de bajo consumo usando Windows Server Core
Y así, 1146 MB de consumo de memoria en lugar de 655 MB en Core. 

Suponiendo que no necesita WAC y usará Explorer++ en lugar del Explorer original, entonces igual ganarás casi media hectárea en cada máquina virtual que ejecuta Windows Server. Si solo hay una máquina virtual, entonces el aumento es insignificante, pero ¿si hay cinco? Aquí es donde es importante tener una GUI, especialmente si no la necesita. 

En segundo lugar, cualquier baile en torno a Windows Server Core no le llevará a luchar contra el principal problema del funcionamiento de Windows Server: RDP y su seguridad (más precisamente, su ausencia total). Windows Core, incluso revestido con FOD, RSAT y WAC, sigue siendo un servidor sin RDP, es decir, no es susceptible al 95% de los ataques existentes.

Restante

En general, Windows Core es sólo un poco más grueso que cualquier distribución estándar de Linux, pero es mucho más funcional. Si necesita liberar recursos y está listo para trabajar con la consola, WAC y RSAT, y usar administradores de archivos en lugar de una GUI completa, entonces vale la pena prestarle atención a Core. Además, con él podrá evitar pagar extra por un Windows completo y gastar el dinero ahorrado en actualizar su VPS, agregando allí, por ejemplo, RAM. Para mayor comodidad, hemos agregado Windows Server Core a nuestro mercado.

Exprimir Windows Server en un VPS de bajo consumo usando Windows Server Core

Fuente: habr.com

Añadir un comentario