Cours Master 2 IR (ISTIC)
Introduction à la
virtualisation
Michel Le Tohic - IT/TELECOM Bretagne
Préambule
La virtualisation couvre de multiples domaines
Applications, système, stockage, réseau, etc.
Dans ce qui suit on s'intéressa essentiellement à la
virtualisation de machine et/ou de système
Par abus de langage on parle parfois de virtualisation de
présentation pour des solutions de déport d'affichage
Que signifie « virtualiser » ?
C'est variable, par exemple...
Au niveau système : faire tourner plusieurs systèmes sur
une seule ressource physique (1 ~> n)
Au niveau stockage ou réseau : agréger plusieurs
périphériques en une seule entité (n ~> 1)
M. Le Tohic Virtualisation
Couches affectées par la virtualisation
M. Le Tohic Virtualisation
Préambule
La virtualisation de système en est l'élément central
Cela consiste à faire fonctionner plusieurs systèmes
d'exploitation, de nature différente ou non, mais en
parallèle sur une même machine physique
Pour désigner un système d'exploitation virtualisé
on parle de VM (Virtual Machine)
… ou parfois de VE (Virtual Environment) ou encore de
VPS (Virtual Private Server)
M. Le Tohic Virtualisation
Buts poursuivis
S'affranchir des problèmes de matériel non reconnu
La couche de virtualisation présente au système
virtualisé un matériel « standard »
Exploiter au mieux les ressources physiques
Sans virtualisation, le plus souvent une machine
n'exploite qu'une part infime de sa puissance
Typiquement la charge d'un serveur n'excède pas 15%
Isoler les services
La virtualisation permet de spécialiser une machine
(virtuelle) sans multiplier les machines (physiques)
Pas de « risques d'interférences » entre services
M. Le Tohic Virtualisation
Buts poursuivis
Sécuriser les services
Les solutions professionnelles permettent de migrer
une machine virtuelle d'un serveur à un autre
En cas de défaillance matérielle ou de maintenance
Apporter de la souplesse et de la réactivité
L'installation d'un nouveau système est très rapide
Notion de template, de clone, etc.
Les modifications sont potentiellement réversibles
Notion de snapshot
Le matériel (réel) peut évoluer indépendamment
eg. affecter plus de ressources à une machine virtuelle
M. Le Tohic Virtualisation
Buts poursuivis
Réduire les dépenses énergétiques
La limitation du nombre de machines physiques
permet de diminuer la consommation électrique
Si l'on raisonne « salle machine »...
Réduction des coûts liés à la climatisation
Réduction de la taille des locaux informatiques
M. Le Tohic Virtualisation
Généralités
Un bref historique...
Technologies de « partitionnement » apparues sur
les gros mainframes (~ années 80)
Techniques adoptées ensuite sur certains systèmes Unix
propriétaires (~ années 90)
Apparition de la virtualisation de PC avec VMware
(~ année 2000) rapidement adoptée par les services
informatiques pour la virtualisation de serveurs
Processeur, mémoire, disque dur, carte graphique, carte
réseau, etc. sont simulés de manière logicielle
Les processeurs intègrent désormais des extensions
dédiées qui optimisent la virtualisation
Les plus connues : Intel VT-x et AMD-V
M. Le Tohic Virtualisation
Généralités
Les mots et les choses...
Quelques termes simples
Système hôte (host) et système invité (guest)
Le système hôte (quand il y en a un) est celui qui héberge
Le système invité est celui qui est hébergé (ie. une VM)
Hyperviseur ou Moniteur de machine virtuelle (VMM)
Logiciel qui alloue les ressources matérielles dynamiquement
et de façon transparente aux machines virtuelles en leur
présentant un matériel (virtuel) standard
Hyperviseur de type 1 : noyau optimisé directement installé
sur le matériel ; adapté aux environnements de production
Hyperviseur de type 2 : application « au-dessus » d'un
système hôte ; adapté à un usage personnel (élargi)
M. Le Tohic Virtualisation
Hyperviseurs type 1 versus type 2
M. Le Tohic Virtualisation
Généralités
Les mots et les choses... (suite)
Quelques termes ambigus
Virtualisation dite « complète »
Consiste à simuler un ordinateur (x86) avec un matériel
différent de l'ordinateur réel ; on a recours pour cela à la
translation binaire (pour coopérer avec le processeur réel)
Attention ! Le processeur simulé ne peut pas être différent du
processeur réel ; de plus il faut penser à activer l'accélération
matérielle pour le support du 64 bits
Émulation
Consiste à simuler complètement un ordinateur (processeur
inclus) et donc d'accepter des OS de nature très différente
Attention ! Comme le processeur émulé peut être de nature
différente d'un x86 (eg. PowerPC) cela peut dégrader les
performances (sauf à disposer d'un accélérateur)
M. Le Tohic Virtualisation
Généralités
Les mots et les choses... (suite)
Quelques termes ambigus (suite)
Para-virtualisation
L'ordinateur simulé ne traite qu'une partie des instructions
(x86) et le reste est traité directement par le processeur réel
(via la couche de virtualisation)
Attention ! Des modifications peuvent être nécessaires au
niveau du système qui tourne au sein de l'ordinateur simulé
Environnement virtuel, cloisonnement, isolation
La virtualisation est limitée à des contextes d'exécution
Le système invité dispose de son propre système de fichier
mais noyau, pilotes, etc. sont partagés avec le système hôte
Attention ! Le système invité ne peut pas être de nature
différente du système hôte (puisque le noyau est partagé)
M. Le Tohic Virtualisation
Techniques de virtualisation
Concrètement...
C'est quoi une machine virtuelle ?
NB : on ne traite pas ici de machines virtuelles applicatives
(ie. dédiées langage de programmation, comme la JVM)
Ni des solutions qui travaillent au niveau API (comme Wine
qui émule l'API Win32 sur Unix/Linux)
Une VM se laisse voir comme un ensemble de fichiers
Dans cet ensemble c'est l'image du disque dur qui pèse le
plus lourd (et il est souvent réparti en plusieurs fichiers)
Principaux formats d'image de disque virtuel : VMDK
(VMware), VDI (Oracle/VirtualBox), VHD (Microsoft), HDD
(Parallels)
Attention ! Ne pas confondre avec le format de fichier de
configuration de VM (.vmx, .ovf, etc)
M. Le Tohic Virtualisation
Fichiers constitutifs d'une VM VMware
M. Le Tohic Virtualisation
Technologies de virtualisation
Différentes techniques donc...
Elles ont beaucoup évolué et certaines sont
aujourd'hui mixées
Difficile parfois aujourd'hui de ranger tel ou tel produit dans
telle ou telle catégorie « théorique »
L'appellation « solution de virtualisation » est un abus de
langage pour certaines d'entre elles
Tentative de classement
A quel niveau de l'ensemble (matériel + noyau + système
+ applications) s'exerce la virtualisation ?
A-t-on besoin d'un système hôte ?
A-t-on vraiment à faire à un hyperviseur ?
M. Le Tohic Virtualisation
Technologies de virtualisation
M. Le Tohic Virtualisation
Technologies de virtualisation
Conteneur (ou Isolateur)
Traits distinctifs (déjà vus)
Solution Unix/Linux extrapolée de chroot
Chaque système invité dispose de son propre système de
fichiers racine, le noyau est partagé avec le système hôte
Pas d'autre système possible que celui du système hôte ; on
parle plutôt d'environnement(s) virtuels(s) ou VE
Exemples
Linux V-Server
OpenVZ / Parallels Virtuozzo
Virtuozzo est une solution commerciale très employée chez
les ISP
LXC / Docker
pour la virtualisation d'applications
M. Le Tohic Virtualisation
Conteneur
M. Le Tohic Virtualisation
Technologies de virtualisation
Virtualisation au niveau noyau
Traits distinctifs
Modules noyau autorisant l'exécution en espace utilisateur
d'un autre noyau (différent ou non du système hôte)
Hôte et invités disposent de leur propre noyau et espace
utilisateur ; on peut parler de machines virtuelles
Exemples
User-mode Linux (UML)
Plutôt orientée test de noyau
CoLinux
Cohabitation Linux/Windows (grâce à des pilotes spécifiques)
KVM (Qumranet ~> RedHat / Open Source)
S'appuit sur une version modifiée de QEMU
M. Le Tohic Virtualisation
Virtualisation au niveau noyau
M. Le Tohic Virtualisation
Technologies de virtualisation
Émulateur
Traits distinctifs (déjà vus)
Simulation complète d'une machine
Y compris le processeur... qui peut donc être différent du
processeur réel
En exploitant correctement les processeur réels (ie. 64 bits)
on peut rendre cette option viable
Exemples
QEMU
Processeurs émulés : x86, ARM, PowerPC, MIPS, etc
Sert de sous-bassement à KVM
Connectix Virtual PC (à l'origine ~> Mac)
Bochs
M. Le Tohic Virtualisation
Techniques de virtualisation
Hyperviseur de type 2
Traits distinctifs (déjà vus)
Le moniteur de machine virtuelle s'exécute comme une
application sur le système hôte
Différence avec l'émulateur : processeur émulé et processeur
réel sont « identiques » (cf. Virtualisation dite « complète »)
Chaque système invité dispose de son propre « matériel »
standard ; on peut vraiment parler de machines virtuelles
Exemples
VMware Player / Workstation / Server
Oracle VirtualBox
Parallels Desktop
Microsoft Virtual PC
M. Le Tohic Virtualisation
Émulateur et Hyperviseur de type 2
M. Le Tohic Virtualisation
Techniques de virtualisation
Hyperviseur de type 1
Traits distinctifs (déjà vus)
VMM s'exécutant directement au-dessus du matériel
On emploie le terme d'hyperviseur bare-metal
Chaque système invité dispose de son propre « matériel » ;
on peut vraiment parler de machines(s) virtuelle(s)
M. Le Tohic Virtualisation
Hyperviseur de type 1
M. Le Tohic Virtualisation
Techniques de virtualisation
Hyperviseur de type 1
Traits distinctifs supplémentaires
Pilotes matériels séparés ou non de l'hyperviseur
Quand les pilotes matériels sont séparés de l'hyperviseur et
installés au sein de la partition parente (ou service console)
on parle d'hyperviseur micro-kernelisé : dans l'autre cas on
parle d'hyperviseur monolithique
Exemple(s)
Monolithique : VMware ESX/ESXi
Micro-kernelisé : Microsoft Hyper-V, Citrix XenServer / Xen
(Open Source)
À part (?) : KVM (RedHat ou Open Source)
M. Le Tohic Virtualisation
Hyperviseur de type 1 : monolithique
versus micro-kernelisé
M. Le Tohic Virtualisation
Techniques de virtualisation
Tentative de synthèse...
Il est très difficile d'y voir clair...
Les classifications précédentes sont parfois sujettes à
caution
Exemple : le distinguo entre VM para-virtualisée et VM
matériellement assistée est parfois difficile à faire
Exemple : KVM doit-il être considéré comme un hyperviseur
de type 1 ou de type 2 ?
Ce qu'il faut retenir
Certaines techniques débouchent clairement sur des
produits de classe « entreprise »... et d'autres pas
La virtualisation de serveur (ou de poste de travail) en
entreprise fait appel à des hyperviseurs de type 1 (ou
assimilés)
M. Le Tohic Virtualisation
Tentative de synthèse
non Hyperviseur oui Noyau et oui
directement sur Partition parente
le matériel ? ne font qu'un?
non oui
Application sur
le système hôte ?
oui non non Simulation oui non oui
Module chargé Avec Partition
de processeur de
dans le noyau hôte? parent ?
différent types ?
Hyperviseur de Hyperviseur de
Virtualisation au Hyperviseur de
Conteneur Émulateur type 1 type 1
niveau noyau type 2 monolithique micro-kernelisé
M. Le Tohic Virtualisation
Virtualisation de serveur
La virtualisation est une orientation incontournable
face à la prolifération des serveurs x86
Seule réponse adaptée pour augmenter la flexibilité
et optimiser les ressources (et les coûts)
Passe par la mise en œuvre initiale d'une infrastructure
« haute disponibilité » (ie. datacenter)
Redondance au niveau serveurs (physiques), stockage et
réseau pour garantir l'évolutivité et la sécurité
Phase d'étude pour la migration des serveurs
Services candidats à la virtualisation ? OS supportés ? Etc.
Choix de la solution de virtualisation
Pléthore de critères !
M. Le Tohic Virtualisation
Virtualisation de serveur
Fonctionnalités attendues
Variables selon la solution
Manipulation des VMs : démarrage/arrêt/pause, création,
modèle (template), clonage, migration à chaud (ou non),
instantanés (snapshot)
Réseau virtuel : mode réseau (host-only | nat | bridged),
commutateur virtuel (vSwitch)
Conversion des machines : physique vers virtuel (P2V),
virtuel vers physique (V2P), virtuel vers virtuel (V2V)
Pilotes pour les systèmes invités (afin d'augmenter le
confort et les performances)
VMware Tools, virtio (KVM), etc
M. Le Tohic Virtualisation
Virtualisation de serveur
Fonctionnalités attendues (suite)
Fonctions « communes » aux hyperviseurs
Service console ou Partition parente (Dom0)
Machine (virtuelle) privilégiée orchestrant la gestion des VMs
(eg. VMware vCenter aka VirtualCenter)
Interface d'administration conviviale web ou « riche » (eg.
VMware vSphere Client aka VI Client)
Vision simplifiée du stockage
Gestion transparente du datastore, etc.
Support de NFS, FC, iSCSI, etc
Virtualisation du réseau
Switch virtuel (Virtual Switch)
M. Le Tohic Virtualisation
Virtualisation de serveur
Fonctionnalités qui font la différence
Disponibles sur les solutions les plus abouties
Gestion du matériel (serveurs et VMs)
Capacités étendues (vCPU, vSMP, 64 bits, RAM maxi, etc)
Stockage
Gestion du Thin Provionning, du Multipathing, etc
Réseau
Agrégation de lien (NIC Teaming), Distributed Switch, etc
Disponibilité
Migration automatique des VMs à chaud, duplication, etc
Sécurité
Au niveau E/S réseau (firewall au niveau hyperviseur, etc)
Autres : Gestion des mises à jour, des profils, etc.
M. Le Tohic Virtualisation
Virtualisation de serveur
Panorama rapide du marché
Principales solutions
VMware vSphere
Basé sur ESX/ESXi
ESXi est la version « firmware » d'ESX
Solution(s) extrêmement aboutie ; VMware est clairement
leader dans le domaine (~80% de part de marché)
Citrix XenServer
Xen est aussi disponible en Open Source
Microsoft Hyper-V (R2)
RedHat RHEV
Basé sur KVM
M. Le Tohic Virtualisation
Virtualisation de serveur
Panorama rapide du marché (suite)
Solutions moins connues
Parallels Virtuozzo
Conçue pour l'hébergement web
Oracle VM Server
Basé sur Xen
Acteur mineur... mais Oracle a racheté Sun
M. Le Tohic Virtualisation
Virtualisation de réseau
Réseaux virtuels
Des technologies déjà bien éprouvées
VLAN (Virtual LAN) et VPN (Virtual Private Network)
Rôle important dans la segmentation des réseaux actuels
La virtualisation de serveur renforce cette tendance
La bonne gestion du réseau est primordiale
Communication entre VMs, communication entre serveurs,
communication avec le stockage
Gros travail de séparation des flux réseaux au sein d'un
datacenter
Notion de trunk 802.1q
La rationalisation en matière d'interfaces réseaux impose de
propager plusieurs VLANs sur le même lien physique
M. Le Tohic Virtualisation
Virtualisation de réseau
Réseau implémenté... sous forme logicielle
« Simple » transposition virtuelle
Briques de base
Matériel : carte réseau virtuelle (Virtual Network Adapter),
commutateur virtuel (Virtual Network Switch)
Logiciel: service DHCP
Pré-câblage (ou non)
vNIC déjà connectées à des vSwitch dans les logiciels de
virtualisation grand public
Configurations réseaux basiques
Bridged : accès au réseau et à l'hôte
NAT : passage obligé par l'hôte pour accéder au réseau
Host-only : connexion exclusive entre hôte et invité
M. Le Tohic Virtualisation
Mode Bridged (VMware)
M. Le Tohic Virtualisation
Mode NAT (VMware)
M. Le Tohic Virtualisation
Mode Host-only (VMware)
M. Le Tohic Virtualisation
Modes Bridged, NAT, Host-only, Internal
M. Le Tohic Virtualisation
Virtualisation du poste de travail
La gestion du poste ce travail est un challenge...
Coûts importants liés à la gestion de PC
Client lourd (ie. PC Windows) = TCO & ROI lamentables
Prise en compte permanente de nouveaux matériels
Maintenance système et logicielle chronophage
Empreinte écologique & fort taux de renouvellement
Progression lente (mais certaine) d'architectures
alternatives à base de clients légers
Rappel : un client léger est un terminal (plus ou moins
simple) sachant exploiter un ou plusieurs protocoles
d'affichage
Client léger (eg. Dell/Wyse), Zero client (eg. Fujitsu), etc.
M. Le Tohic Virtualisation
Virtualisation du poste de travail
Virtualisation et poste de travail
Quid de la virtualisation d'applications ?
Très liée en pratique à la virtualisation de desktop
Ce sont les mêmes éditeurs qui sont « à la manœuvre »... ce
pourquoi on en traitera conjointement
Première étape : l'hyperviseur de type 2
Approche commune (grand public & nombre d'entreprises)
Pour test ou autre, exploitation sur PC d'un outil (gratuit)
permettant d'exécuter des VMs (de virtualiser des applis)
La puissance des PC actuels ainsi que les performances de
ces players donnent des résultats tout à fait satisfaisant
Difficultés rencontrées pour sa généralisation
La diffusion des Vms, la gestion de la persistance/du partage
entre utilisateurs, la gestion du cycle de vie des Vms, etc.
M. Le Tohic Virtualisation
Virtualisation du poste de travail
Des solutions très différentes...
Critères de différenciation
Exécution sur le poste local (Client-Based)
Attention ! Il faut un minimum de ressources (CPU, RAM, etc)
On aura recours à du streaming
Exécution à distance sur un serveur (Server-Based)
Il faut utiliser un protocole de déport d'affichage
Tout le système est concerné (OS-Desktop)
On peut vraiment parler de virtualisation du poste de travail
On aura recours (si possible) à un hyperviseur bare-metal
Seuls les logiciels sont concernées (Application)
Attention ! les solutions traditionnelles de type Terminal
Services ne sont pas de vrais solutions de virtualisation
M. Le Tohic Virtualisation
Virtualisation du poste de travail
M. Le Tohic Virtualisation
Virtualisation du poste de travail
Sousl'appellation VDI on rassemble des solutions
permettant de gérer en centralisé des « PC virtuels »
Gains attendus
Simplification dans la gestion des postes (remplacés par
des clients légers)
Entre autre avantages : provisionnement à la demande,
sauvegarde naturellement centralisée, etc.
Consolidation... en salle machine
Fin de l'informatique répartie... un jour ?
Démarche Green-IT
Débat en cours
Exécution centralisée (ie. VDI) vs hébergement centralisé
PC portables synchronisés avec une VM centralisée
M. Le Tohic Virtualisation
Virtualisation du poste de travail
Critère de choix d'une solution
Systèmes d'exploitation (invités) supportés
Limite rencontrée chez les grands « ténors » du marché :
seul les OS Windows sont supportés correctement :-(
Problèmes connexes :
Protocole(s) de déport d'affichage exploitables
RDP/RemoteFX (Microsoft), ICA/HDX (Citrix), RGS (HP), NX
(NoMachine) , PCoIP (VMware), SPICE (RedHat), etc
Support du multimédia, des périphériques USB, etc.
En bref : le marché n'est pas totalement mûre
Les solutions sont souvent complexes et coûteuses
Exception (?) : Neocoretech ndv
M. Le Tohic Virtualisation
Virtualisation du poste de travail
Anatomie d'une solution VDI
Basiquement
Serveur(s) en salle machine hébergeant les VMs
Sous-entendu : hyperviseur type 1, etc.
Protocole(s) de déport d'affichage exploité(s)
En fonction des OS souhaités... et supportés
Élément central : le (Connection) Broker
Responsable de la gestion/attibution des Vms
Intercepte les demandes et réparti la charge
VM privée versus VM partagée
Notion de clone lié (linked clone)
Hyperviseur et broker sont souvent intimement liés
Exception : Leostream Connection Broker
M. Le Tohic Virtualisation
Connection Broker
M. Le Tohic Virtualisation
Virtualisation du poste de travail
Panorama rapide du marché VDI
Principales solutions
VMware View
Virtualisation d'application : ThinApp
Citrix XenDesktop (et VDI-in-Box)
Virtualisation d'application : Application Streaming
Rachat de Virtual Computer NxTop
Microsoft VDI
Virtualisation d'application : App-V
Quest vWorkspace
Produit « agnostique » (racheté par Dell)
RedHat RHEV-D
Supporte les VMs Windows et Linux
M. Le Tohic Virtualisation
Virtualisation du poste de travail
Panorama rapide des solutions VDI (suite)
Solutions moins connues
2X Application Server XG
Produit « agnostique »
Ericom PowerTerm WebConnect
Neocoretech ndv
Produit « tout en un » (basé sur RedHat/KVM)
Leostream
Produit « agnostique »
M. Le Tohic Virtualisation
Virtualisation du stockage
Système de stockage
Au-delà des disques durs...
Évolution des disques : SCSI, SATA, SAS, SSD, etc.
Formes primitives de virtualisation : LUN, Gestionnaire de
Volume, etc
Baies RAID, (logiciels) contrôleurs de disques, etc
Croissance énorme de la volumétrie
Accès en mode bloc ou en mode fichier ?
Mode bloc
Couche d'abstraction au-dessus du stockage (physique)
Mode fichier
Approche client-serveur (de fichiers !)
M. Le Tohic Virtualisation
Virtualisation du stockage
Architecture de stockage
Sockage local versus centralisé
Local = attachement direct
Centralisé => protocole
NFS
Fibre Channel (FC)
iSCSI
Système de fichiers supportés
Géré en propre ou non ?
Système de fichier spécifique (eg. VMware VMFS)
Sous-traité : NFS, RDM (accès direct à un LUN), etc
M. Le Tohic Virtualisation
Virtualisation du stockage
Architectures DAS, NAS, SAN
DAS
Disques en attachement direct
Travaille en mode bloc
Très bonnes performances (généralement)
Limitations nombreuses : distance entre système et disques,
faible évolutivité, etc.
NAS
Périphérique de stockage en réseau (LAN)
Travaille en mode fichier
Bonnes performances, évolutivité moyenne
Serveur (généralement) dédié et supportant plusieurs
protocoles (ie. SMB/CIFS et NFS pour le moins)
M. Le Tohic Virtualisation
Virtualisation du stockage
Architectures DAS, NAS, SAN (suite)
SAN
Réseau spécialisé pour le stockage
Travaille en mode bloc
Très bonnes performances
Architecture riche et complexe mais très évolutive
Bataille entre FC et iSCSI (~ SCSI sur TCP/IP)
Opposition SAN versus NAS
Va en s'estompant
Les applications sensibles (telles les SGBD) s'accommodent
aujourd'hui de solutions NAS
Convergence chez les constructeurs entre les offres NAS et
SAN (qui passe souvent par iSCSI)
M. Le Tohic Virtualisation
DAS, NAS, SAN
M. Le Tohic Virtualisation
En route vers le Cloud
En guise de conclusion
Nous n'avons fait que survoler le sujet...
Pans entiers restés dans l'ombre
Gestion optimisée de la mémoire (eg. ballooning)
Gestion optimisée du stockage (eg. déduplication)
Sauvegarde en environnement virtualisé
Sécurité avancée (cluster, monitoring, PRA, etc)
Écosystème de la virtualisation
Très nombeurx acteurs (en-dehors des éditeurs de solutions
de virtualisations)
Dans le domaine du matériel : processeurs, serveurs,
stockage, etc.
Dans le domaine du logiciel : supervision, sauvegarde,
conversion, etc
M. Le Tohic Virtualisation
En route vers le Cloud
En guise de conclusion (suite)
La virtualisation rend possible l'externalisation de
l'informatique d'entreprise
Notion de Cloud Computing
Précurseurs dans le domaine : Google et Amazon
Constructions de datacenter et de « salles blanches »
Les données sont de plus en plus dans les nuages
Pour le meilleur et pour le pire ?
M. Le Tohic Virtualisation
Fin
Merci pour votre attention !
M. Le Tohic Virtualisation