INTRODUCTION GENERALE
1. BREF APERÇU
Il y a quelques années, l'imagination de l'industrie
informatique s'est emparée de l'idée consistant à faire
fonctionner plusieurs systèmes d'exploitation de manière
concurrente sur un méme ordinateur. La virtualisation est devenue le mot
à la mode et des projets ont été lancés pour
réaliser ce rêve.
Grace à la virtualisation, vous n'avez pas besoin d'un
ordinateur supplémentaire chaque fois que vous voulez mettre en place un
nouveau serveur. On peut faire face à des besoins supplémentaires
en termes d'infrastructure en démarrant simplement un nouveau
système d'exploitation invité. Un système invité
peut être dédié à une application unique et il peut
être différent du système d'exploitation hôte. Les
fonctionnalités telles que la virtualisation de stockage permettent de
déplacer les systèmes invités sans interruption de
l'activité afin d'exploiter au mieux votre matériel
informatique.
La virtualisation est devenue une solution d'entreprise qui
permet de réduire le nombre des serveurs physiques. Mais, par contre,
elle permet d'augmenter conséquemment le nombre des serveurs virtuels
sur chaque serveur physique, en vue d'optimiser son utilisation, de
réduire les dépenses sur le matériel serveur, de diminuer
la consommation électrique ainsi que de libérer beaucoup d'espace
dans la salle serveur en facilitant l'administration du système
informatique.
Elle peut être déployée dans un
réseau d'entreprise, intranet, qui se définit comme tout
réseau TCP/IP privé, qui emploi les même technologies,
services que ceux de l'Internet.
2. PROBLEMATIQUE
Aujourd'hui les entreprises sont toujours en quête de
compétitivité, elles essaient continuellement d'améliorer
leur productivité mais aussi de diminuer leurs coûts. Cette
recherche de performance se traduit souvent dans les Directions de Services
Informatiques DSI en sigle par l'adoption de nouvelles technologies
matérielles et / ou logiciels. Une des technologies qui suscite un
intérêt grandissant au sein des services informatique est la
« virtualisation ». Mais que se cache -t-il derrière ce terme
encore peu connu, et qu'apporte cette technologie aux entreprises ? Quels sont
les enjeux de la virtualisation dans l'entreprise ? Pour quoi virtualiser les
serveurs d'un intranet cas :(ISTA) ? Quelle technologie et quelle solution de
virtualisation à utiliser dans l'intranet ISTA ? Comment virtualiser des
serveurs hétérogènes sous une
plateforme GNU1/Linux ?
Les réponses à ces différentes questions
consisteront notre apport scientifique dans cette étude qui va se
rapporter et se focaliser plus et uniquement sur la virtualisation des serveurs
Windows et Linux donc serveurs hétérogènes sous Linux,
c'est-à-dire déployer un système de base ou plateforme
sous linux, qui prendra en charge l'exécution de tous les autres
serveurs virtualisés ou invités qui y seront
déployés.
3. BUT ET OBJECTIF
Voyant ainsi les avantages que nous retirons de la
virtualisation des serveurs du parc informatique d'un Intranet donné,
nous allons dans le cadre de notre étude, présenter le
réseau Intranet et ses avantages, décrire les technologies et
expliquer les solutions de virtualisation des serveurs, en ressortant les
points forts et faibles dans l'Intranet ;
Puis, nous mettrons en oeuvre l'architecture virtuelle sur une
plateforme Linux sous debian 6.0 grâce à la solution XEN, nous
parlerons du fonctionnement, configuration et administration de Xen. Nous
mettrons également en oeuvre l'architecture virtuelle en
déployant des serveurs hétérogènes sur la
plateforme GNU/Linux, stable, fiable, puissante, facile à administrer,
à adapter et évolutif.
1 GNU qui signifie : Gnu is Not
Unix Applications du système Linux mise en place par
des développeurs libre Présenté par : Bonhomie
BOPE bonhomie.bope@ista.ac.cd 243 851 796 942, 243 898 297 100
4. DELIMITATION DU TRAVAIL
La notion de virtualisation des serveurs informatiques ayant
des racines qui peuvent être abordés dans différents
angles, il est donc conseillé par la méthodologie de la recherche
scientifique d'imposer un certain principe qui va abriter notre étude du
sujet pour éviter le débordement dans le temps et dans
l'espace.
Ainsi notre étude aura comme champ d'action : «
L'Intranet de l'ISTA » et se limitera sur l'étude et la mise en
place des serveurs hétérogènes virtualisés sous
Linux dans un réseau Intranet, dans le but d'alléger le cout, de
maximiser l'utilisation des serveurs ainsi que de faciliter l'administration de
l'Intranet de l'Institut Supérieur de Techniques Appliquées ISTA
en sigle.
5. METHODOLOGIE
Pour atteindre nos objectifs, nous nous sommes servi d'un
certain nombre de méthodes dont : la méthode analytique qui nous
a permis de décomposer les éléments du système dans
le but d'arriver à dégager les problèmes et la
méthode de conception. La phase d'analyse permet de lister les
résultats attendus, en termes de fonctionnalités, de performance,
de robustesse, de maintenance, de sécurité,
d'extensibilité ; tandis que la phase de conception permet de
décrire de manière non ambiguë, le plus souvent en utilisant
un langage de modélisation, le fonctionnement futur du système,
afin d'en faciliter la réalisation.
Les techniques suivantes ont été
utilisées pour arriver à un résultat fiable: les
techniques documentaires pour recueillir des informations relatives à
notre sujet, l'interview pour échanger avec les spécialistes dans
le domaine, la consultation des sites web afin de nous adapter à
l'évolution technologique, la consultation des spécialistes pour
des éventuels explications claires et précises, et nous nous
sommes servi aussi de notre expérience professionnelle dans ce
domaine
6. PLAN SOMMAIRE DU TRAVAIL
Notre mémoire sera subdivisé en deux parties et
s'étalera sur cinq différents chapitres. La première
partie parlera de la théorie et la seconde s'intéressera de la
pratique.
Première partie :
Chapitre I : Généralité sur l'intranet ;
Chapitre II : La virtualisation des serveurs dans un intranet;
Chapitre III : Les solutions de virtualisation des serveurs;
Deuxième partie :
Chapitre IV : Étude du réseau existant cas : ISTA
;
Chapitre V : Mise en oeuvre de l'infrastructure virtuelle de
l'ISTA;
CHAPITRE I : GENERALITE SUR L'INTRANET
I.1. L'INTRANET
Un intranet est un réseau informatique interne à
une entreprise, c'est aussi l'utilisation de tout ou partie des technologies et
des infrastructures de l'Internet pour transporter et traiter les flux
d'informations internes d'un groupe d'utilisateurs identifiés.
L'intranet va permettre à l'entreprise de mettre en oeuvre l'ensemble de
possibilités d'Internet, mais en interne.
Le réseau Intranet utilise les standards
client-serveur2 de l'internet en utilisant les protocoles TCP/IP,
comme l'utilisation de navigateurs Web basé particulièrement sur
le protocole http et de serveurs web, pour réaliser un système
d'information interne à une organisation ou une entreprise.
L'intérêt d'un tel réseau réside dans la
capacité qu'il possède à transmettre les données,
mais aussi et surtout dans sa possibilité de faire transiter des
informations confidentielles ou à destination des seuls employés
de l'entreprise. Ainsi, tout employé peut communiquer des notes de
service, lire des manuels en ligne, consulter des catalogues, agenda ou suivre
les projets en cours. La figure1 ci-dessous illustre le schéma
général d'un intranet.
Fig.1. Schéma général d'un intranet
d'an
2
http://www.commentcamarche.net/entreprise/intranet.php3
visité le 25 mai 2011 à 09h45
n
Impimn
Un intranet repose généralement sur une
architecture à trois niveaux, composée :
" De client grâce au navigateur Internet
généralement ;
" d'un ou plusieurs serveurs d'application: un serveur web
permettant d'interpréter des scripts CGI, PHP, ASP ou autres, et les
traduire en requêtes SQL afin d'interroger une base de données
;
" d'un serveur de bases de données ;
De cette façon, les machines clientes gèrent
l'interface graphique, tandis que les différents serveurs manipulent les
données. Le réseau permet de véhiculer les requêtes
et les réponses entre client et serveurs.
L'architecture intranet met en jeu des composants
organisationnels forts et permet enfin d'offrir aux utilisateurs un
environnement d'accès à l'information à la hauteur de
leurs légitimes prétentions. L'intranet est l'utilisation de tout
ou partie des technologies et des infrastructures de l'Internet pour
transporter et traiter les flux d'informations internes d'un groupe
d'utilisateurs identifiés. L'intranet va permettre à l'entreprise
de mettre en oeuvre l'ensemble de possibilités d'Internet, mais en
interne.
Parmi ces possibilités :
1) La publication des documents.
2) Le partage des fichiers et logiciels.
3) La messagerie interne.
4) Les groupes de discussion en ligne (News groupes).
5) Les bases de données.
Une application Intranet nécessitera au minimum un
réseau local ou
plusieurs réseaux locaux interconnectés
via le réseau public s'ils sont à
distance ou par le biais
d'une ligne spécialisée offrant une sécurité
totale.
I.1.1. Les Services de l'intranet
Un Intranet peut être constitué de nombreuses
applications et services destinés aux Utilisateurs finaux et aux
équipes informatiques et réseaux :
> Un serveur Web interne ;
> Un serveur Web accessible depuis l'entreprise et depuis
l'Internet par une communauté fermée d'utilisateurs (cas de
l'Extranet) ;
> Une interconnexion sécurisée des
réseaux locaux de l'entreprise et ses filiales est possible en utilisant
les infrastructures publiques de l'Internet ;
> Des forums de discussions entre des équipes au sein
d'une entreprise ;
> L'interconnexion des différents systèmes
d'information de l'entreprise est possible.
Une application Intranet ressemble à un site Web mais :
1. La population des utilisateurs du site intranet est connue et
identifiable.
2. Une plus grande maîtrise des infrastructures des
réseaux et du débit disponible :
Contrairement à Internet où les
intermédiaires sont multiples, on peut envisager d'utiliser l'intranet
pour faire fonctionner des applications difficiles à exploiter comme la
vidéoconférence.
I.1.2. Architecture d'un Intranet
Généralement, un réseau intranet
possède une architecture clients/serveur(s) qui repose sur tout ou
partie des composants suivant :
· Serveur http de l'Intranet semblable à un serveur
web ;
· Serveur de messagerie pour l'échange de courriers
électroniques ou la messagerie instantanée ;
· Serveur d'authentification pour l'identification
des
utilisateurs et le stockage des annuaires ;
· Serveur de fichiers, NAS, SAN pour le stockage et le
partage des données ;
· Serveur logiciel client de supervision réseau
/systèmes:
· Switchers, routeurs, pare-feux :
L'intranet d'une entreprise héberge souvent son
système d'information. Iiest généralement
connecté au réseau mondial Internet via une ou
plusieurs passerelle(s) et un ou plusieurs pare-feu(x)
Le modèle client/serveur a commencé à se
développer quand les informaticiens se sont mis à abandonner les
systèmes partagés reposant sur une logique centralisée, au
profit de réseaux de stations de travail et de serveurs. Une
architecture Client /Serveur met en valeur l'infrastructure du système
d'information dans les environnements informatiques.
Cette technologie permet d'implémenter d'une
manière modulaire et flexible des systèmes au sein d'une
organisation. Elle a été utilisée dans des applications
différentes : Gestion de la base de données, le web, l'Intranet,
les systèmes transactionnels, les systèmes de messageries, les
systèmes de partage de données etc.
Le modèle client/serveur repose sur une architecture
d'application qui permet de subdiviser un processus informatisé en au
moins deux tâches, avec un mécanisme de communication permettant
la coopération entre les deux processus client et serveur. La
finalité de cette subdivision est de disposer de couches de
fonctionnalités pouvant être écrites par des programmeurs
et déployées sur différentes machines d'une manière
optimale.
I.1.3. Avantage d'un Intranet
1. Travail des employés : L'intranet aide les
employés à trouver et visualiser rapidement des informations dans
des documents électroniques et des applications pertinentes dans leurs
domaines de compétence. Via une interface de navigateur Web facile
à utiliser, les utilisateurs peuvent accéder aux données
de n'importe quelle base de données que l'organisation veut rendre
disponible.
2. Communication : L'intranet est un puissant moyen de
communication à l'intérieur d'une organisation, verticalement et
horizontalement.
3. Publipostage Web : l'utilisation d'intranet permet aux
informations d'être publiées par des liens au-delà du
simple hypertexte.
4. Organisation et business : L'intranet est aussi
utilisé comme une plateforme pour développer et déployer
des applications de support aux transactions informatiques, utilisées
à des fins financières et décisionnelles.
1.2. L'EXTRANET
Un extranet est un réseau privé de type intranet,
accessible de l'extérieur.
Les réseaux extranet, basés sur une architecture
client /serveur, sont très répandus, car ils répondent aux
besoins des nouveaux modes de communication des entreprises.
L'accès à un réseau extranet est
limité c'est-à-dire, seule certaines personnes peuvent y
accéder et parfois uniquement à partir de lieux
prédéfinis. Les contrôles d'accès se fond par
l'utilisation d'un code d'identification, le nom de l'utilisateur, et d'un mot
de passe qui est un code secret censé être connu exclusivement par
l'utilisateur.
L'objectif d'un extranet est de profiter des
possibilités offertes par la technologie Web. Le site extranet est
identifié par une adresse électronique appelée URL
(Uniforme Resource Locator)
A l'aide de cette adresse, il suffit de se connecter au site
en utilisant un navigateur Web tel que Microsoft Internet Explorer ou Mozilla
Firefox, et ceci de n'importe quel endroit de la planète disposant d'une
ligne spécialisées.
A cette demande de connexion, le serveur Web hébergeant
le site extranet répond en demandant à l'utilisateur de
s'identifier en indiquant son nom d'utilisateur et son mot de passe .Si ceux-ci
sont corrects, la connexion est acceptée et l'utilisateur a accès
à tous les services proposés par l'extranet.
Un extranet n'est ni un intranet, ni un site Internet. Il
s'agit d'un système supplémentaire offrant par exemple aux
clients d'une entreprise, à ses partenaires ou à des filiales, un
accès privilégié à certaines ressources
informatiques de l'entreprise.
L'extranet peut avoir plusieurs utilités et peut
être source d'un gain de temps pour les entreprises.
Exemples de possibilité d'utilisation :
· Mise à disposition d'informations sur
l'entreprise,
· Accès, pour les clients au suivi des marchandises
en temps réel,
· Accès aux documentations techniques,
légales, douanières etc,
· Échanges de données entre
collaborateurs.
· Mise à disposition d'un annuaire du personnel
· Possibilité de faire la visioconférence et
messagerie électronique interne à l'extranet.
Avantages de l'extranet :
> Accès par Internet, c'est-à-dire de n'importe
quel poste connecté au Web : ordinateur, PDA, Pocket PC...
> Facilité du partage de l'information, fait gagner
en efficacité, réduit le courrier et commandes papier, les
commandes téléphoniques, et élimine donc le risque
d'erreurs de ressaisie des formulaires.
> Choix des destinataires par l'entreprise et
sécurité d'échange des informations.
> L'accès par Internet n'impose aucun logiciel
spécifique à installer chez les partenaires.
1.3. VIRTUEL PRIVATE NETWORK (VPN)
Il arrive ainsi souvent qu'une entreprise éprouve le
besoin de communiquer avec des filiales, des clients ou même des
personnes géographiquement éloignés Via Internet pour
autant, les données transmises sur Internet sont beaucoup plus
vulnérables que lorsqu'elles circulent sur un réseau internes
à une organisation, car le chemin emprunté n'est pas
définis à l'avance. Ce qui signifie que les données
empruntent une infrastructure réseau publique appartenant à
différents opérateurs.
Ainsi il n'est pas impossible que sur le chemin parcouru, le
réseau soit écouté par un utilisateur indiscret ou
méme détourné. Il n'est donc pas concevable de transmettre
dans des telles conditions, des informations sensibles pour l'organisation de
l'entreprise.
La première solution pour répondre à ce
besoin de communication sécurisé consiste à relier les
réseaux distants à l'aide des liaisons
spécialisées. Toutefois, pour la plus part d'entreprises ; relier
deux réseaux locaux distants par une ligne spécialisées
n'est pas une solution facile.
Un bon compromis consiste à utiliser Internet comme
support de transmission en utilisant un protocole d' « encapsulation
» en anglais tunneling, c'est-à-dire encapsuler les données
à transmettre de façon chiffrée. Le tunneling est
l'ensemble des processus d'encapsulation, de
transmission et de désancapsulation. On parle alors de
réseau privé virtuel (VPN, acronyme de Virtual Private
Network)3 pour désigner le réseau ainsi
artificiellement crée. Ce réseau est dit virtuel, car il relie
deux réseaux « physiques », réseaux locaux, par une
liaison non fiable, Internet. Il est privé car, seuls les ordinateurs
des réseaux locaux de part et d'autre du VPN peuvent voir les
données.
Afin d'assurer un accès aisé et peu
coüteux aux intranets ou aux extranets d'entreprise, les réseaux
privés virtuels d'accès simulent un réseau privé,
alors qu'ils utilisent en réalité une infrastructure
d'accès partagée, comme Internet. Ainsi, les utilisateurs ont
l'impression de se connecter directement sur le réseau de leur
entreprise.
1.4. INTERNET
Internet est le réseau informatique mondial qui rend
accessible au public des services comme le courrier électronique et le
World Wide Web. Ses utilisateurs sont désignés par le
néologisme « internaute ». Techniquement, Internet se
définit comme le réseau public mondial utilisant le protocole de
communication IP (Internet Protocole). Le Web, le courrier électronique,
la messagerie instantanée et les systèmes de partage de fichiers
poste à poste sont des applications d'Internet.
L'internet est composé d'une multitude de
réseaux répartis dans le monde entier. Chaque réseau est
rattaché à une entité propre (université,
fournisseur d'accès à Internet, armée) et se voit
attribué un identifiant unique appelé Autonomous
système (AS).
Afin de pouvoir communiquer entre eux, les réseaux
s'échangent des données, soit en établissant une liaison
directe, soit en se rattachant à un noeud d'échange (point de
peering).
Chaque réseau est donc connecté à
plusieurs autres réseaux. Lorsqu'une communication doit s'établir
entre deux ordinateurs appartenant à des systèmes autonomes
différents, il faut alors déterminer le chemin à effectuer
parmi les réseaux. Aucun élément ne connaît le
réseau dans l' ensemble, les données sont simplement
redirigées vers un autre noeud selon des règles de routage.
3
http://www.osmosis-corp.com/produit_02-1.php
visité le 25 juin à 19h32
1.5. SERVEUR
Un serveur est un ordinateur mettant des ressources à
la disposition des clients du réseau. Le serveur permet donc un partage
des ressources, mais celles-ci sont traitées localement par la suite. Le
programme et les données sont chargés dans la station de travail,
qui, comme son nom l'indique, effectue les tâches demandées. C'est
la particularité de ce type de réseau, dont la conception est en
totale rupture avec les réseaux du monde de la mini-informatique ou des
gros systèmes dans lesquels le serveur prend en charge l'ensemble des
tãches de stockage et de traitement. Les terminaux ne sont alors que des
organes de transmission/réception d'informations, avec l'ordinateur
serveur occupant une situation centrale. Tout part de lui et tout va à
lui. Longtemps, la majorité des réseaux locaux ont
été construits autour de serveurs de fichiers qui envoyaient le
fichier complet sur la requête d'une station de travail. Toutefois, cette
procédure augmente considérablement le trafic sur le
réseau et ralenti considérablement son fonctionnement. Par
exemple, pour effectuer une recherche dans une base de données,
l'intégralité des données devra être
transportée sur la station de travail même si une grande partie
des informations transférées est inutile.
L'architecture client/serveur a été
conçue pour un environnement idéal pour un usage collectif
combine les apports de la microinformatique (applications simples d'emploi,
coüts faibles) avec les avantages qu'apportent les systèmes
centralisés (traitement centralisé, partage d'informations,
sécurité). Le principe est simple, elle sépare la
tâche en une application « cliente » et une application «
serveur ». L'application cliente tourne sur la station de travail, elle
enregistre les données fournies par l'utilisateur et transmet les
requêtes au serveur. Le serveur traite les requêtes en renvoie les
résultats demandés à l'application cliente qui les
présente a l'utilisateur. Cette architecture permet
généralement à plusieurs applications clientes de partager
simultanément les mêmes données.
1.6. SYSTÈME D'EXPLOITATION
Un système d'exploitation, SE, en anglais
Operating système ou OS, est un ensemble de programmes responsables de
la liaison entre les ressources matérielles d'un ordinateur hardware, et
les applications informatiques de l'utilisateur, software. Il fournit aux
programmes applicatifs des points d'entrées génériques
pour les périphériques.
Le système d'exploitation est composé d'un
ensemble de logiciels. On distingue généralement les
éléments suivants :
· Le noyau en anglais kernel représentant les
fonctions fondamentales du système d'exploitation telles que la gestion
de la mémoire, des processus, des fichiers, des entrées/sorties
principales, et des fonctionnalités de communication.
· L'interpréteur de commande en anglais Shell,
par opposition au noyau permettant la communication avec le système
d'exploitation par l'intermédiaire d'un langage de commandes, afin de
permettre à l'utilisateur de piloter les périphériques en
ignorant tous des caractéristiques du matériel qu'il utilise, de
la gestion des adresses physiques, etc.
· Le système de fichiers permettant d'enregistrer
les fichiers dans une arborescence.
Ainsi, il a pour rôle :
" Gestion du processeur : le système d'exploitation
est chargé de gérer l'allocation du processeur entre les
différents programmes grâce à un algorithme
d'ordonnancement. Le type d'ordonnanceur est totalement dépendant du
système d'exploitation, en fonction de l'objectif visé.
" Gestion de la mémoire vive : le système
d'exploitation est chargé de gère l'espace mémoire
alloué à chaque application. En cas d'insuffisance de
mémoire physique, le système d'exploitation peut créer une
zone mémoire sur le disque dur, appelée « mémoire
virtuelle ». Elle permet de faire fonctionner des applications
nécessitant plus de mémoire qu'il n'y a de mémoire vive
disponible sur le système.
" Gestion des entrées/sorties : le système
d'exploitation permet d'unifier et de contrôler l'accès des
programmes aux ressources matérielles par l'intermédiaire des
pilotes.
" Gestion de l'exécution des applications : le
système d'exploitation en leur affectant les ressources
nécessaires à leur bon fonctionnement.
" Gestion des droits : le système d'exploitation est
chargé de la sécurité lié à
l'exécution des programmes en garantissant que, les ressources ne sont
utilisées que par les programmes et utilisateurs possédant les
droits adéquats.
" Gestion des fichiers : le système d'exploitation
gère la lecture et l'écriture dans le système de fichiers
et le droit d'accès par les utilisateurs.
Le système d'exploitation est adapté à
un type de microprocesseur. Ainsi, parmi les systèmes d'exploitation,
les plus célèbres sont : la famille Microsoft
Windows et le GNU/Linux pour les ordinateurs
compatibles PC ; Unix, VMS et OS/2 pour
d'autre types de processeurs.
a. Windows
Windows est une gamme de système d'exploitation
produite par Microsoft, principalement destinées aux machines
compatibles PC. C'est le remplaçant de MS-DOS. Depuis les années
1990, avec la sortie de Windows 95, son succès commercial pour
équiper les ordinateurs personnels est tel qu'il possède alors un
statut de quasi-monopole. La gamme Windows4 est composée de
plusieurs branches comme nous montre la figure 2 :
Fig.2. La gamme du syst~me d'exploitation Windows
· La première est née en 1985.
· La seconde branche, dite branche NT (Windows NT, puis
2000) est apparue en 1993. C'est une réécriture complète
du système, destinée aux ordinateurs personnels et aux serve urs.
Elle s'est principalement développée dans le milieu
professionnel.
· La troisième branche est apparue en 1995 avec
Windows 95, puis Windows 98, et Windows ME. Elle était plus connue du
grand public et avait pour vocation de remplacer, dont elle était une
évolution 32 bits.
4
http://fr.wikipedia.org/wiki/windows
visité le 15 juillet 2011 à 13h54
· La quatrième branche, apparue en 1996 avec
Windows CE, est destinée au système embarqué et
matériel léger et portable.
· Windows XP, sorti en 2001, continue la branche NT en
fusionnant, avec branche Windows 9x : elle couvre à la fois le grand
public et les professionnels, en deux versions différentes. Windows
Vista en est une nouvelle évolution.
b. GNU/Linux
GNU/Linux, où Linux5 est un
système d'exploitation basé sur le noyau Unix, un logiciel libre
créé en 1991par Linux Torvalds sur un ordinateur compatible PC.
Développé sur Internet par des milliers d'informaticiens
bénévoles et salariés, Linux fonctionne maintenant sur du
matériel allant du modem au superordinateur.
Il existe de nombreuses distributions Linux
indépendantes, destinées aux ordinateurs personnels et serveurs
informatiques, pour lesquels Linux est très populaire.
Elles incluent des milliers des logiciels, notamment ceux du
projet GNU, d'où la dénomination GNU/Linux basé sous la
licence GPL (Général Public Licence) GNU GPL.
La licence GPL est une licence rédigée par la
Free software Fondation, organisation dont le but est de développer des
logiciels libres, qui protège les logiciels libres et leurs auteurs.
Cette licence stipule que le logiciel libre peut être
redistribué, utilisé, modifié librement pourvu que celui
qui en bénéficie accorde les mêmes droits à ceux
qu'il distribue les copies du logiciel, modifié ou non.
Les dits « libres » sont caractérisés par
quatre (4) libertés :
1. la liberté de l'améliorer et de le diffuser au
public.
2. la liberté de redistribuer des copies de façon
à pouvoir aider votre besoin.
3. la liberté d'étudier le fonctionnement du
programme et de l'adapter à ses besoins.
5. la liberté d'utiliser le logiciel pour n'importe quel
usage.
Le système GNU/Linux est constitué d'un noyau Linux
et d'un ensemble de logiciels GNU basé sur ce noyau.
Le noyau est le logiciel qui s'occupe d'interagir avec le
matériel, de gérer
la mémoire, l'exécution des
logiciels et des différentes ressources de la
5
http://fr.wikipedia.org/wiki/windows
visité le 15 juillet 2011 à 15h35
machine ; le noyau GNU/Linux est actuellement à sa version
2.6
Le système GNU/LINUX présente les
caractéristiques générales suivantes :
· code source disponible : chaque personne peut avoir le
code source de son système GNU/LINUX et l'adapter à ses besoins
tout en respectant la licence GPL.
· Multi plateforme : le système GNU/LINUX peut
être utilisé sur différentes plates-formes compatibles
PC.
· Multitâches : le système GNU/LINUX permet la
gestion de plusieurs tâches (processeurs) en même temps.
· Multiutilisateurs : GNU/LUNIX permet la gestion de
plusieurs utilisateurs.
· Gestion multiprocesseurs : il peut gérer plusieurs
processeurs mis en parallèle.
· Gestion de consoles virtuelles : permet la gestion des
écrans ou des interfaces virtuels.
· Support d'un grand nombre de systèmes de
fichiers : grâce à son système de fichier virtuel,
GNU/LINUX peut gérer plusieurs types de système de fichier.
Méme la création d'un nouveau système personnalisé
par l'utilisateur.
· Implémentation complète de la pile TCP/IP :
il incorpore toute la pile des protocoles TCP/IP.
· Services réseaux SLIP, PPP, SMB : le protocole SMB
lui permet
d'effectuer des partages de fichier avec les systèmes
Windows.
· Interfaces graphiques : dispose d'une interface graphique
X-WINDOWS.
Pour une version donnée du noyau, il existe plusieurs
distributions linux. Une distribution linux est un ensemble cohérent de
logiciels rassemblant un système d'exploitation composé d'un
noyau linux et d'applications, la plupart étant des logiciels libres.
Les distributions facilitent l'installation du système GNU/LINUX en
sélectionnant les bons logiciels GNU pour un usage donné. Ainsi,
parmi ceux-ci, nous citons :
- Debian est une distribution non commerciale
régie par le contrat social Debian.
Flle se distingue par le très grand nombre
d'architectures supportées, son importante logithèque et par son
cycle de développement relativement long, gage d'une certaine
stabilité. Elle est très utilisée sur les serveurs.
- Fedora est une distribution communautaire
supervisée par Red Hat. Elle est très basée sur le
système de gestion de paquetages logiciels RPM.
- Red Hat (officiellement Red Hat Entreprise
Linux ou RHEL) est une distribution commerciale largement répandue dans
les entreprises (surtout aux Etats-Unis). La société Red Hat, qui
la supervise, a développé RPM, un gestionnaire de paquets sous
licence GPL que d'autres distributions utilisent.
- Mandriva Linux est une distribution
internationale éditée par la société Mandriva en
France et dans le monde. Très orientée vers le grand public, elle
est conçue pour être facile d'installer et d'usage, pour les
débutants et les professionnels.
- Gentoo est une distribution
caractérisée par sa gestion des paquetages à la
manière des ports BSD, effectuant généralement la
compilation des logiciels sur l'appareil de l'utilisateur. Elle est
dédiée aux utilisateurs avancés, aux développeurs
et aux passionnés.
- Slackware est l'une des plus anciennes
distributions existantes. Slakware a été historiquement une des
premières permettant de faire tourner GNU/LINUX depuis un CD-ROM.
- SuSE Linux a été la
première distribution européenne. Elle propose deux distributions
principales : SUSE Linux Entreprise orientée vers les entreprises et
OpenSUSE orientée vers le grand public.
- Ubuntu, basée sur Debian. Plus
orientée vers le grand public aussi sur les serveurs, édite des
versions stables plus fréquemment. Cette distribution dispose d'une
solide base d'utilisateurs en France, et partout ailleurs.
I.7. CONCLUSION PARTIELLE
La connaissance préalable d'une infrastructure
réseau et des applications est nécessaire pour acquérir la
maitrise globale d'un environnement réseau.
Ce chapitre vient de décrire les types de réseau
d'entreprise, Intranet et Extranet, d'éléments qui les
constituent, en partant des systèmes d'exploitation :
propriétaire et libre, des serveurs physiques et même des
applications ainsi que des moyens d'accès aux informations disponibles
dans l'intranet.
Le chapitre suivant parlera de la virtualisation dans le
réseau à infrastructure Intranet et expliquera la
nécessité de virtualiser les serveurs.
CHAPITRE II : LA VIRTUALISATION DES SERVEURS
DANS UN INTRANET
II .1. INTRODUCTION
La virtualisation, comme définit par
l'encyclopédie en ligne Wikipedia6, est « l'ensemble de
techniques matérielles et/ ou logiciels qui permettent de faire
fonctionner sur une seule machine plusieurs systèmes d'exploitation
et/ou plusieurs applications, séparément les uns et les autres,
comme s'ils fonctionnaient sur des machines physiques, distinctes ». Il
s'agit donc d'utiliser une seule machine physique en remplacement de plusieurs
dans un Intranet et d'utiliser les possibilités offertes par la
virtualisation pour démultiplier le nombre de machines virtuelles.
La virtualisation permet de faire des installations d'autres
systèmes sur une seule et méme machine physique. L'avantage est
de pouvoir lancer la machine que l'on désire faire fonctionner quand on
veut et de ne pas avoir un nombre important de machines avec chacune un
système d'exploitation. Il est possible de lancer plusieurs
systèmes en même temps mais il faut que les capacités
matérielles soient importantes notamment en processeur et
mémoire. Pour pouvoir gagner de la place dans la salle de serveurs,
faciliter les installations et les redémarrages après incidents,
sécuriser les systèmes, les entreprises y ont de plus en plus
recours.
Au-delà de la possibilité de faire fonctionner
des applications qui ne peuvent normalement pas s'exé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, l'usage était de consacrer une
machine physique à un service, c'est-à-dire, une machine physique
pour la messagerie, le stockage, l'hébergement Web, etc.,
Tant pour des raisons pratiques : associer une machine à
un rôle unique, que pour la Sécurité c'est-à-dire,
séparation des services. Toutefois, cette dispersion a un coüt qui
n'est pas nul pour l'entreprise, que ce soit en espace occupé, en
énergie c'est-à-dire consommation électrique ou en
maintenance : plus de machines physiques implique plus de risques des pannes
matérielles. De plus, la plupart de services
6 http ://
fr.wikipedia.org/wiki/virtualisation
visité le 18 juillet 2011 à 20h17'
fournis sur un réseau local (DHCP, DNS, Intranet,....)
ne consomment qu'une très petite partie des ressources offertes par une
machine récente. Tous ces facteurs font qu'il n'est pas pertinent
aujourd'hui d'utiliser des machines séparées pour héberger
des services nécessitant qu'une fraction de la puissance d'une machine.
Le schéma ci-dessous illustre l'infrastructure traditionnelle.
erveurs
A l'heure actuelle, la tendance est plutôt au
rassemblement de plusieurs services, autrefois distincts, sur une seule
machine, par le biais de l'utilisation des technologies de virtualisation pour
maintenir une séparation entre les services. On parle de consolidation
de serveurs7.
En outre, la virtualisation permet de réduire le nombre
de machines physiques à acheter, administrer et maintenir. Il y a donc
une économie financière à la clef, qui peut être
substantielle si l'entreprise a besoin de beaucoup de serveurs pour son
activité.
7 La consolidation de serveurs est une restructuration de
l'infrastructure d'une organisation en vu de réduire les
Postes de travail
coûts et améliorer le contrôle en optimisant
les besoins en ressources.
Fig.3. Infrastructure tradie: Type ntranet
En plus du simple gain en nombre de machines, les
économies réalisées en consommation
d'électricité, location d'espace dans un Datacenter sont aussi
à prendre en compte comme nous montre le schéma de la figure4
ci-dessous.
Les technologies de virtualisation sont donc très
intéressantes, car elles permettent de réduire le temps
passé à administrer les machines et systèmes en
automatisant et centralisant la plupart des activités
traditionnelles.
II .2. ÉVOLUTION DE LA VIRTUALISATION
Les premiers ordinateurs, qui occupaient plusieurs
pièces d'un bãtiment, n'étaient pas faits pour
exécuter plusieurs programmes à la fois. On concevait un
programme (qui était à l'époque une simple succession de
calculs), on le mettait dans la file d'attente des programmes, et quand le
système d'exploitation avait fini de traiter un programme, on lui
donnait le suivant dans la liste.
Très vite, dès la fin des années
cinquante, l'idée de pouvoir exécuter plusieurs programmes en
parallèle voit le jour. On parle de temps partagé (time
sharing), de multiprogrammation, etc. L'idée était de
pouvoir faire cohabiter plusieurs programmes au même moment, ayant tous
accès au méme matériel, sans qu'ils ne se génent
mutuellement.
La virtualisation est très proche de concept.
Au milieu des années soixante, IBM effectue des
recherches sur les systèmes virtualisés avec le projet M44/44X.
L'architecture du système se basait sur des systèmes
d'exploitation virtualisés (nommés 44X) s'exécutant
au-dessus du matériel (une machine M44).
Les systèmes invités étaient
gérés par une simple multiprogrammation. En 1967 est
lancé, toujours par IBM, le système CP-40, le premier
système offrant une virtualisation complète. Le CP-40 sera suivi
par plusieurs évolutions, amenant chacune de nouvelles
fonctionnalités pour les utilisateurs. On peut notamment citer le
système VM/370, qui a connu un très fort succès dans les
entreprises, et est parfois encore en usage dans certaines entreprises
aujourd'hui.
Après le succès des machines virtuelles
introduites par IBM, les technologies ont assez peu évolué. Le
système hôte a vite été réduit à
l'état de simple arbitre entre les systèmes invités,
amenant la notion d'hyperviseur. Toutefois, toutes ces technologies de
virtualisation étaient réservées au monde professionnel,
destinées à être utilisées sur des
mainframes coûtant plusieurs millions de dollars.
Parallèlement à cela, le monde de la recherche
(souvent financé par ces mêmes entreprises) a continué
à étudier différentes possibilités pour
améliorer les performances et à essayer de nouvelles
technologies. La plupart de ces travaux de recherche sont toutefois
restés assez confidentiels et n'ont que rarement été
transposés sur un produit.
L'orientation « grand public » des technologies de
virtualisation est beaucoup plus récente. Dans les années
quatre-vingt-dix, l'intérêt pour les émulateurs de consoles
de jeu ainsi que l'explosion du marché de l'informatique personnelle
(les ordinateurs de type PC) ont fait prendre conscience aux entreprises qu'il
y avait un marché pour la virtualisation sur PC. Des
sociétés ont alors commencé à créer des
produits de virtualisation basés sur des machines virtuelles pour les
« petites » entreprises c'est à dire celles ne pouvant
s'offrir des serveurs à plusieurs millions de dollars et pour les
particuliers.
À partir de ce moment-là, les technologies ont
vraiment progressé, avec l'arrivée des nouveaux acteurs toujours
prêt à innover pour se démarquer des concurrents.
Prenons l'exemple d'une solution de virtualisation faite pour
le grand public, de type VMware : l'utilisateur possède un seul
ordinateur, sur lequel est installé un système d'exploitation
(Microsoft Windows, GNU/Linux, Mac OS X, etc.) ainsi qu'une application qui
fait office de machine virtuelle : le logiciel installé par VMware.
L'utilisateur peut à partir de son système d'exploitation
appelée aussi système hôte, démarrer un nouveau
système d'exploitation qui peut être totalement différent
de celui installé sur la machine physique.
Le système d'exploitation virtualisé
appelé système invité (guest system) est alors
exécuté par la machine virtuelle, et complètement
détaché de tout le matériel de l'ordinateur. La machine
virtuelle se charge d'émuler pour le système invité tout
le matériel « standard » d'un ordinateur : disque dur,
écran, clavier, souris, etc. L'utilisateur peut alors utiliser le
système invité comme normal : installer l'application, naviguer
sur Internet, exécuter un programme, etc. Le système hôte
installé sur la machine physique et le système invité sont
totalement indépendants : le système invité est vu par
l'hôte comme un simple programme, il n'a pas d'accès direct au
matériel contrairement à l'hôte.
Aujourd'hui, les solutions de virtualisation couvrent
principalement deux domaines : les systèmes de stockage
et les systèmes serveurs. Dans le cas des environnements de stockage, la
virtualisation est utilisée par les administrateurs pour gérer
les différentes ressources par une vue unique virtuelle. Par cette vue,
ils gèrent de façon centralisée l'espace disponible
indépendamment des technologies utilisées SAN, NAS, etc. La
virtualisation des systèmes serveurs répond à un objectif
similaire. Les entreprises en ont recours pour disposer d'une vue
générale sur l'utilisation de leurs ressources machines. Ils
peuvent ainsi découper un serveur physique en des multiples serveurs
logiques, dont
chacun se verra attribuer une tâche différente. Les
vues virtuelles ne tiennent pas compte des technologies exécutées
par la machine.
II.3. LA MACHINE VIRTUELLE
Une machine virtuelle est un ordinateur logiciel qui, à
l'instar d'un ordinateur physique, exécute un système
d'exploitation et des applications. La machine virtuelle se compose d'un
ensemble de fichiers de spécification et de configuration ; elle est
secondée par les ressources physiques d'un hôte. Chaque machine
virtuelle a des périphériques virtuels qui fournissent la
même fonction que le matériel physique et présentent un
intérêt supplémentaire en terme de portabilité,
maniabilité et sécurité. La figure 5 ci-après
illustre une machine virtuelle.
Fig.5. illustration d'une machine virtuelle
Un ordinateur virtuel est constitué des composants
suivants :
> Une fenêtre dans laquelle l'ordinateur virtuel
s'exécute. Chaque ordinateur virtuel est doté de
paramètres qui déterminent sa relation de fonctionnement avec le
système d'exploitation hôte, tels que la quantité de
mémoire vive allouée à l'ordinateur virtuel ou les
affectations des ports COM1 et COM2. Virtual PC possède également
des options globales qui affectent tous les ordinateurs virtuels.
> Un fichier de configuration d'ordinateur virtuel
(.vmc), qui contient
toutes les informations de configuration d'un ordinateur
virtuel.
> Un fichier qui représente le disque dur de
l'ordinateur virtuel, appelé disque dur virtuel. Les disques durs
virtuels ont une
extension .vhd. Par défaut, ce disque
est un fichier de taille dynamique dont la taille augmente à mesure que
vous y installez des applications ou que vous y stockez des données.
Vous pouvez sélectionner différents types de disques durs
virtuels et configurer pour l'ordinateur virtuel jusqu'à trois disques
durs virtuels différents, afin qu'il bénéficie de plus
d'espace de stockage.
> Un système d'exploitation installé sur le
disque dur virtuel. Il peut s'agir de quasiment n'importe quel système
d'exploitation compatible avec les ordinateurs x86.
> Du matériel émulé et des
périphériques externes, tels que clavier, souris, CD, DVD,
disquette, carte audio, ports, imprimantes et autres
périphériques utilisés par l'ordinateur virtuel pour
émuler un ordinateur physique.
II.4. INTÉRÊT DE LA
VIRTUALISATION Les intérêts de la virtualisation
sont :
> utilisation optimale des ressources d'un parc de machines
c'est-àdire la réparation des machines virtuelles sur les
machines physiques en fonction des charges respectives ;
> installation, déploiement et migration facile des
machines virtuelles d'une machine physique à une autre, notamment dans
le contexte d'une mise en production à partir d'un environnement de
qualification ou de pré production, livraison facilitée ;
> économie sur le matériel par mutualisation
: consommation électrique, entretien physique, monitoring, support,
compatibilité matérielle, etc. ;
> installation, tests, développements,
réutilisation avec possibilité de recommencer, arrêt du
système hôte sans déranger les autres machines ;
> sécurisation et /ou isolation d'un réseau
(arrét des systèmes d'exploitation virtuels, mais pas des
systèmes d'exploitation hôtes qui sont invisibles pour
l'attaquant, tests d'architectures applicatives et réseau) ;
> isolation des différents utilisateurs
simultanés d'une méme machine ;
> allocation dynamique de la puissance de calcul en fonction
des besoins de chaque application à un instant donné :
> diminution des risques liés au dimensionnement des
serveurs alors de la définition de l'architecture d'une application.
II.5. CONTRAINTE DE LA VIRTUALISATION
Bien que la virtualisation nous amène plusieurs avantages,
nous allons évoquer ici quelques inconvénients :
a. Plusieurs serveurs virtuels sont sur une seule machine
physique, C'est un risque potentiel ;
b. Si une VM a un problème de performance (100% CPU)
alors les autres serveurs sont affectés (plus ou moins)
c. Perte de performance pour les disques durs
d. La facilité de création de VM implique une
surconsommation des ressources
Ces inconvénients peuvent bien sûr être
réglés par l'application de bonnes règles de gestion des
machines virtuelles.
II.6. TECHNOLOGIES DE LA VIRTUALISATION
Il existe plusieurs catégories de virtualisation,
utilisant chacune des technologies différentes. Les technologies les
plus répandues sont :
> la virtualisation complète ou machine virtuelle ;
> la para virtualisation ;
> la virtualisation assistée par le matériel ou
hyperviseur ; > le cloisonnement ou isolation.
Chacune de ces technologies est une technologie de
virtualisation, mais elles ne fonctionnent pas de la même façon.
Les principes et particularités de chaque technologie seront
détaillés dans les pages suivantes.
II.6.1. La virtualisation complète ou machine
virtuelle
La virtualisation complète en anglais « full
virtualisation » est une technologie qui consiste à émuler
l'intégralité d'une machine physique pour le système
invité. Le système invité « croit »
s'exécuter sur une véritable machine physique. Le logiciel
chargé d'émuler cette machine s'appelle « une machine
virtuelle », son rôle est de transformer les instructions du
système invité en instruction pour le système hôte.
Ainsi, la machine virtuelle est un programme comme un autre du point de vue du
système hôte, au méme titre qu'un navigateur Internet ou
traitement de texte.
Les programmes utilisateur n'ont pas d'accès direct au
matériel, mais uniquement aux couches d'abstraction. La machine
virtuelle émule donc de manière logique tout le matériel
habituel de l'architecture pour le système invite, ce dernier croit
dialoguer directement avec l'édit materiel comme nous montre la figure 6
ci-dessous.
Fig. 6. Emulation des couches virtuelles
Cet empilage de couches est sensiblement identique pour tous
les peripheriques emules par la machine virtuelle. On retrouve. Du plus bas au
plus haut niveau :
1. Le materiel.
2. Le pilote du materiel pour le système hôte,
3. La couche d'abstraction du système hôte,
4. Le materiel emule par la machine virtuelle,
5. Le pilote du materiel pour le système invite,
6. La couche d'abstraction du système invité,
Le disque dur de la machine virtuelle est la plupart du temps
gere comme un volumineux fichier pour le système hôte, alors que
la memoire vive dont le système invite dispose, est reservee par le
programme de la
machine virtuelle. Le reste de l'architecture de l'ordinateur
peut varier grandement selon les implémentations, mais on retrouve
généralement au moins une carte réseau, un clavier
standard et une carte graphique.
Les systèmes s'exécutant dans la machine
virtuelle est un système d'exploitation à part entière,
tel qu'on pourrait en installer sur une machine physique : Microsoft Windows,
GNU/Linux, Mac OS X. etc. Cette particularité est la
caractéristique principale de la virtualisation complète : les
systèmes invités n'ont pas à être modifiés
pour être utilisés dans une machine virtuelle utilisant une
technologie de virtualisation.
Le système invité à son tour peut
exécuter n'importe quel programme prévu pour ce système,
dans la mesure où il ne nécessite pas de matériel non
fourni par machine virtuelle. Cette possibilité est due au fait que le
système d'exploitation sert (entre autres) de couche d'abstraction entre
le matériel et les applications s'exécutant par -dessus
fonctionneront aussi. Cette technique isole bien les systèmes
invités, mais elle a un coût en performance et en temps. Ces
performances sont donc limitées par les performances de la couche
d'abstraction du système hôte et par la qualité de
l'émulation du matériel implémenté. En effet, la
machine virtuelle ne peut pas, dans la plupart de cas, exécuter
directement les instructions du système invité sur le
système hôte.
Les instructions de manipulation de la RAM8, par
exemple, doivent être interprétées par la machine virtuelle
pour aboutir au résultat attendu, car c'est le processeur de la machine
virtuelle qui est censé s'occuper de la gestion physique de la
mémoire, et non le processeur de la machine hôte.
La machine virtuelle doit donc implémenter en logiciel
une gestion complète de la mémoire de l'invité, en
utilisant les couches d'abstraction de l'hôte pour accéder
à la mémoire centrale.
Cet empilement de couches réduit significativement les
performances, surtout en cas de forte pression sur la mémoire comme par
exemple quand la mémoire est utilisée de manière intensive
: lecture, écriture, déplacement de données,
etc. la figure 7 détaille les couches
d'abstraction entrant en jeu pour la gestion de la mémoire.
En échange cette technique permet de faire cohabiter
plusieurs systèmes invités hétérogènes sur
une même machine grâce à une isolation complète.
8 La RAM (Random Access Memory) ou mémoire vive de
l'ordinateur est une mémoire volatile et à accqs aléatoire
dans la quelle un ordinateur place les données lors de leur
traitement.
Fig.7. couche d'abstraction pour la gestion de la
mémoire
Du fait de l'empilement de couches d'abstraction et
l'impossibilité pour la machine virtuelle d'accéder directement
au matériel, les performances du système invité sont assez
éloignées de celles d'un système « natif ».
Selon les implémentations, diverses solutions sont utilisées pour
accélérer les machines virtuelles, par exemple en passant la
plupart des instructions destinées au processeur virtuel directement au
processeur physique. Cela accélère la vitesse de calcul du
système invité.
Il reste cependant le problème des
Entrées/Sorties (E/S), c'est-à-dire les accès au disque,
à la RAM, à la carte graphique, à la carte réseau,
etc. D'une manière générale, on appelle Entre/Sorties (I/O
Input/Output) tout ce qui intervient pour transférer des informations ou
des données entre un périphérique et le système
d'exploitation. Les E/S sont beaucoup plus dures à optimiser, car chaque
système a une façon propre de gérer cela. Il faut donc
cohabiter étroitement à la fois avec le système hôte
pour accès réel au matériel et avec le système
invité pour que ses accès au matériel soient le plus
rapide possible. Cela amène une plus grande complexité de code,
et une séparation en couches moins marquée que dans le
modèle vu sur la figure 6. Cette « rupture » dans le
modèle en couches est exploitée par une autre technologie de
virtualisation appelé « Para- virtualisation »
II.6.2. La para virtualisation
La paravirtualisation (paravirtualization ou en
coreparavirtualization) est très proche du concept de la
virtualisation complète, dans le sens où c'est toujours un
système d'exploitation complet qui s'exécute sur le
matériel émulé par une machine virtuelle, cette
dernière s'exécutant au-dessus d'un système hôte.
Toutefois, dans une solution de paravirtualisation, le système
invité est modifié pour être exécuté par la
machine virtuelle. Les modifications effectuées visent à rendre
le système émulé « au courant » du fait qu'il
s'exécute dans une machine virtuelle. De ce fait, il pourra collaborer
plus étroitement avec le système hôte, en utilisant une
interface spécifique, au lieu d'accéder au matériel
virtuel via les couches d'abstraction. Au final, l'architecture obtenue est
plus performante que l'empilement de couches d'abstraction de la figure 7.
En pratique, un système paravirtualisé
possède quelques pilotes de périphériques et
sous-systèmes modifiés, qui lui permettent de communiquer
directement avec la machine virtuelle, sans avoir passé par une couche
d'abstraction pour parler au matériel virtuel. Les pilotes
paravirtualisés échangent directement des données avec la
machine virtuelle, sans avoir à passer par une émulation du
comportement du matériel. Les parties du système hôte
généralement modifiées pour tirer profit de la
paravirtualisation sont la gestion de la mémoire et la gestion des E/S.
En effet, ce sont véritablement les deux goulets d'étranglement
d'un système virtualisé, du fait du nombre de couches
d'abstraction à traverser. Il est donc logique que les optimisations se
portent là-dessus. La figure 8 montre la structure d'une machine
virtuelle et d'un système hôte supportant la paravirtualisation.
Les pilotes non modifiés interagissent toujours avec le matériel
émulé par la machine virtuelle (rectangle bleu ciel), alors que
les pilotes modifiés communiquent directement les fonctions de la
machine virtuelle (rectangle jaune). La simplification qui en résulte
permet au système invité de collaborer plus efficacement avec
l'hôte : les parties critiques du système communiquent presque
directement avec le système hôte, en contournant les couches
d'abstraction virtuelles (i.e. le matériel
émulé). Le reste de l'architecture est inchangé, la
machine virtuelle est toujours une application utilisateur (rectangle blanc) et
le système d'exploitation (Rectangle vert) est toujours le seul à
avoir un accès privilégié au matériel (rectangle
bleu).
Fig.8. couche d'abstraction pour la gestion de la
mémoire
Les détails sur comment sont réalisées
ces optimisations varient selon les implémentations, mais il s'agit en
général pour le système invité d'utiliser des
appels systèmes ou des instructions spécifiques pour renseigner
la machine virtuelle sur les actions à entreprendre.
Cette dernière réalise alors ces actions, et
communique le résultat au système invité. Le type d'action
à effectuer varie également selon les implémentations,
mais on retrouve en général tout ce qui est déplacement de
données entre l'hôte et l'invité (accès disque,
transfert réseau, etc.) et gestion de la mémoire.
La paravirtualisation apporte un gain de performances
avéré, du fait du contournement des couches d'abstraction. En
effet, comme le système invité collabore activement avec la
machine virtuelle, il ne se comporte plus comme un système
d'exploitation à part entière s'exécutant directement sur
du matériel. Au contraire, il adapte son comportement pour que les
accès au matériel souvent difficiles à interpréter
de manière efficace par la machine virtuelle soient transformés
en des appels directs à cette dernière. De plus, étant
donné que seules les couches de bas niveau du système
invité ont été modifiées, toutes les applications
qui pouvaient fonctionner dans une architecture de virtualisation
complète peuvent aussi être utilisées dans une architecture
paravirtualisée.
Toutefois, cette augmentation des performances est restreinte
à certains systèmes. En effet, comme le système
invité doit être modifié9 pour être
paravirtualisé, il faut bien évidemment que l'on ait la
possibilité de réaliser cette opération de portage. Or,
cela nécessite à la fois l'accès au code source du
système d'exploitation et la permission du détenteur des droits
de le modifier. Si cela ne pose aucun problème pour un système
libre (notamment GNU/Linux et les systèmes BSD), il n'en va pas de
même pour les systèmes propriétaires, tels que Microsoft
Windows et Mac OS. L'usage de la paravirtualisation est donc
généralement limité aux systèmes libres, sauf
à utiliser une solution de virtualisation propriétaire compatible
avec un seul système d'exploitation invité, comme les produits
que Microsoft propose pour ses systèmes d'exploitation.
Tout comme la virtualisation complète, la
paravirtualisation garde une séparation nette entre le système
invité et le système hôte. De ce fait, seul le
système hôte a un accès direct et exclusif au
matériel. Le système invité doit donc toujours passer par
la machine virtuelle pour accéder au matériel, qui passe à
son tour par la couche d'abstraction. On peut donc améliorer davantage
le processus en laissant au système invité un accès direct
mais contrôlé au matériel. C'est le but des systèmes
à « hyperviseur ».
II.6.3. Le Système a Hyperviseur
Un hyperviseur est une plate-forme de virtualisation qui
permet à plusieurs systèmes d'exploitation de travailler sur une
machine physique en même temps. L'Hyperviseur est un noyau hôte
allégé et optimisé pour ne faire tourner que des noyaux
des systèmes invités adaptés et optimisés pour
tourner sur cette architecture spécifique, les systèmes
invité ayant conscience d'être virtualisés.
L'utilisation d'un hyperviseur est en quelque sorte
l'évolution logique de la paravirtualisation, l'on recherche encore une
amélioration des performances. Dans les technologies
précédentes, le système hôte était le seul
à avoir un accès direct au matériel ; avec hyperviseur, le
système hôte partage cet accès avec les systèmes
invités.
9 On parle de portage, de la même manière qu'on
porte un système ou une application vers une nouvelle architecture
matérielle.
Au démarrage de l'ordinateur, c'est normalement le
système d'exploitation qui prend la main et contrôle le
matériel. Dans le cas de l'utilisation d'un hyperviseur, c'est un
système minimaliste, l'hyperviseur, qui prend le contrôle du
matériel. Ensuite, il fait appel à un système
d'exploitation complet, qui sera donc exécuté par-dessus
l'hyperviseur.
Ainsi, le système d'exploitation doit passer par
l'hyperviseur pour tout accès au matériel. On peut donc
très facilement installer un deuxième système
d'exploitation, qui passera lui aussi par l'hyperviseur pour l'accès au
matériel. Comme les systèmes d'exploitation doivent
obligatoirement passer par ce dernier pour tout accès au
matériel, l'hyperviseur peut assurer qu'ils n'accèdent qu'aux
ressources autorisées, sans perturber le fonctionnement des autres
systèmes.
A la différence des deux technologies vues
précédemment, la virtualisation complet et la paravirtualisation,
l'hyperviseur est le seul à un accès privilégié au
matériel. Il n'y a cette fois pas d'accès direct au
matériel pour le système d'exploitation, uniquement une couche
d'abstraction minimale fournie par l'hyperviseur comme illustre la figure 9
ci-dessous.
fig. 9. virtualisation par Hyperviseur
Sur la figure 9, les systèmes cohabitent au même
niveau de privilège,
uniquement régulés par
l'hyperviseur. Chaque système d'exploitation a un
accès
presque direct au matériel, par l'intermédiaire de l'hyperviseur.
Il n'y
a donc plus de couche d'abstraction logicielle, le
matériel accessible est celui de la machine physique, avec toutes les
fonctionnalités qu'il peut offrir. Le gain de performance est
significatif, notamment dans le cas des E/S, où le système peut
utiliser toutes les extensions des périphériques pour
accélérer les transferts.
Du point de vue privilège, et selon certaines
implémentations, il y a souvent un système
privilégié, qui est en général le premier
système démarré par l'hyperviseur. Ce système est
alors autorisé à modifier les paramètres de l'Hyperviseur
ou à installer des nouveaux systèmes invités. A
l'opposé, sur d'autres implémentations, la différence
entre hôte et invité est inexistante, tous les systèmes ont
les mêmes privilèges et l'Hyperviseur est alors
contrôlé d'une autre manière.
Les systèmes à hyperviseur contrôlent de
façon plus fine l'accès au matériel et l'utilisation des
ressources. Au niveau de l'hyperviseur, on veillera donc qu'un système
ne dérange pas les autres en consommant trop de ressources, alors que
dans le système de virtualisation complète, on s'assurera qu'un
programme utilisateur ne dérange pas la machine virtuelle qui
exécute les autres systèmes d'exploitation en tant que
systèmes invités. Tous les systèmes destinés
à s'exécuter au-dessus d'un hyperviseur doivent être
portés10, comme les systèmes invités pour la
paravirtualisation. Cette opération vise à adapter les couches
basses du niveau système d'exploitation pour qu'elles communiquent avec
l'hyperviseur plutôt qu'avec le matériel.
Les inconvénients sont donc les mêmes que pour la
paravirtualisation : il est nécessaire d'avoir accès au code
source de tous les systèmes ainsi que l'autorisation du détenteur
des droits. En outre, le portage est beaucoup plus lourd à
réaliser pour fonctionner sur un hyperviseur. En effet, pour la
paravirtualisation, seuls quelques pilotes et sous-systèmes avaient
besoin d'être réécrits pour tirer parti de
l'accélération. Au contraire, un hyperviseur nécessite la
modification de toutes les couches d'accès au matériel ; la
complexité du code s'en trouve grandement augmentée. Le portage
sur un hyperviseur revient quasiment à porter le système
d'exploitation sur une nouvelle architecture matérielle. Les
technologies vues jusqu'alors présentent une complexité
croissante quant à la mise en oeuvre. Cependant les technologies que
proposent le cloisonnement ou l'isolation sont différentes.
10 Un portage est l'adaptation d'un programme dans un
environnement autre que son environnement d'origine. Dans le domaine du jeu
vidéo, on parle de portage lorsqu'un jeu est adapté d'un
système à un autre ; (source :
http://fr.wikipedia.org/wiki/portage#Informatique
visité le 25 juillet 2011 à 17h14.
II.6.4. Le cloisonnement ou l'isolation
Un isolateur est une couche logicielle permettant d'isoler des
applications dans ces contextes d'exécution différentes. Cette
technique est très en performance (native), mais le cloisonnement des
environnements virtualisés reste en général imparfait.
Le cloisonnement vise à isoler chaque processus dans un
conteneur dont il est théoriquement impossible de sorti. Un processus
isolé de la sorte ne saura pas quels autres processus l'exécutent
sur le méme système, et n'aura qu'une vision limitée de
son environnement. Le but principal de cette technologie est d'améliorer
la sécurité du système d'exploitation et des applications.
Cette technologie est performante, mais les environnements virtualisés
ne sont pas complètement isolés.
Les « machines virtuelles » ici, les environnements
sont forcément issues du méme système d'exploitation. La
performance est donc au rendezvous mais le choix on ne peut pas vraiment parler
de virtualisation de systèmes d'exploitation. La figure 10,
décrit le processus de virtualisation avec le cloisonnement.
Application
De controle
Linux VSERVER
Proccess
isolé
Système hote
Matériel
Linux VSERVER
Proccess isolé
Fig.10. Virtualisation par cloisonnement
Uniquement liés aux systèmes linux, les
isolateurs sont en fait composés de plusieurs éléments et
peuvent prendre plusieurs formes. La plupart de systèmes d'exploitation
basés sur UNIX proposent un moyen d'isoler les processus. Le plus
répandu (et le plus ancien) est la commande chroot, qui permet
de créer un environnement minimal
contenant uniquement ce qui est strictement nécessaire
pour exécuter le programme isolé. Les systèmes
basés sur BSD comme OpenBSD, NetBSD, freeBSD proposent aussi
jail (prison), qui est une évolution de chroot, plus
sure, plus complète et plus souple dans son utilisation.
L'UNIX11 de Sun Microsystems, Solaris, propose un
système de zone très évolué, plus proche
d'une machine virtuelle que d'une simple isolation des processus. Toutes ces
technologies ont en commun le fait de conserver exactement la meme instance du
système d'exploitation accessible aux processus isolés. Ainsi, on
ne pourra pas avec le cloisonnement proposer un système d'exploitation
différent pour un processus isolé.
Les technologies de cloisonnement sont aussi utilisées
dans d'autres domaines que les systèmes d'exploitation. Par exemple, le
langage Java de Sun Microsystems propose une machine virtuelle, qui n'a rien
à voir avec les machines virtuelles étudiées ici signalons
le, qui est un interpréteur pour le langage Java. Cet
interpréteur exécute tous les programmes Java dans un conteneur
isolé, dont ils ne peuvent pas sortir.
II.7. LES ACTEURS DE LA VIRTUALISATION
Les acteurs principaux dans le domaine de la virtualisation
sont partagés entre les très grandes technologies de
virtualisation vues précédemment.
Les acteurs les plus connus dans le domaine des grands
systèmes ou mainframes sont IBM qui a un fort historique de
virtualisation, HP, Sun, Bull, etc. Toutes ces sociétés
fournissent des systèmes de virtualisation fonctionnant exclusivement
avec leur propre architecture matérielle. Les technologies
utilisées différent selon les systèmes, mais en
général ce sont des technologies à base de virtualisation
complète ou d'hyperviseur.
Dans les architectures de type PC, il y a plus de
sociétés proposant des produits et donc plus d'offres de
virtualisation. On peut notamment citer Microsoft, qui a racheté la
solution de virtualisation de connectix en février 2003. Ce rachat a
ensuite donné lieu à la diffusion de Virtual PC et Virttual
Server, produit permettant de virtualiser des
11 Unix est un systIme d'exploitation
multiutilisateur, multit~ches, ce qui signifie qu'il permet à un
ordinateur mono ou multiprocesseurs de faire exécuter
simultanément plusieurs programmes par un ou plusieurs utilisateurs.
systèmes à base de Windows, respectivement pour
un ordinateur personnel et pour un serveur. Microsoft travaille aussi avec
Citrix Systems pour développer un hyperviseur pour la
virtualisation des serveurs sur Windows Serveur 200812.
La société VMware édite plusieurs
produits à destination des entreprises souhaitant virtualiser leurs
serveurs, qui couvrent sensiblement les mêmes applications que les
solutions de Microsoft, mais avec en plus la possibilité de faire
fonctionner leurs produits avec le système GNU/Linux en tant que
système hôte.
Ces deux sociétés fournissent des solutions
propriétaires destinées aux particuliers et aux entreprises. Les
technologies utilisées sont soit de la virtualisation complète
soit de la paravirtualisation, en fonction des produits et systèmes.
Du côté de la communauté du logiciel
libre, il y a énormément de projets de virtualisation, ayant des
buts variables. Certains d'entre 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 l'architecture PC traditionnelle
(processeur Intel) ;
> KVM soutenu par la société
Qumranet, KVM se veut une
solution de virtualisation performante et facile à
administrer ;
> Linux-VServer projet de virtualisation
destiné à fonctionner sur
le système d'exploitation GNU/Linux ;
> Open VZ soutenu par la
société Virtuozzo, Open VZ 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 l'architecture PC ;
> Xen soutenu par la société
Xensource, Xen vise à proposer une
solution performante pour la virtualisation de serveurs ;
12 Signalons que Microsoft collabore avec XenSource (Citrix
Systèmes) pour développer le système de virtualisation par
l'hyperviseur Xen sur Windows 2008 Serveur. Source :
http://www.microsoft.com/france/interop/news/fr/07-17MSXenSourcePR.mspx
23 juillet 2011 à 19h20'
Ces solutions de virtualisation utilisent les
différentes technologies étudiées : la virtualisation
complète, la paravirtualisation, les systèmes à
hyperviseur, et l'isolement ; et sont tous à des états
d'avancement différents, certains sont d'ores et déjà
utilisables en production alors que d'autres sont encore en phase de
développement.
Dans la suite de notre travail, nous ferons une étude
approfondie de chaque solution de virtualisation du monde libre.
II.8. CONCLUSION PARTIELLE
Dans ce chapitre nous venons de voir la virtualisation et son
importance, les différents types de virtualisations et leurs
applications ainsi que les différents acteurs de la virtualisation. Le
chapitre suivant nous parlera de différentes solutions de virtualisation
des serveurs.
CHAPITRE III. : LES SOLUTIONS DE VIRTUALISATION DES
SERVEURS
III.1. INTRODUCTION
Il existe plusieurs solutions de virtualisation dans le monde
libre sous GNU/Linux. Dans ce chapitre, nous ne verrons que les solutions le
plus en vogue et qui se basent sur les technologies vues dans le chapitre II.
Outre Bochs et VMware Serveur basé sur la virtualisation complète
c'est-à-dire que ces logiciels sont capables d'émuler le
processeur, le BIOS et les périphériques usuels :
Entrées/Sorties, nous parlerons que de QEMU, KVM, Linux-VServer, OpenVZ,
Xen.
III.2. VIRTUALISATION AVEC QEMU III.2.1.
Aperçu sur QEMU
QEMU
Virtualization complete
Paravirtualisation
Hyperviseur
x
Cloisonnement
QEMU est une machine virtuelle ou
émulateur de système, libre qui permet de faire tourner un ou
plusieurs systèmes d'exploitation13 ou seulement des
processus sur un système d'exploitation déjà
installé sur la machine. QEMU utilise la virtualisation complète
et isolée sur une même machine physique comme illustre la figure
11.
Fig. 11. Solution avec QEMU
13
http://fr.wikipédia.org/wiki/QEMU,
http://www2.wwweball.com/wiki/page.php/QEMU
visité le 25 juillet 2011 à 19h30'
QEMU fonctionne sur les plateformes x86-64, PPC, Sparc
et ARM et sous les systèmes d'exploitation Linux, FreeBSD,
NetBSD, OpenBSD, Mac OS X, Unix et Windows. Les systèmes invités
partagent ainsi les ressources de la machine physique et n'ont pas «
conscience » d'être virtualisés. Ils n'ont donc pas besoin
d'être adaptés pour fonctionner sur QEMU.
QEMU est un module pour le noyau linux qui
permet d'accélérer l'émulation sur les systèmes
d'exploitation linux en contournant certaines couches d'abstraction du
système se rapprochant ainsi des performances natives du système
hôte lorsque le processeur ne possède pas de fonctions
matérielles dédiées à la virtualisation. QEMU
permet d'exécuter le code de l'instance virtuelle de système
d'exploitation invité directement sur le processeur hôte comme
nous montre la figure 12.
Applications utilisateur
Système
invite
QEMU X86
Pilotes
Système Hôte: Linux, Windows
QEMU
Matériel
A hit
Applications utilisateur
Système invite
QEMU X86
Pilotes
Fig.12. La technologie QEMU
Le système invité est géré comme
une image disque complète par le système hôte et grossit au
fur et à mesure que le système invité remplit l'espace
réservé à la création.
III.2.2. La Gestion du réseau par QEMU
QEMU offre plusieurs modes de fonctionnement
pour la connexion de système invité au réseau.
La première méthode, la plus simple, consiste
à laisser un accès limité au réseau depuis la
machine virtuelle. Dans ce mode, appelé user mode networking,
QEMU offre un réseau privé au système
invité, et filtre les communications. Du point de vue du système
invité, il y a un réseau privé simple, avec un serveur
DHCP qui attribue dynamiquement des adresses
IP et une passerelle pour accéder à Internet. Ce mode
est totalement indépendant du système hôte, le DHCP et la
passerelle sont émulés par QEMU.
Le déroulement du processus est le suivant :
1. QEMU est initialisé en user mode Networking ;
2. Le système invité démarre ;
3. à l'initialisation du réseau, le système
invité effectue une requête DHCP pour configurer la carte
réseau ;
4. la pile user mode de QEMU répond à la
requête DHCP et attribue une adresse IP à la carte réseau
du système invité ;
5. une fois la carte configurée, le système
invité peut émettre du trafic sur le réseau virtuel, comme
s'il était connecté à un véritable réseau
;
6. quand le système invité émet du trafic,
QEMU récupère le trafic réseau et le passe au
système hôte, qui se charge alors de l'émettre sur le
véritable réseau physique.
Du point de vue du système hôte,
QEMU est un programme comme un autre, y compris pour
l'accès au réseau. Cette particularité fait que la
configuration user mode est très simple, QEMU
se chargeant de tout. Par contre , il n'est pas possible de faire fonctionner
un programme hébergeant un service réseau comme le serveur Web
avec ce mode, sauf à dire explicitement à QEMU
d'écouter sur un port donné et d'avoir l'autorisation du
système hôte pour écouter sur ce port. Ce mode est donc
réservé aux tests rapides, ou aux cas d'utilisation ne
nécessitant qu'un usage basique de l'accès à
Internet.
- Le deuxième mode proposé est le mode
TAP ou tuntap. Dans cette
configuration, une interface réseau virtuelle est créée
sur le système hôte. Cette interface virtuelle est ensuite
reliée à l'interface physique par un pont (bridge), qui
servira à faire passer le trafic réseau de l'une vers l'autre.
QEMU relie alors le système invité à l'interface
virtuelle.
Une autre particularité intéressante de QEMU est
la possibilité de relier les systèmes invités entre eux,
indépendamment du réseau physique sous-jacent. Chaque instance de
QEMU démarrée peut se voir préciser un numéro de
VLAN. De cette manière, seules les machines virtuelles
partageant le même numéro de VLAN14 peuvent communiquer
entre elles.
QEMU dispose d'énormément de
possibilités en ce qui concerne la gestion du réseau, mais ce
n'est pas son seul point fort. En effet, il y a quantité d'options
paramétrables au lancement du programme, qui contrôlent le type de
matériel émulé, la connectivité au réseau,
les disques et répertoires à rendre accessibles au système
invité, etc.
III.2.3. Conclusion sur QEMU
QEMU est sous la licence
GNU/GPL et reste une solution intéressante dans les cas
d'utilisation où l'on a simplement besoin de tester le comportement d'un
programme ou d'un système. Les options d'interconnexion qu'il offre,
tant avec le système hôte qu'avec d'autres machines du
réseau sont très intéressantes, et permettent de mettre au
point des architectures très complexe, impossibles à
réaliser avec des machines physiques.
QEMU, de par sa robustesse et ses
fonctionnalistes étendues est réutilisé dans plusieurs
solutions de virtualisation comme :
> KVM : la partie utilisateur utilise une
version légèrement modifiée de QEMU ;
> Xen : QEMU est la machine virtuelle se
chargeant des E/S lorsque Xen utilise les processeurs supportant les
instructions de paravirtualisation ;
> Virtualbox : se base sur QEMU pour la
réalisation des E/S.
Ainsi, QEMU offre des performances insuffisantes par rapport
à la puissance de la machine hôte pour des serveurs
destinés à offrir des grandes capacités dans le
réseau.
14Un VLAN ou Réseau Local
Virtuel est un réseau local regroupant un ensemble de machines de
façon logique. Présenté par : Bonhomie BOPE
bonhomie.bope@ista.ac.cd 243 851 796 942, 243 898 297 100
III.3. VIRTUALISATION AVEC KVM III.3.1.
Aperçu sur KVM
KVM, kernel Based Virtual Machine est une solution de
virtualisation complète sur linux. Elle est basée sur les
architectures x86 possédant les extensions matérielles de
virtualisation Intel VT ou AMD-V. Elle consiste en un
module chargeable du noyau qui fournit le coeur de virtualisation
kvm.ko et module spécifique dépendant du processeur soit
kvm-intel.ko pour les processeurs Intel soit kvm-and.ko pour
les processeurs ADM. Le schéma ci-dessous illustre la solution de
virtualisation utilisé par KVM
Virtualisation complète
|
X
|
Paravirtualisation
|
|
Hyperviseur
|
|
Cloisonnement
|
|
KVM
Fig. 13. La technologie KVM pour la virtualisation
Les outils QEMU sont aussi nécessaires
au fonctionnement de KVM pour les manipulations sur les
fichiers images des instances de s systèmes d'exploitation.
Techniquement, la solution KVM se compose :
- D'un module noyau qui utilise les instructions de
virtualisation et communique avec le processeur ;
- D'un programme utilisateur, qui utilise le module noyau pour
toutes les opérations privilégiées.
Avec la solution KVM, chaque machine virtuelle
est un processus standard du noyau linux serré par l'ordonnanceur.
Un processus normal de système
GNU/LINUX peut être exécuté selon deux
modes : noyau (kernelspace) ou utilisateur (userrspace). KVM
ajoute un troisième mode : le mode invité qui
possède ses propres modes noyau et utilisateur.
La partie utilisateur de KVM est une version
légèrement modifiée de QEMU, simplement
adaptée pour que les opérations pouvant
bénéficié des instructions de virtualisation du processeur
fassent appel au module noyau.
III.3.2. Conclusion sur KVM
Basé sur QEMU, KVM reprend
naturellement toutes ses fonctionnalités mais grace à
l'utilisation des instructions de virtualisation des processeurs
récents, les performances des systèmes invités sur KVM
sont bien plus élevées que sur QEMU.
Étant basé sur QEMU, KVM souffre
des mêmes inconvénients sur la complexité du code et la
difficulté de manipuler les images disques.
En plus de cela, la partie propre à
KVM, c'est-à-dire le module noyau utilisant les
instructions de virtualisation, est encore jeune et manque de maturité.
Même si effectivement utilisable en production pour un petit nombre de
machines virtuelles, la difficulté de maintenance et la montée en
charge restent inconnues.
Il y a donc un risque certes faible, mais pas inexistant
d'affronter des difficultés inattendues en utilisant
KVM pour virtualiser un ensemble de serveurs.
III.4. VIRTUALISATION AVEC LINUX-SERVER
III.4.1. Aperçu sur Linux-VServer
Linux-server est une solution de virtualisation sous GNU/GPL
par fonctionnement ou isolement pour la plateforme GNU/Linux. Il isole des
instances du système d'exploitation par-dessus un système
hôte comme illustre la figure 14 ci-dessous.
Virtualisation Complète
Paravirtualisation
Hyperviseur
Cloisonnement
Linux-Vserver
X
Fig.14. La technologie Linux- Server
Linux-Vserver se base sur les fonctionnalités
déjà implémentées au sein du noyau par
chérot15 sur la séparation des processus et les droits
d'accès pour implémenter une séparation complète au
niveau du noyau. Les modifications apportées utilisent et
étendent les fonctionnalités déjà présentes
dans le noyau. Linux-VServer est donc une solution de virtualisation beaucoup
plus poussée que le simple chérot.
Du point de vue technique, Linux-VServer se compose de
patches à appliquer sur le code source du noyau Linux qui
permet de faire tourner plusieurs applications dans différents contextes
de sécurité sur une meme machine hôte et d'utilitaires
fonctionnant dans l'espace utilisateur pour contrôler la création
et l'administration des systèmes invités.
Il y a un seul noyau linux, qui contrôle toujours
l'accès au matériel, mais il est partagé entre plusieurs
instances du système, qui ont chacune un accès complet au noyau,
sans connaissance des autres systèmes invités. La
possibilité d'avoir un accès complet au noyau signifie entre
autres qu'il n'y a pas besoin de porter les applications utilisateurs pour
qu'elles fonctionnent sur Linux-Vserver.
Pour l'administrateur, la machine physique comporte un seul
système d'exploitation, mais pour les programmes utilisateurs, chaque
partition du système voit sa propre instance du noyau.
15 Commande Linux / Unix qui permet d'isoler
l'exécution d'un programme et d'éviter ainsi certaines
malveillances, comme l'exploitation d'un dépassement de
tampon, pour ensuite accéder au répertoire racine de la machine
hôte.
Avec linux-Vserver, il n'y a quasiment pas de perte de
performances par rapport au système natif, mais il y a un net gain en
sécurité et simplicité d'administration du fait de la
séparation entre les systèmes invités.
Contrairement à QEMU et KVM vue
précédemment, Linux-Vserver ne travaille pas avec une image
disque du système, mais avec un simple ensemble de fichiers dans un
répertoire, qui représentera la racine du système
invité. Cela implique une plus grande facilité d'utilisation. En
effet, il est possible avec ce mode de fonctionnement de modifier des fichiers
du système invité en les ouvrant depuis le système
hôte, comme n'importe quel autre fichier.
On peut donc opérer des modifications, ou déplacer
une image système d'une machine à l'autre très
facilement.
Par contre, les possibilités de configuration
réseau sont moindres que pour QEMU, car Linux-Vserver reste très
proche du noyau linux. Il y a quelques options pour assigner une carte
réseau à un système invité ou au contraire
répartir la carte entre plusieurs.
III.4.2. Conclusion sur Linux-Vserver
Malgré des performances très élevées,
le projet Linux-Vserver souffre de quelques inconvénients :
- La séparation entre les systèmes
invités est trop « faible », dans le sens où il y a un
seul noyau Linux pour plusieurs systèmes invités. Si un
système invité trouve un moyen de contourner les projections et
affecte le noyau, tous les autres systèmes de la machine en
pâtiront. C'est une faiblesse dont souffrent toutes les solutions de
virtualisation utilisant le cloisonnement.
- Un autre problème majeur est la difficulté de
maintenir le projet à jour. En effet, comme le code Linux-Vserver est un
patch pour le noyau Linux, il est possible, et méme très
fréquent, qu'une nouvelle version du noyau « casse » la
compatibilité du patch. Il faut alors attendre qu'une nouvelle
version du projet Linux-Vserver sorte spécifiquement pour la nouvelle
version du noyau.
Pour conclure, le projet Linux-Vserver, en dépit de ses
qualités, n'offre pas toutes les garanties nécessaires, notamment
sur le soutien de la communauté qui est trop réduite. Il est de
plus relativement complexe à maitriser, c'est pourquoi elle n'a pas
été retenue pour une structure de virtualisation.
III.5. VIRTUALISATION AVEC OPENVZ III.5.1.
Aperçu sur OpenVZ
OpenVZ est une solution de virtualisation par cloisonnement et
son principe de fonctionnement est similaire à celui de Linux-Vserver,
car ils se basent tous les deux sur la modification du noyau Linux pour
implémenter un système de cloisonnement au niveau du
système d'exploitation.
OpenVZ est une solution sous la licence GNU/GPL et son
équivalent propriétaire s'appelle « Vituozzo ». La
figure 15 nous montre la technologie qu'il utilise pour la virtualisation.
irtualisation complète Virtualisation
complète
arvirtualisation Paravirtualisation
yperviseur Hyperviseur
loisonnement Cloisonnement
OpenVZ
X
Fig.15. La technologie OpenVZ
Contrairement au patch Linux-Vserver, OpenVZ modifie le noyau
Linux plus profondément en y ajoutant certaines fonctionnalités
comme un niveau supplémentaire d'indirection pour les ordonnanceurs du
noyau. L'ajout de ce niveau d'indirection permet de gérer les
priorités entre les systèmes invités, puis au sein
même du système invité.
La répartition de charge entre les systèmes
invités est donc plus fine avec OpenVZ qu'avec Linux-Vserver qui utilise
un système d'ordonnancement bien moins complexe.
Les fonctionnalités de haut niveau d'OpenVZ sont
presque identiques à celles de Linux-VServer : arrêt,
instanciation et contrôle des systèmes invités.
OpenVZ a la possibilité de migrer un système
invité « à chaud », sans
avoir à le
désactiver avant. Le terme utilisé dans le cas d'OpenVZ est
checkpointing. Cela consiste à sauvegarder
L'état complet du système invité dans un fichier sur le
disque, puis à le transférer sur une autre machine où
l'état pourra alors être restauré.
La connectivité réseau est aussi très
similaire aux autres solutions, car chaque système invité peut
disposer de sa propre adresse IP, et c'est le noyau modifié qui s'occupe
de rediger le trafic réseau vers le bon système.
III.5.2. Conclusion sur OpenVZ
Contrairement à la licence GNU/GPL, la
société qui développe OpenVZ se targue de posséder
plusieurs brevets sur les méthodes de virtualisation. Cette tendance est
opposée au mouvement du logiciel libre. En plus, la version libre OpenVZ
dispose des moins de fonctionnalités que la version propriétaire
et payante Virtuozzo qui est plus complète.
Ainsi, malgré ses excellences performances et
nombreuses documentations, OpenVZ n'a pas été retenue pour une
société impliquée dans le logiciel libre à cause de
son décalage idéologique.
III.6. VIRTUALISATION AVEC XEN
III.6.1. Historique
XEN, dont le nom vient du grec xenos qui signifie
étranger, est une solution de virtualisation par hyperviseur
géré par la société Xensource. Cette solution
était à l'origine menée au sein de l'Université de
Cambridge, sous le nom de Xenoserver. Le but était alors
d'héberger 100 systèmes invités sur une seule machine
physique, avec les meilleures performances possibles.
Xensource a été racheté par Citrix en
aout 2007 et celui-ci n'a rien changé sur la licence qui est GNU GPL du
produit pour la communauté libre. Toutefois, les entreprises qui
adoptent cette solution pourront être rassurées de voir que
XenSource est maintenant soutenue par de moyens financiers importants.
Contrairement aux autres entreprises qui offrent des solutions
de virtualisation en entreprise, Xen est un produit complet et du coté
monde libre et du coté propriétaire. Seulement, les versions
propriétaires ont des outils de gestion à grande échelle
et un support technique fourni par XenSource. Les performances entre les
produits propriétaires et ceux du monde libre sont donc identiques.
III.6.2. Aperçu de la solution XEN
XEN est un hyperviseur, c'est-à-dire qu'il vient
s'insérer entre le matériel et le noyau. C'est donc XEN qui a
l'accès exclusif au matériel, et les systèmes
d'exploitation fonctionnant par-dessus doivent obligatoirement passer par
l'hyperviseur pour y accéder. Il peut ainsi répartir
précisément les ressources entre les systèmes
invités.
XEN étant une solution à base d'hyperviseur, les
systèmes destinés à s'exécuter au-dessus doivent
être portés pour pouvoir cohabiter avec
l'hyperviseur16. Or, la modification des couches basses d'un
système GNU/Linux pour améliorer les performances est
précisément la définition de la paravirtualisation. C'est
pourquoi, on considère que XEN est aussi une solution à base de
paravirtualisation, comme illustre la figure 16 car le système doit etre
modifié pour cohabiter, c'est-à-dire que les systèmes
invités ont conscience de la présence de XEN et savent
qu'ils sont virtualisés.
Virtualisation complète
Paravirtualisation
Cloisonnement
Hyperviseur
XEN
X
X
Fig.16. La technologie XEN
L'avantage de cette solution est que Xen n'a pas besoin
d'émuler des machines virtuelles, d'où des performances
remarquables. Par contre les systèmes propriétaires comme Windows
et Mac OS X ne peuvent pas etre modifiés sans l'accord de leur
éditeur. Ce problème est résolu avec l'avènement de
processeurs intégrant le support matériel de la virtualisation,
Pacifia ou AMD-V pour AMD et Virtualization Technology
16
http://bearstech.com/files/LB-virtualisationEntrepriseBearstech.pdf:
État de l'art des solutions libres de virtualisation pour une petite
entreprise, visité le 08 mai 2011 à 19h30'
ou Intel-VT pour Intel, illustrer par la figure 17 ce qui permet
de virtualiser des systèmes avec Xen sans avoir à les modifier au
préalable.
Fig.17. Virtualisation par XEN-SERVER
Seuls les processeurs ayant le support matériel de la
virtualisation peuvent faire tourner des systèmes d'exploitation
propriétaires cités dans le paragraphe
précédent.
Voici, la liste des processeurs17 Intel VT et AMD-V
:
· Tous les Intel Centrino Core 2 Solo,
Core 2 Quad, Core2 XE, xeon et Itanium.
· Certains Intel Pentium D, Pentium XE,
Centrino Core Solo, Core Duo et Core 2 Duo.
· Tous les AMD Athlon 64, Athlon 64 X2,
les turions X2 TL-50 et +, ainsi que les Opteron sur sockets AM2, AM2+ et
socket F.
Au-dessus de l'hyperviseur se trouvent les systèmes
invités, qui sont tous contrôlés par XEN.
Le premier système d'exploitation
démarré par XEN a des privilèges particuliers. Ce
système est appelé « domaine zéro >> (dom0
ou Domain-0), par opposition aux systèmes démarrés
plus tard, appelés « domaines utilisateurs >>
(domUs). Le domaine zéro est le seul autorisé à
créer et contrôler les domaines utilisateurs.
XEN se compose d'un ensemble de modifications à
appliquer au noyau
Linux (des patches) ainsi que des utilitaires en
espace utilisateur qui
17 Trouver la liste exhaustive sur le site visité le 27
juillet 2011 à 21h47'
http://doc.ubuntu-fr.org/xen
,
http://wiki.xensource.com/xenwiki/HVM
Compatible Processors
permettent d'administrer les systèmes invités,
les domaines utilisateurs ou DomUs. Les utilitaires sont dans le domaine
zéro, le système privilégié, et interagissent avec
l'hyperviseur par le biais d'appels systèmes spécifiques.
III.6.3. La gestion du réseau avec XEN
Au démarrage, XEN prend en charge la gestion des
interfaces réseau, et crée une interface virtuelle pour chaque
système invité, quiseront toutes reliées
à une interface physique par un système de pont.
Xen crée par défaut, sept (7) paires
d'interfaces Ethernet virtuelles connectées, Veth0 connecté
à Vif0.0, jusqu'à Veth7 connecté à
Vif0.718 comme nous montre la figure 18.
Fig.18. Interfaces virtuelles de XEN-SERVER
Pour chaque nouveau domaine Utilisateur, XEN crée une
nouvelle paire d'interfaces Ethernet virtuelles connectées, avec un
début en Dom0 et une fin en DomU. Pour les domaines avec système
linux, le nom du périphérique réseau est Eth0 pour une
seule carte.
18
http://wiki.xensource.com/xenwiki/XenNetworking
visité le 14 mai 2011 à 23h40'
Chaque domaine crée, se voit attribuer un nouveau
numéro d'identification par l'hyperviseur XEN, et ses interfaces
réseaux changeant de nom.
Illustrons cela par la figure 19 ci-dessous : les interfaces
virtuelles de Dom1 dans Dom0 prennent l'identifiant du domaine, et x le
numéro de la carte. Mais les interfaces du Dom0, garde l'identification
de ce dernier Vif0.x ; quand un DomU est arrété, l'hyperviseur
supprime toutes les interfaces Ethernet virtuelles créées
appartenant à ce domaine.
Fig.19. détaille d'interfaces virtuelles de XEN-SERVER
III.6.4. La gestion des images systèmes avec
XEN
XEN peut fonctionner de la même manière que les
solutions à base de cloisonnement, Linux-VServer et OpenVZ : le
système invité est un simple ensemble de fichiers dans un
répertoire du système hôte et, est vue par ce dernier comme
un seul fichier image, avec une taille bien définie.
Il y a néanmoins la possibilité de placer les
systèmes invités sur des partitions dédiées du
disque dur, voir sur un autre disque. De cette manière, les machines
virtuelles bénéficient de leur propre espace,
séparé du système hôte. Cela permet d'exploiter
toutes les fonctionnalités de GNU/Linux pour la gestion des disques,
notamment le RAID logiciel et le redimensionnement des partitions sans perte de
données.
Ainsi, on peut très facilement, avec les outils
d'administration fournis avec Xen, contrôler l'état d'un
système, son activité, sa consommation du temps processeur et de
la mémoire allouée, le mettre en pause ou l'arrêter
complètement. Les outils de gestion permettent également de
migrer les systèmes invités entre différents
systèmes hôtes.
III.6.5. Conclusion sur XEN
XEN possède quelques avantages :
· Les performances et les fonctionnalités sont
impressionnantes, très proches de celles d'un système
d'exploitation s'exécutant directement sur une machine physique, sans
virtualisation.
· Les fonctionnalités sont également
à la hauteur des performances, permettant aux administrateurs de
véritablement s'abstraire des machines physiques pour la gestion des
systèmes.
· XEN permet une isolation complète et
sécurisée entre les systèmes virtuels et donne la
possibilité de migrer des machines virtuelles entre des serveurs XEN,
sans interruptions de service.
· Les outils annexes proposés par la
communauté sont aussi très efficaces, et apportent une
véritable plus-value.
· La version propriétaire et payante de XEN
apporte juste un contrat de support et des outils de gestion de plus haut
niveau, mais pas de gains de performances.
En plus de ses fonctionnalités complètes, XEN
dispose d'une communauté très active, qui développe
régulièrement des nouveaux outils pour simplifier
l'administration ou la supervision des systèmes invités. XEN
possède aussi des inconvénients comme sa grande
complexité. En effet, XEN modifie les couches basses des tous les
systèmes d'exploitation, afin qu'ils puissent collaborer avec
l'hyperviseur. Les modifications apportées au noyau Linux sont de
l'ordre de plusieurs milliers de lignes de code. Elles portent essentiellement
sur la création d'une interface avec l'hyperviseur et sur la gestion de
l'accès au matériel à travers ce dernier. Ces
modifications sont assez intrusives, et altèrent profondément la
façon dont le noyau travaille en interne.
III.7. CHOIX TECHNOLOGIQUE
Dans ce chapitre, nous avons parcouru les solutions de
virtualisation et leurs technologies respectives. C'est ainsi que pour la suite
de notre mémoire, nous devons faire le choix de la technologie et de la
solution de virtualisation adéquate qui répondra à nos
besoins décrit dans le chapitre précédent.
Ainsi, QEMU a été éliminé
à cause de performances insuffisantes. Nous avons écarté
OpenVZ pour une « incompatibilité idéologique »,
malgré des performances de premier ordre. Linux-VServer n'a pas
été retenu, car il n'offrait pas assez de garanties sur la
pérennité et l'évolution des développements
à long terme. KVM à son tour ne nous a pas
intéressés parce que sa technologie est basé sur
l'isolation et ainsi, ses performances ne sont pas aussi grande quand bien
même il offre le meilleur potentiel d'évolution à court et
moyen terme19 ;
Enfin, pour la suite de notre mémoire, notre choix
s'est porté sur XEN tout simplement parce que XEN est la solution libre,
la plus performante et la plus complète du marché à
l'heure actuelle en terme de technologie utilisée Hyperviseur et
Paravirtualisation comme résume la figure 20.
|
QEMU
|
KVM
|
Linux-OpenVZ VServer
|
|
XEN
|
Virtualisation Complète
|
X
|
X
|
|
|
|
Paravirtualisation
|
|
|
|
|
X
|
Hyperviseur
|
|
|
|
|
X
|
Cloisonnement
|
|
|
X
|
X
|
|
|
Résumé
Fig. 20. Récapitulatif des technologies Utilisées
pour chaque solution.
19 Tableau III.10. Récapitulatif des technologies
tiré de
http://bearstech.com/files/LBvirtualisationEntrepriseBearstech.pdf
: État de l'art des solutions libres de virtualisation pour une petite
entreprise, visité le 27 juillet 2011 à 19h37'
DEUXIEME
PARTIE
ETUDE DE
CAS
IV.1. PRESENTATION
L'Institut Supérieur de Techniques Appliquées
(ISTA) est la fusion de trois instituts créés après
l'accession du pays (République Démocratique du Congo, en sigle
RDC) à l'indépendance. Il s'agit :
· Du Centre de Formation Météorologique
(CFM), ouvert à Binza dans la commune de Ngaliema en 1961.
· De l'Institut d'Aviation Civile (IAC) créé
en 1964 dans la commune de Barumbu.
· De l'Ecole Nationale de Poste et
Télécommunication (ENPT) fondée en 1966 dans la commune de
la Gombe.
Lors du changement de l'appellation de l'Université
Nationale du Zaïre en 1971, le groupement de ces trois instituts a
donné naissance à l'Institut de Météorologie,
d'Aviation Civile et de Télécommunication (ITMAT) selon l'article
51 de l'ordonnance présidentielle n°71/75 du 06 août 1971.
Sur proposition des autorités académiques du
Conseil Révolutionnaire de l'Université Nationale de Zaïre,
en CRU, l'ITMAT est devenu l'Institut Supérieur de Techniques
Appliquées en sigle ISTA depuis 1973. L'ISTA a acquis son autonomie et
sa personnalité juridique par l'ordonnance présidentielle
n°81 - 150 du 03 octobre 1981.
1.1. Emplacement et vocation
Situé sur l'avenue Aérodrome dans la commune de
Barumbu, l'ISTA est en face du quartier Bon marché et à
côté de la Régie des Voies Aériennes en sigle RVA
presque en parallèle de l'aérodrome de NDOLO.
L'ISTA a pour mission :
a) de former des cadres spécialisés dans les
domaines des sciences et techniques appliquées ;
b) d'organiser la recherche sur l'adaptation technique et
technologique nouvelle aux conditions de la RDC.
1.2. Sections disponibles à l'ISTA
L'ISTA est un établissement public d'enseignement
supérieur technique qui forme des cadres techniques. A ce jour, il
comprend deux cycles :
· Le premier cycle, qui dure quatre ans en raison d'une
année de préparatoire et trois années de graduat.
· Le second cycle, crée en 1997, dure deux ans.
1.2.1. Le premier cycle
Le premier cycle est constitué actuellement de sept
sections qui sont :
1. La section préparatoire
2. La section aviation civile
3. La section mécanique
4. La section électricité
5. La section électronique
6. La section météorologique
7. La section maintenance des équipements
médicaux
Il est à noter aussi que l'ISTA disposait de la
deuxième vacation pour les sections Électronique,
Électricité et Mécanique au premier cycle qui depuis un
certain temps n'est plus d'actualité.
A. Orientation premier cycle
1. La section aviation civile Exploitation Aéronautique
Radionavigation
2. La section mécanique Électromécanique
3. La section
électricitéÉlectricité
Industrielle
4. La section électronique Commutation
Électronique Industrielle Radio Transmission
Radio Télévision
5. La section météorologique
Prévision Aéronautique Hydrométéorologique
Agro météorologique
6. La section maintenance des équipements
médicaux
Maintenance des Équipements et Matériels
Médicaux.
B. Titre académique
A la fin du premier cycle, l'autorité académique
octroi le diplôme de graduat en Techniques appliquées ou
d'Ingénieur Technicien. Quant au second cycle, l'ISTA décerne le
diplôme d'Ingénieur selon la spécialité.
1.2.2. Second Cycle d'études
1. Génie Aviation Exploitation
aéronautique (Transport aérien)
2. Génie Mécanique
Énergétique
Production
Mécanique Appliquée
3. Génie Électrique
Électrotechnique Électronique
Informatique Appliquée
Télécommunication
4. Génie Spatiale Agro
météorologie Environnement Hydrologie
Prévision Aéronautique.
NB. : L'ISTA/Kinshasa organise aussi un enseignement
secondaire au sein d'une école secondaire d'application
dénommée I.T.M.A.T. (Institut Technique de
Météorologie, Aviation Civile et Télécommunication)
agréée par l'arrêté Ministériel n°
MINEPSP/CABMIN/001/0530/91 du 13 mars 1991.
Il comporte 5 options :
1. Aviation civile
2. Électronique de transmission
3. Électronique industrielle
4. Mécanique
5. Météorologie
6. Électricité
La fin de ces études secondaires est sanctionnée
par le Diplôme d'État (technicien de Niveau A2).
IV.2. UNITES DIDACTIQUES D'APPUI A
L'ENSEIGNEMENT 2.1. Laboratoires
1. Laboratoire d'Électronique
2. Laboratoire d'Électronique Générale
3. Laboratoire d'Essai des Machines
4. Laboratoire de Combustible et lubrifiant
5. Laboratoire de Commutation
6. Laboratoire de Mécanique Appliquée
7. Laboratoire de Métallographie
8. Laboratoire de Physique
9. Laboratoire de Radiotélévision
10. Laboratoire de Simulation de Circulation Aérienne
11. Parc Météorologique
2.2. Ateliers
1. Atelier Électrique
2. Atelier Électronique
3. Atelier Forge
4. Atelier Mécanique
2.3. Garage
2.4. Centre Informatique
2.5. Centre Médical
IV.3 ORGANISATION ADMINISTRATIVE
L'organisation administrative de l'ISTA est structurée de
la manière suivante :
- Le conseil de l'Institut est l'organe supreme. Ses
décisions sont imposables à tout le monde ;
- Le comité de gestion : il est composé de 4
membres :
- Le Directeur Général
- Le Secrétaire Général Académique
- Le Secrétaire Général Administratif
- L'Administrateur du Budget
- Le Conseil de section : (pour chaque section) composé de
5 membres dont :
- Un chef de section
- Deux chefs de section adjoints
- Un chargé de recherche et charger de l'enseignement
- Deux secrétaires académiques ainsi que deux
enseignants - Effectif des étudiants environ 8.000
IV.4. ORGANIGRAMME DE L'ISTA
Direction Générale
Administrateur de Budget
Secrétaire Général Administratif
Secrétariat Général Académique
Section
|
|
Section
|
|
Section
|
|
Section
|
|
Section
|
|
Section
|
|
Section
|
Préparatoire
|
|
Aviation
|
|
Électronique
|
|
Électricité
|
|
Mécanique
|
|
Météorologie
|
|
Maintenance
|
Labo
|
|
Labo
|
|
|
Labo
|
|
Atelier
|
|
Labo
|
Générale
|
|
Électronique
|
|
|
Télévision
|
|
Électronique
|
|
Hyperfréque
|
|
|
Appliqué
|
|
|
|
|
|
|
|
Labo
|
|
Labo
|
|
Labo
|
|
Labo
|
Mécanique
|
|
Calculaire
|
|
Commutation
|
|
Transmission
|
|
|
Analogique
|
|
|
|
|
Fig.21. Organigramme de L'ISTA
IV.5. PROJET UNIVERSITIC ET LE CENTRE INFORMATIQUE
Nous donnons ici une brève historique sur le Projet
UniversiTIC appuyé par la coopération Belge et le Centre
Informatique de l'ISTA où sont logés les différents
serveurs pour l'administration du réseau.
IV.5.1. Projet UniversiTIC
C'est Pour la première fois, au printemps 2006, la CUD
et le VLIRUOS ont décidé d'un commun accord de mener une
politique spécifique concertée pour la RDC à travers une
coopération scientifique. A cet effet, un nombre limité
d'universités congolaises ont été
sélectionnées comme partenaires pour une collaboration
structurelle : l'Université de Kinshasa, l'Université de
Kisangani, l'Université de Lubumbashi, les Facultés catholiques
de Kinshasa, l'Université catholique de Bukavu, l'Institut
Supérieur de Techniques Appliquées et l'Université
pédagogique Nationale de Kinshasa, ainsi que le CEDESURK.
La CUD et le VLIR-UOS collaborent pour conceptualiser et
mettre en oeuvre un programme NTIC transversal, appelé «
UniversiTIC », à l'intention des 7 universités partenaires
congolaises précitées. L'objectif de ce programme est d'ouvrir au
monde extérieur les 7 universités par le biais des NTIC, tant sur
le plan scientifique que dans d'autres domaines. Le développement des
capacités en matière de TIC est fait suivant une stratégie
commune favorisant l'émergence d'un sentiment d'appartenance à un
réseau tout en respectant les identités propres.
UniversiTIC a été lancé en mars 2007 avec
un atelier de formation à Lubumbashi en présence des 7 recteurs
des universités partenaires. Depuis lors, les projets individuels
formulés par les universités sont en révisions et le
programme commun transversal a démarré le 1er octobre
2007 par une formation d'administrateurs réseau, organisée sous
forme modulaire avec des sessions à Kinshasa et Lubumbashi. Des missions
d'expertises en NTIC ont eu lieu et les projets individuels étaient
finalisés au cours d'une mission de formulation en janvier 2009 à
Kinshasa.
IV.5.2. Centre Informatique
Le réseau informatique de l'ISTA a été
inauguré officiellement samedi, le 31/janvier/2009 à 13hoo
après une conférence des Recteurs organisée aux FCK en
présence des groupes de pilotage du projet ; la cérémonie
avait eu lieu devant le centre informatique de l'ISTA comme illustre les
figures 22 et 23.
Fig.22. inauguration du centre informatique Fig. 23. Vue de face
du centre Informatique
En dehors de la mission cruciale d'informatiser l'ISTA dans
tous les domaines, le centre informatique avec le concours de la
coopération belge dans le cadre du projet UniversiTIC avait
été assigné les missions suivantes :
|
Réaliser une liaison sans fil entre ISTA et CEDESURK pour
bénéficier des ressource du CEDESURK ;
Créer un centre de maintenance dans le cadre du projet
UniversiTIC;
Réaliser une plateforme pour le support de cours
informatique ; Former les professeurs et les chercheurs à la recherche
documentaire ;
Écrire un logiciel pour le système de gestion
d'études ;
Conception d'un site web ;
Réalisation des applications pour le réseau
intranet de l'ISTA ; Amener les utilisateurs à bien utiliser l'outil
informatique pour s'approprier du projet.
|
IV.6. ETUDE DU SYSTEME INFORMATIQUE EXISTANT
Le réseau informatique actuel de l'ISTA est
subdivisé en huit segments logiques grâce aux 6 Switch Cisco
Catalyst 2960 séries que possède l'ISTA. L'espace d'adressage de
ces huit segments logiques peut être décrit de la manière
suivante :
- Le réseau 10.10.0.0 pour les serveurs
- Le réseau 10.10.1.0 pour les administrateurs
- Le réseau 10.10.2.0 pour la salle public - Le
réseau 10.10.3.0 pour la petite salle - Le réseau 10.10.4.0 pour
les labos
- Le réseau 10.10.5.0 pour les sections
- Le réseau 10.10.6.0 pour la direction
Générale - Le réseau 10.10.7.0 pour le bâtiment
ITMAT
Il convient de noter que le Datacenter de l'ISTA contient 7
serveurs dont 3 sont dédiés et 4 non dédiés.
Caractéristiques physiques de 3 serveurs
dédiés : Serveur HP Proliant DL160 G6
1. RAM : 6Go
2. CPU : 2.27Ghz
3. HDD : 500 Go x 2
4. Puissance : 650 W par serveur
Caractéristiques physiques de 4 serveurs non
dédiés Serveur HP Compaq
. 1. RAM : 1Go
2. CPU : 2.27Ghz
3. HDD : 250 Go
4. Puissance : 500 W par serveur
Tous nos serveurs ont comme OS Linux Débian sqeeze sauf
deux qui
utilisent le Windows server 2008 R2 Datacenter (64bits) comme
OS.
Quant aux machines clients ; la majorité utilise les
systèmes windows XP et windows 7. Nous avons aussi le système
linux sous (ubuntu).
Ci-dessous nous présentons les différents services
et applications qui tournent dans le réseau intranet de l'ISTA :
Tableau N°1
N°
|
Services et Applications
|
Paquet installé
|
Fonction ou Rôle
|
|
DNS
|
Bind9
|
Pour la résolution de noms du domaine ista.ac.cd;
|
|
DHCP
|
Dhcp3-server
|
pour octroyer automatiquement des adresses IP en fonction de nos
VLANs
|
|
Pare-feu
|
Netfilter + iptables
|
un Firewall qui filtre tout, et qui fait aussi office de
routeur pour nos différents VLANs;
|
|
Proxy
|
Squid + Squidguard
|
Permet de faire le cache en économisant la bande passante,
permet aussi de gérer l'accqs des utilisateurs aux ressources
réseau
|
|
Messagerie
|
Postfix, mysql 5.0,roundcube,amavis,spamassassin ,postgrey
|
Permet de facilité la
communication entre différents utilisateurs et de stocker
les messages.
|
|
WEB
|
Apache2, php5, mysql 5.0
|
Pour la publication des pages web, et location des sites web
|
|
GLPI
|
glpi
|
Pour la gestion du parc informatique
|
|
MONITORING
|
Mrtg, munin, smokeping, nagios
|
Pour la surveillance du réseau
|
|
WIKI
|
mediawiki
|
Pour éditer les différentes configurations locale
et échange entre techniciens ou utilisateurs.
|
|
GP7
|
Gp7
|
Pour la gestion académique des étudiants
|
|
BASE DE DONNEES
|
Apache2, php5, mysql 5.0, phpmyadmin
|
Pour la gestion des livres numériques
|
|
BACKUP
|
Backup - manager
|
Pour sauvegarder toutes les configurations et les données
dans le réseau.
|
|
MIROIR
|
debmirror+rsync
|
Un miroir interne facilite la mise à jour à nos
clients linux nous permet ainsi d'optimiser la BP et (Ubuntu et debian)
|
Tableau 1. Les Applications, Paquets et leurs rôles.
Le tableau N°2 donne la répartition de
différentes machines dans chaque segment logique créer pour
réduire le broadcaste et sécurisé le réseau contre
les hackeurs
Tableau N°2
N°
|
Nom VLAN
|
Emplacement
|
Machine fixe
|
Machine portable
|
Observati on
|
1
|
DMZ
|
Salle serveurs
|
7
|
-
|
|
2
|
ADMIN
|
Bureau Administrateurs
|
1
|
2
|
|
3
|
BATHE
|
Salle Public (Fed)
|
20
|
5
|
|
4
|
KAKIEK
|
Salle de Formations
|
10
|
2
|
|
5
|
MIME
|
Les Laboratoires
|
8
|
4
|
|
6
|
WENE
|
Les Sections
|
15
|
10
|
|
7
|
BITE
|
La direction Générale
|
4
|
6
|
|
8
|
ITMAT
|
Locaux Services Académique
|
20
|
5
|
|
|
TOTAL
|
|
85
|
34
|
|
Tableau 2. Récapitulatif nombre des machines dans chaque
Vlan
u /DHC
01003/2
Concentrons-nous d'abord sur la zone serveur (DMZ). Nous
remarquons sur le schéma ci-haut que le réseau dispose
physiquement de 7 serveurs, bien sûr avec les services.
IV.8.CRITIQUE DE L'EXISTANT
Comme nous l'avons fait remarquer dans le point
précédent, le réseau dispose de trois serveurs physiques
dédiés remplissant chacun un ou plusieurs services.
En terme d'investissement, avoir trois machines
dédiés serveurs supposes en d'autres termes : avoir beaucoup
d'argent.
Certains nouveaux services exigeant des serveurs
dédiés, obligerons l'ISTA à acquérir ou à
acheter d'autres serveurs, c'est qui veut dire faire un autres investissement,
dépense après dépense.
En termes de consommation d'énergie, trois serveurs
dédiés et quatre autres non dédiés exigent beaucoup
de courant électrique, il faut alors disposer des onduleurs de grandes
puissances.
L'utilisation du matériel n'est pas optimale,
c'est-à-dire, que le matériel n'est pas à chaque instant
sollicité, il devra attendre qu'une requête arrive, comme un
utilisateur qui doit s'authentifier ou consulter ses mails pour offrir, le
service ou encore qui demande de résoudre un nom pour aller sur
internet. Et les autres moments, les serveurs ne consomment que de
l'énergie électrique sans être sollicités.
En plus, l'administrateur du réseau devra assurer une
maintenance préventive à ces serveurs. Par exemple, ajouter des
mémoires vives supplémentaires ou encore assurer la
propreté physique des serveurs, en termes, en de
dépoussiérage.
IV.9.PROPOSITIONS DES SOLUTIONS
Pour répondre à ces problèmes, nous nous
proposons de virtualiser les serveurs de l'ISTA. La virtualisation des serveurs
est une solution d'entreprise qui permet de partager les ressources d'un
méme serveur entre plusieurs applications, systèmes
d'exploitation ou utilisateurs.
Aussi, nous aurons un seul serveur, comme l'illustre la figure
25 cidessous, qui exécutera tous les serveurs avec leurs systèmes
d'exploitation respectifs avec des performances très
élevées.
Utiliser un même serveur pour plusieurs applications ou
plusieurs systèmes d'exploitation qui, le temps normal, ne sont pas
faites pour coexister, est source d'économies. Car ces applications
requièrent le plus souvent des versions de systèmes
d'exploitation ou de bases de données différentes.
A ce niveau :
Nous maitrisons les dépenses qui devront être faites
du point de vue économique pour obtenir les serveurs ;
· Nous avons la possibilité d'exécuter ou
de déployer des systèmes d'exploitation différents sur le
méme serveur physique : serveurs hétérogènes.
· Nous optimisons l'utilisation du serveur physique,
profiter de sa puissance, soit 70% d'exploitation par rapport à 5% pour
chaque serveur ; c'est-à-dire qu'une application qui ne fonctionne que
de façon périodique, tel qu'à la fin du mois, n'a plus
besoin d'un serveur dédié qui est inactif le reste du mois ;
· La consommation en énergie est réduite,
d'où réduction de la facture de l'électricité.
· Le réseau est plus flexible, car pour installer
un nouveau serveur, il ne suffit que de préciser un autre serveur
virtuel et d'installer l'application et le système d'exploitation
appropriés.
· L'administration du serveur est moins perturbante car,
il n'est plus nécessaire d'ouvrir et de fermer les serveurs pour ajouter
de la mémoire. Une commande envoyée à l'hyperviseur ou au
logiciel de virtualisation déplace la ressource d'un serveur virtuel
à un autre, lorsque les exigences varient au cours d'une
journée.
Présenté par : Bonhomie BOPE
bonhomie.bope@ista.ac.cd 243 851 796 942, 243 898 297 100
âble UP
IV.11. Détermination des applications à
virtualiser
Pour accroitre le rendement du réseau, l'analyse des
besoins des utilisateurs est primordiale pour déployer le réseau
et ses applications. Ainsi, d'après les études après
l'analyse des besoins des étudiants par la méthode top-down
network design20, en administration et en utilisation, les
applications et services ci-dessous ont été
déterminé comme étant nécessaires aux utilisateurs
de l'Intranet :
1. Service d'annuaire (active directory) et contrôleurs
de domaine : il permet de sécuriser l'accès aux ressources du
réseau en authentifiant les utilisateurs et permet l'administration et
la gestion facile du domaine ;
2. Service de messagerie : il permet aux utilisateurs du
domaine de pouvoir communiquer en utilisant les messages électroniques
ou E-mails ;
3. Service Web : il permet aux utilisateurs du réseau
d'accéder plus facilement aux ressources du réseau en utilisant
une interface Web et le portail pour les applications Web de l'Intranet ;
4. Service d'accès distant : permet aux utilisateurs
externes de se connecter par une liaison non sécurisée et
d'utiliser les ressources de l'intranet comme s'ils étaient
connectés ;
5. Service de partage (workflow): permettant la collaboration en
ligne, l'apprentissage en groupe et le partage des connaissances ;
6. Service DNS : permettant d'établir une correspondance
entre les adresses IP et le nom du domaine ;
7. Service DHCP : ayant pour rôle d'attribuer des adresses
IP automatiquement aux hôtes qui le demande sur le réseau Intranet
;
8. Serveur de bases des données : permet de stocker les
données des utilisateurs du réseau ;
9. Serveur d'applications : contenant les applications que les
utilisateurs peuvent exploiter via le réseau.
20 Pricillia, O., Top-Down Network Design Second Edition, Cisco
press, 2004, 600p.
IV.12. CONCLUSION PARTIELLE
L'étude de l'intranet de l'ISTA, dans son contexte
actuel et futur, en examinant les applications et la demande en performances,
montre qu'il est possible d'y déployer des serveurs virtuels.
Le chapitre suivant décrit le déploiement de XEN
pour la virtualisation au sein de l'intranet de l'ISTA. Il décrit en
détail les différentes étapes accomplies dans la
réalisation du présent mémoire.
CHAPITRE V : MISE EN OEUVRE DE L 'INFRASTRUCTURE
VIRTUELLE A L'ISTA
V.1.INTRODUCTION
Après avoir examiné les technologies et les
solutions de virtualisation de l'intranet de l'ISTA, ce chapitre montre comment
virtualiser les serveurs de l'ISTA. Les techniques de virtualisation qui seront
utilisées sont la paravirtualisation et l'hyperviseur par
solution de virtualisation XEN.
Cette solution, XEN, sera implémentée sur le
système GNU/Linux debian 6.0 server et utilisera les systèmes
invitées : GNU/Linux debian lenny ou squeeze et Windows 2003 serveur ;
Ainsi, nous répondrons aux besoins de l'ISTA d'avoir des serveurs
hétérogènes qui fonctionnent dans un même domaine
ista.ac.cd.
V.2.CHOIX DU MATERIEL ET LOGICIEL
Pour la réalisation de l'infrastructure Intranet
virtuelle, sans changer la structure physique du réseau, nous avons
porté notre choix sur un Serveur ProLiant DL 140 G3.
Le serveur HP ProLiant DL 140 G3 est économique au
format 1U, doté de capacité biprocesseur et équipé
des fonctionnalités essentielles hautes performances qui offrent aux
clients une plate-forme leur permettant de concevoir une solution
entièrement optimisée. Il est parfaitement adapté pour
l'informatique courante et haute performance, idéal pour les petites et
moyennes entreprises ;
HP ProLiant DL 140 G3 est doté de:
· 1 processeur multicoeur : Intel Xeon processor X5365, 3.0
GHz, 120W ;
· 2 Go de Mémoire vive DIMM DDR2 P-5300 extensible
à 32 Go ;
· Chipset Intel 5000X ;
· 2 disques durs SATA de 250 Go ;
· Réseau RJ-45 (Ethernet) ; 2 ports réseau
10/100/1000 intégrés prenant en charge l'équilibrage de la
charge de travail et la fonction
de basculement, plus 1 port dédié pour la gestion
à distance HP ProLiant Lights Out 100i ;
· Port Série : 1 ;
· Périphérique de pointage (souris) : 1 ;
· Clavier : 1 ;
· 4 ports USB
· Alimentation : 650 W, avec fonction correction du facteur
de puissance.
V.3. INSTALLATION DE LINUX DEBIAN 6.0
3.1. Introduction
Debian est une organisation composée uniquement de
bénévoles, dont le but est de développer le logiciel libre
et de promouvoir les idéaux de la communauté du logiciel libre.
Le projet Debian a démarré en 1993, quand Ian Murdock invita tous
les développeurs de logiciels à participer à la
création d'une distribution logicielle, complète et
cohérente, basée sur le nouveau noyau Linux. Ce petit groupe
d'enthousiastes, d'abord subventionné par la Free Software
Foundation, et influencé par la philosophie
GNU, a grandi pour devenir une organisation composée
par environ 886 développeurs Debian.
La première version de Debian, la 0.01 est sortie en
1993. Puis les versions s'enchaînent, avec des noms inspirés du
film Toy Story (v1.1 alias Buzz en 1996 ; v1.2 alias Rex en
1996 ; v1.3 alias Bo en 1997 ; v2.0 alias Hamm en 1998 ; v2.1
alias Slink en 1999 ; v2.2 alias Potato en 2000 ; v3.0 alias
Woody en 2002, v3.1 alias Sarge en 2005), v4.0 alias
Etch en 2007, et enfin Lenny, v5.0 en 2009.
Alors que Debian n'était composée que de
quelques programmeurs à ses débuts, l'organisation compte
aujourd'hui un millier de développeurs répartis sur toute la
planète et qui s'occupent de quelques 36103 paquets.
La prononciation officielle de Debian est «
déb-yann ». Le nom tire son origine des prénoms du
créateur de Debian, Ian Murdock, et de son épouse, Debra.
Les développeurs Debian s'impliquent dans des multiples
activités, par exemple, l'administration des sites web
et FTP, la conception graphique, l'analyse juridique des
licences logicielles, l'écriture de la documentation et, bien sûr,
la maintenance des paquets logiciels.
Nous avons choisi la distribution Debian pour plusieurs raisons
:
· ses qualités techniques : Debian est
réputée pour sa stabilité, pour son très bon
système d'installation de mise à jour des composants logiciels et
pour sa rapidité à réparer les failles de
sécurité ;
· Debian GNU/Linux est utilisé par la plupart des
fournisseurs d'accès à Internet, comme Free ;
· parce que c'est la première distribution GNU/Linux
qu'Alexis a
installée et utilisée, et qu'elle l'a toujours
satisfait jusqu'à présent ;
· Debian est reconnu pour son sérieux et ses
fortes prises de positions dans le monde libre. Debian garantit la
liberté des logiciels qu'elle propose !
3.2. Architectures supportées
Debian GNU/Linux est disponible sous 12 architectures, dont
Intel 32 et 64 bits, PowerPC (les anciens Macintosh) et Sparc (les stations
Sun).
3.3. Versions de Debian
Debian est toujours disponible en trois versions21
(trois branches) qui sont :
· stable : version figée où les
seules mises à jour sont des correctifs de sécurité ;
· testing : future version stable où seuls
les paquets suffisamment matures peuvent rentrer ;
· unstable : surnommée Sid, il s'agit
d'une version en constante évolution, alimentée sans fin par de
nouveaux paquets ou de mises à jour de paquets déjà
existants (on parle de Rolling release).
De plus, il existe un dépôt de paquets
nommé backports (voir ci-dessous) et un autre nommé
experimental qui contient des paquets expérimentaux de
logiciels dont l'utilisation pourrait dégrader le système.
Cependant, le dépôt experimental ne contient pas tous les
paquets disponibles dans les branches stables, testing et
unstable. Voilà pourquoi il n'est pas considéré
comme une branche à part entière.
21
http://fr.wikipedia.org/wiki/Debian
visité le 17 octoElJ U[I]] U U]TKL0'
Tableau N°3
Version
|
Nom
|
Date de sortie
|
Définition du personnage
|
Commentaire
|
0.01 à
0.91
|
|
août 1993 à janvier
|
|
|
|
|
|
mars 1995
|
|
|
0.93R6
|
|
novembre 1995
|
|
|
1.1
|
Buzz
|
17 juin 1996
|
Le ranger de l'espace
|
ELF ; noyau Linux 2.0
|
1.2
|
Rex
|
12 décembre 1996
|
Le tyrannosaure
|
|
|
1.3
|
Bo
|
2 juin 1997
|
La bergère
|
|
|
2.0
|
Hamm
|
24 juillet 1998
|
Le cochon-tirelire
|
Premier portage : m68k
|
|
2.1
|
Slink
|
9 mars 1999
|
Le chien à ressort
|
Apparition de APT ; 4
|
|
|
|
|
Potato
|
15 août 2000
|
Monsieur Patate
|
6 architectures (+ARM, +PowerPC) ; 2 000 paquets
|
|
|
|
Woody
|
19 juillet 2002
|
Le cow-boy
|
11 architectures ; 8 000 paquets
|
|
|
|
|
Sarge
|
6 juin 2005
|
Le chef des soldats
|
11 architectures ; 15 000 paquets
|
|
|
|
Etch
|
8 avril 2007
|
L'écran magique
|
11 architectures (+AMD64, -m68k) ; 18 000 paquets
|
|
|
|
|
Lenny
|
14 février 2009
|
La paire de jumelles
|
12 architectures (+armel) ; 25 000 paquets
|
|
|
|
Squeeze
|
6 février 2011
|
L'extraterrestre à 3
|
Version stable initiale, 29 000 paquets
|
|
|
|
|
6.0.1
|
|
19 mars 2011
|
|
Version stable mise à jour
|
|
6.0.2
|
|
25 juin 2011
|
|
Version stable mise à jour
|
|
6.0.3
|
|
8 octobre 2011
|
|
Version stable mise à jour
|
|
7.0
|
Wheezy
|
-
|
Le manchot au noeud
|
L'actuelle testing
|
|
|
|
Sid
|
En perpétuelle évolution
|
L'enfant qui casse les jouets ou « Still in
development »
|
Correspondra toujours à la version unstable
|
|
Tableau 3. Les différentes versions de debian.
3.4. Installation proprement dite
Pour installer debian 6.0, nous devons démarrer
à partir du cdrom de ce dernier, faire l'installation du système
de la langue d'installation, etc., puis suivre l'assistant qui nous guidera
tout au long l'installation. Procéder à une installation basique
de Debian Squeeze en prenant soin d'activer LVM ce qui sera très souple
pour la manipulation des VM. Il est de plus important de bien prendre une image
noyau générique et non celle proposant des modules
optimisés pour le système, sans cette précaution XEN ne
fonctionne pas correctement sur Debian Squeeze.
Sur le pc dédié à Debian, après
boot, sélectionner "Install (non graphique)" à
l'invitation.
Fig. 26. L'installation de Debian démarre.
Nom de machine : Ista-web (dans notre cas)
Fig. 27. Création du domaine
Fig. 28. Configuration réseau
Mettre une IP statique sur le debian.
Ouvrir avec nano le fichier /etc/network/interfaces ( addresse
ici de la machine = 192.168.1.5 )
nano /etc/network/interfaces Repérer la ligne :
iface eth0 inet dhcp
Et remplacer par : iface eth0 inet static address
192.168.1.5
netmask 255.255.255.0 network 192.168.1.0 gateway 192.168.1.1
Quitter nano par Ctrl + X Puis, taper :
reboot
Enlever le CD ROM du lecteur.
3.5. Installation de XEN
Après une installation basique de Squeeze, installer les
packages suivants :
aptitude install xen-linux-system-2.6 xen-qemu-dm xen-tools
· xen-linux-system-2.6, est le package xen 4 complet avec
l'hyperviseur.
· xen-qemu-dm, permet d'utiliser la virtualisation
matérielle, attention processeur compatible indispensable, notamment
pour virtualiser Windows. Ce package n'est pas indispensable pour virtualiser
uniquement Linux.
· xen-tools, est un ensemble de scripts PERL facilitant la
gestion des VM.
Pour tester si la virtualisation matérielle est
supportée par le processeur la commande suivante doit ramener quelque
chose :
egrep '^flags.*(vmx|svm)' /proc/cpuinfo
Il faut parfois modifier le BIOS du serveur pour activer les
fonctions VT-X (Intel) ou AMD-V (AMD).
La para-virtualisation est toutefois plus performante que la
virtualisation matérielle.
Il faut aussi modifier l'ordre de démarrage des scripts
grub ainsi mv /etc/grub.d/10_linux /etc/grub.d/51_linux
Sans cela XEN ne démarre pas correctement. Le message
d'erreur suivant apparait
WARNING! Can't find hypervisor information in sysfs!
Error: Unable to connect to xend: No such file or directory. Is
xend running?
Par défaut, XEN sauvegarde une image dump d'une VM
arrêtée brutalement et tente de la restaurer au démarrage.
Ceci peut saturer le répertoire /var très rapidement. Pour
invalider cette fonction éditer le fichier /etc/default/xendomains et
mettre les deux lignes suivantes avec ces valeurs :
XENDOMAINS_RESTORE=false XENDOMAINS_SAVE=""
Si une commande update-grub est lancée et qu'il existe
des VM, elles sont alors intégrées dans le menu de
démarrage. Pour éviter cela éditer /etc/default/grub et
ajouter la ligne suivante :
GRUB_DISABLE_OS_PROBER=true
Lancer alors la commande update-grub et rebooter le serveur. Les
commandes uname -r et xm info permettent de vérifier le fonctionnement
correct de XEN.
A. Gestion réseau
XEN autorise plusieurs modes de fonctionnement du réseau
des VM
· NAT
· Pont
· Routage
Le mode Pont ou bridge est le plus simple à configurer
et permet de
présenter les VM sur le réseau local. Pour
activer le bridge il faut
modifier le fichier /etc/xen/xend-config.sxp en
décommentant la ligne
(network-script network-bridge ) ainsi : (network-script
'network-bridge antispoof=yes')
La clause antispoof=yes est conseillée au cas où
l'IP de la VM serait, par erreur, déjà affectée.
Par défaut les logs de xen sont dans syslog, afin de les
mettre à part décommenter les lignes suivantes dans
/etc/xen/xend-config.sxp
(logfile /var/log/xen/xend.log) (loglevel WARN)
Il est aussi intéressant d'augmenter un peu la
mémoire pour le Dom0 ainsi :
(dom0-min-mem 256)
Dans un premier temps le fichier /etc/xen/xend-config.sxp peut
être très succinct.
(logfile /var/log/xen/xend.log)
(loglevel WARN)
(network-script 'network-bridge antispoof=yes') (vif-script
vif-bridge)
(dom0-min-mem 256)
(enable-dom0-ballooning yes)
(total_available_memory 0)
(dom0-cpus 0)
(vncpasswd '')
Redémarrer le démon xend et vérifier la
présence du bridge
# /etc/init.d/xend restart
# brctl show
bridge name bridge id STP enabled interfaces
eth0 8000.2c27d7337c00 no peth0
B. Création des VM
Il existe plusieurs façons de procéder,
ci-dessous la méthode utilisant les scripts xen-tools. Dans un premier
temps éditer le fichier /etc/xentools/xen-tools.conf pour activer les
options par défaut :
lvm = vg01
install-method = debootstrap
size = 10Gb
memory = 512Mb
swap = 1024Mb
fs = ext3 .
dist = `xt-guess-suite-and-mirror --suite`
image = full
gateway = 192.168.1.1
netmask = 255.255.255.0
broadcast = 192.168.1.255
nameserver = 192.168.1.1
passwd = 1
kernel = /boot/vmlinuz-`uname -r`
initrd = /boot/initrd.img-`uname -r`
mirror = `xt-guess-suite-and-mirror --mirror`
ext3_ options = noatime,nodiratime,errors=remount-ro
ext2_ options = noatime,nodiratime,errors=remount-ro
xfs_ options = defaults
reiserfs_ options = defaults
btrfs_options = defaults
pygrub =1
Lancer la création de la première VM ainsi
xen-create-image --hostname adi051.ista.ac.cd --ip
192.168.1.51
La création utilise la méthode debootstrap,
chargeant un système minimal. Ensuite lors de la phase "Running hooks"
différents scripts sont lancés, notamment la mise en place de
ssh. Ces scripts sont sous /usr/lib/xen-tools/debian.d.
On trouve parfois la clause -role=udev qui est
nécessaire si la VM ne boote pas correctement, à titre personnel
avec l'option pygrub=1 je n'ai pas eu besoin de cette option.
Si la VM existe déjà, il faut utiliser en plus
-force afin de la recréer. L'image sera créée sous forme
de 2 volumes logiques
· /dev/vg01/adi051.ista.ac.cd -disk, taille 10Go
· /dev/vg01/adi051.ista.ac.cd -swap, taille de 1Go
Par défaut sera installée la même version
en VM qu'en Dom0. La RAM est de 512Mo et en configuration IP fixe. Il est
possible de surcharger les options par défaut de ce fichier par la ligne
de commande. Un appel xencreate-image -h donne les différentes
options.
Le mot de passe du root sera demandé interactivement.
Lancer la VM ainsi :
xm create /etc/xen/adi051.ista.ac.cd.
Il est possible d'y accéder via ssh comme un serveur
ordinaire ou en mode console ainsi:
xm console adi051.ista.ac.cd
La sortie du mode console se fait avec la combinaison de touches
"Ctrl" et "c".
La visualisation des VM se fait via la commande xm list.
L'arrêt de la VM utilise la commande xm shutdown Exemple de sortie
écran lors d'une création
root@adi100:~# xen-create-image --hostname adi051.ista.ac.cd --ip
192.168.1.51
General Information
Hostname : adi051. ista.ac.cd
Distribution : squeeze
Mirror :
http://ftp.fr.debian.org/debian/
Partitions : swap 1024Mb (swap)
/ 10Gb (ext3)
Image type : full
Memory size : 512Mb
Kernel path : /boot/vmlinuz-2.6.32-5-xen-amd64
Initrd path : /boot/initrd.img-2.6.32-5-xen-amd64
Networking
IP Address Netmask Broadcast Gateway Nameserver
|
Information
1 : 192.168.1.51
: 255.255.255.0
: 192.168.1.255
: 192.168.1.1
: 192.168.1.1
|
[MAC:
|
00:16:3E:41:63:80]
|
Creating swap on /dev/vg01/adi051.ista.ac.cd-swap Done
Creating ext3 filesystem on /dev/vg01/adi051.ista.ac.cd-disk
Done
Installation method: debootstrap
Done
Running hooks
Done
No role scripts were specified. Skipping
Creating Xen configuration file
Done
Setting up root password
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully All done
Logfile produced at:
/var/log/xen-tools/adi051.ista.ac.cd.log
Installation Summary
Hostname :
adi051. ista.ac.cd.fr
Distribution : squeeze
IP-Address(es) : 192.168.1.51
RSA Fingerprint :
f3:5b:fa:2d:aa:08:42:6e:f1:8e:11:e5:e5:69:17:d6 Root Password :
N/A
root@adi100:~#
Pour démarrer automatiquement une VM lors du boot
serveur, créer le répertoire /etc/xen/auto et placer un lien
symbolique vers le fichier de configuration de la VM.
mkdir /etc/xen/auto
ln -s /etc/xen/adi051. ista.ac.cd.cfg /etc/xen/auto/adi051.
ista.ac.cd.cfg ...A répéter pour chaque VM
Voici un exemple sur la machine de test avec 4Go de RAM et la
création de 5 VM identiques.
La commande brctl show montre bien les 5 interfaces réseau
bridgées vers eth0.
La commande iptables -L sur la chaine FORWARD permet de voir le
transfert des paquets IP vers la bonne interface.
root@adi100:~# xm Name
Domain-0 adi051.ista.ac.cd adi052.ista.ac.cd adi053.ista.ac.cd
adi054.ista.ac.cd
Présenté par : Bonhomie BOPE
|
list
ID Mem VCPUs
0 1499
1 512
2 512
3 512
4 512
bonhomie.bope@ista.ac.cd
|
2 1 1 1 1
243 851
|
State
r -b---- -b---- -b---- -b
796 942, 243
|
898
|
Time(s)
21.0
1.4 1.2 1.4 1.4
297 100
|
adi055. ista.ac.cd 5 512 1 -b---- 1.2
root@adi100:~# brctl show
bridge name bridge id STP enabled interfaces
eth0 8000.2c27d7337c00 no peth0 vif1.0 vif2.0 vif3.0 vif4.0
vif5.0
root@adi100:~# iptables -L
Chain FORWARD (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
PHYSDEV
match --physdev-out vif5.0
ACCEPT udp -- anywhere anywhere PHYSDEV match --physdev-in
vif5.0
udp spt:bootpc dpt:bootps
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
PHYSDEV
match --physdev-out vif5.0
ACCEPT all --
adi055.concarnux.fr anywhere
PHYSDEV match --physdev-in vif5.0
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
PHYSDEV
match --physdev-out vif4.0
ACCEPT udp -- anywhere anywhere PHYSDEV match --physdev-in
vif4.0
udp spt:bootpc dpt:bootps
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
PHYSDEV
match --physdev-out vif4.0
ACCEPT all --
adi054.concarnux.fr anywhere
PHYSDEV match --physdev-in vif4.0
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
PHYSDEV
match --physdev-out vif3.0
ACCEPT udp -- anywhere anywhere PHYSDEV match --physdev-in
vif3.0
udp spt:bootpc dpt:bootps
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
PHYSDEV
match --physdev-out vif3.0
ACCEPT all --
adi053.concarnux.fr anywhere
PHYSDEV match --physdev-in vif3.0
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
PHYSDEV
match --physdev-out vif2.0
ACCEPT udp -- anywhere anywhere PHYSDEV match --physdev-in
vif2.0
udp spt:bootpc dpt:bootps
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
PHYSDEV
match --physdev-out vif2.0
ACCEPT all --
adi052.concarnux.fr anywhere
PHYSDEV match --physdev-in vif2.0
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
PHYSDEV
match --physdev-out vif1.0
ACCEPT udp -- anywhere anywhere PHYSDEV match --physdev-in
vif1.0
udp spt:bootpc dpt:bootps
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
PHYSDEV
match --physdev-out vif1.0
ACCEPT all -- adi051.ista.ac.cd anywhere PHYSDEV match
--physdev-in vif1.0
ACCEPT all -- anywhere anywhere PHYSDEV match --physdev-in
peth0
C. Augmenter le disque de la VM
Utiliser LVM pour la gestion des VM permet d'augmenter
très facilement l'espace disque, il suffit de redimensionner le volume
logique. L'exemple suivant montre l'extension de +10Go de la VM
adi051.ista.ac.cd.
xm shutdown adi051.ista.ac.cd
lvextend /dev/vg01/adi051.ista.ac.cd -disk +L 10G e2fsck -f
/dev/vg01/adi051.ista.ac.cd -disk resize2fs /dev/vg01/adi051.ista.ac.cd
-disk
xm create /etc/xen/adi051.ista.ac.cd
D. Dupliquer des VM
Une fois le principe assimilé, il est simple de
dupliquer des VM. Ici encore il existe de nombreuses méthodes, la plus
simple est de créer une première VM en appliquant certaines
personnalisations communes et de créer une image tar.
A titre d'exemple il faut installer les packages suivants :
aptitude install vim ntpdate
Puis éditer aussi le .bashrc en root :
export LS_OPTIONS='--color=auto' eval "`dircolors`"
alias ls='ls $LS_OPTIONS'
alias ll='ls $LS_OPTIONS -hl' alias l='ls $LS_OPTIONS -lA' alias
df='df -h'
E. Création d'une image tar de la VM
Stopper la VM et monter son volume logique sur un point de montage.
xm shutdown adi051.ista.ac.cd
mkdir /mnt/img
mount /dev/vg01/adi051.ista.ac.cd -disk /mnt/img cd /mnt/img
tar -cvpsf /home/vm_modele.tar *
cd /
umount /mnt/img
Editer ensuite le fichier /etc/xen-tools/xen-tools.conf et
modifier la ligne install-method ainsi :
#install-method = debootstrap
install-method = tar
install-source = /home/vm_modele.tar
Bien rajouter la ligne install-source.
La commande de création des VM est identiquée
à celle utilisée précédemment. Les scripts hooks du
package xen-tools faisant les corrections type IP, hostname...
F. Cluster avec des VM
L'objectif ici est de simuler un cluster avec des VM, il est
ainsi facile de tester le cluster et ensuite de la passer en production sur des
serveurs réels. Debian propose 95% des fonctions disponibles sous REDHAT
en matière de gestion des clusters. Il ne manque que quelques
utilitaires, type ricci et luci ou encore pirhana qui simplifient simplement la
mise en place de la configuration.
Pour information la gestion d'un cluster se fait dans un unique
fichier au format XML et nommé /etc/cluster/cluster.conf.
Important
· Les packages redhat-cluster-suite permettent de
gérer des clusters jusqu'a 16 noeuds.
· Seul le protocole IPV4 est actuellement utilisable.
A partir de la VM exemple rajouter les packages suivants :
aptitude install redhat-cluster-suite ipvsadm open-iscsi
· redhat-cluster-suite, contient l'ensemble des fonction de
cluster ( cman, rgmanage, GFS... )
· ipvsadm, permet de gérer la répartition de
charge.
· open-iscsi permet d'utiliser des disques via le protocole
iscsi.
une fois cette opération faite, stopper la VM et
créer une image tar pour la duplication.
xm shutdown adi051.ista.ac.cd
mkdir /mnt/img
mount /dev/vg01/adi051.ista.ac.cd -disk /mnt/img tar -cvpsf
/home/vm_cluster_modele.tar *
cd /
umount /mnt/img
Le cluster exemple comportera 3 noeuds, créer donc les
deux VM supplementaires.
xen-create-image --hostname adi052.ista.ac.cd --ip 192.168.1.52
--install-source
/home/vm_cluster_modele.tar
xen-create-image --hostname adi053.ista.ac.cd --ip 192.168.1.53
--install-source
/home/vm_cluster_modele.tar
Lancer ensuite les 3 VM
root@adi100:~# xm create /etc/xen/adi051. ista.ac.cd.cfg
root@adi100:~# xm create /etc/xen/adi052. ista.ac.cd.cfg
root@adi100:~# xm create /etc/xen/adi053. ista.ac.cd.cfg
root@adi100:~# xm list
Name
Domain-0 adi051.ista.ac.cd adi052.ista.ac.cd adi053.ista.ac.cd
root@adi100:~#
ID
Mem VCPUs
|
State
|
Time(s)
|
0
|
2514
|
2
|
r
|
144.6
|
9
|
512
|
1
|
-b
|
1.8
|
10
|
512
|
1
|
-b
|
1.9
|
11
|
512
|
1
|
-b
|
1.7
|
|
Sur chaque VM mettre en place la résolution de nom via
/etc/hosts
192.168.1.51 adi051.ista.ac.cd adi051
192.168.1.52 adi052.ista.ac.cd adi052
192.168.1.53 adi053.ista.ac.cd adi053
Fichier /etc/cluster/cluster.conf
Afin de vérifier le fonctionnement correct du cluster,
nous allons mettre en place une configuration simple des 3 noeuds. Attention ce
fichier n'est pas complet et ne pose que les bases du cluster. Il doit
être copié à l'identique sur les 3 noeuds.
<?xml version="1.0" ?>
<cluster name="alpha" config_version="1">
<cman>
<multicast addr="224.0.0.1" />
</cman>
<clusternodes>
<clusternode name ="adi051.ista.ac.cd " votes="1"
nodeid="1">
<fence>
<method name="single">
<device name="manual" />
</method>
</fence>
</clusternode>
<clusternode name ="adi052.ista.ac.cd " votes="1"
nodeid="2">
<fence>
<method name="single">
<device name="manual" />
</method> </fence>
</clusternode>
<clusternode name ="adi053.ista.ac.cd " votes="1"
nodeid="3">
<fence>
<method name="single">
<device name="manual" />
</method> </fence>
</clusternode> </clusternodes>
<fencedevices>
<fencedevice name="manual" agent="fence manual" />
_
</fencedevices>
<fence_daemon clean_start="0" post_fail_delay="0"
post_join_delay="3" />
<rm>
<failoverdomains>
<failoverdomain name="dom01" restricted="1" ordered="1"
nofailback="0">
<failoverdomainnode name="adi051.ista.ac.cd " priority="10"
/>
<failoverdomainnode name="adi052.ista.ac.cd " priority="20"
/>
<failoverdomainnode name="adi053.ista.ac.cd " priority="30"
/>
</failoverdomain>
</failoverdomains>
</rm>
</cluster>
· Le cluster se nomme alpha et comprend 3 noeuds.
· L'isolation des noeuds ( fence ) est faite
manuellment.
· Un seul failoverdomain est défini ( dom01 ) avec
la priorité de chaque noeud.
Sur chaque noeud lancer les commandes suivantes :
/etc/init.d/cman start /etc/init.d/rgmanager start
Sur n'importe quel noeud du cluster lancer la commande clustat
pour
vérifier le démarrage correct du cluster.
clustat
Cluster Status for alpha @ Wed Aug 24 12:21:27 2011 Member
Status: Quorate
Member Name ID Status
adi051.ista.ac.cd 1 Online, Local
adi52. ista.ac.cd 2 Online
adi53. ista.ac.cd 3 Online
Mise en place d'un serveur web
(www.ista.ac.cd)
Pour l'exemple nous allons utiliser le serveur Web apache, qui
sera donc démarré en priorité sur adi051.ista.ac.cd et en
cas de défaillance redémarrer sur adi052.ista.ac.cd et enfin sur
adi053. ista.ac.cd.
Installer apache sur chaque noeud et désactiver son
démarrage au boot.
aptitude install apache2 /etc/init.d/apache2 stop update-rc.d
apache2 remove
Note : il peut y avoir sur les VM des messages d'erreurs
debconf qui peuvent être ignorés, sans doute un mauvais
paramétrage de la console...
Modifier sur chaque noeud le fichier /etc/cluster/cluser.conf en
prenant soin d'incrémenter le numéro de version
<?xml version="1.0" ?>
<cluster name="alpha" config_version="2">
<cman>
<multicast addr="224.0.0.1" />
</cman>
<clusternodes>
<clusternode name ="adi051.ista.ac.cd" votes="1"
nodeid="1">
<fence>
<method name="single">
<device name="manual" />
</method>
</fence>
</clusternode>
<clusternode name ="adi052.ista.ac.cd" votes="1"
nodeid="2">
<fence>
<method name="single">
<device name="manual" />
</method>
</fence>
</clusternode>
<clusternode name ="adi053.ista.ac.cd" votes="1"
nodeid="3">
<fence>
<method name="single">
<device name="manual" />
</method>
</fence>
</clusternode>
</clusternodes>
<fencedevices>
<fencedevice name="manual" agent="fence_manual" />
</fencedevices>
<fence_daemon clean_start="0" post_fail_delay="0"
post_join_delay="3" />
<rm>
<failoverdomains>
<failoverdomain name="dom01" restricted="1" ordered="1"
nofailback="0">
<failoverdomainnode name="adi051.ista.ac.cd " priority="10"
/>
<failoverdomainnode name="adi052.ista.ac.cd " priority="20"
/>
<failoverdomainnode name="adi053.ista.ac.cd " priority="30"
/>
</failoverdomain>
</failoverdomains>
<service name="web" autostart="1" domain="dom01"
recovery="relocate" >
<script name="start_ web" file="/etc/init.d/apache2" />
</service>
</rm>
</cluster>
Relancer le cluster, sur chaque noeud
/etc/init.d/rgmanager stop /etc/init.d/cman restart
/etc/init.d/rgmanager start
Puis lancer la commande clustat pour vérifier le
fonctionnement correct
root@adi051:-# Cluster Status Member Status:
|
clustat
for alpha @ Quorate
|
Wed Aug
|
24 10:45:28 2011
|
Member Name
|
ID
|
Status
|
|
adi051.ista.ac.cd adi052.ista.ac.cd adi053.ista.ac.cd
|
1
2
3
|
Online, Online, Online,
|
Local, rgmanager
rgmanager rgmanager
|
Service Name Owner (Last) State
Service : web adi051.ista.ac.cd started
root@adi051:-#
Pour tester la bascule stopper la VM adi051.ista.ac.cd et
relancer la commande clustat sur adi052.ista.ac.cd pour vérifier que le
service apache a bien migré.
root@adi052:-# clustat
Cluster Status for alpha @ Wed Aug 24 10:54:05 2011 Member
Status: Quorate
Member Name ID Status
adi051.ista.ac.cd 1 Offline
adi052.ista.ac.cd 2 Online, Local, rgmanager
adi053.ista.ac.cd 3 Online, rgmanager
Service Name Owner (Last) State
Service : web adi052.ista.ac.cd started
root@adi052:-#
Si adi051.ista.ac.cd revient dans le cluster, le service est
stoppé sur adi052.ista.ac .cd et redémarré sur
adi051.ista.ac.cd
Il est possible de migrer manuellement le service ainsi :
root@adi052:-# clusvcadm -r web -m adi053.ista.ac.cd Trying to
relocate service:web to adi053. ista.ac.cd...Success service:web is now running
on adi053. ista.ac.cd
root@adi052:-# clustat
luster Status for alpha @ Wed Aug 24 10:57:10 2011 Member Status:
Quorate
Member Name ID Status
adi51. ista.ac.cd 1 Online, rgmanager
adi52. ista.ac.cd 2 Online, Local, rgmanager
adi53. ista.ac.cd 3 Online, rgmanager
Service Name Owner (Last) State
service:web adi053. ista.ac.cd started
root@adi052:~#
V.4. DEPLOIEMENT DES SERVERS VIRTUELS GNU/LINUX
4.1. Installation de ns.ista.ac.cd
Le server ns ou Name server et comme FQDN22
ns.ista.ac.cd est le server DHCP autoritaire et DNS primaire du domaine
ista.ac.cd. Voici la commande de création du système
ns.ista.ac.cd :
root@myserver:/# xen-create-image --hostname=ns.ista.ac.cd
--size=8Gb -s wap=256Mb --ide --ip=192.168.0.5 --netmask=255.255.255.0 --
gateway=192.168.0.1 --force --dir=/home/xen --memory=128Mb -- arch=i386 --
Kernel=boot/vmlinuz-2.6.24-19-xen
--initrd=/boot/initrd.img-2.6.24- 19-xen --
install-method=debootstrap --dist=hardy -- mirror=
http://archive.ubuntu.com/Ubuntu/
--passwd
General information
Hostname : ns.ista.ac.cd
Distribution : squeeze
Partitions : swap 256Mb (swap)
/ 8 GB (ext3)
Image type : sparse
22 Un fully qualified domain name est un nom de
domaine non ambigu pour spécifier la position absolue d'un noeud dans un
arbe DNS. Pour distinguer un FQDN d'un DNS, on ajoute un préfixe avant
celui-ci.
Memory size : 128Mb
Kernel path : /boot/vmlinuz-2.6.24-19-xen
Intrd path : /boot/initrd.img-2.6.24-19-xen
Networking
information
IP Adress 1 : 192.168.1.5 (MAC: 00:16:3E:1C:B2:1C)
Netmask : 255.255.255.0
Broadcast : 192.168.1.255
: 192.168.1.1
Gateway
Creating partition image:
/home/xen/domains/ns.ista.ac.cd/swap.img done
Creating swap on /home/xen/domains/ ns.ista.ac.cd /swap.img
done
Creating partition image: /home/xen/domains/ ns.ista.ac.cd
/disk.img Done
Creating ext3 filesystem on /home/xen/domains/ ns.ista.ac.cd
/disk.img
done
Installation method: debootstrap
done
Running hooks
done
No role scripts were specified. Skipping
Creating xen configuration fille
done
Setting up root password
Enter new UNIX password:
Retype new UNIX password:
Passwd: password updated successfully
All done
Logfile produced at :
/var/log/xen-tools/ ns.ista.ac.cd.log
a. Fichier de configuration de ns:
/etc/xen/ns.ista.ac.cd.cfg
L'exécution de la commande de création de
ns.ista.ac.cd crée le fichier de configuration ns.ista.ac.cd.cfg du
server dans /etc/xen/, on peut vérifier par la commande :
root@mysrever: /# cat /etc/xen/ns.ista.ac.cd.cfg
#configuration file for the xen instance ns.esis.ac.cd,
created
#by xen-tools 3.8 on sat jul 19 17:29:25 2008.
#
#kernel +memory size
Kernel = `/boot/vmlinuz-2.6.24-19-xen'
Ramdisk = `/boot/initrd.img-2.6.24-19-xen'
Memory = `128'
Vcpus = `2'
#
#disk device (s).
Root = `/dev/hda2 ro `
Disk = [
`Tap: aio: /home/xen/domains/ ns.ista.ac.cd /swap.img,
hadal, w' `
`Tap: aio: /home/xen/domains/ ns.ista.ac.cd /disk.img, hda2, w'
`
] # # Hostname
#
#name = `ns.ista.ac.cd'
# #networking
#
Vif = [`ip=192.168.5, mac=00:16:3E:1C:B2:1C']
# #behavior
On_poweroff = `destroy'
On_reboot = `restart'
On_crash= `retart'
Extra= `2 console=xvc0'
b. Démarrage et accès à
ns.esis.ac.cd
Démarrage du server ns.ista.ac.cd :
root@myserver: /# XM create /etc/xen/ ns.ista.ac.cd.cfg
Accès à la console ou au Shell du serveur
ns.ista.ac.cd : root@myserver:/# xmcreate/etc./xen/ ns.ista.ac.cd.cfg Using
config file «/etc/xen/ ns.ista.ac.cd.cfg ».
Started domain ns.ista.ac.cd
c. Installation et configuration du service
DNS
Installation du service DNS avec toutes les dépendances :
root@ns:/# aptitude install bind9
Configuration du service DNS :
root@ns:/# vi/etc/bind/named.conf
[. . .]
Zone « ista.ac.cd »{
Type master;
Notify yes;
Allow-transfer {192.168.1.6;}; File
«/etc/bind/db.ista.ac.cd»;
?;
Zone «0.168.192.in-addr.arp»{
Type master;
Notify yes;
Allow-transfer {192.168.1.6;};
File «/etc/bind/db.192.168.1»;
?;
[. . .]
Configuration de la zone de recherché directe du serveur
DNS: root@ns:/# vi /etc/bind/db.ista.ac.cd.ista
STTL 1D
@ IN SOA ns.ista.ac.cd. root. ista.ac.cd. (
2008042112; serial
3H; refresh
15M; retry
1W; expirity
1D; minimum
)
@ IN NS ns. ista.ac.cd.
@ IN NS ista-manager. ista.ac.cd.
@ IN MX 10 manager. ista.ac.cd.
ns IN A 192.168.1.5
ista-manager IN A 192.168.1.6
Web IN A 192.168.1.3
Manager IN A 192.168.1.10
www IN CNAME web
mail IN CNAME manager
Configuration de la zone de recherche indirect du serveur DNS:
root@ns:/# vi /etc/bind/dB.192.168.0.ista
STTL 1D
@ IN SOA ns.ista.ac.cd. root. ista.ac.cd. (
2008042112; serial
3H; refresh
15M; retry
1W; expirity
1D; minimum
)
@ IN NS ns. ista.ac.cd.
@ IN NS ista-manager. ista.ac.cd.
@ IN MX 10 manager. ista.ac.cd.
5 IN PTR ns.ista.ac.cd
6 IN PTR ista-manager. ista.ac.cd
10 IN PTR manager. ista.ac.cd.
3 IN PTR web. ista.ac.cd
d. Installation et configuration du service
HDCP
Installation du paquet DHCP3-server avec toutes les
dépendances : root@ns:/# aptitude Install dhcp3-server
Configuration du server DHCP :
root@ns:/# vi /etc/dhcpd.conf
[. . . ]
Default-lease-time 600;
Max-lease-time 7200;
[. . .]
Authoritative;
[. . .]
Subnet 192.168.1.0 netmask 255.255.255.0{
Range192.168.1.11 192.168.1.250; Option routers 192.168.1.1;
Option domain-name-servers192.168.1.5,
192.168.1.6,
192.168.1.10;
Option domain-name «ista.ac.cd»;
Option broadcast-address 192.168.1.255; Default-lease-time
600;
Max-lease-time 7200;
}
Après configuration du serveur, on définit le port
d'écoute par défaut du service DHCP:
root@ns:/# vi /etc/default/interfaces
a. Installation du serveur web :
web.ista.ac.cd
Le serveur web, web.ista.ac.cd est le serveur présentant
le site web de
l'Institut Supérieur de Techniques Appliquées
(ISTA en sigle) et facilite
l'accès aux services sous format web par le protocole
http ou https. Voicila commande de création du système
web.ista.ac.cd :
root@myserver:/# xen-create-image - hostname=web.ista.ac.cd -
size=80Gb -swap=256Mb -idea -ip=192.168.1.3 -
netmask=255.255.255.0
-gateway=192.168.1.1 -force -dir=/home/xen -memory=196Mb -arch=i386
-kernel=/boot/vmlinuz-2.6.24-19-xen -
initrd=/boot/initrd.img-2.6.24-19-xen
-install-
method=debootstrap -dist=hardy -
mirror=
http://archive.ubuntu.com/ubuntu/
--passwd
General information
Hostname : web.ista.ac.cd
Distribution : squeeze
Partitions : swap 256Mb (swap)
/ 8 GB (ext3)
Image type : sparse
Memory size : 196Mb
Kernel path : /boot/vmlinuz-2.6.24-19-xen
Intrd path : /boot/initrd.img-2.6.24-19-xen
Networking information
IP Adress 1 : 192.168.1.3 (MAC: 00:16:3E:C0:7A:0B)
Netmask : 255.255.255.0
Broadcast : 192.168.1.255
Gateway : 192.168.1.1
Creating partition image:
/home/xen/domains/web.ista.ac.cd/swap.img done
Creating swap on /home/xen/domains/ web.ista.ac.cd /swap.img
done
Creating partition image: /home/xen/domains/ ns.ista.ac.cd
/disk.img done
Creating ext3 filesystem on /home/xen/domains/ ns.ista.ac.cd
/disk.img
done
Installation method: debootstrap
done
Running hooks
done
No role scripts were specified. Skipping
Creating xen configuration fille
done
Setting up root password
Enter new UNIX password:
Retype new UNIX password:
Passwd: password updated successfully
All done
Logfile produced at :
/var/log/xen-tools/ ns.ista.ac.cd.log
b. Démarrage et accès à
web.ista.ac.cd Démarrage du serveur web.ista.ac.cd
root@adia51:/# xm create /etc/xen/web.ista.ac.cd.cfg using config
file `'/etc/xen/web.ista.ac.cd.cfg'' started domain web.ista.ac.cd
Accès à la console :
root@adia51:/# xm console web.ista.ac.cd
debian squeeze web.ista.ac.cd xvc0
web.ista.ac.cd login: root
password: **********
linux web.ista.ac.cd 2.6.24-19-xen #1 SMP sat jul 12 04:55:08 UTC
2011 i686
root@web:/#
Verification du serveur Apache à partir du naviateur web
à l'adresse
http://www.ista.ac.cd:
Fig. 29. Site web de l'i.s.t.a
V.5. DEPLOIEMENT DES SERVEURS WINDOWS
II.6.1. Installation du contrôleur primaire
d'ista.ac.cd
a. Création de l'image disque :
root@myserver : /# dd if=/dev/zero
of=/home/xen/images/win2k3.disk bs=1024k count=1000
b. Configuration du fichier de démarrage de
Windows : root@myserver:/# vi /etc/xen/ista.ac.cd
# configuration file for the xen instance ista.ac.cd,
#
#Kernel + memory size
Kernel=»/usr/lib/xen/boot/hvmloader»
Builder=»hvm»
Memory=512
Device_model=»/usr/lib/xen/bin/qemu-dm '' #
#Disk device
#
Disk=[`tap :aio:/home/xen/image/win2k3.disk,ioemu:had,w','phy:
/dev/loop0,hdc:cdrom,r']
#disk=[`phy:/home/xen/image/win2k3.disk']
# #hostname
Name=»ista.ac.cd»
# #networking
Usbdevice=»tablet»
# #Behaviour
#boot on floppy (a), hard disk (c) or CD-ROM (d)
Boot=»dc»
#enable VNC library for graphics, default = 1
Vnc=1
#enable spawning vncviewer (only valid when vnc=1), default =1
Vncviewer=0
#nographic=1
#stdvga=1
Serial='pty'
Ne2000=0
#enable SDL library for graphics, default=0
Sdl=1
c. Démarrage de l'image cdrom et du
système
root@myserver:/# losetup -f /ome/xen/image/win2k3.iso
losetup -a permet de voir la partition sur laquelle l'image a
démarrée : phy:/dev/loop0
root@myserver:/# xm creat /etc/xen/ista.ac.cd
using config file «/etc/xen/ista.ac.cd».
Started domain ista.ac.cd
d. Installation de Windows 2003 serveur
- Démarrage de l'assistant bios HVM (Hardware Virtual
Machine) et choix du système Windows 2003 serveur Edition entreprise
:
Fig. 30.
Les figures 30 à 54 nous montre les différentes
étapes d'installation d'un serveur Windows 2003 server Edition
entreprise.
Fig. 31.
Fig. 32.
Fig. 33.
Fig. 34.
Fig. 35.
Fig. 36.
Fig. 37.
Fig. 38.
Fig. 39.
Fig. 40.
Fig. 41.
Fig. 42.
Fig. 43.
Fig. 44.
Fig. 45.
Fig. 46.
Fig. 47.
Fig. 48.
Fig. 49.
Fig. 50.
Fig. 51.
Fig. 52.
Fig. 53.
Fig. 54.
II.6. Administration de l'infrastructure
virtuelle II.6.1. les commandes d'administration
Les commandes d'administration, permettent à
l'administrateur, de prendre la main ou de gérer les machines
invitées qui tourne au-dessus de l'hyperviseur. Parmi les commandes
d'administration de l'hyperviseur Xen, on trouve :
- Pour lister les machines virtuelles qui sont
démarrées : Xm list
Name
|
ID
|
Mem
|
VCPUs
|
State
|
Time(s)
|
Domain-0
|
0
|
1499
|
2
|
r
|
21.0
|
Ista.ac.cd
|
1
|
512
|
1
|
-b
|
1.4
|
Manager.ista.ac.cd
|
2
|
512
|
1
|
-b
|
1.2
|
Ns.ista.ac.cd
|
3
|
512
|
1
|
-b
|
1.4
|
Web.ac.cd
|
4
|
512
|
1
|
-b
|
1.4
|
Mirroir.ista.ac.cd
|
5
|
512
|
1
|
-b
|
1.2
|
- Pour monitorer l'ensemble de machines invitée et du
système hôte : xm top
- Pour démarrer une machine virtuelle
xm
create /etc/xen/ista.ac.cd.cfg
- Pour démarrer une machine virtuelle avec le mode console
: xm create /etc/xen/ista.ac.cd.cfg -c
Il n'y a pas de start et stop pour une machine virtuelle, les
commandes sont create pour start et shutdown pour stop
- Pour arrêter une machine virtuelle xm shutdown
ista.ac.cd
- Pour arrêter sans délais une machine virtuelle
(arrêt immédiat) xm destroy ista.ac.cd
- Pour réduire ou ré-augmenter la taille
mémoire lorsque la machine virtuelle est arrêtée.
xm mem-set 3 96, xm mem-set 3 128
La valeur est en Mo ou Mégaoctet, 3 indique le
numéro d'identification de la machine virtuelle. Notons qu'il est
possible de réduire mais pas d'augmenter la RAM plus que la valeur de la
configuration.
- Pour réduire ou ré-augmenter le nombre de vCPU
lorsque la machine virtuelle est démarrée.
xm vcpu-set 3 2
xm vcpu-set 3 4
Il est possible de réduire mais pas d'augmenter le nombre
de vCPU plus que la valeur de la configuration.
- Liste des consoles disponible : xm consoles
- Pour se connecter à une console d'une machine virtuelle
: xm console ns.ista.ac.cd
- Mettre en pause d'une machine virtuelle xm pause
ns.ista.ac.cd
- Retirer la pause d'une machine virtuelle
xm
unpause ns.ista.ac.cd
- Sauvegarder dans un fichier le disque d'une machine virtuelle
xm save ns.ista.ac.cd
- Restaurer une machine virtuelle à partir d'un fichier :
xm restore ns.ista.ac.cd
- Récupérer les informations concernant le domaine
0 : xm info
- Avoir de l'aide en ligne sur les commandes xm : xm
help
V.7. ACCEDER AUX MACHINES VIRTUELLES
Les machines virtuelles peuvent être
gérées de deux manières :
ü A partir de la console du système hôte ;
ü A partir de l'interface ou de la console de chaque
machine indépendamment, c'est-a dire, en ouvrant des sessions SSH
grâce à des utilitaire comme « putty », ou « SSH
Secure Shell client » pour les serveurs linux, à partir du
réseau et des accès par bureau à distance grâce au
protocole RDP ou avec VNC pour les serveurs Windows.
Conclusion partielle
Dans ce chapitre, nous venons de mettre en oeuvre
l'infrastructure réseau sur une plateforme virtuelle, grace à la
technologie de l'hyperviseur sous xen.
Cette infrastructure prend en charge les différents
systèmes d'exploitation, c'est-à dire, pour ce cas précis,
Windows 2003 serveur et linux debian 6.0 et les performances de chaque machine
virtuelle sont optimisées, presqu'à l'état natif.
Nous avons installées, deux serveurs sous linux debian 6.0
qui font :
- DNS et DHCP ;
- Web.
Ainsi que deux serveurs sous Windows 2003 serveur, qui font :
- Le contrôleur de domaine primaire d'ista.ac.cd, avec le
service DNS et le service d'accès distant ou VPN ;
- Le contrôleur de domaine secondaire pour ista.ac.cd,
avec le service de messagerie et le DNS en zone de stub23.
Les grandes performances de la machine physique sont alors
optimisées avec cette technique de Virtualisation.
23 Le serveur DNS en zone de stub ne contient que
les enregistrements de ressources de type NS et SOA d'une zone DNS. La
zone stub est automatiquement mise A jour lorsque les paramqtres d'un
enregistrement NS ou SOA sont modifiés.
VI. CONCLUSION GENERALE
La virtualisation est un domaine en pleine croissance, qui
évolue très rapidement. Les entreprises peuvent s'en servir pour
différents usages, aux besoins de leur fin. Les différentes
solutions de virtualisation existantes utilisent des technologies
variées, en fonction des buts du projet. Certaines technologies
permettent de faire cohabiter plusieurs systèmes d'exploitation,
d'autres cloisonnent un unique système en plusieurs compartiments
indépendants. Certaines s'appuient sur les capacités du
matériel pour améliorer les performances alors que d'autres
nécessitent un système d'exploitation modifié pour
cohabiter avec la solution de virtualisation. Ces technologies ont toutes leurs
avantages et inconvénients, et il est important de faire le bon choix en
fonction de l'utilisation que l'entreprise en fera.
En guise de conclusion, nous pouvons affirmer que la mise en
place des serveurs virtuels est possible au sein de l'architecture, tant
actuelle que future, de l'intranet de l'ISTA. Toutefois, bien que possible la
mise en place des serveurs virtuels, dans l'architecture actuelle de
l'intranet, nous avons rencontrés quelques difficultés au niveau
des équipements ou serveurs à utiliser qui n'était pas
disponible à l'ISTA.
L'architecture future de l'intranet ISTA prévoit sans
doute l'accroissement du nombre des serveurs virtuels, vue l'ampleur et la
renommée actuelle de l'Institut Supérieur de Techniques
Appliquées, pour accueillir des nouvelles applications. Nous laissons
donc aux administrateurs de l'intranet de l'ISTA, la charge de gérer,
d'administrer et d'accroitre les serveurs virtuels de leur intranet grace
à l'hyperviseur Xen sous GNU/Linux debian 6.0.
VII. REFERENCE BIBLIOGRAPHIE
I. OUVRAGES
1. Mitch Tulloch with the Microsoft Windows server team,
Introducing WINDOWS SERVER 2008, Washington, press, 2007, pages 17-38.
II. BROCHURES ET AUTRES PUBLICATIONS
2. Lucas bonnet, Etat de l'art des solutions libres de
Virtualisation pour une petite entreprise, Bearstech, e-book, 2007, 98
pages.
3. Equipe Administration système smille,
Virtualisation, smille, livre blanc, 2007, 41 pages.
4. Jean-Philippe Gaulier, Mise en place d'une solution de
ressources réparties et sécurisées composées de
logiciels libres au sein d'une info-structure, conservatoire National des
Arts et Métiers, e-book, novembre 2007, pages 9-17.
5. XenSource, How to install Windows on Xen 3.0,
XenSource, e-book, 2008, 6 pages.
6. Daniel vieillard, Virtualisation sous Linux une
évolution maitrisée, Red Hat, e-book, 2008, 28 pages.
7. Daniel Vieillard, Virtualisation avec Xen, Red Hat,
e-book, 2008, 22 pages.
8. Hugues Tubert, La Virtualisation, Université
Claude Bernard Lyon 1, e-book, février 2008, 21 pages.
9. Mickael CARLIER, Virtualisation : Etude dans le cadre
d'une salle d'enseignement, Fil, e-book, décembre 2007,20 pages.
10. XenSource, Xen Architecture Overciew, XenSource,
e-book, février 2008, 9 pages.
III. COURS INEDITS
11. AKASANDA, Méthode de recherche scientifique,
Lubumbashi, ESIS, année académique 2005-2006.
12. Kristel MANDA, cours d'introduction à
LINUX,
Lubumbashi, ESIS, année académique 2005-2006.
IV. DICTIONNAIRE - ENCYCLOPEDIE
13. Collectif, Dictionnaire Hachette encyclopédie
illustré, paris, Ed. Hachette livre, 1998, pages 928.
V. WEBOGRAPHIE
(
http://jargonf.org/wik/virtualisation
(
http://www1.euro.dell.com/content/topics/global.aspx/sitele
ts/solutions/consoludation/servercons=fr&cs=RC1077983&1
=fr&s=pad&redirect=1
(
http://fr.wikipedia.org/wiki/hyperviseur
(
http://fr.wikipedia.org/wiki/kernel-based
virtual Machine (
http://www.01net.com/editoral/338904/technologie/kvnune-machine-virtuelle-dans-linux/
(
http://www.esaracco.fr/document/qemu/qemu/
(
http://lea-linux.org/cached/index/software-soft
emulqemu.html
(
http://www.commentcamarche.net/internet/vlan.php3
"
http://www.linux-
france.org/pri/inetdoc/articles/vm/index.html
(
http://www.bortzmeyer.org/kvm.html
(
http://kvm.qumranet.com/kvmwiki
(
http://fr.wikipedia.org/wiki/Linux-VServer
(
http://linux-vserver.org/paper
(
http://fr.wikibooks.org/wiki/Vserver
(
http://www.gentoo.org/doc/fr/vserver-howto.xml
(
http://linux-vserver.org/Welcome
to
Linux-VServer.org (
http://fr.wikipedia.org/wiki/OpenVZ
(
http://wiki.openvz.org/Main
page
(
http://wiki.openvz.org/Introduction
to virtualization (
http://wiki.auf.org/wikiteki/Xen
v'
http://wiki.auf.org/wikiteki/OuajdiBoussaid/XENVirtualisation
"
http://www.lea-linux.org/cached/index/Virtualisation
avec xen.html (
http://wiki.xensource.com/XenNetworking
(
http://doc.ubuntu-fr.org/xen
(
http://www.intel.com/tecnology/virtualisation/index.htm
"
http://fr.wikipedia.org/wiki/Ubuntu
"
http://wiki.kartbuilding.net/index.php/Xen
Networking v
http://www.neobiker.de/wiki/index.php?title=Hauptseite
VIII. TABLE DES MATIERE
Epigraphie ..i
Dédicace ii
Remerciement iii
Les acronymes... iv
INTRODUCTION GENERALE 1
1. BREF APERCU 1
2. PROBLEMATIQUE 2
3. BUT ET OBJECTIF 2
4. DELIMITATION DU TRAVAIL 3
5. METHODOLOGIE 3
6. PLAN SOMMAIRE 3
CHAPITRE I : GENERALITES SUR L'INTRANET 5
I.1 L'INTRANET 5
I.2 L'EXTRANET 9
I.3 VIRTUAL PRIVATE NETWORK (VPN)........................
...... 10
I.4 INTERNET .......11
I.5 SERVEUR..... 12
I.6 SYSTEME D'EXPLOITATION 12
I.7 CONCLUSION 17
CHAPITRE II : LA VIRTUALISATION DES SERVEURS DANS UN INTRANET
18
II.1 INTRODUCTION ... 18
II.2 EVOLUTION DE LA VIRTUALISATION 21
II.3 LA MACHINE VIRTUELLE 23
II.4 INTERET DE LA VIRTUALISATION 24
II.5 CONTRAINTE DE LA VITUALISATION 25
II.6 TECHNOLOGIES DE LA VIRTUALISATION . 25
II.7 LES ACTEURS DE LA VIRTUALISATION ..............35
II.8 CONCLUSION PARTIELLE .... 37
CHAPITRE III : LES SOLUTIONS DE VIRTUALISATION DES SERVEURS......
38
III.1. INTRODUCTION............... .....................
.................. 38
III.2.VIRTUALISATION AVEC QEM ........................... 38
III.3.VIRTUALISATION AVEC KV .................................
42
III.4. VIRTUALISATION AVEC LINUX-S 43
III.5. VIRTUALISATION AVEC
OPENVZ................................. 46
III.6. VIRTUALISATION AVEC XEN 47
III.7.CHOIX TECHNOLOGIQUE 53
CHAPITRE IV : ETUDE DE CAS : RESEAU ISTA.....................
55
IV.I.PRESENTATION......
................................................... 55
IV.2.UNITES DIDACTIQUES D'APPUI A L'ENSEIGNEMEN 58
IV.3.ORGANISATION ADMINISTRATIVE...... 58
IV.4.ORGANIGRAMME DE
L'ISTA...........................................60 IV.5.PROJET UNIVERSITIC ET
LE CENTRE INFORMATIQUE...61 IV.6.ETUDE DU SYSTEME INFORMATIQUE
EXISTANT...........62 IV.7.CRITIQUE DE
L'EXISTANT..............................................67 IV.8.PROPOSITIONS
DES SOLUTIONS....................................67 IV.9.DETERMINATION DES
APPLICATIONS A VIRTUALISER....70 IV.10.CONCLUSION
PARTIELLE.............................................71
CHAPITRE V : MISE EN OEUVRE DE L'INFRASTRUCTURE
VIRTUELLE
AL'ISTA..................................................................72
V.I.INTRODUCTION................................................
.............72 V.2.CHOIX DU MATERIEL..................
.................................72 V.3.INSTALLATION DE LINUX DEBIAN
6.0........................... 73 V.4.DEPLOIEMENT DES SERVEURS VIRTUELS
GNU/LINUX..92 V.5.DEPLOIEMENT DES SERVEURS WINDOWS......... ...... 100
V.6.ADMINISTRATION DE L'INFRASTRUCTURE VIRTUELLE..115
VI.CONCLUSION
GENERALE...................................................... 118
VII.REFERENCE BIBLIOGRAPHIQUE.................. 121
VII.TABLE DES MATIERE 124