SlideShare uma empresa Scribd logo
1 de 24
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
Diminuição dos custos com HW e
manutenção!
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
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
Por que virtualizar?
• Debugging
– Possibilita debugar sistemas
operacionais e device drivers
• Migração de software
– Facilita a migração de software entre
máquinas
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
Atributos
• Compatibilidade de Software
• Isolamento
• Encapsulamento
• Performance
Compatibilidade de SW
• Abstração compatível!
– HW-Level: SOs e demais softwares
– SW-Level: Aplicações
– Language-Level: Programas na
linguagem
Isolamento
• Ambiente isolado
• Contensão contra bugs e hackers
(debugging - sandboxing!)
• Mascaramento das camadas
subjacentes
“write once, run anywhere!”
Encapsulamento
• Controle do SW virtualizador pelo
SW subjacente
Melhor ambiente de execução!
Encapsulamento
• Máquinas virtuais de linguagens de alto
nível:
– Runtime checks
– Gerenciamento de memória
– Garbage collection
– ...
Ambiente de
programação filé!
Performance
• Camadas extras de abstração...
... overhead extra na execução 
• Máquinas virtuais bem sucedidas
valem à pena!
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...
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
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
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
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
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
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
Hosted Architecture
Hypervisor Architecture
Resto (sei lah como vai ser essa
porra)

Mais conteúdo relacionado

Semelhante a Virtualização: Benefícios e Desafios

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...Rodrigo Immaginario
 
Resumo de S.O.
Resumo de S.O.Resumo de S.O.
Resumo de S.O.dannas_06
 
Datacenter na nuvem
Datacenter na nuvemDatacenter na nuvem
Datacenter na nuvemIgnacio Nin
 
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
 
Minicurso - Virtualização
Minicurso - VirtualizaçãoMinicurso - Virtualização
Minicurso - Virtualizaçãodanielbojczuk
 
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionaisSuperTec1
 
Apresentação HyperCloud GT8
Apresentação HyperCloud GT8Apresentação HyperCloud GT8
Apresentação HyperCloud GT8HyperCloud UFS
 
Performance e disponibilidade ‐ Um estudo de caso: website dos Correios
Performance e disponibilidade ‐ Um estudo de caso: website dos CorreiosPerformance e disponibilidade ‐ Um estudo de caso: website dos Correios
Performance e disponibilidade ‐ Um estudo de caso: website dos CorreiosAlex Hübner
 
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
 
Arquitetura control logix
Arquitetura control logixArquitetura control logix
Arquitetura control logixSaddam Lande
 
TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?tdc-globalcode
 
Virtualização em Sistemas Embarcados
Virtualização em Sistemas EmbarcadosVirtualização em Sistemas Embarcados
Virtualização em Sistemas EmbarcadosCaio Pereira
 
Virtualização
VirtualizaçãoVirtualização
Virtualizaçãodieotavio
 
Soi2011 partei
Soi2011 parteiSoi2011 partei
Soi2011 parteipaulocsm
 

Semelhante a Virtualização: Benefícios e Desafios (20)

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...
 
Apresentacao Aula02 So
Apresentacao Aula02 SoApresentacao Aula02 So
Apresentacao Aula02 So
 
Virtualiza%e7%e3o(3)
Virtualiza%e7%e3o(3)Virtualiza%e7%e3o(3)
Virtualiza%e7%e3o(3)
 
Resumo de S.O.
Resumo de S.O.Resumo de S.O.
Resumo de S.O.
 
Virtualização
VirtualizaçãoVirtualização
Virtualização
 
Datacenter na nuvem
Datacenter na nuvemDatacenter na nuvem
Datacenter na nuvem
 
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
 
Aula01
Aula01Aula01
Aula01
 
Minicurso - Virtualização
Minicurso - VirtualizaçãoMinicurso - Virtualização
Minicurso - Virtualização
 
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
 
Apresentação HyperCloud GT8
Apresentação HyperCloud GT8Apresentação HyperCloud GT8
Apresentação HyperCloud GT8
 
Performance e disponibilidade ‐ Um estudo de caso: website dos Correios
Performance e disponibilidade ‐ Um estudo de caso: website dos CorreiosPerformance e disponibilidade ‐ Um estudo de caso: website dos Correios
Performance e disponibilidade ‐ Um estudo de caso: website dos Correios
 
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
 
Arquitetura control logix
Arquitetura control logixArquitetura control logix
Arquitetura control logix
 
SO2 - Windows 7
SO2 - Windows 7SO2 - Windows 7
SO2 - Windows 7
 
TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?
 
Virtualização em Sistemas Embarcados
Virtualização em Sistemas EmbarcadosVirtualização em Sistemas Embarcados
Virtualização em Sistemas Embarcados
 
Virtualização
VirtualizaçãoVirtualização
Virtualização
 
Soi2011 partei
Soi2011 parteiSoi2011 partei
Soi2011 partei
 
Automação de Data Center
Automação de Data CenterAutomação de Data Center
Automação de Data Center
 

Virtualização: Benefícios e Desafios

  • 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
  • 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
  • 24. Resto (sei lah como vai ser essa porra)