1 / 24

Virtualização

Virtualização. André Luis Loureiro de Carvalho Eduardo Lourenço Apolinário Fernando Henrique Calheiros Lopes Francisco Carvalho Felipe Leal Vítor Teixeira Costa. Agenda. Intro/História. André. Por que virtualizar?. Consolidação de servidores Menor TCO. Diminuição do # de computadores.

debra
Download Presentation

Virtualização

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Virtualização André Luis Loureiro de Carvalho Eduardo Lourenço Apolinário Fernando Henrique Calheiros Lopes Francisco Carvalho Felipe Leal Vítor Teixeira Costa

  2. Agenda • Intro/História... • .... • ...

  3. André

  4. Por que virtualizar? • Consolidação de servidores • Menor TCO Diminuição do # de computadores Diminuição dos custos com HW e manutenção!

  5. Por que virtualizar? • Consolidação de aplicações • Virtualizando hardware necessário para aplicações legadas • Sandboxing • VMs são ambientes seguros e isolados para rodar aplicações de terceiros ou pouco confiáveis

  6. Por que virtualizar? • Múltiplos ambientes de execução • Aumento de QoS através de garantia de quantidade específicas de recursos • Hardware virtual • Uma VM pode fornecer hardware que não existe fisicamente (ex: SCSI) • Múltiplos SOs simultâneos • Linux, FreeBSD, Windows, etc, rodando ao mesmo tempo em uma máquina

  7. Por que virtualizar? • Debugging • Possibilita debugar sistemas operacionais e device drivers • Migração de software • Facilita a migração de software entre máquinas

  8. Por que virtualizar? • Appliances • Permite o empacotamento de aplicação junto com o sistema operacional • Teste/QA • Permite a criação de cenários de teste difíceis de reproduzir

  9. Atributos • Compatibilidade de Software • Isolamento • Encapsulamento • Performance

  10. Compatibilidade de SW • Abstração compatível! • HW-Level: SOs e demais softwares • SW-Level: Aplicações • Language-Level: Programas na linguagem

  11. Isolamento • Ambiente isolado • Contensão contra bugs e hackers (debugging - sandboxing!) • Mascaramento das camadas subjacentes “write once, run anywhere!”

  12. Encapsulamento • Controle do SW virtualizador pelo SW subjacente Melhor ambiente de execução!

  13. Encapsulamento • Máquinas virtuais de linguagens de alto nível: • Runtime checks • Gerenciamento de memória • Garbage collection • ... Ambiente de programação filé!

  14. Performance • Camadas extras de abstração... ... overhead extra na execução  • Máquinas virtuais bem sucedidas valem à pena!

  15. Requisitos para Máquinas Virtuais • Popek e Goldberg (1974) • “For any computer a virtual machine monitor may be constructed if the set of sensitive instructions for that computer is a subset of the set of privileged instructions.” • Em outras palavras...

  16. Requisitos para Máquinas Virtuais • Três características essenciais (Popek e Goldberg): • Execução idêntica • Exceção: timing • Subconjunto estatisticamente dominante de instruções são executadas pelo processador real • A VMM tem controle total

  17. Virtualizando IA-32 • Não atende ao primeiro requisito de Popek e Goldberg: • 17 instruções que deveriam gerar trap não geram • Grande quantidade de devices e drivers

  18. Virtualizando IA-32 • Instruções problemáticas: • SGDT, SIDT, SLDT • Contém endereço linear de suas respectivas tabelas • SMSW • Armazena o valor da machine status word • PUSHF, POPF • Atualizar o registrador EFLAGS

  19. Virtualizando IA-32 • Instruções problemáticas: • LAR, LSL, VERR, VERW • Permitem verificar direitos de acesso de registradores de segmento e se um segmento pode ser lido/escrita no CPL atual • PUSH • Permitiria que o valor do registrador CS (que contém o CPL) seja examinado • POP • Não pode ser usada para carregar um novo valor no registrador CS

  20. Virtualizando IA-32 • Instruções problemáticas • CALL, JMP, INT n, RET • Calls e jumps pra segmentos com diferente nível de prioridade • STR • Permite a verificação do RPL do atual Task Segment Selector • MOVE • Permite a verificar o CPL dos registratores CS e SS

  21. Virtualizando IA-32 • Procedimentos para virtualizar IA-32 (Robin e Irvine): • Instruções não-sensíveis e não-privilegiadas podem ser rodadas diretamente no processador • Instruções sensíveis e privilegiadas geram trap • Instruções sensíveis e não privilegiadas devem ser detectadas

  22. Hosted Architecture

  23. Hypervisor Architecture

  24. Resto (sei lah como vai ser essa porra)

More Related