Espremendo o Windows Server em um VPS de baixo consumo de energia usando o Windows Server Core

Espremendo o Windows Server em um VPS de baixo consumo de energia usando o Windows Server Core
Devido à gula dos sistemas Windows, o ambiente VPS é dominado por distribuições Linux leves: Mint, Colibri OS, Debian ou Ubuntu, desprovidas de um ambiente de desktop pesado e desnecessário para nossos propósitos. Como se costuma dizer, só console, só hardcore! E, na verdade, isso não é exagero: o mesmo Debian roda em 256 MB de memória e um núcleo com clock de 1 Ghz, ou seja, em quase qualquer “toco”. Para um trabalho confortável, você precisará de pelo menos 512 MB e um processador um pouco mais rápido. Mas e se disséssemos que você pode fazer aproximadamente a mesma coisa em um VPS rodando Windows? Por que você não precisa implementar um Windows Server pesado, que requer de três a quatro hectares de RAM e pelo menos alguns núcleos com clock de 1,4 GHz? Basta usar o Windows Server Core - livre-se da GUI e de alguns serviços. Falaremos sobre como fazer isso no artigo.

Quem é esse Windows Server Core?

Não há informações claras sobre o que é o Windows (servidor) Core nem no site oficial do Mikes, ou melhor, tudo é tão confuso lá que você não vai entender de imediato, mas as primeiras menções datam da era do Windows Server 2008 Essencialmente, o Windows Core é um servidor kernel do Windows funcional (de repente!), “mais fino” pelo tamanho de sua própria GUI e cerca de metade dos serviços secundários.

A principal característica do Windows Core é seu hardware pouco exigente e controle total do console via 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 RAM e pelo menos um núcleo com velocidade de clock de 1,4 GHz. Mas todos nós entendemos que com tal configuração só podemos esperar a inicialização do sistema, mas certamente não a operação confortável do nosso sistema operacional. É por esta razão que o Windows Server geralmente recebe mais memória e pelo menos 2 núcleos/4 threads do processador, se eles não fornecerem uma máquina física cara em algum Xeon, em vez de uma máquina virtual barata.

Ao mesmo tempo, o núcleo do próprio sistema do servidor requer apenas 512 MB de memória, e os recursos do processador que foram consumidos pela GUI simplesmente para serem desenhados na tela e manter seus numerosos serviços em execução podem ser usados ​​para algo mais útil.

Aqui está uma comparação dos serviços Windows Core com suporte imediato e um Windows Server completo no site oficial da Microsoft:

Formulário on line
núcleo do servidor
servidor 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

server Manager
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

Atualização do Windows (GUI)
não disponível
disponível

Windows Explorer
não disponível
disponível

barra de tarefas
não disponível
disponível

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

Gestor de tarefas
disponível
disponível

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

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

Concha 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

IME do PowerShell
disponível
disponível

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

Remote Desktop Services
disponível
disponível

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

Como você pode ver, muita coisa foi cortada do Windows Core. Os serviços e processos associados à GUI do sistema, bem como qualquer “lixo” que definitivamente não é necessário em nossa máquina virtual de console, por exemplo, o Windows Media Player, foram à faca.

Quase como Linux, mas não é

Eu realmente quero comparar o Windows Server Core com as distribuições Linux, mas na verdade isso não é totalmente correto. Sim, esses sistemas são semelhantes entre si em termos de consumo reduzido de recursos devido ao abandono da GUI e de muitos serviços secundários, mas em termos de operação e algumas abordagens de montagem, ainda é Windows, e não um sistema Unix.

O exemplo mais simples é que construindo manualmente o kernel Linux e depois instalando pacotes e serviços, até mesmo uma distribuição Linux leve pode ser transformada em algo pesado e semelhante a um canivete suíço (aqui eu realmente quero fazer uma piada sanfonada sobre Python e insira uma imagem da série “Se as linguagens de programação fossem armas", mas não o faremos). No Windows Core há muito menos essa liberdade, porque estamos, afinal, lidando com um produto da Microsoft.

O Windows Server Core já vem pronto, cuja configuração padrão pode ser estimada na tabela acima. Se precisar de algo da lista não suportada, você terá que adicionar os elementos ausentes online por meio do console. É verdade que você não deve se esquecer do recurso sob demanda e da capacidade de baixar componentes como arquivos CAB, que podem ser adicionados à montagem antes da instalação. Mas esse script não funciona se você já descobrir durante o processo que está faltando algum dos serviços cortados.

Mas o que distingue a versão Core da versão completa é a capacidade de atualizar o sistema e adicionar serviços sem interromper o trabalho. O Windows Core oferece suporte à laminação a quente de pacotes, sem reinicialização. Como resultado, com base em observações práticas: uma máquina que executa o Windows Core precisa ser reinicializada cerca de 6 vezes menos do que uma que executa o Windows Server, ou seja, uma vez a cada seis meses, e não uma vez por mês.

Um bônus agradável para os administradores é que se o sistema for usado como pretendido - através do console, sem RDP - e não transformado em um segundo Windows Server, ele se tornará extremamente seguro em comparação com a versão completa. Afinal, a maioria das vulnerabilidades do Windows Server se devem ao RDP e às ações do usuário que, através desse mesmo RDP, faz algo que não deveria ser feito. É algo como a história de Henry Ford e sua atitude em relação à cor de um carro: “Qualquer cliente pode ter um carro pintado da cor que quiser, desde que seja preto" O mesmo acontece com o sistema: o usuário pode se comunicar com o sistema de qualquer forma, o principal é que ele faça isso através console.

Instalar e gerenciar o Windows Server 2019 Core

Mencionamos anteriormente que o Windows Core é essencialmente o Windows Server sem o wrapper da GUI. Ou seja, você pode usar quase qualquer versão do Windows Server como versão principal, ou seja, abandonar a GUI. Para produtos da família Windows Server 2019, isso representa 3 de 4 compilações de servidor: o modo principal está disponível para Windows Server 2019 Standard Edition, Windows Server 2019 Datacenter e Hyper-V Server 2019, ou seja, apenas o Windows Server 2019 Essentials está excluído desta lista.

Nesse caso, você realmente não precisa procurar o pacote de instalação do Windows Server Core. No instalador padrão da Microsoft, a versão principal é oferecida literalmente por padrão, enquanto a versão GUI deve ser selecionada manualmente:

Espremendo o Windows Server em um VPS de baixo consumo de energia usando o Windows Server Core
Na verdade, existem mais opções de gerenciamento do sistema do que o mencionado PowerShell, que é oferecido 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 de Servidor Remoto (RSAT);
  • Centro de Administração do Windows;
  • Configuração;
  • Gerenciador do Servidor.

As três primeiras posições são de maior interesse: PowerShell padrão, RSAT e Windows Admin Center. Porém, é importante compreender que ao mesmo tempo que recebemos os benefícios de uma das ferramentas, também recebemos as limitações que ela impõe.

Não descreveremos os recursos do console; PowerShell é PowerShell, com seus prós e contras óbvios. Com RSAT e WAC tudo fica um pouco mais complicado. 

O WAC dá acesso a controles importantes 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 permitirá que você faça nenhuma alteração, e para gerenciar discos e dispositivos físicos as Ferramentas de Administração de Servidor Remoto requerem uma GUI, o que não é o caso no nosso caso. Em geral, o RSAT não pode trabalhar com arquivos e, consequentemente, atualizações, instalação/remoçã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

Ver eventos
Sim
Sim

Pastas partilhadas
Sim
Sim

Gerenciamento de Disco
Sim
Somente para servidores com GUI

Agendador de tarefas
Sim
Sim

Gerenciamento de dispositivo
Sim
Somente para servidores com GUI

Gerenciamento de arquivos
Sim
Não

gerenciamento de usuários
Sim
Sim

Gerenciamento de grupo
Sim
Sim

Gerenciamento de certificados
Sim
Sim

Atualizações
Sim
Não

Desinstalando programas
Sim
Não

Monitor do sistema
Sim
Sim

Por outro lado, o RSAT nos dá controle total sobre as funções da máquina, enquanto o Windows Admin Center não pode fazer literalmente nada a esse respeito. Aqui está uma comparação das capacidades do RSAT e WAC neste aspecto, para maior clareza:

▍Gerenciamento de funções

 

WAC
RSAT

Proteção Avançada de Threads
VISUALIZAR
Não

Windows Defender
VISUALIZAR
Sim

Containers
VISUALIZAR
Sim

Centro Administrativo AD
VISUALIZAR
Sim

Domínio AD e relações de confiança
Não
Sim

Sites e serviços de anúncios
Não
Sim

DHCP
VISUALIZAR
Sim

DNS
VISUALIZAR
Sim

Gerenciador DFS
Não
Sim

Gerenciador de GPO
Não
Sim

Gerenciador de IIS
Não
Sim

Ou seja, já está claro que se abandonarmos a GUI e o PowerShell em favor de outros controles, não conseguiremos usar algum tipo de monoferramenta: para administração completa em todas as frentes, precisaremos de pelo menos uma combinação de RSAT e WAC.

No entanto, você precisa lembrar que terá que pagar de 150 a 180 megabytes de RAM para usar o WAC. Quando conectado, o Windows Admin Center cria de 3 a 4 sessões no lado do servidor, que não são encerradas mesmo quando a ferramenta é desconectada da máquina virtual. O WAC também não funciona com versões mais antigas do PowerShell, portanto você precisará de pelo menos o PowerShell 5.0. Tudo isto vai contra o nosso paradigma de austeridade, mas é preciso pagar pelo conforto. No nosso caso - RAM.

Outra opção para gerenciar o Server Core é instalar a GUI usando ferramentas de terceiros, para não arrastar toneladas de lixo que acompanham a interface em uma montagem completa.

Neste caso, temos duas opções: implementar o Explorer original no sistema ou usar o Explorer++. Como alternativa a este último, qualquer gerenciador de arquivos é adequado: Total Commander, FAR Manager, Double Commander e assim por diante. O último é preferível se economizar RAM for fundamental para você. Você pode adicionar o Explorer++ ou qualquer outro gerenciador de arquivos criando uma pasta de rede e iniciando-a através do console ou agendador.

A instalação de um Explorer completo nos dará mais oportunidades em termos de trabalhar com software equipado com uma UI. Para isso nós terá que entrar em contato ao Server Core App Compatibility Feature on Demand (FOD), que retornará MMC, Eventvwr, PerfMon, Resmon, Explorer.exe e até mesmo Powershell ISE ao sistema. No entanto, teremos que pagar por isso, como é o caso do WAC: perderemos irreversivelmente cerca de 150-200 megabytes de RAM, que serão impiedosamente devorados pelo explorer.exe e outros serviços. Mesmo que não haja nenhum usuário ativo na máquina.

Espremendo o Windows Server em um VPS de baixo consumo de energia usando o Windows Server Core
Espremendo o Windows Server em um VPS de baixo consumo de energia usando o Windows Server Core
É assim que fica o consumo de memória do sistema em máquinas com e sem o pacote nativo do Explorer.

Aqui surge uma questão lógica: por que toda essa dança com PowerShell, FOD, gerenciadores de arquivos, se qualquer passo para a esquerda ou para a direita leva a um aumento no consumo de RAM? Por que se sujar com um monte de ferramentas e embaralhar de um lado para o outro para garantir um trabalho confortável no Windows Server Core, quando você pode simplesmente baixar o Windows Server 2016/2019 e viver como um homem branco?

Existem vários motivos para usar o Server Core. Primeiro: o consumo atual de memória é quase metade disso. Se você se lembra, essa condição foi a base do nosso artigo logo no início. Para efeito de comparação, aqui está o consumo de memória do Windows Server 2019, compare com as capturas de tela acima:

Espremendo o Windows Server em um VPS de baixo consumo de energia usando o Windows Server Core
E assim, 1146 MB de consumo de memória em vez de 655 MB no Core. 

Supondo que você não precise do WAC e usará o Explorer++ em vez do Explorer original, então você você ainda vai ganhar quase meio hectare em cada máquina virtual executando o Windows Server. Se houver apenas uma máquina virtual, o aumento é insignificante, mas se houver cinco? É aqui que importa ter uma GUI, especialmente se você não precisar dela. 

Em segundo lugar, qualquer dança em torno do Windows Server Core não o levará a combater o principal problema de operação do Windows Server - RDP e sua segurança (mais precisamente, sua completa ausência). O Windows Core, mesmo revestido com FOD, RSAT e WAC, ainda é um servidor sem RDP, ou seja, não está suscetível a 95% dos ataques existentes.

Restante

Em geral, o Windows Core é apenas um pouco mais gordo do que qualquer distribuição Linux padrão, mas é muito mais funcional. Se você precisa liberar recursos e está pronto para trabalhar com o console, WAC e RSAT, e usar gerenciadores de arquivos em vez de uma GUI completa, vale a pena prestar atenção ao Core. Além disso, com ele você poderá evitar pagar a mais por um Windows completo e gastar o dinheiro economizado na atualização do seu VPS, adicionando lá, por exemplo, RAM. Por conveniência, adicionamos o Windows Server Core ao nosso Mercado.

Espremendo o Windows Server em um VPS de baixo consumo de energia usando o Windows Server Core

Fonte: habr.com

Adicionar um comentário