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.627 ]

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


Montando nossa primeira máquina virtual



Para montar nossa primeira máquina virtual vamos utilizar um modelo que o openvz.org fornece. Este modelo é um cache do sistema operacional que vamos utilizar.

O OpenVZ fornece a seguinte lista:
  • centos-4-i386-default.tar.gz (signature) 107 Mb
  • centos-4-i386-minimal.tar.gz (signature) 33 Mb
  • centos-4-x86_64-default.tar.gz (signature) 139 Mb
  • centos-4-x86_64-minimal.tar.gz (signature) 60 Mb
  • debian-3.1-i386-minimal.tar.gz (signature) 42 Mb
  • debian-3.1-x86_64-minimal.tar.gz (signature) 41 Mb
  • fedora-core-3-i386-default.tar.gz (signature) 105 Mb
  • fedora-core-3-i386-minimal.tar.gz (signature) 33 Mb
  • fedora-core-4-i386-default.tar.gz (signature) 114 Mb
  • fedora-core-4-i386-minimal.tar.gz (signature) 45 Mb
  • fedora-core-5-i386-default.tar.gz (signature) 125 Mb
  • fedora-core-5-i386-minimal.tar.gz (signature) 44 Mb
  • gentoo-20060317-amd64-stage3.tar.gz (signature) 119 Mb
  • gentoo-20060317-i686-stage3.tar.gz (signature) 106 Mb
  • mandriva-2006-i386-minimal.tar.gz (signature) 28 Mb
  • opensuse-10-i386-default.tar.gz (signature) 90 Mb
  • opensuse-10-x86_64-default.tar.gz (signature) 96 Mb

E por parte da comunidade open source que participa e enviaram os seguintes modelos:
  • slackware-10.2-i386-minimal.tar.gz 26 Mb
  • suse-9.3-x86_64.tar.gz 155 Mb
  • ubuntu-6.06-i386-minimal.tar.gz 60 Mb

Assim, temos máquinas virtuais para todos os gostos de Linux. :D

Vamos criar nossa primeira máquina utilizando um Debian Sarge 3.1.

Entre no diretório /var/lib/vz/templates/cache e, lá dentro, baixe o arquivo contendo o template do seu sistema favorito:

# wget http://download.openvz.org/template/precreated/debian-3.1-i386-minimal.tar.gz

Após baixada a imagem, vamos dar início a configuração:

Para criar o VPS precisamos dar-lhe um número de ID. Este número de ID deve ser numérico e não pode ser duplicado. Recomendo utilizar a partir de 100.

# vzctl create 101 --ostemplate debian-3.1-i386-minimal --config vps.basic Creating VPS private area: /var/lib/vz/private/101
Performing postcreate actions
VPS private area was created

Pronto, a máquina está criada, agora vamos configurá-la:

Vamos setar nossa máquina virtual para iniciar junto ao sistema caso o mesmo reinicie:

# vzctl set 101 --onboot yes --save
Saved parameters for VPS 101

Agora vamos configurar o hostname:

# vzctl set 101 --hostname vps-new --save
Saved parameters for VPS 101

Próximo passo: configurar um endereço IP:

# vzctl set 101 --ipadd 10.1.1.245 --save
Saved parameters for VPS 101

Iremos agora definir os nameservers que o servidor vai utilizar:

# vzctl set 101 --nameserver 10.1.1.43 --save Saved parameters for VPS 101

No caso, 10.1.1.43 é meu servidor DNS da rede local.

Pronto, as configurações básicas foram colocadas, podemos inicializar pela primeira vez nosso VPS:

# vzctl start 101 Starting VPS ...
vzquota : (warning) Quota is running for id 101 already
VPS is mounted
Adding IP address(es): 10.1.1.245
Setting CPU units: 1000
Set hostname: vps-new
File resolv.conf was modified
VPS start in progress...

Pode ver que o servidor virtual já aceita ping:

# ping 10.1.1.245
PING 10.1.1.245 (10.1.1.245) 56(84) bytes of data.
64 bytes from 10.1.1.245: icmp_seq=1 ttl=64 time=0.097 ms
64 bytes from 10.1.1.245: icmp_seq=2 ttl=64 time=0.033 ms
64 bytes from 10.1.1.245: icmp_seq=3 ttl=64 time=0.032 ms

--- 10.1.1.245 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.032/0.054/0.097/0.030 ms

Vamos entrar nele e setar a senha de root:

# vzctl enter 101
entered into VPS 101
vps-new:/# uname -a
Linux vps-new 2.6.8-022stab064-smp #1 SMP Mon Aug 21 15:33:09 BRT 2006 i686 GNU/Linux
vps-new:/# uptime
22:17:09 up 1 min, 0 users, load average: 0.00, 0.00, 0.00
vps-new:/# id
uid=0(root) gid=0(root) groups=0(root)
vps-new:/# cat /etc/issue
Debian GNU/Linux 3.1 l

vps-new:/# passwd root
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
vps-new:/# ifconfig
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:8930 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8930 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1254542 (1.1 MiB)  TX bytes:1254542 (1.1 MiB)

venet0 Link encap:UNSPEC HWaddr 00-00-FF-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:127.0.0.1 P-t-P:127.0.0.1 Bcast:0.0.0.0 Mask:255.255.255.255 UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1 RX packets:3 errors:0 dropped:0 overruns:0 frame:0 TX packets:3 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:252 (252.0 b) TX bytes:252 (252.0 b)
venet0:0 Link encap:UNSPEC HWaddr 00-00-FF-FF-FF-FF-00-00-00-00-00-00-00-00-00-00 inet addr:10.1.1.245 P-t-P:10.1.1.245 Bcast:0.0.0.0 Mask:255.255.255.255 UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1
Como podemos ver, entramos no servidor virtual e ele é exatamente como um server standalone.

Agora que setamos a senha, vamos dar um exit e logar no ssh dele pela primeira vez:

vps-new:/# exit
logout
exited from VPS 101


# ssh -l root 10.1.1.245 The authenticity of host '10.1.1.245 (10.1.1.245)' can't be established.
RSA key fingerprint is 1a:42:4b:62:3e:cc:8d:84:05:ab:99:01:6a:d0:cb:ba.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.1.1.245' (RSA) to the list of known hosts.
Password:
vps-new:~# :D funcionou

Parabéns, agora temos uma máquina virtual Debian inteirinha e pronta para utilizar. Caso você queira rodar um Fedora ou Slackware, o procedimento acima é o mesmo.

Vamos agora verificar alguns comandos e características que podem nos ajudar a gerenciar melhor nossas VPS's.

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 Passiva: Analisando seu tráfego de maneira segura

Libsafe: Protegendo Linux contra Smashing Overflow

PaX: Solução eficiente para segurança em Linux

Carnivore e Altivore: Os predadores do FBI

PHLAK :: [P]rofessional [H]acker's [L]inux [A]ssault [K]it

Leitura recomendada

Instalando e usando o Gentoo GNU/Linux

VPN com servidor e cliente rodando em Linux

Instalando e configurando ntfs-3g no CentOS 5.2 Linux

Colocando seu Fluxbox totalmente transparente

Windows e Linux no mesmo micro

  
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