Virtualização de Máquinas: Uma experiência baseada em ferramentas livres - Carlos A. M. dos Santos
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Virtualização de Máquinas: Uma experiência baseada em ferramentas livres - Carlos A. M. dos Santos

  • 2,405 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,405
On Slideshare
2,405
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
40
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Virtualização de Máquinas Uma experiência baseada em ferramentas livres Carlos A. M. dos Santos echo unixmania at gmail dot com | sed 's/ at /@/;s/ dot /./g' 1º Seminário de Software Livre Tchelinux Pelotas, 24 de março de 2007
  • 2. Sobre o Palestrante ● Engenheiro agrícola* (UFPel, 1988) ● Pesquisador bolsista (EMBRAPA, 1989-1993) ● Programador e gerente de redes (CPMet/UFPel, provedores de serviços Internet, 1993-1999) ● Mestre em Ciência da Computação, na área de Computação Gráfica (UFRGS, 1998-2000) ● Professor de CG, programação e redes (URI, Santo Ângelo, 2001-2005) ● Atualmente: HP Brasil (IPL) * Acredite se quiser!
  • 3. Ressalva As opiniões expostas aqui são do palestrante, apenas, e não representam políticas, processos ou estratégias de mercado da HP. As informações expostas aqui não representam produtos, software ou serviços comercializados pela HP.
  • 4. Temas Abordados ● Teoria (não dói!) – Instruction Set Architecture – Definição formal de virtualização – Tipos de virtualização – Vantagens e desvantagens ● Exemplo prático – QEMU: diversos SOs rodando simultaneamente
  • 5. Instruction Set Architecture* ● Delimita a divisão entre hardware e software ● Hardware: dispositivo caracterizado por – um conjunto finito de estados válidos (registradores, memória) – um conjunto finito de instruções executáveis válidas ● Software: um conjunto cujos elementos são instruções válidas ● A execução das instruções provoca transições de estados * Doravante abreviada para ISA
  • 6. e(Si ) Si Sj Exemplo: a execução da intrução e muda o estado do hardware de Si para Sj Referência: Smith, James E. & Nair, Ravi. Virtual Machines. San Francisco: Morgan Kaufmann, 2005.
  • 7. Virtualização É a construção de um isomorfismo entre um sistema hóspede e um sistema hospedeiro* e(Si ) Si Sj hóspede V(Si ) V(Sj ) e'(S'i ) S'i S'j hospedeiro * Popek & Goldberg, 1974
  • 8. Tipos de Virtualização ● Em nível de processo – O hóspede é um único processo de usuário – A máquina virtual provê uma ABI* para o processo ● Em nível de sistema – Muitos processos de usuário podem coexistir – A máquina virtual provê um ambiente completo * Application Binary Interface
  • 9. Virtualização em nível de processo Processo Processo Hóspede Aplicativo Aplicativo Runtime Software de Virtualização Máquina Virtual Sistema Operacional Hospedeiro Hardware
  • 10. Virtualização em nível de sistema Processo Processo Aplicativo Aplicativo Hóspede Sistema Sistema Operacional Operacional VMM Software de Virtualização Máquina Virtual Hospedeiro Hardware
  • 11. Virtualização em Nível de Processo ● Multiprogramação: SO roda processos concorrentes ● Emulador/tradutor binário dinâmico: simula uma ISA (FX!32, Wine, PACE, QuickTransit/Rosetta) ● Otimizador binário dinâmico: modifica código para melhor desempenho (HP Dynamo) ● VM de linguagem de alto nível (p-Machine, Java) ● Exceções/mistos – FX32: recompilador dinâmico para a mesma ISA – Jalapeño: VM Java que faz otimização binária – FreeBSD Linux mode: vetor de serviços de sistema – FreeBSD Jails: contexto isolado restrito (Verio VPS)
  • 12. Exemplos de virtualização em nível de processo Aplicação Windows (IA32) Aplicação M68k (Palm OS 4) Aplicação ARM32 Windows NT (Palm OS 5) PACE (runtime) (Alpha) Runtime Bibliotecas ISA Alpha (RISC, 64 Bits) Palm OS 5 FX!32 DAL: Device Abstraction Layer Aplicação Windows (IA32) HAL: Hardware Abstraction Layer Runtime Unix ISA ARM32 ISA IA32 Palm OS Application Compatibility Wine: Windows Emulator Environment Palm OS 5
  • 13. Virtualização em Nível de Sistema ● VM clássica: hypervisor (VMM) gerencia o hardware e suporta múltiplos SOs (VM/370, VM/CMS, z/VM) ● VM hóspede: roda em um SO (VMware, Virtual PC for Windows, QEMU Accelerator) ● Sistema completo: emula um computador (QEMU, Virtual PC for Mac, POSE, dúzias!) ● Codesign: semelhante a microcódigo, processador expõe uma ISA virtual (Crusoe, IBM AS/400) ● Exceções/mistos – Virtualização auxilida por hardware (VT-x, AMD-V) – Xen: Paravirtualization (SO hóspede modificado)
  • 14. Exemplos de virtualização em nível de sistema Aplicação Linux (SPARC32) SPARC Linux QEMU (runtime) VM1 VM2 FreeBSD Aplicação Aplicação Linux z/OS ISA IA32 z/Linux z/OS Aplicação Windows (IA32) Hypervisor (runtime) Windows XP (IA32) QEMU (runtime) z/Architecture FreeBSD Kqemu z/VM ISA IA32 QEMU
  • 15. Vantages e Desvantagens Vantagens Desvantagens ● Redução de custos ● Desempenho limitado ● Segurança ● Emulação incompleta ● Flexibilidade ● Necessidade de alterar o hóspede (às vezes) Vantages e desvantagens sempre são relativas!
  • 16. Exemplo Prático QEMU: diversos SOs rodando simultaneamente Aplicação FreeBSD (IA32) FreeBSD (IA32) QEMU (runtime) Linux Kqemu ISA IA32
  • 17. Dúvidas?
  • 18. Obrigado pela atenção! Contato echo unixmania at gmail dot com | sed 's/ at /@/;s/ dot /./g'