Virtualização

O que é OpenVZ?

Também conhecido como: Virtuozzo
Definição

OpenVZ is container-based virtualisation in which every instance shares the host kernel, so guests cannot load kernel modules or run a different operating system. OpenVZ is why unusually cheap virtual servers exist: density is much higher and memory is routinely oversold.

Porque é que OpenVZ importa

OpenVZ é a razão pela qual existem servidores virtuais invulgarmente baratos: a densidade é muito maior e a memória é rotineiramente sobresubscrita. É também a razão pela qual Docker, WireGuard em anfitriões mais antigos e kernels personalizados falham frequentemente em fornecedores de baixo custo.

OpenVZ na prática

Quando se executa um VPS OpenVZ, vive-se dentro do kernel do host. Vê-se isto em `/proc` e nos módulos que não se conseguem carregar: tente `modprobe wireguard` e falha com uma mensagem sobre permissões, não sobre um ficheiro em falta. Mudar o kernel está fora de questão, por isso adapta-se a carga de trabalho, não o host. A memória é partilhada e muitas vezes sobrescrita, por isso um pico de um vizinho pode pressionar a sua. Um erro aqui é caro: escolher uma caixa OpenVZ para uma tarefa que precisa de controlo do kernel e enfrentar a reconstrução em KVM ou mudar totalmente o plano.

O que se costuma entender mal sobre OpenVZ

Um erro comum é assumir que OpenVZ é apenas um KVM mais antigo ou mais barato. Não é. Os contentores OpenVZ não podem carregar módulos do kernel, executar um SO diferente, ou usar funcionalidades como WireGuard em hosts mais antigos. A correção: tratar o OpenVZ como uma restrição distinta, não um subconjunto. Se precisar de controlo ao nível do kernel, escolha um plano KVM desde o início.

OpenVZ — perguntas frequentes

Posso executar Docker no OpenVZ?

Muitas vezes não diretamente. Como o OpenVZ partilha o kernel do host e pode restringir funcionalidades do kernel, o runtime de contentores habitual do Docker pode falhar, especialmente em hosts mais antigos. Pode usar workarounds como lxc ou executar contentores numa VM, mas não é garantido. Verifique as capacidades do seu host antes de depender do Docker.

Para que serve o OpenVZ?

O OpenVZ serve para ambientes de alta densidade onde muitas instâncias correm num host, tornando-o barato. Adequa-se a servidores web típicos, aplicações leves e qualquer carga de trabalho que não precise de modificações do kernel. Apenas evite tarefas que exijam kernels personalizados, virtualização aninhada ou funcionalidades de rede exóticas.

Mais de virtualização

KVM
KVM é virtualização completa de hardware integrada no kernel Linux, dando a cada convidado o seu próprio kernel e isolamento imposto por hardware dos outros inquilinos.
LXC
LXC é contentorização nativa do Linux que isola processos com namespaces e cgroups, partilhando o kernel do anfitrião.
Hipervisor
Um hipervisor é a camada de software que cria e executa máquinas virtuais, alocando CPU física, memória e I/O entre elas.
Virtualização aninhada
A virtualização aninhada permite que uma máquina virtual execute, ela própria, máquinas virtuais, expondo as extensões de virtualização do processador ao convidado.
vCPU
Uma vCPU é um processador virtual apresentado a um convidado, suportado por tempo de agendamento num núcleo físico ou thread.
cloud-init
cloud-init é o mecanismo padrão para configurar uma máquina virtual no primeiro arranque, usando metadados fornecidos pela plataforma.