SlideShare uma empresa Scribd logo
1 de 56
Baixar para ler offline
Virtualização e kernel, vistos por dentro

                    Eduardo Habkost
                 ehabkost@redhat.com


                Tchelinux Porto Alegre 2008



Nível: Avançado
Escopo: Código e processo de desenvolvimento do kernel
Pré-requisitos: Noções básicas sobre o kernel Linux e seu
processo de desenvolvimento
Introdução
                          Linux-based virt
                                Upstream
                               Conclusão


Conteúdo


  1   Introdução
         Paravirtualization, full-virtualization, etc.

  2   Linux-based virtualization
         KVM
         Mudanças no kernel

  3   Trabalhando upstream

  4   Conclusão



                         Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                          Linux-based virt
                                             Paravirtualization, full-virtualization, etc.
                                Upstream
                               Conclusão


Conteúdo


  1   Introdução
         Paravirtualization, full-virtualization, etc.

  2   Linux-based virtualization
         KVM
         Mudanças no kernel

  3   Trabalhando upstream

  4   Conclusão



                         Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                          Linux-based virt
                                             Paravirtualization, full-virtualization, etc.
                                Upstream
                               Conclusão


Full-virtualization
Parece de verdade!




        Parece uma máquina de verdade
        VMWare, Qemu (com ou sem kqemu), Bochs, outros
        Ou com ajuda do hardware (AMD-V, Intel-VT)
             Suportado pelo Xen
             No Linux: KVM
        Performance ruim para I/O
             Fácil para o hardware = fácil para o software
             Operação de I/O → pula para o host




                         Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                             Linux-based virt
                                                Paravirtualization, full-virtualization, etc.
                                   Upstream
                                  Conclusão


Paravirtualização
“Eu sei que é de mentira”




         Kernel do guest modificado
         Xen
         lguest
         VMI (VMWare)
         User-mode Linux (por que não?)
         Comunicação com o hypervisor através de hypercalls




                            Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                        Linux-based virt
                                           Paravirtualization, full-virtualization, etc.
                              Upstream
                             Conclusão


Paravirtualized drivers
Um agente infiltrado



        Ainda parece máquina de verdade
        Mas com um hardware “meio diferente”
        Exemplo: “device driver disk” do VMWare
        Para o SO, é só um hardware diferente que precisa de um
        driver
        O driver conversa com o hypervisor
        O melhor dos dois mundos
        Exemplos: Xenbus (Xen), VirtIO (genérico), drivers do
        VMWare


                       Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                          Linux-based virt   KVM
                                Upstream     Mudanças no kernel
                               Conclusão


Conteúdo


  1   Introdução
         Paravirtualization, full-virtualization, etc.

  2   Linux-based virtualization
         KVM
         Mudanças no kernel

  3   Trabalhando upstream

  4   Conclusão



                         Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                   Linux-based virt   KVM
                         Upstream     Mudanças no kernel
                        Conclusão


Linux-based virtualization



  Bare metal:




                  Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                   Linux-based virt   KVM
                         Upstream     Mudanças no kernel
                        Conclusão


Linux-based virtualization



  Xen (teoria):




                  Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                    Linux-based virt   KVM
                          Upstream     Mudanças no kernel
                         Conclusão


Linux-based virtualization



  Xen (prática):




                   Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                   Linux-based virt   KVM
                         Upstream     Mudanças no kernel
                        Conclusão


Linux-based virtualization



  KVM:




                  Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                          Linux-based virt   KVM
                                Upstream     Mudanças no kernel
                               Conclusão


Conteúdo


  1   Introdução
         Paravirtualization, full-virtualization, etc.

  2   Linux-based virtualization
         KVM
         Mudanças no kernel

  3   Trabalhando upstream

  4   Conclusão



                         Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                               Linux-based virt   KVM
                                     Upstream     Mudanças no kernel
                                    Conclusão


KVM
Kernel-based Virtual Machine


        Full-virtualization
        Precisa de suporte na CPU
        Aproveita:
              scheduler
              proteção entre processos; permissões
              gerenciamento de energia
              drivers
              gerenciamento de memória
        Context switches a menos
        Kernel: virtualização da CPU, exposta via /dev/kvm
        Userspace (qemu modificado): I/O, UI, política

                           Eduardo Habkost        Virtualização e kernel, vistos por dentro
Introdução
                          Linux-based virt   KVM
                                Upstream     Mudanças no kernel
                               Conclusão


Conteúdo


  1   Introdução
         Paravirtualization, full-virtualization, etc.

  2   Linux-based virtualization
         KVM
         Mudanças no kernel

  3   Trabalhando upstream

  4   Conclusão



                         Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                      Linux-based virt   KVM
                            Upstream     Mudanças no kernel
                           Conclusão


Mudanças no kernel




     KVM
     lguest: simples, paravirtualização
     paravirt_ops
     Unificação x86
     VirtIO




                     Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                       Linux-based virt   KVM
                             Upstream     Mudanças no kernel
                            Conclusão


paravirt_ops


     Paravirtualização
     Antes: recompilação do kernel do guest para suportar
     paravirt
     Agora: mesma imagem do kernel, vários guests
     Truques para substituir código on-the-fly (parecido com
     SMP alternatives)
     Início: 2.6.20 (i386), lguest
     Hoje: x86 (32 e 64-bits), ia64
     Usuários hoje: lguest, VMI, Xen, KVM (paravirt. drivers)



                      Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                     Linux-based virt   KVM
                           Upstream     Mudanças no kernel
                          Conclusão


Unificação x86



     i386, x86_64 -> x86
     Muito código parecido e duplicado
     Muito código i386 usado silenciosamente em x86_64: fácil
     de cometer erros
     Features novas precisavam ser “reimplementadas” (ex.:
     paravirt_ops)
     Ainda existem arquivos *_32.c e *_64.c a unificar




                    Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                            Linux-based virt   KVM
                                  Upstream     Mudanças no kernel
                                 Conclusão


VirtIO



         Padrão de-facto para dispositivos virtuais
         ABI guest ↔ host
         API para drivers
         Dispositivos aparecem como um dispositivo PCI
         Drivers “comuns” (virtio-net, virtio-blk, etc.)
         “A” Solução de paravirtualized drivers para o KVM
         Também existe esforço para suportar no Xen




                          Eduardo Habkost      Virtualização e kernel, vistos por dentro
Introdução
                          Linux-based virt
                                Upstream
                               Conclusão


Conteúdo


  1   Introdução
         Paravirtualization, full-virtualization, etc.

  2   Linux-based virtualization
         KVM
         Mudanças no kernel

  3   Trabalhando upstream

  4   Conclusão



                         Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                      Linux-based virt
                            Upstream
                           Conclusão


Trabalhando upstream



     Enviar seu código upstream dá trabalho
     O kernel é um alvo móvel
     Mas vale a pena. Senão você vai ter que escolher:
         Fica preso a uma versão pré-histórica do kernel; ou
         Tem ainda mais trabalho, podendo ser tarde demais
     O Xen é um bom exemplo didático




                     Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                      Linux-based virt
                            Upstream
                           Conclusão


Trabalhando upstream



     Enviar seu código upstream dá trabalho
     O kernel é um alvo móvel
     Mas vale a pena. Senão você vai ter que escolher:
         Fica preso a uma versão pré-histórica do kernel; ou
         Tem ainda mais trabalho, podendo ser tarde demais
     O Xen é um bom exemplo didático




                     Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                      Linux-based virt
                            Upstream
                           Conclusão


Trabalhando upstream



     Enviar seu código upstream dá trabalho
     O kernel é um alvo móvel
     Mas vale a pena. Senão você vai ter que escolher:
         Fica preso a uma versão pré-histórica do kernel; ou
         Tem ainda mais trabalho, podendo ser tarde demais
     O Xen é um bom exemplo didático




                     Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                      Linux-based virt
                            Upstream
                           Conclusão


Trabalhando upstream



     Enviar seu código upstream dá trabalho
     O kernel é um alvo móvel
     Mas vale a pena. Senão você vai ter que escolher:
         Fica preso a uma versão pré-histórica do kernel; ou
         Tem ainda mais trabalho, podendo ser tarde demais
     O Xen é um bom exemplo didático




                     Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                      Linux-based virt
                            Upstream
                           Conclusão


Trabalhando upstream



     Enviar seu código upstream dá trabalho
     O kernel é um alvo móvel
     Mas vale a pena. Senão você vai ter que escolher:
         Fica preso a uma versão pré-histórica do kernel; ou
         Tem ainda mais trabalho, podendo ser tarde demais
     O Xen é um bom exemplo didático




                     Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                      Linux-based virt
                            Upstream
                           Conclusão


Trabalhando upstream



     Enviar seu código upstream dá trabalho
     O kernel é um alvo móvel
     Mas vale a pena. Senão você vai ter que escolher:
         Fica preso a uma versão pré-histórica do kernel; ou
         Tem ainda mais trabalho, podendo ser tarde demais
     O Xen é um bom exemplo didático




                     Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                      Linux-based virt
                            Upstream
                           Conclusão


Uma história sobre trabalho upstream
  Árvore do kernel separada com suporte ao Xen, 2.6.18




                     Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                      Linux-based virt
                            Upstream
                           Conclusão


Uma história sobre trabalho upstream
  Não boa o suficiente para envio upstream




                     Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                  Linux-based virt
                        Upstream
                       Conclusão


Uma história sobre trabalho upstream
  “E daí?”




                 Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                         Linux-based virt
                               Upstream
                              Conclusão


Uma história sobre trabalho upstream
  Novo kernel: 2.6.19




                        Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                      Linux-based virt
                            Upstream
                           Conclusão


Uma história sobre trabalho upstream

  Algumas distribuições adaptam o código para o 2.6.19




  É o chamado forward-port


                     Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                      Linux-based virt
                            Upstream
                           Conclusão


Uma história sobre trabalho upstream
  XenSource continua usando o 2.6.18...




                     Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                         Linux-based virt
                               Upstream
                              Conclusão


Uma história sobre trabalho upstream
  Novo kernel: 2.6.20




                        Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                       Linux-based virt
                             Upstream
                            Conclusão


Uma história sobre trabalho upstream
  Distribuições fazem forward-port para o 2.6.20




  Um pouco mais complicado: paravirt_ops começa a entrar

                      Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                      Linux-based virt
                            Upstream
                           Conclusão


Uma história sobre trabalho upstream
  XenSource continua usando o 2.6.18...




                     Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                         Linux-based virt
                               Upstream
                              Conclusão


Uma história sobre trabalho upstream
  Novo kernel: 2.6.21




                        Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                      Linux-based virt
                            Upstream
                           Conclusão


Uma história sobre trabalho upstream
  2.6.21: Forward-port realmente complicado




  paravirt_ops usado em muitos pontos do código também
  modificados pelo patch do Xen
                     Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                         Linux-based virt
                               Upstream
                              Conclusão


Uma história sobre trabalho upstream
  Novo kernel: 2.6.22




                        Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                      Linux-based virt
                            Upstream
                           Conclusão


Uma história sobre trabalho upstream
  Quatro versões do kernel sem Xen oficial




                     Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                      Linux-based virt
                            Upstream
                           Conclusão


Uma história sobre trabalho upstream
  E a XenSource ainda no kernel 2.6.18




                     Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                     Linux-based virt
                           Upstream
                          Conclusão


Uma história sobre trabalho upstream
  Nem todo mundo chega a portar para 2.6.22




                    Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                  Linux-based virt
                        Upstream
                       Conclusão


Uma história sobre trabalho upstream
  2.6.23




                 Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                      Linux-based virt
                            Upstream
                           Conclusão


Uma história sobre trabalho upstream

  Forward-port mostra-se um trabalho sem fim




  Tem que ter alguma outra solução

                     Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                     Linux-based virt
                           Upstream
                          Conclusão


Uma história sobre trabalho upstream
  E a XenSource continua tendo que manter sua árvore do
  2.6.18




  Com correções de bugs, segurança, suporte a hardware
                    Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                       Linux-based virt
                             Upstream
                            Conclusão


Nem tudo está perdido
  A partir do 2.6.26, algum suporte para o Xen entrou




                      Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                       Linux-based virt
                             Upstream
                            Conclusão


Nem tudo está perdido

  2.6.27 está um pouco melhor




  Mas ainda falta muita coisa

                      Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                     Linux-based virt
                           Upstream
                          Conclusão


Nem tudo está perdido




     O trabalho para incluir todas as features do Xen do 2.6.18
     é grande
     Ninguém sabe quando isso vai estar pronto...
     “Emulando” o hypervisor Xen usando o KVM: Xenner




                    Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                     Linux-based virt
                           Upstream
                          Conclusão


Nem tudo está perdido




     O trabalho para incluir todas as features do Xen do 2.6.18
     é grande
     Ninguém sabe quando isso vai estar pronto...
     “Emulando” o hypervisor Xen usando o KVM: Xenner




                    Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                     Linux-based virt
                           Upstream
                          Conclusão


Nem tudo está perdido




     O trabalho para incluir todas as features do Xen do 2.6.18
     é grande
     Ninguém sabe quando isso vai estar pronto...
     “Emulando” o hypervisor Xen usando o KVM: Xenner




                    Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                     Linux-based virt
                           Upstream
                          Conclusão


Nem tudo está perdido




     O trabalho para incluir todas as features do Xen do 2.6.18
     é grande
     Ninguém sabe quando isso vai estar pronto...
     “Emulando” o hypervisor Xen usando o KVM: Xenner




                    Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                    Linux-based virt
                          Upstream
                         Conclusão


Xenner




    Usa /dev/kvm
    Excelente candidato para usar um futuro “kvm-lite”
    Utiliza parte do código userspace Xen
    Mesmo que o Xen “tradicional” fique pra trás, a ABI pode
    demorar a morrer




                   Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                          Linux-based virt
                                Upstream
                               Conclusão


Conteúdo


  1   Introdução
         Paravirtualization, full-virtualization, etc.

  2   Linux-based virtualization
         KVM
         Mudanças no kernel

  3   Trabalhando upstream

  4   Conclusão



                         Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                      Linux-based virt
                            Upstream
                           Conclusão


Futuro


     Mais paravirtualização
     Mais performance
         zero-copy I/O (disco, rede)
         PCI passthrough
         Video: SPICE
     Integração com o qemu upstream
     kvm-lite?
     O que vai acontecer com o Xen?




                     Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                            Linux-based virt
                                  Upstream
                                 Conclusão


Olhando para cima
O mundo não é só feito de kernel




         libvirt: API pra gerenciar VMs (Xen, KVM, outros)
         virt-manager: GUI
         oVirt: interface de gerenciamento




                           Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
                      Linux-based virt
                            Upstream
                           Conclusão


Referências

     Esta apresentação:
     http://raisama.net/talks/virt-2008/
     “virtio: towards a de-facto standard for virtual I/O devices”,
     by Rusty Russel
     KernelNewbies Virtualization Wiki:
     http://virt.kernelnewbies.org/
     KVM: http://kvm.qumranet.com/
     lguest: http://lguest.ozlabs.org/
     Xenner:
     http://kraxel.fedorapeople.org/xenner/
     Unificação x86:
     http://www.glommer.net/blogs/?p=265

                     Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
 Linux-based virt
       Upstream
      Conclusão




         Perguntas?




Eduardo Habkost     Virtualização e kernel, vistos por dentro
Introdução
 Linux-based virt
       Upstream
      Conclusão




           Obrigado




Eduardo Habkost     Virtualização e kernel, vistos por dentro

Mais conteúdo relacionado

Mais procurados

Virtualização: Um comparativo entre Xen e VMware
Virtualização: Um comparativo entre Xen e VMware Virtualização: Um comparativo entre Xen e VMware
Virtualização: Um comparativo entre Xen e VMware Thiago Reis da Silva
 
Xen Server X Vm Ware
Xen Server X Vm WareXen Server X Vm Ware
Xen Server X Vm WareAndre Flor
 
Open Virtualization - Virtualização em Software Livre
Open Virtualization - Virtualização em Software LivreOpen Virtualization - Virtualização em Software Livre
Open Virtualization - Virtualização em Software LivreFrederico Madeira
 
oVirt - gerenciamento de máquinas virtuais com código aberto
oVirt - gerenciamento de máquinas virtuais com código abertooVirt - gerenciamento de máquinas virtuais com código aberto
oVirt - gerenciamento de máquinas virtuais com código abertoehabkost
 
Comparação de Desempenho entre máquinas virtuais e containers - por Bruno Rod...
Comparação de Desempenho entre máquinas virtuais e containers - por Bruno Rod...Comparação de Desempenho entre máquinas virtuais e containers - por Bruno Rod...
Comparação de Desempenho entre máquinas virtuais e containers - por Bruno Rod...Joao Galdino Mello de Souza
 
Minicurso - Virtualização
Minicurso - VirtualizaçãoMinicurso - Virtualização
Minicurso - Virtualizaçãodanielbojczuk
 
Virtualização a Nível de Sistema Operacional e sua Proposta de Segurança
Virtualização a Nível de Sistema Operacional e sua Proposta de SegurançaVirtualização a Nível de Sistema Operacional e sua Proposta de Segurança
Virtualização a Nível de Sistema Operacional e sua Proposta de SegurançaAugusto Giles
 
Virtualização em Sistemas Computacionais - Palestra Infnet
Virtualização em Sistemas Computacionais - Palestra InfnetVirtualização em Sistemas Computacionais - Palestra Infnet
Virtualização em Sistemas Computacionais - Palestra InfnetTI Infnet
 
Usando Hyper-v 2012 para virtualização do SQL Server
Usando Hyper-v 2012 para virtualização do SQL ServerUsando Hyper-v 2012 para virtualização do SQL Server
Usando Hyper-v 2012 para virtualização do SQL Serverleorsilva
 
Linux e o modelo open source
Linux e o modelo open sourceLinux e o modelo open source
Linux e o modelo open sourceFrederico Madeira
 
Palestra Teched Brasil 2010 - Sessão INT301 - Linux no Hyper-V
Palestra Teched Brasil 2010 - Sessão INT301 - Linux no Hyper-VPalestra Teched Brasil 2010 - Sessão INT301 - Linux no Hyper-V
Palestra Teched Brasil 2010 - Sessão INT301 - Linux no Hyper-VGBanin
 
Docker | Meetspark - #2
Docker | Meetspark - #2Docker | Meetspark - #2
Docker | Meetspark - #2Lucas Martins
 
Dicas e Truques de Performance: Como obter o maximo do Windows Server 2008 R2...
Dicas e Truques de Performance: Como obter o maximo do Windows Server 2008 R2...Dicas e Truques de Performance: Como obter o maximo do Windows Server 2008 R2...
Dicas e Truques de Performance: Como obter o maximo do Windows Server 2008 R2...Fabio Hara
 

Mais procurados (19)

Virtualização: Um comparativo entre Xen e VMware
Virtualização: Um comparativo entre Xen e VMware Virtualização: Um comparativo entre Xen e VMware
Virtualização: Um comparativo entre Xen e VMware
 
Xen Server X Vm Ware
Xen Server X Vm WareXen Server X Vm Ware
Xen Server X Vm Ware
 
Open Virtualization - Virtualização em Software Livre
Open Virtualization - Virtualização em Software LivreOpen Virtualization - Virtualização em Software Livre
Open Virtualization - Virtualização em Software Livre
 
Kvm
KvmKvm
Kvm
 
Virtualiza%e7%e3o(3)
Virtualiza%e7%e3o(3)Virtualiza%e7%e3o(3)
Virtualiza%e7%e3o(3)
 
oVirt - gerenciamento de máquinas virtuais com código aberto
oVirt - gerenciamento de máquinas virtuais com código abertooVirt - gerenciamento de máquinas virtuais com código aberto
oVirt - gerenciamento de máquinas virtuais com código aberto
 
Consolidação Mic&Mac Soluções em TI
Consolidação Mic&Mac Soluções em TIConsolidação Mic&Mac Soluções em TI
Consolidação Mic&Mac Soluções em TI
 
Comparação de Desempenho entre máquinas virtuais e containers - por Bruno Rod...
Comparação de Desempenho entre máquinas virtuais e containers - por Bruno Rod...Comparação de Desempenho entre máquinas virtuais e containers - por Bruno Rod...
Comparação de Desempenho entre máquinas virtuais e containers - por Bruno Rod...
 
Minicurso - Virtualização
Minicurso - VirtualizaçãoMinicurso - Virtualização
Minicurso - Virtualização
 
Livro cisco
Livro ciscoLivro cisco
Livro cisco
 
Virtualização a Nível de Sistema Operacional e sua Proposta de Segurança
Virtualização a Nível de Sistema Operacional e sua Proposta de SegurançaVirtualização a Nível de Sistema Operacional e sua Proposta de Segurança
Virtualização a Nível de Sistema Operacional e sua Proposta de Segurança
 
Virtualização em Sistemas Computacionais - Palestra Infnet
Virtualização em Sistemas Computacionais - Palestra InfnetVirtualização em Sistemas Computacionais - Palestra Infnet
Virtualização em Sistemas Computacionais - Palestra Infnet
 
Usando Hyper-v 2012 para virtualização do SQL Server
Usando Hyper-v 2012 para virtualização do SQL ServerUsando Hyper-v 2012 para virtualização do SQL Server
Usando Hyper-v 2012 para virtualização do SQL Server
 
Artigo
ArtigoArtigo
Artigo
 
Linux e o modelo open source
Linux e o modelo open sourceLinux e o modelo open source
Linux e o modelo open source
 
Palestra Teched Brasil 2010 - Sessão INT301 - Linux no Hyper-V
Palestra Teched Brasil 2010 - Sessão INT301 - Linux no Hyper-VPalestra Teched Brasil 2010 - Sessão INT301 - Linux no Hyper-V
Palestra Teched Brasil 2010 - Sessão INT301 - Linux no Hyper-V
 
Docker | Meetspark - #2
Docker | Meetspark - #2Docker | Meetspark - #2
Docker | Meetspark - #2
 
Performance HyperV
Performance HyperVPerformance HyperV
Performance HyperV
 
Dicas e Truques de Performance: Como obter o maximo do Windows Server 2008 R2...
Dicas e Truques de Performance: Como obter o maximo do Windows Server 2008 R2...Dicas e Truques de Performance: Como obter o maximo do Windows Server 2008 R2...
Dicas e Truques de Performance: Como obter o maximo do Windows Server 2008 R2...
 

Destaque

Ppt Prensa
Ppt PrensaPpt Prensa
Ppt Prensamfrias
 
PresentacióN Sponsor2
PresentacióN Sponsor2PresentacióN Sponsor2
PresentacióN Sponsor2mfrias
 
Case Brasp - Cliente Grupo Soares
Case Brasp - Cliente Grupo SoaresCase Brasp - Cliente Grupo Soares
Case Brasp - Cliente Grupo SoaresBrasp
 
Virtualização - O Futuro é na NUVEM
Virtualização - O Futuro é na NUVEMVirtualização - O Futuro é na NUVEM
Virtualização - O Futuro é na NUVEMRodrigo Felipe Betussi
 
O que é virtualização
O que é virtualizaçãoO que é virtualização
O que é virtualizaçãoWILSON GOMES
 
Virtualização de Computadores
Virtualização de ComputadoresVirtualização de Computadores
Virtualização de Computadoreselliando dias
 
Métodos e Técnicas de Análise da Informação para Planejamento
Métodos e Técnicas de Análise da Informação para PlanejamentoMétodos e Técnicas de Análise da Informação para Planejamento
Métodos e Técnicas de Análise da Informação para PlanejamentoVitor Vieira Vasconcelos
 
Algoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoMauro Pereira
 
Explicação Virtualização Guilherme Lima
Explicação Virtualização Guilherme LimaExplicação Virtualização Guilherme Lima
Explicação Virtualização Guilherme LimaGuilherme Lima
 
Geometria analitica exercicios resolvidos
Geometria analitica exercicios resolvidosGeometria analitica exercicios resolvidos
Geometria analitica exercicios resolvidoscon_seguir
 
Ap geometria analitica resolvidos
Ap geometria analitica resolvidosAp geometria analitica resolvidos
Ap geometria analitica resolvidostrigono_metrico
 
Idc white paper kvm – open source virtualization for the enterprise and ope...
Idc white paper   kvm – open source virtualization for the enterprise and ope...Idc white paper   kvm – open source virtualization for the enterprise and ope...
Idc white paper kvm – open source virtualization for the enterprise and ope...benzfire
 

Destaque (17)

Ppt Prensa
Ppt PrensaPpt Prensa
Ppt Prensa
 
PresentacióN Sponsor2
PresentacióN Sponsor2PresentacióN Sponsor2
PresentacióN Sponsor2
 
Case Brasp - Cliente Grupo Soares
Case Brasp - Cliente Grupo SoaresCase Brasp - Cliente Grupo Soares
Case Brasp - Cliente Grupo Soares
 
Apresentação openstack
Apresentação openstackApresentação openstack
Apresentação openstack
 
Virtualização - O Futuro é na NUVEM
Virtualização - O Futuro é na NUVEMVirtualização - O Futuro é na NUVEM
Virtualização - O Futuro é na NUVEM
 
O que é virtualização
O que é virtualizaçãoO que é virtualização
O que é virtualização
 
Virtualização de Computadores
Virtualização de ComputadoresVirtualização de Computadores
Virtualização de Computadores
 
O QUE É VIRTUAL?
O QUE É VIRTUAL? O QUE É VIRTUAL?
O QUE É VIRTUAL?
 
Métodos e Técnicas de Análise da Informação para Planejamento
Métodos e Técnicas de Análise da Informação para PlanejamentoMétodos e Técnicas de Análise da Informação para Planejamento
Métodos e Técnicas de Análise da Informação para Planejamento
 
Algoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigo
 
Realidade Virtual
Realidade VirtualRealidade Virtual
Realidade Virtual
 
Realidade Virtual
Realidade VirtualRealidade Virtual
Realidade Virtual
 
Explicação Virtualização Guilherme Lima
Explicação Virtualização Guilherme LimaExplicação Virtualização Guilherme Lima
Explicação Virtualização Guilherme Lima
 
Geometria analitica exercicios resolvidos
Geometria analitica exercicios resolvidosGeometria analitica exercicios resolvidos
Geometria analitica exercicios resolvidos
 
Ap geometria analitica resolvidos
Ap geometria analitica resolvidosAp geometria analitica resolvidos
Ap geometria analitica resolvidos
 
Lista 5 - Geometria Analítica - Resolução
Lista 5 - Geometria Analítica - ResoluçãoLista 5 - Geometria Analítica - Resolução
Lista 5 - Geometria Analítica - Resolução
 
Idc white paper kvm – open source virtualization for the enterprise and ope...
Idc white paper   kvm – open source virtualization for the enterprise and ope...Idc white paper   kvm – open source virtualization for the enterprise and ope...
Idc white paper kvm – open source virtualization for the enterprise and ope...
 

Semelhante a Virtualização e Kernel, vistos por dentro

Virtualização e kernel, vistos por dentro - Eduardo Habkost
Virtualização e kernel, vistos por dentro - Eduardo HabkostVirtualização e kernel, vistos por dentro - Eduardo Habkost
Virtualização e kernel, vistos por dentro - Eduardo HabkostTchelinux
 
Virtualização em Software Livre
Virtualização em Software LivreVirtualização em Software Livre
Virtualização em Software Livreelliando dias
 
Arquitetura de Computadores e Sistemas Operacionais Etapa 08.pdf
Arquitetura de Computadores e Sistemas Operacionais Etapa 08.pdfArquitetura de Computadores e Sistemas Operacionais Etapa 08.pdf
Arquitetura de Computadores e Sistemas Operacionais Etapa 08.pdfFabianoGisbert1
 
Maximize o Potencial do seu Datacenter com Citrix XenServer
Maximize o Potencial do seu Datacenter com Citrix XenServerMaximize o Potencial do seu Datacenter com Citrix XenServer
Maximize o Potencial do seu Datacenter com Citrix XenServerLorscheider Santiago
 
Vagrant vs docker? Melhor vagrant + docker
Vagrant vs docker? Melhor vagrant + dockerVagrant vs docker? Melhor vagrant + docker
Vagrant vs docker? Melhor vagrant + dockerWellington Silva
 
Controle de Versão GIT
Controle de Versão GITControle de Versão GIT
Controle de Versão GITRafael Izidoro
 
Windows Server 2016, System Center 2016 e OMS
Windows Server 2016, System Center 2016 e OMSWindows Server 2016, System Center 2016 e OMS
Windows Server 2016, System Center 2016 e OMSFabio Hara
 
Instalação e Configuração do Hipervisor xen pvm
Instalação e Configuração do Hipervisor xen pvmInstalação e Configuração do Hipervisor xen pvm
Instalação e Configuração do Hipervisor xen pvmFernando Pessoa
 
Virtualização e consolidação de servidores
Virtualização e consolidação de servidoresVirtualização e consolidação de servidores
Virtualização e consolidação de servidoresRuy Mendonça
 
Hiperconvergência com Proxmox e Ceph
Hiperconvergência com Proxmox e CephHiperconvergência com Proxmox e Ceph
Hiperconvergência com Proxmox e CephKernel TI LTDA
 
Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3Wellington Silva
 
Apresentação estágio - Virtualização
Apresentação estágio - VirtualizaçãoApresentação estágio - Virtualização
Apresentação estágio - VirtualizaçãoMichell Antunes
 
Virtualização
VirtualizaçãoVirtualização
Virtualizaçãodieotavio
 
Virtualização com Hyper-V
Virtualização com Hyper-VVirtualização com Hyper-V
Virtualização com Hyper-VCDS
 

Semelhante a Virtualização e Kernel, vistos por dentro (20)

Virtualização e kernel, vistos por dentro - Eduardo Habkost
Virtualização e kernel, vistos por dentro - Eduardo HabkostVirtualização e kernel, vistos por dentro - Eduardo Habkost
Virtualização e kernel, vistos por dentro - Eduardo Habkost
 
Virtualização em Software Livre
Virtualização em Software LivreVirtualização em Software Livre
Virtualização em Software Livre
 
Arquitetura de Computadores e Sistemas Operacionais Etapa 08.pdf
Arquitetura de Computadores e Sistemas Operacionais Etapa 08.pdfArquitetura de Computadores e Sistemas Operacionais Etapa 08.pdf
Arquitetura de Computadores e Sistemas Operacionais Etapa 08.pdf
 
Maximize o Potencial do seu Datacenter com Citrix XenServer
Maximize o Potencial do seu Datacenter com Citrix XenServerMaximize o Potencial do seu Datacenter com Citrix XenServer
Maximize o Potencial do seu Datacenter com Citrix XenServer
 
Vagrant vs docker? Melhor vagrant + docker
Vagrant vs docker? Melhor vagrant + dockerVagrant vs docker? Melhor vagrant + docker
Vagrant vs docker? Melhor vagrant + docker
 
Controle de Versão GIT
Controle de Versão GITControle de Versão GIT
Controle de Versão GIT
 
Windows Server 2016, System Center 2016 e OMS
Windows Server 2016, System Center 2016 e OMSWindows Server 2016, System Center 2016 e OMS
Windows Server 2016, System Center 2016 e OMS
 
Instalação e Configuração do Hipervisor xen pvm
Instalação e Configuração do Hipervisor xen pvmInstalação e Configuração do Hipervisor xen pvm
Instalação e Configuração do Hipervisor xen pvm
 
Virtualização e consolidação de servidores
Virtualização e consolidação de servidoresVirtualização e consolidação de servidores
Virtualização e consolidação de servidores
 
Hiperconvergência com Proxmox e Ceph
Hiperconvergência com Proxmox e CephHiperconvergência com Proxmox e Ceph
Hiperconvergência com Proxmox e Ceph
 
Virtualização
VirtualizaçãoVirtualização
Virtualização
 
Boteco Xen
Boteco XenBoteco Xen
Boteco Xen
 
Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3
 
Apresentação estágio - Virtualização
Apresentação estágio - VirtualizaçãoApresentação estágio - Virtualização
Apresentação estágio - Virtualização
 
Virtualização
VirtualizaçãoVirtualização
Virtualização
 
Artigo vmware
Artigo vmware Artigo vmware
Artigo vmware
 
Virtualização
VirtualizaçãoVirtualização
Virtualização
 
Virtualização com Hyper-V
Virtualização com Hyper-VVirtualização com Hyper-V
Virtualização com Hyper-V
 
Educloud 2
Educloud 2Educloud 2
Educloud 2
 
Virtualização
VirtualizaçãoVirtualização
Virtualização
 

Virtualização e Kernel, vistos por dentro

  • 1. Virtualização e kernel, vistos por dentro Eduardo Habkost ehabkost@redhat.com Tchelinux Porto Alegre 2008 Nível: Avançado Escopo: Código e processo de desenvolvimento do kernel Pré-requisitos: Noções básicas sobre o kernel Linux e seu processo de desenvolvimento
  • 2. Introdução Linux-based virt Upstream Conclusão Conteúdo 1 Introdução Paravirtualization, full-virtualization, etc. 2 Linux-based virtualization KVM Mudanças no kernel 3 Trabalhando upstream 4 Conclusão Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 3. Introdução Linux-based virt Paravirtualization, full-virtualization, etc. Upstream Conclusão Conteúdo 1 Introdução Paravirtualization, full-virtualization, etc. 2 Linux-based virtualization KVM Mudanças no kernel 3 Trabalhando upstream 4 Conclusão Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 4. Introdução Linux-based virt Paravirtualization, full-virtualization, etc. Upstream Conclusão Full-virtualization Parece de verdade! Parece uma máquina de verdade VMWare, Qemu (com ou sem kqemu), Bochs, outros Ou com ajuda do hardware (AMD-V, Intel-VT) Suportado pelo Xen No Linux: KVM Performance ruim para I/O Fácil para o hardware = fácil para o software Operação de I/O → pula para o host Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 5. Introdução Linux-based virt Paravirtualization, full-virtualization, etc. Upstream Conclusão Paravirtualização “Eu sei que é de mentira” Kernel do guest modificado Xen lguest VMI (VMWare) User-mode Linux (por que não?) Comunicação com o hypervisor através de hypercalls Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 6. Introdução Linux-based virt Paravirtualization, full-virtualization, etc. Upstream Conclusão Paravirtualized drivers Um agente infiltrado Ainda parece máquina de verdade Mas com um hardware “meio diferente” Exemplo: “device driver disk” do VMWare Para o SO, é só um hardware diferente que precisa de um driver O driver conversa com o hypervisor O melhor dos dois mundos Exemplos: Xenbus (Xen), VirtIO (genérico), drivers do VMWare Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 7. Introdução Linux-based virt KVM Upstream Mudanças no kernel Conclusão Conteúdo 1 Introdução Paravirtualization, full-virtualization, etc. 2 Linux-based virtualization KVM Mudanças no kernel 3 Trabalhando upstream 4 Conclusão Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 8. Introdução Linux-based virt KVM Upstream Mudanças no kernel Conclusão Linux-based virtualization Bare metal: Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 9. Introdução Linux-based virt KVM Upstream Mudanças no kernel Conclusão Linux-based virtualization Xen (teoria): Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 10. Introdução Linux-based virt KVM Upstream Mudanças no kernel Conclusão Linux-based virtualization Xen (prática): Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 11. Introdução Linux-based virt KVM Upstream Mudanças no kernel Conclusão Linux-based virtualization KVM: Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 12. Introdução Linux-based virt KVM Upstream Mudanças no kernel Conclusão Conteúdo 1 Introdução Paravirtualization, full-virtualization, etc. 2 Linux-based virtualization KVM Mudanças no kernel 3 Trabalhando upstream 4 Conclusão Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 13. Introdução Linux-based virt KVM Upstream Mudanças no kernel Conclusão KVM Kernel-based Virtual Machine Full-virtualization Precisa de suporte na CPU Aproveita: scheduler proteção entre processos; permissões gerenciamento de energia drivers gerenciamento de memória Context switches a menos Kernel: virtualização da CPU, exposta via /dev/kvm Userspace (qemu modificado): I/O, UI, política Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 14. Introdução Linux-based virt KVM Upstream Mudanças no kernel Conclusão Conteúdo 1 Introdução Paravirtualization, full-virtualization, etc. 2 Linux-based virtualization KVM Mudanças no kernel 3 Trabalhando upstream 4 Conclusão Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 15. Introdução Linux-based virt KVM Upstream Mudanças no kernel Conclusão Mudanças no kernel KVM lguest: simples, paravirtualização paravirt_ops Unificação x86 VirtIO Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 16. Introdução Linux-based virt KVM Upstream Mudanças no kernel Conclusão paravirt_ops Paravirtualização Antes: recompilação do kernel do guest para suportar paravirt Agora: mesma imagem do kernel, vários guests Truques para substituir código on-the-fly (parecido com SMP alternatives) Início: 2.6.20 (i386), lguest Hoje: x86 (32 e 64-bits), ia64 Usuários hoje: lguest, VMI, Xen, KVM (paravirt. drivers) Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 17. Introdução Linux-based virt KVM Upstream Mudanças no kernel Conclusão Unificação x86 i386, x86_64 -> x86 Muito código parecido e duplicado Muito código i386 usado silenciosamente em x86_64: fácil de cometer erros Features novas precisavam ser “reimplementadas” (ex.: paravirt_ops) Ainda existem arquivos *_32.c e *_64.c a unificar Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 18. Introdução Linux-based virt KVM Upstream Mudanças no kernel Conclusão VirtIO Padrão de-facto para dispositivos virtuais ABI guest ↔ host API para drivers Dispositivos aparecem como um dispositivo PCI Drivers “comuns” (virtio-net, virtio-blk, etc.) “A” Solução de paravirtualized drivers para o KVM Também existe esforço para suportar no Xen Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 19. Introdução Linux-based virt Upstream Conclusão Conteúdo 1 Introdução Paravirtualization, full-virtualization, etc. 2 Linux-based virtualization KVM Mudanças no kernel 3 Trabalhando upstream 4 Conclusão Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 20. Introdução Linux-based virt Upstream Conclusão Trabalhando upstream Enviar seu código upstream dá trabalho O kernel é um alvo móvel Mas vale a pena. Senão você vai ter que escolher: Fica preso a uma versão pré-histórica do kernel; ou Tem ainda mais trabalho, podendo ser tarde demais O Xen é um bom exemplo didático Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 21. Introdução Linux-based virt Upstream Conclusão Trabalhando upstream Enviar seu código upstream dá trabalho O kernel é um alvo móvel Mas vale a pena. Senão você vai ter que escolher: Fica preso a uma versão pré-histórica do kernel; ou Tem ainda mais trabalho, podendo ser tarde demais O Xen é um bom exemplo didático Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 22. Introdução Linux-based virt Upstream Conclusão Trabalhando upstream Enviar seu código upstream dá trabalho O kernel é um alvo móvel Mas vale a pena. Senão você vai ter que escolher: Fica preso a uma versão pré-histórica do kernel; ou Tem ainda mais trabalho, podendo ser tarde demais O Xen é um bom exemplo didático Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 23. Introdução Linux-based virt Upstream Conclusão Trabalhando upstream Enviar seu código upstream dá trabalho O kernel é um alvo móvel Mas vale a pena. Senão você vai ter que escolher: Fica preso a uma versão pré-histórica do kernel; ou Tem ainda mais trabalho, podendo ser tarde demais O Xen é um bom exemplo didático Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 24. Introdução Linux-based virt Upstream Conclusão Trabalhando upstream Enviar seu código upstream dá trabalho O kernel é um alvo móvel Mas vale a pena. Senão você vai ter que escolher: Fica preso a uma versão pré-histórica do kernel; ou Tem ainda mais trabalho, podendo ser tarde demais O Xen é um bom exemplo didático Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 25. Introdução Linux-based virt Upstream Conclusão Trabalhando upstream Enviar seu código upstream dá trabalho O kernel é um alvo móvel Mas vale a pena. Senão você vai ter que escolher: Fica preso a uma versão pré-histórica do kernel; ou Tem ainda mais trabalho, podendo ser tarde demais O Xen é um bom exemplo didático Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 26. Introdução Linux-based virt Upstream Conclusão Uma história sobre trabalho upstream Árvore do kernel separada com suporte ao Xen, 2.6.18 Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 27. Introdução Linux-based virt Upstream Conclusão Uma história sobre trabalho upstream Não boa o suficiente para envio upstream Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 28. Introdução Linux-based virt Upstream Conclusão Uma história sobre trabalho upstream “E daí?” Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 29. Introdução Linux-based virt Upstream Conclusão Uma história sobre trabalho upstream Novo kernel: 2.6.19 Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 30. Introdução Linux-based virt Upstream Conclusão Uma história sobre trabalho upstream Algumas distribuições adaptam o código para o 2.6.19 É o chamado forward-port Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 31. Introdução Linux-based virt Upstream Conclusão Uma história sobre trabalho upstream XenSource continua usando o 2.6.18... Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 32. Introdução Linux-based virt Upstream Conclusão Uma história sobre trabalho upstream Novo kernel: 2.6.20 Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 33. Introdução Linux-based virt Upstream Conclusão Uma história sobre trabalho upstream Distribuições fazem forward-port para o 2.6.20 Um pouco mais complicado: paravirt_ops começa a entrar Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 34. Introdução Linux-based virt Upstream Conclusão Uma história sobre trabalho upstream XenSource continua usando o 2.6.18... Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 35. Introdução Linux-based virt Upstream Conclusão Uma história sobre trabalho upstream Novo kernel: 2.6.21 Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 36. Introdução Linux-based virt Upstream Conclusão Uma história sobre trabalho upstream 2.6.21: Forward-port realmente complicado paravirt_ops usado em muitos pontos do código também modificados pelo patch do Xen Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 37. Introdução Linux-based virt Upstream Conclusão Uma história sobre trabalho upstream Novo kernel: 2.6.22 Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 38. Introdução Linux-based virt Upstream Conclusão Uma história sobre trabalho upstream Quatro versões do kernel sem Xen oficial Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 39. Introdução Linux-based virt Upstream Conclusão Uma história sobre trabalho upstream E a XenSource ainda no kernel 2.6.18 Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 40. Introdução Linux-based virt Upstream Conclusão Uma história sobre trabalho upstream Nem todo mundo chega a portar para 2.6.22 Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 41. Introdução Linux-based virt Upstream Conclusão Uma história sobre trabalho upstream 2.6.23 Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 42. Introdução Linux-based virt Upstream Conclusão Uma história sobre trabalho upstream Forward-port mostra-se um trabalho sem fim Tem que ter alguma outra solução Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 43. Introdução Linux-based virt Upstream Conclusão Uma história sobre trabalho upstream E a XenSource continua tendo que manter sua árvore do 2.6.18 Com correções de bugs, segurança, suporte a hardware Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 44. Introdução Linux-based virt Upstream Conclusão Nem tudo está perdido A partir do 2.6.26, algum suporte para o Xen entrou Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 45. Introdução Linux-based virt Upstream Conclusão Nem tudo está perdido 2.6.27 está um pouco melhor Mas ainda falta muita coisa Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 46. Introdução Linux-based virt Upstream Conclusão Nem tudo está perdido O trabalho para incluir todas as features do Xen do 2.6.18 é grande Ninguém sabe quando isso vai estar pronto... “Emulando” o hypervisor Xen usando o KVM: Xenner Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 47. Introdução Linux-based virt Upstream Conclusão Nem tudo está perdido O trabalho para incluir todas as features do Xen do 2.6.18 é grande Ninguém sabe quando isso vai estar pronto... “Emulando” o hypervisor Xen usando o KVM: Xenner Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 48. Introdução Linux-based virt Upstream Conclusão Nem tudo está perdido O trabalho para incluir todas as features do Xen do 2.6.18 é grande Ninguém sabe quando isso vai estar pronto... “Emulando” o hypervisor Xen usando o KVM: Xenner Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 49. Introdução Linux-based virt Upstream Conclusão Nem tudo está perdido O trabalho para incluir todas as features do Xen do 2.6.18 é grande Ninguém sabe quando isso vai estar pronto... “Emulando” o hypervisor Xen usando o KVM: Xenner Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 50. Introdução Linux-based virt Upstream Conclusão Xenner Usa /dev/kvm Excelente candidato para usar um futuro “kvm-lite” Utiliza parte do código userspace Xen Mesmo que o Xen “tradicional” fique pra trás, a ABI pode demorar a morrer Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 51. Introdução Linux-based virt Upstream Conclusão Conteúdo 1 Introdução Paravirtualization, full-virtualization, etc. 2 Linux-based virtualization KVM Mudanças no kernel 3 Trabalhando upstream 4 Conclusão Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 52. Introdução Linux-based virt Upstream Conclusão Futuro Mais paravirtualização Mais performance zero-copy I/O (disco, rede) PCI passthrough Video: SPICE Integração com o qemu upstream kvm-lite? O que vai acontecer com o Xen? Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 53. Introdução Linux-based virt Upstream Conclusão Olhando para cima O mundo não é só feito de kernel libvirt: API pra gerenciar VMs (Xen, KVM, outros) virt-manager: GUI oVirt: interface de gerenciamento Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 54. Introdução Linux-based virt Upstream Conclusão Referências Esta apresentação: http://raisama.net/talks/virt-2008/ “virtio: towards a de-facto standard for virtual I/O devices”, by Rusty Russel KernelNewbies Virtualization Wiki: http://virt.kernelnewbies.org/ KVM: http://kvm.qumranet.com/ lguest: http://lguest.ozlabs.org/ Xenner: http://kraxel.fedorapeople.org/xenner/ Unificação x86: http://www.glommer.net/blogs/?p=265 Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 55. Introdução Linux-based virt Upstream Conclusão Perguntas? Eduardo Habkost Virtualização e kernel, vistos por dentro
  • 56. Introdução Linux-based virt Upstream Conclusão Obrigado Eduardo Habkost Virtualização e kernel, vistos por dentro