Escolar Documentos
Profissional Documentos
Cultura Documentos
Nvel: Avanado Escopo: Cdigo e processo de desenvolvimento do kernel Pr-requisitos: Noes bsicas sobre o kernel Linux e seu processo de desenvolvimento
Contedo
Introduo Paravirtualization, full-virtualization, etc. Linux-based virtualization KVM Mudanas no kernel Trabalhando upstream Concluso
Eduardo Habkost
Contedo
Introduo Paravirtualization, full-virtualization, etc. Linux-based virtualization KVM Mudanas no kernel Trabalhando upstream Concluso
Eduardo Habkost
Full-virtualization
Parece de verdade!
Parece uma mquina 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
Eduardo Habkost
Paravirtualizao
Eu sei que de mentira
Kernel do guest modicado Xen lguest VMI (VMWare) User-mode Linux (por que no?) Comunicao com o hypervisor atravs de hypercalls
Eduardo Habkost
Paravirtualized drivers
Um agente inltrado
Ainda parece mquina 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 (genrico), drivers do VMWare
Eduardo Habkost
Contedo
Introduo Paravirtualization, full-virtualization, etc. Linux-based virtualization KVM Mudanas no kernel Trabalhando upstream Concluso
Eduardo Habkost
Linux-based virtualization
Bare metal:
Eduardo Habkost
Linux-based virtualization
Xen (teoria):
Eduardo Habkost
Linux-based virtualization
Xen (prtica):
Eduardo Habkost
Linux-based virtualization
KVM:
Eduardo Habkost
Contedo
Introduo Paravirtualization, full-virtualization, etc. Linux-based virtualization KVM Mudanas no kernel Trabalhando upstream Concluso
Eduardo Habkost
KVM
Kernel-based Virtual Machine
Context switches a menos Kernel: virtualizao da CPU, exposta via /dev/kvm Userspace (qemu modicado): I/O, UI, poltica
Eduardo Habkost Virtualizao e kernel, vistos por dentro
Contedo
Introduo Paravirtualization, full-virtualization, etc. Linux-based virtualization KVM Mudanas no kernel Trabalhando upstream Concluso
Eduardo Habkost
Mudanas no kernel
Eduardo Habkost
paravirt_ops
Paravirtualizao Antes: recompilao do kernel do guest para suportar paravirt Agora: mesma imagem do kernel, vrios guests Truques para substituir cdigo on-the-y (parecido com SMP alternatives) Incio: 2.6.20 (i386), lguest Hoje: x86 (32 e 64-bits), ia64 Usurios hoje: lguest, VMI, Xen, KVM (paravirt. drivers)
Eduardo Habkost
Unicao x86
i386, x86_64 -> x86 Muito cdigo parecido e duplicado Muito cdigo i386 usado silenciosamente em x86_64: fcil de cometer erros Features novas precisavam ser reimplementadas (ex.: paravirt_ops) Ainda existem arquivos *_32.c e *_64.c a unicar
Eduardo Habkost
VirtIO
Padro 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 Soluo de paravirtualized drivers para o KVM Tambm existe esforo para suportar no Xen
Eduardo Habkost
Contedo
Introduo Paravirtualization, full-virtualization, etc. Linux-based virtualization KVM Mudanas no kernel Trabalhando upstream Concluso
Eduardo Habkost
Trabalhando upstream
Enviar seu cdigo upstream d trabalho O kernel um alvo mvel Mas vale a pena. Seno voc vai ter que escolher:
Fica preso a uma verso pr-histrica do kernel; ou Tem ainda mais trabalho, podendo ser tarde demais
Eduardo Habkost
Trabalhando upstream
Enviar seu cdigo upstream d trabalho O kernel um alvo mvel Mas vale a pena. Seno voc vai ter que escolher:
Fica preso a uma verso pr-histrica do kernel; ou Tem ainda mais trabalho, podendo ser tarde demais
Eduardo Habkost
Trabalhando upstream
Enviar seu cdigo upstream d trabalho O kernel um alvo mvel Mas vale a pena. Seno voc vai ter que escolher:
Fica preso a uma verso pr-histrica do kernel; ou Tem ainda mais trabalho, podendo ser tarde demais
Eduardo Habkost
Trabalhando upstream
Enviar seu cdigo upstream d trabalho O kernel um alvo mvel Mas vale a pena. Seno voc vai ter que escolher:
Fica preso a uma verso pr-histrica do kernel; ou Tem ainda mais trabalho, podendo ser tarde demais
Eduardo Habkost
Trabalhando upstream
Enviar seu cdigo upstream d trabalho O kernel um alvo mvel Mas vale a pena. Seno voc vai ter que escolher:
Fica preso a uma verso pr-histrica do kernel; ou Tem ainda mais trabalho, podendo ser tarde demais
Eduardo Habkost
Trabalhando upstream
Enviar seu cdigo upstream d trabalho O kernel um alvo mvel Mas vale a pena. Seno voc vai ter que escolher:
Fica preso a uma verso pr-histrica do kernel; ou Tem ainda mais trabalho, podendo ser tarde demais
Eduardo Habkost
Eduardo Habkost
Eduardo Habkost
Eduardo Habkost
Eduardo Habkost
o chamado forward-port
Eduardo Habkost
Eduardo Habkost
Eduardo Habkost
Eduardo Habkost
Eduardo Habkost
paravirt_ops usado em muitos pontos do cdigo tambm modicados pelo patch do Xen
Eduardo Habkost Virtualizao e kernel, vistos por dentro
Eduardo Habkost
Eduardo Habkost
Eduardo Habkost
Eduardo Habkost
Eduardo Habkost
Eduardo Habkost
O trabalho para incluir todas as features do Xen do 2.6.18 grande Ningum sabe quando isso vai estar pronto... Emulando o hypervisor Xen usando o KVM: Xenner
Eduardo Habkost
O trabalho para incluir todas as features do Xen do 2.6.18 grande Ningum sabe quando isso vai estar pronto... Emulando o hypervisor Xen usando o KVM: Xenner
Eduardo Habkost
O trabalho para incluir todas as features do Xen do 2.6.18 grande Ningum sabe quando isso vai estar pronto... Emulando o hypervisor Xen usando o KVM: Xenner
Eduardo Habkost
O trabalho para incluir todas as features do Xen do 2.6.18 grande Ningum sabe quando isso vai estar pronto... Emulando o hypervisor Xen usando o KVM: Xenner
Eduardo Habkost
Xenner
Usa /dev/kvm Excelente candidato para usar um futuro kvm-lite Utiliza parte do cdigo userspace Xen Mesmo que o Xen tradicional que pra trs, a ABI pode demorar a morrer
Eduardo Habkost
Contedo
Introduo Paravirtualization, full-virtualization, etc. Linux-based virtualization KVM Mudanas no kernel Trabalhando upstream Concluso
Eduardo Habkost
Futuro
Integrao com o qemu upstream kvm-lite? O que vai acontecer com o Xen?
Eduardo Habkost
libvirt: API pra gerenciar VMs (Xen, KVM, outros) virt-manager: GUI oVirt: interface de gerenciamento
Eduardo Habkost
Referncias
Esta apresentao: 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/ Unicao x86: http://www.glommer.net/blogs/?p=265
Eduardo Habkost Virtualizao e kernel, vistos por dentro
Perguntas?
Eduardo Habkost
Obrigado
Eduardo Habkost