Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de...

43

Transcript of Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de...

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