Empuje Windows Server en un VPS de baja potencia con Windows Server Core


Debido a la gula de los sistemas Windows, las distribuciones ligeras de Linux dominan el entorno VPS: Mint, Colibri OS, Debian o Ubuntu, que se ven privados del entorno de escritorio innecesario y pesado como parte de nuestras tareas. Como dicen, solo la consola, ¡solo hardcore! Y, de hecho, esto no es una exageración: el mismo Debian comienza con 256 MB de memoria y un núcleo con un ciclo de reloj de 1 Ghz, es decir, en casi cualquier "tocón". Para un trabajo cómodo, necesitará de 512 MB y un procesador un poco más rápido. Pero, ¿qué pasa si le decimos que aproximadamente lo mismo se puede hacer en Windows VPS? ¿Qué no necesita para rodar Windows Server pesado, que requiere de tres a cuatro hectáreas de RAM y un mínimo de un par de núcleos con una velocidad de reloj de 1.4 GHz? Simplemente use Windows Server Core: elimine la GUI y algunos servicios. Hablaremos sobre cómo hacer esto en un artículo.

¿Quién es este Windows Server Core?


No hay información clara sobre qué es Windows (servidor) Core incluso en el sitio web oficial de Mikes, o más bien, todo es tan confuso que no lo entenderá de inmediato, pero las primeras referencias se remontan a la era de Windows Server 2008. De hecho, Windows Core es un núcleo de Windows viable. Servidor (¡de repente!), “Peso perdido” por el tamaño de su propia GUI y aproximadamente la mitad de los servicios secundarios.

La característica principal de Windows Core son los bajos requisitos de hardware y la administración total de la consola a través de PowerShell.

Si va al sitio web de Microsoft y verifica los requisitos técnicos, para iniciar Windows Server 2016/2019 necesitará 2 gigas de RAM y al menos un núcleo con una velocidad de reloj de 1.4 GHz. Pero todos entendemos que con esta configuración solo podemos esperar que el sistema se inicie, pero ciertamente no la operación cómoda de nuestro sistema operativo. Por esta razón, a Windows Server generalmente se le asigna más memoria y al menos 2 núcleos / 4 subprocesos del procesador, si no le proporcionan una máquina física costosa en algún Xeon, en lugar de una máquina virtual barata.

Al mismo tiempo, el núcleo del sistema del servidor en sí requiere solo 512 MB de memoria, y los recursos del procesador que fueron consumidos por la GUI solo para renderizar en la pantalla y mantener sus numerosos servicios en funcionamiento pueden usarse para algo más útil.

Aquí hay una comparación de los servicios compatibles de Windows Core listos para usar y Windows Server completo del sitio web oficial de Microsoft:

solicitudnúcleo del servidorservidor con experiencia de escritorio
Símbolo del sistemadisponibledisponible
Windows PowerShell / Microsoft .NETdisponibledisponible
Perfmon.exeno disponibledisponible
Windbg (GUI)soportadodisponible
Resmon.exeno disponibledisponible
Regeditdisponibledisponible
Fsutil.exedisponibledisponible
Disksnapshot.exeno disponibledisponible
Diskpart.exedisponibledisponible
Diskmgmt.mscno disponibledisponible
Devmgmt.mscno disponibledisponible
Administrador del servidorno disponibledisponible
Mmc.exeno disponibledisponible
Eventvwrno disponibledisponible
Wevtutil (consultas de eventos)disponibledisponible
Services.mscno disponibledisponible
Panel de controlno disponibledisponible
Actualización de Windows (GUI)no disponibledisponible
Explorador de Windowsno disponibledisponible
Barra de tareasno disponibledisponible
Notificaciones de la barra de tareasno disponibledisponible
Taskmgrdisponibledisponible
Internet Explorer o Edgeno disponibledisponible
Sistema de ayuda incorporadono disponibledisponible
Windows 10 Shellno disponibledisponible
reproductor de medios de Windowsno disponibledisponible
Powerhelldisponibledisponible
PowerShell ISEno disponibledisponible
PowerShell IMEdisponibledisponible
Mstsc.exeno disponibledisponible
Servicios de escritorio remotodisponibledisponible
Administrador de Hyper-Vno disponibledisponible

Como puede ver, se ha cortado mucho de Windows Core. Los servicios y procesos asociados con la GUI del sistema quedaron en la nada, así como cualquier "basura" que definitivamente no sería necesaria en nuestra máquina virtual de consola, por ejemplo, Windows Media Player.

Casi como Linux pero no él


Realmente quiero comparar Windows Server Core con las 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 operación y algunos enfoques para el ensamblaje, sigue siendo Windows, y no un sistema unix.

El ejemplo más simple es que con la ayuda del ensamblaje manual del kernel de Linux y la posterior instalación de paquetes y servicios, incluso la distribución de Linux más ligera puede convertirse en algo pesado y similar a un cuchillo suizo (realmente quiero jugar bromas sobre Python e insertar una imagen de la serie "Si los lenguajes de programación fueran Armas ", pero no lo haremos). En Windows Core, esta libertad es mucho menor porque, sin embargo, estamos tratando con un producto de Microsoft.

Windows Server Core viene con un ensamblaje listo para usar, cuya configuración predeterminada se puede estimar a partir de la tabla anterior. Si necesita algo de la lista de no admitidos, deberá agregar los elementos que faltan en línea a través de la consola. Sin embargo, no se olvide de la función a pedido y la capacidad de desinflar componentes como archivos .cab, que luego puede agregar al ensamblaje antes de la instalación. Pero este escenario no funciona si ya descubrió en el proceso que le falta uno de los servicios de corte.

Pero lo que distingue la versión Core de la completa es la capacidad de actualizar el sistema y agregar servicios sin detener el trabajo. Windows Core admite paquetes dinámicos dinámicos sin reiniciar. Como resultado, en base a observaciones prácticas: una máquina que ejecuta Windows Core necesita reiniciarse ~ 6 veces menos a menudo que con Windows Server, es decir, una vez cada seis meses, y no una vez al mes.

Una buena ventaja para los administradores es que si usas el sistema según lo previsto, a través de la consola, sin RDP, y no haces un segundo servidor de Windows, entonces se vuelve extremadamente seguro en comparación con la versión completa. De hecho, la mayoría de las vulnerabilidades en Windows Server recaen en RDP y en las acciones de un usuario que, a través de este mismo RDP, hace lo que no debería. Esto es similar a la historia con Henry Ford y su relación con el color del automóvil: "Cualquier cliente puede tener un automóvil pintado del color que quiera, siempre que sea negro ". Lo mismo ocurre con el sistema: el usuario puede comunicarse de cualquier manera con el sistema, lo principal es que lo hace a través de la consola .

Instalar y administrar Windows Server 2019 Core


Mencionamos anteriormente que Windows Core es en realidad un servidor de Windows sin un contenedor GUI. Es decir, puede usar casi cualquier versión de Windows Server como la versión principal, es decir, abandonar la GUI. Para los productos de la familia Windows Server 2019, se trata de 3 de 4 compilaciones de servidores: el modo principal está disponible para Windows Server 2019 Standard Edition, Windows Server 2019 Datacenter y Hyper-V Server 2019, es decir, solo Windows Server 2019 Essentials queda fuera de esta lista.

Al mismo tiempo, no es necesario buscar el paquete de instalación para Windows Server Core. En el instalador estándar de Microsoft, la versión principal se ofrece literalmente de forma predeterminada, cuando debe seleccionar manualmente la versión con la GUI:

imagen

En realidad, hay más opciones para administrar el sistema que la mencionada por PowerShell, que ofrece el fabricante de manera predeterminada. Hay al menos cinco formas diferentes de administrar una máquina virtual en Windows Server Core:

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

Las primeras tres posiciones son de mayor interés: PowerShell estándar, RSAT y Centro de administración de Windows. Sin embargo, es importante comprender que cuando obtenemos los beneficios de una de las herramientas, también obtenemos las limitaciones que impone.

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

WAC le brinda acceso a importantes controles del sistema, como la edición del registro y la administración de discos y dispositivos. RSAT en el primer caso funciona solo en el modo de visualización y no permitirá que se realicen cambios, y para administrar discos y dispositivos físicos de las Herramientas de administración remota del servidor necesita una GUI, que no es nuestro caso. En general, RSAT no puede trabajar con archivos y, en consecuencia, actualizaciones, instalar / desinstalar programas en la edición del registro.

▍ Gestión del sistema


 
WacRSAT
Gestión de componentessisi
Editor de registrosiNo
Administración de redessisi
Visor de eventossisi
Carpetas compartidassisi
Manejo de la unidadsiSolo para servidores con una GUI
Programador de tareassisi
Gestión de dispositivossiSolo para servidores con una GUI
Gestión de archivossiNo
Gestión de usuariossisi
Manejo de gruposisi
Gestión de certificadossisi
ActualizacionessiNo
Desinstalar programassiNo
Monitor del sistemasisi

Por otro lado, RSAT nos da control total sobre los roles en la máquina, cuando, como el Centro de administración de Windows, literalmente no puede hacer nada. Aquí hay una comparación de las capacidades de RSAT y WAC en este aspecto, para mayor claridad:

▍ Roles de gestión


 
WacRSAT
Protección avanzada de roscasTEXTONo
Defensor de WindowsTEXTOsi
ContenedoresTEXTOsi
Centro Administrativo ADTEXTOsi
AD Domain and TrustsNosi
Sitios y servicios de ADNosi
DHCPTEXTOsi
DNSTEXTOsi
Gerente de DFSNosi
Gerente de GPONosi
Gerente de IISNosi
Es decir, ya está claro que si abandonas la GUI y PowerShell a favor de otros controles, deshacerse de usar algún tipo de herramienta mono no funcionará: para una administración completa en todos los frentes, necesitamos al menos un montón de RSAT y WAC.

Debe recordarse que el uso de WAC tendrá que pagar entre 150 y 180 megabytes de RAM. Cuando está conectado, el Centro de administración de Windows crea 3-4 sesiones en el lado del servidor, que no se eliminan incluso cuando la herramienta se desconecta de la máquina virtual. WAC tampoco funciona con versiones anteriores de PowerShell, por lo que necesitará un mínimo de PowerShell 5.0. Todo esto va en contra de nuestro paradigma de austeridad de recursos, pero hay que pagar por la comodidad. En nuestro caso, por RAM.

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

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. Lo último es preferible si el ahorro de memoria es crítico 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.

Instalar un Explorer completo nos dará más opciones en términos de trabajar con software equipado con una interfaz de usuario. Para esto tendremos que contactarFunción de compatibilidad de aplicaciones Server Core a pedido (FOD) que regresará al sistema MMC, Eventvwr, PerfMon, Resmon, Explorer.exe e incluso Powershell ISE. Sin embargo, tendrá que pagar por esto, como es el caso de WAC: perderemos irremediablemente alrededor de 150-200 megabytes de RAM, que devoran felizmente explorer.exe y otros servicios. Incluso si la máquina no tiene un usuario activo.



Así es como se ve el consumo de memoria del sistema en máquinas con y sin el paquete Explorer nativo.

Esto plantea la pregunta lógica: ¿por qué todos estos bailes con PowerShell, FOD, los administradores de archivos, si algún paso de izquierda a derecha conduce a un aumento en el consumo de RAM? ¿Por qué cubrirse con un montón de herramientas y ser tímido de lado a lado para garantizar un trabajo cómodo en Windows Server Core, cuando simplemente puede implementar Windows Server 2016/2019 y vivir como una persona blanca?

Hay varias razones para usar Server Core. Primero: la corriente es casi la mitad del consumo de memoria. Si recuerdas, esta condición fue la base de nuestro artículo al principio. A modo de comparación, el consumo de memoria de Windows Server 2019, compara con las capturas de pantalla justo arriba:


Y así, 1146 MB de memoria consumida en lugar de 655 MB en Core. 

Si no necesita WAC y usa Explorer ++ en lugar del Explorer original, seguirá ganando casi media hectárea en cada máquina virtual que ejecute Windows Server. Si solo hay una máquina virtual, entonces el crecimiento es insignificante, ¿pero si hay cinco? Aquí la presencia de una GUI es importante, especialmente si no la necesita. 

En segundo lugar, cualquier baile en torno a Windows Server Core no lo llevará a la lucha contra el problema principal de operar Windows Server: RDP y su seguridad (más precisamente, su ausencia total). Windows Core incluso en forma de FOD, RSAT y WAC sigue siendo un servidor sin RDP, es decir, no está sujeto al 95% de los ataques existentes.

En el balance


En general, Windows Core es solo un poco más "gordo" que cualquier distribución de Linux, pero mucho más funcional. Si necesita liberar recursos y está listo para trabajar con la consola, WAC y RSAT, use administradores de archivos en lugar de una GUI completa, entonces vale la pena prestarle atención a Core. Además, no será posible pagar más por un Windows completo y gastar el dinero ahorrado en el malestar de su VPS agregando, por ejemplo, RAM. Para mayor comodidad, hemos agregado Windows Server Core a nuestro mercado .


All Articles