virtualbox - instituto de computaçãoedson/disciplinas/mo801/2012-2s/seminario/mario.pdf ·...

30
VirtualBox IC 1 VirtualBox Mario Hato Instituto de Computação UNICAMP

Upload: others

Post on 27-Dec-2019

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: VirtualBox - Instituto de Computaçãoedson/disciplinas/mo801/2012-2s/seminario/Mario.pdf · VirtualBox IC 25 Memory Ballooning • Mudança da quantidade de memória reservada para

VirtualBox

IC

1

VirtualBoxMario Hato

Instituto de Computação

UNICAMP

Page 2: VirtualBox - Instituto de Computaçãoedson/disciplinas/mo801/2012-2s/seminario/Mario.pdf · VirtualBox IC 25 Memory Ballooning • Mudança da quantidade de memória reservada para

VirtualBox

IC

2

Motivação

• Infraestrutura de computação - 2000

– 1 PC → 1 SO → Vários Aplicativos

– Utilização Baixa → < 25%

X86Windows

XP

X86Windows

2003

X86Suse

X86Red Hat

12% Hardware Utilization

15% Hardware Utilization

18% Hardware Utilization

10% Hardware Utilization

App App App App App App App App

Page 3: VirtualBox - Instituto de Computaçãoedson/disciplinas/mo801/2012-2s/seminario/Mario.pdf · VirtualBox IC 25 Memory Ballooning • Mudança da quantidade de memória reservada para

VirtualBox

IC

3

Desafios

• Baixa utilização da Infraestrutura

• Aumento do Custo da Infraestrutura física

• Aumento do Custo em gerenciamento

• Baixa proteção a falhas e desastres

• Solução: Virtualização

Page 4: VirtualBox - Instituto de Computaçãoedson/disciplinas/mo801/2012-2s/seminario/Mario.pdf · VirtualBox IC 25 Memory Ballooning • Mudança da quantidade de memória reservada para

VirtualBox

IC

4

Sistema Virtualizado

• Cada aplicação roda em seu SO

• Cada SO não sabe que compartilha

recursos com outros SO's

X86 Multi-Core, Multi Processor

70% Hardware Utilization

X86Windows

XP

App. A

X86Windows

2003

App. B

X86SuseLinux

App. C

X86Red HatLinux

App. D

Page 5: VirtualBox - Instituto de Computaçãoedson/disciplinas/mo801/2012-2s/seminario/Mario.pdf · VirtualBox IC 25 Memory Ballooning • Mudança da quantidade de memória reservada para

VirtualBox

IC

5

Porque a virtualização é útil?

• Executar múltiplos SO's simultaneamente

• Facilitar instalações de software

• Testes e recuperação de desastres

• Consolidação de Infraestrutura

Page 6: VirtualBox - Instituto de Computaçãoedson/disciplinas/mo801/2012-2s/seminario/Mario.pdf · VirtualBox IC 25 Memory Ballooning • Mudança da quantidade de memória reservada para

VirtualBox

IC

6

Evolução da Virtualização

• 1º Geração: Full Virtualization

• 2º Geração: ParaVirtualization

• 3º Geração: Hardware-Assisted Virtualization

Time

Dynamic Translation

VirtualMachine

Hardware

Operating System

VirtualMachine

Hypervisor

Hardware

VMVM

Hardware

VirtualMachine

VirtualMachine

Virtualization Logic

Hypervisor

Page 7: VirtualBox - Instituto de Computaçãoedson/disciplinas/mo801/2012-2s/seminario/Mario.pdf · VirtualBox IC 25 Memory Ballooning • Mudança da quantidade de memória reservada para

VirtualBox

IC

7

VirtualBox

• Solução Full Virtualization

• Open Source

• Multiplataforma

• “Hosted” Hypervisor

• Portável – arquivos de configuração em

XML

• Não necessita de Virtualização em

Hardware

Page 8: VirtualBox - Instituto de Computaçãoedson/disciplinas/mo801/2012-2s/seminario/Mario.pdf · VirtualBox IC 25 Memory Ballooning • Mudança da quantidade de memória reservada para

VirtualBox

IC

8

VirtualBox

• Guest Additions

– Pastas compartilhadas

– Seamless windows

– Virtualização 3D

• Grande suporte de hardware

– Guest multiprocessing (SMP)

– Suporte a dispositivos USB

– Compatibilidade de Hardware

Page 9: VirtualBox - Instituto de Computaçãoedson/disciplinas/mo801/2012-2s/seminario/Mario.pdf · VirtualBox IC 25 Memory Ballooning • Mudança da quantidade de memória reservada para

VirtualBox

IC

9

VirtualBox

• Suporte em hardware(cont.)

– Suporte ACPI total

– Múltiplas resoluções de tela

– Suporte a iSCSI embutido

– Boot em rede (PXE)

• Snapshots

• Extremamente Modular

• Acesso remoto (VRDE → RDP)

Page 10: VirtualBox - Instituto de Computaçãoedson/disciplinas/mo801/2012-2s/seminario/Mario.pdf · VirtualBox IC 25 Memory Ballooning • Mudança da quantidade de memória reservada para

VirtualBox

IC

10

Plataformas Host e Guest

Page 11: VirtualBox - Instituto de Computaçãoedson/disciplinas/mo801/2012-2s/seminario/Mario.pdf · VirtualBox IC 25 Memory Ballooning • Mudança da quantidade de memória reservada para

VirtualBox

IC

11

História

• Innotek – Jan-2007

• Sun – Fev-2008

• Oracle – Jan-2010

Page 12: VirtualBox - Instituto de Computaçãoedson/disciplinas/mo801/2012-2s/seminario/Mario.pdf · VirtualBox IC 25 Memory Ballooning • Mudança da quantidade de memória reservada para

VirtualBox

IC

12

Arquitetura

Page 13: VirtualBox - Instituto de Computaçãoedson/disciplinas/mo801/2012-2s/seminario/Mario.pdf · VirtualBox IC 25 Memory Ballooning • Mudança da quantidade de memória reservada para

VirtualBox

IC

13

Camada de Gerenciamento

• Web Service

– Fácil de usar

– Acesso remoto

– Overhead no empacotamento do XML

• Component Object Model

COM/XPCOM

– Restrito a algumas linguagens

– Cliente deve ser executado no mesmo

Sistema do Host

– Baixo overhead

Page 14: VirtualBox - Instituto de Computaçãoedson/disciplinas/mo801/2012-2s/seminario/Mario.pdf · VirtualBox IC 25 Memory Ballooning • Mudança da quantidade de memória reservada para

VirtualBox

IC

14

Componentes

• IPRT – Portable Runtime Library

• VMM – Virtual Machine Monitor

• EM – Execution Manager

• REM – Recompiled Execution Monitor

• TRPM – Trap Manager

• HWACCM – Hardware Acceleration

Manager

• PDM – Pluggable Device Manager

Page 15: VirtualBox - Instituto de Computaçãoedson/disciplinas/mo801/2012-2s/seminario/Mario.pdf · VirtualBox IC 25 Memory Ballooning • Mudança da quantidade de memória reservada para

VirtualBox

IC

15

Componentes

• PGM – Page Manager

• PATM – Patch Manager

• TM – Time Manager

• CFGM – Configuration Manager

• SSM – Saved State Manager

• VUSB – Virtual USB

• DBGF – Debug Facility

Page 16: VirtualBox - Instituto de Computaçãoedson/disciplinas/mo801/2012-2s/seminario/Mario.pdf · VirtualBox IC 25 Memory Ballooning • Mudança da quantidade de memória reservada para

VirtualBox

IC

16

Virtualização

• Permitir executar softwares diretamente

no processador.

• Software

– Suporte a processadores antigos

• Hardware

– Intel VT-x

– AMD AMD-V

– Diferentes em detalhes, mas com

princípios iguais

Page 17: VirtualBox - Instituto de Computaçãoedson/disciplinas/mo801/2012-2s/seminario/Mario.pdf · VirtualBox IC 25 Memory Ballooning • Mudança da quantidade de memória reservada para

VirtualBox

IC

17

Virtualização em Software

• Tarefa complexa

• Desempenho reduzido

• Emulação completa ou Paravirtualização

• VVM roda em Ring0

• SO Guest roda em Ring1

• App Guest roda em Ring3

Page 18: VirtualBox - Instituto de Computaçãoedson/disciplinas/mo801/2012-2s/seminario/Mario.pdf · VirtualBox IC 25 Memory Ballooning • Mudança da quantidade de memória reservada para

VirtualBox

IC

18

Virtualização em Software

• Ring1 não permite a execução de

instruções privilegiadas

• Certas instruções não geram

excessões em Ring1

• System Calls

• Task Priority Register (TPR)

• Instruções que mostram o verdadeiro

estado da máquina (CPUID)

Page 19: VirtualBox - Instituto de Computaçãoedson/disciplinas/mo801/2012-2s/seminario/Mario.pdf · VirtualBox IC 25 Memory Ballooning • Mudança da quantidade de memória reservada para

VirtualBox

IC

19

Virtualização em Software

• Code Scanning and Analysis Manager

– CSAM

• Patch Manager – PATM

• Em tempo de execução

• Análise em ocorrência de excessões

Page 20: VirtualBox - Instituto de Computaçãoedson/disciplinas/mo801/2012-2s/seminario/Mario.pdf · VirtualBox IC 25 Memory Ballooning • Mudança da quantidade de memória reservada para

VirtualBox

IC

20

Virtualização em Software

• Utilizado em muitos cenários

• Raros SO's que utilizam instruções

esotéricas. Ex.: OS/2

• Em sistemas guest de 64 bits

• Em sistemas multiprocessados SMP

Page 21: VirtualBox - Instituto de Computaçãoedson/disciplinas/mo801/2012-2s/seminario/Mario.pdf · VirtualBox IC 25 Memory Ballooning • Mudança da quantidade de memória reservada para

VirtualBox

IC

21

Virtualização em Hardware

• Intel VT-x

– VMX modo root

• Funcionamento antigo

• 4 Rings

– VMX modo não root

• Execução do sistema Guest

• Virtual Machine Control Structure –

VMCS

– VM Entry e VM Exit

Page 22: VirtualBox - Instituto de Computaçãoedson/disciplinas/mo801/2012-2s/seminario/Mario.pdf · VirtualBox IC 25 Memory Ballooning • Mudança da quantidade de memória reservada para

VirtualBox

IC

22

Virtualização em Hardware

• AMD-V

– Ambiente de virtualização mais

completo

– VT-x requer paginação habilitada

• Impede código em modo real e software

em modo protegido não paginado

• Firmware e SO loader

• Não complica a implementação do VMM

• Overhead ainda relativamente alto

Page 23: VirtualBox - Instituto de Computaçãoedson/disciplinas/mo801/2012-2s/seminario/Mario.pdf · VirtualBox IC 25 Memory Ballooning • Mudança da quantidade de memória reservada para

VirtualBox

IC

23

Virtualização em Hardware

• Nested Paging

– AMD → Rapid Virtualization Indexing

RVI

• Barcelona (K10)

– Intel → Extended Page Tables EPT

• Corei7 (Nehalem)

– Tradução para endereços “guest

physical” primeiro.

• Intel VPIDs → Acelera a troca de

contexto, reduz o flush da TLB

Page 24: VirtualBox - Instituto de Computaçãoedson/disciplinas/mo801/2012-2s/seminario/Mario.pdf · VirtualBox IC 25 Memory Ballooning • Mudança da quantidade de memória reservada para

VirtualBox

IC

24

Memory Overcommitment

• Muitas VM's → Menos memória

• Permitir a execução de mais VM's

• 2 técnicas implementadas:

– Memory balloning

– Page Fusion

Page 25: VirtualBox - Instituto de Computaçãoedson/disciplinas/mo801/2012-2s/seminario/Mario.pdf · VirtualBox IC 25 Memory Ballooning • Mudança da quantidade de memória reservada para

VirtualBox

IC

25

Memory Ballooning

• Mudança da quantidade de memória

reservada para o guest

• Normalmente se faz com a VM

desligada

• Virtualbox Guest Additions aloca e

bloqueia a memória no SO guest

• Esta memória pode ser utilizada por

outra VM.

Page 26: VirtualBox - Instituto de Computaçãoedson/disciplinas/mo801/2012-2s/seminario/Mario.pdf · VirtualBox IC 25 Memory Ballooning • Mudança da quantidade de memória reservada para

VirtualBox

IC

26

Memory Ballooning

• Somente em Host de 64 bits, exceto

Mac OS X

• A memória liberada não é vista como

livre

• Muito útil em casos que envolvem

necessidade temporária de memória.

Ex: Inicialização da VM.

Page 27: VirtualBox - Instituto de Computaçãoedson/disciplinas/mo801/2012-2s/seminario/Mario.pdf · VirtualBox IC 25 Memory Ballooning • Mudança da quantidade de memória reservada para

VirtualBox

IC

27

Page Fusion

• Evita a duplicação de páginas de

memória em sistemas similares

• Identifica páginas de memórias

semelhantes

• Realiza o compartilhamento de

páginas.

• Escrita em página compartilhada →

Cópia da página.

Page 28: VirtualBox - Instituto de Computaçãoedson/disciplinas/mo801/2012-2s/seminario/Mario.pdf · VirtualBox IC 25 Memory Ballooning • Mudança da quantidade de memória reservada para

VirtualBox

IC

28

Page Fusion

• Abordagem tradicional

– Page sharing ou Same Page Merging

– (CheckSums) → Alto consumo de CPU

e overhead de 10-20%

• Utiliza a lógica do VirtualBox Guest

Additions

• Somente em hosts de 64 bits com

Windows guests.

Page 29: VirtualBox - Instituto de Computaçãoedson/disciplinas/mo801/2012-2s/seminario/Mario.pdf · VirtualBox IC 25 Memory Ballooning • Mudança da quantidade de memória reservada para

VirtualBox

IC

29

VirtualBox

Obrigado!

Dúvidas?

Page 30: VirtualBox - Instituto de Computaçãoedson/disciplinas/mo801/2012-2s/seminario/Mario.pdf · VirtualBox IC 25 Memory Ballooning • Mudança da quantidade de memória reservada para

VirtualBox

IC

30

Referências

• https://www.virtualbox.org/wiki/Documen

tation

– Manual do usuário

– SDK

• http://www.dc.uba.ar/events/eci/2008/co

urses/n2/Virtualization-Introduction.ppt

• https://blogs.oracle.com/matheus/entry/d

iscutindo_virtualização_parte_1