Virtualisation sous Linux

Computer Science - Operating Systems · notes

Browse all systèmes d'exploitation et cloud documents

Minist re de lEnseignement Sup rieur, de la Recherche Scientifique et de la Technologie

Universit Virtuelle de Tunis

Syst me dExploitation

GNU/Linux

Virtualisation sous linux

Yahia Slimani

Hbib Elsmii

Attention !

Ce produit p dagogique num ris est la propri t exclusive de l'UVT. Il est

strictement interdit de la reproduire des fins commerciales. Seul le

t l chargement ou impression pour un usage personnel (1 copie par

utilisateur) est permis.

Universit Virtuelle de Tunis

Syst me dExploitation GNU/Linux

Virtualisation sous linux

Objectifs :

D finir la notion de virtualisation sous GNU/Linux

Identifier les diff rentes techniques de virtualisation

1

Yahia Slimani ; Hbib Elsmii

Universit Virtuelle de Tunis

Syst me dExploitation GNU/Linux

Virtualisation sous linux

1. Notion de virtualisation

Lencyclop die francophone en ligne Wikip dia d finit la virtualisation comme lensemble

des techniques mat rielles et/ou logicielles qui permettent de faire fonctionner sur une

seule machine plusieurs syst mes dexploitation et/ou plusieurs applications, s par ment

les uns des autres, comme sils fonctionnaient sur des machines physiques distinctes . Il

sagit donc de faire fonctionner sur une m me machine (physique) plusieurs syst mes

d'exploitation (qui peuvent tre tous diff rents) en m me temps.

Concr tement, un syst me d'exploitation, dit h te , est install sur la machine

physique et mule une ou plusieurs machines virtuelles (avec processeur, m moire,

disque dur, carte r seau, BIOS, ...). Chaque machine virtuelle peut accueillir un syst me

d'exploitation dit virtualis (ou invit ). Le syst me h te assure le cloisonnement

entre les syst mes virtualis s et le partage des ressources physiques : On lappelle

superviseur .

Les syst mes virtualis s sont manipulables souhait par le superviseur : d marrage, arr t,

gel, sauvegarde de contexte ... De plus, comme le disque dur d'un syst me virtualis est

g n ralement mul par un fichier, il est facile de dupliquer un syst me virtualis ou de le

faire migrer d'un h te un autre. La virtualisation permet donc d'utiliser de mani re

optimale les ressources d'une machine : on peut ajouter des machines virtuelles si la

machine physique est sous-exploit e ( conomie d'argent par mutualisation des ressources)

ou en supprimer si elle est satur e (gestion de la mont e en charge). Enfin la virtualisation

permet une r partition des services sur plusieurs machines virtuelles et par l m me une

meilleure s curit : si un syst me est compromis, les autres peuvent continuer

fonctionner normalement.

2. Int r t de la virtualisation :

La virtualisation peut tre utilis e pour plusieurs fins et selon le contexte dutilisation. Pour

le particulier, la virtualisation permet davoir acc s des applications ne fonctionnant pas

sur le syst me dexploitation principal de lutilisateur. On peut notamment citer les

applications trop vieilles pour sex cuter sur la derni re g n ration du syst me

dexploitation (les anglophones parlent de legacy applications). Un autre domaine couvert

par la virtualisation est lutilisation de programmes non port s sur la plate-forme cible

(architecture PC vs architecture Mac, par exemple). On peut aussi citer, m me si cest plus

rare, lutilisation de virtualisation pour les jeux : faire fonctionner un jeu fait pour

Microsoft Windows dans une machine virtuelle sex cutant sur un syst me GNU/Linux.

2

Yahia Slimani ; Hbib Elsmii

Universit Virtuelle de Tunis

Syst me dExploitation GNU/Linux

Virtualisation sous linux

La soci t VMware propose notamment lacc s lacc l ration 3D depuis une machine

virtuelle pour son produit grand public, permettant datteindre des performances proches

de loriginal.

Pour les professionnels et les chercheurs en s curit , un syst me dexploitation virtualis

permet dobserver le comportement dun logiciel malveillant (malware) comme un virus,

un ver un spyware dans un syst me sain sans avoir infecter une machine physique. De

plus, le processus dinfection est reproductible, car il suffit de sauvegarder l tat de la

machine virtuelle avant linfection pour pouvoir r p ter lop ration plusieurs fois, dans des

Advertisement

conditions contr l es. Il est alors possible danalyser l tat de la machine virtuelle apr s

infection, et de tirer des conclusions sur laction du logiciel.

Pour une entreprise, les technologies de virtualisation permettent de s parer des applications

et des syst mes de mani re logique, quand les pr requis des applications sont

mutuellement exclusifs. Par exemple, une application critique mais incompatible avec une

version donn e dun logiciel ne peut pas cohabiter sur la m me machine avec une autre

application d pendant dune autre version du m me logiciel. Certains cas incompatibilit s

peuvent se r soudre en laissant install s les deux logiciels dans deux versions diff rentes,

mais le surco t de maintenance est non n gligeable.

En plus de la simple incompatibilit de versions, deux applications peuvent aussi avoir le

m me r le, mais dans des contextes diff rents. Par exemple une version de d veloppement

et une version finale dun site web ne peuvent pas cohabiter de mani re simple, moins

dy consacrer un effort de maintenance l aussi cons quent. Pour le d veloppement dune

application web, le test du site sous plusieurs navigateurs est primordial. La virtualisation

de plusieurs syst mes dexploitation permettra aux d veloppeurs 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 sex cuter sur une machine donn e, la virtualisation permet aussi de les rassembler sur

une m me machine physique, sans avoir maintenir un serveur distinct par application.

Traditionnellement, lusage tait de consacrer une machine physique un service

(messagerie, stockage, h bergement dintranet, etc.), tant pour des raisons pratiques

(associer une machine un r le unique) que pour la s curit (s paration des services).

Toutefois, cette dispersion a un co t qui nest pas nul pour lentreprise, que ce soit en espace

occup (location au m tre 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

Syst me dExploitation GNU/Linux

Virtualisation sous linux

pannes mat rielles). De plus, la plupart des services fournis sur un r seau local (DHCP,

DNS, Intranet, ...) ne consomment quune tr s faible partie des ressources offertes par une

machine r cente. Tous ces facteurs font quil nest plus pertinent aujourdhui dutiliser des

machines s par es pour h berger des services ne n cessitant quune fraction de la

puissance dune machine.

Aussi, lheure actuelle, la tendance est plut t au rassemblement de plusieurs services,

autrefois distincts, sur une seule machine, par le biais de lutilisation de technologies de

virtualisation pour maintenir une s paration 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 syst me et une machine obsol tes (et donc avec un

risque de panne mat rielle plus important) que dentamer une migration vers une nouvelle

plate-forme. La virtualisation permet dans ce cas dex cuter lapplication comme dans son

environnement dorigine, mais sur du mat riel r cent. On peut citer, sans ordre particulier :

une application de comptabilit (ou un progiciel quelconque) utilis e depuis des ann es

mais non port e sur la nouvelle version dun syst me dexploitation ou encore un logiciel

de pilotage de machine industrielle. Ce sont deux exemples classiques dapplication de la

virtualisation pour autre chose que de lh bergement de services.

En plus des possibilit s techniques cit es ci-dessus, la virtualisation est galement une

technologie clef pour lavenir de lentreprise. En effet, elle ne permet pas seulement de

contourner les limitations mat rielles des ordinateurs, mais elle peut aussi fournir un

avantage d cisif sur la concurrence dans le milieu tr s disput quest linformatique de

services.

3. Les des diff rentes techniques de la

virtualisation

Tr s peu de syst mes d marrent directement, et sur plateforme PC tous les syst mes d marrent

selon un processus (boot) en trois temps : le BIOS, le chargeur de d marrage (bootloader) et le

syst me. Pour les syst mes embarqu s et les anciens calculateurs, ces phases taient aussi un

choix prendre en compte. Des moniteurs, OS minimaux emportant des fonctionnalit s de

4

Yahia Slimani ; Hbib Elsmii

Universit Virtuelle de Tunis

Syst me dExploitation GNU/Linux

d bug, ont vu le jour. L'id e initiale tait de se concentrer sur cette phase, puis ensuite d'en

g n raliser les concepts : un syst me d'exploitation reposant sur l'API d'un noyau r duit.

Virtualisation sous linux

Advertisement

Les syst mes de virtualisation partent donc du principe de l'utilisation de couches logicielles

interm diaires. Afin d'avoir une id e th orique 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 sch mas en rajoutant des environnements virtualis s consommant galement des

ressources de l'h te, en m moire puis en disque.

Fondamentalement, on trouvera deux id es 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 h te, ce logiciel permettant de lancer un ou

plusieurs OS invit s, c'est l'arch type de la solution de virtualisation par empilement de syst mes.

La machine virtualise le mat riel (ce qui passe g n ralement par une mulation partielle) pour les

syst mes d'exploitation invit s : les syst mes d'exploitation invit s croient dialoguer directement

avec le mat riel. En pratique on a recours une mulation logicielle des p riph riques, et parfois

aussi de tout ou partie de la machine.

Cette solution isole bien les syst mes d'exploitation invit s, mais elle a un co t, en premier lieu en

performance, dont les principales victimes seront les entr essorties. Ce co t, assez important

d j s'il suffit de prot ger les instructions privil gi es, peut tre tr s lev si le processeur doit

tre int gralement mul . Cette solution n'est pas non plus conome en m moire, puisque

aucune conomie d' chelle ne peut tre r alis e en ce qui concerne les OS (kernels) charg s.

Exemple :

Qemu : mulateur de plateformes x86, PPC, Sparc,

VMWare : propri taire, mulateur de plateforme x86,

Microsoft VirtualPC et VirtualServer : propri taire, mulateur de plateforme x86,

VirtualBox : mulateur de plateforme x86.

5

Yahia Slimani ; Hbib Elsmii

Universit Virtuelle de Tunis

Syst me 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 co t en ressources en permettant des courtscircuits optionnels

(KVM, KQemu, VirtualBox), disponibles uniquement hors du contexte d' mulation bien s r.

Les deux technologies suivantes constituent elles aussi le r sultat de consid rations d'optimisation

de cette solution, le principe tant de diminuer au mieux l' paisseur des couches de virtualisation

tout en conservant le m me degr d'isolation.

"

Virtualisation d'OS, Isolateur

Un isolateur est un logiciel permettant d'isoler l'ex cution des applications dans des contextes ou

zones d'ex cution, c'est l'arch type de la solution de virtualisation par "juxtaposition". L'isolateur

permet ainsi de faire tourner plusieurs fois la m me application ( base d'un ou plusieurs logiciels)

pr vue pour ne tourner qu' une seule instance par machine.

Notons que cette technologie consiste en quelque sorte g n raliser la notion de "contexte" Unix :

ce dernier isole les processus (m moire, acc s aux ressources), on ajoute alors : une isolation des

p riph riques (c'est le r le de l'isolateur), voire leur partage, les syst mes de fichiers donc les

fichiers euxm mes et leurs acc s.

Cette solution est tr s performante, du fait du peu d'overhead (chute de performance cons quente

de l'ajout des couches de virtualisation), mais les environnements virtualis s ne sont pas

compl tement isol s, ils partagent en particulier le code du noyau. Cette solution est aussi

remarquablement conomique en m moire par cons quence de la derni re remarque. Ces

environnements sont donc bien adapt s au d ploiement de nombreux serveurs virtuels de test ou

d veloppement bas s sur un m me syst me.

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 syst me, voire dans le syst me

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

Syst me dExploitation GNU/Linux

Virtualisation sous linux

"

Hyperviseur complet

Partant du principe, expos pr c demment, qu'une approche pour une virtualisation efficace

Advertisement

consiste affiner les couches, une premi re approche consiste proposer un noyau l ger (de type

micronoyau par exemple), lequel est accompagn d'outils de supervision, et adapt pour faire

tourner des syst mes d'exploitation natifs. Pour r ussir cette approche, soit on mule le mat riel

(et on revient aux performances de la machine virtuelle pour les I/O), soit on dispose des

instructions d di es la virtualisation. Dans ce dernier cas, les logiciels libres concern s se

limiteront au monde x86 ou x8664, munis des instructions adhoc.

Les principaux exemples de ce principe sont :

KVM : Int gr 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 ult rieure) ou VTx

(version 3.0 ou ult rieure).

"

Paravirtualiseur

Un paravirtualiseur est un noyau h te all g et optimis pour ne faire tourner que des noyaux de

syst mes d'exploitation invit s, adapt s et optimis s. Les applications en espace utilisateur des

syst mes d'exploitation invit s tournent ainsi sur une pile de deux noyaux optimis s, les syst mes

d'exploitation invit s ayant conscience d' tre virtualis s. Cette approche offre l'avantage d' tre

utilisable en l'absence des instructions sp cifiques, mais elle est impraticable pour des syst mes

non libres pour lesquels l' diteur ne fera pas l'effort d'adaptation.

Exemple :

Xen : noyau l ger supportant des noyaux Linux, Plan9, NetBSD, etc,

4. Les produits de virtualisation

a. Introduction :

La virtualisation est une approche syst me dans la continuit logique de l' volution : apr s avoir

"virtualis le processeur" pour faire du multit che sur une unit de traitement unique, on

virtualise le syst me entier pour disposer de plusieurs syst mes dexploitation complets tournant

simultan ment sur une m me machine. Cette approche, historiquement introduite sur les gros

syst mes (IBM), se d mocratise en raison de la puissance tr s importante des microprocesseurs

aujourd'hui, laquelle est largement sousexploit e. (On estime l'utilisation de la puissance des

serveurs environ 10% aujourd'hui).

7

Yahia Slimani ; Hbib Elsmii

Universit Virtuelle de Tunis

Syst me dExploitation GNU/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

Virtualisation sous linux

parall le d'une solution commerciale, VMWare.

Par la suite, Fabrice Bellard a d marr Qemu, un projet Open Source qui a chang la donne en

s'appuyant sur une partie du code de Boochs et en am liorant et affinant ses concepts. Il a

apport un compilateur justintime, puis une acc l ration en permettant des 'raccourcis'

ma tris s contr l s par un fichier sp cial (un p riph rique Unix) d di .

Dans le m me temps, les laboratoires d'informatique de Cambridge lan aient 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 int gr derni rement des instructions destin s faciliter et acc l rer

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 d veloppement d'outils graphiques ou d'administration g n riques. La

premi re mouture de libvirt visait Xen, la version ce jour supporte aussi Qemu et OpenVZ.

Les gains de l'utilisation de la virtualisation sont mat riels (une machine peut simuler plusieurs

serveurs totalement cloisonn s, utile pour proposer par exemple une plateforme de tests ou

pour d ployer de nouveaux services sur un parc pr existant sans se soucier de migrations), ou en

s ret de fonctionnement (un serveur sur une machine virtuelle peut prendre le relais en

configuration cluster si le ma tre c de pour des raisons logicielles), ou les deux. Cette approche

permet par exemple de configurer une ferme de serveurs de secours proposant plusieurs services

diff rents sur une machine de secours unique sans contraindre tous les services aux m mes

versions logicielles, m me environnement syst me, m me configuration.

L'arriv e des technologies de virtualisation dans le monde des PC a donc ouvert de nouvelles voies

pour s curiser, simplifier et rationaliser les co ts dans les syst mes d'information.

b.

Quelques produits du march :

La r f rence commerciale en la mati re est VMWare, qui propose une gamme de solutions de

virtualisation matures, chaque solution se trouvant accompagn e d'outils facilitant la gestion du

parc virtuel. VMWare est disponible gratuitement pour les machines disposant d'au plus 2 unit s

de traitement, mais est payant audel . C'est un logiciel commercial distribu sous licence, aucune

partie du code n'est libre. Il fait de surcro t l'objet d'un brevet aux EtatsUnis.

8

Yahia Slimani ; Hbib Elsmii

Advertisement

Universit Virtuelle de Tunis

Syst me dExploitation GNU/Linux

Le logiciel libre phare du domaine, Qemu, est aussi une base de r f rence, 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

para tre un peu abrupte. Il propose cependant beaucoup de fonctionnalit s originales, ce qui le

Virtualisation sous linux

rend incontournable : il est le premier logiciel pr sent ciapr s.

Ces deux r f rences 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 syst mes libres d'aujourd'hui, c'est qu'ils couvrent presque toutes les

techniques de virtualisation identifi es, 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, utilis s sur des machines les supportant, pour l'hyperviseur complet.

Outils libres de virtualisation :

Du c t de la communaut du logiciel libre, il y a norm ment de projets de virtualisation, ayant

des buts variables. Certains dentre eux sont soutenus par une soci t , qui fournit un service

payant pour les clients le souhaitant. Les plus connus sont :

Bochs (prononcer box ) Bochs est un mulateur tr s complet de larchitecture PC traditionnelle

(processeur Intel) ;

KVM soutenu par la soci t Qumranet, KVM se veut une solution de virtualisation performante et

facile administrer ;

LinuxVServer projet de virtualisation destin fonctionner sur le syst me dexploitation

GNU/Linux ;

OpenVZ soutenu par la soci t Virtuozzo, OpenVZ est une solution de virtualisation

visant obtenir les meilleures performances possibles ;

QEMU cr et d velopp par Fabrice BELLARD, QEMU est un projet visant offrir une machine

virtuelle compl te pour plusieurs architectures mat rielles, y compris larchitecture PC ;

Xen soutenu par la soci t XenSource, Xen vise proposer une solution performante pour la

virtualisation de serveurs ;

9

Yahia Slimani ; Hbib Elsmii

Universit Virtuelle de Tunis

Syst me dExploitation GNU/Linux

Virtualisation sous linux

Cidessous une liste des produits de virtualisation opensource :

" Bochs

"

"

"

"

"

"

"

"

"

"

"

"

"

Cooperative Linux

FreeVPS

Jail

KVM (n cessite 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