Académique Documents
Professionnel Documents
Culture Documents
INTRODUCTION GENERALE.................................................................................................................. 1
2) Intérêt du sujet :............................................................................................................................................................ 3
a) Mécanisme :............................................................................................................................ 6
b) Usage :.................................................................................................................................... 6
b) Résultat attendu :.................................................................................................................... 8
Conclusion :.................................................................................................................................................................... 10
1) Historique :................................................................................................................................................................. 11
2) Définition :.................................................................................................................................................................. 12
c) Réseaux de recouvrement...................................................................................................... 19
3) Intérêt de la Virtualisation :......................................................................................................................................... 24
a) La sécurité............................................................................................................................. 24
b) Le coût.................................................................................................................................. 25
c) Criticité et performances....................................................................................................... 26
4) Types de virtualisation :.............................................................................................................................................. 27
b) La virtualisation totale.......................................................................................................... 28
d) La paravirtualisation............................................................................................................. 31
e) La virtualisation Hybride...................................................................................................... 32
b) Citrix Xenserveur.................................................................................................................. 39
c) Proxmox............................................................................................................................... 40
Introduction..................................................................................................................................................................... 44
Introduction..................................................................................................................................................................... 51
2) Les domaines.............................................................................................................................................................. 54
a) Domaine privilégié................................................................................................................ 54
b) Domaines non-privilégiés..................................................................................................... 55
c) La gestion du temps.................................................................................................................................................... 61
d) La gestion de mémoire................................................................................................................................................ 63
e) La gestion de l'ordonnancement.................................................................................................................................. 66
Introduction :.............................................................................................................................................. 71
CONCLUSION GENERAL :..................................................................................................................... 87
INTRODUCTION GENERALE
Actuellement, le monde informatique entre dans une ère où on doit traiter des
données massives et des calculs lourds. Avec l’évolution de la technologie, nous sommes
obligés de travailler avec des énormes quantités de mémoires et des processeurs puissants
pour que les traitements se fassent dans une latence minime de temps. Or, une méthode
parmi tant d'autres a été trouvée depuis lors avec la construction de système de distribution
de stockages et de traitements de données.
La virtualisation est un sujet d'actualité pour les acteurs de l'industrie des systèmes
d'informations. Etant donnée notre entrée imminente sur le marché de travail, acquérir des
connaissances dans ce domaine constitue une valeur ajoutée à notre formation. La
virtualisation est applicable dans de multiples domaines des systèmes d'information.
Cependant, nous ne traiterons ici uniquement de la virtualisation de systèmes
d'exploitation.
Or, l’augmentation des besoins des utilisateur sur un serveur entrain la perte de
temps pour le traitement des données. Sur ce la virtualisation est-il nécessaire ?
Dans le cadre de la première partie, nous effectuerons une présentation sur le thème
choisi. Puis, nous effectuerons un tour d'horizon de la virtualisation et L’hyperviseur.
Ensuite l’étude et la méthodologie permettant de réaliser du projet et la présentation du
Xen. Enfin nous présentons quelque simulation pour montrer les résultats attendus.
1
PARTIE I : PRESENTATION ET RAISON DE CHOIX DU THEME
Dans cette Partie, nous commençons de distinguer les raisons du thème choisie,
puis la présentation du problématique, ensuite fonctionnements et les moyens pour la
réalisation, et en fin l’objectif et les résultats attendu.
- Matériels et coût : même s’ils ont envie de se lancer plus loin, la connaissance au
développement d’une architecture informatique est l’un des principaux obstacles.
D’autre part, les prix des matériaux sont élevés (RAM, disque dur, processeur…)
- Temps : le lancement des applications, des bases de données, les utilisateurs n’ont
pas le choix que d’attendre si leur ordinateur est à faible capacité.
- Serveur et réseaux : le prix des serveurs et des équipement réseaux sont élevés, du
cotés dépannages, les technicien et administrateur réseaux s’engagent davantage
aux détections des pannes et des mises en réseaux.
2
2) Intérêt du sujet :
Toutefois, cette dispersion a un coût qui n’est pas nul pour l’entreprise, que ce soit
en espace occupé (location au mètre carré dans les Datacenter*), en énergie
(consommation électrique) ou en maintenance (plus de machines physiques implique plus
de risques de pannes matérielles). De plus, la plupart des services fournis sur un réseau
local (DHCP, DNS, Intranet, ...) ne consomment qu’une très faible partie des ressources
offertes par une machine récente. Tous ces facteurs font qu’il n’est plus pertinent
aujourd’hui d’utiliser des machines séparées pour héberger des services ne nécessitant
qu’une fraction de la puissance d’une machine.
3) Annonce du Problématique :
La saturation des ressources matériel tel que le câblage. La gestion des servers est l’un
des principaux problèmes pour la détection des pannes. Ainsi le cout élevé de l’électricité
est un grand problème financier.
5
4) Fonctionnement de la virtualisation :
a) Mécanisme :
b) Usage :
6
5) Moyen de réaliser le projet :
Les moyens utilisés :
Il est l’une des premières plateformes de virtualisation open source du secteur pour
la gestion des infrastructures virtuelles cloud, de serveur et de poste. Les organisations de
toute taille peuvent installer XenServer en moins de dix minutes pour virtualiser les
charges les plus contraignantes et automatiser les processus de gestion, améliorant la
souplesse et la mobilité de l’informatique.
Il y a deux (02) type d’hyperviseur mais ce qu’on va utiliser c’est de type 1 c’est-à-
dire on l’installe l’OS du xenserveur directement dans une machine
7
c) Utilisation des logiciels comme NX et TLS
NX (Nomachines X):
Présentation
Terminal Server Edition permet la prise en charge de plusieurs sessions utilisateurs sur le
même serveur.
a) Objectif du projet :
b) Résultat attendu :
Aujourd’hui les entreprises sont exposées à plusieurs enjeux dont la virtualisation
leurs trouve plusieurs solutions.
L’entreprise améliore son espace disponible en réduisant le nombre de serveurs de son parc
informatique.
La virtualisation permet aux grandes entreprises d’améliorer leurs dépenses vers
d’autres départements et offre ainsi un gain de place.
• Augmentation de la sécurité :
9
10
• Tests d’applications :
La mise à disposition de plusieurs machines distinctes est nécessaire pour toutes ces
procédures.
Une autre machine virtuelle permet de préserver la qualité de service lorsqu’il ya une
défaillance.
Conclusion :
A travers ce chapitre nous avons dégagé les principaux problèmes sur les
entreprises ce qui nous aide de se placer dans le contexte général, les moyens et l’objectif
de notre projet.
11
CHAPITRE I : LA PRINCIPE DE LA VIRTUALISATION :
1) Historique :
12
Figure2.1 : L'apparition de virtualisation
2) Définition :
En d'autres termes, c'est une technique qui fait référence à l’abstraction des
caractéristiques physiques de ressources informatiques, processeurs, mémoires, stockages,
carte réseau, afin de les présenter à des systèmes, des applications ou des utilisateurs sous
une forme logique.
Les ressources logiques allouées à une machine virtuelle sont abstraites à partir de
leurs équivalents physiques. Les disques virtuels, interfaces réseau virtuelles, réseaux
locaux virtuels, commutateurs virtuels, processeurs virtuels et la mémoire virtuelle
correspondent tous à des ressources physiques sur des systèmes informatiques physiques.
L’ordinateur hôte voit ses machines virtuelles comme des applications auxquelles il
distribue ses ressources.
13
La virtualisation est un mécanisme informatique qui repose sur le processus
suivant :
• Un système hôte c’est un système d’exploitation principal est installé sur un serveur
physique unique, ce système sert d’accueil à d’autres systèmes d’exploitation.
• Un Hyperviseur c’est un logiciel de virtualisation, il est installé sur le système
d’exploitation principal, il permet l’implémentation d’environnements sur lesquels
seront installés d’autres systèmes d’exploitation, ces environnements sont des
machines virtuelles.
• Chaque système installé dans une machine virtuelle fonctionne indépendamment
des autres systèmes d’autres machines virtuelles.
• Chaque machine virtuelle possède un accès aux ressources du serveur physique
(mémoire, espace disque…).
14
3) Virtualisation dans les systèmes informatiques
La virtualisation du stockage de données, comme l’a définie (Bonnet, 2002), est une
technique permettant de masquer la disparité des ressources de stockage (Ex. :
équipements, protocole d’accès) et à les présenter comme une unité de stockage virtuelle
homogène. En d’autres termes, cette technique crée une couche d’abstraction entre les
applications et les ressources de stockage physique. Pour être stocké, le trafic sortant des
applications est intercepté par le périphérique de stockage virtuel qui le redirige vers les
différents périphériques de stockage physiques (Ex. : disque dur externe, serveur de
stockage). Ainsi, le périphérique de stockage virtuel permet d’avoir une vision homogène
des différents périphériques de stockage et donc de simplifier la gestion du stockage des
données dans une entreprise. Il apporte aussi des fonctionnalités de réplication et de
reproduction de données indépendamment des périphériques et de leur constructeur
(Schmitt, 2008).
15
SAN Volume Controller (SVC) est un exemple de système de virtualisation de
stockage, développé par IBM, permettant d’identifier toutes les ressources de stockage
disponible au sein d’une entreprise et de veiller à ce que leur utilisation soit optimale
(IBM, 2011). Ce système permet de combiner virtuellement la capacité de différents
systèmes de stockage et permet de les gérer à partir d’une seule interface.
De nos jours, la majorité des entreprises utilisent des serveurs pour stocker leur base de
données et pour partager leurs applications. Les entreprises optent de plus en plus à réduire
le nombre de leurs serveurs à cause du coût important qu’engendre la maintenance, la mise
à jour et le fonctionnement de ces équipements (Pradeep Padala, 2007). Ce besoin de
réduire le nombre de serveurs a incité les chercheurs à mettre en place une technique
permettant de virtualiser les ressources d’un serveur. Cette technique consiste à
partitionner un serveur physique en plusieurs entités virtuelles séparées. Chaque entité
virtuelle peut avoir son propre système d’exploitation et ses propres applications.
16
Un des avantages majeurs de cette technique est d’offrir la possibilité d’exécuter sur
le même serveur plusieurs applications qui ne sont pas faites pour coexister. Par exemple,
des applications qui requièrent des systèmes d’exploitation différents. Cette caractéristique
permet de réduire considérablement les coûts en diminuant le nombre de serveurs
physiques utilisés.
La virtualisation des applications, comme l’a définie (Gurr, 2008), est un procédé
permettant d’ajouter une couche d’abstraction entre le système d’exploitation et les
applications. Cette technique permet d’exécuter des applications sur un poste client sans
les installer sur ce poste. En effet, ces applications sont réellement installées sur un serveur
virtuel distant.
17
1) Virtualisation dans les environnements réseaux :
Un nom est assigné à un groupe d’un ou plusieurs ports du commutateur. Pour que
deux ordinateurs connectés sur des ports de nom différents puissent communiquer, le trafic
doit être acheminé par un routeur (Zeng et Cheng, 2009).
18
VLAN de niveau 2 (VLAN MAC) :
Les trames sont classées par le commutateur selon leur adresse MAC source. En
effet, les adresses MAC des stations sont classées par l’administrateur du réseau dans des
listes appelées MAC-to-VLAN. Chaque liste correspond alors à un réseau logique
indépendant.
Les machines appartenant au même sous-réseau sont classées dans le même VLAN.
Un VPN est un réseau dédié permettant de connecter plusieurs sites à l’aide du principe
de tunnellisation (Diab, Tohme et Bassil, 2008). Ce dernier permet de transmettre des
données, via un tunnel virtuel, d’une manière plus sécurisée en utilisant des algorithmes de
cryptographie. Cette technologie est utilisée généralement pour interconnecter plusieurs
sites, d’une même entreprise, séparés géographiquement. Selon le protocole utilisé au
niveau du plan de données, la technologie VPN peut être classée en trois catégories : VPN
couche 1, VPN couche 2 et VPN couche 3.
c) Réseaux de recouvrement
Un réseau de recouvrement (overlay) est un réseau virtuel implémenté sur un ou
plusieurs réseaux physiques existants (Kawahara et al., 2011). La mise en place d’une telle
architecture n’affecte pas les fonctionnalités du réseau sous-jacent. Cette technique a été
alors utilisée pour implémenter plusieurs nouvelles fonctionnalités au réseau internet. Par
exemple, nous pouvons considérer la qualité de service comme une couche de
recouvrement au-dessus du réseau internet et qui utilise ses propres mécanismes pour
router l’information(Kawahara et al., 2009). Plusieurs autres couches de recouvrement ont
été proposées dans la littérature pour une meilleure gestion du routage (Elaoud et al.,
2005), garantir une protection contre les attaques par saturation (Beitollahi et Deconinck,
2008) et la distribution de données (Byers et al., 2004) ainsi que supporter la
multidiffusion (Jannotti et al., 2000). L’inconvénient des réseaux de recouvrement est
l’effort considérable nécessaire pour les créer et les maintenir. C’est pour cette raison que
seulement quelques-unes des nombreuses nouvelles architectures ont été testées sur des
réseaux de recouvrement (Anderson et al., 2005).
L’objectif des réseaux actifs et programmables est donc de proposer des interfaces
programmables ouvertes (API) et standardisées (Campbell et al., 1999) permettant la
conception, l’implémentation et l’introduction de nouveaux services (Olivier FESTOR,
2000). Par exemple, le projet PIN 1650 (Biswas et al., 1998) de IEEE initié en 1997
propose un ensemble d’interfaces de programmation permettant, entres autres, de
programmer facilement des services pour la gestion de la qualité de service sur IP(Olivier
FESTOR, 2000).
20
2) Projets de virtualisation de réseaux
Afin de valider une nouvelle architecture réseau, les chercheurs ont besoin de la
tester sur le réseau internet « réel » afin de déceler la moindre anomalie qui a pu échapper
aux simulateurs ou émulateurs dans les premiers tests réalisés. En revanche, les
fournisseurs d’accès Internet (FAI) ne veulent en aucun cas prendre le risque de perturber
le bon fonctionnement de leur réseau pour tester de nouveaux protocoles, car la moindre
interruption de service ou panne peut leur causer une perte considérable de revenu. Afin de
résoudre ce problème, des plateformes de test ont été implémentées dans le but de
permettre aux chercheurs de tester leurs nouvelles architectures sur une topologie et avec
un trafic internet « réels » sans affecter les performances de ce réseau (Spyropoulos, Fdida
et Kirkpatrick, 2007). Bien que leur but soit le même, les différentes plateformes
développées ont des architectures et des caractéristiques différentes. Elles peuvent être
classées selon les caractéristiques suivantes (Chowdhury et Boutaba, 2010):
Technologie du réseau :
Couche de virtualisation :
Les chercheurs ont été influencés par le modèle en couche du réseau Internet
existant. En effet, ils ont proposé des projets qui visent à virtualiser ces couches allant de la
couche physique (Ex. : UCLP) jusqu’à la couche application (Ex. : VIOLIN) (Chowdhury
et Boutaba, 2010).
21
Domaine architectural :
La plupart des projets ont mis l’accent sur un domaine architectural bien défini. Ce
domaine influence les choix de conception des architectures de ces projets ainsi que les
services qu’ils offrent. Par exemple, le projet VNRMS vise le domaine de gestion des
réseaux virtuels (Chowdhury et Boutaba, 2010).
Par exemple, PlanetLab se base sur la virtualisation des nœuds tandis que UCLP se base s!
ur la virtualisation des liens (Chowdhury et Boutaba, 2010).
Plusieurs projets de virtualisation ont été conçus pour tester des technologies réseau
bien définies. Le X-Bone, par exemple, est la première infrastructure de réseaux virtuels
développée afin de permettre aux chercheurs de tester leurs protocoles et service dans des
conditions réelles sur des réseaux IP (Joe Touch 1998). Cette infrastructure permet de créer
des liens virtuels entre les routeurs et les hôtes virtuels en utilisant le principe de
tunnellisation. Elle coordonne la configuration et la gestion des différents réseaux virtuels
et permet la découverte et le déploiement des ressources physiques disponibles au niveau
des différents nœuds. X-Bone offre une abstraction entre les différents réseaux de
recouvrement ce qui permet de protéger le trafic et d’isoler ainsi les tests des différents
protocoles. Cette architecture de virtualisation supporte la concurrence, la récursion et la
revisitation. La concurrence permet la coexistence de plusieurs réseaux de recouvrement.
La récursion offre la possibilité de déployer un réseau de recouvrement à l’intérieur d’un
autre. La revisitation permet de réutiliser le même nœud par un réseau de recouvrement.
L’accès aux différentes fonctionnalités du réseau X-Bone se fait à partir d’une interface
web ou une interface XML (Chun et al., 2003) , (Carbone et Rizzo, 2009).
22
réseaux à l’intérieur d’un réseau local (Chun et al., 2003). En effet, cette plateforme offre
aux chercheurs la possibilité de développer, de débuguer et d’évaluer leurs systèmes.
Emulab a été mis en place par le groupe de recherche Flux de l’Université Utah.
Actuellement, plusieurs centaines de nœuds ont été implémentés sur vingt-quatre sites à
travers le monde. Les utilisateurs peuvent utiliser les ressources des nœuds et des liens
Emulab en utilisant l’interface web Emulab. À travers cette interface, les utilisateurs
peuvent spécifier le type de nœuds, leur système d’exploitation ainsi que la nature des liens
reliant ces nœuds(Yuen, 2006).
23
d) Niveau de virtualisation (PlanetLab)
Planetlab (Planet NETwork Laboratory) est un projet qui se base sur la virtualisation
des nœuds (Peterson et al., 2003). En effet, PlanetLab est un réseau de recouvrement
implémenté en 2002 sur le réseau internet et composé actuellement d’environ mille nœuds
répartis partout dans le monde. L’accès aux nœuds est réservé aux personnes et aux
organismes affiliés. Chaque personne ou organisme se fait attribuer des parties des
ressources d’un nœud pour créer un environnement distribué virtualisé. Ces parties sont
des machines virtuelles instanciées au niveau des nœuds physiques de PlanetLab. Les
ressources physiques telles que le CPU, l’espace disque et la bande passante doivent être
partagées convenablement entre les machines virtuelles afin d’optimiser l’utilisation de ces
ressources et d’augmenter ainsi le nombre de parties assignées. Le réseau PlanetLab
comprend aussi un nœud central qui représente le cœur du système. En effet, ce nœud
comporte le logiciel de gestion de toute la plateforme ainsi que la base de données des
différents utilisateurs et nœuds du système (Chun et al., 2003) , (Carbone et Rizzo, 2009).
Parmi les nouvelles architectures proposées certaines exigent des changements non
seulement au niveau matériel et logiciel mais elles exigent aussi d’établir des accords entre
les fournisseurs d’infrastructure IP pour implémenter de nouvelles fonctionnalités au
niveau architecture. CABO et le logiciel intégré de virtualisation de réseau 4Ward (AB,
2009) représentent deux exemples de telles architectures. Alors que l’architecture de
24
CABO établit une séparation entre les fournisseurs d’infrastructure et les fournisseurs de
service, celle de 4Ward définit trois rôles distincts :
Les opérateurs de réseaux virtuels offrent des services aux usagers à travers les
réseaux virtuels. Un des défis majeurs pour la conception de telles architectures est de
mettre en place une stratégie de sélection et d’allocation de ressources qui permet d’utiliser
efficacement les ressources disponibles. Dans la section qui suit, nous présentons les
différentes stratégies proposées dans des travaux de recherches antérieures.
3) Intérêt de la Virtualisation :
A l’époque où les ordinateurs n’étaient capables de ne faire exécuter qu’un seul
processus en même temps, l’intérêt de se diriger vers un système supportant la gestion
multiprocessus était de pouvoir optimiser les ressources de calcul. La virtualisation va plus
loin encore, nous allons voir ici les différents intérêts qu’elle porte. Nous allons voir au
cours de cette partie différents avantages que la virtualisation peut apporter. Nous
aborderons différents points tels que la sécurité, le cout, ainsi que les performances.
a) La sécurité
La virtualisation va permettre une isolation des différents environnements logiciels
au niveau des ressources physiques. La communication entre les différentes machines
virtuelles sera uniquement possible via des connexions réseau de manière identique à la
communication entre deux machines physiques. L'isolation est telle que la compromission
d’un système invité par du code malicieux ne pourra pas se propager à d’autres systèmes
invités. Il sera donc tout à fait possible d'isoler chaque service sans devoir acheter un
nouveau serveur à chaque fois.
b) Le coût
Actuellement, nous réalisons le fait que les serveurs sont largement sous utilisés. En
effet, une étude Gartner a montré qu'en moyenne les serveurs sont utilisés à 5% de leur
capacité. La sous-utilisation de serveurs empire avec la présence de serveurs en hot spare.
Un tel serveur est un serveur qui attend un dysfonctionnement du primaire pour prendre le
relais. En absence de dysfonctionnement, ce serveur n'effectue aucun travail alors qu'il
consomme de l'énergie et prend de la place en centre de données. Avec les coûts
grandissants des matières premières énergétiques et donc a fortiori l’électricité, les
gestionnaires de parcs serveurs se retrouvent contraints de se soucier des enjeux
d’optimisation de la consommation électrique. De plus, il est nécessaire de gérer des
contraintes liées au manque d’espace dans les centres de données dont le prix augmente à
cause de la demande croissante. Un hébergeur de serveurs va pouvoir bénéficier de la
virtualisation par le biais d'une gestion de ressources plus fine. Il va lui être possible de
gérer finement la répartition des ressources physiques entre les différents serveurs. Il va
également bénéficier de fonctionnalités de comptabilité de l'utilisation des ressources pour
pouvoir proposer une facturation plus adaptée à l'utilisation des ces clients.
26
c) Criticité et performances
L'accumulation de systèmes invités sur un même système physique augmente sa
criticité. Une panne matérielle rendra indisponibles tous les systèmes invités. Pour pallier
la criticité accrue du système physique, des solutions ont été prévues.
La solution la plus basique est de prévoir la possibilité de faire des images des
systèmes invités. Des taches très longues à effectuer vont pouvoir être sauvegardés en
cours d’exécution. Il sera ensuite possible de relancer ces tâches à partir de ce point en cas
de panne. Un autre exemple de l’utilisation de ce procédé est le clonage de différentes
instances d’un invité. Par exemple, si plusieurs tâches nécessitent un même travail
préliminaire long, il sera possible de faire effectuer dans une première instance ce travail,
ensuite de la cloner autant de fois qu’il y a d’autres tâches et de les lancer séparément. Une
solution plus efficace pour palier à la criticité des serveurs de virtualisation est la migration
dynamique de systèmes invités. Le pré-requis est d’avoir un support de stockage accessible
en réseau. Un système invité est exécuté sur un premier serveur. Dans le cas d’une panne
matérielle ou d’une maintenance planifiée, il sera possible de migrer dans de très courts
délais ce système vers une autre machine tout en sauvegardant son état avant l'interruption.
Ce procédé permet à lui seul de réduire la criticité des systèmes individuels à un niveau
largement acceptable. Il fait reposer une plus grande criticité sur les systèmes de stockage
en réseau qui peuvent cependant être dédoublés. Une autre utilité de ce procédé en termes
de performances va être de pouvoir allouer des ressources à la volée aux systèmes invités.
Dans le cas d’une montée en charge d’un système invité, il sera possible de l’isoler sur un
serveur en déplaçant les autres systèmes présents à ces cotés sur d’autres serveurs moins
chargés. Ce procédé peut également être utile dans un objectif de réduction de la
consommation électrique d’un parc de serveur. Il est envisageable de n’utiliser que peu de
machines lorsque le système est soumis à une faible charge et d’allumer progressivement
les autres machines en fonction de la montée en charge. Ceci nécessite une gestion de
l’allumage électrique du serveur par le réseau mais bon nombre de serveurs récents
disposent de tels outils.
27
4) Types de virtualisation :
a) La virtualisation au niveau du système d’exploitation
28
Figure 2.7 : Virtualisation au niveau du système d'exploitation
b) La virtualisation totale
29
Figure 2.8 : Virtualisation totale
La virtualisation partielle quant à elle n’a pas pour but de simuler de nouvelles
architectures pour les systèmes invités, mais uniquement une partie. En effet on va émuler
la partie matérielle qui nous intéresse pour faire fonctionner une application particulière.
Dans ce cas l’émulation d’une seule ressource peut être suffisante. On parle donc de
virtualisation partielle. L’intérêt est donc de ne pas resimuler tout le matériel de la
plateforme émulée.
30
Advanced Power Virtualization pour IBM et de Ultra SPARC T1 Hypervisor pour SUN.
Encore une fois on trouve plusieurs termes pour définir ce type de virtualisation, et ce sont
les entreprises qui le dénomment différemment. Xen l’appelle HVM (Hardware Virtual
Machine), Virtual Iron quand à lui la dénomme virtualisation native (Wikipédia n.d.). Le
but de ce type de virtualisation était de pouvoir faire fonctionner tout type d’OS non
modifié de façon parallèle sur une même machine sans perte de performance. L’utilisation
des fonctionnalités processeurs liées à la virtualisation a permis en partie cet exploit mais
les différentes sources ne sont pas en accord vis-à-vis du facteur de perte de performance
(Primet/Vicat-Blanc 14 Septembre 2007) (Wikipédia n.d.) (Nakajima n.d.). Cloud
d'Entreprises.
31
entrées/sorties émisses par les périphériques de la machine et de les relayer à destination
des différentes machines virtuelles (whatis.com n.d.). La virtualisation assistée matérielle
est donc une évolution de la virtualisation totale puisqu’elle émule toujours le matériel
nécessaire au bon fonctionnement des systèmes invités, mais avec une perte de
performances moindre.
d) La paravirtualisation
Cette technique présente un logiciel en tant qu’intermédiaire entre le matériel et les
systèmes d’exploitation invités et non un système d’exploitation. La deuxième différence
par rapport aux techniques vues précédemment est que les systèmes invités sont modifiés.
Ils sont conscients du fait qu’ils sont virtualisés. L’application située entre le matériel est
les systèmes invités est appelée VMM comme en virtualisation matérielle assistée. Ici on
ne tire pas parti des instructions processeur liées à la virtualisation. Ce VMM aussi appelée
hyperviseur est le plus simple possible afin d’avoir le minimum de pertes de performances.
C’est lui qui est chargé d’appliquer la politique d’accès aux ressources matérielles
pour les systèmes invités. Etant donné des modifications apportées, ces systèmes ont été
adaptés au niveau de leur noyau afin qu’ils puissent communiquer avec l’hyperviseur.
Dans les systèmes natifs, il existe des instructions privilégiées. Ces instructions
processeurs permettent d’accéder directement à la mémoire physique du processeur sans
passer par la mémoire virtuelle. Une autre utilisation de ces instructions est la possibilité de
changer l’état de la machine dans le sens ou cela influe sur des processus.
32
l’hyperviseur qui pourra donc les interpréter. Ce cheminement est expliqué par la figure ci-
dessous. Du coté de la virtualisation native ou virtualisation matérielle assisté on voit
clairement que les appels des MV sont directement captés par le noyau de la VMM. Nous
expliciterons la notion de noyau dans la partie concernant les pré-requis sur les systèmes
d'exploitation.
e) La virtualisation Hybride
33
5) Les avantages de la virtualisation :
Il est difficile de trouver des informations à jour, mais on estime que la charge moyenne
processeur d'un serveur en production est inférieure à 15 % Il est évident donc que les serveurs
ne sont pas utilisés au maximum de leur capacité. Cela s'explique par le fait qu'il est parfois
délicat de faire cohabiter plusieurs applications sur la même machine, et que les administrateurs
préfèrent dédier une machine pour une application donnée. Voici les grandes lignes qui listent
les avantages d'une telle solution :
34
CHAPITRE II : LES HYPERVISEURS :
Dans cette section, nous allons spécifier les hyperviseurs et leurs fonctionnalités et les
différents types des hyperviseurs
L'hyperviseur est un noyau hôte allégé et optimisé pour ne faire tourner que des
noyaux d'OS invités adaptés et optimisés pour tourner sur cette architecture spécifique,
les OS invités ayant conscience d'être virtualités.
Les hyperviseurs ont besoin d'isoler les interruptions et les accès à la mémoire.
C'est très coûteux quant aux performances, auparavant cette opération était réalisée par
un mécanisme de translation de code. Depuis quelques années, les fabricants de
processeurs ont ajouté des instructions spécialisées (Intel VT-x / EPT et AMD-V ) afin
de permettre la virtualisation assistée par le matériel. KVM + QEMU et VirtualBox,
utilisent ces instructions. Le procédé impose à l'hyperviseur d'exposer explicitement les
extensions de virtualisation du jeu d'instructions au système d'exploitation invité sous-
jacent.
Dans l'évaluation des performances d'une machine virtuelle, les processus sont gérés
par la machine virtuelle à la place du système d'exploitation sous-jacent.
Les threads émulés des environnements multi-thread, en dehors des capacités du système
d'exploitation d'origine, sont gérés dans l'espace utilisateur à la place de l'espace noyau,
permettant le travail avec des environnements sans support natif des threads .
- Mémoire :
- Entrées/sorties et stockage
36
L'intervention conduit à plus de latence aux entrées/sorties et plus de ressources CPU
en raison de changements de contexte entre les machines virtuelles invitées et
l’hyperviseur.
Les machines virtuelles hébergent un système d'exploitation, des applications, des services
et éventuellement des données. Elles exigent une grande place de stockage sur le disque.
Une quantité importante de l'activité d'entrée/sortie est réservée pour garder plusieurs
machines virtuelles vivantes sur un seul serveur. Les applications nécessitant une grande
quantité d'entrée/sortie, comme les serveurs de base de données, pourraient faire face à
d'importants ralentissements si les sous-systèmes d'entrée/sortie ne sont pas en mesure de
faire face à la charge accrue. Le stockage est une ressource clé pour un environnement
virtualisé. Après tout, une machine virtuelle est techniquement un ensemble de fichiers qui
peut contenir un système d'exploitation avec ses applications installées
Exemples
• VMware ESX ;
• XEN ;
• Oracle VM Server.
37
Figure 2.11 : Hyperviseur de type 1
Les systèmes invités devront donc traverser deux couches logicielles avant
d'accéder au hardware. Les performances en sont donc considérablement réduites par
rapport à la paravirtualisation. Mais la facilité d'installation et de configuration de ce
type de système de virtualisation représente un gros avantage.
Les échanges entre les machines se font via les canaux standards de
communication entre systèmes d’exploitation (TCP/IP et autres protocoles réseau), un
tampon d’échange permet d’émuler des cartes réseaux virtuelles sur une seule carte
réseau réelle. Exemples :
• QEMU/KVM ;
• Oracle VirtualBox ;
• VMware Player ;
• VMware Workstation.
38
Figure 2.12 : Hyperviseur de type 2
39
Fonctionnalité :
L’un des avantages de vSphere Hypervisor réside dans sa légèreté : l’hyperviseur n’occupe
quelques centaines de Mo d’espace disque. VSphere Hypervisor est toutefois – et c’est
logique – moins complet que vSphere.
b) Citrix Xenserveur
Citrix XenServer est une plateforme de virtualisation gratuite, basée sur l’hyperviseur
open-source Xen. Si l’hyperviseur Xen existe depuis de nombreuses années (la version 1.0
date d’octobre 2003), le rachat de XenSource par Citrix ne date que de 2007. XenServer
est disponible gratuitement, mais il faudra en revanche opter pour une licence annuelle (à
partir de 345 dollars par socket) ou perpétuelle (à partir de 763 dollars par socket).
40
Figure 2.14 : Logo Citrix
Fonctionnalité :
Les interactions entre les machines virtuelles et le matériel sont gérés par le domaine de
contrôle « Domain 0 », lui-même une machine virtuelle dotée de privilèges spéciaux.
Hébergeant une instance optimisée de Linux, « Domain 0 » s’appuie sur les pilotes
standards open source de Linux, offrant ainsi une compatibilité matérielle très étendue.
c) Proxmox
Proxmox VE (pour Virtual Environment) est une solution open source basée sur
l’hyperviseur KVM et sur le système d’exploitation Debian 64 bits. Créé en 2008 par la
société Proxmox Server Solutions, Proxmox VE en est aujourd’hui à la version 4.1. Ici
aussi, si la version de base est gratuite, il faudra passer par un abonnement (au CPU et par
mois, entre 4,16 euros et 66,33 euros) pour bénéficier d’un support étendu (nombre annuel
de tickets de support, garantie de temps de réponse, …).
41
Fonctionnalité :
Outil de Mode de
Disponibilité Avantage
virtualisation virtualisation
Gestion de l'infrastructure
VMware Commercial Full virtualisation
virtuelle
Exécution de plusieurs
systèmes invités, de plates-
Parallels Commercial Full virtualisation
formes différentes sur un
hôte
Isolation de plusieurs
serveurs Linux sur une
VServer Open source Full virtualisation
même plate-forme
matérielle
43
PARTIE III : MATHODOLOGIE ET PRESENTATION DU XEN
Introduction
Ce chapitre a permis de détailler les spécifications du projet, nous allons citer les différents
objectifs de la virtualisation des serveurs et l’identification des besoins fonctionnels et non
fonctionnels de notre solution ainsi que la description de leur système d’information.
Dès son origine, une machine physique présente une couche matérielle qui
représente l’ensemble des périphériques matériels, conçue pour n’exécuter qu’un seul
système d’exploitation avec une ou plusieurs applications. Ainsi, il semble étrange de faire
cohabiter plusieurs OS sur une seule machine physique. En effet, un système d’exploitation
est conçu pour utiliser au mieux un matériel qui est entièrement sous son contrôle. La
réunion de plusieurs systèmes pour exploiter les mêmes ressources physiques d’une
machine hôte paraîtrait absurde.
PC 01 PC 02 PC 03
44
a) Inventaire des ordinateurs et des servers :
Par suite des Exemple que nous avons effectué aux différents entreprises, les résultats
des inventaires des micro-ordinateurs, des serveurs et des équipements réseaux sont
comme suit :
45
2) Système informatique avec virtualisation
PC 01 PC 02 PC 03
a) Solution adoptée :
46
Donc l’entreprise réduit le nombre d’ordinateurs sans pour autant réduire le nombre
d’applications installées.
XenServer est une solution qui virtualise les serveurs et réduit d’une façon
importante les coûts associés aux datacenters en rendant ces derniers plus simples et plus
dynamiques. Elle offre des fonctionnalités de gestion avancée qui permet d’automatiser et
d’intégrer la gestion des datacenters virtuels avec un coût moindre que celui des solutions
concurrentes. Elle est une solution d’infrastructure virtuelle permettant d’intégrer un
nombre sans limites de serveurs hôtes et de machines virtuelles invitées grâce à un
hyperviseur 64 bits. Elle assure aux entreprises une création et une gestion sécurisée d’un
nombre illimité de machines virtuelles et de serveurs à partir d’une console de gestion
unique XenCenter.
XenServer est une plate-forme de virtualisation sécurisée et très fiable, elle assure une
densité de machines virtuelles sans égales et des performances applicatives presque innées.
• Ajout d’un nouveau serveur : se connecter aux serveurs hôtes XenServer pour
ajouter la liste des ressources utilisées dans XenCenter.
Chaque licence couvre un nombre limité de machines virtuelles ainsi que des ressources.
Pour chacun de nos serveurs ont va installer des fonctionnalités selon les besoins.
Active Directory (AD) est la mise en place par Microsoft des services d’annuaire
LDAP pour les systèmes d’exploitation Windows.
Les applications tournent sur le serveur et le client reçoit en réalité qu’un « Stream
» de l’application.
48
Ceci permet l’économie de l’argent dans une entreprise en se procurant un gros serveur et
des clients légers pour les employés.
• Caractéristiques
C’est un composant qui est déjà inclus dans Windows 2000/2003/2008 Server mais qui
n’est pas installé par défaut. Il offre beaucoup de fonctionnalités comme :
• Configuration requise
Les services Terminal Server ne monopolisent qu'un faible espace disque, requérants peu
de mémoire et leur configuration est aisée pour les clients.
• Présentation
L’original, NX Server de la société NoMachines ; le serveur est gratuit mais limité à deux
(2) utilisateurs maximal et à deux(2) connexions simultanées.
o Il ne nécessite pas de service spécial à démarrer (il n'est activé que lors
d'une connexion)
o Il est très performant (l'affichage est beaucoup plus réactif que VNC ou
X sur ssh seul.)
o On peut fermer une session et la reprendre plus tard, même à partir d'une
autre connexion internet (nous retrouvons nos fenêtres telles qu'elles
étaient)
Conclusion
D’après l’étude que nous avons faite, on a pu dégager facilement les difficultés
rencontrées par l’entreprise qui sont minimisées grâce à la solution de la virtualisation. La
détermination des besoins fonctionnels et non fonctionnels va nous permettre de clarifier
notre solution et de mettre au point nos objectifs, les fonctionnalités de notre solution en
50
précisant les différentes tâches à réaliser et on a cité la différence entre les différents
hyperviseurs existants sur le marché en terminant pour choisir la solution Citrix XenServer.
51
CHAPITRE II : PRESENTATION DU XEN
Introduction
Après avoir présenté la virtualisation d’un point de vue global, nous allons étudier plus
spécifiquement le cas de la solution Xen. Le choix de cette solution a été largement
encouragé par le fait qu'elle cette solution soit open source et donc qu’il soit plus facile
d’obtenir des informations approfondies et précises à son sujet. Le projet Xen est soutenu
par une communauté très active mais également par un grand nombre d’industriels tels que
Novell, Sun, AMD, Cisco, Dell, HP, IBM, … Alors que de nombreuses autres solutions de
virtualisation existaient déjà, Xen a su s’imposer en implémentant pour la première fois la
paravirtualisation.
Tout d’abord, il est nécessaire de spécifier ce qu’est Xen. Xen est un hyperviseur de
virtualisation. L’hyperviseur est une couche logicielle présente entre le matériel physique
et les systèmes d’exploitation qui a pour but de traiter les instructions venant de ces
derniers. La définition de l’hyperviseur au sens du projet Xen est différente de la définition
de l’hyperviseur au sens d’autres projets tels que VMWare. Dans le dernier cas,
l’hyperviseur est un logiciel présent au-dessus d’un système d’exploitation permettant de
virtualiser des systèmes d’exploitation. L’hyperviseur Xen a pour but d’être minimaliste.
La raison derrière cela est qu’une erreur ou une faille dans ce dernier aurait des
conséquences sur tous les systèmes d’exploitation invités qui peuvent être nombreux. Au
fur et à mesure des versions, des fonctionnalités sont enlevées de l’hyperviseur et
transférées vers un des systèmes d’exploitation invités.
Avec un système d’exploitation 32 bits, le noyau est exécuté dans l’anneau 0 qui est
celui doté d’un plus grand niveau de privilège, et les applications sont exécutées dans
l’anneau 3. Les anneaux 1 et 2 sont inutilisés dans la plupart des systèmes d’exploitation à
l’exception d’OS/2 et avec certaines configurations NetWare. Comme il a été dit
précédemment, l’hyperviseur a absolument besoin d’être exécuté dans l’anneau le plus
faible puisqu’il est l’intermédiaire exclusif avec le matériel. Ceci relègue donc les systèmes
d’exploitation invités à l’anneau1 (voir figure ci-dessous). Du fait que l’hyperviseur soit
dans le ring 0 et les systèmes d’exploitation invités soient dans le ring 1, il n’y a pas de
système d’exploitation hôte lorsque l’hyperviseur Xen est installé, ils sont tous
nécessairement virtualisés. Ceci illustre la différence de Xen avec les autres hyperviseurs
qui présentent tous un système d’exploitation hôte même si celui-ci est minimaliste.
55
2) Les domaines
a) Domaine privilégié
56
Figure 3.5 : Interactions domU/dom0/Xen
b) Domaines non-privilégiés
Les domaines non privilégiés sont appelés domaine U ou plus couramment domU
avec le U qui signifie unprivileged. Les domaines U sont exécutés par le domaine 0
automatiquement au démarrage de la machine la plupart du temps soit manuellement par le
biais d’outils. Un nombre théoriquement illimité de domaines non privilégiés peuvent être
exécutés dans la limite de la disponibilité de ressources telles que la mémoire vive ou
l’espace disque.
57
En ce qui concerne les périphériques, les domaines non privilégiés y ont accès à
travers des pilotes standardisés pour Xen indépendamment du matériel sous-jacent. Le
référencement des périphériques auxquels ont accès les domaines non privilégiés se fait par
le biais du XenStore que nous évoquerons plus en détail par la suite. De nombreux
systèmes d’exploitation ont été modifiés pour rendre possible leur exécution en tant que
domaine non privilégié grâce à la simplification du support des pilotes de matériel. La
quasi-totalité de systèmes d’exploitation modifiés exécutables en tant que domaine non
privilégié de paravirtualisation sont des systèmes d’exploitation de type open source et un
support de la part de systèmes d’exploitation propriétaires n’est pas à prévoir avant
longtemps.
Les domaines assistés matériels sont appelés domaines HVM et sont un type de
domaines non privilégiés. La différence avec les domaines non privilégiés classique est le
type de virtualisation. Dans le cas d’un domaine HVM, la virtualisation mise en œuvre est
la virtualisation assistée matérielle alors que dans le cas d’un domaine non privilégié, il
s’agit de la paravirtualisation.
Pour qu’un domaine HVM fonctionne correctement, Xen émule tout le matériel
pour que le système d’exploitation hôte puisse fonctionner correctement. Les pilotes qui
seront utilisés par le domaine HVM seront des pilotes capables de communiquer avec le
domaine 0 dans le but de pouvoir accéder au matériel même de manière indirecte. Le projet
Xen a choisi de ne pas redévelopper un module de virtualisation assistée matérielle mais a
choisi d’intégrer le projet QEMU. Par ailleurs, bien que le projet QEMU supporte la
virtualisation de systèmes d’exploitation non modifiés sans la présence des extensions
processeur adaptées, Xen a choisi de ne pas implémenter cette fonctionnalité. Il est donc
nécessaire que les extensions processeur de virtualisation soient présentes pour que Xen
puisse exécuter un domaine HVM.
Pour améliorer les fonctionnalités et les performances des domaines HVM, il est
possible de leur ajouter des pilotes de paravirtualisation ce qui contribue largement à
gommer la différence entre la paravirtualisation et la virtualisation assistée matérielle. Ces
pilotes vont permettre l'envoi d'hypercalls pour les systèmes propriétaires. De tels pilotes
sont disponibles pour Windows sous le nom de GPLPV Drivers. Pour communiquer avec
les domaines HVM, Xen utilise un périphérique PCI virtuel qui simplifie la
58
communication et le support des pilotes de paravirtualisation similairement à une carte de
calcul physique.
Xen met donc en place un mécanisme dénommé Shared Information Pages pour
pouvoir transmettre ces données aux domaines, que nous traduirons par pages
d'informations partagées. Il n'y a pas, au niveau de ces pages, de différence de
fonctionnement entre les domaines privilégiés et les domaines non privilégiés. Ces pages
d'informations partagées ne reprennent pas totalement les fonctionnalités du BIOS.
L'énumération des périphériques système qui est habituellement gérée par le BIOS est
remplacée par le mécanisme du XenStore que nous verrons plus en détail ultérieurement.
Le seul périphérique qui déroge à cette règle est le périphérique console. Ce dernier a été
inclut dans les pages d'informations partagées dans un but de débogage de sorte à pouvoir
obtenir des informations sur le lancement des domaines avant qu'ils accèdent au XenStore.
59
Les pages d'information partagées sont placées dans l'espace d'adressage du domaine à
un endroit bien précis par le domain builder. Le domain builder est le logiciel qui va initier
et préparer l'exécution du nouveau domaine en interagissant avec l'hyperviseur. On parlera
de page d'information de démarrage dans le cas de la page d'information partagée
contenant les informations dont le domaine va avoir besoin lors de son lancement. Dès son
exécution le noyau va inspecter cette page pour pouvoir effectuer quelques vérifications
élémentaires. Une des vérifications qui sera effectué est un contrôle de l'environnement de
virtualisation afin de vérifier si le noyau en cours d'exécution est bien compatible avec la
version de l'hyperviseur Xen installé. Le projet Xen assure une rétrocompatibilité avec les
versions majeures à venir mais pas avec les versions mineures. Un exemple de paramètre
inscrit dans la page d'information de démarrage est la quantité de mémoire vive allouée au
noyau qui sera identifié dans le champ nr_pages. En ce qui concerne la gestion du
processeur, peu d'informations sont disponibles dans la page d'information de démarrage ce
qui fera que le domaine démarrera initialement sur un seul processeur virtuel et passera à
plusieurs à la suite de l'initialisation du système d'exploitation.
60
Figure 3.6 : Page shared_info
Précédemment, nous avions évoqué l'isolation des machines virtuelles comme un des
avantages de la virtualisation. Maintenant que nous nous intéressons à la virtualisation à un
niveau plus bas, il est intéressant de nuancer cette affirmation. Un isolement total des
domaines poserait de très sérieux problèmes puisqu'il ne leur serait possible d'accéder à des
périphériques systèmes émulés ou non. Il est donc essentiel de prévoir des mécanismes de
communication internes entre l'hyperviseur et les domaines mais aussi entre les domaines
et plus particulièrement entre les domaines U et le domaine 0.
Dans le cas d'un système d'exploitation sans virtualisation, les processus sont amenés à
communiquer entre eux qu'ils fassent parti de la même application ou non. Typiquement, il
sera très intéressant de donner la possibilité au noyau de communiquer avec les
applications directement pour pouvoir les couper en cas de surcharge du système ou en cas
61
de perte de réponse de l'application. Ceci est fait par le biais de zones de mémoire
partagées allouées par le noyau. Dans le cas où une application souhaite communiquer avec
une autre, une demande explicite sera faite au noyau qui allouera un espace mémoire
commun aux deux applications. Il sera ensuite possible à l'application d'inscrire diverses
données dans cette espace à destination de l'autre application. Une fois la communication
terminée, cette espace mémoire partagé sera réalloué pour des raisons de sécurité. On parle
donc d'IPC (InterProcess Communication).
L'interfaçage avec les mécanismes de zones de mémoire partagée de Xen se fait par
le biais de l'hypercall grant_table_op. Cet hypercall est effectué par le noyau du domaine
comme nous l'avons vu précédemment. Cet hypercall prend trois arguments : le type
d'opération à effectuer, un tableau contenant les opérations à effectuer et le nombres
d'opérations à effectuer. Nous verrons la structure de la table d'allocation par la suite. Cette
fonction est polymorphique dans la mesure où le type du second argument dépend du
premier argument. Deux types d'opérations sont possibles avec cet hypercall, l'allocation et
le transfert de zones. La différence entre ces deux opérations est qu'avec l'allocation, la
zone de mémoire partagée est laissée dans la zone de mémoire globale du domaine originel
alors que le transfert la supprime.
62
Le transfert est un mécanisme efficace de transfert de données volumineuses entre
différents domaines puisqu'une fois que les données sont écrites, il n'y a plus qu'à mettre à
jour la table d'allocation de la mémoire vive. Ceci est cependant peu efficace dans le cas du
transfert de faibles volumes de données.
Une solution plus efficace peut être la copie à partir de la zone de mémoire propre
au domaine récepteur vers la zone de mémoire partagée. Ceci ne peut être intéressant que
dans la mesure où le partage est déjà mis en place puisqu'il n'est pas nécessaire de modifier
la table d'allocation. Dans le cas où le partage n'a pas été mis en place, il sera plus
intéressant de faire un transfert.
De plus, il est possible de faire un transfert entre deux domaines sans qu'aucun des
deux n'ait fait de demande. Par exemple, un domaine peut avoir un accès exclusif à la carte
réseau dans le but de limiter l'impact d'une erreur avec ce périphérique. Le domaine 0 sera
amené à faire des copies de données entre le domaine responsable de la carte réseau et
d'autres domaines nécessitant l'accès au réseau. Tout ceci sera parfaitement transparent
pour tous les domaines sauf le domaine 0.
c) La gestion du temps
Dans le cadre d'un domaine Xen, le temps peut s'écouler de deux manières différentes :
lorsque le domaine a des ressources de calcul à sa disposition et lorsqu'il est mis en attente.
Lorsqu'un domaine a des ressources de calcul à sa disposition, il reçoit un signal tous les 10
ms ce qui lui permet de gérer l'ordonnancement des différents processus en cours. On parle
donc dans ce cas de gestion du temps virtuel qui correspond au temps d'exécution effectif
du système. Le temps virtuel exclue donc toute période d'attente.
63
Bien que le temps virtuel soit très utile pour l'ordonnancement des processus du
domaine, il est inefficace pour d'autres fonctionnalités telles que l'horodatage de fichiers ou
les protocoles de communication réseau. Le domaine va donc avoir besoin de connaitre le
temps réel. Pour obtenir le temps réel, le domaine va avoir accès à trois valeurs qui sont
contenus dans page shared_info vue précédemment.
Les deux premières valeurs vont permettre un calcul approximatif mais simplifié de
l'heure. Ce calcul suffira dans le cas d'applications nécessitant peu de précision telle que
l'affichage d'une horloge.
Ce mode de calcul ne sera cependant pas suffisant dans le cas d'applications nécessitant
une forte précision. Dans ce dernier cas, les applications vont pouvoir bénéficier de l'apport
du TSC.
64
d) La gestion de mémoire
La question que l’on peut se poser est pourquoi avoir ajouté une couche
d’indirection mémoire. En effet il aurait pu être possible que les différents systèmes invités
existent dans l’espace d’adressage physique tout en faisant attention à ne pas n’accéder à
des segments appartenant à un autre système. Cette solution n’a pas été retenue car les
systèmes d’exploitation ont été développés de façon qu’ils soient seuls sur une machine
physique. De ce fait ils croient que leur espace d’adressage est continu. La seconde raison
qui justifie l’existence d’une 3ème indirection est la gestion de la migration à chaud. Il est
possible sous Xen de sauvegarder l’état complet d’une machine, de la mettre en pause pour
de la remettre en fonctionnement sur une autre machine physique. Les adresses physiques
des pages mémoire que la machine va se voir ré alloués seront à coup sur différentes. De ce
65
fait on est obligé d’avoir cette couche d’indirection entre les systèmes invités et
l’hyperviseur. Ainsi une fois le système migré, le nouvel hyperviseur réalloue un certain
espace d’adressage physique qui n’est pas forcement continu au système invité. Celui-ci
peut reprendre ces taches une fois que les pages mémoires seront chargées à nouveaux.
Nous avons parlé précédemment des tables LDT et GDT. Dans Xen les systèmes
invités ont accès aux LDT qui sont des espaces d’adressages mémoires dédiées aux
applications. Mais ils ne peuvent modifier les valeurs des espaces GDT que par un
hypercall spécifique. A chaque hypercall Xen doit pouvoir accéder à la mémoire dédiée à
l’hyperviseur ainsi qu’à l’espace d’adressage du système invité qui demande l’hypercall.
La solution retenue pour remplir cette tache est d’opérer un changement de contexte à
chaque hypercall.
C’est à dire que l’on met en attente d’exécution un processus par le processeur.
Ensuite on redirige les demandes d’accès aux pages d’adresses mémoire du système invité
vers l’espace d’adressage de l’hyperviseur comme le demande ce système via l’hypercall.
Les descripteurs de segments mémoire alloués aux noyaux dans un système Xen
retrouvent le champ lié aux privilèges à 1 dans ces descripteurs de segments. La lecture des
informations est possible par les systèmes invités mais pas leur modification. Seul le noyau
et l’hyperviseur peuvent modifier ces informations.
Pour résumer, lorsqu’un système invité désire accéder à des tables de pages (qui
permettent l’accès à la mémoire physique) qui ne sont pas dans son anneau de permissions,
un hypercall va permettre d’effectuer ce lien entre le système invité et l’hyperviseur.
66
ii. Mise à jour de la table des pages
Néanmoins pour tout autre accès, on pense bien évidemment à la mise à jour de ces
propres tables de pages il devra effectuer un hypercall. Cela permet d’être sûr qu’aucun
système invité ne puisse modifier un espace d’adressage sans mécanisme d’hypercall
validé par l’hyperviseur.
Du fait qu’un hypercall et bien plus gourmand en ressources qu’un simple accès
mémoire on va pouvoir passer dans un seul hypercall la mise à jour de multiples pages.
67
iv. Les gestions des fautes de pages
Un défaut de page correspond à une série d'événements se déroulant lorsqu'un
programme essaie d'accéder à des données ou à un code qui se trouvent dans son espace
d'adressage mais ne sont pas actuellement placées dans la mémoire vive. Le système
d'exploitation doit traiter les défauts de pages en permettant, d'une manière ou d'une autre,
l'accès à la mémoire des données recherchées afin que le programme puisse continuer ses
opérations, comme si le défaut de page ne s'était jamais produit. (Red Hat Inc s.d.)
La première chose à faire en cas de faute de page est de trouvé l’adresse mémoire
qui a causé cet évènement. Sous x86 ces informations sont stockées dans un registre
nommé CR2. Sous Xen ces informations sont copiées dans l’élément cr2 de la structure
arch_vcpu_info (cf 4.1.1). Cette opération de copie est nécessaire car le mécanisme de
stockage des fautes de pages accède à la mémoire et peut lui aussi générer des fautes de
page. Si cela se produit, le contenu du registre CR2 est écrasé. Une fois l’adresse mémoire
qui a causé la faute de page retrouvée, il reste à mettre à jour son contenu. Une fois fait
l’hypercall HYPERVISOR_update_va_mapping va lier l’adresse virtuelle avec la nouvelle
adresse physique. (Chisnall 2007)
e) La gestion de l'ordonnancement
Un processus présent dans un domaine va donc être amené à être géré par plusieurs
ordonnanceurs avant de pouvoir accéder à des ressources de calcul. Un ordonnanceur
(scheduler en anglais) est un algorithme qui va gérer selon divers critères l'allocation des
ressources de calcul à une entité demandeuse. Cette entité demandeuse peut être un
processus comme dans le cas d'un système d'exploitation classique ou bien un domaine
dans le cas de Xen.
Un processus exécuté dans un domaine va tout d'abord être géré par l'ordonnanceur
utilisateur qui a pour but d'envoyer le processus vers l'ordonnanceur du noyau. Celui-ci va
ensuite répartir les processus parmi les différents processeurs virtuels alloués au domaine
68
(VCPU). Finalement, l'hyperviseur va répartir les processeurs virtuels parmi les
processeurs physiques. Etant donné que l'ordonnanceur se retrouve au fond de la pile, il est
nécessaire qu'il soit prévisible puisque les ordonnanceurs au dessus vont être amenés à
faire des prévisions sur l'allocation de ressources.
Dans les versions actuelles de Xen, nous pouvons retrouver deux ordonnanceurs : le
SEDF (Simple Earliest Deadline First) et le Credit Scheduler que nous pouvons traduire
par ordonnanceur à crédit. Ce dernier a tendance à prendre le dessus du SEDF et est activé
par défaut.
L'ordonnanceur SEDF peut se traduire par ordonnanceur du plus urgent d'abord. Dans
le cas d'un ordonnanceur de processus dans un système d'exploitation, il n'est pas possible
de prévoir le temps d'exécution d'une tache ou la périodicité de son exécution. Dans le cas
du SEDF, le temps d'exécution et la périodicité sont définis. Par exemple, un domaine va se
voir alloué 5 ms de calcul toutes les 10ms.
1
69
prévoir une répartition du temps d'exécution du domaine 1 sur le temps laissé libre par les
deux autres domaines.
70
Dans le cas où le troisième domaine n'aurait pas de calcul à effectuer, les deux
premiers domaines se partageront le processeur de manière équitable jusqu'à ce que le
premier VCPU atteigne sa limite. Le second VCPU sera donc le seul à utiliser le
processeur. Il sera donc amené à utiliser plus de crédits que ce qu'il lui a été alloué
initialement mais vu qu'il est seul à vouloir accéder au processeur cela ne pose pas de
problème. Des nouveaux crédits sont alloués à chaque tour du tourniquet. Si une allocation
de crédit a lieu lorsque le premier VCPU est toujours bloqué par sa limite, les crédits
disponibles seront répartis entre les autres VCPU. Une fois que le troisième VCPU
souhaiterait à nouveau soumettre des calculs au processeur, le second VCPU ne pourra plus
dépasser son montant de crédit et les ressources de calcul seront allouées équitablement
entre ces deux VCPU. Au final, nous avons explicité la nécessité pour l'hyperviseur Xen
de disposer d'un ordonnanceur pour répartir les ressources de calcul de manière dynamique
entre les différents domaines et nous avons expliqué le fonctionnement des deux
ordonnanceurs présents dans les versions actuelles de Xen. La problématique des
applications synchrone et temps réel se pose donc. Par nature, la virtualisation ne favorise
pas ces applications puisque le temps de calcul est réparti parmi plusieurs environnements
logiciels ce qui ajoute un temps de latence entre les allocations de ressources. Une solution
va être de faire tendre le ratio de VCPU par processeur physique vers 1
Toutes les communications réseau des DomU passent per le Dom0. Deux tunnels
sont établis entre le DomU qui veut communiquer avec l’extérieur et le Dom0. Le premier
est un tunnel de service et le second de données. Ces tunnels sont en réalité des zones de
mémoire partagées entre les domaines, à noter que celles-ci sont distinctes. Le mécanisme
de communication réseau inter domaine utilisé dans Xen est identique aux autres
mécanismes de communication système. La seule différence entre ce mécanisme de
communication et les autres, est le fait qu’ici il y a deux zones mémoire par type de tunnel,
une pour l’émission et une autre pour la réception.
Le tunnel de service comprendra les données qui vont permettre de localiser dans
les pages mémoires les « données brutes réseau » à transmettre.
71
Lorsque le DomU veut transmettre des informations sur le réseau, il va faire une
demande dans un espace mémoire. L’action est faite via le « tunnel de service ». Une fois
la demande traitée par le Dom0, l’espace mémoire précédent va être remplacé par sa
réponse. Une fois l’échange fait, le paquet réseau peut être émit via le « tunnel de données
» puis retransmis sur le réseau via le Dom0.
La communication réseau entre les DomU d’une même machine physique est
gourmande en ressources processeur. Pour cela un allègement des trames de la couche
liaison a été effectué. Le champs checksum qui est le dernier champ de la trame réseau
n’est jamais calculé pour des communications réseau inter domaines. Ainsi une puissance
de calcul non négligeable est préservée, assurant ainsi de bonnes performances dans les
transferts réseau inter domaines. La disparition de ce champ de contrôle n’influe pas sur la
fiabilité des transmissions réseaux puisque toutes les communications ont lieu en mémoire.
Toutes les communications réseau passent par le DomO. Concernant celles qui vont
à l’extérieur de la machine, la segmentation de niveau réseau et transport sera assurée par
la carte réseau. Concernant les communications inter domaines, aucune segmentation n’est
effectuée. Ceci pour le simple fait que tout est écrit et lu en mémoire et que la segmentation
des paquets n’est plus nécessaire.
72
PARTIE IV : SIMILATION ET IMPACT DU PROJET
Introduction :
4.1.1. Matériels :
-Un PC portable Toshiba ayant les caractéristiques suivantes :
• Mémoire : 4 GO
73
Figure 4.1 : Spécifications techniques du serveur HP Proliant DL 180 G6
4.1.2. Logiciels :
• Citrix XenCenter :
XenServer est une plateforme open source leader sur le marché pour des infrastructures
virtuelles d’applications, de bureau, de nuages et de serveurs rentables. Elle permet aux
organisations de n’importe quelle taille ou type de consolider et de transformer les
ressources de calcul en charge de travail virtuel pour les besoins actuels des centres de
données, tout en assurant une voie transparente pour déplacer les charges de travail vers le
Cloud [5].
74
• Windows 2012 Server R2 :
Anciennement connu sous le nom de code Windows Server8, est la seconde avant
dernière version du système d’exploitation réseau Windows Server .
Les Figures 4.2, 4.3, 4.4, 4.5, 4.6 montrent quelques impressions du processus
d’installation :
75
Figure 4.3 : Confirmation du mot de passe
76
Figure 4.5 : Installation d’XenServer
Une fois l'installation est terminée, le système peut être géré à distance via XenCenter. Il
s'agit d'un logiciel de gestion graphique basé sur Windows, qui peut être téléchargé depuis
le XenServer lui-même; en tapant simplement l'adresse IP du serveur dans un navigateur
Web
77
Figure 4.7 : Phase de recherche du logiciel de gestion graphique
On lance l’exécutable Xencenter.exe, puis nous allons suivre les étapes d’installation,
jusqu'à l’installation de « Citrix XenCenter » (Figure 4.8).
78
Figure 4.9 : Ecran d’accueil du Citrix XenCenter
Dans le cadre de notre projet, nous allons donc poursuivre en ajoutant nos serveurs
« XenServer » à notre XenCenter, ainsi que leur adresse IP et leur authentification (Figure
4.10).
79
4.2.3. Ajout d’une machine virtuelle :
Pour ajouter une machine virtuelle, on procède comme suit :
Tout d’abord on commence par le choix de notre système d’exploitation équivalant à notre
serveur et ses fonctionnalités.
Figure 4.12 : Choix du Windows Serveur 2012 R2 lors de l’installation d’ISO library
Après on configure la machine virtuelle (VM) selon les prérequis du serveur à
installer en précisant la taille de disque, les performances de processeur, les RAM et la
configuration des cartes réseaux (Figure 4.12).
Lorsqu’on termine toutes les informations nécessaires, notre machine virtuelle est
prête pour l’utilisation et on passe à l’installation de système d’exploitation qui est dans
notre cas Windows server 2012 R2.
80
4.2.4. Installation de Windows 2012 serveur :
Nous choisissons une installation personnalisée, donc nous devons partitionner les disques
durs de notre machine virtuelle et lancer le début d’installation. (Figure 4.14).
81
Figure 4.14 : Partition des disques durs
Cet écran nous permet de supprimer des éventuelles partitions existantes et permet de créer
une nouvelle partition.
NB : La taille du disque qui nous apparait c’est la taille du disque déjà choisi dans la
configuration précédente de la machine virtuelle (Figure 4.15).
82
Figure 4.16 : Tableau de bord de gestionnaire de serveur
L’administrateur peut administrer et ajouter des rôles pour un serveur et pour les étapes
suivantes on va ajouter des rôles pour chacun des serveurs utilisés.
83
Figure 4.17 : Choix du service Active Directory
Lorsqu’on termine l’installation on remarque que le service est bien installé mais le
domaine n’est pas encore créé.
On choisit le nom de domaine et on active le service DNS et un mot de passe sécurisé soit
pour l’administration soit pour la restauration des services AD (Figures 4.18, 4.19).
Dans la dernière étape, on peut vérifier que l’adresse IP correcte se trouve dans les
redirecteurs en utilisant la commande « nslookup » (Figure 4.20).
Notre destination c’est le gestionnaire de serveur, l’option « Ajouter des rôles et des
fonctionnalités » nous permet d’installer le Service bureau à distance (Figure 4.21).
Figure 4.21 : Choix du service bureau à distance
Lorsqu’on termine l’installation il nous reste que de donner les accès pour les utilisateurs et
de les ajouter au groupe de bureau à distance comme l’explique la figure ci-dessous
(Figure 4.22).
La mise en œuvre de la solutions Xen à vérifier les fonctions offertes par le serveur comme
:
Processeur
Carte mère
Alimentation
Interface réseau
Puis nous avons faire un tour d'horizon des différentes techniques de virtualisation
de systèmes d'exploitation. Ceci nous a permis d'établir un arbre de classification de ces
dernières.
La troisième partie nous a ensuite permis d'établir les notions nécessaires à l'étude
en profondeur du fonctionnement d'un système d'exploitation. Grace à ces notions, nous
avons pu étudier le projet Xen. Nous avons étudié le fonctionnement de diverses
composantes telles que la mémoire, le temps, la communication entre les domaines et le
réseau