Académique Documents
Professionnel Documents
Culture Documents
rico/site/cloud:2017:tp_intro
Virtualisation
I. Introduction
Problème : Besoin d'utiliser une application Windows sur un système
d'exploitation Linux.
Solution : multiboot
Mais une fois le système d'exploitation choisi et démarré, la seule façon d'en lancer
un autre, c'est de redémarrer l'ordinateur.
Il semble difficile de lancer Linux, puis de lancer Windows juste à côté en cas de
besoin.
À l'heure actuelle, il existe des projets permettant de le faire, mais ce n'est pas à la
portée de tout le monde et pas encore parfaitement au point!!!.
Définition
C'est l'ensemble de techniques matérielles et logicielles qui permettent de dissocier les
caractéristiques physiques d'un système matériel ou logiciel des applications
orientées utilisateurs.il s'agit de faire fonctionner sur une seule machine, plusieurs
systèmes d'exploitation.
Il ne s'agit pas vraiment d'avoir deux OS côte à côte : en fait, l'OS "virtualisé" est
démarré comme une application sur l'OS réel, comme n'importe quelle autre
application.
1
Virtualisation : ni simulation ni émulation
Les simulateurs sont utilisés pour compiler des programmes qui ont été
développés pour un certain système à des fins d’analyse sur un autre système.
Emulation
L'émulateur est un cas spécifique : il consiste à utiliser un système
d'exploitation (ou un programme) sur un système qui n'utilise pas la
même architecture.
2
Par exemple, l'émulation consiste à lancer un jeu Mégadrive (machine
basée sur un processeur 68000) sur un PC classique (en x86).
Virtualisation
La virtualisation est un peu différente : elle se base sur des systèmes
hôtes et clients basés sur la même architecture.
Flexibilité / «Scalability»
3
Terminologie
Système hôte : Un système d'exploitation principal (appelé système
d'exploitation hôte) est installé dans l'ordinateur et sert de système d'accueil à
d'autres systèmes d'exploitation.
Il existe différents types de virtualisation et chaque type répond à un besoin, une utilisation
particulière et dispose de ses propres contraintes et avantages. Pour aborder la suite, il est
important de comprendre un certain vocabulaire.
Isolateur
4
Par exemple, en logiciels libres : Linux-VServer (isolation des processus en espace
utilisateur), chroot (isolation changement de racine), BSD Jail (isolation en espace
utilisateur), OpenVZ (partitionnement au niveau noyau sous Linux), LXC (Linux containers),
Docker.
LXC (Linux Containers) est très récent et remplace Linux-VServer et OpenVZ. Aussi,
LXC est dès à présent intégré au noyau, ce qui n’a été le cas des deux solutions
citées précédemment.
5
Un noyau en espace utilisateur (user-space) tourne comme une application en espace utilisateur
de l'OS hôte.
Le noyau user-space a donc son propre espace utilisateur dans lequel il contrôle ses
applications.
Cette solution est très peu performante, car deux noyaux sont empilés et l’isolation des
environnements n’est pas gérée et l’indépendance par rapport au système hôte est inexistante.
Par exemple : User Mode Linux (noyau tournant en espace utilisateur) ; Cooperative
Linux ou coLinux (noyau coopératif avec un hôte Windows) ; Adeos (micro noyau RT faisant
tourner Linux en kernel-space non-RT) ; L4Linux (micro noyau RT faisant tourner Linux en
kernel-space non-RT).
II. Hyperviseur
L’hyperviseur, ou programme de contrôle, est un logiciel constitué d’un ensemble de
modules. Ces modules peuvent être regroupés en trois catégories :
Une fine couche logicielle appelée hyperviseur découple les machines virtuelles de
l’hôte et alloue dynamiquement les ressources informatiques aux différentes
machines suivant les besoins.
2. L’allocateur : son rôle est de déterminer quelles ressources doivent être allouées aux
applications virtualisées. Il est également du ressort de l’allocateur de ne pas donner une
même ressource simultanément à deux environnements virtuels distincts.
Le régulateur fera appel à l’allocateur chaque fois qu’un environnement virtuel tentera
d’exécuter une instruction privilégiée qui aurait comme répercussion de modifier les
ressources allouées à cet environnement virtuel.
3. Des interpréteurs : à chacune des instructions privilégiées (à l’exception de celles qui sont
prises en charge par l’allocateur), on va associer une routine d’interprétation. Le rôle de ces
routines est de simuler le résultat des instructions privilégiées qui sont piégées.
Hyperviseur de type 1
6
S'exécute directement sur la plateforme matérielle.
Implémente la plus part des services fournis par les noyaux des OS.
Dans ce cas le système invité est exécuté directement au-dessus du matériel.
Hyperviseur de type 2
Ce type d'hyperviseur s'exécute au sein d'un OS.
Dans ce cas le système invité est exécuté en troisième niveau au-dessus du matériel.
- Microsoft Virtual PC
- VirtualBox : émulateur de plateforme x86
- VMware : propriétaire, émulateur de plateforme x86.
7
registre afin de les rediriger de manière totalement transparente vers une localisation virtuelle
(généralement un fichier).
Puisque cette opération est transparente, l’application n’a pas de notion de son état virtuel.
2. La virtualisation de réseaux
De manière générale, la virtualisation des réseaux consiste à partager une même
infrastructure physique (débit des liens, ressources CPU des routeurs,...) au profit de plusieurs
réseaux virtuels isolés.
Un autre exemple de virtualisation de réseau est le réseau local virtuel (VLAN). Les VLAN sont
des sous-réseaux virtuels basés sur un réseau informatique physique. Les VLAN s’opèrent via
des composants matériels tels que des commutateurs ou des routeurs virtuels. Les appareils
connectés à un VLAN ne peuvent communiquer qu’avec des appareils du même VLAN. Il n’y a
pas de connexion de données avec les périphériques d’autres VLAN, même si tous les
périphériques sont sur le même réseau physique. La virtualisation de réseau offre ainsi la
possibilité de fournir, de gérer et d’allouer de manière flexible des ressources réseau au niveau
virtuel, indépendamment des conditions physiques.
8
3. La virtualisation de stockage
La virtualisation de stockage est un procédé qui va séparer la représentation logique et la
réalité physique de l’espace de stockage. Son but est de faire abstraction des périphériques de
stockage utilisés et des interfaces qui leur sont associés (SATA, SCSI,...) afin de limiter
l’impact des modifications structurelles de l’architecture de stockage.
Elle permet de masquer les spécificités physiques des unités de stockage. Côté utilisateur, les
unités de stockage sont vues comme un unique volume.
La mémoire virtuelle peut également être divisée et allouée à des applications sélectionnées.
Malgré la virtualisation, les utilisateurs peuvent accéder aux données stockées via les mêmes
chemins de fichier, même si l’emplacement physique change. Ceci est assuré par une table
d’affectation gérée par le logiciel de virtualisation. On parle alors d’un mappage des supports
de stockage physiques sur un disque logique (aussi appelé volumes).
Les lecteurs logiques ne sont pas liés aux limites de capacité physique des supports de
stockage individuels sous-jacents. La virtualisation du stockage offre ainsi beaucoup plus
de flexibilité dans l’allocation des ressources de stockage.
4. La virtualisation de serveurs
La virtualisation des serveurs consiste à masquer les ressources du serveur, c-à-d, le nombre
et les caractéristiques de chaque machine physique, de chaque processeur pour les utilisateurs
de ce serveur.
9
Ces environnements isolés sont parfois appelés serveurs privés virtuels, hôtes, instances,
containers ou émulations.
Pour cela, par un principe d'émulation, cette couche logicielle isole les ressources physiques
des systèmes d'exploitation. Ceux-ci s'exécutent alors sur des "machines virtuelles". Par ce
principe plusieurs systèmes d'exploitation peuvent cohabiter sur une même machine,
indépendamment l'un de l'autre.
La virtualisation de serveurs s’inscrit dans une tendance globale qui tend à promouvoir la
virtualisation au sein des entreprises en faisant appel à la virtualisation de stockage et à la
virtualisation de réseaux.
Cependant, comme le montre le schéma, cette relation introduit un gaspillage important des
ressources puisqu’on estime que la charge moyenne d’un serveur se situe entre 5% et 15%.
La virtualisation va apporter une solution efficace : plutôt que de faire tourner une seule
application sur le serveur physique, on va installer sur celui-ci plusieurs serveurs virtuels
exécutant chacun une application bien précise, et c’est le logiciel de virtualisation qui se
charge de répartir équitablement les ressources entre les différentes instances.
Rendement d’un serveur sans virtualisation Rendement d’un serveur avec virtualisation
10
2. Réduction de l’infrastructure physique et des économies d’énergies.
Les data centers sont d’importants consommateurs de ressources.
- VMware affirme qu’un serveur au repos consomme jusqu’à 30% du pic de
consommation électrique.
- Selon Intel, 36,4% de l’énergie est utilisée par les composants physiques des serveurs
(processeurs, mémoire,...) tandis que les 63,6% restants sont consommés par les
équipements de climatisation.
Les outils P2V sont utilisés dans les projets de virtualisation d’une infrastructure
informatique. Ils consistent à convertir les serveurs physiques en serveurs virtuels.
Les outils V2P, qui permettent de convertir des serveurs virtuels en serveurs physiques, sont
peu demandés mais une telle fonctionnalité rassure les entreprises qui souhaitent utiliser de la
virtualisation. Elle leur permet, si elles le désirent, de faire marche arrière.
Enfin, les outils V2V, qui permettent de convertir des serveurs virtuels d’un format dans un
autre, sont principalement utilisés au sein d’entreprises qui utilisent des gestionnaires de
systèmes virtuels différents.
5. Un cloisonnement (isolation)
Le développement d’une application s’accompagne de phases de tests au cours desquelles le
programmeur s’assure du bon fonctionnement et de la stabilité de son logiciel.
11
Bien qu’elle soit implémentée sur des machines puissantes, la virtualisation peut réduire les
performances des applications. Suivant le type de virtualisation envisagé, cette perte de
performances peut ou non être significative.
Ce problème est d’autant plus embarrassant qu’il est difficile d’estimer à l’avance l’impact
qu’aura la virtualisation sur une application donnée. Dans certains cas, la dégradation des
performances est telle qu’il est préférable de conserver l’application dans un environnement
physique.
Un système d’exploitation est prévu pour fonctionner en haute priorité et utiliser ces
instructions critiques afin de répartir les ressources du processeur entre les différentes
applications.
Mais lorsqu’il est en situation d’invité, sur une machine virtuelle, le même OS ne doit pas
pouvoir modifier les ressources matérielles, sous peine de faire planter tout le système.
Seul l’hyperviseur doit avoir ces droits. Il faut donc que toutes les instructions critiques soient
interceptées.
12
Tout d’abord, la relation entre le Cloud et le Big Data est démontrée par
un point commun : l’usage de la virtualisation.
Le Big Data est en quelque sorte dépendant du cloud pour la flexibilité qu’il
fournit. Les traitements des outils Big Data se trouvent alors facilités dans un
environnement adaptable à volonté pour optimiser les opérations
d’analytiques.
L’union entre le Cloud Computing et le Big Data devient une bonne pratique
dans la gestion des systèmes d’information.
Exemples
VirtualBox ou VMware Server ?
La première étape : choisir un logiciel de virtualisation.
VirtualBox et VMware Server, mais il en existe d'autres, Qemu, assez connu dans le
monde du libre. Bien qu'il soit performant, sa mise en place est peut-être un peu
compliquée.
VirtualBox
VirtualBox est gratuit et libre. L'une des fonctions les plus intéressantes de
VirtualBox est appelée la virtualisation seamless.
Comme son nom l'indique ce principe permet en fait d'intégrer les applications
Windows à votre bureau Linux.
Vous pouvez donc par exemple avoir le Firefox sous Linux, et dans la fenêtre juste à
côté, Internet Explorer sous Windows.
Côté inconvénients, VirtualBox ne permet pas facilement d'utiliser un disque dur déjà
installé dans l'ordinateur.
13
VMware Server
VMware Server est un outil gratuit créé par la société VMware, bien connue dans le
monde de la virtualisation, pour faire de la pub à ses solutions payantes. Mais cette
version gratuite possède tout un tas de fonctions intéressantes.
Ce logiciel permet en outre de créer très facilement une machine virtuelle basée sur
un disque dur déjà existant.
Si vous voulez utiliser un Windows déjà installé, alors il vaut mieux utiliser VMware
Server que VirtualBox, car l'opération est plus simple.
VirtualBox
Dans ce qui suit, nous utilisons la distribution Ubuntu, sous sa dernière version,
Gutsy Gibbon.
Installation
Quelques prérequis...
Avant de commencer, nous devons installer quelques paquets dont nous aurons
besoin par la suite.
Ouvrir une console. (sous Ubuntu : menu Applications > Accessoires > Terminal)
Afin d'être sûr d'avoir une liste des paquets à jour, tapez cette commande :
sudo apt-get update
Une fois ceci fait, exécutez la commande suivante pour installer des paquets
nécessaires à l'installation de VirtualBox :
sudo apt-get install linux-headers-generic build-essential
Ensuite, il reste à installer VirtualBox. Sous ubunto Gutsy Gibbon, le paquet est
déjà disponible dans les dépôts de la distribution. Mais il est conseillé plutôt
d'ajouter le dépôt officiel de VirtualBox. Cela permettra d'avoir la dernière version du
logiciel plus rapidement.
14
Sous Kubuntu : kdesu kate /etc/apt/sources.list
Sous Feisty :
deb http://download.virtualbox.org/virtualbox/debian feisty non-free
Sous Gutsy :
deb http://download.virtualbox.org/virtualbox/debian gutsy non-free
wget -q http://download.virtualbox.org/virtualbox/debian/sunffvbox.asc -O-|sudo ap
t-key add-
Enfin, mettez à jour la liste des paquets comme nous avons vu plus haut, avec la
commande sudo apt-get update.
Installation
15
VirtualBox est installé, mais avant de pouvoir l'utiliser, vous devez vous ajouter dans
le groupe vboxusers. Si plus d'un compte existe sur votre ordinateur, il faudra
également les ajouter, sans quoi ces autres comptes ne pourront pas démarrer le
logiciel. Tapez la commande suivante :
sudo adduser votrenom vboxusers
Si jamais l'installation n'a pas déjà créé le groupe, vous pouvez le faire simplement
en tapant la commande suivante : sudo groupadd vboxusers
Configuration
Démarrer VirtualBox, Sous Kubuntu, il se trouve dans le menu Système. Sous
Ubuntu, il se trouve dans Applications > Outils Système.
Cliquez sur l'entrée appelée innotek VirtualBox, et l'application se lance.
Pour installer Windows, il faut posséder le CD/DVD d'installation. Si vous n'en avez
pas vous passez directement à VMWare Server pour utiliser Windows déjà
installé.
Le choix d'une valeur trop faible de RAM : le système aura du mal à fonctionner...
Mais le choix d'une valeur trop grande : Linux qui risque de planter.
16
Cliquez sur Suivant pour configurer le disque dur.
Une image dynamique aura au départ une très petite taille, et augmentera au fur et à
mesure de votre utilisation du disque dur, jusqu'à la limite fixée. Une image à taille
fixe aura dès le départ la taille choisie. En général, il est conseillé d'utiliser une image
dynamique, car cela évite de se retrouver avec une partie de son disque dur occupée
d'un seul coup.
Cliquez sur Suivant, puis choisissez une taille à allouer au disque dur.
Une fois vos choix faits, cliquez sur Suivant puis sur Terminer. Le disque dur créé
est automatiquement attribué à la machine.
Cliquer à nouveau sur Suivant pour continuer. Faites une dernière fois Terminer,
et voilà, la machine est créée !
Avant de la lancer, choisissez-la dans la liste et cliquez sur Préférences, car il faut
encore régler quelques options.
17
Rendez-vous ensuite dans Audio, et cochez la case Activer l'audio, puis
choisissez dans la liste le pilote audio ALSA. (c'est uniquement si vous voulez
avoir du son).
Installer Windows
Avant de démarrer, VirtualBox vous signale que, quand vous cliquez dans la fenêtre
de la machine virtuelle, la souris y est "coincée". Vous ne pourrez donc pas la sortir
de la fenêtre si vous voulez l'utiliser ailleurs. Pour la débloquer, vous devrez utiliser la
touche Ctrl droite.
Voilà, votre ordinateur démarre comme un vrai. Il suffit ensuite d'installer votre
système d'exploitation comme vous le feriez sur un vrai ordinateur.
Allez dans Machine > Plein Écran (ou utiliser Ctrl Droite+F )
18
plus besoin d'utiliser Ctrl droite pour sortir la souris de la fenêtre, la résolution utilisée
sera plus grande, et surtout, vous pourrez utiliser le mode Seamless. Bien que ça ne
soit pas indispensable, l'installation des ajouts clients est conseillé.
Le mode seamless
Quand c'est fait, allez dans le menu Machine puis cliquez sur Mode affichage
intégré dans le bureau.
Et alors la barre des tâches se place en bas de votre écran, et toutes les applications
Windows démarrées s'intègrent à votre bureau de manière complètement
transparente
Pour faire réapparaître la barre des tâches et les applications Windows si vous les
cachez, cliquez sur votre machine virtuelle dans la barre des tâches de votre
gestionnaire de fenêtre.
Mise à jour
sudo apt-get update
sudo apt-get upgrade
Désinstallation
sudo apt-get remove virtualbox
19
20
Installer Linux dans une machine virtuelle sous Windows.
Lancez le programme d'installation de virtual Box
L'assistant d'installation vous demande quels sont les éléments que vous souhaitez
installer.
Lui donner un nom comme « Ubuntu ». Vous remarquerez que les champs en
dessous se remplissent automatiquement pour indiquer le type de système
d'exploitation qui sera installé dans la machine virtuelle.
21
Vous constaterez que VirtualBox est capable de faire tourner de nombreux
systèmes d'exploitation, de Windows 3.1 à Windows mais aussi Linux
(Ubuntu, Red Hat, Debian…), Solaris, FreeBSD, etc.
Vous devez ensuite indiquer quelle quantité de mémoire vive (RAM) vous
souhaitez réserver à la machine virtuelle.
Laissez l'option « Créer un nouveau disque dur » sélectionnée Une nouvelle fenêtre
s'ouvre alors : l'assistant de création de disque dur virtuel.
22
6 - L'assistant de création de disque dur virtuel
L'assistant de création de disque dur virtuel vous demande quel type d'image disque
vous souhaitez créer. Deux choix s’offrent à vous :
Configurer le lecteur CD
23
Vous avez déjà gravé Ubuntu sur CD : il suffit d'insérer le CD dans le lecteur
avant de lancer la machine virtuelle. Il s’agit du cas le plus simple.
Vous avez téléchargé l'image (.iso) mais ne l'avez pas gravée sur CD : inutile
d'utiliser un CD pour cela, VirtualBox est capable de lire directement l'image
ISO.
Dans le cas où vous avez l'image ISO sur votre disque dur et où vous ne souhaitez
pas graver de CD, vous devez configurer la machine virtuelle pour qu'elle utilise le
fichier .iso comme CD.
Sur l’écran d’accueil d’Ubuntu, cliquez tout d’abord sur le nom de la machine
virtuelle disponible dans la liste puis cliquez sur le bouton « Configuration ».
Dans la fenêtre qui s'ouvre, sélectionnez « Stockage » dans la liste de gauche puis
sélectionnez la ligne « Vide » sous « Contrôleur IDE ».
Cliquez sur la petite icône en forme de dossier à droite. Une nouvelle fenêtre s'ouvre : le
gestionnaire de médias virtuels.
24
Cliquez sur le bouton « Ajouter » et indiquez où se trouve l'image ISO que vous
avez téléchargée sur le site d'Ubuntu.
25
Puis vous suivez le guide d’installation :
26