Upload
others
View
20
Download
0
Embed Size (px)
Citation preview
Virtualização
Eduardo Ferreira dos Santos
Ciência da Computação
Centro Universitário de Brasília � UniCEUB
Novembro, 2017
1 / 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;Con�guraçõ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 maiscomuns;
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 1
1http://arquivo.devmedia.com.br/artigos/Thiago_Handren/image2.png6 / 43
Introdução
Ontem
Mainframe7 / 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çõesAlto grau de con�abilidade nos dados inseridosMainframes x SupercomputadoresDifícil expansão da capacidade
Computação distribuída Computadores comuns agrupados em Cluster
�Elasticidade� da capacidade de processamentoDimensionamento como uma função da necessidade decargaFacilidade de expansão
9 / 43
Introdução
De�nição
Ideia de VMM (Virtual Machine Monitor), também conhecida comohypervisor, cria a ilusão de múltiplas máquinas virtuais no mesmohardware:
Hypervisor do tipo 1: rodam diretamente no hardware;Hypervisor to tipo 2: utilizam abstrações do SO.
De�nição:
Modo de apresentação ou agrupamento de um subconjunto lógicode recursos computacionais de modo que possam ser alcançadosresultados e benefícios como se o sistema estivesse executandosobre a con�guração nativa. [MPOG, 2006, p. 341]
10 / 43
Introdução
Computação em nuvem
Figura 1.2: Plataformas de computação em nuvem11 / 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 VirtualizableThird Generation Architectures. Cria as fundações davirtualização;
1999 Solução de VMWare para virtualização em x86.
12 / 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 e�ciência, os hypervisorsdevem atender três requisitos [Tanenbaum and Machado Filho, 1995]:
Segurança O hypervisor deve ter total controle dos recursosvirtualizados;
Fidelidade O comportamento do programa em um ambiente virtual deveser idêntico ao mesmo programa rodando em um ambientereal;
E�ciência A maior parte do código na máquina virtual deve rodar semnenhuma 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 demú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) Comvirtualização [Galvin et al., 2013]
16 / 43
Conceitos
De�nições [Lauer, 2007]
Hospedeiro Sistema operacional hospedeiro
O sistema operacional que está rodando no hospedeiro;Junto com a camada de virtualização, simula o ambientehospedeiro.
Guest Sistema operacional guest
O sistema operacional que está rodando no ambientesimulado;Em resumo, o comportamento que estamos tentandoisolar.
17 / 43
Conceitos
Instruções
A melhor maneira de abstrair o comportamento de uma máquinavirtual é imaginar um interpretador: cada instrução é executada demaneira 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áquinasvirtuais;Segredo: fazer o SO hospedeiro �pensar� que as interrupções foramdesabilitadas, ou a tabela de páginas foi alterada.
Algumas instruções sem comportam diferente quando executadas emmodo 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 modousuário.
Resumo: se uma instrução for executada em modo usuárioindevidamente 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çãoprivilegiada, 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 modousuário eram simplesmente ignoradas;
Em alguns casos, o programa pode determinar se está rodando emmodo usuário lendo os segmentos de código. Nesse caso, o sistemaoperacional pode tomar uma decisão e, por exemplo, encerrar oprograma;
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 TechnologyAMD SVM � Secure Virtual Machine
Ideia: criar uma espécie de containers onde as máquinas virtuaisseriam executadas;
Estratégia trap-and-emulate, conhecida como virtualização nativa.
21 / 43
Tipos de virtualização
Virtualização nativa
Na arquitetura 386, instruções que não deveriam rodar em modousuário eram simplesmente ignoradas;
Em alguns casos, o programa pode determinar se está rodando emmodo usuário lendo os segmentos de código. Nesse caso, o sistemaoperacional pode tomar uma decisão e, por exemplo, encerrar oprograma;
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 TechnologyAMD SVM � Secure Virtual Machine
Ideia: criar uma espécie de containers onde as máquinas virtuaisseriam 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ãoexistia suporte a virtualização?
Os hypervisors antes de 2005 não rodavam realmente o sistemaoperacional guest [Tanenbaum and Boss, 2012]:
Reescreviam parte das instruções para resolver o problema dos traps
em modo usuário;Veri�caçã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 modokernel e redireciona para os traps adequados;
Técnica conhecida como emulação.
23 / 43
Tipos de virtualização
Emulação
Como é possível o VMWare hypervisor ser lançado em 199 se nãoexistia suporte a virtualização?
Os hypervisors antes de 2005 não rodavam realmente o sistemaoperacional guest [Tanenbaum and Boss, 2012]:
Reescreviam parte das instruções para resolver o problema dos traps
em modo usuário;Veri�caçã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 modokernel 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 secomportar exatamente como hardware do hospedeiro;
Apresenta uma interface de software que explicita o fato de ser umambiente virtual;
Conceito de hypercalls: o guest pode enviar solicitações especí�caspara o hypervisor;
Mecanismo parecido com SYSCALL;
Pode ser signi�cativamente mais simples e rápido;
Em relação à emulação (virtualização total) o guest deve implementara 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 noguest;
Algumas vezes é su�ciente permitir que um processo rode em umaarquitetura 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 classi�cados em dois tipos[Tanenbaum and Boss, 2012]:
Tipo 1 Funciona como um sistema operacional: um únicoprograma rodando com privilégios máximos.
Tipo 2 Programa que depende de um sistema operacionalhospedeiro e, para todos os efeitos, funciona como umprograma normal.
Em ambos os casos as instruções de hardware devem ser organizadasde 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
Classi�cação
Método de virtualização Hypervisor tipo 1 Hypervisor tipo 2
Emulação (sem suporte emHW)
ESX Server 1.0, QEMUsem aceleração
VMWare Workstation
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 funcionamdiretamente no hardware, os de tipo 2 dependem do sistema operacionalhospedeiro [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
De�nição:
Implementação de compartilhamento de recursoscomputacionais, utilizando dois ou mais dispositivos decomputação [MPOG, 2006, p. XXXI]
Organizados em:
Cluster de Processamento de alto Desempenho (HPC)Cluster de Balanceamento de Carga e Alta DisponibilidadeCluster de Banco de DadosCluster de Armazenamento
32 / 43
Casos de uso
Grid
De�nição:
Rede de execução de aplicações paralelas em recursosgeogra�camente dispersos e pertencentes a múltiplasorganizaçõ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 1.000.000 de requisiçõespor 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 deregistros;
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
Mainframe35 / 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çõesAlto grau de con�abilidade nos dados inseridosMainframes x SupercomputadoresDifícil expansão da capacidade
Computação distribuída Computadores comuns agrupados em Cluster
�Elasticidade� da capacidade de processamentoDimensionamento como uma função da necessidade decargaFacilidade 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 degrande 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 deprocessamento 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 novasoperações [Lauer, 2007]:
Snapshot Cópia de uma máquina virtual
Identi�ca todas as páginas no disco.Utiliza operação de cópia em escrita para mudançassubsequentes;Para reverter, joga fora todos os dados copiados nomomento 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 modi�cadas (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: http://web.cs.wpi.edu/~cs502/f07/ Acessado em20/11/2017.
MPOG (2006).Guia de Estruturação e Administração do Ambiente de Cluster e Grid.SLTI.http://www.governoeletronico.gov.br/anexos/guia-de-cluster Acessadoem 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