Virtualização André Luis Loureiro de Carvalho Eduardo Lourenço Apolinário Fernando Henrique...
-
Upload
branca-flor-barreiro-porto -
Category
Documents
-
view
217 -
download
1
Transcript of Virtualização André Luis Loureiro de Carvalho Eduardo Lourenço Apolinário Fernando Henrique...
Virtualização
André Luis Loureiro de CarvalhoEduardo Lourenço Apolinário
Fernando Henrique Calheiros LopesFrancisco 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)