instituto de computação - unicamp mo801 - tópicos em...
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
● 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
● 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
● 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
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
● 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
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
● 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● 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
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/