WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Virtualisation d'un réseau intranet

( Télécharger le fichier original )
par Bonhomie BOPE
Institut supérieur de techniques appliquées - Ingénieur en génie électrique 2010
  

Disponible en mode multipage

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

    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

    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

    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






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Un démenti, si pauvre qu'il soit, rassure les sots et déroute les incrédules"   Talleyrand