Xen e a Arte da Virtualização - Instituto de Computaçãobit/ensino/mo809_1s13/xen.pdf · Xen e a...
Transcript of Xen e a Arte da Virtualização - Instituto de Computaçãobit/ensino/mo809_1s13/xen.pdf · Xen e a...
Xen e a Arte da Virtualização
Paul Barham∗, Boris Dragovic, Keir Fraser, Steven Hand, Tim Harris, Alex Ho, Rolf
Neugebauer†, Ian Pratt, Andrew Warfield
University of Cambridge Computer Laboratory
∗Microsoft Research Cambridge, UK
†Intel Research Cambridge, UK
Roteiro
Virtualização
Máquinas Virtuais de Sistema
Para-Virtualização
Xen: Visão Geral
Princípios de Design
Design Detalhado
Avaliação
Conclusão
Xen na Atualidade
Virtualização
Remove limitações impostas pelas interfaces
de sistema e aumenta a flexibilidade
Provê uma visão diferente para um dado
recurso computacional
◦ Não necessariamente uma visão mais simples
Virtualização constrói um isomorfismo que
mapeia um sistema hóspede virtual a um
sistema hospedeiro real
Virtualização
Alguns benefícios de VMs
Flexibilidade ◦ Diferentes sistemas virtuais podem ser emulados em um
mesmo sistema físico
Portabilidade ◦ Possibilita migração da máquina virtual entre diferentes
hospedeiros
Isolamento ◦ Desempenho isolado entre máquinas virtuais em um
mesmo hospedeiro
Segurança ◦ Impede acesso mal intencionado ao hardware físico
através de barreiras implementadas pelo monitor
Taxonomia de VMs
Máquinas Virtuais de Sistema
Virtualização aplicada a toda a máquina
Adiciona camada de software à máquina real para suportar a arquitetura da máquina virtual desejada
Virtualização ◦ Mapeamento de recursos ou estados virtuais a
recursos reais
◦ Uso de instruções de máquina reais para executar ações especificadas por instruções da máquina virtual
Máquinas Virtuais de Sistema
Recursos de hardware são em geral subutilizados
Objetivo: otimizar alocação de recursos
Permitir acesso simultâneos de múltiplos usuários a um único sistema computacional
Dar a cada usuário a ilusão de acesso exclusivo ao conjunto completo de recursos do sistema
Para criar esta ilusão:
◦ Sistemas operacionais multiprogramados
◦ Implementar VM de processo para cada aplicação e alocar recursos entre os programas por time-slices
Máquinas virtuais de sistema
◦ Objetivo: prover uma ilusão similar para sistemas completos
Máquinas Virtuais de Sistema Suporta múltiplas imagens de sistema simultaneamente
Cada uma roda seu própria sistema operacional e programas
Recursos reais da máquina hospedeira são partilhados pelas máquinas hóspede
SO hóspede gerencia recursos virtualizados (CPU, disco, I/O)
Monitor de máquina virtual (VMM)
◦ Colocado entre hardware subjacente e software convencional
◦ Alternativa: VM hosted (virtualiza software em cima de um SO existente)
◦ Gerencia alocação/acesso a recursos de HW da plataforma hospedeira
◦ Dá a cada SO hóspede a ilusão de ser dona dos recursos
Benefícios em Datacenters
Virtualização em datacenters pode diminuir custos com espaço físico, energia, resfriamento e hardware. Simplificar a administração, manutenção, e resultar em um TI mais verde
1. Menos geração de calor
2. Custos reduzidos
3. Implantação mais rápida
4. Backups mais simples
5. Testes mais eficazes
6. Sem lock-in de fornecedores
7. Melhor recuperação a desastres
8. Servidores de fim específico
9. Migração mais fácil para clouds
Para-Virtualização
Apresenta uma visão similar ao hardware subjacente, mas não
idêntico
Intenção é reduzir o tempo executando operações complexas no
sistema virtualizado
Permite o VMM ser mais simples, passando a executar operações
críticas no domínio do hospedeiro, e reduzir perda de desempenho
na execução de operações de máquina no hóspede virtual
Provê conjunto de APIs (hypercalls) que possibilitam a
comunicação/cooperação entre o hóspede e o hospedeiro
Requer que o SO hóspede seja portado para utilizar a para-API
Xen: Abordagem e Visão Geral
Virtualização completa tem vários pontos negativos. Virtualizar o MMU x86 é difícil e pouco eficiente. Chamadas ao supervisor devem ser virtualizadas pelo VMM e geram overhead. É necessário criar shadow copies de estruturas de sistema e manter a consistência gerando traps para cada acesso
Ter acesso a recursos reais é útil para suportar tarefas sensíveis a tempo, e expor endereços de máquina reais possibilita otimizações como o uso de superpáginas ou coloração de páginas.
Princípios de Design 1. Suporte a binários sem modificações é essencial, para isso
deve-se virtualizar todos os recursos de arquitetura
requisitados pelas ABIs padrões existentes
2. Suporte a sistemas operacionais de multi-aplicações é
importante, já que isso permite configurações de servidores
complexas virtualizadas dentro de uma única instância de SO
hóspede
3. Para-virtualização é necessária para obter alto desempenho e
forte isolamento de recursos em arquiteturas não-
cooperativas como x86
4. Mesmo em arquiteturas cooperativas, esconder
completamente os efeitos da virtualização de recursos arrisca
correção e desempenho
Interface: MMU
TLB em hardware torna difícil ser eficiente. A ausência de tags torna difícil para as VMs co-existirem sem recorrer a flushes
SO hospedeiro aloca e gerencia tabelas de páginas de HW utilizando mínimo envolvimento do Xen
Xen existe em uma seção de 64MB no topo de cada espaço de endereçamento, evitando flush ao trocar de-para o hypervisor
O SO hospedeiro requisita novas páginas do Xen e todas as atualização devem ser validadas pelo Xen. Isto traz segurança e isolamento
Interface: CPU
Níveis de privilégio no x86
SO hóspede deve rodar com menos privilégio que o hypervisor para proteção
Tipicamente SOs executam no nível 0, devem ser modificados para executar no nível 1. Apenas o hypervisor executa no nível 0.
Tentativa de acesso à instruções de anéis inferiores deve causar exceção ou falhar silenciosamente
Chamadas privilegiadas são feitas usando hypercalls
Exemplos: instalar uma nova tabela de páginas, yeld de um processador...
Interface: CPU
Interface: I/O
Ao invés de virtualizar completamente um dispositivo, o Xen expõe interfaces abstratas simples e limpas
Dados são transferidos usando um SMD e anéis de buffers assíncronos
Além de prover alto desempenho, possibilitam validação eficiente (out of bounds checks)
Interface: I/O
Porting para o Xen
Controle e Gerenciamento
Separar política de mecanismo
Interface de controle e criação de
domínios
Dispositivos de bloco virtuais e interfaces
de rede virtuais
Software de gerenciamento roda no
Domain0
Controle e Gerenciamento
Design Detalhado
Hypercalls e eventos
Transferência de dados (anéis de I/O)
Escalonamento de CPU
Tempo e temporizadores
Tradução de endereço virtual
Memória física (balloon drivers)
Rede
Disco
Avaliação: Desempenho Relativo
Avaliação: VMs Concorrentes
Avaliação: Escalabilidade (100 hosts)
Trabalhos Relacionados
VMware ◦ Virtualização de sistema completo para
hardwares commodity
IBM zSeries ◦ Sistema para-virtualizado para mainframes
zSeries, permitindo executar um grande número de instâncias de Linux
Denali ◦ Kernel de isolamento que permite executar um
vasto número de instâncias de SO virtualizados
Conclusão
Xen provê uma plataforma excelente para provisionar uma ampla variedade de serviços orientados a rede
Xen permite instanciar servidores transientes por curtos períodos de tempo e baixo custo de instanciação
Os experimentos mostram que o desempenho do Linux virtualizado rodando sobre Xen é quase equivalente ao do Linux nativo
Xen na Atualidade
Xen é uma escolha segura, estável, bem testada para virtualização que é utilizada por gigantes da indústria (Amazon, Rackspace, Verizon, etc.). Tem um consórcio robusto por trás de seu desenvolvimento e tem o preço, desempenho e segurança para enfrentar as melhores ofertas da indústria. Além de ter um histórico de 10 anos que inclui seu uso nas maiores clouds do mundo.
“Citrix não vai tornar o XenServer open source. Enquanto o Xen, o hypervisor em si, é open source, o XenServer, contém código proprietário que o torna muito mais simples de configurar e de gerenciar e é muito mais polido e confiável como plataforma de virtualização.”
Provedores de serviço da Internet utilizam hypervisors para prover servidores virtuais privados. Amazon EC2, Liquid Web, Fujitsu Global Cloud Platform, Linode, Sparknode e Rackspace Cloud utilizam Xen como o hypervisor.
Xen pode escalar para >255 CPUs físicas, 128 CPUs virtuais por hóspede PV e até 1TB de RAM por hóspede HVM ou 512GB de RAM por hóspede PV
Versões comerciais: Citrix XenServer, Oracle VM, Sun xVM, Virtual Iron...
Perguntas?