Computação na Nuvem: Virtualização e Migração de VM. André Meireles Estêvão Monteiro Monique Soares - PDF
Download "Computação na Nuvem: Virtualização e Migração de VM. André Meireles Estêvão Monteiro Monique Soares"
Sebastião Campelo Rosa
1 Computação na Nuvem: Virtualização e Migração de VM André Meireles Estêvão Monteiro Monique Soares
2 Agenda Overview Histórico Abordagens Desafios em x86 Snapshots
3 Virtualização de Hardware/Plataforma/Sevidor: Máquina virtual Imagem do hardware com seu próprio SO Host X Guest Múltiplas MVs sobre uma máquina física Multiplexação de recursos físicos Qualquer combinação de SOs
5 Vantagens: Segurança; Separação limpa das tarefas; Alocação de usuários; Cobrança aos usuários; Otimização do aproveitamento dos recursos físicos*; Consolidação de servidores; Abstração da localização física: migração; Recuperação de desastres. *Bem feito, compensa o overhead!
6 Casos de uso Uma VM por serviço, que pode ser facilmente migrada entre servidores Cloud computing: IaaS, PaaS, SaaS... Aplicações distribuídas que criam e destroem VMs Jogos online multi-jogador, aplicações multimídia distribuídas. Múltiplos SOs diferentes num mesmo desktop Ensino e desenvolvimento de software.
7 Casos de uso Uma VM por serviço, que pode ser facilmente migrada entre servidores Cloud computing: IaaS, PaaS, SaaS... Aplicações distribuídas que criam e destroem VMs Jogos online multi-jogador, aplicações multimídia distribuídas. Múltiplos SOs diferentes num mesmo desktop Ensino e desenvolvimento de software.
8 Casos de uso Uma VM por serviço, que pode ser facilmente migrada entre servidores Cloud computing: IaaS, PaaS, SaaS... Aplicações distribuídas que criam e destroem VMs Jogos online multi-jogador, aplicações multimídia distribuídas. Múltiplos SOs diferentes num mesmo desktop Ensino e desenvolvimento de software.
9 Casos de uso Uma VM por serviço, que pode ser facilmente migrada entre servidores Cloud computing: IaaS, PaaS, SaaS... Aplicações distribuídas que criam e destroem VMs Jogos online multi-jogador, aplicações multimídia distribuídas. Múltiplos SOs diferentes num mesmo desktop Ensino e desenvolvimento de software.
10 Requisitos essenciais para um VMM [Popek & Goldberg 1974] Fidelidade Desempenho Segurança
11 Precursor: IBM M44/44X (1964) O objetivo do projeto M44/44X era avaliar os conceitos de sistema de compartilhamento de tempo, então emergente; A arquitetura foi baseada em máquinas virtuais Principal máquina foi uma IBM 7044 (M44) e cada máquina virtual foi uma imagem experimental da máquina principal (44X).
12 Connectix Virtual PC 1997 Emulação de SO! Host: Mac OS 8.5+ com CPU G3 Guests: Windows 95, OS/2, Red Hat Linux Comprado pela Microsoft em 2003 Apenas em 2007 implementou virtualização de hardware
13 VMware (publicado em 1999) Pioneiro na virtualização de sistemas x86-32/ia-32/i386 Tradução binária Execução direta SOs virtualizados rodam plenamente isolados
15 Hosted x Native Hosted Hypervisor é uma aplicação sobre um SO Conveniente para usuários Native (bare-metal) Hypervisor roda diretamente sobre o hardware Ideal para servidores e centros de dados
17 Paravirtualização Usa interface modificada para melhor desempenho Denali (2001) Xen (2003) VMWare ( )
18 Virtualização Total Monitor de VMs / Hipervisor Desempenho era deficiente em arquiteturas x86, entre outras Deficiência mitigada por Intel VT-x (2005) e AMD-V (2006)
19 Virtualização Total Microsoft Virtual PC (1997/2006/2009) VMWare (1999) Microsoft Hyper-V (2003/2008) Xen (2003) também! Parallels (2005) Linux KVM (2007) Virtualbox (2007)
20 Host costuma impor certas restrições de acesso aos recursos físicos Oculta periféricos específicos; Limita capacidades de dispositivos.
21 Comparação com Microkernel MK emula SO sobre seus módulos; VMs fazem acesso direto a hardware; Na VM, aplicações não precisam ser re-compiladas.
22 Desafios da virtualização de hardware x86 SO precisa executar instruções no anel 0 Aplicações rodam no anel 3 Semântica de instruções fora do anel 0 pode ser diferente
24 Kernel mode vs. User mode Kernel mode - instruções sensíveis: Entrada e saída; Configuram MMU. Instruções privilegiadas provocam "trap" quando em modo usuário.
25 Virtualização requer que instruções sensíveis sejam instruções privilegiadas (provoquem trap) [Popek & Golberg 1974]. Em x86: Instruções sensíveis em modo usuário são ignoradas; O programa pode detectar o modo em que está sendo executado: SO pode tomar decisões indevidas quando souber que está em modo usuário.
26 Intel VT-x (2005) e AMD-V (2006) permitem rodar máquinas virtuais em containers capazes de provocar traps, permitindo emulação das instruções privilegiadas 9 novas instruções Geram traps demais, que arruinam cache de CPU, TLB* e tabelas de predição de ramificações. * Tradutor entre endereçamento de memória lógico e físico.
27 Tradução binária Ao executar código, o hipervisor: 1) identifica os blocos básicos*; 2) substitui instruções sensíveis por hiperchamadas**; 3) substitui também a última instrução (a de fluxo de controle); 4) grava a instrução modificada (emulada) em cache; 5) executa a instrução modificada; 6) repete até concluir o programa. * Sequências de instruções que terminam em jump, call, trap etc. (fluxo de controle). ** Se não houver, executa nativamente. Se já estiver em cache, executa a partir dela. É feita apenas para o sistema operacional: programas de usuário são ignorados.
29 Paravirtualização SO guest é modificado para fazer hypercalls Hypercall: chamada ao hypervisor pelo kernel guest Hypervisor provê interfaces para hypercalls Gerenciamento de memória Tratamento de interrupções Relógio
30 Paravirtualização Reduz overhead Mais simples de implementar do que tradução binária Baixa compatibilidade e portabilidade Exemplo: Xen (2003)
32 Paravirtualização Hipervisor funciona como microkernel; Uma API de paravirtualização padrão universal a tornaria transparente; Virtual Machine Interface - VMI [Amsden et al. 2006, VMware]; Virtual Machine Disk Format VMDK; Open Virtualization Format - OVF: distribuição de pacotes de VMs; Paravirt-ops: componente do kernel Linux, suporta VMI, Lguest e Xen.
34 Otimização de virtualização total: São comuns adendos mínimos ao SO, não-intrusivos, que não afetam o kernel; Adendos usam APIs do SO para implementar backdoors ao hypervisor; São chamados serviços e drivers "paravirtualizados"; Partilham estruturas de dados comuns com o hypervisor; Melhor vazão de processamento (throughput); Menor carga à CPU; Ex.: VMware Tools.
35 Serviços "paravirtualizados": Comunicação de mensagens entre hóspede e hospedeiro; Sincronização do relógio Ajuste imediato da resolução do hóspede de acordo com o tamanho da janela; Cursor transparente entre hóspede e hospedeiro (captura desnecessária); Copiar e colar texto e arquivos entre hóspede e hospedeiro; Scripts para automatizar o hóspede.
36 Drivers "paravirtualizados": SVGA em vez de VGA: 32 bits, resoluções altas, aceleração de vídeo (Windows Aero, jogos, DXVA etc.); SCSI; VMXNet NIC; Mouse; Áudio; Compartilhamento de pastas; Drag'n'drop; ThinPrint.
37 Virtualização assistida por hardware Intel VT-x (2005) e AMD-V (2006) Root mode: VMM roda abaixo do anel 0 Trap-and-emulate Virtual Machine Control Structures/Blocks: estado da VM Primeira geração perde para tradução binária [Adams & Agesen 2006] Desempenho pode ser melhorado com drivers paravirtualizados
39 Hardware Assist - 1ª Geração Modelo de programação rígida; Grande overhead nas transições de hypervisor para guest. Hardware Assist - 2ª Geração Redução do overhead nas operações de memória. Hardware Assist - 3ª Geração:?
40 Snapshots Aproveita discos virtuais com camada de tradução; Captura o estado do disco virtual; Pode capturar o estado de memória da VM; Idealmente acumulativo (versões diferenciais); Permite migração/teleportação e failover; Snapshots periódicos promovem rapidez nessas operações; Mesclagens periódicas otimizam a manutenção.
41 Referências G. Coulouris, J. Dollimore and T. Kinberg, Distributed Systems: Concepts and Design, Edition 3, Addison- Wesley POPEK, G. J., AND GOLDBERG, R. P. Formal requirements for virtualizable third generation architectures. zation.pdf
Analisando a utilização da virtualização em laboratório de ensino. Alessandro Rodrigo Franco
UNIOESTE Universidade Estadual do Oeste do Paraná CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS Colegiado de Ciência da Computação Curso de Bacharelado em Ciência da Computação Analisando a utilização da virtualização