Ajustando o Windows Server em uma VPS de baixa potência com Windows Server Core

Ajustando o Windows Server em uma VPS de baixa potência com Windows Server Core
Devido ao consumo elevado de recursos dos sistemas Windows, as distribuições Linux leves dominam os VPS: Mint, Colibri OS, Debian ou Ubuntu, que são livres de um ambiente de desktop pesado e desnecessário para nossas tarefas. Como se costuma dizer, apenas console, apenas hardcode! E na verdade, isso não é uma exagero: o próprio Debian inicia com 256 MB de memória e um núcleo com clock de 1 GHz, ou seja, quase em qualquer 'toco'. Para um funcionamento confortável, são necessários pelo menos 512 MB e um processador um pouco mais rápido. Mas e se dissermos que você pode conseguir algo semelhante em um VPS com Windows? Que não é necessário instalar o pesado Windows Server, que requer de três a quatro gigabytes de memória RAM e pelo menos alguns núcleos com clock de 1,4 GHz? Basta utilizar o Windows Server Core — livrando-se do GUI e de parte dos serviços. É sobre como fazer isso que iremos falar neste artigo.

Quem é esse tal de Windows Server Core?

Não há informações claras sobre o que é o Windows (server) Core nem mesmo no site oficial da Microsoft; para ser mais exato, lá tudo é tão confuso que não dá para entender de imediato, mas as primeiras menções datam da era do Windows Server 2008. Em essência, o Windows Core é o núcleo funcional do Windows Server (surpresa!), 'emagrecedor' pelo tamanho de seu próprio GUI e aproximadamente metade dos serviços secundários.

A principal característica do Windows Core é a baixa exigência de hardware e o gerenciamento completamente via console através do PowerShell.

Se você acessar o site da Microsoft e verificar os requisitos técnicos, para iniciar o Windows Server 2016/2019 você precisará de pelo menos 2 GB de memória RAM e pelo menos um núcleo com clock de 1,4 GHz. Mas todos nós entendemos que com essa configuração podemos esperar apenas o início do sistema, mas certamente não um funcionamento confortável do nosso SO. É exatamente por isso que, normalmente, se allocate mais memória para o Windows Server e pelo menos 2 núcleos/4 threads do processador, se não for possível, fornecendo uma cara máquina física em algum Xeon, em vez de uma barata virtual.

Ainda assim, o próprio núcleo do sistema servidor requer apenas 512 MB de memória, e os recursos da CPU que eram consumidos pelo GUI apenas para serem exibidos na tela e manter seus vários serviços em execução, podem ser usados para algo mais útil.

Aqui está uma comparação dos serviços suportados pelo Windows Core de maneira nativa e o Windows Server completo no site oficial da Microsoft:

application
server core
server comexperiência de desktop

Prompt de comando
disponível
disponível

Windows PowerShell/ Microsoft .NET
disponível
disponível

Perfmon.exe
não disponível
disponível

Windbg (GUI)
suportado
disponível

Resmon.exe
não disponível
disponível

Regedit
disponível
disponível

Fsutil.exe
disponível
disponível

Disksnapshot.exe
não disponível
disponível

Diskpart.exe
disponível
disponível

Diskmgmt.msc
não disponível
disponível

Devmgmt.msc
não disponível
disponível

Gerenciador do Servidor
não disponível
disponível

Mmc.exe
não disponível
disponível

Eventvwr
não disponível
disponível

Wevtutil (Consultas de eventos)
disponível
disponível

Services.msc
não disponível
disponível

Painel de Controle
não disponível
disponível

Windows Update (GUI)
não disponível
disponível

Windows Explorer
não disponível
disponível

Taskbar
não disponível
disponível

Notificações da barra de tarefas
não disponível
disponível

Taskmgr
disponível
disponível

Internet Explorer ou Edge
não disponível
disponível

Sistema de ajuda embutido
não disponível
disponível

Shell do Windows 10
não disponível
disponível

Windows Media Player
não disponível
disponível

PowerShell
disponível
disponível

PowerShell ISE
não disponível
disponível

PowerShell IME
disponível
disponível

Mstsc.exe
não disponível
disponível

Serviços de Área de Trabalho Remota
disponível
disponível

Gerenciador do Hyper-V
não disponível
disponível

Como pode ser visto, do Windows Core foram removidos muitos componentes. Foram eliminados serviços e processos relacionados à interface gráfica, assim como toda a 'tralha' que definitivamente não será necessária em nossa máquina virtual console, como o Windows Media Player.

Quase como o Linux, mas não é.

O Windows Server Core faz com que queiramos compará-lo com distribuições Linux, mas na verdade essa comparação não é totalmente correta. Sim, esses sistemas são semelhantes em termos de consumo reduzido de recursos devido à eliminação de GUI e muitos serviços secundários, mas em termos de uso e algumas abordagens de construção, ainda se trata do Windows, não de um sistema unix.

Um exemplo simples — com uma construção manual do núcleo Linux e instalação subsequente de pacotes e serviços, até mesmo a distribuição Linux mais leve pode ser transformada em algo pesado e parecido com um canivete suíço (aqui é tentador fazer uma piada sobre Python e incluir uma imagem da série 'Se Linguagens de Programação Fossem Armas', mas não o faremos). No Windows Core, essa liberdade é muito menor, pois lidamos com um produto Microsoft.

O Windows Server Core já vem com uma construção pronta, cuja configuração padrão pode ser avaliada na tabela acima. Se você precisar de algo da lista de componentes não suportados, terá que adicionar os elementos faltantes online através do console. No entanto, não podemos esquecer do Feature on demand e a possibilidade de baixar componentes como arquivos CAB, que podem ser adicionados à construção antes da instalação. Mas esse cenário não funciona se você já descobrir durante a operação que falta algum dos serviços removidos.

Mas o que distingue favoravelmente a versão Core da versão completa é a possibilidade de atualizar o sistema e adicionar serviços sem interromper o funcionamento. O Windows Core suporta a instalação de pacotes 'a quente', sem reiniciar. Como resultado, com base em observações práticas: a máquina rodando Windows Core precisa ser reiniciada cerca de 6 vezes menos frequentemente do que uma sob Windows Server, ou seja, uma vez a cada seis meses, em vez de uma vez por mês.

Um bônus agradável para os administradores é que, se o sistema for utilizado como pretendido — via console, sem RDP — e não se tornar um segundo Windows Server, ele se torna extremamente seguro em comparação com a versão completa. Afinal, a maioria das vulnerabilidades do Windows Server ocorre precisamente através do RDP e das ações do usuário que, por meio deste mesmo RDP, realiza ações que não deveriam ser feitas. É algo como a história de Henry Ford e sua relação com a cor do carro: "Qualquer cliente pode ter um carro pintado na cor que quiser, desde que seja preto". Assim também é com o sistema: o usuário pode se comunicar com o sistema de qualquer maneira, contanto que ele faça isso através da console.

Instalação e gerenciamento do Windows Server 2019 Core

Já mencionamos que o Windows Core é, na verdade, o Windows Server sem a camada de interface gráfica. Em outras palavras, você pode utilizar quase qualquer versão do Windows Server como uma versão core, ou seja, abrir mão da interface gráfica. Para os produtos da família Windows Server 2019, 3 das 4 versões de servidor: o modo core está disponível para Windows Server 2019 Standard Edition, Windows Server 2019 Datacenter e Hyper-V Server 2019, o que significa que apenas o Windows Server 2019 Essentials não está incluído nesta lista.

Além disso, o pacote de instalação do Windows Server Core não precisa ser procurado especificamente. Na instalação padrão da Microsoft, a versão core é oferecida literalmente por padrão, enquanto a versão com GUI deve ser selecionada manualmente:

Ajustando o Windows Server em uma VPS de baixa potência com Windows Server Core
Existem, na verdade, mais opções de gerenciamento do que a única mencionada PowerShell, que é a recomendada pelo fabricante por padrão. Você pode gerenciar uma máquina virtual no Windows Server Core de pelo menos cinco maneiras diferentes:

  • PowerShell Remoto;
  • Ferramentas de Administração Remota do Servidor (RSAT);
  • Windows Admin Center;
  • Sconfig;
  • Gerenciador de Servidores.

As três primeiras opções são as mais interessantes: PowerShell padrão, RSAT e Windows Admin Center. No entanto, é importante entender que, ao obter as vantagens de uma das ferramentas, também recebemos suas limitações.

Não vamos detalhar as capacidades do console, PowerShell é PowerShell, com seus óbvios prós e contras. Com RSAT e WAC, a situação é um pouco mais complicada. 

O WAC fornece acesso a elementos importantes de controle do sistema, como edição do registro e gerenciamento de discos e dispositivos. O RSAT, no primeiro caso, funciona apenas no modo de visualização e não permite realizar nenhuma alteração, enquanto para o gerenciamento de discos e dispositivos físicos, as Ferramentas de Administração Remota do Servidor precisam de uma interface gráfica, que não se aplica ao nosso caso. De maneira geral, o RSAT não pode lidar com arquivos e, consequentemente, atualizações, instalação/desinstalação de programas na edição do registro.

▍Gerenciamento do sistema

 

WAC
RSAT

Gerenciamento de componentes
Sim
Sim

Editor do registro
Sim
Não

Gerenciamento de rede
Sim
Sim

Visualização de eventos
Sim
Sim

Pastas compartilhadas
Sim
Sim

Gerenciamento de discos
Sim
Apenas para servidores com GUI

Agendador de tarefas
Sim
Sim

Gerenciamento de dispositivos
Sim
Apenas para servidores com GUI

Gerenciamento de Arquivos
Sim
Não

Gerenciamento de usuários
Sim
Sim

Gerenciamento de grupos
Sim
Sim

Gerenciamento de certificados
Sim
Sim

Atualizações
Sim
Não

Desinstalação de programas
Sim
Não

Monitoramento do sistema
Sim
Sim

Por outro lado, o RSAT nos dá controle total sobre os papéis na máquina, enquanto o Windows Admin Center não pode fazer nada nesse aspecto. Aqui está uma comparação das capacidades do RSAT e do WAC nesse aspecto, para visualização:

▍Gerenciamento de papéis

 

WAC
RSAT

Proteção Avançada contra Ameaças
PRÉ-VISÃO
Não

Windows Defender
PRÉ-VISÃO
Sim

Contêineres
PRÉ-VISÃO
Sim

Centro de Administração do AD
PRÉ-VISÃO
Sim

Domínios AD e Confianças
Não
Sim

Sites e serviços do AD
Não
Sim

DHCP
PRÉ-VISÃO
Sim

DNS
PRÉ-VISÃO
Sim

Gerenciador DFS
Não
Sim

Gerenciador GPO
Não
Sim

Gerenciador IIS
Não
Sim

Isso já mostra que, ao abrir mão da GUI e do PowerShell em favor de outros elementos de controle, não conseguiremos nos desvincular do uso de uma única ferramenta: para uma administração completa em todas as frentes, precisaremos, no mínimo, de uma combinação entre RSAT e WAC.

É importante lembrar que o uso do WAC custará entre 150 e 180 megabytes de memória RAM. O Windows Admin Center, ao se conectar, cria de 3 a 4 sessões no lado do servidor, que não podem ser encerradas mesmo ao desconectar a ferramenta da máquina virtual. Além disso, o WAC não funciona com versões antigas do PowerShell, então você precisará, no mínimo, do PowerShell 5.0. Tudo isso vai contra a nossa paradigma de economia rígida de recursos, mas conforto tem seu preço. No nosso caso — memória RAM.

Outra opção para gerenciar o Server Core é instalar uma GUI por meio de ferramentas de terceiros, evitando trazer as toneladas de lixo que vêm com uma montagem completa junto com a interface.

Neste caso, temos duas opções: instalar o Explorer original no sistema ou usar o Explorer++. Como alternativa ao último, qualquer gerenciador de arquivos serve: Total Commander, FAR Manager, Double Commander e assim por diante. O último é preferível se a economia de memória RAM for crítica para você. Adicionar o Explorer++ ou qualquer outro gerenciador de arquivos pode ser feito criando uma pasta de rede e executando através do console ou agendador.

Instalar um Explorer completo nos dará mais opções em termos de trabalhar com software equipado com UI. Para isso, precisamos recorrer ao recurso Server Core App Compatibility Feature on Demand (FOD), que trará de volta ao sistema o MMC, Eventvwr, PerfMon, Resmon, Explorer.exe e até mesmo o Powershell ISE. No entanto, isso terá um custo, assim como no caso do WAC: perderemos irreversivelmente cerca de 150-200 megabytes de RAM, que serão consumidos implacavelmente pelo explorer.exe e outros serviços. Mesmo que não haja um usuário ativo na máquina.

Ajustando o Windows Server em uma VPS de baixa potência com Windows Server Core
Ajustando o Windows Server em uma VPS de baixa potência com Windows Server Core
Assim é como o consumo de memória se apresenta em máquinas com o pacote nativo do Explorer e sem ele.

Aqui surge uma pergunta lógica: por que todas essas manobras com PowerShell, FOD, gerenciadores de arquivos, se qualquer passo para os lados resulta em um aumento do consumo de memória? Por que se envolver com uma infinidade de ferramentas e se mover de um lado para o outro para garantir um trabalho confortável no Windows Server Core, quando poderia simplesmente instalar o Windows Server 2016/2019 e viver como um ser humano?

Existem várias razões para usar o Server Core. A primeira: o consumo de memória é quase duas vezes menor. Se você se lembra, essa condição foi a base do nosso artigo desde o começo. Veja para comparação, o consumo de memória do Windows Server 2019, compare com os screenshots um pouco acima:

Ajustando o Windows Server em uma VPS de baixa potência com Windows Server Core
E aqui estão 1146 MB de memória consumidos em vez de 655 MB no Core. 

Se presumirmos que o WAC não será necessário e que você usará o Explorer++ em vez do Explorer original, então você ainda estará ganhando quase meio hectare em cada máquina virtual que roda Windows Server. Se houver apenas uma VM, o ganho é insignificante, mas e se houver cinco? Neste caso, a presença de uma interface gráfica se torna relevante, especialmente se você não precisar dela. 

O segundo ponto é que quaisquer tentativas de contornar o Windows Server Core não resolverão o problema principal da operação do Windows Server — RDP e sua segurança (mais precisamente, a total ausência dela). O Windows Core, mesmo com complementos como FOD, RSAT e WAC, ainda é um servidor sem RDP, ou seja, não está sujeito a 95% dos ataques existentes.

No restante

No geral, o Windows Core é apenas um pouco mais 'pesado' do que qualquer distribuição Linux padrão, mas muito mais funcional. Se você precisa liberar recursos e está disposto a trabalhar com o console, WAC e RSAT, e utilizar gerenciadores de arquivos em vez de uma GUI completa, então o Core merece sua atenção. Especialmente porque com ele você não precisará pagar por uma versão completa do Windows, e o dinheiro economizado pode ser investido em upgrades como VPS, adicionando, por exemplo, mais RAM. Para sua conveniência, adicionamos o Windows Server Core ao nosso marketplace.

Ajustando o Windows Server em uma VPS de baixa potência com Windows Server Core

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster