0% ont trouvé ce document utile (0 vote)
151 vues11 pages

PDF

Ce document décrit la notion de virtualisation sous GNU/Linux et identifie les différentes techniques de virtualisation. Il définit la virtualisation comme permettant de faire fonctionner plusieurs systèmes d'exploitation sur une seule machine physique de manière isolée. Il présente ensuite les intérêts de la virtualisation pour les particuliers, les professionnels et les entreprises.

Transféré par

Lamia Jebri
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
151 vues11 pages

PDF

Ce document décrit la notion de virtualisation sous GNU/Linux et identifie les différentes techniques de virtualisation. Il définit la virtualisation comme permettant de faire fonctionner plusieurs systèmes d'exploitation sur une seule machine physique de manière isolée. Il présente ensuite les intérêts de la virtualisation pour les particuliers, les professionnels et les entreprises.

Transféré par

Lamia Jebri
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Ministre de lEnseignement Suprieur, de la Recherche Scientifique et de la Technologie

Universit Virtuelle de Tunis

Systme dExploitation
GNU/Linux
Virtualisation sous linux

Yahia Slimani
Hbib Elsmii

Attention !
Ce produit pdagogique numris est la proprit exclusive de l'UVT. Il est
strictement interdit de la reproduire des fins commerciales. Seul le
tlchargement ou impression pour un usage personnel (1 copie par
utilisateur) est permis.

Universit Virtuelle de Tunis

Systme dExploitation GNU/Linux


Virtualisation sous linux

Objectifs :
Dfinir la notion de virtualisation sous GNU/Linux
Identifier les diffrentes techniques de virtualisation

Yahia Slimani ; Hbib Elsmii

Universit Virtuelle de Tunis

Systme dExploitation GNU/Linux


Virtualisation sous linux

1. Notion de virtualisation
Lencyclopdie francophone en ligne Wikipdia dfinit la virtualisation comme lensemble
des techniques matrielles et/ou logicielles qui permettent de faire fonctionner sur une
seule machine plusieurs systmes dexploitation et/ou plusieurs applications, sparment
les uns des autres, comme sils fonctionnaient sur des machines physiques distinctes. Il
sagit donc de faire fonctionner sur une mme machine (physique) plusieurs systmes
d'exploitation (qui peuvent tre tous diffrents) en mme temps.
Concrtement, un systme d'exploitation, dit hte , est install sur la machine
physique et mule une ou plusieurs machines virtuelles (avec processeur, mmoire,
disque dur, carte rseau, BIOS, ...). Chaque machine virtuelle peut accueillir un systme
d'exploitation dit virtualis (ou invit ). Le systme hte assure le cloisonnement
entre les systmes virtualiss et le partage des ressources physiques : On lappelle
superviseur .
Les systmes virtualiss sont manipulables souhait par le superviseur : dmarrage, arrt,
gel, sauvegarde de contexte ... De plus, comme le disque dur d'un systme virtualis est
gnralement mul par un fichier, il est facile de dupliquer un systme virtualis ou de le
faire migrer d'un hte un autre. La virtualisation permet donc d'utiliser de manire
optimale les ressources d'une machine : on peut ajouter des machines virtuelles si la
machine physique est sous-exploite (conomie d'argent par mutualisation des ressources)
ou en supprimer si elle est sature (gestion de la monte en charge). Enfin la virtualisation
permet une rpartition des services sur plusieurs machines virtuelles et par l mme une
meilleure scurit : si un systme est compromis, les autres peuvent continuer
fonctionner normalement.

2. Intrt de la virtualisation :
La virtualisation peut tre utilise pour plusieurs fins et selon le contexte dutilisation. Pour
le particulier, la virtualisation permet davoir accs des applications ne fonctionnant pas
sur le systme dexploitation principal de lutilisateur. On peut notamment citer les
applications trop vieilles pour sexcuter sur la dernire gnration du systme
dexploitation (les anglophones parlent de legacy applications). Un autre domaine couvert
par la virtualisation est lutilisation de programmes non ports sur la plate-forme cible
(architecture PC vs architecture Mac, par exemple). On peut aussi citer, mme si cest plus
rare, lutilisation de virtualisation pour les jeux : faire fonctionner un jeu fait pour
Microsoft Windows dans une machine virtuelle sexcutant sur un systme GNU/Linux.
2

Yahia Slimani ; Hbib Elsmii

Universit Virtuelle de Tunis

Systme dExploitation GNU/Linux


Virtualisation sous linux

La socit VMware propose notamment laccs lacclration 3D depuis une machine


virtuelle pour son produit grand public, permettant datteindre des performances proches
de loriginal.
Pour les professionnels et les chercheurs en scurit, un systme dexploitation virtualis
permet dobserver le comportement dun logiciel malveillant (malware) comme un virus,
un ver un spyware dans un systme sain sans avoir infecter une machine physique. De
plus, le processus dinfection est reproductible, car il suffit de sauvegarder ltat de la
machine virtuelle avant linfection pour pouvoir rpter lopration plusieurs fois, dans des
conditions contrles. Il est alors possible danalyser ltat de la machine virtuelle aprs
infection, et de tirer des conclusions sur laction du logiciel.
Pour une entreprise, les technologies de virtualisation permettent de sparer des applications
et des systmes de manire logique, quand les prrequis des applications sont
mutuellement exclusifs. Par exemple, une application critique mais incompatible avec une
version donne dun logiciel ne peut pas cohabiter sur la mme machine avec une autre
application dpendant dune autre version du mme logiciel. Certains cas incompatibilits
peuvent se rsoudre en laissant installs les deux logiciels dans deux versions diffrentes,
mais le surcot de maintenance est non ngligeable.
En plus de la simple incompatibilit de versions, deux applications peuvent aussi avoir le
mme rle, mais dans des contextes diffrents. Par exemple une version de dveloppement
et une version finale dun site web ne peuvent pas cohabiter de manire simple, moins
dy consacrer un effort de maintenance l aussi consquent. Pour le dveloppement dune
application web, le test du site sous plusieurs navigateurs est primordial. La virtualisation
de plusieurs systmes dexploitation permettra aux dveloppeurs de tester le rendu de
plusieurs navigateurs sur plusieurs plates-formes sans avoir changer de machine et
donc denvironnement de travail en permanence.
Au del de la possibilit de faire fonctionner des applications qui ne peuvent normalement
pas sexcuter sur une machine donne, la virtualisation permet aussi de les rassembler sur
une mme machine physique, sans avoir maintenir un serveur distinct par application.
Traditionnellement, lusage tait de consacrer une machine physique un service
(messagerie, stockage, hbergement dintranet, etc.), tant pour des raisons pratiques
(associer une machine un rle unique) que pour la scurit (sparation des services).
Toutefois, cette dispersion a un cot qui nest pas nul pour lentreprise, que ce soit en espace
occup (location au mtre carr dans les datacenters), en nergie (consommation
lectrique) ou en maintenance (plus de machines physiques implique plus de risques de
3

Yahia Slimani ; Hbib Elsmii

Universit Virtuelle de Tunis

Systme dExploitation GNU/Linux


Virtualisation sous linux

pannes matrielles). De plus, la plupart des services fournis sur un rseau local (DHCP,
DNS, Intranet, ...) ne consomment quune trs faible partie des ressources offertes par une
machine rcente. Tous ces facteurs font quil nest plus pertinent aujourdhui dutiliser des
machines spares pour hberger des services ne ncessitant quune fraction de la
puissance dune machine.
Aussi, lheure actuelle, la tendance est plutt au rassemblement de plusieurs services,
autrefois distincts, sur une seule machine, par le biais de lutilisation de technologies de
virtualisation pour maintenir une sparation entre les services. On parle de consolidation de
serveurs.
Enfin, lutilisation dapplications anciennes (au sens informatique du terme) est au
moins aussi importante chez les entreprises que chez les particuliers. Limportance parfois
critique de ces applications pour le fonctionnement de lentreprise fait quil est souvent
plus facile de continuer maintenir un systme et une machine obsoltes (et donc avec un
risque de panne matrielle plus important) que dentamer une migration vers une nouvelle
plate-forme. La virtualisation permet dans ce cas dexcuter lapplication comme dans son
environnement dorigine, mais sur du matriel rcent. On peut citer, sans ordre particulier :
une application de comptabilit (ou un progiciel quelconque) utilise depuis des annes
mais non porte sur la nouvelle version dun systme dexploitation ou encore un logiciel
de pilotage de machine industrielle. Ce sont deux exemples classiques dapplication de la
virtualisation pour autre chose que de lhbergement de services.
En plus des possibilits techniques cites ci-dessus, la virtualisation est galement une
technologie clef pour lavenir de lentreprise. En effet, elle ne permet pas seulement de
contourner les limitations matrielles des ordinateurs, mais elle peut aussi fournir un
avantage dcisif sur la concurrence dans le milieu trs disput quest linformatique de
services.

3. Les des diffrentes techniques de la


virtualisation
Trs peu de systmes dmarrent directement, et sur plateforme PC tous les systmes dmarrent
selon un processus (boot) en trois temps : le BIOS, le chargeur de dmarrage (bootloader) et le
systme. Pour les systmes embarqus et les anciens calculateurs, ces phases taient aussi un
choix prendre en compte. Des moniteurs, OS minimaux emportant des fonctionnalits de

Yahia Slimani ; Hbib Elsmii

Universit Virtuelle de Tunis

Systme dExploitation GNU/Linux

Virtualisation sous linux


dbug, ont vu le jour. L'ide initiale tait de se concentrer sur cette phase, puis ensuite d'en
gnraliser les concepts : un systme d'exploitation reposant sur l'API d'un noyau rduit.
Les systmes de virtualisation partent donc du principe de l'utilisation de couches logicielles
intermdiaires. Afin d'avoir une ide thorique des performances des applications au sommet, il
faut comparer verticalement l'empilage de couches. Il faut garder l'esprit qu'il est possible
d'largir les schmas en rajoutant des environnements virtualiss consommant galement des
ressources de l'hte, en mmoire puis en disque.
Fondamentalement, on trouvera deux ides principales : isolation par empilement ou par
juxtaposition, dont les variations, dans des buts d'optimisation, donneront principalement quatre
types de technologie :

Machine Virtuelle

Une machine virtuelle est un logiciel qui tourne sur l'OS hte, ce logiciel permettant de lancer un ou
plusieurs OS invits, c'est l'archtype de la solution de virtualisation par empilement de systmes.
La machine virtualise le matriel (ce qui passe gnralement par une mulation partielle) pour les
systmes d'exploitation invits : les systmes d'exploitation invits croient dialoguer directement
avec le matriel. En pratique on a recours une mulation logicielle des priphriques, et parfois
aussi de tout ou partie de la machine.
Cette solution isole bien les systmes d'exploitation invits, mais elle a un cot, en premier lieu en
performance, dont les principales victimes seront les entressorties. Ce cot, assez important
dj s'il suffit de protger les instructions privilgies, peut tre trs lev si le processeur doit
tre intgralement mul. Cette solution n'est pas non plus conome en mmoire, puisque
aucune conomie d'chelle ne peut tre ralise en ce qui concerne les OS (kernels) chargs.
Exemple :
Qemu : mulateur de plateformes x86, PPC, Sparc,
VMWare : propritaire, mulateur de plateforme x86,
Microsoft VirtualPC et VirtualServer : propritaire, mulateur de plateforme x86,
VirtualBox : mulateur de plateforme x86.

Yahia Slimani ; Hbib Elsmii

Universit Virtuelle de Tunis

Systme dExploitation GNU/Linux

Virtualisation sous linux


Le talon d'Achille de cette solution est donc l'importante consommation en performances. Certains
projets minimisent l'impact de ce cot en ressources en permettant des courtscircuits optionnels
(KVM, KQemu, VirtualBox), disponibles uniquement hors du contexte d'mulation bien sr.
Les deux technologies suivantes constituent elles aussi le rsultat de considrations d'optimisation
de cette solution, le principe tant de diminuer au mieux l'paisseur des couches de virtualisation
tout en conservant le mme degr d'isolation.

Virtualisation d'OS, Isolateur

Un isolateur est un logiciel permettant d'isoler l'excution des applications dans des contextes ou
zones d'excution, c'est l'archtype de la solution de virtualisation par "juxtaposition". L'isolateur
permet ainsi de faire tourner plusieurs fois la mme application ( base d'un ou plusieurs logiciels)
prvue pour ne tourner qu' une seule instance par machine.
Notons que cette technologie consiste en quelque sorte gnraliser la notion de "contexte" Unix :
ce dernier isole les processus (mmoire, accs aux ressources), on ajoute alors : une isolation des
priphriques (c'est le rle de l'isolateur), voire leur partage, les systmes de fichiers donc les
fichiers euxmmes et leurs accs.
Cette solution est trs performante, du fait du peu d'overhead (chute de performance consquente
de l'ajout des couches de virtualisation), mais les environnements virtualiss ne sont pas
compltement isols, ils partagent en particulier le code du noyau. Cette solution est aussi
remarquablement conomique en mmoire par consquence de la dernire remarque. Ces
environnements sont donc bien adapts au dploiement de nombreux serveurs virtuels de test ou
dveloppement bass sur un mme systme.
Quelques isolateurs :
LinuxVServer : isolation des processus en userspace,
BSD Jail : isolation en userspace,
OpenVZ : libre, partitionnement au niveau noyau sous Linux et Windows 2003. C'est la version
opensource du logiciel Virtuozzo.
Les isolateurs tendent isoler un niveau de plus en plus proche du systme, voire dans le systme
dans le cas de OpenVZ, qui peut tre vu comme un Linux avec plusieurs tables de processus,
chacune dans le contexte d'une distribution propre.
6

Yahia Slimani ; Hbib Elsmii

Universit Virtuelle de Tunis

Systme dExploitation GNU/Linux


Virtualisation sous linux

Hyperviseur complet

Partant du principe, expos prcdemment, qu'une approche pour une virtualisation efficace
consiste affiner les couches, une premire approche consiste proposer un noyau lger (de type
micronoyau par exemple), lequel est accompagn d'outils de supervision, et adapt pour faire
tourner des systmes d'exploitation natifs. Pour russir cette approche, soit on mule le matriel
(et on revient aux performances de la machine virtuelle pour les I/O), soit on dispose des
instructions ddies la virtualisation. Dans ce dernier cas, les logiciels libres concerns se
limiteront au monde x86 ou x8664, munis des instructions adhoc.
Les principaux exemples de ce principe sont :
KVM : Intgr au noyau GNU/Linux partir de la version 2.6.20.
Xen sur une machine offrant le support des instructions AMV (version 3.03 ou ultrieure) ou VTx
(version 3.0 ou ultrieure).

Paravirtualiseur

Un paravirtualiseur est un noyau hte allg et optimis pour ne faire tourner que des noyaux de
systmes d'exploitation invits, adapts et optimiss. Les applications en espace utilisateur des
systmes d'exploitation invits tournent ainsi sur une pile de deux noyaux optimiss, les systmes
d'exploitation invits ayant conscience d'tre virtualiss. Cette approche offre l'avantage d'tre
utilisable en l'absence des instructions spcifiques, mais elle est impraticable pour des systmes
non libres pour lesquels l'diteur ne fera pas l'effort d'adaptation.
Exemple :
Xen : noyau lger supportant des noyaux Linux, Plan9, NetBSD, etc,

4. Les produits de virtualisation


a. Introduction :
La virtualisation est une approche systme dans la continuit logique de l'volution : aprs avoir
"virtualis le processeur" pour faire du multitche sur une unit de traitement unique, on
virtualise le systme entier pour disposer de plusieurs systmes dexploitation complets tournant
simultanment sur une mme machine. Cette approche, historiquement introduite sur les gros
systmes (IBM), se dmocratise en raison de la puissance trs importante des microprocesseurs
aujourd'hui, laquelle est largement sousexploite. (On estime l'utilisation de la puissance des
serveurs environ 10% aujourd'hui).
7

Yahia Slimani ; Hbib Elsmii

Universit Virtuelle de Tunis

Systme dExploitation GNU/Linux

Virtualisation sous linux


Cette technologie a commenc sous la forme de projets d'amateurs (Boochs, mulateur de
processeur x86 qui a peu peu mul toutes les phases de cette famille de processeurs), en
parallle d'une solution commerciale, VMWare.
Par la suite, Fabrice Bellard a dmarr Qemu, un projet Open Source qui a chang la donne en
s'appuyant sur une partie du code de Boochs et en amliorant et affinant ses concepts. Il a
apport un compilateur justintime, puis une acclration en permettant des 'raccourcis'
matriss contrls par un fichier spcial (un priphrique Unix) ddi.
Dans le mme temps, les laboratoires d'informatique de Cambridge lanaient un moniteur volu
permettant la cohabitation de plusieurs OS, Xen. Plusieurs projets Open Source de existent
aujourd'hui dans cette technologie. Signe concret de cette volution, les deux fondeurs de
microprocesseurs de PC ont intgr dernirement des instructions destins faciliter et acclrer
la virtualisation (VT pour Intel et AMV chez AMD).
Signe de l'adoption large des technologies de virtualisation, RedHat a lanc le projet Libvirt
(www.libvirt.org), dont le but est l'criture d'une API commune plusieurs solutions de
virtualisation, base au dveloppement d'outils graphiques ou d'administration gnriques. La
premire mouture de libvirt visait Xen, la version ce jour supporte aussi Qemu et OpenVZ.
Les gains de l'utilisation de la virtualisation sont matriels (une machine peut simuler plusieurs
serveurs totalement cloisonns, utile pour proposer par exemple une plateforme de tests ou
pour dployer de nouveaux services sur un parc prexistant sans se soucier de migrations), ou en
sret de fonctionnement (un serveur sur une machine virtuelle peut prendre le relais en
configuration cluster si le matre cde pour des raisons logicielles), ou les deux. Cette approche
permet par exemple de configurer une ferme de serveurs de secours proposant plusieurs services
diffrents sur une machine de secours unique sans contraindre tous les services aux mmes
versions logicielles, mme environnement systme, mme configuration.
L'arrive des technologies de virtualisation dans le monde des PC a donc ouvert de nouvelles voies
pour scuriser, simplifier et rationaliser les cots dans les systmes d'information.

b.

Quelques produits du march :

La rfrence commerciale en la matire est VMWare, qui propose une gamme de solutions de
virtualisation matures, chaque solution se trouvant accompagne d'outils facilitant la gestion du
parc virtuel. VMWare est disponible gratuitement pour les machines disposant d'au plus 2 units
de traitement, mais est payant audel. C'est un logiciel commercial distribu sous licence, aucune
partie du code n'est libre. Il fait de surcrot l'objet d'un brevet aux EtatsUnis.
8

Yahia Slimani ; Hbib Elsmii

Universit Virtuelle de Tunis

Systme dExploitation GNU/Linux

Virtualisation sous linux


Le logiciel libre phare du domaine, Qemu, est aussi une base de rfrence, d'autant plus que
plusieurs produits (dont VirtualBox) en utilisent des parties. Par contre, utilis sec , Qemu ne
propose qu'une interface en ligne de commande qui, bien qu'efficace, ne manquera pas de
paratre un peu abrupte. Il propose cependant beaucoup de fonctionnalits originales, ce qui le
rend incontournable : il est le premier logiciel prsent ciaprs.
Ces deux rfrences sont des implantations selon la technologie des machines virtuelles,
VMWare ayant aussi son catalogue un produit qui s'apparente plus un hyperviseur complet. Le
gros avantage des systmes libres d'aujourd'hui, c'est qu'ils couvrent presque toutes les
techniques de virtualisation identifies, avec donc Qemu et VirtualBox pour les machines
virtuelles, Xen pour la paravirtualisation, OpenVZ pour la virtualisation au niveau OS, et Xen 3.0 ou
kvm, utiliss sur des machines les supportant, pour l'hyperviseur complet.

Outils libres de virtualisation :


Du ct de la communaut du logiciel libre, il y a normment de projets de virtualisation, ayant
des buts variables. Certains dentre eux sont soutenus par une socit, qui fournit un service
payant pour les clients le souhaitant. Les plus connus sont :
Bochs (prononcer box ) Bochs est un mulateur trs complet de larchitecture PC traditionnelle
(processeur Intel) ;
KVM soutenu par la socit Qumranet, KVM se veut une solution de virtualisation performante et
facile administrer ;
LinuxVServer projet de virtualisation destin fonctionner sur le systme dexploitation
GNU/Linux ;
OpenVZ soutenu par la socit Virtuozzo, OpenVZ est une solution de virtualisation
visant obtenir les meilleures performances possibles ;
QEMU cr et dvelopp par Fabrice BELLARD, QEMU est un projet visant offrir une machine
virtuelle complte pour plusieurs architectures matrielles, y compris larchitecture PC ;
Xen soutenu par la socit XenSource, Xen vise proposer une solution performante pour la
virtualisation de serveurs ;

Yahia Slimani ; Hbib Elsmii

Universit Virtuelle de Tunis

Systme dExploitation GNU/Linux


Virtualisation sous linux

Cidessous une liste des produits de virtualisation opensource :

Bochs
Cooperative Linux
FreeVPS
Jail
KVM (ncessite les extensions de virtualisation AMD ou Intel)
LinuxVServer
OpenVZ
PearPC (mule un powerPC)
Qemu
ViewOS
User Mode Linux
VirtualBox
Xen

Zones (licence libre Solaris)

10

Yahia Slimani ; Hbib Elsmii

Vous aimerez peut-être aussi