Vous êtes sur la page 1sur 42

VIRTUALISATION HAUTE DISPONIBILITÉ

VIRTUALISATION DES SERVEURS

Département TIC Mohamed Escheikh 2021/2022


ENIT

1
Virtualisation de serveurs
2

2
Virtualisation de serveurs
3
Définition et principes

❑La virtualisation de serveurs est :


➢un ensemble de techniques et d’outils permettant de faire tourner plusieurs
systèmes d’exploitation sur un même serveur physique.
➢Un partage les ressources du serveur par les différents systèmes
d’exploitation.

❑La virtualisation doit respecter deux principes fondamentaux :


❖Le cloisonnement : chaque système d’exploitation a un fonctionnement
indépendant, et ne peut interférer avec les autres en aucune manière.
❖La transparence : le fait de fonctionner en mode virtualisé ne change rien au
fonctionnement du système d’exploitation et a fortiori des applications.

3
Virtualisation de serveurs
4
Avantages
✓Faire fonctionner plusieurs OS sur le même environnement physique: Au lieu
d'utiliser seulement 5% du processeur et de la mémoire de chaque serveur, on utilise
un seul serveur à 90% !
✓Electricité et climatisation: Un seul serveur physique vous coutera nettement moins
cher en climatisation et électricité sur une période de 4 ans que 3 ou 4 serveurs.
✓Rapidité pour déployer un nouveau serveur: Déployer un nouveau serveur se
compte ainsi en heures ou en minutes et non plus en semaines
✓Portabilité: Pour une machine physique, un serveur virtuel n'est qu'une suite de
fichiers. Ils peuvent être déménagés sur n'importe quel type de matériel sans risque
d‘erreurs au démarrage. Si besoin, ces fichiers peuvent être copiés sur un disque dur
externe et être emportés pour remonter le serveur virtuel sur un serveur physique
distinct dans d’autres locaux par exemple

4
Virtualisation de serveurs
5
Avantages
✓Continuité de service « haute disponibilité: Il s’agit ici d’installer 2 serveurs
physiques (ou plus) en redondance (Cluster). Ainsi si un serveur physique rencontre
une panne, les machines virtuelles qu’il héberge seront automatiquement migrées en
quelques secondes vers le deuxième serveur physique. On peut ainsi avoir un taux
de disponibilité de 99,9%.
✓Répartitions des applications, fiabilité: l'installation d'une application métier
risque de remettre en cause le fonctionnement de la messagerie Microsoft Exchange
pour d’éventuels problèmes de compatibilité. Ou bien encore un prestataire installant
son application va devoir redémarrer plusieurs fois le serveur rendant ainsi
indisponible le partage de fichiers et d’impressions.
➢Dans un environnement virtuel on peut dédier un serveur virtuel à une application
spécifique, diminuant ainsi les risques d’immobilisations de l’ensemble des
applications.

5
Virtualisation de serveurs
Niveaux de virtualisation
6

❑ Au niveau applicatif : alias DNS, Virtual Hosts Apache


❑ Au niveau logiciel : machines virtuelles (java)
❑ Noyau en espace utilisateur :
❑ l'OS invité s'exécute comme une application utilisateur
❑ performances faibles (empilement de 2 noyaux)
❑ utilisé dans le développement noyau
❑ exemples : UML (User Mode Linux), coLinux, L4L (pour le
temps réel)

6
Notions essentielles
7
Systèmes d'exploitation hôtes et invités

❖Le système d'exploitation a une main mise sur le matériel,


c'est lui qui orchestre les accès à ce dernier.
Mais alors, comment cela se passe lorsque plusieurs
systèmes d'exploitation tournent en parallèle, sur un même
ordinateur. Qui orchestre quoi?
➢la plupart du temps c'est un système d'exploitation qui gère
les accès matériels, on l'appelle l'os hôte. On l'appelle ainsi car
il héberge les autres systèmes d'exploitation, et orchestre les
accès au matériel demandés par ces derniers, que l'on appelle
os invités.
❖Cette hiérarchie permet de partager des ressources hardware
entre plusieurs os
7
Notions essentielles
8
Machine virtuelle

❖Une machine virtuelle est un logiciel chargé d'émuler une machine


physique.
❖Pour comprendre cela, il faut savoir qu'un système d'exploitation
est fait pour s'exécuter sur une architecture d'ordinateur particulière
(type de processeur, drivers spécifiques, langage assembleur...).
L'OS a donc des contraintes matérielles qui doivent être respectées
pour que ce dernier puisse faire son travail.
❖La machine virtuelle est une couche logicielle qui présente un
ensemble d'instruction au système d'exploitation qu'elle héberge.
❖Cet ensemble d'instruction permet au système de faire des accès
hardware sur du matériel virtuel (matériel émulé). La VM traduit et
redirige ensuite ces appels vers le système hôte afin qu'ils soient
exécutés sur le matériel réel. 8
Opérations sur les machines virtuelles

❑Allocations dynamiques des ressources :


❑RAM, CPU, Disques, Bande Passante
❑Installation, sauvegarde, déplacement à chaud
❑Répartition des machines virtuelles (VM) sur les
❑machines physiques pour optimiser les charges
❑système et la consommation d’énergie
❑Sécurité, environnement de test
❑Livraison d'applicatif (appliance virtuelle)

9
Pilotage des machines virtuelles par
Web services

L'automatisme: Ecrire un pseudo code d'allocation des ressources


qui respecte les caractéristiques du NIST

10
Web services

❑Échange de données entre applications et


systèmes hétérogènes
❑Exemple
–XML-RPC (XML - Remote Procedure Call)
–SOAP (Simple Object Access Protocol)
–REST (REpresentational State Transfer)

11
Notions essentielles
12
Hyperviseur

❖L’hyperviseur est la couche logicielle qui s’insère entre


le matériel et les différents systèmes d’exploitation.

❖C’est un composant clé, que l'on retrouve dans la


plupart des technologies de virtualisation de bas niveau.

❖L’hyperviseur peut soit gérer lui-même toutes les


ressources matérielles du serveur, soit s’appuyer pour
cela sur un système d’exploitation existant.

12
Notions essentielles
Hyperviseur de type 1
Un hyperviseur de type 1 est un logiciel qui s'exécute directement sur une
plateforme hardware. Il permet aux systèmes d'exploitation invités de rester
relativement près du matériel et donc de conserver des performances proches
d'un système de manière native.

13
Notions essentielles
Hyperviseur de type 2
Un hyperviseur de type 2 est un logiciel qui s'exécute à
l'intérieur d'un système d'exploitation, le système hôte.
Les système invités devront donc traverser deux couches
logicielles avant d'accéder au hardware. Les
performances s'en ressentent, mais la facilité
d'installation et de configuration de ce type de système
de virtualisation représente un gros avantage.

14
Notions essentielles
15
Emulation

❖L’émulation consiste à simuler l’exécution d’un programme en interprétant


chacune des instructions destinées au micro-processeur.
❖Il est possible d’émuler ainsi n’importe quel processeur et l’environnement
complet d’un serveur.
❖L’émulation est la technique qui offre le plus haut niveau d’abstraction de la
plateforme.
❖Pour les autres techniques de virtualisation tous les exécutables doivent être
compilés pour le processeur physiquement disponible sur le serveur.
❖L’émulation lève cette contrainte car les instructions ne sont jamais exécutées
par le processeur, elles sont interprétées en simulant le processeur. Cette
interprétation est coûteuse en performances, de sorte que l’émulation est rarement
utilisée en dehors d’applications ludiques ou de recherche.
❖Le projet QEMU est une solution open source de virtualisation par émulation.

15
Notions essentielles
16
Emulation

16
Techniques de virtualisation

❑ Isolation
❑Même noyau → même OS
❑ Para virtualisation
❑ Noyau modifié ou drivers spécifiques
❑→ OS spécifiques
❑ Virtualisation complète
❑ Système invité non modifié
❑→ n'importe quel OS

17
Techniques de virtualisation
Par niveau d'abstraction croissant :
❑L’isolation (cloisonnement): consiste à mettre en place, sur un même
noyau de système d’exploitation, une séparation forte entre différents contextes
logiciels.
❑La paravirtualisation : présente aux systèmes d’exploitation une machine
générique spéciale, qui requiert donc des interfaces spéciales, intégrées aux
systèmes invités sous la forme de drivers ou de modifications du noyau.
❑La virtualisation complète, ou machine virtuelle: l’hyperviseur intercepte
de manière transparente tous les appels que le système d’exploitation peut faire
aux ressources matérielles, et supporte donc des systèmes invités non-
modifiés.

18
Isolation
(cloisonnement)

19
Isolation
(cloisonnement)

❑ La technique d'isolation (cloisonnement) :


❑ Intervient au sein d’un même système d'exploitation.
❑ Sépare un système en plusieurs contextes ou environnements différents.
Chacun d'entre eux est régi par l'OS hôte, mais les programmes de chaque
contexte ne peuvent communiquer qu'avec les processus et les ressources
associées à leur propre contexte.
❑ Partitionne un serveur en plusieurs dizaines de contextes, presque sans
ralentissement.
❑ Fournit un espace noyau non différencié, unique, et partagé entre les
différents contextes. Mais on définit de multiples espaces utilisateurs
cloisonnés.
❑ Faire cohabiter différentes distributions de système d’exploitation sur le même
noyau.

20
Isolation
(cloisonnement)

❖L’isolation est utilisée sous Unix pour protéger les systèmes.


❖Via des mécanismes comme chroot ou jail il est possible d'exécuter des
applications dans un environnement qui n'est pas celui du système hôte, mais un «
mini système » ne contenant que ce dont l'application a besoin, et n’ayant que des
accès limités aux ressources.
❖Il est possible également de lancer des programmes dans une autre distribution que
celle du système principal.
Avantages:
✓une solution légère (Linux).
✓Performances natives.
✓faible overhead.
Inconvénients:
✓noyau unique => robustesse(plantage du noyau )
✓Mais le cloisonnement est généralement imparfait

21
Isolation
(cloisonnement)
Architecture d'un isolateur

22

22
Isolation
(cloisonnement)
Exemples

❑ chroot (changement de racine)


❑ BSD Jail
❑ Linux Vserver
❑ OpenVZ (plus mature et disposant du plus grand nombre de
❑ fonctionnalités.)
❑ Zones Solaris
❑ LXC
❑ Docker

23
Paravirtualisation

24
Paravirtualisation
❑La para virtualisation ou pseudo virtualisation, est un type de virtualisation utilisant
un Hyperviseur.
❑Au dessus de l’Hyperviseur, plusieurs systèmes d’exploitation cohabitent.
❑Parmi ces instances, il existe une qui est particulière appelée DOM0.
❑Cette instance privilégiée est la seule ayant un accès direct aux périphériques, les
autres instances doivent être modifiées et leurs interruptions matérielles doivent être
converties en interruptions logicielles.
❑Ainsi au niveau des OS modifiés, toutes les instructions sont modifiées avant d’être
transmises à l’Os privilégié. Ces derniers en recevant les interruptions logicielles, les
convertissent en interruptions matérielles avant de les transmettre aux périphériques.
Ils permettent ainsi aux OS non privilégiés d’accéder aux périphériques.
❑Une telle technique de virtualisation impose la modification du code des OS qui y
seront hébergés. Un exemple d’Hyperviseur utilisant la para virtualisation est Xen

25
Paravirtualisation

❑Si les systèmes d’exploitations invités fonctionnent en ayant « conscience » d’être


virtualisés et sont optimisés pour ce fait, on parle alors de para-virtualisation.
❑Une technique de virtualisation de plus bas niveau que l'isolation. Elle partage avec
cette dernière la nécessité d'utiliser un OS modifié.
❑Présente au système d’exploitation une machine générique spéciale, qui requiert des
interfaces spéciales intégrées aux systèmes invités, sous la forme de drivers.
❑Le cœur de la paravirtualisation est un hyperviseur fonctionnant au plus près du
matériel, et fournissant une interface qui permet à plusieurs systèmes hôtes d'accéder
de manière concurrente aux ressources.
❑L'OS hôte doit être modifié ainsi que les OS appelés à s'exécuter sur les
environnements virtuels.
❑Chaque système virtuel doit être modifié de façon à utiliser cette interface pour
accéder au matériel.

26
Paravirtualisation

❑Contrairement à l'isolation, plusieurs OS de familles différentes peuvent fonctionner


sur un même serveur physique. Il est ainsi possible de faire fonctionner Linux,
NetWare, Solaris (et d'autres) simultanément sur une même machine.
❑Chaque OS aura alors accès à ses propres périphériques de stockage, sa propre
mémoire, sa ou ses propres interfaces réseau, son ou ses propres processeurs,
chaque ressource matérielle virtualisée étant partagée avec les autres
environnements.
❑La nécessité de petites modifications au système d’exploitation invité exclut le
support de systèmes fermés, et en particulier de Microsoft Windows.

27
Paravirtualisation
Architecture

Hyperviseur type1

28
Paravirtualisation
Le mécanisme de redirection des appels système
❑Le contrôle d'un ou plusieurs matériel(s) est donné à un des OS virtualisé
(celui qui contient le driver backend), ici le système d'exploitation 1.
❑Une fois celà compris, il sera simple d'imaginer que l'OS 2, qui souhaite
accéder au hardware, devra passer par son driver front end qui redirigera les
appels système vers l'OS 1.
❑L'inconvénient de cette technique est donc la dépendance d'un OS virtualisé
vis à vis d'un autre qui se créé par ce mécanisme de driver. En effet si l'OS 1
tombe en panne, l'OS 2 ne pourra plus accéder au matériel.

29
Paravirtualisation
Exemples

❑ Citrix Xen Server (libre)


❑ Vmware vSphere (anciennement Vmware ESXi et Vmware ESX)
❑ Microsoft Hyper-V
❑ Parallels Server Bare Metal
❑ Oracle vm (gratuit)

30
Virtualisation Complète

31
Virtualisation Complète

32
Virtualisation Complète
Par exemple :
❑logiciels Microsoft (Microsoft VirtualPC, Microsoft Virtual Server),
❑logiciels Parallels (Parallels Desktop, Parallels Server),
❑Oracle VM VirtualBox (libre),
❑logiciels VMware (VMware Fusion,
❑VMware Player,
❑VMware Server,
❑VMware Workstation),
❑logiciels libres (QEMU : émulateur de plateformes x86, PPC, Sparc,
et bochs : émulateur de plateforme x86),
❑KVM(libre).

33
Virtualisation Complète

❑La virtualisation complète, c’est un système d’exploitation qui exécute un logiciel


nommé hyperviseur.
❑L’hyperviseur va permettre l’exécution de plusieurs machines virtuelles sur la machine
physique. Il gère les accès mémoire, l’allocation du CPU et toutes les ressources
nécessaires aux machines virtuelles.
❑L’hyperviseur gère l’ensemble des requêtes des machines virtuelles ce qui permet aux
machines virtuelles de fonctionner sans aucune modification de leur noyau.
❑L'ensemble des systèmes d'exploitation virtualisés s'exécutant sur un unique
ordinateur, peuvent fonctionner de manière totalement indépendante les uns des autres
et être vu comme des ordinateurs à part entière sur un réseau.
➢Les machines virtuelles ne savent pas qu’elles s’exécutent de manière virtuelle.

34
Les solutions de virtualisation complètes
disponibles sous LINUX

❑VMware, solution propriétaire comportant en sus des coûts de licence


conséquents.
❑VirtualBox, solution libre et gratuite comportant cependant des Additions
propriétaires fournis par Oracle.
❑QEMU/KVM, solution entièrement libre et gratuite intégrée dans le noyau
Linux.

35
Flexibilité vs Performance

36
Règles simples pour choisir une solution de
37
virtualisation
❖OpenVZ pour des environnements purement Linux, avec des besoins de hautes
performances, sans contrainte au niveau du noyau.
❖Xen pour des environnements purement Linux, mais avec des besoins plus précis en
termes de version noyaux, ou de fonctionnalités de haute-disponibilité, ou une grande
hétérogénéité.
❖Xen pour des environnements Linux, ainsi que quelques serveurs Windows où la
performance n'est pas un impératif, choisissez également Xen.
❖XenServer de Citrix pour des environnement purement Windows avec des besoins
de haute performance, et de simplicité d'utilisation.
❖VMWare ESX pour des environnement mixte (Linux/Windows) mais avec peu de
compétences spécifiques et besoin de la meilleure simplicité d’utilisation.

37
Comparaison Isolateurs-Hyperviseurs

38
La virtualisation par conteneurs
❑ La virtualisation par conteneurs consiste à déployer un système d’exploitation (OS)
virtualisé. Ce système est partagé entre plusieurs instances. En outre ces différentes
instances, s’exécutant en parallèle, se partagent un ensemble de librairies d’une
manière sécurisée.

Architecture de Vserver
❑Ce type de virtualisation se base sur la présence d’une VM host possédant un
accès privilégié au système, d’autres VM s’exécutent sur le même OS en utilisant
les librairies exposées par le système. Un exemple de système utilisant la
virtualisation par conteneur est Linux VServer

39
Récapitulons
Plusieurs types de virtualisation existent, chacun ayant ses propres avantages et
inconvénients.
❑virtualisation complète, l’hyperviseur se charge de créer un environnement
virtuel complet en simulant du « faux » matériel.
Le système d’exploitation invité n’aura alors accès qu’à ces ressources simulées, et
non aux ressources matérielles réelles. Ce type de virtualisation est toutefois limité
aux systèmes d’exploitation prévus pour la même architecture matérielle (x86, x64,
ARM, ...) que le processeur physique de la machine hôte.
❑Pour dépasser cette limite, il faut faire appel à l’émulation : l’hyperviseur créé
alors un environnement virtuel complet, en allant jusqu’à simuler un
microprocesseur qui peut alors avoir une architecture matérielle différente de celle
du CPU hôte. Le principal inconvénient de ce type de solution est alors le niveau de
performances, souvent médiocre.

40
Récapitulons
La paravirtualisation , le système d’exploitation invité est conscient de s’exécuter dans un
environnement virtualisé, ce qui nécessite bien entendu certaines modifications logicielles. En
contrepartie, il devient capable d’interagir avec l’hyperviseur et de lui demander, le cas échéant, de
transmettre directement les appels systèmes au matériel du serveur hôte. Les performances
« virtuelles » sont alors théoriquement proches de celles qu’il serait possible d’atteindre avec le
matériel réel.
Les quatre solutions gratuites, Microsoft Hyper-V Server 2012, VMWare vSphere Hypervisor
5.1.0, Citrix XenServer 6.1 et Proxmox VE 2.2, font justement partie des hyperviseurs capables
de prendre en charge la paravirtualisation, sous certaines conditions.

41
Récapitulons

42

Vous aimerez peut-être aussi