Top Banner
43

Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de compartilhamento de recursos computacionais, utilizando dois ou mais dispositivos de computação

Dec 14, 2018

Download

Documents

DinhThuy
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de compartilhamento de recursos computacionais, utilizando dois ou mais dispositivos de computação

Virtualização

Eduardo Ferreira dos Santos

Ciência da Computação

Centro Universitário de Brasília � UniCEUB

Novembro, 2017

1 / 43

Page 2: Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de compartilhamento de recursos computacionais, utilizando dois ou mais dispositivos de computação

Sumário

1 Introdução

2 Conceitos

3 Tipos de virtualização

4 Casos de uso

2 / 43

Page 3: Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de compartilhamento de recursos computacionais, utilizando dois ou mais dispositivos de computação

Introdução

1 Introdução

2 Conceitos

3 Tipos de virtualização

4 Casos de uso

3 / 43

Page 4: Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de compartilhamento de recursos computacionais, utilizando dois ou mais dispositivos de computação

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

Page 5: Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de compartilhamento de recursos computacionais, utilizando dois ou mais dispositivos de computação

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

Page 6: Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de compartilhamento de recursos computacionais, utilizando dois ou mais dispositivos de computação

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

Page 7: Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de compartilhamento de recursos computacionais, utilizando dois ou mais dispositivos de computação

Introdução

Ontem

Mainframe7 / 43

Page 8: Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de compartilhamento de recursos computacionais, utilizando dois ou mais dispositivos de computação

Introdução

Hoje

Google Server Farm

8 / 43

Page 9: Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de compartilhamento de recursos computacionais, utilizando dois ou mais dispositivos de computação

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

Page 10: Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de compartilhamento de recursos computacionais, utilizando dois ou mais dispositivos de computação

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

Page 11: Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de compartilhamento de recursos computacionais, utilizando dois ou mais dispositivos de computação

Introdução

Computação em nuvem

Figura 1.2: Plataformas de computação em nuvem11 / 43

Page 12: Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de compartilhamento de recursos computacionais, utilizando dois ou mais dispositivos de computação

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

Page 13: Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de compartilhamento de recursos computacionais, utilizando dois ou mais dispositivos de computação

Conceitos

1 Introdução

2 Conceitos

3 Tipos de virtualização

4 Casos de uso

13 / 43

Page 14: Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de compartilhamento de recursos computacionais, utilizando dois ou mais dispositivos de computação

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

Page 15: Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de compartilhamento de recursos computacionais, utilizando dois ou mais dispositivos de computação

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

Page 16: Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de compartilhamento de recursos computacionais, utilizando dois ou mais dispositivos de computação

Conceitos

Abstração

Figura 2.1: Interfaces de programação: (a) Sem virtualização (b) Comvirtualização [Galvin et al., 2013]

16 / 43

Page 17: Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de compartilhamento de recursos computacionais, utilizando dois ou mais dispositivos de computação

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

Page 18: Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de compartilhamento de recursos computacionais, utilizando dois ou mais dispositivos de computação

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

Page 19: Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de compartilhamento de recursos computacionais, utilizando dois ou mais dispositivos de computação

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

Page 20: Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de compartilhamento de recursos computacionais, utilizando dois ou mais dispositivos de computação

Tipos de virtualização

1 Introdução

2 Conceitos

3 Tipos de virtualização

4 Casos de uso

20 / 43

Page 21: Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de compartilhamento de recursos computacionais, utilizando dois ou mais dispositivos de computação

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

Page 22: Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de compartilhamento de recursos computacionais, utilizando dois ou mais dispositivos de computação

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

Page 23: Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de compartilhamento de recursos computacionais, utilizando dois ou mais dispositivos de computação

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

Page 24: Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de compartilhamento de recursos computacionais, utilizando dois ou mais dispositivos de computação

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

Page 25: Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de compartilhamento de recursos computacionais, utilizando dois ou mais dispositivos de computação

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

Page 26: Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de compartilhamento de recursos computacionais, utilizando dois ou mais dispositivos de computação

Tipos de virtualização

Paravirtualização (grá�co)

Figura 3.1: Virtualização e paravirtualização [Tanenbaum and Boss, 2012]

26 / 43

Page 27: Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de compartilhamento de recursos computacionais, utilizando dois ou mais dispositivos de computação

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

Page 28: Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de compartilhamento de recursos computacionais, utilizando dois ou mais dispositivos de computação

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

Page 29: Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de compartilhamento de recursos computacionais, utilizando dois ou mais dispositivos de computação

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

Page 30: Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de compartilhamento de recursos computacionais, utilizando dois ou mais dispositivos de computação

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

Page 31: Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de compartilhamento de recursos computacionais, utilizando dois ou mais dispositivos de computação

Casos de uso

1 Introdução

2 Conceitos

3 Tipos de virtualização

4 Casos de uso

31 / 43

Page 32: Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de compartilhamento de recursos computacionais, utilizando dois ou mais dispositivos de computação

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

Page 33: Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de compartilhamento de recursos computacionais, utilizando dois ou mais dispositivos de computação

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

Page 34: Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de compartilhamento de recursos computacionais, utilizando dois ou mais dispositivos de computação

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

Page 35: Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de compartilhamento de recursos computacionais, utilizando dois ou mais dispositivos de computação

Casos de uso

Ontem

Mainframe35 / 43

Page 36: Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de compartilhamento de recursos computacionais, utilizando dois ou mais dispositivos de computação

Casos de uso

Hoje

Google Server Farm

36 / 43

Page 37: Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de compartilhamento de recursos computacionais, utilizando dois ou mais dispositivos de computação

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

Page 38: Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de compartilhamento de recursos computacionais, utilizando dois ou mais dispositivos de computação

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

Page 39: Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de compartilhamento de recursos computacionais, utilizando dois ou mais dispositivos de computação

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

Page 40: Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de compartilhamento de recursos computacionais, utilizando dois ou mais dispositivos de computação

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

Page 41: Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de compartilhamento de recursos computacionais, utilizando dois ou mais dispositivos de computação

Casos de uso

OBRIGADO!!!

PERGUNTAS???

41 / 43

Page 42: Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de compartilhamento de recursos computacionais, utilizando dois ou mais dispositivos de computação

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

Page 43: Virtualização - eduardosan.com · Casos de uso Cluster De nição: Implementação de compartilhamento de recursos computacionais, utilizando dois ou mais dispositivos de computação

Casos de uso

Sistemas operacionais modernos.Prentice-Hall, 3 edition.

43 / 43