OpenVZ: Virtualização para servidores Linux

Neste artigo vamos aprender como montar servidores virtuais tão funcionais quanto servidores convencionais, com os quais podemos montar várias máquinas virtuais com serviços distintos e trabalhar de forma organizada e escalonável.

[ Hits: 168.629 ]

Por: Anderson L Tamborim em 26/10/2006 | Blog: http://y2h4ck.wordpress.com


Introdução ao OpenVZ



O que é o OpenVZ


O OpenVZ é uma solução de virtualização em nível de sistema operacional. OpenVZ cria ambientes virtuais isolados, que funcionam como servidores standalone convencionais, porém utilizando um único hardware em comum. Estes ambientes virtuais seguros são conhecidos como VE ou como VPS (virtual private server).

VPS's podem ser reinicializados independentes uns dos outros. Todos possuem hostname, acesso de root, endereço IP e tudo mais que um servidor pode ter, sendo assim uma solução extremamente confiável e funcional de virtualização.

OpenVZ é a base do sistema comercial chamado Virtuozzo, muito conhecido pelo pessoal que costuma alocar servidores em datacenters no exterior. Estas empresas costumam oferecer o VPS por um preço bem mais acessível que um servidor standalone.

Baixando os pacotes necessários


Neste artigo estarei partindo do pressuposto que o leitor já conheça o sistema operacional Linux, bem como algumas funções avançadas, tais como:
  • Compilação de programas;
  • Compilação e atualização do kernel;
  • Debug de possíveis erros.

Estarei utilizando o seguinte hardware para teste:
  • P4 3.0;
  • 4Gb Ram;
  • HD 200 Gb SATA.

Sistema operacional: Debian Sarge 3.1.

Apesar de utilizar o Debian, também estarei ensinando passo-a-passo como compilar os componentes necessários, assim ninguém ficá sentindo-se abandonado, ehehe.

Uma coisa meio chata é que o OpenVZ está disponível apenas para o kernel 2.6.8-2, que já é um pouco velho, mas já que é assim, vamos ao kernel.

Primeiro vamos para /usr/src:

# cd /usr/src

Baixando o kernel necessário para nosso projeto:

# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.8.tar.bz2
# tar xjf linux-2.6.8.tar.bz2

Agora precisamos baixar o patch para o OpenVZ:

# wget http://download.openvz.org/kernel/022stab064.1/\
stable/patches/patch-022stab064-combined.gz


Descompactando:

# gzip -d patch-022stab064-combined.gz

Aplicando o patch:

# patch -p1 < patch-022stab064-combined

Assim nosso kernel estará pronto para utilizar o OpenVZ. Para finalizar, vamos baixar o arquivo de configuração para o kernel:

# wget http://download.openvz.org/kernel/022stab064.1/configs/\
stable/kernel-2.6.8-022stab064-i686.config.ovz


Vamos entrar na configuração do kernel.

# make menuconfig

Vá à opção:

"Load an alternate configuration file"

Após isto, basta escolher o arquivo kernel-2.6.8-022stab064-i686.config.ovz.

Pode compilar o kernel agora:

# fakeroot make-kpkg --revision=OpenVZ.2.6.8 kernel_image

Com make-kpkg será gerado um arquivo.deb que só precisa ser instalado.

Nas outras distribuições, compile o kernel da forma que lhe for mais conveniente.

Instalando um kernel com OpenVZ


Para os usuários de Debian podemos acelerar um pouco as coisas utilizando um pacote de kernel pré-compilado e pronto para instalar, o que facilita muito a nossa vida.

Vale lembrar que este kernel não possui suporte ao sistema de arquivos XFS.

# wget http://downloads.howtoforge.com/debian_openvz_howto/\
kernel-image-2.6.8-022stab064-up_OpenVZ.2.6.8_i386.deb


Agora basta instalá-lo:

# dpkg -i /usr/src/kernel-image-2.6.8-022stab064-up_OpenVZ.2.6.8_i386.deb

Reinicie o servidor e pronto.

# shutdown -r now

Instalando o gerenciador OpenVZ


Vamos instalar a suíte de ferramentas que vai nos permitir gerar e gerenciar as máquinas virtuais. Para tanto, adicione o seguinte repositório em seu APT:

deb http://debian.systs.org/ stable openvz

Atualize a base do APT:

# apt-get update

Agora basta instalá-los:

# apt-get install vzctl vzquota

Pronto, estamos preparados para criar nossa primeira máquina virtual.

Página anterior     Próxima página

Páginas do artigo
   1. Prólogo
   2. Introdução ao OpenVZ
   3. Montando nossa primeira máquina virtual
   4. Gerenciando a máquina virtual
   5. Conclusão
Outros artigos deste autor

Análise Forense - Aspectos de perícia criminal

Security Hacks: Linux & BSD

PSAD: Port Scan Attack Detector

Race condition - vulnerabilidades em suids

Jails em SSH: Montando sistema de Shell Seguro

Leitura recomendada

A pós-instalação do Arch Linux

Neste Natal: liberte o seu Motorola Atrix, e o transforme no desktop perfeito

Exemplos práticos de tabelas de partições

Configurando hostname, rotas, gateway e IP em Red Hat 6

Senha de root - Como bloquear com segurança

  
Comentários
[1] Comentário enviado por fabio em 26/10/2006 - 00:58h

Anderson voltando em grande estilo. Tá virando o Cabelo dos artigos sobre segurança :)

Sensacional, taí uma coisa que eu não fazia idéia de como implementar.

Um abraço

[2] Comentário enviado por leitaum em 26/10/2006 - 07:40h

legal eh como se fosse uma vmware soh que livre...
:D
bom isso que vc pode montar varios servidores em um unico hardware.. e ainda... pode reiniciar os servidores e servicoes independentes... :D

[3] Comentário enviado por Gblecci em 26/10/2006 - 09:01h

Na última quinta-feira participei de um evento ocorrido em Curitiba-PR feito pela IBM em que eles mostraram muito sobre este mesmo assunto, um dos diretores da IBM falou mais de 2 horas sobre o assunto, e eu achei muito interessante o poder que o Linux tem, eu não sou usuário (AINDA eheheehh), mas já estou baixando versões para aprender a mexer :)...

Excelente artigo Anderson, essa técnologia é MUITO interessante mesmo! ;)
(Me desculpem se ela já for usada há muito tempo, mas eu desconhecia ehehehhe)

[4] Comentário enviado por pizzolo_br em 26/10/2006 - 09:14h

Parabéns pelo artigo,
interessante este sistema de virtualização, só achei ele bem mais limitado que o vmware(lógico que não há comparação, pois este já existe há muito tempo e custa uma boa $NOTA$) que eu já uso há algum tempo.
Alguém sabe se existe algum sistema OpenSource que possibilite fazer instalações do linux a partir do zero(a partir do cd por ex.) em máquinas virtuais?

[5] Comentário enviado por y2h4ck em 26/10/2006 - 09:28h

Qemu :)

Faz exatamente isto.

[6] Comentário enviado por leitaum em 26/10/2006 - 11:19h

isso eh que ele eh mais ultilizado para servicos e aplicacoes especificas bom mesmo montar um servidor e colocar varios servicoes diferentes em varias maquinas virtuais ajudando na manutencao e administracao dos servidores!! :D

[7] Comentário enviado por shin_ragnarok em 26/10/2006 - 12:07h

Primeiro adorei o artigo!

excelente!

mas esqueceram de um...

E o xen?? esqueçeram dele?

[8] Comentário enviado por y2h4ck em 26/10/2006 - 12:14h

Não claro que não..

Porém minha proposta é o openvz que me pareceu mais simples :)

[9] Comentário enviado por Gblecci em 26/10/2006 - 14:20h

pizzolo_br pelo que eu vi na palestra que mencionei acima, é possível fazer rodar em uma mesma máquina, diversas distribuições do linux, não necessariamente a mesma, mas a distribuição que eles usavam para dar esse suporte era a RedHat, ou seja, teria que ter instalado o RedHat na "base" para poder utilizar a virtualização ( eu não me lembro o programa que era usado para fazer a virtualização, o sono não me ajuda a lembrar muita coisa nessas horas :P).

Agora eu presumo que se é possível rodar mais de uma distribuição na mesma máquina através da virtualização, seja possível instalar do CD para fazer as coisas funcionarem :)

ps: Não sei se eu podia responder aqui neste mesmo lugar qqr coisa me desculpem :) (novo na comunidade :[ )

[10] Comentário enviado por y2h4ck em 26/10/2006 - 14:31h

OpenVZ vc pode rodar qualquer uma que quiser:

- debian
- fedora
- slackware
- suse
- ubuntu
etc etc etc ...

[11] Comentário enviado por Gblecci em 26/10/2006 - 15:36h

y2h4ck, o OpenVZ pode ser utilizado para criar multiestações tb?
Por exemplo, tenho um pc e 4 usuários conectados nele de forma independente sem que um acesse a área de disco do outro? ou mesmo a área de trabalho do outro?

[12] Comentário enviado por y2h4ck em 26/10/2006 - 16:05h

Acredito que não. Seria mais para servidor mesmo.

[13] Comentário enviado por marcelogpl em 26/10/2006 - 16:06h

Nota 10,

este tema é importante pois a virtualização abre possibilidades incríveis!
N amesma máquina rodando junto N distribuições, e podendo haver comprtilhamentos ou não.

Muito bom!

[14] Comentário enviado por balani em 26/10/2006 - 16:46h

Muito legal, a possibilidade de aplicações é muito interessante.

[15] Comentário enviado por kernelzinhu em 27/10/2006 - 08:53h

Em relação ao User Mode Linux, tem muita diferença quanto ao desempenho?

[16] Comentário enviado por unkn0wn em 28/10/2006 - 17:13h

Sempre arrasando em seus artigos heim brother?
Nota 11 :)

Parabens... Até...
Skull.

[17] Comentário enviado por oandarilho01 em 01/11/2006 - 16:07h

Mas, po, só para kernel 2.6.8? Soa muito ruim isso......... Não que o Kernel seja uim, mas.. por acaso este projeto está abandonado, descontinuado ou coisa parecida?

[18] Comentário enviado por fujiwara em 06/11/2006 - 17:21h

O grande problema do openvz que foi herdado do virtuozzo é de nao aceita r paravirtualizacao, ou seja, VM com sistemas operacionais diferentes.

[19] Comentário enviado por y2h4ck em 07/11/2006 - 00:50h

Cara nao ta descontinuado nao, alem disso acabou de sair o kernel 2.6.9

[20] Comentário enviado por andreeti em 29/09/2007 - 10:22h

Utilizei o seu artigo, não senti nenhuma dificuldade em implementar a solução. Excelente artigo.

Parabéns.

[21] Comentário enviado por joaofilho16 em 04/06/2008 - 23:17h

Funcionou aki, mas estou com dificuldades pra configurar o IP nele, alguem poderia me ajudar?

[22] Comentário enviado por lipecys em 01/04/2010 - 11:31h

Olá pessoal.

Configurei o openvz aqui em dois servidores para assim fazer o "live-migration".
Mas na hora de executar o "vzmigrate server_destino VEID" ele retorna o seguinte erro:

OPT:server_destino
StartingError: Error:


Alguém aí já teve esse problema, sabe como resolver?


Desde já grato pela atenção.

[23] Comentário enviado por lipecys em 12/04/2010 - 11:01h

Consegui resolver o problema,

era falha na autenticação.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts