Virtualização de Máquinas
Uma visão geral e informal
Conceito
• O conceito de virtualização está relacionado à
ideia de emulação
• Exemplos:
• Um emulador de videogame, p/executar jogos
escritos para outros consoles
• A JVM (Java Virtual Machine)
• Softwares que emulam outras máquinas, que
podem ter SO’s diferentes da máquina hospedeira
Considerações iniciais
• IBM: 1960 - abstração de software (Guest) que enxerga
um sistema físico (Host)
• Algumas funcionalides: suporte a multiplataformas,
proteção contra spywares/vírus, testes de
compatibilidades, economia de espaço e energia,
portabilidade, etc.
• Empecilho: limitações de hardware (tanto para
desempenho quanto para atividades que requerem
alta performance de algum dispositivo específico)
Considerações iniciais
-> Virt. de Processo (ex.: Java Virtual Machine):
Portabilidade do código de uma linguagem de alto nível
para qualquer sistema operacional em qualquer
plataforma de hardware
-> Virt. de Sistema (ex.: VMware, VirtualBox):
Ambiente completo juntamente com o acesso ao
hardware real através do gerenciador de máquina virtual
(Hipervisor)
Tipos de Máquina Virtual de Sistema:
-> Virtualização Completa:
Gerenciador da máquina virtual acima do host.
Operações dos guests acessam recursos de
hardware através dos drivers do host
-> Virtualização Clássica (paravirtualização):
Gerenciador da máquina virtual diretamente
sobre o hardware. Hipervisor intercepta e emula
as operações dos guests que tentam acessar
recursos de hardware
Virtualização Clássica ou
Paravirtualização
Virtualização Completa
Gerenciador de Máquina Virtual (Hipervisor)
– Ambiente de execução quase idêntico à máquina
original (qualquer processo deve ser executado
como se estivesse na máquina real)
– Total controle sobre os recursos da máquina real
– Instruções das VMs executadas pelo processador
real, cabendo a ele gerar as instruções que
requerem execução em modo privilegiado
Virtualização do Processador
• Desprivilegiamento:
• Virtualização via hardware através das
tecnologias Intel VT-x e AMD-v
Virtualização da Memória
• Shadow Page Table: Hipervisor mantém uma
cópia do endereçamento da memória da VM.
Virtualização de E/S
• Virtualização Hospedada: Hipervisor é uma
aplicação do host, utilizando os mesmos
drivers dele para ter acesso aos dispositivos
de E/S
• Virtualização Clássica: “Safe Hardware
Interface” permite que os drivers do host
sejam compartilhados por guests isolados,
protegendo cada um e o sistema completo de
falha nos drivers
Softwares de Virtualização
•
•
•
•
•
•
•
•
Bochs
QEMU
KVM
Virtual PC
Virtual Server
VirtualBox
VMware
FreeBSD Jails
•
•
•
•
•
•
•
•
•
XEN
Valgrind
MOL
DOSEMU
DosBox
Parallels
HyperV
Linux LXC
OpenVZ
Boas Práticas na Virtualização
• Separe uma quantidade suficiente de memória
RAM para cada VM sendo executada
• Verifique os objetivos do ambiente a ser
virtualizado: caso a intenção seja utilizar algo
específico que necessite de uma forte interação
com os drivers (como aplicativos de edição de
imagens), considere não utilizar virtualização
• Intere-se das normas referentes às licenças dos
sistemas/aplicativos a serem virtualizados
Virtualização
Virtualização
Virtualização
Virtualização
Virtualização
Download

Virtualização - parte 1 v2