Virtualisation Redhat

Embed Size (px)

Citation preview

  • 7/29/2019 Virtualisation Redhat

    1/28

    Virtualisation sous Linuxune volution maitrise ?

    Daniel Veillard

    [email protected]

  • 7/29/2019 Virtualisation Redhat

    2/28

    Une jungle d'acronymes

    Xen

    KVM

    VMWare

    UML

    QEmu

    OpenVZ

    VServer

    VirtualBox

    VirtualIron

    lguest

  • 7/29/2019 Virtualisation Redhat

    3/28

    Dfinition et but

    Dfinition: Dcoupler les ressources informatique de leur implmentation

    But: abstraire le matriel pour s'en affranchir

    Machine Virtuelle Processeurs virtuels Mmoire Priphriques rels ou muls

    Stockage Virtualis Disque distants Disques locaux muls

    Transition du multitche au multi-OS

  • 7/29/2019 Virtualisation Redhat

    4/28

    Benefices de la virtualisation

    Les bnfices sont de deux ordres : Rduction des couts

    Meilleure gestion de la capacit

    Simplification de la maintenance Mise a l'chelle

    Rduction des risques Isolation et scurit des services Indpendance matrielle Redondance aise

  • 7/29/2019 Virtualisation Redhat

    5/28

    Exemple: une salle machine

    Contraintes physiques Taille, nergie, climatisation

    Surdimensione

    Utilisation moyenne 10 - 30% Un serveur par application/client

    Simplification de la gestion, facturation Scurit

    Problmes Couts Administration

  • 7/29/2019 Virtualisation Redhat

    6/28

    La virtualisation en action

    Politique de

    Scurisation

    Rpartition dynamique decharge

    Pas d'interruption de service,

    migration

    Consolidation de serveurs sous-utiliss

  • 7/29/2019 Virtualisation Redhat

    7/28

    Des virtualisations

    mulateurs: simulation complte de la machine ex. QEmu, Hercules

    Virtualisation complte: Rutilise le processeur natif quand possible OS client non modifie, requiers support matriel

    Para-virtualisation: OS client recompil pour la machine virtuelle

    Conteneurs: Un seul OS, avec des primitives de cloisonnement

    Autres: R-criture au vol (VMWare)

    Matriel virtualis (mainframes)

  • 7/29/2019 Virtualisation Redhat

    8/28

    Technique de virtualisation

    Problme Le jeu d'instruction du i386 n'est pas virtualisable

    mulation complte (QEmu)

    Contrle total, mais lent Rcriture du code au vol (VMWare)

    Plus rapide mais trs complexe Paravirtualisation

    Recompilation pour la plateforme virtuelle, idal Virtualisation matrielle

    Nouveaux CPUs, reste complexe

  • 7/29/2019 Virtualisation Redhat

    9/28

    Virtualisation avec hyperviseur

    Materiel

    Hyperviseur

    Domaine

    Noyau

    Hyperviseur isole les noyaux du materiel, ex. Xen

  • 7/29/2019 Virtualisation Redhat

    10/28

    Virtualisation sans hyperviseur ddi

    Materiel

    Domaine Domaine Domaine

    Noyau

    Noyau Noyau

    Le noyau principal est l'hyperviseur, ex. KVM

  • 7/29/2019 Virtualisation Redhat

    11/28

    Virtualisation avec un seul noyau

    Matriel

    Domaine

    Noyau

    Le noyau sert tous les domaines Partition des priphriques Allocations mmoire/CPU unifies

    DomaineDomaine

  • 7/29/2019 Virtualisation Redhat

    12/28

    Facteurs determinants

    Capacits d'mulation Performances Scurit

    Occupation mmoire, disque Fonctionnalits:

    Tuning drivers Snapshots Migrations a froid/a chaud

    Outils d'administration Couts

  • 7/29/2019 Virtualisation Redhat

    13/28

    Compromis flexibilit/performances

    Flexibilit

    Performances

    Emulation

    conteneurs

    Virtualisation

    paravirtualisation

    Virtualisation +

    pilotes paravirtuels

  • 7/29/2019 Virtualisation Redhat

    14/28

    QEmu

    Emulateur, CPU et Materiel Nombreuse plateformes emulees Auteur principal Fabrice Bellard

    Reutilise par d'autres outils (Xen, KVM)

  • 7/29/2019 Virtualisation Redhat

    15/28

    Xen

    Projet de Recherche, Cambridge UK Paravirtualisation de Windows et Linux Licence GPL

    Prsentation a OLS 2004 Performances intressantes Virtualisation complte (Qemu + support processeur) Intgration partielle dans Linux 2.6.23

    Rachat par Citrix Coopration avec Microsoft

  • 7/29/2019 Virtualisation Redhat

    16/28

    Architecture de Xen

    RHEL

    Matriel

    Hyperviseur XenContrle

    Pilotes

    virtuels

    domUdom0

    Pilotes

    virtuels

    Pilotes

    rels

    Domaine0

    Privilgi, gre les priphriques.

    Fournit les interfaces de contrle

    et outils de gestion

    Hyperviseur Xen

    routage IRQ, squenceur , and communications entre domaines.

    Implmente le partage transparent des ressources avec les pilotes

    rels et limitations d'usage

    Domaine non privilgi:

    Machine Virtuelle

    CPU, Memoire, Stockagevirtualiss

  • 7/29/2019 Virtualisation Redhat

    17/28

    Xen: nombreuses fonctionnalits

    Cycle de vie classique de la machine virtuelle Sauvegarde/restauration de l'image mmoire Migration a froid et a chaud

    Redimentionnement memoire et CPUs a chaud Pilotes de priphriques complets via Linux Bon support i386/x86_64 , ia64

    Robuste, beaucoup de tests Isolation correcte mais pas absolue Bonne performances en paravirtualisation

  • 7/29/2019 Virtualisation Redhat

    18/28

    KVM: le challenger

    Integre au source de linux depuis 2.6.20 Virtualisation complte Ncessite support matriel (Inter VT or AMD-V) Utilise QEMU pour la partie mulation Avi Kivity (Qumranet) et de nombreux partenaires Fonctionnalits augmentent:

    Support processeurs S390, ia64, ppc64 Migration

    Drivers paravirtuels linux/Windows Port FreeBSD

  • 7/29/2019 Virtualisation Redhat

    19/28

    UML User Mode Linux

    Inclus dans les noyau 2.6.x linux est un programme Faible performances

    Tres simple a mettre en oeuvre

  • 7/29/2019 Virtualisation Redhat

    20/28

    VServer

    Containers pour Linux depuis tres longtemps (patch) Partage du systeme Interception des appels systemes

    Pas d'emulation, tres rapide Ordonnanceur unique Un seul noyau Modele reseau tres simple

  • 7/29/2019 Virtualisation Redhat

    21/28

    OpenVZ

    Patch pour noyaux recents, modele a container Implementation plus complexe que Vserver Scheduler a deux niveau

    Virtualisation du reseau Tuning tres avance, I/O, reseau et CPU Checkpointing, migration a chaud Base de Virtuozzo solution proprietaire

  • 7/29/2019 Virtualisation Redhat

    22/28

    Compromis flexibilit/performances

    Flexibilit

    Performances

    QEmu

    OpenVZ

    Xen - FV

    Xen - PV

    Xen FV + PilotesVMWare

    KVM

    UML

    VServer

  • 7/29/2019 Virtualisation Redhat

    23/28

    Evolution: integration,uniformisation

    Au niveau du matriel Support pour la virtualisation, partitionnement des CPU Partitionnement, QoS pour les entres/sorties

    Au niveau du noyau linux Primitives de virtualisation av-ops Intgration de Xen Amlioration de KVM (appel systmes)

    Au niveau applicatif API d'isolation libvirt Problme de l'affichage, accs GPU Outils systmes

    'Appliances' Systme + Application prt a l'emploi

  • 7/29/2019 Virtualisation Redhat

    24/28

    PV-Ops

    Linus 'mettez-vous d'accord !' API dans le Noyau pour la virtualisation

    Virtualisation de l'espace memoire, CPU et I/O

    Rutilisable par Xen, VMWare, KVM ... Plus de patch noyaux Interface stable

    I386 pv-ops dans le noyau standard X86_64 en cours Noyau unifie pour Domaine 0 et les noyaux clients

  • 7/29/2019 Virtualisation Redhat

    25/28

    Libvirt

    API stable pour la virtualisation LGPL http://libvirt.org/ API Generique (Xen, Qemu, KVM, OpenVZ, ...) Relativement portable Solaris, Windows, OS-X...

    Operations de base Crer/dtruire/suspendre/sauver/migrer Description XML des machines virtuelles Statistiques, support NUMA

    Ecrit en C Bindings python, perl, Java, Ocaml, Ruby

    http://libvirt.org/http://libvirt.org/
  • 7/29/2019 Virtualisation Redhat

    26/28

    Libvirt et compagnie

    Virsh: shell de contrle de la virtualisation Virt-manager: interface graphique de management

    Cycle de vie complet

    Cration, migration Console locale et distantes Libvirt-CIM

    implmentation CIM par IBM (LGPL) Pegasus et SFCB Xen et KVM

    Cobbler: Environnement d'installations automatiques Koan agent de rinstallation

  • 7/29/2019 Virtualisation Redhat

    27/28

    Conclusions

    De nombreuses solutions Des besoins trs divers Intgration lente mais en progrs

    Le matriel doit voluer Changement des habitudes de travail

  • 7/29/2019 Virtualisation Redhat

    28/28

    Questions?

    [email protected] | www.redhat.com