Virtualização · 5 min read · Jan 18, 2026

OpenVZ No Debian Etch Para Servidores Web

OpenVZ No Debian Etch Para Servidores Web

Introdução

A virtualização é ótima! Uma boa prática para servidores, pois torna as coisas mais seguras, escaláveis, substituíveis e replicáveis. Tudo isso com um custo de complexidade adicional mínima.

Este guia foi escrito durante a instalação de uma máquina Supermicro com 2 opterons de núcleo duplo (64 bits), 2 discos idênticos (para RAID) e uma quantidade de memória. Por que OpenVZ e não XEN ou o recente módulo de kernel KVM? Bem, o XEN não é muito estável para arquiteturas de 64 bits (ainda), e vem com uma quantidade considerável de sobrecarga (cada VM executa seu próprio kernel) devido à sua complexidade. O KVM é muito simples, mas restringe você a executar um kernel como um único processo, então a VM não pode se beneficiar de sistemas de múltiplos núcleos.

Com o OpenVZ, apenas um kernel é executado para o ambiente host e todas as VMs, isso torna a configuração enxuta e um bom candidato para servidores web.

Instalar o sistema de hospedagem

Primeiro, instale o Etch (certifique-se de configurar o RAID com o instalador).

Você pode querer se livrar de alguns diretórios e links desnecessários na sua raiz (e, como o resto do guia, como root):

cd /
rm cdrom
unlink vmlinuz.old
unlink vmlinuz
rmdir selinux/
rmdir initrd
unlink initrd.img.old
rmdir opt
rmdir srv/

Agora queremos compilar um kernel personalizado habilitado para OpenVZ, seguimos meio que este guia no site do OpenVZ. Uma visão geral do que fizemos:

apt-get update
apt-get install linux-source-2.6.18 kernel-patch-openvz vzctl vzquota # este comando pode precisar que você reconheça
cd /usr/src
tar xjvf linux-source-2.6.18.tar.bz2
cd linux-source-2.6.18
cp /boot/config-2.6.18-3-amd64 .config
aptitude install kernel-package # você precisa disso na próxima linha
make-kpkg --append_to_version=-1-openvz --added_patches=openvz --revision=1 kernel_image
cd ..
dpkg -i linux-image-2.6.18-1-openvz_1_amd64.deb
update-initramfs -c -k 2.6.18-1-openvz
update-grub

Então (depois que você pode ter modificado um pouco o /boot/grub/menu.lst para definir o kernel correto como padrão) você pode reiniciar.

Após a reinicialização, usando o kernel habilitado para OpenVZ, verifique se tudo funciona:

ifconfig # deve listar suas interfaces e uma interface "venet" adicional
cat /proc/vz/* # deve mostrar algumas coisas (não é muito importante o que mostra ainda)
cat /proc/cpuinfo # veja se seus CPUs estão ativos
cat /proc/mdstat # RAIDs funcionando
lsmod # deve mostrar alguns módulos começando com as letras "vz"

Criar Servidores Privados Virtuais (VPSs)

Agora configuramos, iniciamos um VPS a partir do template mínimo padrão (você pode encontrá-lo em /var/lib/vz/template/cache):

vzctl create 101 --ostemplate debian-3.1-amd64-minimal --config vps.basic
vzctl set 101 --onboot yes --save
vzctl set 101 --hostname test101.mytest.org --save
vzctl set 101 --ipadd 10.0.0.101 --save
vzctl set 101 --numothersock 120 --save
vzctl set 101 --nameserver 10.0.0.2 --save
vzctl set 101 --privvmpages 500000:750000 --save # dê-lhe um pouco de memória CHECKME
vzctl start 101
vzctl exec 101 passwd

Então você pode se conectar ao VPS por

ssh 10.0.0.101

, e note o prompt colorido…

Este template é um template Sarge (3.1), e eu quero que seja Etch (4.0), então quando estiver logado no VPS como root, faça:

nano /etc/apt/sources.list # edite para corresponder ao sources.list na sua instalação host (Etch)
aptitude update
aptitude dist-upgrade

Agora experimente seu novo VPS e torne-o utilizável, instale os pacotes que você gostaria de ter por perto, já que esses sistemas servirão mais tarde como base para outros VPSs.

Em seguida, estamos criando um template a partir do VPS recém-customizado, isso é uma coisa fácil:

vzctl stop 101 # pare-o
rm -f /var/lib/vz/private/101/etc/ssh/ssh_host_* # remova as chaves (novas serão geradas na primeira inicialização)
cd /var/lib/vz/private/101/
tar czf /var/lib/vz/template/cache/debian-etch-20061218-amd64.tar.gz .

Como Borat diria: “Legal! Eu gosto!”

Agora podemos configurar e executar alguns VPSs adicionais, como antes, mas agora ligeiramente modificados:

vzctl create 102 --ostemplate debian-etch-20061218-amd64 --config vps.basic
vzctl set 102 --onboot yes --save
vzctl set 102 --hostname test102.mytest.org --save
vzctl set 102 --ipadd 10.0.0.102 --save
vzctl set 102 --numothersock 120 --save
vzctl set 102 --nameserver 10.0.0.2 --save
vzctl set 102 --privvmpages 500000:750000 --save # dê-lhe um pouco de memória CHECKME
vzctl start 102
vzctl exec 102 passwd

E (sim, eu vejo que não há muitas mudanças interessantes)…

vzctl create 103 --ostemplate debian-etch-20061218-amd64 --config vps.basic
vzctl set 103 --onboot yes --save
vzctl set 103 --hostname test103.mytest.org --save
vzctl set 103 --ipadd 10.0.0.103 --save
vzctl set 103 --numothersock 120 --save
vzctl set 103 --nameserver 10.0.0.2 --save
vzctl set 103 --privvmpages 500000:750000 --save # dê-lhe um pouco de memória CHECKME
vzctl start 103
vzctl exec 103 passwd

E inicie o primeiro VPS (vzctl start 101) já que o tiramos do ar para usá-lo como base para nosso template, lembre-se?

Agora temos 3 VPSs em execução. Teste com vzlist, saída:

      VEID      NPROC STATUS  IP_ADDR         HOSTNAME
       101          5 running 10.0.0.101      test101.mytest.org
       102          5 running 10.0.0.102      test102.mytest.org
       103          5 running 10.0.0.103      test103.mytest.org

Os VPSs precisam de memória, por padrão eles recebem muito pouco, então, por favor, defina vmguarpages, oomguarpages, privvmpages, etc, etc, etc, nos arquivos de configuração do seu VPS (/etc/vz/conf/*.conf) para alguns valores razoáveis – uma página equivale a 4Kb. Os erros que ocorrem porque você restringiu seu VPS demais podem ser lidos executando:

vzctl exec 101 cat /proc/user_beancounters

A última coluna do UBC (user_beancounter) deve conter apenas zeros, se não, tente aumentar algumas barreiras e limites. Consulte a documentação do OpenVZ para mais informações sobre as opções individuais.

Agora podemos continuar configurando nossos apaches, postfixes, etc, etc, etc, nos VPSs… Boa sorte!

Ohh e abaixo meu arquivo /etc/vz/conf/101.conf, está péssimo, eu apenas aumentei alguns valores de forma bruta porque tivemos erro no user_beancounter.

cat /etc/vz/conf/101.conf
#  Copyright (C) 2000-2006 SWsoft. Todos os direitos reservados.
#
#  Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo
#  sob os termos da Licença Pública Geral GNU conforme publicada pela
#  Free Software Foundation; seja a versão 2 da Licença, ou
#  (a seu critério) qualquer versão posterior.
#
#  Este programa é distribuído na esperança de que seja útil,
#  mas SEM NENHUMA GARANTIA; sem mesmo a garantia implícita de
#  COMERCIALIZAÇÃO ou ADEQUAÇÃO A UM PROPÓSITO ESPECÍFICO. Veja a
#  Licença Pública Geral GNU para mais detalhes.
#
#  Você deve ter recebido uma cópia da Licença Pública Geral GNU
#  junto com este programa; se não, escreva para a Free Software
#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  EUA
#
VERSION="2"
ONBOOT="yes"
# Parâmetros UBC (na forma de barreira:limite)
# Parâmetros primários
AVNUMPROC="40:40"
NUMPROC="255:255"
NUMTCPSOCK="80:80"
NUMOTHERSOCK="255:255"
VMGUARPAGES="500000:9223372036854775807"
# Parâmetros secundários
KMEMSIZE="33554432:36909875"
TCPSNDBUF="319488:524288"
TCPRCVBUF="524288:524288"
OTHERSOCKBUF="439296:439296"
DGRAMRCVBUF="132096:132096"
OOMGUARPAGES="500000:9223372036854775807"
# Parâmetros auxiliares
LOCKEDPAGES="32:32"
SHMPAGES="8192:8192"
PRIVVMPAGES="500000:750000"
NUMFILE="10240:10240"
NUMFLOCK="100:110"
NUMPTY="16:16"
NUMSIGINFO="256:256"
DCACHESIZE="1048576:1097728"
PHYSPAGES="0:9223372036854775807"
NUMIPTENT="128:128"
# Parâmetros de cota de disco (na forma de limite suave:limite rígido)
DISKSPACE="1048576:1153434"
DISKINODES="200000:220000"
QUOTATIME="0"
# Parâmetro do escalonador justo de CPU
CPUUNITS="1000"
OFFLINE_MANAGEMENT="yes"
VE_ROOT="/var/lib/vz/root/$VEID"
VE_PRIVATE="/var/lib/vz/private/$VEID"
OSTEMPLATE="debian-3.1-amd64-minimal"
ORIGIN_SAMPLE="vps.basic"
HOSTNAME="101.mytest.org"
IP_ADDRESS="10.0.0.101"
NAMESERVER="10.0.0.2"
Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.