Introdução Instituto de Informátic ca - UFRGS Sistemas Operacionais II Virtualização Cronograma: 23/06: feriado de Corpus Christi 28/06: não haverá aula cf. cronograma da disciplina 30/06: não haverá aula cf. cronograma da disciplina 05/07: prova 2 (via moodle, aula 17 a aula 25 inclusive) 07/07: aula sobre cloud computing 12/07: revisão nota trabalhos com demonstração prática 14/07: prova de recuperação (toda a matéria) Aula 25 Motivação Ociosidade de recursos Economia de energia Heterogeneidade Segurança Virtualização é um conceito que endereça muitos desses problemas Base para a implementação de vários serviços distribuídos como, por exemplo, cluster por demanda e computação em nuvem Sistemas Operacionais II 2 O que é virtualização?...mas virtualização não é só isso!! 3 Metodologia para dividir recursos de um computador em múltiplos ambientes de execução usando várias técnicas!particionamento de hardware e software!compartilhamento de tempo!simulação completa ou parcial da máquina (modelo)!emulação (comportamento) A. Singh, 2008 Pragmaticamente: Técnica que permite particionar um único sistema computacional em vários outros sistemas totalmente separados É um ambiente que estende/substitui uma interface existente por outra 4 Segundo, Enterprise Management Association (EMA), Virtualização é a técnica que mascara as características físicas de um recurso computacional, dos sistemas, aplicações ou usuários. Discos virtuais Grades computacionais Dados (XML) Clusters Middlewares...entre outros web Redes
Fundamentação teórica Dividir para conquistar Problema: complexidade do sistema computacional Variedade e heterogeneidade dos componentes Interação entre software e hardware Abordagem clássica: uso de níveis de abstração e interfaces Componente = sistema independente Interfaces Serviços 6 Abstração + Interface Camada n+1 Camada n Camada n-1 Exemplos: Assembly Bibliotecas Linguagens alto nível MR-OSI etc * SPQR: Senatus Populusque Romanus. ( O Senado e o Povo Romano) 5 Exemplos: abstração e interfaces Isomorfismo setor eixo cilindro Cabeçote r/w Braço móvel Sistema A E i e (E i ) E j Assembly + modos de endereçamento Nome simbólico Gerência de diretório Núcleo sistema arquivos Identificador numérico Organização de dispositivos Interface sistema de arquivos Interface subsistema de E/S trilha IBM Model DKLA-24320 8944 cilindros 15 cabeçotes 63 setores por trilha Internet 7 8 Sistema B V(E i ) V(E j ) e (E j ) E i E j Função de virtualização V Isomorfismo é a transformação do estado de um sistema A em um estado equivalente em um sistema B.
Abstração x virtualização Camadas de abstração e interfaces 9 Enquanto a abstração esconde detalhes internos de um componente, a virtualização os apresenta ao exterior de uma forma diferente da real. [Smith, Nair 2005] open, read, write, close Processo usuário Sistema de arquivos = diretório + arquivos Partição A Partição B Blocos, i-nodes, etc disco físico Partição = disco virtual 10 software hardware System ISA Bibliotecas Sistema Operacional 2 1 1 Processador 3 4 Barramento MMU 5 E/S 6 7 RAM Instruction Set Architecture - ISA User ISA Arquitetura de computadores Interface Binária da Instruction Set Architecture (ISA) Interface limítrofe entre o nível de abstração de hardware e o de software Interface aplicativa(api) 11 Software ISA System ISA Retratam (pelo menos) dois modos de operação da CPU Privilegiado System ISA Não privilegiado User ISA User ISA 12 Application Binary Interface (ABI) ABI Bibliotecas Chamadas de sistema Sistema Operacional System ISA = Chamadas de sistema (system calls) + Processador User ISA Instruções não privilegiadas (user ISA)
Virtualização: máquinas virtuais Máquinas virtuais Consiste em estender ou substituir um recurso, ou interface, por um outro de modo a imitar um comportamento Objetivos comuns: compatibilidade, isolamento e desempenho Partições lógicas Máquina abstrata Duas perspectivas diferentes: Processo " Máquina virtual de processo (runtime) Sistema operacional " Máquina virtual de sistema ( hipervisor ou monitor de máquina virtual) 13......... abstrato Nível de hardware Sistema operacional Nível de sistema operacional Sistema operacional Nível de linguagem 14 Conceitos Sistema hóspede: processo ou sistema operacional que executa sobre uma máquina virtual Sistema hospedeiro: plataforma subjacente onde a máquina virtual executa Hospedeiro Máquina virtual Sistema Operacional Hóspede Máquina virtual de processo Máquina virtual de sistema 15 Ambiente de execução para uma única aplicação Característica: Criada sob demanda Existe apenas quando o processo executa Baseada na ABI real para oferecer uma ABI virtual Máquina virtual Hospedeiro Máquina virtual Sistema Operacional (cpu, disco, rede, etc) Hóspede 16 Ambiente de execução completo onde podem coexistir sistemas operacionais e aplicações Dois tipos básicos: Máquina virtual SO 1 Hipervisor (VMM)... Hóspede SO n (a) Hipervisor Tipo I (nativo) Hospedeiro SO 1... SO n Sistema Operacional (nativo) (cpu,ram, disco,rede,etc) (b) Hipervisor Tipo II (hóspede)
O quê virtualizar? Arquiteturas de virtualização 17 Duas opções: System call + User ISA " Ex.: VMware Fusion ambiente windows para MacOS X System call " Ex.: VMware Player, VirtualBox, Virtual PC... Hipervisor Plataforma ABI virtual ABI real Chamada de Sistema virtual Chamada de Sistema real Hipervisor Plataforma User ISA virtual User ISA real 18 Implementação de máquinas virtuais não é tão simples quanto parece Questões de desempenho Compartilhamento de recursos entre sistemas nativo e hóspedes Questão interessante: O que fazer quando o sistema operacional hóspede executa instruções privilegiadas (system ISA)? Depende de recursos oferecidos pelo processsador Implementação de máquinas virtuais Virtualização total ou completa 19 Máquina virtual de processo Fácil: apenas uma aplicação que executa sobre sistema operacional nativo Máquina virtual de sistema (monitor de máquina virtual) Camada especial de software (hipervisor) Duas filosofias: " Virtualização total ou completa " Paravirtualização Oferece uma réplica do hardware subjacente Desvantagem: Diversidade de hardware Desempenho " Testar operações sensíveis Vantagem: Executar sistemas não modificados Máquina virtual 1 Máquina virtual 2 Ap 1 Ap n Ap 1 Ap n Sistema operacional 1 (original) Plataforma Sistema operacional 2 (original) VMM (Virtual Machine Monitor)
Paravirtualização Virtualização assistida por hardware Sistema hóspede tem consciência da existência da VMM Operações sensíveis Vantagem: Desempenho Desvantagem Modificação do sistema hóspede Máquina virtual 1 Máquina virtual 2 Ap 1 Ap n Ap 1 Ap n Sistema operacional 1 (modificado) Plataforma Sistema operacional 2 (modificado) VMM (Virtual Machine Monitor) Popek e Goldberg (1974) Instruções privilegiadas " Quando executadas em modo usuário geram exceções (traps) Sensíveis de controle " Permitem alteração de recursos de sistema Sensíveis comportamentais " Resultado depende da configuração de recursos como, por exemplo, contéudos internos de registradores ou modos de execução da CPU Virtualização é possível sempre que as instruções sensíveis forem um subconjunto das privilegiadas 21 Sistemas Operacionais II 22 Anéis de proteção em arquiteturas x86 Níveis de privilégio na Arquitetura x86 Arquitetura x86 possui quatro modos de operação Tipicamente apenas dois são empregados (usuário e sistema) Existem 17 instruções não privilegiadas que são sensíveis Comprometem a implementação da virtualização Sistema operacional convencional Sistema com virtualização completa
Paravirtualização e HAV Ferramentas de virtualização: exemplos Máquinas virtuais de processo Java Virtual Machine (JVM) Monitor de máquina virtual Nativo: Xen, VMware ESX, Hyper-V Hospedado: VMware Player, VirtualPC, VirtualBox Paravirtualização no x86 Assisted Virtualization (HAV) Sistemas Operacionais II 26 Estudo de caso: Xen Componentes básicos Solução para virtualização em software livre Xensource e Citrix Empregado como base para soluções de cloud computing Características gerais Monitor de máquina virtual do tipo I (nativo ou barametal) Ausência de drivers de dispositivos de E/S Componentes básico Hipervisor Domínio convidado privilegiado Domínio convidado não privilegiado Sistemas Operacionais II 27
Domínios convidados Interação entre Hipervisor, Domínio 0 e Domínios U Domínio privilegiado (Dom0) Primeiro sistema operacional convidado Privilégios para acesso ao hardware Gerenciamento das máquinas virtuais Sistema operacional código aberto " Interação com o hipervisor Dominio não privilegiado (DomU) Máquinas virtuais (sistemas convidados) Paravirtualização e virtualização completa (HAV) Drivers: Mecanismo de back-end e front-end Implementação de paravirtualização e virtualização completa no Xen
Emprego da virtualização: casos de uso Sistemas virtuais, problemas reais Consolidação de servidores Principal utilização da virtualização (virtualização de servidores) Objetivo é economia de energia e reduzir ociosidade Virtualização em desktops Ambientes de desenvolvimento Laboratórios de treinamento Testes de programas e sistemas Honeypots Análise de segurança Computação em nuvem Licenciamento de software Modelo de licenciamento de software é confuso (sem padrão) Segurança Os hipervisores, sendo um software, possui bugs (vulnerabilidades) Gerenciamento Ferramentas para instanciar, monitorar, configurar e manter as máquinas virtuais Desempenho Qual o custo introduzido por uma camada adicional de software Sistemas Operacionais II 33 Sistemas Operacionais II 34 Leituras complementares A. Carissimi -21-juin-11 Carissimi, A.; Virtualização: da Teoria a Soluções. Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos. SBRC 2008. 26 a 30 de maio de 2008. pg. 174-209. Rio de Janeiro. RJ. Brasil Carissimi, A.; Virtualização; IX Simpósio de Sistemas Computacionais. WSCAD-SCC SCC 2008. 29 de out a 1 de nov de 2008. Anais eletrônicos. Campo Grande. MS. Brasil. Cópia eletrônica do material disponível no moodle da disciplina Redes de Computadores 35