Virtualização com Marcos Paulo Serafim Outubro de 2007 Sobre Mim Graduação em Ciências da Computação UNIFRAN Especialização em Matemática Aplicada UNIFRAN Analista de Suporte na Cooperativa dos Agricultores da Região de Orlândia Interesses em Inteligência Artificial, Computação Quântica, Desenvolvimento de Jogos, Forense Computacional, etc. O que é virtualização Uma técnica para ocultar as características físicas de recursos computacionais encapsulando os detalhes técnicos, de forma que outros sistemas, aplicações, ou usuários finais interajam com estes recursos de maneira mais simples. Fonte:Wikipédia Virtualização de plataforma Técnica que permite a divisão de recursos através da criação de múltiplos ambientes computacionais simulados (máquinas virtuais) e isolados entre si em um único equipamento físico. Terminologia Máquina virtual (VM) ● Ambiente virtualizado onde um sistema operacional e seus aplicativos são executados. Host (Hospedeiro) ● Computador onde são executadas as máquinas virtuais. Guest (Convidado) ● Software que é executado dentro de uma máquina virtual. Hypervisor (Virtual Machine Monitor) ● Camada entre VMs e Host que controla as VMs. Tipos de virtualização Virtualização em aplicações ● (Java VM, .NET CLI, Flash Player, DOS em Win32) A aplicação utiliza os recursos do sistema operacional em um pequeno ambiente virtual que provê apenas o necessário para sua execução, eliminando a necessidade de conhecimento da arquitetura em que é executada. Tipos de virtualização Emulação / Simulação ● (QEMU, Virtual PC, emulares de videogames) A máquina virtual simula um hardware completo, permitindo que um sistema operacional (Guest) não modificado, seja executado em uma arquitetura totalmente diferente. Tipos de virtualização Virtualização completa ● (Xen, QEMU, Virtual PC, VMware, CP/CMS) A máquina virtual provê o ambiente necessário para que um sistema operacional (Guest) não modificado (e construído para a mesma arquitetura) possa ser executado. Tipos de virtualização Paravirtualização ● (Xen, VMware, KVM) A máquina virtual ao invés de simular o hardware, provê uma API que apenas pode ser utilizada por sistemas operacionais (Guests) “modificados” para esta finalidade, o que trás ganhos de performance similares ao dos sistemas nativos. Breve histórico 1959: Time Sharing in Large Fast Computers ● ➔ Christopher Strachey 1962: Atlas Computer Universidade de Manchester ● ➔ Primeiro Hypervisor 1963: M44/44X Project IBM ● ➔ Termo "Máquina Virtual" 1964: CP40 IBM ● ➔ Primeira implementação com virtualização completa 1972: CP/CMS IBM ● ➔ Memória virtual Breve histórico 19721990: Virtualização restrita a mainframes ● ➔ Diversos avanços na área A partir de 1990: Virtualização em arquitetura x86 ● ➔ Cresce interesse na virtualização em baixa plataforma 1999: VMware ● ➔ Primeiro produto para virtualização em x86 2005: Intel VT (Vanderpool) / AMDV (Pacifica) ● ➔ Virtualização assistida por hardware nos x86 Vantagens em se usar virtualização Melhor utilização dos recursos dos computadores ● Diminuição do espaço físico necessário para servidores ● Redução do custo de infraestrutura ● Menor gasto em energia ● Soluções de balanceamento de carga para aplicações ● Fácil manutenção de servidores ● Agilidade na criação de “site backup” e “disaster recovery” ● Modelo de segurança baseado em uma “caixadeareia” ● Facilidade no monitoramento de software maliciosos ● Xen Hypervisor para arquiteturas IA32, IA64, AMD64, e ● PowerPC. Se iniciou como parte do projeto Xenoservers na ● Universidade de Cambridge. Possui uma versão paga e uma software livre. ● Contribuidores do projeto incluem empresas como: ● Intel, IBM, HP, AMD, Novell, RedHat e Citrix/XenSource. Breve histórico do Xen 2003: Versão 1.0 ● Paravirtualização Linux (Windows XP apenas PoC) 2004: Versão 2.0 ● 2005: Versão 3.0 ● Criação da XenSource. Virtualização completa assistida por hardware. 2007: Versão 3.1 ● Xen é adicionado ao código do Linux. Citrix compra a XenSource. Arquitetura do Xen Recursos do Xen Suporte à varios dispositivos através do kernel do sistema operacional do hospedeiro (Linux / NetBSD) Recursos do Xen Vários sistemas operacionais suportados através de paravirtualização NetWare ● Minix ● Plan 9 ● GNU/Hurd/Mach ● OZONE ● Windows (apenas como prova de conceito) ● Recursos do Xen Suporte à virtualização completa assistida por hardware (Intel VT ou AMDV) NetWare ● Minix ● Plan 9 ● GNU/Hurd/Mach ● OZONE ● e muitos outros ... ● Recursos do Xen Capacidade de pausar, resumir, salvar e restaurar o estado de uma VM Recursos do Xen Migration e Live Migration Recursos do Xen Capacidade de dar para a VM acesso direto a ● um hardware Suporte a hotplug USB ● Suporte a som nas VMs ● Até 64 GBs de memória em máquinas 32 bits (PAE) ● API de programação com chamadas XMLRPC ● Esforço de colaboração para compatibilidade de ● formato de VM com Microsoft Virtual Server Ferramentas de gerenciamento xm – Ferramenta que recebe instruções via linha ● de comando. # xm create maquinavirtual # xm help Usage: xm <subcommand> [args] Control, list and manipulate Xen guest instances Ferramentas de gerenciamento Virtual Machine Manager – Ferramenta da Red Hat ● para gerenciamento gráfico das VMs. Ferramentas de gerenciamento ConVirt (antigo XenMan) ● Ferramentas de gerenciamento Enomalism – Ferramenta de gerenciamento Web ● Teste de Performance Nativo Linux 2.6.18 / Debian Etch / Apache 2.2.3 Apache Bench Time taken for tests: 50.917014 seconds Complete requests: 10000 Requests per second: 196.40 [#/sec](mean) Time per request: 5.092 [ms](mean) Transfer rate: 8206.51 [KB/sec] received Teste de Performance Paravirtualizado Linux 2.6.18 / Debian Etch / Apache 2.2.3 Apache Bench Time taken for tests: 53.614709 seconds Complete requests: 10000 Requests per second: 186.52 [#/sec](mean) Time per request: 5.361 [ms](mean) Transfer rate: 7793.59 [KB/sec] received Teste de Performance HVM Linux 2.6.18 / Debian Etch / Apache 2.2.3 Apache Bench Time taken for tests: 109.116567 seconds Complete requests: 10000 Requests per second: 91.65 [#/sec](mean) Time per request: 10.912 [ms](mean) Transfer rate: 3829.40 [KB/sec] received O que o futuro reserva para o Xen Virtualização mais focada em Desktop ● Desenvolvimento de drivers para máquinas não ● paravirtualizadas Suporte à OpenGL ● Integração com os produtos da Citrix ● Concorrência maior com o KVM ● Maiores informações Grupo de usuários XENBR: http://xenbr.org/ IBM: http://ibm.com/ kernelthread.com: http://www.kernelthread.com/ Red Hat: http://www.redhat.com/ SourceForge.net: http://sourceforge.net/ Wikipedia: http://wikipedia.org/ XenSource: http://www.xensource.com/ Handson Demonstração e Perguntas Obrigado Contato: Marcos Paulo Serafim [email protected] http://www.mps.eti.br/