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