Mai 2012 Département d Informatique Université Libre de Bruxelles
1 Introduction 2 Avantages Inconvénients 3 4 Virtualisation complète Paravirtualisation Virtualisation au niveau du système d exploitation 5 Xen Hyper-V Oracle VM VirtualBox VMware ESXi Virtuozzo 6
1 Introduction 2 3 4 5 6
La virtualisation, c est quoi? Plusieurs définitions...
Virtualization is a term that refers to the abstraction of computer resources. http ://www.petri.co.il/server-virtualization-network-virtualization-storage-virtualization.htm
Virtualization is a framework or methodology of dividing the resources of a computer into multiple execution environments, by applying one or more concepts or technologies such as hardware and software partitioning, time-sharing, partial or complete machine simulation, emulation, quality of service, and many others. http ://www.kernelthread.com/publications/virtualization/
Virtualization is the creation of a virtual (rather than actual) version of something, such as a hardware platform, operating system, storage device, or network resources. http ://en.wikipedia.org/wiki/virtualization
La virtualisation repose donc sur trois éléments importants : L abstraction des ressources ; La division des ressources ; La créaction d éléments virtuels.
La virtualisation est un processus qui va permettre d abstraire les caractéristiques physiques d une ressource informatique, de manière à pouvoir diviser celle-ci, et d allouer une fraction des ressources aux éléments virtuels qui seront créés.
La virtualisation est applicable à plusieurs domaines : les applications ; les structures de communication ; les structures de stockage ; les systèmes d exploitations.
La virtualisation d applications : Abstraire la plateforme d exécution des applications ; Améliorer la portabilité et la compatibilité des applications ; Isoler les applications et leur contexte d exécution au sein d environnements autonomes ; Exemples : Java Runtime Environment Wine
La virtualisation des structures de communication : Abstraire les ressources physiques (routeurs, liens ethernet, pare-feux,...) ; Etre en mesure de partager une même infrastructure intelligemment ; Créer plusieurs réseaux virtuels isolés : limitation du traffic broadcast ; amélioration de la sécurité ; meilleure flexibilité.
http ://www.automation.com/resources-tools/articles-white-papers/industrial-ethernet/introduction-to-virtual-lans
La virtualisation de stockage : Abstraire les spécificités techniques des supports de stockage ; Uniformiser l accès et la gestion du volume de stockage ; Etre en mesure de partager les ressources de stockage comme s il s agissait d un volume homogène ; Supervisé par un Logical Volume Manager.
s : Abstraire une plate-forme physique complète : processeurs ; mémoire ; interfaces réseau ;... Répartir les ressources parmi plusieurs systèmes d exploitations s exécutant simultanément ;
Avantages Inconvénients 1 Introduction 2 3 4 5 6
Avantages Inconvénients 2 Avantages Inconvénients
Avantages Inconvénients Réduction du coût d acquisition et de maintenance, liée à plusieurs facteurs : Réduction de l infrastructure physique ; Migrer les serveurs existant sur une seule plate-forme physique ; L ajout d un serveur ne nécessite plus l acquisitation d une nouvelle machine ;
Avantages Inconvénients Si je veux migrer x serveurs sur une seule machine, il me faut une machine x fois plus puissante, non?
Avantages Inconvénients Réduction du coût d acquisition et de maintenance, liée à plusieurs facteurs : Meilleure rentabilité du matériel ; Les serveurs classiques ne sont en activité que 5 à 15% du temps (source : VMware).
Avantages Inconvénients Quid si les x serveurs consommaient chacun l entièreté des ressources mises à leur disposition?
Avantages Inconvénients On dispose de deux camions qui peuvent chacun transporter 10 tonnes de sable. Ces camions sont tels qu ils disposent chacun de : 6 roues ; 1 moteur de 420 chevaux (source : Volvo) ; 1 volant / 2 pédales ;
Avantages Inconvénients On dispose de deux camions qui peuvent chacun transporter 10 tonnes de sable. Ces camions sont tels qu ils disposent chacun de : 6 roues ; 1 moteur de 420 chevaux (source : Volvo) ; 1 volant / 2 pédales ; Si on souhaite un camion qui puisse transporter 20 tonnes de sable, ce camion doit-il être tel qu il dispose de : 12 roues ; 1 moteur de 840 chevaux ; 2 volants / 4 pédales ;
Avantages Inconvénients On dispose de deux camions qui peuvent chacun transporter 10 tonnes de sable. Ces camions sont tels qu ils disposent chacun de : 6 roues ; 1 moteur de 420 chevaux (source : Volvo) ; 1 volant / 2 pédales ; Si on souhaite un camion qui puisse transporter 20 tonnes de sable, ce camion doit-il être tel qu il dispose de : 12 roues ; 1 moteur de 840 chevaux ; 2 volants / 4 pédales ; Acquérir une machine trois fois plus puissante n impose pas de débourser une somme d argent trois fois plus importante!
Avantages Inconvénients Réduction du coût d acquisition et de maintenance, liée à plusieurs facteurs : Economies d énergies (et d espace) ; 35% à 50% de l énergie est consommée par les infrastructures de refroidissement (source : Gartner).
Avantages Inconvénients Reprise automatique lors d incidents, facilitée par : L abstraction de l architecture physique sous-jacente ; Davantage de liberté dans le choix du matériel ; Permet de faire jouer la concurrence ; La réduction de l infrastructure informatique ; Rend abordable la construction d un site de réplication ; L automatisation du processus de reprise.
Avantages Inconvénients Pérénniser une application aux dépendances spécifiques : Dématérialiser le lien entre une application et une plateforme ; peut être vue comme de la virtualisation d application coûteuse (puisqu il faut virtualiser une plate-forme complète). Emulation.
Avantages Inconvénients Rôle de sandbox : Tester une application non sûre ; Retours en arrière possibles grâce à des snapshots ; Contient les modifications au sein des environnements virtuels, et empêche la propagation.
Avantages Inconvénients 2 Avantages Inconvénients
Avantages Inconvénients Point de défaillance unique : Une panne matérielle impacte plusieurs serveurs simultanément ; Relancer les serveurs sur le site de réplication n est pas immédiat. Complexification des systèmes informatiques : D où provient un comportement erroné? Du serveur? De la couche virtuelle? Si la couche virtuelle est buggée, qui la corrige? Dégradation des performances : Fortement liée au type de système ; Parfois telle qu il vaut mieux ne pas virtualiser. Absence de normes de standardisation qui nuit à l interopérabilité des logiciels de virtualisation.
1 Introduction 2 3 4 5 6
En 1974 : Formal requirements for virtualizable third generation architectures, G. Popek et R. Goldberg ; Première formalisation de la notion de virtualisation ; Définition de deux termes importants : Machine Virtuelle ; Contrôleur de Machine Virtuelle ;
A virtual machine is taken to be an efficient, isolated duplicate of a real machine. Popek and Goldberg, Formal requirements for virtualizable third generation architectures
A virtual machine is taken to be an efficient, isolated duplicate of a real machine. Popek and Goldberg, Formal requirements for virtualizable third generation architectures Remarques : La machine virtuelle ne doit pas nécessairement être une copie de la plate-forme physique (cf. émulation) ; Il peut donc s agir d une reproduction d une plate-forme quelconque, mais elle doit être complète.
A virtual machine is the environment created by the virtual machine monitor. Popek and Goldberg, Formal requirements for virtualizable third generation architectures A virtual machine monitor is a program that allows multiple operating systems to share a single hardware host. http ://searchservervirtualization.techtarget.com/definition/hypervisor
Les contrôleurs de machines virtuelles doivent pouvoir respecter trois contraintes : La contrainte d équivalence ; La contrainte d efficacité ; La contrainte de contrôle des ressources.
La contrainte d équivalence : Any program run under the VMM should exhibit an effect identical with that demonstrated if the program had been run on the original machine directly, with the possible exception of differences caused by the availibility of system resources and differences caused by timing dependencies. Popek and Goldberg, Formal requirements for virtualizable third generation architectures
La disponibilité des ressources peut être limitée par : La politique de partage du moniteur de machines virtuelles ; Le nombre de machines virtuelles concurrentes. Les dépendances temporelles sont liées à l exécution concurrente de plusieurs machines virtuelles.
La contrainte d efficacité : The second characteristic of a virtual machine monitor is efficiency. It demands that a statiscally dominant subset of the virtual processor s instructions be executed directly by the real processor, with no software intervention by the VMM. Popek and Goldberg, Formal requirements for virtualizable third generation architectures
Les interventions du moniteur de machines virtuelles sont de type software : alourdissent sensiblement le traitement des instructions ; impératif de restreindre ces interventions au strict nécessaire. Les interventions du moniteur ne sont pas naturelles : Les systèmes d exploitation ne sont pas conçus pour être virtualisés (cf. suite).
La contrainte de contrôle des ressources : The VMM is said to have complete control of these resources if it is not possible for a program running under it in the created environment to access any resource not explicitly allocated and it is possible under certain circumstances for the VMM to regain control of resources already allocated. Popek and Goldberg, Formal requirements for virtualizable third generation architectures
La virtualisation doit être transparente : Les systèmes virtualisés ne doivent avoir aucune idée des ressources physique disponibles ; Les systèmes virtualisés doivent avoir l impression de contrôler les ressources ; Sécurité : Éviter l interférence entre systèmes virtuels.
Pour comprendre comment un contrôleur de machine virtuelle peut répondre à ces contraintes, il faut analyser le jeu d instructions des processeurs.
Pour comprendre comment un contrôleur de machine virtuelle peut répondre à ces contraintes, il faut analyser le jeu d instructions des processeurs. Jeu d instructions : ensemble des opérations qu un processeur est en mesure d exécuter.
Les instructions qui sont décodables par le processeur peuvent être classées dans trois catégories : Les instructions privilégiées ; Les instructions sensibles à la configuration ; Les instructions non privilégiées.
Le contrôleur de machines virtuelles est constitué de 3 sortes de modules : Le régulateur ; L allocateur ; Un ensemble d interpréteurs.
Le régulateur : Il peut être considéré comme le module de contrôle du moniteur de machines virtuelles ; Il observe les machines virtuelles et, en fonction des évênements, fait appel : soit à l allocateur ; soit à l un des interpréteurs.
L allocateur : L allocateur est chargé de la gestion des ressources physique ; Il s assure : de l attribution des ressources ; du recouvrement des ressources ; de la séparation des ressources entre les machines virtuelles d une part, et entre les machines virtuelles et le contrôleur de machines virtuelles d autre part.
Les interpréteurs : Chacun d entre-eux se charge de la gestion d une instruction privilégiée ; Leur rôle est de leurrer les machines virtuelles, en leur donnant l impression qu elles sont en mesure d exécuter n importe quoi avec le niveau de privilège le plus élevé.
Virtualisation complète Paravirtualisation Virtualisation au niveau du système d exploitation 1 Introduction 2 3 4 5 6
Contraintes Introduction Virtualisation complète Paravirtualisation Virtualisation au niveau du système d exploitation Bien qu il existe trois types différents de virtualisation, ils doivent tous les trois respecter deux contraintes : Cloisonnement Chaque système d exploitation virtualisé doit pouvoir fonctionner de manière indépendante les uns des autres. Transparance Le comportement du système d exploitation virtualisé et des applications ne doit pas être modifié.
Virtualisation complète Paravirtualisation Virtualisation au niveau du système d exploitation 4 Virtualisation complète Paravirtualisation Virtualisation au niveau du système d exploitation
Virtualisation complète Virtualisation complète Paravirtualisation Virtualisation au niveau du système d exploitation Type de virtualisation le plus connu du grand public. Il se décompose en : Système hôte Système accueillant les machines virtuelles. C est le SE installé sur la machine physique. Machines virtuelles Ce sont des copies d une machine physique sur laquelle est installée un SE.
Virtualisation complète Virtualisation complète Paravirtualisation Virtualisation au niveau du système d exploitation Un systèmé à virtualisation complète distingue deux types de requêtes d instructions : Requêtes utilisateurs directement exécutées par le CPU de la machine hôte Requêtes noyau utilisation d un traducteur binaire Traduction binaire Applications Utilisateur Noyau Système invité Hyperviseur Hardware Machine hôte Exécution immédiate des instructions applicatives
Virtualisation complète Virtualisation complète Paravirtualisation Virtualisation au niveau du système d exploitation Avantages : Possibilités de virtualiser un grand nombre de systèmes différents Aucune modification software des systèmes invités Facilité de déploiement Désavantage : Gourmant en ressource
Virtualisation complète Virtualisation complète Paravirtualisation Virtualisation au niveau du système d exploitation Cas d utilisation : Nécessité de travailler avec plusieurs SE différents Serveurs de tests Péréniser de vieilles applications
Virtualisation complète Paravirtualisation Virtualisation au niveau du système d exploitation 4 Virtualisation complète Paravirtualisation Virtualisation au niveau du système d exploitation
Paravirtualisation Introduction Virtualisation complète Paravirtualisation Virtualisation au niveau du système d exploitation Contrairement à la virtualisation complète, dans un système de paravirtualisation, les systèmes invités sont conscients qu ils sont virtualisés. Ceci est dû à : La modification des instructions processeur du SE virtualisés (appelées hyper-appels) Ces hyper-appels communiquent directement avec l hyperviseur.
Paravirtualisation Introduction Virtualisation complète Paravirtualisation Virtualisation au niveau du système d exploitation Avantage : Améliore les performances du système Désavantages : Systèmes invités doivent être modifiés moins de choix Complications de maintenances Cas d utilisation : Nécessité de performance
Virtualisation complète Paravirtualisation Virtualisation au niveau du système d exploitation 4 Virtualisation complète Paravirtualisation Virtualisation au niveau du système d exploitation
Virtualisation complète Paravirtualisation Virtualisation au niveau du système d exploitation Virtualisation au niveau du système d exploitation Egalement appelée virtualisation au niveau du noyau. Crée plusieurs espaces utilisateurs : containers. partage du noyau et accès direct au ressources physiques.
Virtualisation complète Paravirtualisation Virtualisation au niveau du système d exploitation Virtualisation au niveau du système d exploitation Avantages : Aucune couche supplémentaire pour l accès au matériel Garanti les performances du noyau et du matériel sous-jacent Désavantage : Tous les systèmes invités doivent fonctionner avec le noyau du système hôte! Cas d utilisation : Besoin de plusieurs instances du même système d exploitation
Xen Hyper-V Oracle VM VirtualBox VMware ESXi Virtuozzo 1 Introduction 2 3 4 5 6
Xen Hyper-V Oracle VM VirtualBox VMware ESXi Virtuozzo 5 Xen Hyper-V Oracle VM VirtualBox VMware ESXi Virtuozzo
Xen Introduction Xen Hyper-V Oracle VM VirtualBox VMware ESXi Virtuozzo Open-Source Développé à l Université de Cambridge et libéré en 2010 Technique : paravirtualisation (systèmes invités modifiés ou non dépend du CPU) Pas d interface graphique de configurations Systèmes invités : Linux, FreeBSD, NetBSD, Solaris Windows (selon le CPU) Figure: Logo de Xen http://www.xen.org
Xen Hyper-V Oracle VM VirtualBox VMware ESXi Virtuozzo 5 Xen Hyper-V Oracle VM VirtualBox VMware ESXi Virtuozzo
Hyper-V Introduction Xen Hyper-V Oracle VM VirtualBox VMware ESXi Virtuozzo Développé par Microsoft et sorti en 2008 Technique : paravirtualisation sur base de Windows Server 2008 Systèmes invités : Microsoft XP, 2000, Vista, 7 SUSE Linux Entreprise Server et RedHat Entreprise Linux Figure: Logo Hyper-V www.microsoft.com
Xen Hyper-V Oracle VM VirtualBox VMware ESXi Virtuozzo 5 Xen Hyper-V Oracle VM VirtualBox VMware ESXi Virtuozzo
Oracle VM VirtualBox Xen Hyper-V Oracle VM VirtualBox VMware ESXi Virtuozzo Développé par InnoTek en 2007, racheté par Sun Microsystem en 2008 Technique : virtualisation complète Interface graphique de configuration Installation de packs pour l accès aux périphériques externes Systèmes invités : Microsoft Windows Linux, Solaris, FreeBSD, NetBSD Mac Os Server Figure: Logo VirtualBox www.virtualbox.org
Xen Hyper-V Oracle VM VirtualBox VMware ESXi Virtuozzo 5 Xen Hyper-V Oracle VM VirtualBox VMware ESXi Virtuozzo
VMware ESXi Introduction Xen Hyper-V Oracle VM VirtualBox VMware ESXi Virtuozzo Développé par VMware Technique : complète Ligne de commande ou interface graphique Systèmes invités : Microsoft Windows Linux, FreeBSD, NetBSD, Mac OS X Figure: Logo VMware www.vmware.com
Xen Hyper-V Oracle VM VirtualBox VMware ESXi Virtuozzo 5 Xen Hyper-V Oracle VM VirtualBox VMware ESXi Virtuozzo
Virtuozzo Introduction Xen Hyper-V Oracle VM VirtualBox VMware ESXi Virtuozzo Développé par Parallels Technique : virtualisation au niveau du système d exploitation Interface graphique Disponible en deux versions : Windows / Linux Systèmes invités : Linux : Red Hat Entreprise Linux, CentOS, Debian, Fedora, OpenSuse, Ubuntu Windows : Windows Server 2003 Figure: Logo Virtuozzo www.parallels.com
1 Introduction 2 3 4 5 6
Homogénéisation des types de virtualisation difficulté d administration Besoin d abstraction dans la gestion des systèmes Premier pas : développement d une libraire, LibVirt, offrant une API de gestion des plateformes de virtualisation
Manque de souplesse Installer et configurer une nouvelle VM est une tâche fastidieuse Existance d images pré-configurées pour une grande partie des OS (virtual appliance) Quid des infrastructures particulières de types N-tiers? Quid des logiciels? Des licences? Future : application appliance à condition de résoudre les problèmes sus-cités
Merci Questions?