Arts & Architecture

Virtualização. Eduardo Ferreira dos Santos. Novembro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 43

Description
Virtualização Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Novembro, / 43 Sumário 1 Introdução 2 Conceitos 3 Tipos de virtualização 4 Casos de uso 2
Published
of 43
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Related Documents
Share
Transcript
Virtualização Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Novembro, / 43 Sumário 1 Introdução 2 Conceitos 3 Tipos de virtualização 4 Casos de uso 2 / 43 Introdução 1 Introdução 2 Conceitos 3 Tipos de virtualização 4 Casos de uso 3 / 43 Introdução O problema [Lauer, 2007] A TI das organizações suporta múltiplas organizações: Correio; Banco de dados; ERP;... Cada aplicação tem sua própria necessidade de ambiente: Versão especíca do sistema operacional; Múltiplos processadores e discos; Congurações especiais. 4 / 43 Introdução Solução Desacoplar o par (serviços, SO) do hardware; Dividir os serviços menos utilizados em componentes de hardware mais comuns; Migrar os serviços entre os hospedeiros quando necessário; Adicionar novas instâncias se necessário: Replicação; Balanceamento de carga; Isolamento e testes. 5 / 43 Introdução Cenário Cada tarefa pode requerer um Sistema Operacional diferente Figura 1.1: A virtualização como sandboxing / 43 Introdução Ontem Mainframe 7 / 43 Introdução Hoje Google Server Farm 8 / 43 Introdução Dois paradigmas computacionais Grande Porte Computadores com alto poder de processamento: Mainframes Processamento de grande volume de informações Alto grau de conabilidade nos dados inseridos Mainframes x Supercomputadores Difícil expansão da capacidade Computação distribuída Computadores comuns agrupados em Cluster Elasticidade da capacidade de processamento Dimensionamento como uma função da necessidade de carga Facilidade de expansão 9 / 43 Introdução Denição Ideia de VMM (Virtual Machine Monitor), também conhecida como hypervisor, cria a ilusão de múltiplas máquinas virtuais no mesmo hardware: Hypervisor do tipo 1: rodam diretamente no hardware; Hypervisor to tipo 2: utilizam abstrações do SO. Denição: Modo de apresentação ou agrupamento de um subconjunto lógico de recursos computacionais de modo que possam ser alcançados resultados e benefícios como se o sistema estivesse executando sobre a conguração nativa. [MPOG, 2006, p. 341] 10 / 43 Introdução Computação em nuvem Figura 1.2: Plataformas de computação em nuvem 11 / 43 Introdução Histórico Virtualização via hardware: 1960s SIMMON e CP-40, implementando mais tarde CPCMS; 1972 System370 e VM370 (IBM); 1990 System390 (IBM) 2000 z-series IBM: suporte a endereçamento em 64-bit Virtualização via software: 1974 Paper da UCLA: Formal Requirements for Virtualizable Third Generation Architectures. Cria as fundações da virtualização; 1999 Solução de VMWare para virtualização em x / 43 Conceitos 1 Introdução 2 Conceitos 3 Tipos de virtualização 4 Casos de uso 13 / 43 Conceitos Requisitos para virtualização Para conseguir atingir a virtualização com eciência, os hypervisors devem atender três requisitos [Tanenbaum and Machado Filho, 1995]: Segurança O hypervisor deve ter total controle dos recursos virtualizados; Fidelidade O comportamento do programa em um ambiente virtual deve ser idêntico ao mesmo programa rodando em um ambiente real; Eciência A maior parte do código na máquina virtual deve rodar sem nenhuma interferência do hypervisor. 14 / 43 Conceitos Máquina virtual Uma máquina virtual fornece interface idêntica ao hardware: Mesmos dispositivos, memória, interrupções, tabelas de página, etc; A máquina virtual em um Sistema Operacional também cria ilusão de múltiplos processadores [Lauer, 2007]: Cada um é capaz de executar de maneira independente; Não há compartilhamento, exceto através de protocolos de rede; Alguns dispositivos de hardware podem ser simulados. 15 / 43 Conceitos Abstração Figura 2.1: Interfaces de programação: (a) Sem virtualização (b) Com virtualização [Galvin et al., 2013] 16 / 43 Conceitos Denições [Lauer, 2007] Hospedeiro Sistema operacional hospedeiro O sistema operacional que está rodando no hospedeiro; Junto com a camada de virtualização, simula o ambiente hospedeiro. Guest Sistema operacional guest O sistema operacional que está rodando no ambiente simulado; Em resumo, o comportamento que estamos tentando isolar. 17 / 43 Conceitos Instruções A melhor maneira de abstrair o comportamento de uma máquina virtual é imaginar um interpretador: cada instrução é executada de maneira isolada, com todos os recursos necessários para completá-la; O sistema guest não pode desabilitar as interrupções para todo o SO; Também não pode alterar a tabela de páginas de todas as máquinas virtuais; Segredo: fazer o SO hospedeiro pensar que as interrupções foram desabilitadas, ou a tabela de páginas foi alterada. Algumas instruções sem comportam diferente quando executadas em modo kernel ou modo de usuário [Tanenbaum and Boss, 2012]: Instruções de E/S, mapeamento de memória na MMU, etc. Essas instruções são chamadas de instruções sensíveis ; As instruções privilegiadas causam um trap se executadas em modo usuário. Resumo: se uma instrução for executada em modo usuário indevidamente o sistema deve disparar um trap. 18 / 43 Conceitos Trap de instruções Figura 2.2: Quando o sistema operacional em uma VM executa uma instrução privilegiada, a tecnologia de virtualização executa um trap para o hypervisor [Tanenbaum and Boss, 2012] 19 / 43 Tipos de virtualização 1 Introdução 2 Conceitos 3 Tipos de virtualização 4 Casos de uso 20 / 43 Tipos de virtualização Virtualização nativa Na arquitetura 386, instruções que não deveriam rodar em modo usuário eram simplesmente ignoradas; Em alguns casos, o programa pode determinar se está rodando em modo usuário lendo os segmentos de código. Nesse caso, o sistema operacional pode tomar uma decisão e, por exemplo, encerrar o programa; Assim, na arquitetura x86, a virtualização não era possível. 21 / 43 Tipos de virtualização Virtualização nativa Na arquitetura 386, instruções que não deveriam rodar em modo usuário eram simplesmente ignoradas; Em alguns casos, o programa pode determinar se está rodando em modo usuário lendo os segmentos de código. Nesse caso, o sistema operacional pode tomar uma decisão e, por exemplo, encerrar o programa; Assim, na arquitetura x86, a virtualização não era possível. Em 2005 Intel e AMD introduzem virtualização em CPU: Intel VT Virtualization Technology AMD SVM Secure Virtual Machine Ideia: criar uma espécie de containers onde as máquinas virtuais seriam executadas; Estratégia trap-and-emulate, conhecida como virtualização nativa. 22 / 43 Tipos de virtualização Emulação Como é possível o VMWare hypervisor ser lançado em 199 se não existia suporte a virtualização? 23 / 43 Tipos de virtualização Emulação Como é possível o VMWare hypervisor ser lançado em 199 se não existia suporte a virtualização? Os hypervisors antes de 2005 não rodavam realmente o sistema operacional guest [Tanenbaum and Boss, 2012]: Reescreviam parte das instruções para resolver o problema dos traps em modo usuário; Vericação de segurança em tempo de execução; Garantia de isolamento entre as diferentes máquinas virtuais. Tipicamente o VMM tem um módulo próprio que executa em modo kernel e redireciona para os traps adequados; Técnica conhecida como emulação. 24 / 43 Tipos de virtualização Paravirtualização Na paravirtualização a máquina virtual não tem o objetivo de se comportar exatamente como hardware do hospedeiro; Apresenta uma interface de software que explicita o fato de ser um ambiente virtual; Conceito de hypercalls: o guest pode enviar solicitações especícas para o hypervisor; Mecanismo parecido com SYSCALL; Pode ser signicativamente mais simples e rápido; Em relação à emulação (virtualização total) o guest deve implementar a API da máquina virtual. 25 / 43 Tipos de virtualização Paravirtualização (gráco) Figura 3.1: Virtualização e paravirtualização [Tanenbaum and Boss, 2012] 26 / 43 Tipos de virtualização Em nível de processo Nem todas as tecnologias de virtualização tentam simular o SO no guest; Algumas vezes é suciente permitir que um processo rode em uma arquitetura diferente do sistema hospedeiro; Utilização de virtualização em nível de processo; Ex.: Wine, QEMU 27 / 43 Tipos de virtualização Tipos de hypervisor As tecnologias de hypervisor podem ser classicados em dois tipos [Tanenbaum and Boss, 2012]: Tipo 1 Funciona como um sistema operacional: um único programa rodando com privilégios máximos. Tipo 2 Programa que depende de um sistema operacional hospedeiro e, para todos os efeitos, funciona como um programa normal. Em ambos os casos as instruções de hardware devem ser organizadas de maneira segura. 28 / 43 Tipos de virtualização Tipos de hypervisor (gráco) Figura 3.2: Hypervisors de tipo 1 e tipo 2 [Tanenbaum and Boss, 2012] 29 / 43 Tipos de virtualização Classicação Método de virtualização Hypervisor tipo 1 Hypervisor tipo 2 Emulação (sem suporte em ESX Server 1.0, QEMU VMWare Workstation HW) sem aceleração Paravirtualização Xen 1.0 Nativa (com suporte em HW) xshpere, Xen, Hyper-V VMWare Fusion, KVM, Parallels Virtualização de processos Wine Tabela 3.1: Exemplos de hypervisor. Enquanto os hypervisors de tipo 1 funcionam diretamente no hardware, os de tipo 2 dependem do sistema operacional hospedeiro [Tanenbaum and Boss, 2012] 30 / 43 Casos de uso 1 Introdução 2 Conceitos 3 Tipos de virtualização 4 Casos de uso 31 / 43 Casos de uso Cluster Denição: Organizados em: Implementação de compartilhamento de recursos computacionais, utilizando dois ou mais dispositivos de computação [MPOG, 2006, p. XXXI] Cluster de Processamento de alto Desempenho (HPC) Cluster de Balanceamento de Carga e Alta Disponibilidade Cluster de Banco de Dados Cluster de Armazenamento 32 / 43 Casos de uso Grid Denição: Rede de execução de aplicações paralelas em recursos geogracamente dispersos e pertencentes a múltiplas organizações [MPOG, 2006, p. XXXII] Aplicação: serviços sob demanda Prover sob demanda qualquer serviço computacional 33 / 43 Casos de uso Demandas Computacionais O momento mudou: agora precisamos responder de requisições por segundo! Alta disponibilidade; Suporte a milhões de usuários simultâneos; Alta capacidade de processamento; Capacidade de trabalhar com bancos de dados da ordem de milhões de registros; Tolerância a falhas de hardware e software; Facilidade de integração e interoperabilidade; Armazenamento massivo da ordem de terabytes de dados. 34 / 43 Casos de uso Ontem Mainframe 35 / 43 Casos de uso Hoje Google Server Farm 36 / 43 Casos de uso Dois paradigmas computacionais Grande Porte Computadores com alto poder de processamento: Mainframes Processamento de grande volume de informações Alto grau de conabilidade nos dados inseridos Mainframes x Supercomputadores Difícil expansão da capacidade Computação distribuída Computadores comuns agrupados em Cluster Elasticidade da capacidade de processamento Dimensionamento como uma função da necessidade de carga Facilidade de expansão 37 / 43 Casos de uso Custo x Capacidade - Grande porte Figura 4.1: Evolução da carga de processamento e a utilização da computação de grande porte. [MPOG, 2006, p. 29] 38 / 43 Casos de uso Custo x Capacidade - Cluster Figura 4.2: Evolução da carga de processamento e a utilização da solução de processamento distribuído. [MPOG, 2006, p. 31] 39 / 43 Casos de uso Algumas operações A utilização de Máquina Virtual VM traz um conjunto de novas operações [Lauer, 2007]: Snapshot Cópia de uma máquina virtual Identica todas as páginas no disco. Utiliza operação de cópia em escrita para mudanças subsequentes; Para reverter, joga fora todos os dados copiados no momento da escrita. Migration Move uma máquina virtual entre hosts Tira um snapshot (rápido); Copia todas as páginas do snapshot (não tão rápido); Copia todas as páginas modicadas (rápido); Congela a máquina virtual e copia a memória. 40 / 43 Casos de uso OBRIGADO!!! PERGUNTAS??? 41 / 43 Casos de uso Galvin, P. B., Gagne, G., and Silberschatz, A. (2013). Operating system concepts. John Wiley & Sons, Inc., 9th edition. Lauer, H. C. (2007). CS 502 Operating Systems. Disponível em: Acessado em 20/11/2017. MPOG (2006). Guia de Estruturação e Administração do Ambiente de Cluster e Grid. SLTI. Acessado em 13/06/2013. Tanenbaum, A. S. and Boss, H. (2012). Modern Operating Systems. Prentice-Hall, 4th edition. Tanenbaum, A. S. and Machado Filho, N. (1995). 42 / 43 Casos de uso Sistemas operacionais modernos. Prentice-Hall, 3 edition. 43 / 43
Search
Similar documents
View more...
Related Search
We Need Your Support
Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks