Virtualização com




André Luiz F. Moreira
 andrelfm22@gmail.com
Xen hypervisor (1/2)
●   Software de virtualização;
●   Também conhecido como VMM (Virtual
    Machine Monitor);
●   Lançado sob a licença GPL v2;
●   Suporta as arquiteturas:
        –   x86;
        –   x86-64;
        –   Itanium;
        –   Power PC;
        –   ARM.
Xen hypervisor (2/2)
●   Originalmente desenvolvido pelo Grupo
    de Pesquisa de Sistemas na Universidade
    de Cambridge como parte do projeto
    Xenoservers;
●   O projeto Xenoservers tem como objetivo
    proporcionar uma “infra-estrutura global
    para computação distribuída”;
●   Primeira versão lançada em Outubro de
    2003.
Cenários de uso
●   Consolidação de servidores;
●   Computação em cluster;
●   Variedade de sistemas operacionais;
●   Independência do hardware;
●   Desenvolvimento de kernel.
Tipos de virtualização
●   Virtualização completa (HVM):
       –   Vms não sabem que estão virtualizadas;
       –   Desempenho muito próximo a sistemas
            instalados do modo convencional;
       –   É necessário um processador adequado (IVT
             e AMD-V).
●   Paravirtualização
       –   Vms sabem que estão virtualizadas;
       –   Em geral, possui melhor desempenho do que
            o HVM;
       –   SO precisa ser modificado.
Virtualização completa (HVM)
Paravirtualização
Verificando se o processador
      tem suporte a HVM
●   Intel VT:
        –   # grep vmx /proc/cpuinfo

●   AMD-V:
        –   # grep svm /proc/cpuinfo

●   Ativar na BIOS a opção de virtualização
    do processador caso o mesmo tenha
    suporte;
Hypervisor, dom0 e domU
●   Hypervisor:
       –   Controla os recursos de
            comunicação,memória e processamento
            das vms.
●   dom0:
       –   Iniciado pelo hypervisor após o boot do
             sistema;
       –   Possui privilégios que permitem gerenciar as
            outras máquinas virtuais.
●   domU:
       –   Domínios não-privilegiados (Unprivileged)
            lançados e controlados pelo dom0;
Rings
SOs suportados como domU
SOs que podem ser utilizados
        como dom0
Instalação do Xen 4
●   Debian:
       –   # apt-get install xen-linux-system-2.6-xen-
             amd64
●   Opensuse:
       –   # zypper install xen xen-libs xen-tools vm-
             install kernel-xen virt-manager virt-
             viewer
Entrada no GRUB
title      Debian Xen 2.0.7/2.6.11
root       (hd0,0)
kernel        /boot/xen-2.0.7.gz dom0_mem=65536
noreboot
module      /boot/xen-linux-2.6.11-ksxen0
root=/dev/hda1 ro ramdisk_size=24576 console=tty0
module        /boot/initrd-2.6.11-ksxen0
Arquivos de configuração
●   /etc/xen/xend-config.sxp
●   /etc/xen/scripts/
●   /etc/xen/vm.cfg
●   /etc/xen/auto/vm.cfg
Criando máquinas virtuais
            (domUs)
●   Criação manual:
       –   Criação dos discos;
       –   Criação do chroot;
       –   Ajustes em alguns arquivos do chroot;
       –   Usar o kernel do Xen;
       –   Criação do arquivo de configuração.
●   Uso de ferramentas automáticas:
       –   xen-create-image;
       –   virt-install.
Criando arquivos para serem
 usados como partições do
           domU
●   # dd if=/dev/zero of=vm.img bs=1M
    count=10240
●   # qemu-img create vm.img 10G
Criando as partições do domU
        usando LVM
●   # pvcreate /dev/sda3
●   # vgcreate vgxen01 /dev/sda3
●   # lvcreate -L 2G -n vm-root vgxen01
●   # lvcreate -L 3G -n vm-usr vgxen01
●   # lvcreate -L 512M -n vm-swap vgxen01
●   # mkfs.ext3 /dev/vgxen01/vm-root
●   # mkfs.ext3 /dev/vgxen01/vm-usr
●   # mkswap /dev/vgxen01/vm-swap
Criação do chroot
●   Usando debootstrap:
       –   # debootstrap --arch=amd64 squeeze
             /mnt http://ftp.us.debian.org
●   Usando o tar:
       –   # tar -zcpvf chroot.tar.gz --exclude /proc
             --exclude /sys --exclude /chroot.tar.gz /
       –   # tar -xzpvf chroot.tar.gz -C /mnt
Ajustes no chroot e uso do
          kernel do Xen
●   /etc/inittab
●   /etc/securetty
●   /etc/fstab

●   linux-image-2.6.32-5-xen-amd64
●   linux-image-2.6.32-5-xen-686
●   kernel-xen-2.6.18-194.32.1.el5
Arquivo de configuração
              (HVM)
kernel = “/usr/lib/xen/boot/hvmloader”
builder = “hvm”
name = “vm-web”
memory = “256”
vcpus = “2”
vif = [ “bridge = eth0” ]
disk = [ 'phy:/dev/vgxen01/vm-web-root,xvda1,w',
'phy:/dev/vgxen01/vm-web-swap,xvda2,w' ]
root = "/dev/xvda1 ro"
Arquivo de configuração
        (paravirtualização)
kernel = “/boot/vmlinuz”
ramdisk = “/boot/initrd.img”
builder = “linux”
name = “vm-web”
memory = “256”
vcpus = “2”
vif = [ “bridge = eth0” ]
disk = [ 'phy:/dev/vgxen01/vm-web-root,xvda1,w',
'phy:/dev/vgxen01/vm-web-swap,xvda2,w' ]
root = "/dev/xvda1 ro"
Ferramentas automáticas
●   xen-create-image:
        –   xen-create-image --hostname <hostname> --ip
              <ip> --scsi --vcpus 2 --pygrub --dist <lenny|
              maverick|whatever>
●   virt-install --prompt
Comandos para
    gerenciamento dos domUs
●   # xm list
●   # xm create -c vm-web.cfg
●   # xm console vm-web
●   # xm reboot vm-web
●   # xm shutdown vm-web
●   # xm destroy vm-web
●   # xm mem-set vm-web
●   # xm info
●   # xm migrate vm-web xen-server -l
Remus
●   Fornece alta disponibilidade para as vms
    do Xen;
●   Mantém uma cópia atualizada da vm em
    um servidor de backup;
●   É transparente.
Ferramentas gráficas
●   Virt-manager;
●   Convirture;
●   Enomalism.
Virt-manager
Xen 4.1
●   Suporte para sistemas com mais de 255
    processadores e super-páginas de
    1GB/2MB;
●   Advanced Vector Extension (AVX);
●   API Access Memory;
●   Mais informações sobre a release:
    http://wiki.xen.org/xenwiki/Xen4.1
Mais informações
●   http://www.xen.org
●   http://www.xen.org/support/community.html
●   http://wiki.xen.org
●   http://wiki.debian.org/Xen
●   http://en.gentoo-wiki.com/wiki/Xen
●   http://wiki.freebsd.org/FreeBSD/Xen
●   http://www.netbsd.org/ports/xen/howto.html
Dúvidas, Perguntas

Palestra xen-flisol2011

  • 1.
    Virtualização com André LuizF. Moreira andrelfm22@gmail.com
  • 2.
    Xen hypervisor (1/2) ● Software de virtualização; ● Também conhecido como VMM (Virtual Machine Monitor); ● Lançado sob a licença GPL v2; ● Suporta as arquiteturas: – x86; – x86-64; – Itanium; – Power PC; – ARM.
  • 3.
    Xen hypervisor (2/2) ● Originalmente desenvolvido pelo Grupo de Pesquisa de Sistemas na Universidade de Cambridge como parte do projeto Xenoservers; ● O projeto Xenoservers tem como objetivo proporcionar uma “infra-estrutura global para computação distribuída”; ● Primeira versão lançada em Outubro de 2003.
  • 4.
    Cenários de uso ● Consolidação de servidores; ● Computação em cluster; ● Variedade de sistemas operacionais; ● Independência do hardware; ● Desenvolvimento de kernel.
  • 5.
    Tipos de virtualização ● Virtualização completa (HVM): – Vms não sabem que estão virtualizadas; – Desempenho muito próximo a sistemas instalados do modo convencional; – É necessário um processador adequado (IVT e AMD-V). ● Paravirtualização – Vms sabem que estão virtualizadas; – Em geral, possui melhor desempenho do que o HVM; – SO precisa ser modificado.
  • 6.
  • 7.
  • 8.
    Verificando se oprocessador tem suporte a HVM ● Intel VT: – # grep vmx /proc/cpuinfo ● AMD-V: – # grep svm /proc/cpuinfo ● Ativar na BIOS a opção de virtualização do processador caso o mesmo tenha suporte;
  • 9.
    Hypervisor, dom0 edomU ● Hypervisor: – Controla os recursos de comunicação,memória e processamento das vms. ● dom0: – Iniciado pelo hypervisor após o boot do sistema; – Possui privilégios que permitem gerenciar as outras máquinas virtuais. ● domU: – Domínios não-privilegiados (Unprivileged) lançados e controlados pelo dom0;
  • 12.
  • 13.
  • 14.
    SOs que podemser utilizados como dom0
  • 15.
    Instalação do Xen4 ● Debian: – # apt-get install xen-linux-system-2.6-xen- amd64 ● Opensuse: – # zypper install xen xen-libs xen-tools vm- install kernel-xen virt-manager virt- viewer
  • 17.
    Entrada no GRUB title Debian Xen 2.0.7/2.6.11 root (hd0,0) kernel /boot/xen-2.0.7.gz dom0_mem=65536 noreboot module /boot/xen-linux-2.6.11-ksxen0 root=/dev/hda1 ro ramdisk_size=24576 console=tty0 module /boot/initrd-2.6.11-ksxen0
  • 18.
    Arquivos de configuração ● /etc/xen/xend-config.sxp ● /etc/xen/scripts/ ● /etc/xen/vm.cfg ● /etc/xen/auto/vm.cfg
  • 19.
    Criando máquinas virtuais (domUs) ● Criação manual: – Criação dos discos; – Criação do chroot; – Ajustes em alguns arquivos do chroot; – Usar o kernel do Xen; – Criação do arquivo de configuração. ● Uso de ferramentas automáticas: – xen-create-image; – virt-install.
  • 20.
    Criando arquivos paraserem usados como partições do domU ● # dd if=/dev/zero of=vm.img bs=1M count=10240 ● # qemu-img create vm.img 10G
  • 21.
    Criando as partiçõesdo domU usando LVM ● # pvcreate /dev/sda3 ● # vgcreate vgxen01 /dev/sda3 ● # lvcreate -L 2G -n vm-root vgxen01 ● # lvcreate -L 3G -n vm-usr vgxen01 ● # lvcreate -L 512M -n vm-swap vgxen01 ● # mkfs.ext3 /dev/vgxen01/vm-root ● # mkfs.ext3 /dev/vgxen01/vm-usr ● # mkswap /dev/vgxen01/vm-swap
  • 22.
    Criação do chroot ● Usando debootstrap: – # debootstrap --arch=amd64 squeeze /mnt http://ftp.us.debian.org ● Usando o tar: – # tar -zcpvf chroot.tar.gz --exclude /proc --exclude /sys --exclude /chroot.tar.gz / – # tar -xzpvf chroot.tar.gz -C /mnt
  • 23.
    Ajustes no chroote uso do kernel do Xen ● /etc/inittab ● /etc/securetty ● /etc/fstab ● linux-image-2.6.32-5-xen-amd64 ● linux-image-2.6.32-5-xen-686 ● kernel-xen-2.6.18-194.32.1.el5
  • 24.
    Arquivo de configuração (HVM) kernel = “/usr/lib/xen/boot/hvmloader” builder = “hvm” name = “vm-web” memory = “256” vcpus = “2” vif = [ “bridge = eth0” ] disk = [ 'phy:/dev/vgxen01/vm-web-root,xvda1,w', 'phy:/dev/vgxen01/vm-web-swap,xvda2,w' ] root = "/dev/xvda1 ro"
  • 25.
    Arquivo de configuração (paravirtualização) kernel = “/boot/vmlinuz” ramdisk = “/boot/initrd.img” builder = “linux” name = “vm-web” memory = “256” vcpus = “2” vif = [ “bridge = eth0” ] disk = [ 'phy:/dev/vgxen01/vm-web-root,xvda1,w', 'phy:/dev/vgxen01/vm-web-swap,xvda2,w' ] root = "/dev/xvda1 ro"
  • 26.
    Ferramentas automáticas ● xen-create-image: – xen-create-image --hostname <hostname> --ip <ip> --scsi --vcpus 2 --pygrub --dist <lenny| maverick|whatever> ● virt-install --prompt
  • 27.
    Comandos para gerenciamento dos domUs ● # xm list ● # xm create -c vm-web.cfg ● # xm console vm-web ● # xm reboot vm-web ● # xm shutdown vm-web ● # xm destroy vm-web ● # xm mem-set vm-web ● # xm info ● # xm migrate vm-web xen-server -l
  • 28.
    Remus ● Fornece alta disponibilidade para as vms do Xen; ● Mantém uma cópia atualizada da vm em um servidor de backup; ● É transparente.
  • 29.
    Ferramentas gráficas ● Virt-manager; ● Convirture; ● Enomalism.
  • 30.
  • 33.
    Xen 4.1 ● Suporte para sistemas com mais de 255 processadores e super-páginas de 1GB/2MB; ● Advanced Vector Extension (AVX); ● API Access Memory; ● Mais informações sobre a release: http://wiki.xen.org/xenwiki/Xen4.1
  • 34.
    Mais informações ● http://www.xen.org ● http://www.xen.org/support/community.html ● http://wiki.xen.org ● http://wiki.debian.org/Xen ● http://en.gentoo-wiki.com/wiki/Xen ● http://wiki.freebsd.org/FreeBSD/Xen ● http://www.netbsd.org/ports/xen/howto.html
  • 35.