OpenVZ Installation · 6 min read · Oct 04, 2025
Instalando E Usando OpenVZ No Debian Wheezy (AMD64)
Instalando E Usando OpenVZ No Debian Wheezy (AMD64)
Versão 1.0
Autor: Falko Timme
Siga-me no Twitter
Neste HowTo, descreverei como preparar um servidor Debian Wheezy para OpenVZ. Com OpenVZ, você pode criar múltiplos Servidores Privados Virtuais (VPS) no mesmo hardware, semelhante ao Xen e ao projeto Linux Vserver. OpenVZ é o ramo de código aberto do Virtuozzo, uma solução de virtualização comercial usada por muitos provedores que oferecem servidores virtuais. O patch do kernel OpenVZ é licenciado sob a licença GPL, e as ferramentas de nível de usuário estão sob a licença QPL.
Este howto é destinado como um guia prático; não cobre os fundamentos teóricos. Eles são tratados em muitos outros documentos na web.
Este documento vem sem garantia de qualquer tipo! Quero dizer que este não é o único modo de configurar tal sistema. Existem muitas maneiras de alcançar esse objetivo, mas este é o caminho que eu sigo. Não dou nenhuma garantia de que isso funcionará para você!
1 Nota Preliminar
Estou usando um sistema x86_64 (amd64) aqui. Se você estiver em um sistema i386, alguns comandos serão ligeiramente diferentes.
2 Instalando OpenVZ
Para Debian Wheezy, não há kernel OpenVZ nos repositórios oficiais. Portanto, temos três opções:
- Instalar a partir dos pacotes RPM oficiais do projeto OpenVZ (veja Instalar kernel a partir de RPM no Debian 6.0) - com suporte a ploop! (recomendado)
- Instalar o kernel Debian Wheezy do projeto OpenVZ e os outros pacotes dos repositórios oficiais do Debian Wheezy (veja Instalação no Debian) - kernel com suporte a ploop, mas o pacote vzctl do Debian não o suporta.
- Instalar a partir dos pacotes Proxmox (veja Instalar Proxmox VE no Debian Wheezy) - sem suporte a ploop no kernel.
2.1 Instalando A Partir Dos Pacotes RPM Oficiais Do Projeto OpenVZ
Baixe os pacotes RPM mais recentes vzkernel, vzctl, ploop e vzquota de http://wiki.openvz.org/Download/kernel/rhel6 e http://wiki.openvz.org/Download/utils, por exemplo, da seguinte forma::
cd /tmp
wget http://download.openvz.org/kernel/branches/rhel6-2.6.32/042stab076.8/vzkernel-2.6.32-042stab076.8.x86_64.rpm
wget http://download.openvz.org/kernel/branches/rhel6-2.6.32/042stab076.8/vzkernel-devel-2.6.32-042stab076.8.x86_64.rpm
wget http://download.openvz.org/utils/vzctl/4.3.1/vzctl-4.3.1-1.x86_64.rpm
wget http://download.openvz.org/utils/vzctl/4.3.1/vzctl-core-4.3.1-1.x86_64.rpm
wget http://download.openvz.org/utils/ploop/1.7/ploop-1.7-1.x86_64.rpm
wget http://download.openvz.org/utils/ploop/1.7/ploop-lib-1.7-1.x86_64.rpm
wget http://download.openvz.org/utils/vzquota/3.1/vzquota-3.1-1.x86_64.rpmInstale os seguintes pacotes…
apt-get install fakeroot alien libcgroup1… e converta os pacotes RPM em pacotes DEB:
fakeroot alien --to-deb --scripts --keep-version vz*.rpm ploop*.rpmInstale os pacotes DEB da seguinte forma:
dpkg -i vz*.deb ploop*.deb Em seguida, precisamos garantir que o kernel correto (o kernel OpenVZ) seja inicializado quando você reiniciar o sistema. Na saída do último comando, você deve ver algo como isto:
Configurando vzkernel (2.6.32-042stab076.8) …
update-initramfs: Gerando /boot/initrd.img-2.6.32-042stab076.8
AVISO: não foi possível abrir /lib/modules/2.6.32-042stab076.8/modules.builtin: Nenhum arquivo ou diretório desse tipo
AVISO: não foi possível abrir /var/tmp/mkinitramfs_baPCFp/lib/modules/2.6.32-042stab076.8/modules.builtin: Nenhum arquivo ou diretório desse tipo
Gerando grub.cfg …
Imagem linux encontrada: /boot/vmlinuz-3.2.0-4-amd64
Imagem initrd encontrada: /boot/initrd.img-3.2.0-4-amd64
Imagem linux encontrada: /boot/vmlinuz-2.6.32-042stab076.8
Imagem initrd encontrada: /boot/initrd.img-2.6.32-042stab076.8
concluído
Isso significa que também há outro kernel no sistema (3.2.0), e o kernel openVZ (2.6.32) não é o primeiro na lista. Portanto, para tornar o kernel OpenVZ o kernel padrão, temos duas opções - ajustar o kernel padrão no GRUB (recomendado) ou remover o(s) kernel(s) não-VZ.
Para ajustar o kernel padrão no GRUB, abra /etc/default/grub…
vi /etc/default/grub… e modifique a linha GRUB_DEFAULT (a contagem começa em 0; como cada kernel também vem com um modo de recuperação, nosso kernel OpenVZ é o terceiro kernel, então precisamos colocar 2 aqui):
| [...] GRUB_DEFAULT=2 [...] |
Atualize o GRUB depois:
update-grubPara remover o kernel padrão, execute…
apt-get remove linux-image-amd64 linux-image-3.2.0-4-amd64… e atualize o GRUB:
update-grubAgora que garantimos que o kernel correto será inicializado, podemos prosseguir.
Em seguida, devemos verificar se estamos usando UUIDs em vez de nomes de dispositivos em /etc/fstab, porque caso contrário o sistema pode não inicializar com o kernel openVZ. Execute…
blkid… para descobrir os UUIDs dos seus dispositivos/partições:
root@server1:/tmp# blkid
/dev/mapper/server1-swap_1: UUID=”c465cb44-1bf9-4fbe-bb31-17139fd43004” TYPE=”swap”
/dev/sda5: UUID=”WRK6Xm-fg52-T836-sp4k-6uxm-trHH-FiRdBx” TYPE=”LVM2_member”
/dev/sda1: UUID=”46d1bd79-d761-4b23-80b8-ad20cb18e049” TYPE=”ext2”
/dev/mapper/server1-root: UUID=”d5ac6d76-0b69-46da-b0c1-a4376f2f0e4e” TYPE=”ext4”
root@server1:/tmp#
Abra /etc/fstab:
vi /etc/fstabMeu /etc/fstab original se parece com o seguinte (como você pode ver, o UUID da partição /boot já está sendo usado, mas para / e swap, os nomes dos dispositivos estão em uso):
| # /etc/fstab: informações estáticas do sistema de arquivos. # # Use 'blkid' para imprimir o identificador universalmente único para um # dispositivo; isso pode ser usado com UUID= como uma maneira mais robusta de nomear dispositivos # que funciona mesmo se discos forem adicionados e removidos. Veja fstab(5). # # |
Modifique-o para que UUIDs sejam usados para todas as partições:
| # /etc/fstab: informações estáticas do sistema de arquivos. # # Use 'blkid' para imprimir o identificador universalmente único para um # dispositivo; isso pode ser usado com UUID= como uma maneira mais robusta de nomear dispositivos # que funciona mesmo se discos forem adicionados e removidos. Veja fstab(5). # # |
Certifique-se de que o OpenVZ inicie automaticamente na inicialização:
update-rc.d vz defaults
update-rc.d vzeventd defaultsEm seguida, precisamos vincular algumas bibliotecas:
ln -s /usr/lib64/libvzctl-4.3.1.so /usr/lib
ln -s /usr/lib64/libploop.so /usr/libSe você quiser usar contêineres ploop, faça isto:
apt-get install partedAlém disso, abra /etc/init.d/vz…
vi /etc/init.d/vz… e adicione a linha mkdir $VARLOCK/ploop para garantir que o diretório /var/lock/ploop seja recriado após uma reinicialização:
| #!/bin/sh # Copyright (C) 2000-2009, Parallels, Inc. 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 # Fundação do Software Livre; 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 DETERMINADO FIM. 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 Fundação do Software # Livre, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 EUA # # # Script de inicialização do OpenVZ, usado para distribuições relacionadas ao redhat e debian. ### # chkconfig: 2345 96 20 # descrição: Script de inicialização do OpenVZ. ### ### BEGIN INIT INFO # Fornece: vz # Requer-início: $network $remote_fs $syslog # Requer-parar: $network $remote_fs $syslog # Deve-Iniciar: sshd vzeventd # Deve-Parar: sshd vzeventd # Início-Padrão: 2 3 4 5 # Parada-Padrão: 0 1 6 # Descrição-Resumida: Script de inicialização do OpenVZ # Descrição: Script de inicialização do OpenVZ. ### END INIT INFO # Esta linha é necessária para enganar /etc/init.d/rc que espera uma palavra de ação . /usr/libexec/vzctl/scripts/initd-functions mkdir $VARLOCK/ploop [...] |
Crie um link simbólico de /vz para /var/lib/vz para fornecer compatibilidade retroativa:
ln -s /vz /var/lib/vzAbra /etc/sysctl.conf e certifique-se de que você tenha as seguintes configurações nele:
vi /etc/sysctl.conf| [...] net.ipv4.conf.all.rp_filter=1 net.ipv4.icmp_echo_ignore_broadcasts=1 net.ipv4.conf.default.forwarding=1 net.ipv4.conf.default.proxy_arp = 0 net.ipv4.ip_forward=1 kernel.sysrq = 1 net.ipv4.conf.default.send_redirects = 1 net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.eth0.proxy_arp=1 [...] |
Se você precisar modificar /etc/sysctl.conf, execute
sysctl -p depois.
O próximo passo é importante se os endereços IP de suas máquinas virtuais forem de uma sub-rede diferente do endereço IP do sistema host. Se você não fizer isso, a rede não funcionará nas máquinas virtuais!
Abra /etc/vz/vz.conf e defina NEIGHBOUR_DEVS como all:
vi /etc/vz/vz.conf| [...] # Controla quais interfaces enviar solicitações ARP e modificar tabelas APR. NEIGHBOUR_DEVS=all [...] |
Instale o vzdump:
apt-get install vzdumpFinalmente, reinicie o sistema:
rebootSe o seu sistema reiniciar sem problemas, então tudo está bem!
Execute
uname -re seu novo kernel OpenVZ deve aparecer:
root@server1:~# uname -r
2.6.32-042stab076.8
root@server1:~#
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.