Xen com multi bridge e LVM

Aqui demonstro como subir um ambiente virtualizado com Xen, utilizando um servidor com quatro interfaces de rede, sendo que cada interface estará conectada a cada máquina virtual. Essa abordagem garante maior segurança e desempenho. Além disso, as máquinas virtuais serão criadas em volumes virtuais, que podem ser redimensionados de acordo com a necessidade.

[ Hits: 43.423 ]

Por: Rui Ogawa em 20/09/2010


Criando uma VM para um servidor web



Execute o comando abaixo. Escolha o hostname, endereço de IP e tamanhos das partições de acordo com suas necessidades:

# xen-create-image --hostname web --ip 192.168.0.7 --size 30GB --memory 512MB --swap 512
General Information
--------------------
Hostname       :  web
Distribution   :  lenny
Partitions     :  swap 512 (swap)
/               30GB  (ext3)
Image type     :  full
Memory size    :  512MB
Kernel path    :  /boot/vmlinuz-2.6.26-2-xen-amd64
Initrd path    :  /boot/initrd.img-2.6.26-2-xen-amd64
Networking Information
----------------------
IP Address 1   : 192.168.0.7 [MAC: 00:16:3E:28:2C:3D]
Netmask        : 255.255.255.0
Broadcast      : 192.168.0.255
Gateway        : 192.168.0.1
Creating swap on /dev/vg0/web-swap
Done
Creating ext3 filesystem on /dev/vg0/web-disk
Done
Installation method: debootstrap
Done
Running hooks
Done
No role scripts were specified.  Skipping
Creating Xen configuration file
Done
All done
Logfile produced at:
/var/log/xen-tools/web.log

Edite o arquivo /etc/xen/web.cfg e deixe-o como está abaixo.

# cat /etc/xen/web.cfg

#
# Configuration file for the Xen instance web, created
# by xen-tools 3.9 on Thu Jul  1 09:10:10 2010.
#

#
#  Kernel + memory size
#

kernel      = '/boot/vmlinuz-2.6.26-2-xen-amd64'
ramdisk     = '/boot/initrd.img-2.6.26-2-xen-amd64'
memory      = '512'

#
#  Disk device(s).
#
root        = '/dev/xvda2 ro'
disk        = [
                  'phy:/dev/vg0/web-swap,xvda1,w',
                  'phy:/dev/vg0/web-disk,xvda2,w',
              ]

#
#  Hostname
#
name        = 'web'

#
#  Networking
#
vif         = [ 'ip=192.168.0.7,mac=00:16:3E:28:2C:3D,bridge=eth0' ]
#
#  Behaviour
#
on_poweroff = 'destroy'
on_reboot   = 'restart'
on_crash    = 'restart'

# Workaround para clocksource/0: Time went backwards
extra="clocksource=jiffies"

Repare que na linha:

vif = [ 'ip=192.168.0.7,mac=00:16:3E:28:2C:3D,bridge=eth0' ]

estamos declarando que a bridge utilizada será a eth0.

A linha:

extra="clocksource=jiffies"

é um workaround para um problema de sincronismo entre Dom0 e DomU.

Crie as outras três máquinas virtuais conforme suas necessidades, e em nos arquivos de configuração de cada uma, altere o nome da bridge que ela utilizará. Por exemplo:

Servidor de base de dados:

vif         = [ 'ip=192.168.0.8,mac=00:16:3E:28:2C:3E,bridge=eth1' ]

Servidor DNS:

vif         = [ 'ip=192.168.0.9,mac=00:16:3E:28:2C:3F,bridge=eth2' ]

Servidor Samba:

vif         = [ 'ip=192.168.0.10,mac=00:16:3E:28:2D:3E,bridge=eth3' ]

Claro que os exemplos são hipotéticos, somente para exemplificar.

Suba todas as VMs usando o comando:

# xm create /etc/xen/nome_da_vm.cfg

Verifique se elas estão rodando:

# xm list
Name      ID         Mem       VCPUs      State         Time(s)
Domain-0  0          1958          8     r-----         4673.4
bases     26         512           1     -b----          9.4
ns1       25         512           1     -b----          4.5
samba     28         512           1     -b----          3.5
web       27         512           1     -b----          14.1

O exemplo acima é a saída do servidor da universidade, rodando 4 VMs. Sua saída pode ser diferente disso.

Finalmente, verifique como as bridges estão sendo utilizadas:

# brctl show
bridge name   bridge id            STP enabled     interfaces
eth0          8000.001517ab0566    no              peth0
                                                   vif27.0
eth1          8000.001517ab0567    no              peth1
                                                   vif26.0
eth2          8000.002219bd581b    no              peth2
                                                   vif25.0
eth3          8000.002219bd581d    no              peth3
                                                   vif28.0

Podemos notar que em cada bridge foi criada uma interface virtual "vifxx.x" que está atendendo especificamente a uma VM.

Página anterior     Próxima página

Páginas do artigo
   1. O hardware
   2. Configurando as interfaces de rede
   3. Preparando o ambiente dom0
   4. Configurando o xen-tools para criar as máquinas virtuais
   5. Criando uma VM para um servidor web
   6. Redimensionando uma partição
   7. Conclusão e considerações
Outros artigos deste autor

Um kiosk web para consultas

Leitura recomendada

Aplicando o Layer7 no Fedora Core Linux 6

Trabalhando com shell e variáveis de ambiente

Som sem problemas em notebooks com placa Intel

Instalando o driver da NVidia no Fedora Core 2 sem compilar o kernel

Aplicações Windows em ambiente Linux com SeamlessRDP

  
Comentários
[1] Comentário enviado por elvanineto em 21/09/2010 - 08:39h

Ótimo artigo. Realmente o Xen é uma das melhores ferramentas para Virtualização de alto nível.

[2] Comentário enviado por renato_pacheco em 21/09/2010 - 17:26h

Gostei muito do artigo. Pena q em certas ferramentas mencionadas só possuem no Debian. Poderia t feito algo genérico nesse sentido, mas tá d bom tamanho.

Parabéns!

Obs.: Eu vou contribuir mais pra frente com um trabalho meu sobre a segurança no Xen pra vcs darem uma olhadinha... acho q vou t q postar no segurança em Linux.

[3] Comentário enviado por _simmons_ em 21/09/2010 - 21:11h

Parabéns pelo artigo!! Ainda bem que no Debian já vem os pacotes nos repositórios, no Ubuntu 10.04 até a última vez que vi ainda tinha que compilar o xen e suas ferramentas na unha.

Cara, me tira uma dúvida.. você já configurou duas máquinas em vlans diferentes saindo pela mesma interface física de rede ? Fiz alguns testes mas sem resultados positivos.. não sei se porque quando os pacotes são de vlans eles são "taggeados" e o Xen não enxerga isso.. ou se foi alguma configuração errada...

[]'

André Michi

[4] Comentário enviado por rogawa em 21/09/2010 - 21:57h

Oi elvanineto. Obrigado! Fico feliz que tenha gostado. No começo eu não entendia nem acreditava que uma ferramenta tão "espartana" pudesse ser tão poderosa. Estou muito satisfeito com o desempenho e flexibilidade do Xen!

Oi renato_pacheco. Valei mesmo! Quais seriam as ferramentas do Debian que se refere? O motivo de não ter feito nada genérico é que isso fez parte da documentação que produzi para nosso setor de TI, e usamos Debian... Estamos aguardando ansiosos seu trabalho sobre segurança no Xen. Sem dúvida dará um excelente artigo!

Oi Simmons, firmeza? Que bom que gostou ;-) Uso Ubuntu 10.04 no note e nunca reparei que não tem nos respositórios... Sobre Xen e VLAN, vou ser sincero, nunca fiz nada nesse sentido. Sei que na wiki do Xen-BR tem uma documentação sobre isso, vc já viu? http://wiki.xen-br.org/VLANs_e_m%C3%BAltiplas_interfaces_de_rede_com_o_Xen


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts