instituto de computação - unicamp mo801 - tópicos em...

40
MO801 - Tópicos em Arquitetura e Hardware - Máquinas Virtuais Anderson Soares Ferreira [email protected] 06/Nov/2012 Seminário Instituto de Computação - Unicamp

Upload: trinhhuong

Post on 11-Nov-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

MO801 - Tópicos em Arquitetura e Hardware - Máquinas Virtuais

Anderson Soares [email protected]

06/Nov/2012

Seminário

Instituto de Computação - Unicamp

Conteúdo

● Introdução● Características gerais● Arquitetura● Tipos de domínios● Virtualização de memória● Virtualização de I/O● Estudos de Casos

Introdução

● História● Xen hypervisor foi desenvolvido como parte do projeto

Xenoserver da Cambridge University no final da década de 90

● O projeto tinha como objetivo construir uma infraestrutura de computação distribuída ampla (wide-area)

● Era mantido pela XenSource e se tornou open source em 2002

● A primeira versão foi lançada em 2003

● Em 2009, a Citrix adquire a XenSource, com essa aquisição é também constituído o Xen Project Advisory Board composto por Citrix, IBM, Intel, HP, Novel, Red Hat, Sun e Oracle

Introdução

● Importância● Xen é um das mais bem sucedidas ferramentas de

virtualização utilizadas na atualidade

● É utilizada como infraestrutura para ambientes de computação em nuvem da Amazon, Google, Fujitsu, Rackspace

● Também está presente em soluções comerciais de virtualização:

● HUAWEI UVP (Unified Virtualization Platform) ● Citrix XenServer● Sun xVM/OracleVM

Introdução

● Versão atual 4.2 (set/2012)● Suporta até 4096 CPUs e 512 vCPU por guest● Até 5TB de memória

● Plataformas● x86, x86-64, IA64, ARM, MIPS (em andamento)

● Guest● Dom0 – Linux, OpenSolaris, NetBSD● DomU – Linux, *BSD, OpenSolaris, MS Windows (HVM)

Características Básicas

● Virtualização Tipo 1● VMM é executado diretamente no hardware

● Arquitetura paravirtualizada● O S.O. guest sabe da existência do hypervisor● O kernel do S.O. é modificado para ser executado no

Xen● Guest solicita operações ao VMM através de

Hypercalls

● Lightweight VMM● É responsável pelo gerenciamento de memória e CPU

Arquitetura

● Tipos de Virtualização

Arquitetura

● Solução Xen

Hypervisor - (Xen)● CPU● Gerenciamento de

memória● Gerenciamento de

segurançaControl Domain (Dom0)

● I/O drivers● Xen management

toolstack

Guest OS (DomU)

Arquitetura

● Dom0● Ciclo de vida de Vms

● Create, reboot, pause, destroy, etc.● Gerenciamento de imagens de disco● Controle de dispositivos de I/O

● Utiliza conjunto de front-end e back-end drivers● Fornece suporte a pilhas de gerenciamento

● XL, Xend e libvirt● Gerenciamento de módulos e políticas de segurança

(XSM)● Qualquer outra pilha de gerenciamento que se possa

imaginar!!

Arquitetura

Memória

Segmentação Não é possível instalar segmentos privilegiados nem sobrepor o topo da memória

Paginação Guest tem acesso de leitura a tabela de páginas, atualizações são validadas pelo hypervisor

CPU

Proteção Guest deve ser executado em um nível menos privilegiado que o hypervisor

Exceções Guest registra uma tabela de descritores no VMM

System calls Guest pode instalar uma tratador rápido de syscalls, evitando o desvio para o Xen em cada chamada

Interrupções Substituído por um sistema leve de notificação de eventos

Tempo Guest recebe duas interfaces de tempo, uma virtual e outra real

I/O

Rede, disco, etc Transferência de dados é feita através de anéis assíncronos de I/O

● Paravirtualização

Tipos de Domínios

● Paravirtualizado (PV)● Não é utilizado nenhum suporte de virtualização da

CPU● Hypercalls

● S.O. faz chamadas síncronas para o hypervisor (int 82h)● Event notification handlers

● Guest registra callbacks para recebimento de notificações

● São usados em substituição à interrupções e comunicação com dispositivos

Tipos de Domínios

● Paravirtualizado (PV)

Tipos de Domínios

● Full Virtualization (HVM)● Utiliza extensões de virtualização existentes na CPU● Emulação de um sistema (máquina) completa● Permite a execução de S.O. sem a necessidade de

alterações no kernel● Maior compatibilidade● Utiliza o QEMU para emulação do modelo de

dispositivos

Tipos de Domínios

● Full Virtualization (HVM)

Tipos de Domínios

● Soluções Híbridas

● PV on HVM● Utiliza drivers parvirtualizados em um domínio HVM

● PV HVM Containers● Combina a técnica de PV e virtualização assistida por

hardware

Tipos de Domínios

● Soluções Híbridas

Virtualização de Memória

● Não existem shadow page tables● As tabelas de páginas são registradas diretamente no

MMU● Hypervisor faz a validação das atualizações das

páginas antes da ativação

● A memória de um domínio é alocada durante sua criação● É possível especificar um valor mínimo e máximo de

memória utilizada por um domínios● O domínio pode solicitar mais memória através do

driver de memória balloon

Virtualização de I/O

● Apenas Dom0 tem acesso aos dispositivos físicos

● DomU utiliza interfaces abstrata de dispositivos ● Virtual Network Interface (vif)● Virtual Block Device (vbd)● Virtual console (keyboard/mouse)

● Transferência de dados entre dispositivos baseia-se em:● Anéis de descritores● Páginas de memória compartilhada

Virtualização de I/O

● Anéis de descritores

● DomU guests também podem acessar dispositivos de I/O diretamente● Xen utiliza PCI passthrough para direcionar dispositivos

para domínios específicos● Xen restringe acesso aos dispositivos direcionados ao

domínio● Também controla o acesso a memória mapeada para o

dispositivo

Virtualização de I/O

Performance

Linux (L) - Xen (X) - VMWare (V) – User-Mode Linux (U)

Performance

Processes – time in µs

Context switching time in µs

Performance

File & VM system latencies in µs

Bandwidth in Mb/s

Estudos de Caso

● Xen on ARM● Projeto coordenado pela Samsung● Objetivo era levar o Xen para plataformas mobile

● Principal desafios:● Proteção do espaço de memória VMM, S.O. e

processos● Troca de contexto● Cache de memória

Estudos de Caso

● Xen on ARM● Isolamento entre o Xen e o S.O.

● S.O. solicita a alocação de páginas de memória via hypercalls

● Xen valida a atualização antes de sua ativação

● Isolamento entre S.O. e processos ● Utiliza do mecanismo de proteção de domínios● Xen utiliza os domínios D0, D1 e D2 ● Utiliza três níveis de acesso● As permissões são definidas através do Domain Access

Control Register (DACR)

Estudos de Caso

● Xen on ARM● Isolamento entre S.O. e processos:

D0 D1 D2

Processo no access no access client

OS client client client

Xen manager manager manager

Estudos de Caso

● Xen on ARM● Troca de contexto:

● Xen é executado em modo supervisor● S.O. e processos são executados em modo usuário● O modo usuário é logicamente dividido em dois modos

S0: VMM mode

S1: Kernel mode

S2: User mode

Supervisor

User

Estudos de Caso

● Xen on ARM● Cache de memória

● VMM, S.O. e processos utilizam espaços de memória não sobrepostos

● Não há necessidade de flush da cache durante a troca de contexto em um mesmo domínio

● Xen utiliza entradas especiais (lockdown) da TLB para mapear seu espaço de memória

● Reduz o overhead durante a troca de contexto entre domínios

Estudos de Caso

● Xen on ARM● Testes de performance

● Processador ARM 926EJ-S 266Mhz● 64 MB RAM / 32 Mb Flash

Estudos de Caso

● Xen on ARM● Performance – Troca de Contexto

Estudos de Caso

● MagiXen● Projeto desenvolvido pela HP Labs● Utilização de Xen guests IA32 em plataformas IA64● Emprega tradução de binários utilizando o IA32-EL

● Principal desafios:● Emular o conjunto de APIs do Xen (hypercalls)● Utilizar um tradutor de código fechado● Utilizar uma versão inalterada do Xen IA64

Estudos de Caso

● MagiXen● Projeto desenvolvido pela HP Labs● Utilização de VMs Xen IA32 em plataformas IA64● Emprega tradução de binários utilizando o IA32-EL

● Principal desafios:● Emular o conjunto de APIs do Xen (hypercalls)● Utilizar um tradutor de código fechado● Utilizar uma versão inalterada do Xen IA64

Estudos de Caso

● MagiXen

MagiXen Architecture

Estudos de Caso

● MagiXen● Camada entre o VMM e o S.O.

● Controla as interrupções e exceções● Configura o ambiente IA32 inicial (registradores,

memória, etc)● Faz a passagem das chamadas a hypercalls entre o S.O.

e o Xen● Gerencia a comunição entre o domínio e dispositivos de

I/O ● Faz o controle do módulo de tradução

Estudos de Caso

● MagiXen● Camada entre o VMM e o S.O.

● Controla as interrupções e exceções● Emula a tabela de páginas da arquitetura IA32● Configura o ambiente IA32 inicial

● (registradores, memória, etc.)● Faz a passagem das chamadas a hypercalls entre o S.O.

e o Xen● Gerencia a comunição entre o domínio e dispositivos de

I/O ● Faz o controle do módulo de tradução

Estudos de Caso

● MagiXen - Performance

Approximate costs for common operations

Estudos de Caso

● MagiXen - Performance

Estudos de Caso

● MagiXen - Performance

Referências

● Xen and the art of virtualization - Paul Barham, Boris Dragovic, Keir Fraser, Steven Hand, Tim Harris, Alex Ho, Rolf Neugebauer, Ian Pratt, Andrew Warfield. Published at ACM SOSP 2003. Available at http://dl.acm.org/citation.cfm?doid=945445.945462

● Xen on ARM: System Virtualization using XenHypervisor for ARM-based Secure Mobile Phones - Joo-Young Hwang, Sang-Bum Suh, Sung-Kwan Heo, Chan-Ju Park, Jae-Min Ryu, Seong-Yeol Park, Chul-Ryun Kim. Published at IEEE CCNC 2008.Avaiable at http://dx.doi.org/10.1109/ccnc08.2007.6

● MagiXen: Combining Binary Translation and Virtualization - Matthew Chapman, Daniel J. Magenheimer, Parthasarathy Ranganathan. HP Labs Technical Report HPL-2007-77. Available at http://www.hpl.hp.com/techreports/2007/HPL-2007-77.pdf.

● Safe Hardware Access with the Xen Virtual Machine Monitor - Keir Fraser, Steven Hand, Rolf Neugebauer, Ian Pratt, Andrew Warfield, Mark Williamson. Published at OASIS ASPLOS 2004 Workshop. Available at http://www.cl.cam.ac.uk/netos/papers/2004-oasis-ngio.pdf)

● Xen Documentation URL: http://www.xen.org/support/documentation.html

● Xen Wiki Website URL: http://wiki.xen.org/

That's all folks!