Pular para o conteúdo

KVM vs LXC

A primeira decisão ao contratar um servidor no NT Datacenter é escolher entre KVM e LXC. As duas tecnologias rodam lado a lado nos clusters Proxmox VE da NTWeb, mas funcionam de formas bem diferentes — e essa diferença afeta custo, desempenho e o que você pode rodar.

O que são KVM e LXC

KVM (Kernel-based Virtual Machine) é um módulo do kernel Linux que transforma o servidor em hypervisor. Cada VM KVM tem seu próprio kernel, roda qualquer sistema operacional — Linux, Windows, BSD — e isola o hardware via QEMU. O KVM foi incorporado ao kernel mainline em 2007 e é mantido pela comunidade em linux-kvm.org.

LXC (Linux Containers) é virtualização em nível de sistema operacional. Todos os containers do mesmo host compartilham o kernel — o isolamento vem de cgroups e namespaces, primitivas já presentes no kernel Linux. O projeto oficial é o linuxcontainers.org. O Proxmox VE integrou LXC na versão 4.0, em 2015, substituindo o antigo OpenVZ.

 

Matriz de decisão

Cenário Escolha

Rodar Windows, pfSense, FreeBSD, appliance de rede

   KVM

Precisar de kernel próprio

   KVM

Site, API, banco (MySQL, Postgres, Redis)

   LXC

Laboratório, app pequeno, serviço auxiliar

   LXC

SLA rígido com isolamento forte

   KVM

Até 4 GB de RAM

   LXC

Acima de 4 GB de RAM

   KVM

 

Diferenças operacionais concretas

Aspecto KVM LXC

Tempo médio de boot

   30–60 s            1–3 s

Overhead de RAM para o SO

200–400 MB         20–50 MB

Densidade em host de 128 GB

20–30 VMs   80–120 containers

Snapshot ao vivo (RAM + disco)

     Sim      Somente disco

Live migration entre nós

     Sim Stop → migrate →start

Trocar o kernel

     Sim Não — usa o kernel do host

Módulos kernel exóticos

     Sim     Não

Preço NT VPS (entrada)

R$ 129,90 (4 GB) R$ 29,90 (1 GB)

LXC tem cerca de 10x menos overhead de RAM e 20x menos tempo de boot. Na densidade de 100 containers por nó operada pela NTWeb em hosts de 128 GB, isso significa quase 1 GB a mais disponível por aplicação — em vez de ser consumido pelo SO da VM.

  • NT VPS LXC: teto de 4 GB de RAM. Acima disso, o cliente migra para NT VPS KVM ou NT Cloud KVM.
  • Docker em LXC: roda com a flag nesting=1. Os templates NTWeb já trazem habilitado.
  • Windows: sempre em KVM, sem exceção — LXC só roda Linux.
  • Kubernetes produtivo: KVM, pelo isolamento do kernel.
  • Oversell de RAM: permitido em LXC com fator 1,5x; proibido em KVM.

 

Casos reais

  • Zabbix monitorando até 50 hosts: LXC 4 GB. Acima de 150 hosts, KVM 4 GB pelo fsync mais agressivo do agente.
  • FreePBX em produção: sempre KVM. Módulos de áudio (dahdi, chan_dahdi) exigem kernel próprio.
  • Postgres dedicado: LXC até 4 GB. Acima disso, KVM pela previsibilidade de I/O.

 

Posso trocar depois?

De LXC para KVM exige reinstalar e restaurar dados — não existe conversão direta. Antes de mudar, tire snapshot do LXC e exporte o que importa (dump do banco, tarball de /var/www, arquivos de configuração).

Dentro do mesmo tipo, upgrade de CPU, RAM ou disco é feito pelo painel sem necessidade de reinstalação. Veja o artigo sobre upgrade de recursos para o passo a passo.

 

Perguntas frequentes

KVM é mais seguro que LXC?

Em termos de isolamento, sim. KVM virtualiza CPU, memória e dispositivos em anéis de hardware (VT-x da Intel ou AMD-V da AMD), enquanto LXC depende de namespaces do kernel compartilhado. Para ambientes regulados — PCI-DSS, dados sensíveis de terceiros — prefira KVM. Para apps comuns com kernel bem atualizado, LXC é suficientemente seguro. A NTWeb usa LXC unprivileged por padrão, com UID mapping, conforme descrito em Proxmox Wiki — Unprivileged LXC.

 

Posso rodar Docker dentro de LXC?

Pode. Basta a flag nesting=1 no container e montar /dev/kmsg. Os templates NTWeb já fazem isso. Há penalidade de 5 a 10% em I/O pelo duplo cgroup, imperceptível em aplicações web comuns.

 

Qual a diferença entre LXC e Docker?

LXC é um container de sistema: roda systemd, múltiplos processos, se comporta como uma VM leve. Docker é um container de aplicação: um processo por container, imutável, pensado para orquestração. Você roda Docker dentro de um LXC — não o contrário.

 

Quanto custa cada um na NTWeb?

NT VPS LXC: 1 GB R$ 29,90 / 2 GB R$ 49,90 / 4 GB R$ 79,90.

NT VPS KVM: 4 GB R$ 129,90 / 8 GB R$ 249,90 / 16 GB R$ 499,90 / 32 GB R$ 999,90 / 64 GB R$ 1.999,90.

 

LXC tem alguma limitação de segurança conhecida?

Tem. Como o kernel é compartilhado, uma vulnerabilidade local de privilege escalation no kernel do host afeta todos os containers. Por isso a NTWeb mantém o kernel do host atualizado e usa LXC unprivileged por padrão.

Esta resposta lhe foi útil?