Virtualização e kernel, vistos por dentro

Documentos relacionados
Máquinas Virtuais E eu com isso???

Virtualização: VMWare e Xen

Máquinas Virtuais. Virtualização Tornar virtual. Exemplo comum de Virtualização PORTABILIDADE

SISTEMAS OPERACIONAIS. Maquinas Virtuais e Emuladores

Sistemas Operacionais 1/66

Sistemas Operacionais. Roteiro. Sistemas de Computadores. Os sistemas de computadores são projetados com basicamente 3 componentes: Marcos Laureano

Introdução a Virtualização. Sergio Roberto Charpinel Junior Profa. Roberta Lima Gomes

Capítulo 1. Introdução

Virtualização Gerencia de Redes Redes de Computadores II

Prof. José Maurício S. Pinheiro UniFOA

Aplicações. Sistema Operacional Hardware. Os sistemas de computadores são projetados com basicamente 3 componentes: Máquinas Virtuais e Emuladores

Agenda. Histórico Máquinas virtuais X Emuladores Vantagens & Desvantagens Vmware Quemu Xen UML Comparação entre VM's Conclusão

Computação na Nuvem: Virtualização e Migração de VM. André Meireles Estêvão Monteiro Monique Soares

4 Estrutura do Sistema Operacional Kernel

Prefácio da Edição Brasileira 11 Editorial 19

Virtualização de Máquinas Uma experiência baseada em ferramentas livres

Análise Comparativa de Desempenho do Hipervisor Xen: Paravirtualização versus Virtualização Total

Virtualização de Máquinas Uma experiência baseada em ferramentas livres

Gabriel Oliveira do Nascimento Rogério Libarino Aguilar. UFF - Universidade Federal Fluminense

SFD Carla Souza Otacílio Lacerda

Máquinas Virtuais com o VirtualBox

poupar o meio ambiente. O Gartner declarou que a TI verde é a tendência do ano em Se a questão for virtualizar aplicações

Infra-Estrutura de Software. Introdução. (cont.)

DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS. PROFª. M.Sc. JULIANA H Q BENACCHIO

Introdução. O que vimos. Infraestrutura de Software. (cont.) História dos Sistemas Operacionais. O que vimos 12/03/2012. Primeira geração:

Virtualização. O conceito de VIRTUALIZAÇÃO

Paravirtualização com o XEN no Debian. Aldrey Galindo

A SALA DE AULA é meu paraíso. Nela me realizo, nela exercito minha cidadania e nela me sinto útil.

Instituto de Computação - Unicamp MO801 - Tópicos em Arquitetura e Hardware - Máquinas Virtuais Seminário

Alta disponibilidade em máquinas

Sistemas Operacionais

ATIVIDADE 1 MÁQUINAS VIRTUAIS. 1.1 Arquiteturas não virtualizadas

Resumo até aqui. Gerenciamento Proteção Compartilhamento. Infra-estrutura de Software

Redes de Computadores

A Academia Brasileira de Letras diz que este verbete não existe.

Sistemas Operacionais

UNIVERSIDADE FEDERAL DE SANTA CATARINA UFSC DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA INE BACHARELADO EM CIÊNCIAS DA COMPUTAÇÃO.

Gerenciamento de sistemas GNU/Linux: do computador pessoal à rede corporativa

SISTEMAS OPERACIONAIS

Virtualização e Consolidação de Centro de Dados O Caso da UTAD António Costa - acosta@utad.pt

Sistemas Operacionais. Conceitos de um Sistema Operacional

INE Sistemas Operacionais I

Introdução à Computação em Nuvem

ESTUDO DE CASO WINDOWS VISTA

Virtualização. Presente e futuro

Hypervisor. Diego Souza Gomes 3 de maio de 2007

Mantenha suas instâncias virtuais com o pacote de aplicativos RHEV da Red Hat. Malabarista virtual

Operador de Computador. Informática Básica

TRABALHO COM GRANDES MONTAGENS

ENDEREÇOS DE REDE PRIVADOS até até até Kernel

VirtualBox Mario Hato Instituto de Computação UNICAMP VirtualBox

AULA: Introdução à informática Computador Digital

Xen Básico sobre Plano de Fundo e Virtualização

Introdução Dalvik Linux 2.6. Android. Diogo de Campos, João Paulo Pizani Flor, Maurício Oliveira Haensch, Pedro Covolan Bachiega

Como criar máquinas virtuais no VMware ESXi

Unidade III FUNDAMENTOS DE SISTEMAS. Prof. Victor Halla

COORDENAÇÃO DE TECNOLOGIA (COTEC) ABRIL/2011

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação

Sistemas Operacionais

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

Sistemas Operacionais. Patrícia Megumi Matsumoto Luciana Maria Gregolin Dias

Introdução a Informática - 1º semestre AULA 02 Prof. André Moraes

ARQUITETURA DE COMPUTADORES E SISTEMAS OPERACIONAIS P/ CONCURSOS PÚBLICOS FOCO: ESAF/CESGRANRIO/FCC. Prof. Almeida Jr

Laboratório de Redes de Computadores e Sistemas Operacionais

HOW TO Alterando o tipo de interface de rede na VmWare para uso no Aker Firewall 6.7

ESTRUTURA DE UM SISTEMA OPERACIONAL

6 - Gerência de Dispositivos

Virtualização e Criação de uma rede Virtual utilizando Virtual Box Professor: João Paulo de Brito Gonçalves

Xen e a Arte da Virtualização

Virtualização de Software

Prof. Victor Halla. Unidade IV FUNDAMENTOS DE SISTEMAS

IARA ROBENI DE OLIVEIRA SILVA AVALIAÇÃO DE HIPERVISORES QUANTO AO DESEMPENHO DE REDE


Soluções de Gerenciamento de Clientes e de Impressão Universal

Virtualização - VMWare e Xen

ANDRE KUSUMOTO VIRTUALIZAÇÃO

Marcos Vinicios Marques Professor Cidão. Professor Marcelo Neves

Noções sobre sistemas operacionais, funcionamento, recursos básicos Windows

Sistemas Operacionais Gerência de Dispositivos

Desenvolvimento para Sistemas Embarcados (CEA 513) Conceitos Gerais

SISTEMAS OPERACIONAIS 2007

SAIBA MAIS SOBRE O LINUX E DESCUBRA QUAL DISTRIBUIÇÃO É MELHOR PARA VOCÊ! CURSO

SOFTWARE LIVRE. Distribuições Live CD. Kernel. Distribuição Linux

Integração de Sistemas Embebidos MECom :: 5º ano

Sistemas Operacionais

UNIVERSIDADE ANHEMBI MORUMBI DÊNIO ROBSON VAL SILVA FELIPE BARATOJO FLORES NEIDE SOARES SALES

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO

Inicialização rápida da instalação SUSE Linux Enterprise Server 11 SP1

Introdução Âmbito do Documento

FUNDAMENTOS DE HARDWARE COMO FUNCIONA UM PC? Professor Carlos Muniz

Gerência de Redes de Computadores. 05 Gerência de Hospedeiros (Hosts)

Organização do Curso. Instalação e Configuração. Módulo II. Pós Graduação em Projeto e Gerencia de Redes de Computadores

UFRJ IM - DCC. Sistemas Operacionais I. Unidade I Introdução. 11/02/2014 Prof. Valeria M. Bastos

CONSELHO REGIONAL DE ENFERMAGEM DE SÃO PAULO COMUNICADO 01

CA Access Control for Virtual Environments

VirtuOS vrs para usuários da vrs. 3.01a R.10

Transcrição:

ehabkost@redhat.com Tchelinux Porto Alegre 2008 Nível: Avançado Escopo: Código e processo de desenvolvimento do kernel Pré-requisitos: Noções básicas sobre o kernel Linux e seu processo de desenvolvimento

Conteúdo Introdução 1 Introdução Paravirtualization, full-virtualization, etc. 2 ualization KVM Mudanças no kernel 3 Trabalhando upstream 4

Conteúdo Introdução Paravirtualization, full-virtualization, etc. 1 Introdução Paravirtualization, full-virtualization, etc. 2 ualization KVM Mudanças no kernel 3 Trabalhando upstream 4

Full-virtualization Parece de verdade! Introdução Paravirtualization, full-virtualization, etc. Parece uma máquina de verdade VMWare, Qemu (com ou sem kqemu), Bochs, outros Ou com ajuda do hardware (AMD-V, Intel-VT) Suportado pelo Xen No Linux: KVM Performance ruim para I/O Fácil para o hardware fácil para o software Operação de I/O pula para o host

Paravirtualização Eu sei que é de mentira Introdução Paravirtualization, full-virtualization, etc. Kernel do guest modificado Xen lguest VMI (VMWare) User-mode Linux (por que não?) Comunicação com o hypervisor através de hypercalls

Paravirtualized drivers Um agente infiltrado Paravirtualization, full-virtualization, etc. Ainda parece máquina de verdade Mas com um hardware meio diferente Exemplo: device driver disk do VMWare Para o SO, é só um hardware diferente que precisa de um driver O driver conversa com o hypervisor O melhor dos dois mundos Exemplos: Xenbus (Xen), VirtIO (genérico), drivers do VMWare

Conteúdo Introdução KVM Mudanças no kernel 1 Introdução Paravirtualization, full-virtualization, etc. 2 ualization KVM Mudanças no kernel 3 Trabalhando upstream 4

ualization KVM Mudanças no kernel Bare metal:

ualization KVM Mudanças no kernel Xen (teoria):

ualization KVM Mudanças no kernel Xen (prática):

ualization KVM Mudanças no kernel KVM:

Conteúdo Introdução KVM Mudanças no kernel 1 Introdução Paravirtualization, full-virtualization, etc. 2 ualization KVM Mudanças no kernel 3 Trabalhando upstream 4

KVM Kernel-based Virtual Machine Introdução KVM Mudanças no kernel Full-virtualization Precisa de suporte na CPU Aproveita: scheduler proteção entre processos; permissões gerenciamento de energia drivers gerenciamento de memória Context switches a menos Kernel: virtualização da CPU, exposta via /dev/kvm Userspace (qemu modificado): I/O, UI, política

Conteúdo Introdução KVM Mudanças no kernel 1 Introdução Paravirtualization, full-virtualization, etc. 2 ualization KVM Mudanças no kernel 3 Trabalhando upstream 4

Mudanças no kernel Introdução KVM Mudanças no kernel KVM lguest: simples, paravirtualização paravirt_ops Unificação x86 VirtIO

paravirt_ops Introdução KVM Mudanças no kernel Paravirtualização Antes: recompilação do kernel do guest para suportar paravirt Agora: mesma imagem do kernel, vários guests Truques para substituir código on-the-fly (parecido com SMP alternatives) Início: 2.6.20 (i386), lguest Hoje: x86 (32 e 64-bits), ia64 Usuários hoje: lguest, VMI, Xen, KVM (paravirt. drivers)

Unificação x86 Introdução KVM Mudanças no kernel i386, x86_64 -> x86 Muito código parecido e duplicado Muito código i386 usado silenciosamente em x86_64: fácil de cometer erros Features novas precisavam ser reimplementadas (ex.: paravirt_ops) Ainda existem arquivos *_32.c e *_64.c a unificar

VirtIO Introdução KVM Mudanças no kernel Padrão de-facto para dispositivos virtuais ABI guest host API para drivers Dispositivos aparecem como um dispositivo PCI Drivers comuns (virtio-net, virtio-blk, etc.) A Solução de paravirtualized drivers para o KVM Também existe esforço para suportar no Xen

Conteúdo Introdução 1 Introdução Paravirtualization, full-virtualization, etc. 2 ualization KVM Mudanças no kernel 3 Trabalhando upstream 4

Trabalhando upstream Enviar seu código upstream dá trabalho O kernel é um alvo móvel Mas vale a pena. Senão você vai ter que escolher: Fica preso a uma versão pré-histórica do kernel; ou Tem ainda mais trabalho, podendo ser tarde demais O Xen é um bom exemplo didático

Trabalhando upstream Enviar seu código upstream dá trabalho O kernel é um alvo móvel Mas vale a pena. Senão você vai ter que escolher: Fica preso a uma versão pré-histórica do kernel; ou Tem ainda mais trabalho, podendo ser tarde demais O Xen é um bom exemplo didático

Trabalhando upstream Enviar seu código upstream dá trabalho O kernel é um alvo móvel Mas vale a pena. Senão você vai ter que escolher: Fica preso a uma versão pré-histórica do kernel; ou Tem ainda mais trabalho, podendo ser tarde demais O Xen é um bom exemplo didático

Trabalhando upstream Enviar seu código upstream dá trabalho O kernel é um alvo móvel Mas vale a pena. Senão você vai ter que escolher: Fica preso a uma versão pré-histórica do kernel; ou Tem ainda mais trabalho, podendo ser tarde demais O Xen é um bom exemplo didático

Trabalhando upstream Enviar seu código upstream dá trabalho O kernel é um alvo móvel Mas vale a pena. Senão você vai ter que escolher: Fica preso a uma versão pré-histórica do kernel; ou Tem ainda mais trabalho, podendo ser tarde demais O Xen é um bom exemplo didático

Trabalhando upstream Enviar seu código upstream dá trabalho O kernel é um alvo móvel Mas vale a pena. Senão você vai ter que escolher: Fica preso a uma versão pré-histórica do kernel; ou Tem ainda mais trabalho, podendo ser tarde demais O Xen é um bom exemplo didático

Uma história sobre trabalho upstream Árvore do kernel separada com suporte ao Xen, 2.6.18

Uma história sobre trabalho upstream Não boa o suficiente para envio upstream

Uma história sobre trabalho upstream E daí?

Uma história sobre trabalho upstream Novo kernel: 2.6.19

Uma história sobre trabalho upstream Algumas distribuições adaptam o código para o 2.6.19 É o chamado forward-port

Uma história sobre trabalho upstream XenSource continua usando o 2.6.18...

Uma história sobre trabalho upstream Novo kernel: 2.6.20

Uma história sobre trabalho upstream Distribuições fazem forward-port para o 2.6.20 Um pouco mais complicado: paravirt_ops começa a entrar

Uma história sobre trabalho upstream XenSource continua usando o 2.6.18...

Uma história sobre trabalho upstream Novo kernel: 2.6.21

Uma história sobre trabalho upstream 2.6.21: Forward-port realmente complicado paravirt_ops usado em muitos pontos do código também modificados pelo patch do Xen

Uma história sobre trabalho upstream Novo kernel: 2.6.22

Uma história sobre trabalho upstream Quatro versões do kernel sem Xen oficial

Uma história sobre trabalho upstream E a XenSource ainda no kernel 2.6.18

Uma história sobre trabalho upstream Nem todo mundo chega a portar para 2.6.22

Uma história sobre trabalho upstream 2.6.23

Uma história sobre trabalho upstream Forward-port mostra-se um trabalho sem fim Tem que ter alguma outra solução

Uma história sobre trabalho upstream E a XenSource continua tendo que manter sua árvore do 2.6.18 Com correções de bugs, segurança, suporte a hardware

Nem tudo está perdido A partir do 2.6.26, algum suporte para o Xen entrou

Nem tudo está perdido 2.6.27 está um pouco melhor Mas ainda falta muita coisa

Nem tudo está perdido O trabalho para incluir todas as features do Xen do 2.6.18 é grande Ninguém sabe quando isso vai estar pronto... Emulando o hypervisor Xen usando o KVM: Xenner

Nem tudo está perdido O trabalho para incluir todas as features do Xen do 2.6.18 é grande Ninguém sabe quando isso vai estar pronto... Emulando o hypervisor Xen usando o KVM: Xenner

Nem tudo está perdido O trabalho para incluir todas as features do Xen do 2.6.18 é grande Ninguém sabe quando isso vai estar pronto... Emulando o hypervisor Xen usando o KVM: Xenner

Nem tudo está perdido O trabalho para incluir todas as features do Xen do 2.6.18 é grande Ninguém sabe quando isso vai estar pronto... Emulando o hypervisor Xen usando o KVM: Xenner

Xenner Introdução Usa /dev/kvm Excelente candidato para usar um futuro kvm-lite Utiliza parte do código userspace Xen Mesmo que o Xen tradicional fique pra trás, a ABI pode demorar a morrer

Conteúdo Introdução 1 Introdução Paravirtualization, full-virtualization, etc. 2 ualization KVM Mudanças no kernel 3 Trabalhando upstream 4

Futuro Introdução Mais paravirtualização Mais performance zero-copy I/O (disco, rede) PCI passthrough Video: SPICE Integração com o qemu upstream kvm-lite? O que vai acontecer com o Xen?

Olhando para cima O mundo não é só feito de kernel libvirt: API pra gerenciar VMs (Xen, KVM, outros) virt-manager: GUI ovirt: interface de gerenciamento

Referências Introdução Esta apresentação: http://raisama.net/talks/virt-2008/ virtio: towards a de-facto standard for virtual I/O devices, by Rusty Russel KernelNewbies Virtualization Wiki: http://virt.kernelnewbies.org/ KVM: http://kvm.qumranet.com/ lguest: http://lguest.ozlabs.org/ Xenner: http://kraxel.fedorapeople.org/xenner/ Unificação x86: http://www.glommer.net/blogs/?p=265

Perguntas?

Obrigado