OpenVZ Installation · 6 min read · Nov 25, 2025

Instalando e Usando OpenVZ no Ubuntu 13.04 (AMD64)

Instalando e Usando OpenVZ no Ubuntu 13.04 (AMD64)

Versão 1.0
Autor: Falko Timme
Siga-me no Twitter

Neste HowTo, descreverei como preparar um servidor Ubuntu 13.04 para OpenVZ. Com OpenVZ, você pode criar vários 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 o Ubuntu 13.04, não há kernel OpenVZ nos repositórios oficiais. Portanto, devemos instalar o OpenVZ a partir dos pacotes RPM oficiais do projeto OpenVZ (veja Instalar kernel a partir de RPM no Debian 6.0) - com suporte a ploop

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.rpm

Instale 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*.rpm

Instale os pacotes DEB da seguinte forma:

dpkg -i vz*.deb ploop*.deb 

Em seguida, devemos 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 /tmp/mkinitramfs_I0VIfE/lib/modules/2.6.32-042stab076.8/modules.builtin: Nenhum arquivo ou diretório desse tipo
Gerando grub.cfg …
Encontrado imagem linux: /boot/vmlinuz-3.8.0-19-generic
Encontrado imagem initrd: /boot/initrd.img-3.8.0-19-generic
Encontrado imagem linux: /boot/vmlinuz-2.6.32-042stab076.8
Encontrado imagem initrd: /boot/initrd.img-2.6.32-042stab076.8
Encontrado imagem memtest86+: /memtest86+.bin
feito

Isso significa que também há outro kernel no sistema (3.8.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; nosso OpenVZ é o terceiro kernel no submenu Opções Avançadas do GRUB do Ubuntu (que é a segunda opção no menu de inicialização após o kernel 3.8.0), então precisamos colocar “1>2” aqui (entre aspas) - você pode encontrar mais sobre submenus do GRUB aqui: https://help.ubuntu.com/community/Grub2/Submenus):

| [...] GRUB_DEFAULT="1>2" [...] |

Atualize o GRUB depois:

update-grub

Para remover o kernel padrão, execute…

apt-get remove linux-image linux-image-3.8.0-19-generic

… e atualize o GRUB:

update-grub

Agora 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/sda1: UUID=”9b8299f1-b2a2-4231-9ba1-4540fad76b0f” TYPE=”ext2”
/dev/sda5: UUID=”M83xtW-GofR-FFaa-myo1-T4Gw-grKe-Kg1Etc” TYPE=”LVM2_member”
/dev/mapper/server1–vg-root: UUID=”a5a6e916-64e1-4af9-8bd4-32491d7edcac” TYPE=”ext4”
/dev/mapper/server1–vg-swap_1: UUID=”a68ae8a2-c2cd-4e92-af08-a71661f8f719” TYPE=”swap”
root@server1:/tmp#

Abra /etc/fstab:

vi /etc/fstab

Meu /etc/fstab original é 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 do sistema de arquivos estático. # # 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). # # /dev/mapper/server1--vg-root / ext4 errors=remount-ro 0 1 # /boot estava em /dev/sda1 durante a instalação UUID=9b8299f1-b2a2-4231-9ba1-4540fad76b0f /boot ext2 defaults 0 2 /dev/mapper/server1--vg-swap_1 none swap sw |

Modifique-o para que UUIDs sejam usados para todas as partições:

| # /etc/fstab: informações do sistema de arquivos estático. # # 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). # # #/dev/mapper/server1--vg-root / ext4 errors=remount-ro 0 1 UUID=a5a6e916-64e1-4af9-8bd4-32491d7edcac / ext4 errors=remount-ro 0 1 # /boot estava em /dev/sda1 durante a instalação UUID=9b8299f1-b2a2-4231-9ba1-4540fad76b0f /boot ext2 defaults 0 2 #/dev/mapper/server1--vg-swap_1 none swap sw 0 0 UUID=a68ae8a2-c2cd-4e92-af08-a71661f8f719 none swap sw 0 0 |

Certifique-se de que o OpenVZ inicie automaticamente na inicialização:

update-rc.d vz defaults
update-rc.d vzeventd defaults

Em seguida, precisamos vincular algumas bibliotecas:

ln -s /usr/lib64/libvzctl-4.3.1.so /usr/lib
ln -s /usr/lib64/libploop.so /usr/lib

Se você quiser usar contêineres ploop, faça isso:

apt-get install parted

Alé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 # 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 # # # 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. ### ### INÍCIO DAS INFORMAÇÕES DE INICIALIZAÇÃO # Fornece: vz # Necessário-iniciar: $network $remote_fs $syslog # Necessário-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. ### FIM DAS INFORMAÇÕES DE INICIALIZAÇÃO # 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/vz

Abra /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 das 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 vzdump

Finalmente, reinicie o sistema:

reboot

Se o seu sistema reiniciar sem problemas, então tudo está bem!

Execute

uname -r

e seu novo kernel OpenVZ deve aparecer:

root@server1:~# uname -r
2.6.32-042stab076.8
root@server1:~#

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.