Máquinas Virtuais Agenda Histórico Máquinas virtuais X Emuladores Vantagens & Desvantagens Vmware Quemu Xen UML Comparação entre VM's Conclusão Histórico Mainframe “É um computador de grande porte, dedicado normalmente ao processamento de um volume grande de informações” Surgiram em 1946 “Foram sempre sendo aperfeiçoados” Ainda são utilizados Histórico Desktops “São os computadores de mesa, estes que tem tudo separado (mouse, teclado, CPU ou gabinete, monitor, impressora...) e são os de menor custo” Surgiram entre 1970 e 1980 “Originalmente conhecido como microcomputadores” Custo menor Máquinas Virtuais Máquinas Virtuais 1º Definição: “Software que cria um ambiente entre a plataforma e o utilizador final” 2º Definição: “Uma cópia isolada de um sistema físico” É um computador fictício criado por um programa de simulação “Sua memória, processador e outros recursos são virtualizados” 2 tipos: guest system(tipo1), host system(tipo2) Emuladores Emuladores “É um software criado para essencialmente transcrever instruções de um processador alvo para o processador no qual ele está rodando” Também é responsável pela simulação dos circuitos integrados ou chips do sistema de hardware em um software. Popularização com a internet e os emuladores de video games Vantagens Consolidação de servidores Gerência Aproveitamento de hardware, espaço e energia Testes Simulação de alterações e falhas (kernel, etc..) Ensino Cada aluno pode ter várias Vms Isolamento Migração de aplicações legadas Desvantagens Desempenho Diversidade de equipamentos Custo do processo de virtualização Esforço de programação para garantir compatibilidade Consolidação Diversos SO´s utilizando um mesmo hardware VMware VMware VMware é um produto desenvolvido pela empresa VMware Inc. O que é? É um software que visa criar ambientes para instalação de sistemas distintos, permitindo a utilização de um sistema operacional sobre outro com suporte real a software de outro sistema. VMware VMware WorkStation VMware GSX Server VMware ESX Server VMware Infrastructure Hosted Architecture Roda sobre o sistema operacional Suporta uma escala ampla para configuração de hardware. Hypervisor Architecture Acesso direto aos recurso de hardware Permiti melhor escalabilidade e performace VMware VMware Workstation Lançado em 1999 Hosted Architecture Suporte a aceleração gráfica (DirectX) Mal gerênciamento de multiplos usuários VMware VMware GSX Server Lançado em 2001 Hosted Architecture Uso baseado em servidor Acesso remoto via console de administração das VM's Permiti vários acesso simultãneos a uma mesma maquina virtual VMware VMware ESX Server Mesma finalidade do GSX Server, porém é do tipo Hypervisor Architecture VMware VMware infrastructure Suíte completa de virtualização Serviços complementares de virtualização e gerenciamento VMware VMotion VM P2V Assistent agentes monitorando cada VM Única no mercado VMware Virtual Center QUEMU Definição Um emulador de processador que consegue boa velocidade na emulação dinâmica Operação Emulação completa do sistema Emulação da modalidade do usuário SO`s Suportados na arquitetura x86/x86_64: PE Fedora Core 1OK0.5.5 GNU/Linux Fedora Core 2OK0.6.0 Debian 3.0OK0.5.5 GNU/Linux Debian SID (new beta installer)OK0.5.5 Solaris 9 x86OK0.6.0 Solaris 10 x86OK0.6.0 Windows 2000OK0.5.5 Vantagens GNU General Public License Virtualiza todo o hardware Não requer alteração no kernel Suporta alta emulação Módulo do Acelerador de QEMU Aumentar a velocidade Aumento de desempenho próximo sistema nativo Termos do uso - Acelerador Não é permitido distribuir Proprietário Licença específica Xen Apresentação Xen “O objetivo do Xen é executar, em uma mesma máquina, instâncias de Sistemas Operacionais (iguais ou diferentes) com todas as suas características, de forma completamente funcional, em VM (Virtual Machine)” Desenvolvido pela universidade de Cambridge Proporciona controle de recursos e garantia de serviços Motivação Compartilhamento de sistemas operacionais Alto desempenho Vários servidores virtuais em uma única máquina Portabilidade (Até 100 VM's) Segurança das operações (Isolamento e controle de recursos) Balanceamento de carga entre as máquinas virtuais Paravirtualização O monitor Xen utiliza a técnica de paravirtualização Na paravirtualização apenas alguns elementos são virtualizados Chega a utilizar o mesmo kernel para a máquina real e para a máquina virtual Atualmente, está preparado para operar sobre Linux e NetBSD. Alta performace Estrutura O Xen, é um monitor de máquinas virtuais. As máquinas serão construídas artesanalmente e o monitor irá mantê-las em execução. Máquina real: “Domínios” domínio0, domain0 ou xen0 Máquina virtual: guest, domínioU, domainU ou xenU. Hypervisor(micro kernel): Ligação entre o xen0 e as xenU. As máquinas virtuais não possuirão kernel Controle Núcleo de sistema operacional principal modificado Modificação mínima no núcleo kernel 2.4 menos de 3.000 linhas de código kernel 2.6 nenhum arquivo core do sistemas foi alterado controle efetivo: hypervisor(micro kernel) Suse, Slackware, Fedora, Debian completo suporte ao Xen Vantagens A utilização de um único kernel base e de um micro kernel (apenas dois elementos) para a máquina real e todas as virtuais ao mesmo tempo A rapidez e a leveza, por realizar pouca virtualização, ao aproveitar a maior parte dos recursos existentes na máquina real Estabilidade e a confiabilidade A segurança, em virtude de isolar totalmente as máquinas virtuais (só há comunicação por rede) O perfeito controle sobre o uso da memória e do processador por parte de cada máquina virtual Software livre Desvantagens Limitação a poucos sistemas operacionais; Instalação e configuração trabalhosa A obrigatoriedade de utilizar um kernel modificado e um micro kernel para estabelecer a máquina real e as máqunas virtuais. Xen User-Mode Linux O User-Mode Linux Monitor de máquinas virtuais (tipo II) Composta de um sistema anfitrião, um kernel uml e arquivo de filesystem Executa Linux sobre Linux Projeto Open Source Parte oficial do kernel 2.6 Características do UML Linux como um processo do Linux Apl Aplicações Apl Apl UML Apl UML Linux Hardware x86 Figura da Máquina Virtual User-Mode Linux Aplicações Características do UML Usuários e processos distintos do sistema real Dispositivos virtualizados Cada usuário pode ser root Disco virtual é um arquivo no sistema real Interfaces de rede, console, etc Controle da chamada de sistema Virtualização de Hardware com rastreamento de chamadas (ptrace) Características do UML User space (processo) Int 0x80 Notifica o kernel pai Continua a execução após a chamada de sistema Kernel convidado Executa a chamada de sistema. Envia um sinal ao final da execução. Thread de rastreament o Anula a chamada de sistema. Salava o estado do processo. Força o processo para retornar a pilha do kernel. Retorna o estado do processo. Seta um código de retorno para a chamada de sistema. Exemplo de virtualização da chamada de sistema no UML Comparação de VMs Nome QEMU User Mode Linux Host Processor Intel x86, AMD64, IA-64, PowerPC, Alpha, SPARC 32 and 64, ARM, S/390, M68k Guest Processor Intel x86, AMD64, ARM, SPARC 32 and 64, PowerPC, MIPS Intel x86 Intel x86 Vmware ESX 3.0 Intel x86, AMD64 Intel x86, AMD64 Xen Intel x86, AMD64 Intel x86, AMD64 Plataforma do Plataforma do SO anfitrião SO convidado Técnica Linux,Windows, MAC OS, FreeBSD, BeOS Licença Utilização Desempenh o Acadêmico, Troca Recompilação Desenvolvimen regularmente dinâmica GPL/LGPL to,Produção 10-20% CPU Nativa (mais lenta quando todas as Acadêmico, chamadas Desenvolvimen são to,Produção raastreadas) Virtualização total utilizando rastreamento Linux Linux de chamadas GPL2 Virtualização Windows,DOS, total e Acadêmico, Linux, Unix BSD, recompilação Desenvolvimen Linux, Windows Netware, Solaris dinâmica Proprietário to,Produção Linux, Unix BSD, Windows XP Acadêmico, (todos com Paravirtualiza Desenvolvimen NetBSD, Linux modificações) ção GPL to,Produção Quase Nativa Nativa Conclusão Muitos sistemas tem sido desenhados para utilizar virtualização a fim de subdividir os recursos dos computadores modernos. Alguns necessitam de hardware especializado, ou não suportam os sistemas operacionais mais comuns. Alguns garantem 100% de compatibilidade binária, tendo terríveis problemas de performance. Outros, sacrificam a segurança ou suas funcionalidades por velocidade. Poucos oferecem isolamentos de recursos ou garantias de performance. O ideal é monitor de máquinas virtuais que permite compartilhar sistemas operacionais comuns com o hardware convencional, sem sacrificar performance, funcionalidades e segurança Bibliografia Máquinas Virtuais e Emuladores. Laureano, Marcos. http://br.geocities.com/cesarakg/user-mode-linux.html http://www.ime.usp.br/~baroni/docs/uml.html http://user-mode-linux.sourceforge.net/ http://en.wikipedia.org/wiki/Comparison_of_virtual_machines http://en.wikipedia.org/wiki/Xen http://www.eriberto.pro.br/xen/ http://www.xensource.com/ http://en.wikipedia.org/wiki/VMware www.guiadohardware.net/termos/vmware