Virtualização com Xen
   Hardware é igual a coração de mãe?




  Fernando Ike e Luiz Vitor... (Caio Candido)
História da virtualização
1959 - múltiplas aplicações

 ●   Artigo de Christopher Strachey: Time Sharing in Large Fast Computers

1960/1970 – múltiplos sistemas operacionais

 ●   Primeiro Hypervisor (Atlas Computer)
 ●   IBM Watson Research Center (M44/44X Project)
 ●   MIT (CP/CMS)

1970/1990

 ●   Novas idéias surgem em centros de pesquisas, principalmente em Cambridge, MIT e
     IBM
 ●   Utilização restrita a main-frames e estações de desenvolvimento

1990-2007

 ●   Sun (Conteiners/Zones)
 ●   Microsoft (VirtualPC)
 ●   VMWare (Fusion, Workstation, ACE, ESX, Server, Player etc)
 ●   Xen, Lguest, KVM, VirtualPC, Bochs, Plex86, Qemu, Kqemu, Intel-VT, AMD-V...
Paradigma
Centralizar ou Descentralizar?
Virtualização no fim é...
●   Aumento de serviços/servidores com um número menor de
    servidores físicos, economizando o custo total de
    hardware, eletricidade e manutenção

●   Menos servidores físicos para monitorar (otimização de
    recursos para os sysadmins)

●   Menor downtime para manutenção de serviços

●   Menor complexidade da infra-estrutura física (cabos,
    switchs, eletricidade, contingência)

Obs.: Para sysadmins, simplesmente porque é divertido e sobram mais
 tomadas para as cafeteiras.
O projeto Xen
●   1999: Dickon Reed, Ian Pratt, Paul Menage,             Contribuidor      %
    Stephen Early, Neil Stratford do Laboratório de       xensource.com     64,2
    Computação da Universidade de Cambridge                      other      8,5
    escrevem sobre Xenoservers.                                ibm.com      7,2
                                                              intel.com     5,2
●   2003: é escrito “Xen e a arte da virtualização” por         hp.com      3,4
    Paul Barham, Boris Dragovic, Keir Fraser, Steven
    Hand, Tim Harris, Alex Ho, Rolf Neugebauer, Ian
                                                            novell.com      3,0
    Pratt, Andrew Warfield do mesmo laboratório.           valinux.co.jp    2,1
                                                                bull.net    2,1
●   2004: Lançado a versão 2.0.                                ncsc.mil     1,1
                                                            fujitsu.com     1,1
●   2005: Lançado a versão 3.0 e criado a Xensource.        redhat.com      <1
                                                              amd.com       <1
●   2007: Lançamento da versão 3.1;                       virtualiron.com   <1
          Parte do código do Xen no kernel Linux;
                                                             cam.ac.uk      <1
          Xensource comprada pela Citrix.
                                                            unisys.com      <1
Estrutura de um servidor físico


     Aplicativos      Aplicativos        Aplicativos


                   Sistema Operacional

                         Kernel


                        Hardware
Virtualização: Hypervisor
           Aplicativos   Aplicativos     Aplicativos   Aplicativos   Aplicativos   Aplicativos

          Sistema Operacional           Sistema Operacional          Sistema Operacional

                            Camada de software - Hypervisor (VMM)


                                       Camada de hardware




●   Uma camada de software
●   Possibilita a virtualização de forma transparente aos sistemas virtualizados
●   Gerencia os recursos físicos seguramente
●   Permite que instruções oriundas dos sistemas virtualizados sejam executadas
    diretamente no hardware (responsável pela grande performance).
Virtualização completa
                   (Fullvirtualization)




hardware emulado    hardware emulado      hardware emulado
Paravirtualização
   (Paravirtualization)
Armazenamento
                              Imagens (QCOW / DD)




Network File System (NFS) /
       iSCSI/DRDB

                                  LVM/EVMS

           TCP/IP
Hardware é igual a coração de
                 mãe...
                    Sempre cabe mais um...


●   Exterminação de todos os chroots em servidores físicos
    como: apache, bind, ftp...

●   Alocação de recurso memória para a necessidades dos
    serviços executados para cada VM (Firewall, serviços
    web, ftp, rsync, email, arquivos)

●   Desempenho da máquinas virtuais próximo de
    servidores físicos equivalentes (perda < 8%)
... mas tem limites!
            Dimensionando a capacidade do hardware



●   Levantamento de recursos

●   Total de recursos de hardware (memória, cpu, disco)

●   Monitorar recursos de hardware por servidor/serviço
    (vmstat, iostat, mpstat, sar)

●   Planejamento de recurso de VM é semelhante com
    servidores físicos
Aqui não é casa da mãe
        Joana!
          Pensando em segurança




           ●   sHype/ACM

               ●   IPTABLES

   ●   EBTABLES (mac/bridge)

               ●   AIDE-XEN
Ampliando as possibilidades...
    Mãe disponível 24 horas, 7 dias por semana, 365 dias por ano

                        Alta Disponibilidade


●Migrar máquinas virtuais entre servidores físicos – Live
Migration (ISCSI/DRDB – NFS)

●Automação de instalação de sistemas operacionais (deploy)
com Cfengine e FAI

●Trabalhar com kernels Linux customizados para DomU e
kernels customizados para cada máquina virtual
Como ficar milionário com Xen
                       Infraestrutura com 10 servidores
                    Custo unitário             Custo físico   Custo virtual
Hardware             R$ 3,500.00              R$ 35,000.00    R$ 3,500.00
Software (licenças) R$ 6,000.00               R$ 60,000.00     R$ 0,00 **
Nobreak               R$ 300.00               R$ 3,000.00      R$ 300.00
                                              R$ 97,000.00    R$ 3,800.00
                      Custo mensal/unitário    Custo físico   Custo virtual
Suporte                  R$ 1,600.00          R$ 19,200.00    R$ 19,200.00
Energia (500 Watts)       R$ 56.00            R$ 6,720.00      R$ 672.00
Refrigeração (1000 Watts) R$ 168.00           R$ 4,032.00     R$ 2,016.00
                         R$ 1,824.00          R$ 29,952.00    R$ 21,888.00




             Economia inicial de R$ 93.200,00
              Economia anual de R$ 8.064,00
Tempo x Custos
             100000
             90000

             80000
             70000

             60000
custo (R$)




             50000

             40000

             30000
             20000

             10000
                 0
                      0   1   2      3        4   5     6
                                                      Mantenimento
                               tempo (anos)           (Virtual)
                                                      Mantenimento
                                                      (Físico)
                                                      Investimento
                                                      (Virtual)
                                                      Investimento (Físico)
O Futuro

XenFS (QCOW)
(http://wiki.xensource.com/xenwiki/XenFS)
Suporte a openGL (VMGL)
(http://www.cs.toronto.edu/~andreslc/xen-gl/)

Network Virtualization (NetXen)
(http://www.netxen.com/index2.html)
Virtual Machine Driver Pack [NOVELL]
(http://www.novell.com/products/vmdriverpack/)

Códigos na árvore oficial do kernel linux
Conclusão
●   Economiza recursos de hardware, manutenção e
    energia.
●   Possibilita maior uptime de serviços com uso de
    Live-Migration
●   Diminui o tempo para instalar (Deploy) um SO
    (linux).
●   O uso de virtualização necessita/obriga um maior
    planejamento da infra-estrutura (segurança,
    hardware, estrutura lógica) .
●   Testemunho de sobreviventes
Obrigado!
Caio Candido
caio@4linux.com.br

  Luiz Vitor
luiz@4linux.com.br

Fernando Ike
fike@4linux.com.br
Verificando o suporte a
virtualização completa no hardware
cat /proc/cpuinfo (Intel-VT)

 model name: Intel(R) Core(TM)2 CPU       T5600 @ 1.83GHz

 flags: fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush
 dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc pni monitor ds_cpl vmx est
 tm2 ssse3 cx16 xtpr lahf_lm



cat /proc/cpuinfo (AMD-V)

 model name: AMD Turion(tm) 64 Mobile Technology MK-36

 flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36
 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow pni cx16 lahf_lm
 svm cr8legacy ts fid vid ttp tm stc
Xen na prática




Gerenciamento
                                 Virtualização

Boteco Xen

  • 1.
    Virtualização com Xen Hardware é igual a coração de mãe? Fernando Ike e Luiz Vitor... (Caio Candido)
  • 2.
    História da virtualização 1959- múltiplas aplicações ● Artigo de Christopher Strachey: Time Sharing in Large Fast Computers 1960/1970 – múltiplos sistemas operacionais ● Primeiro Hypervisor (Atlas Computer) ● IBM Watson Research Center (M44/44X Project) ● MIT (CP/CMS) 1970/1990 ● Novas idéias surgem em centros de pesquisas, principalmente em Cambridge, MIT e IBM ● Utilização restrita a main-frames e estações de desenvolvimento 1990-2007 ● Sun (Conteiners/Zones) ● Microsoft (VirtualPC) ● VMWare (Fusion, Workstation, ACE, ESX, Server, Player etc) ● Xen, Lguest, KVM, VirtualPC, Bochs, Plex86, Qemu, Kqemu, Intel-VT, AMD-V...
  • 4.
  • 5.
    Virtualização no fimé... ● Aumento de serviços/servidores com um número menor de servidores físicos, economizando o custo total de hardware, eletricidade e manutenção ● Menos servidores físicos para monitorar (otimização de recursos para os sysadmins) ● Menor downtime para manutenção de serviços ● Menor complexidade da infra-estrutura física (cabos, switchs, eletricidade, contingência) Obs.: Para sysadmins, simplesmente porque é divertido e sobram mais tomadas para as cafeteiras.
  • 6.
    O projeto Xen ● 1999: Dickon Reed, Ian Pratt, Paul Menage, Contribuidor % Stephen Early, Neil Stratford do Laboratório de xensource.com 64,2 Computação da Universidade de Cambridge other 8,5 escrevem sobre Xenoservers. ibm.com 7,2 intel.com 5,2 ● 2003: é escrito “Xen e a arte da virtualização” por hp.com 3,4 Paul Barham, Boris Dragovic, Keir Fraser, Steven Hand, Tim Harris, Alex Ho, Rolf Neugebauer, Ian novell.com 3,0 Pratt, Andrew Warfield do mesmo laboratório. valinux.co.jp 2,1 bull.net 2,1 ● 2004: Lançado a versão 2.0. ncsc.mil 1,1 fujitsu.com 1,1 ● 2005: Lançado a versão 3.0 e criado a Xensource. redhat.com <1 amd.com <1 ● 2007: Lançamento da versão 3.1; virtualiron.com <1 Parte do código do Xen no kernel Linux; cam.ac.uk <1 Xensource comprada pela Citrix. unisys.com <1
  • 7.
    Estrutura de umservidor físico Aplicativos Aplicativos Aplicativos Sistema Operacional Kernel Hardware
  • 8.
    Virtualização: Hypervisor Aplicativos Aplicativos Aplicativos Aplicativos Aplicativos Aplicativos Sistema Operacional Sistema Operacional Sistema Operacional Camada de software - Hypervisor (VMM) Camada de hardware ● Uma camada de software ● Possibilita a virtualização de forma transparente aos sistemas virtualizados ● Gerencia os recursos físicos seguramente ● Permite que instruções oriundas dos sistemas virtualizados sejam executadas diretamente no hardware (responsável pela grande performance).
  • 9.
    Virtualização completa (Fullvirtualization) hardware emulado hardware emulado hardware emulado
  • 10.
    Paravirtualização (Paravirtualization)
  • 11.
    Armazenamento Imagens (QCOW / DD) Network File System (NFS) / iSCSI/DRDB LVM/EVMS TCP/IP
  • 13.
    Hardware é iguala coração de mãe... Sempre cabe mais um... ● Exterminação de todos os chroots em servidores físicos como: apache, bind, ftp... ● Alocação de recurso memória para a necessidades dos serviços executados para cada VM (Firewall, serviços web, ftp, rsync, email, arquivos) ● Desempenho da máquinas virtuais próximo de servidores físicos equivalentes (perda < 8%)
  • 14.
    ... mas temlimites! Dimensionando a capacidade do hardware ● Levantamento de recursos ● Total de recursos de hardware (memória, cpu, disco) ● Monitorar recursos de hardware por servidor/serviço (vmstat, iostat, mpstat, sar) ● Planejamento de recurso de VM é semelhante com servidores físicos
  • 15.
    Aqui não écasa da mãe Joana! Pensando em segurança ● sHype/ACM ● IPTABLES ● EBTABLES (mac/bridge) ● AIDE-XEN
  • 16.
    Ampliando as possibilidades... Mãe disponível 24 horas, 7 dias por semana, 365 dias por ano Alta Disponibilidade ●Migrar máquinas virtuais entre servidores físicos – Live Migration (ISCSI/DRDB – NFS) ●Automação de instalação de sistemas operacionais (deploy) com Cfengine e FAI ●Trabalhar com kernels Linux customizados para DomU e kernels customizados para cada máquina virtual
  • 17.
    Como ficar milionáriocom Xen Infraestrutura com 10 servidores Custo unitário Custo físico Custo virtual Hardware R$ 3,500.00 R$ 35,000.00 R$ 3,500.00 Software (licenças) R$ 6,000.00 R$ 60,000.00 R$ 0,00 ** Nobreak R$ 300.00 R$ 3,000.00 R$ 300.00 R$ 97,000.00 R$ 3,800.00 Custo mensal/unitário Custo físico Custo virtual Suporte R$ 1,600.00 R$ 19,200.00 R$ 19,200.00 Energia (500 Watts) R$ 56.00 R$ 6,720.00 R$ 672.00 Refrigeração (1000 Watts) R$ 168.00 R$ 4,032.00 R$ 2,016.00 R$ 1,824.00 R$ 29,952.00 R$ 21,888.00 Economia inicial de R$ 93.200,00 Economia anual de R$ 8.064,00
  • 18.
    Tempo x Custos 100000 90000 80000 70000 60000 custo (R$) 50000 40000 30000 20000 10000 0 0 1 2 3 4 5 6 Mantenimento tempo (anos) (Virtual) Mantenimento (Físico) Investimento (Virtual) Investimento (Físico)
  • 19.
    O Futuro XenFS (QCOW) (http://wiki.xensource.com/xenwiki/XenFS) Suportea openGL (VMGL) (http://www.cs.toronto.edu/~andreslc/xen-gl/) Network Virtualization (NetXen) (http://www.netxen.com/index2.html) Virtual Machine Driver Pack [NOVELL] (http://www.novell.com/products/vmdriverpack/) Códigos na árvore oficial do kernel linux
  • 20.
    Conclusão ● Economiza recursos de hardware, manutenção e energia. ● Possibilita maior uptime de serviços com uso de Live-Migration ● Diminui o tempo para instalar (Deploy) um SO (linux). ● O uso de virtualização necessita/obriga um maior planejamento da infra-estrutura (segurança, hardware, estrutura lógica) . ● Testemunho de sobreviventes
  • 21.
    Obrigado! Caio Candido caio@4linux.com.br Luiz Vitor luiz@4linux.com.br Fernando Ike fike@4linux.com.br
  • 22.
    Verificando o suportea virtualização completa no hardware cat /proc/cpuinfo (Intel-VT) model name: Intel(R) Core(TM)2 CPU T5600 @ 1.83GHz flags: fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm cat /proc/cpuinfo (AMD-V) model name: AMD Turion(tm) 64 Mobile Technology MK-36 flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow pni cx16 lahf_lm svm cr8legacy ts fid vid ttp tm stc
  • 23.