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 Custo do processo de virtualização Diversidade de equipamentos 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 Apl Apl Apl Aplicações UML UML Aplicações Linux Hardware x86 Figura da Máquina Virtual User-Mode Linux
Características do UML Usuários e processos distintos do sistema real Cada usuário pode ser root Dispositivos virtualizados 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) Kernel convidado Thread de rastreament o Int 0x80 Notifica o kernel pai Continua a execução após a chamada de sistema Executa a chamada de sistema. Envia um sinal ao final da execuçã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 Guest Plataforma do Plataforma do Desempenh Nome Host Processor Processor SO anfitrião SO convidado Técnica Licença Utilização o Intel x86, AMD64, Intel x86, IA-64, PowerPC, AMD64, ARM, Alpha, SPARC 32 SPARC 32 and Linux,Windows, Acadêmico, and 64, ARM, 64, PowerPC, MAC OS, Troca Recompilação Desenvolvimen QEMU S/390, M68k MIPS FreeBSD, BeOS regularmente dinâmica GPL/LGPL to,produção 10-20% CPU User Mode Linux Virtualização total utilizando rastreamento Intel x86 Intel x86 Linux Linux de chamadas GPL2 Nativa (mais lenta quando todas as Acadêmico, chamadas Desenvolvimen são to,produção raastreadas) Virtualização Windows,DOS, total e Acadêmico, Vmware ESX Intel x86, Linux, Unix BSD, recompilação Desenvolvimen Quase 3.0 Intel x86, AMD64 AMD64 Linux, Windows Netware, Solaris dinâmica Proprietário to,produção Nativa Linux, Unix BSD, Windows XP Acadêmico, Intel x86, (todos com Paravirtualiza Desenvolvimen Xen Intel x86, AMD64 AMD64 NetBSD, Linux modificações) ção GPL to,produção 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