Virtualisation & Cloud Computing

Page 1 sur 31Lecteur de document UniversityLib

Virtualisation & Cloud Computing

Information Technology, Virtualization, Cloud Computing · course

Voir tous les documents en systèmes d'exploitation et cloud

Virtualisation & Cloud Computing Mehrez Ben Soltan S/D de la Technologie de l’information et de la communication Plan

2

 Définitions  Virtualisation complète  Para-Virtualisation  Virtualisation au niveau de l’OS  Intérêts de la virtualisation

Virtualisation des serveurs

3

 La virtualisation des serveurs permet d’exécuter

plusieurs SE sur un même serveur physique sous la forme de VM, dont chacune peut accéder aux ressources de calcul du serveur sous-jacent.

 Consiste aussi à regrouper un cluster de serveurs en une

seule et même ressource consolidée, de façon à optimiser l’efficacité globale et à réduire les coûts.

Techniques de virtualisation

9

 On distingue principalement trois techniques de virtualisation:

 Para-virtualisation  Virtualisation complète  Cloisonnement.

Para-Virtualisation

10

 Dans une solution de para-virtualisation, l’OS invité est modifié

pour être exécuté par la VM.

 Les modifications effectuées visent à rendre l’OS invité « au

courant » du fait qu'il s'exécute dans une VM.

 L’OS invité collabore plus étroitement avec l’OS hôte, en utilisant une interface spécifique, au lieu d'accéder au matériel virtuel via les couches d'abstraction (cas de la virtualisation complète)

 Un paravirtualiseur est un noyau hôte allégé et optimisé pour ne faire tourner que des noyaux d’OS invités, adaptés et optimisés.

 Les applications en espace utilisateur des OS invités tournent

ainsi sur une pile de deux noyaux optimisés.

Para-Virtualisation

11

 En pratique, un système para-virtualisé possède

quelques pilotes de périphériques et sous-systèmes modifiés, qui lui permettent de communiquer directement avec le système hôte, sans avoir passer par une couche d'abstraction pour parler au matériel virtuel.

Para-Virtualisation

12

Avantages :  un gain de performances, du fait du contournement des

couches d'abstraction  le système invité collabore activement avec la VM, il ne se comporte plus comme un OS à part entière s'exécutant directement sur du matériel. Il adapte son comportement pour que les accès au matériel soient des appels directs via des pilotes.

Limites :  Comme l’OS invité doit être modifié pour être

paravirtualisé, l'usage de la para-virtualisation est donc généralement limité aux systèmes libres.

Para-Virtualisation

13

Quelques hyperviseurs :  Citrix XENServer  VMWare vSphere  Hyper-V (Microsoft)  KVM

Virtualisation complète (full virtualization)

14

 Permet de faire fonctionner n’importe quel OS en tant

qu’invité dans une VM: Windows, GNU/Linux, Mac OS X, etc.

 La virtualisation complète 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.

 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 VM utilisant une technologie de virtualisation.

Virtualisation complète

15

 Avantage: Pour l’utilisateur final, ce type de

virtualisation est la plus simple à mettre en place et est la plus pratique.

 Limite: L'empilement de couches d'abstraction et

l'impossibilité pour la VM d'accéder directement au matériel, affectent les performances du système invité qui seront assez éloignées de celles d'un système « natif ».

Virtualisation complète

16

Quelques hyperviseurs  VMWare Workstation  Parallels Desktop for Windows et

Linux

 KVM: Intégré au noyau GNU/Linux

Publicité

à partir de la version 2.6.20

Virtualisation complète

17

Usages principaux:

 Attribution dynamique des ressources : certains produits

(VmWare vSphere) permettent d'attribuer des ressources en fonction de la consommation.

 Gestion de la haute disponibilité : certains produits

(VmWare vSphere) permettent de basculer des VM d'un serveur à un autre en cas de panne

Virtualisation assistée par le matériel

18

 Consiste à introduire des fonctionnalités de la

virtualisation directement dans les processeurs des machines physiques ce qui rend ainsi possibles des solutions de la virtualisation complète des systèmes invités non modifiés avec de très bonnes performances.  Exemple: Les processeurs Intel-VT (Intel Virtualization Technology) et AMD-V (Advanced Micro Devices Virtualization)

 https://www.youtube.com/watch?v=gqZrarZiHp8

Isolateurs ou cloisonnement

19

 On l’appelle aussi virtualisation au niveau de

l’OS.

 Un isolateur est un logiciel permettant d’isoler l’exécution des applications dans ce qui sont appelés des contextes, ou bien zones d’exécution (Séparation des processus s’exécutant sur un même OS).

 La plupart des OS 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é.

chroot

20

Qu'est-ce qu'un chroot?  Signifie change root  La commande chroot permet d'isoler la racine du système de fichier (le / de l'arborescence) pour une commande spécifique.  La racine est la référence pour tous les chemins absolus utilisés par un processus lui permettant d'accéder aux fichiers (librairies, configurations, etc.) qui lui sont nécessaires.

 En réalité, cette racine est un paramètre du processus qu'il est possible de modifier grâce à l'utilitaire chroot. Cela permet de faire croire à ce processus que le dossier que nous lui avons fixé comme racine, est l'origine de tous ses chemins absolus.

chroot

21

 Exemple  Quand vous travaillez sur Linux et/ou Unix, on

parle de racine pour identifier la base du système de fichier représentée par le nom de répertoire /

 De ce répertoire racine découle:

chroot srv test / chroot /srv/test

/

 C'est à dire l'arborescence du système.

Le principe de chroot est de définir une sous-arborescence du système de fichier visible comme la racine du système de fichier.

Par exemple, si nous créons les répertoires ci-dessous :

En appelant chroot : chroot /srv/test

le shell en cours ne verra que le contenu de /srv/test mais au lieu de voir le nom de répertoire /srv/test il verra la racine /

chroot

22

Des cas d’usage :  Mettre en prison les processus (jail): Elle permet par

exemple de lancer des processus critiques dans un dossier isolé du reste du système.

 Elle permet aussi de créer des environnements qui

fonctionnent sur des règles différentes du reste du système: Il est ainsi possible de faire tourner une debian au sein d'une mandriva, ou encore un linux en 32bits au sein d'un linux 64 bits. La seule limitation est que le kernel doit être compatible entre les deux distributions.

Isolateurs ou cloisonnement

23

 Autres solutions d’isolation :

 Linux-VServer : isolation des processus en user-space,  BSD Jail : isolation en user-space,  OpenVZ : libre, partitionnement au niveau noyau sous Linux et Windows 2003. C'est la version open-source du logiciel Virtuozzo.

 LXC (LinuX Containers) : libre, usage des Cgroups du noyau

Linux.

LXC

24

Publicité

 Le chrooting a été fortement améliorée pour donner naissance

au principe de conteneurs avec par exemple LXC.  Et c'est LXC qui à son tour a servi de base à Docker.

 LXC repose sur la notion de groupes de contrôle Linux, les

cgroups.  Chaque groupe de contrôle offre aux applications une isolation totale des ressources (notamment processeur, mémoire et accès E/S) sans recourir à des machines virtuelles à part entière.

 Référence originale: « Containers: Challenges with the memory

resource controller and its performance”  https://pdfs.semanticscholar.org/4708/1fd3577460128925282ba5b

8847190d7c8d9.pdf

LXC

25

 Les LXC implémentent :

 La gestion de ressources via les « groupes de contrôle de

processus » (implémentés via le système de fichiers /cgroup) ;

 L'isolation de ressources via les nouveaux drapeaux (flags) de l'appel système clone(2) (capable de créer plusieurs types de nouveaux espaces de noms pour des choses telles que les PID et le routage réseau) ;

 Plusieurs mécanismes d'isolation additionnels (tels que le drapeau -o newinstance du système de fichiers devpts).

Cgroups

27

 Cgroups fournit :

 Limitation des ressources : des groupes peuvent être mis en place afin de ne pas dépasser une limite de mémoire — cela inclut aussi le cache du système de fichier.

 Priorisation : certains groupes peuvent obtenir une plus grande part de ressources processeur ou de bande passante d'entrée-sortie.

 Comptabilité : permet de mesurer la quantité de ressources

consommées par certains systèmes en vue de leur facturation par exemple.

 Isolation : séparation par espace de nommage pour les groupes, afin qu'ils ne puissent pas voir les processus des autres, leurs connexions réseaux ou leurs fichiers.

 Contrôle : figer les groupes ou créer un point de sauvegarde et

redémarrer.

Virtualisation Vs Isolation

28

 La virtualisation permet de créer des

environnements matériels virtuels complets mais lourd en terme de ressources.

 L’isolation permet de créer des environnements logiciels

isolés utilisant le matériel réel et le noyau courant.

Virtualisation Vs Isolation

29

 L’isolation est:

 plus performante (évite la dégradation de performance causé

par l'ajout des couches de virtualisation)

 Economique en mémoire (partager en particulier le code du

noyau).

 Ces environnements sont donc bien adaptés au déploiement de nombreux serveurs virtuels de test ou développement basés sur un même OS.

 Par contre, avec l’isolation, il n’est pas possible d’utiliser des

noyaux différents en même temps.

 L’isolation a donné naissance à la conteneurisation.

De la Virtualisation à la Conteneurisation

30

Avec la virtualisation:  Problème de performance: Une VM imite intégralement un serveur (un OS complet, avec ses pilotes, fichiers binaires ou bibliothèques, etc.). Chaque VM s'exécute sur un hyperviseur (qui s'exécute parfois à son tour sur un os hôte) qui lui-même fait fonctionner le matériel du serveur physique.  Cela a un coût, notamment au niveau de l'hyperviseur et OS invités, qui requièrent chacun beaucoup de ressources matérielles et de coûteuses licences.

 Le nombre de VM qu'un serveur peut héberger est limité par la taille

des VM.

 La résurgence de la conteneurisation vise pallier ces lacunes de la

virtualisation:

 La conteneurisation vise à virtualiser les applications sans trop alourdir le

système.

De la Virtualisation à la Conteneurisation

32

 A la base, le concept de conteneurisation permet aux applications de

partager un OS hôte unique, avec ses fichiers binaires, bibliothèques ou pilotes.

 Cette approche réduit le gaspillage des ressources car chaque conteneur

ne renferme que l'application et les fichiers binaires ou bibliothèques associés.

Publicité

 Comme le conteneur de chaque application est libéré de la charge d'un OS, il est nettement plus petit, plus facile à migrer ou à télécharger, plus rapide à sauvegarder ou à restaurer.

 Il en résulte d’importantes économies mémoires et des performances accrues comparées à une virtualisation matérielle, donc une meilleure exploitation des machines physiques.

 Le rôle de l'hyperviseur est alors assuré par un moteur de

conteneurisation, tel que Docker (un LXC augmenté).

Machines virtuelles VS Conteneur

33

3. Intérêts de la viratualisation

37

Au niveau des clusters: Haute disponibilité

 Assurer la haute disponibilité (High Availability HA)

VM

VM

VM

VM

VM

VM

VM V M

Serveurs

Switchs Virtuels

Stockage

Cluster

Au niveau des clusters: Load Balacing

 Répartition des charges selon la charge des serveurs

V V M M

V M

V M V V V M M M

V M

Cluster

Au niveau des clusters: Scalabilité facile

 Scalabilité facilité: ajout de nouvelles ressources au pool de ressources

VM

VM

VM

VM

VM

Virtual Resource Pools

Cluster

Au niveau des clusters: Memory Overcommitment

Memory Sharing

Memory Ballooning

Memory Swapping

70%

70%

20%

VM 3 2 GB

VM 2 2 GB

VM 1 2 GB

VM 3 2 GB

VM 3 2 GB

VM 3 2 GB

VM 3 2 GB

VM 2 2 GB

VM 1 2 GB

Hypervisor 4 GB