Virtualisation et conteneurisation - 1. La virtualisation PDF
Document Details
Uploaded by WorthwhileOrientalism
Université Amadou Mahtar Mbow
Dr Ousmane SADIO
Tags
Summary
This document provides an introduction to virtualization, highlighting its concept, historical context, and various facets. It discusses the virtualization of servers, emphasizing the advantages and evolution of this technology. It also explores different types of virtualization of the CPU, memory, and storage in the context of cloud computing, highlighting benefits, and limitations.
Full Transcript
UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 1 [email protected] 1. L...
UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 1 [email protected] 1. La virtualisation 2023-2024 Université Amadou Mahtar Mbow (UAM) Polytech Diamniadio Master en Ingénierie des Systèmes d’Information et des Données (MISID) Dr Ousmane SADIO UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 2 [email protected] Avant l'ère de la virtualisation, le seul moyen d'approvisionner des serveurs était de passer par le service informatique. Il s'agissait d'un processus coûteux et fastidieux. L'un des principaux inconvénients de cette méthode était que les ressources de la machine restaient sous-utilisées. Pour remédier à cette situation, le concept de virtualisation a commencé à gagner du terrain. − Années 1960: l'histoire de la virtualisation remonte aux années 1960, lorsque Jim Rymarczyk, qui était programmeur chez IBM, a commencé à virtualiser l'ordinateur central d'IBM. Enfin est arrivé UNIX, qui a permis à plusieurs programmes de s'exécuter sur le matériel x86. − Début des années 1990: Sun Microsystems a créé Java qui introduit un code intermédiaire (appelé bytecode), qui pouvait ensuite être exécuté sur un runtime Java à travers différentes architectures matérielles. C'était l'avènement de la virtualisation au niveau du processus. − Fin des années 1990: VMware lance son propre modèle de virtualisation. Il s'agissait de virtualiser le matériel réel. Cela signifie qu'au-dessus du logiciel VMware, on peut exécuter des systèmes d'exploitation. − Vers 2001: VMware lance deux hyperviseurs. GSX était un hyperviseur de type 2, c'est-à-dire qu'il nécessitait un système d'exploitation tel que Windows pour faire fonctionner les invités. ESX était un hyperviseur de type 1 qui permettait d'exécuter des systèmes d'exploitation invités directement sur l'hyperviseur. UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 3 [email protected] ❑ C’est quoi la virtualisation? La virtualisation est une technique d'abstraction de ressources physiques, telles que le calcul, le stockage et le réseau, et les faisant apparaitre sous forme de ressources logiques. En d’autres termes, La virtualisation permet la mise en commun (pooling) des ressources physiques et fournit une vue agrégée des capacités de ces ressources physiques. Les ressources virtuelles peuvent ainsi être créées et mises en service à partir des ressources physiques mises en pool. Bien que la virtualisation contribue à la création des Clouds, elle ne peut pas être assimilée au cloud computing. Le principe est le suivant : − La virtualisation est une technologie qui sépare les fonctions du matériel. − Le cloud computing s'apparente davantage à une solution qui repose sur cette séparation. UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 4 [email protected] ❑ Avantages de la virtualisation La virtualisation permet de donner plus d'agilité aux datacenters, grâce notamment : − Mutualisation des ressources (consolidation) : la virtualisation permet d'affecter les ressources d’une même machine à plusieurs applications, éliminant ainsi la prolifération des serveurs. − Réduction des coûts : réduction du coût de l’infrastructure physique et du coût d’exploitation du datacenter (électricité, climatisation…). − Rapidité de provisionnement : déployer un nouveau serveur se compte ainsi en heures ou en minutes et non plus en semaines. − Elasticité : il est possible d'allouer des ressources supplémentaires à une application proche de la saturation, dans les limites physiques de la plateforme. − Haute disponibilité : si un serveur physique rencontre une panne, les machines virtuelles qu’il héberge seront automatiquement migrées en quelques secondes vers un autre serveur physique. UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 5 [email protected] ❑ Les limites de la virtualisation La virtualisation est non idéale pour: − Applications gourmandes en ressources − Tests de performance − Test de compatibilité matérielle − Configuration matérielle spécifique − Certaines architectures ou fonctionnalités matérielles sont impossibles à virtualiser − Certains registres ou états non exposés − Contrôle de certains équipements − Horloges, temps et comportement en temps réel UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 6 [email protected] ❑ Formes de virtualisation La virtualisation existe dans le secteur informatique depuis plusieurs années et sous différentes formes, notamment : − La virtualisation de serveurs − La virtualisation du réseau − La virtualisation du stockage UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 7 [email protected] ❑ Virtualisation de serveurs La virtualisation de serveurs est un ensemble techniques et outils consistant à faire fonctionner en même temps, sur un même serveur physique, plusieurs systèmes d’exploitation (OS: Operating System). Les différents systèmes d’exploitation partagent les mêmes ressources du serveur : CPU, RAM, disque, cartes réseaux... − Les machines virtuelles (VM : Machine Virtuelle) créés tournent alors sur la même machine physique, tout en ayant les mêmes propriétés que s'ils avaient chacun une machine physique; c’est-à-dire n’ont pas conscience de partager le matériel. − L’ordinateur hôte "voit" ses VM comme des applications auxquelles il dédie ou distribue ses ressources. La virtualisation doit suivre entre autre les principes : − Isolation : les applications exécutées sur un VM ne peuvent ni interagir ni voir les applications s'exécutant sur un autre VM. De même, chaque VM est isolée de l’OS hôte. − Transparence : le mode virtualisé ne change en rien le fonctionnement du système d’exploitation et à fortiori des applications. UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 8 [email protected] ❑ Comment virtualiser la CPU ? L'hyperviseur planifie des tranches de temps sur les processeurs disponibles du serveur hôte physique pour l'exécution des instructions virtuelles. Ainsi : 1. La première machine virtuelle doit exécuter un ensemble de commandes sur le matériel virtuel, et cette demande est dirigée vers l'hyperviseur. 2. L’hyperviseur planifie une session d’exécution à la demande de cette machine virtuelle. 3. La CPU physique exécute les instructions sur les données associées et renvoie les résultats à l'hyperviseur, qui les renvoie à la première machine virtuelle. 4. Comme la CPU physique se libère, l'hyperviseur planifie l'exécution du prochain jeu d'instructions de la deuxième machine virtuelle. UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 9 [email protected] ❑ Les hyperviseurs C’est l’élément essentiel de la virtualisation. C’est un programme qui permet à plusieurs systèmes d'exploitation de partager un seul hôte matériel. L'hyperviseur contrôle le processeur et les ressources de l'hôte, allouant alternativement à chaque système d'exploitation ce dont il a besoin et s'assurant de la transparence entre VM. − Un hyperviseur planifie le travail pour le compte d'une machine virtuelle sur tout CPU physique disponible. − Le travail d'une machine virtuelle particulière peut donc être exécuté sur tous les processeurs hôtes sur une période donnée. On compte deux types d'hyperviseurs : ▪ Hyperviseur de type 1 ▪ Hyperviseur de type 2 Hyperviseur de type 1 Hyperviseur de type 2 UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 10 [email protected] ❑ Hyperviseur de type 1 Un hyperviseur de type 1 est un système qui s’installe directement sur la couche matérielle du serveur. Ces systèmes sont allégés de manière à se « concentrer » sur la gestion des OS invités, c'est-à-dire ceux utilisés par les machines virtuelles qu’ils contiennent. Au démarrage de la machine physique, l'hyperviseur prend directement le contrôle du matériel, et alloue l'intégralité des ressources aux machines hébergées. L’avantage de ce type d'hyperviseur, c'est qu'il permet d'allouer la quasi-totalité des ressources disponibles aux machines virtuelles. Les principaux hyperviseurs de type 1 du marché sont : − Kernel-based Virtual Machine (KVM) − VMware vSphere/ESXi − Microsoft Hyper-V Hyperviseur de type 1 − Citrix XenServer UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 11 [email protected] ❑ Hyperviseur de type 2 Un hyperviseur de type 2 est un logiciel qui s’installe et s’exécute sur un système d’exploitation déjà en place. Le système d'exploitation virtualisé par un hyperviseur de type 2 s'exécutera dans un troisième niveau au dessus du matériel, celui-ci étant émulé par l'hyperviseur. L’intérêt qu’on peut trouver c’est le fait de pouvoir exécuter plusieurs hyperviseurs simultanément vu qu’ils ne sont pas liés à la couche matérielle. Cependant, plus de ressources sont utilisées étant donné qu’on fait tourner l’hyperviseur et le système d’exploitation qui le supporte, il y a donc moins de ressources disponibles pour les machines virtuelles. Les principaux hyperviseurs de type 2 du marché sont : − QEMU − VMware Workstation (Windows et Linux) / Fusion (Mac OS) − VirtualBox Hyperviseur de type 2 UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 12 [email protected] ❑ Anneaux de protection Les anneaux de protection sont un mécanisme destiné à protéger les données et les fonctionnalités par rapport aux défauts (la tolérance aux pannes) et aux programmes malveillants (la sécurité). Dans les systèmes x86, il existe 4 anneaux (rings) de protection numérotés de 0 à 3. − Ring 0 : niveau ayant le privilège le plus élevé et contient le noyau de l’OS. Peut communiquer directement avec le matériel et le processeur, càd toute instruction de la CPU peut être exécutée et toute adresse de mémoire peut être référencée dans ce mode. Il est réservé aux fonctions les plus fiables de l’OS. − Ring 3 : niveau le moins privilégié qui contient les applications et leurs données dynamiques. Pas d’accès direct aux instructions CPU, ni référencer toutes les adresses mémoire. Néanmoins, des appels systèmes sont proposées aux applications pour accéder à certaines ressources. − Ring 1 et 2 : niveaux généralement utilisés pour les pilotes des périphériques. Ces deux modes ne sont plus utilisés par les OS modernes. UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 13 [email protected] ❑ Virtualisation de la CPU et anneaux de protection Dans un environnement virtualisé, une couche logicielle de virtualisation (VMM : Virtual Machine Monitor) ou hyperviseur s'exécute en mode noyau (Ring-0). En effet, il incombe à l'hyperviseur d'allouer des ressources matérielles et adresses mémoire à de multiples VMs. Le noyau des VMs s'exécute dans un anneau moins privilégié que le Ring 0. Par conséquent, ce noyau dispose de moins de privilèges pour accéder aux ressources ou référencer une adresse mémoire sans le consentement de l'hyperviseur. UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 14 [email protected] ❑ Types de virtualisation de la CPU Les instructions privilégiées de l’OS invité peuvent être exécutées avec ou sans traduction et interception. Les techniques manipulant ces instructions privilégiées dans l'hyperviseur sont : − Virtualisation complète − Paravirtualisation − Virtualisation assistée par le matériel UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 15 [email protected] ❑ Virtualisation complète La virtualisation est dite complète lorsque l’OS invité n'a pas conscience d'être virtualisé. L’OS hôte n’a pas besoin d’être modifié, à la place une couche logicielle de virtualisation (VMM) ou hyperviseur est intercalée entre l’OS hôte et les OS invités. ▪ Exécution directe : les instructions non critiques (espace utilisateur) s’exécutent directement sur le processeur. ▪ Conversion binaire : − Les instructions privilégiées, sensible / dangereuse pour la machine hôte sont capturées puis émulées par l’hyperviseur. − Pour celles qui ne peuvent pas être capturées (à cause de l’architecture x86), l’hyperviseur identifie et modifie directement les instructions dans la mémoire virtuelle des VM. UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 16 [email protected] ❑ Paravirtualisation Pour la paravirtualisation, l’OS invité a parfaitement conscience qu’il est virtualisé. De ce fait, le noyau de cet OS doit être modifié pour fonctionner sur un hyperviseur de paravirtualisation. ▪ Exécution directe : idem que la virtualisation complète. ▪ Hyperappels : − Le noyau de l’OS invité est modifié afin de remplacer les instructions privilégiées et sensibles non virtualisables par des hyperappels qui communiquent directement avec la VMM ou l'hyperviseur. − L'hyperviseur fournit également des interfaces hyperappels pour d'autres opérations critiques du noyau telles que la gestion de la mémoire, la gestion des interruptions et de l’horloge. UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 17 [email protected] ❑ Virtualisation assistée par le matériel Une couche matérielle à la virtualisation permet d’optimisent l'émulation des instructions de processeur qui sont difficiles à virtualiser. Ces extensions sont nommées Virtualization Technology (VT) pour Intel, Secure Virtual Machine (SVM) pour AMD. Pour être en mesure de virtualiser un système d'exploitation 64 bits, le microprocesseur de votre ordinateur hôte doit être doté de cette technologie. ▪ Exécution directe : idem que la virtualisation complète. ▪ Connexion à l’hyperviseur : − Les instructions privilégiés et sensibles sont configurées pour se connecter automatiquement à l'hyperviseur, éliminant ainsi le besoin de traduction binaire ou de paravirtualisation. UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 18 [email protected] ❑ Gestion de la CPU pour les VM La virtualisation de la CPU est un élément essentiel pour obtenir de bonnes performances de la machine virtuelle, ainsi qu'une bonne utilisation globale des ressources physiques. De mauvaises configurations, tant physique que virtuelle, peuvent aggraver les problèmes de performances, entraînant des problèmes pour les applications et les utilisateurs. Chaque cœur d’une CPU physique peut être utilisé pour planifier le travail pour le compte d’une vCPU (virtual CPU), ce qui augmente la capacité et la flexibilité lors de la planification des performances. − Microsoft Hyper-V prend en charge 8 vCPU par processeur physique. − VMware peut prendre en charge jusqu'à 25 vCPU par processeur. Lorsqu’on crée une VM, l’un des choix de configuration initiale est le nombre de vCPU qui seront alloués à la VM. UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 19 [email protected] ❑ Gestion de la CPU pour les VM ▪ vCPU multiple vs. vCPU unique Si vous avez une VM avec deux vCPU, l'hyperviseur devra planifier le travail sur deux CPU physiques. Cela signifie que deux CPU physiques doivent être disponibles en même temps pour que le travail soit effectué. En fonction de l'algorithme d’ordonnancement, un système multi-v CPU peut attendre longtemps avant d'être planifié (càd baisse de performance). Ainsi, Il est préférable de commencer avec une seule vCPU, puis d'ajuster à la hausse si les circonstances l'exigent, plutôt que de commencer avec plusieurs et ensuite d’ajuster à la baisse ▪ Hyper-Threading L'hyper-threading transforme chaque CPU physique en deux CPU logiques. Chaque CPU logique peut traiter un thread distinct. Ainsi, pour chaque cœur physique, deux threads peuvent être planifiés. L’hyper-threading ne double pas la capacité d’un processeur, mais elle peut offrir une efficacité supplémentaire de 30%. UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 20 [email protected] ❑ Virtualisation de la mémoire La virtualisation de mémoire implique le partage de la mémoire système physique et de l’allouer dynamiquement aux machines virtuelles. − La quantité de mémoire allouée à la VM correspond à ce qu’elle peut utiliser même si la serveur hôte a plusieurs GB de RAM. − L'hyperviseur lui-même doit réserver une partie de la mémoire à ses propres processus. − Pour chaque VM exécutée sur l'hôte, une petite partie de la mémoire est également réservée, en plus de celle allouée à l'utilisation de la VM. 1. L'hyperviseur utilise un mappage (table de mappage) entre l'emplacement physique de mémoire de la machine hôte et l'emplacement physique de la mémoire de la VM. 2. L’hyperviseur détermine les pages écrites dans la mémoire physique et assure le suivi de la façon dont la mémoire allouée à chaque VM est mappée à la mémoire du serveur physique. UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 21 [email protected] ❑ Gestion de la mémoire pour les VM La mémoire (RAM), comme la CPU, est une partie cruciale de la VM. Contrairement à la CPU, la mémoire est généralement la ressource consommée le plus rapidement. Par conséquent le nombre maximal de VM qu’on peut créer sur un serveur dépend fortement de la quantité de mémoire du serveur. Une mémoire insuffisante ou de mauvaises configurations peuvent créer et amplifier des problèmes de performances dans un environnement virtuel. Grâce à l’utilisation de plusieurs techniques de gestion de la mémoire, la virtualisation permet une utilisation beaucoup plus efficace de la mémoire comparée aux serveurs physiques. UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 22 [email protected] ❑ Optimisation de la mémoire : Ballooning C’est un des mécanismes innovant qui permet à l’hyperviseur de réclamer de la RAM aux VMs en cas de manque. Pour récupérer de la mémoire physique sur les VM, l’hyperviseur les met au courant du manque de mémoire RAM, les forçant ainsi à vider les pages en mémoire sur la zone de pagination du disque (swapping). UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 23 [email protected] ❑ Optimisation de la mémoire : Memory Overcommitment La surallocation de mémoire est le fait d’utiliser des ressources en excès (sur-allouer), c’est-à-dire assigner plus de RAM aux VMs que le serveur hôte n’en possède. Ratio Overcommit 1.5MB de mémoire virtuelle pour 1MB de mémoire physique nous donne un ratio de 1.5:1 UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 24 [email protected] ❑ Optimisation de la mémoire : Page Sharing Permet de partager des pages mémoire identiques entre les VMs. L’hyperviseur va ainsi récupérer les pages redondantes et garder une seule copie qui sera partagée de manière transparente entre les VMs, augmentant ainsi la possibilité d’Overcommitting. UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 25 [email protected] ❑ Optimisation de la mémoire : Compression C’est une technique de gestion de mémoire virtuelle qui utilise la compression de données pour réduire la taille ou le nombre de requêtes de pagination (swapping) vers et depuis le stockage auxiliaire. Lorsque l’hyperviseur sent que la pagination doit avoir lieu, il examine les pages avec des algorithmes pour voir la viabilité de la compression. Si les pages peuvent être compressées, elles le sont puis déplacées vers le cache, au lieu d'être paginées sur le disque. UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 26 [email protected] ❑ Virtualisation du stockage La virtualisation du stockage consiste à présenter une vue logique des ressources de stockage physique à un hôte. Ce stockage logique apparaît et se comporte comme un stockage physique directement connecté à l'hôte. − D’un point de vue gestion, cela masque la complexité des périphériques de stockage physiques et leurs exigences spécifiques. − La virtualisation du stockage présente un potentiel considérable pour simplifier l'administration du stockage et réduire les coûts de gestion de divers ressources de stockage. − La virtualisation permet d'agréger et de gérer des données sur un large éventail de ressources physiques présentes dans de grands réseaux ou datacenters. Ces données peuvent être agrégées pour isoler des problèmes liés à la performance, prévoir et résoudre les problèmes et planifier les futurs besoins en capacité. UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 27 [email protected] ❑ Pool de stockage Les pools de stockage sont des concepts primordiaux dans la virtualisation du stockage. Tout périphérique de stockage en blocs peut résider dans le pool de disques, qu’il soit connecté via Fibre Channel, iSCSI ou directement attaché. − Une fois qu’un pool contient un périphérique de stockage, des disques virtuels peuvent être créés hors du pool et fournis aux serveurs d’applications sur le fabric ou le réseau. − On utilise souvent le gestionnaire LVM (Logical Volume Manager) pour gérer le pool de disques. UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 28 [email protected] ❑ Comment fonctionne la virtualisation du stockage 1. La requête d’accès à un fichier/bloc est transmise au système d'exploitation, qui détermine le périphérique d'entrée/sortie (E/S) auquel la demande doit être transmise : DAS (via storage controller), NAS (via network interface card) et SAN (via Fibre Channel controller). 2. Les cartes d'E/S physiques, le contrôleur de stockage et les contrôleurs de réseau, s’appuie sur des pilotes de périphériques que le système d'exploitation utilise pour communiquer avec eux. UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 29 [email protected] ❑ Comment fonctionne la virtualisation du stockage : cas du ISCI Dans le cas d'une requête de données stockées sur un disque interne à l'ordinateur, elle est adressée au pilote SCSI (Small Computer System Interface). La requête du pilote SCSI, qui, dans un serveur physique, est adressée au contrôleur de stockage physique, est prise en charge par l'hyperviseur dans l'environnement virtualisé. 1. La machine virtuelle voit un contrôleur SCSI présenté par le matériel, mais il s'agit en réalité d'une simple abstraction que l'hyperviseur utilise pour envoyer et recevoir des demandes d'E/S de stockage. 2. L'émulateur SCSI catalogue la requête et la place dans une file d'attente avec les E/S de stockage de toutes les machines virtuelles de l'hôte. Les demandes sont ensuite transmises au pilote de périphérique de stockage de l'hyperviseur, qui est connecté au contrôleur de stockage de l'hôte physique. 3. Le contrôleur de stockage exécute la requête et reçoit les blocs de données qui répondent à la demande de l'application de la machine virtuelle. 4. Les blocs de données suivent ensuite le chemin inverse et sont envoyés par l'hyperviseur à la machine virtuelle qui en a fait la demande. Le système d'exploitation de la machine virtuelle reçoit les informations du contrôleur de stockage virtuel et les transmet à l'application, répondant ainsi à la demande. UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 30 [email protected] ❑ Systèmes de fichiers Chaque hyperviseur propose aux machines virtuelles un système de fichiers qui fait abstraction du stockage physique, de sorte qu'il est plus simple à gérer que si chaque machine virtuelle disposait d'un accès direct à la baie de stockage. − VMFS (Virtual Machine File System): utilisé par VMware − CSV (Cluster Shared Volumes) : utilisé par Hyper-V le système − XFS : utilisé par Xen Et chacun de ces systèmes est utilisé pour stocker les disques durs virtuels de leurs hôtes. UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 31 [email protected] ❑ Thick provisioning vs Thin provisioning Lors de la configuration initiale des systèmes de fichiers, l'administrateur doit choisir la quantité d'espace de stockage à allouer. Une fois cet espace alloué, il est retiré du pool de stockage utilisable. ▪ Thick provisioning : il s'agit d'allouer une quantité statique de stockage à une machine virtuelle. Par exemple, un utilisateur qui alloue 40 Go de stockage pour sa VM, continuera à avoir un accès exclusif à l'intégralité des 40 Go, même s'il n'en utilise que 20. L'inconvénient du "thick provisioning" est que chaque système de fichiers se voit pré-attribuer la totalité de l'espace disque lors de sa création, même s’il en a pas besoin à l’instant. ▪ Thin provisioning : cette approche est plus dynamique, car la machine virtuelle ne reçoit que l'allocation de stockage dont elle a besoin au départ. Si la demande d'espace de stockage supplémentaire apparaît, l'allocation s'ajuste pour répondre à cette demande. Le thin provisioning vous permet en fait de surprovisionner (overcommitment) l'espace de stockage que vous possédez physiquement. UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 32 [email protected] ❑ Exemple d’un environnement de stockage virtualisé − Chaque serveur (virtuel) se voit assigné un volume de stockage virtuel présent dans un pool de stockage. − Ces volumes virtuels sont mappés avec le stockage physique (disques durs, SSD…). − Lorsqu’une opération d’écriture ou de lecture est initiée par un serveur, celle-ci est redirigée à travers un réseau dédié (SAN) vers la couche physique de stockage mappée. UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 33 [email protected] ❑ Approche multiniveau de la virtualisation du stockage UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 34 [email protected] ❑ Types de virtualisation du stockage Virtualisation du stockage niveau fichier (NAS) Virtualisation du stockage niveau bloc (SAN) UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 35 [email protected] ❑ Virtualisation du réseau La virtualisation de réseau fait une abstraction de la connectivité et des services réseau, généralement fournis par le biais de matériel, en un réseau virtuel logique découplé d'un réseau physique et fonctionnant indépendamment par le biais d’un hyperviseur. Ou encore, La virtualisation de réseau peut être définie comme le partage de ressources de réseau par l'abstraction et l'isolation des fonctionnalités de réseau du matériel physique. La virtualisation de réseau reproduit les services de réseau L2-L7 nécessaires au déploiement du réseau virtuel de l’application. L2 – L3 : commutateurs logiques, routeurs logiques… L4 – L7 : équilibreurs de charge logiques, pare-feu logiques… UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 36 [email protected] ❑ De la virtualisation de serveurs vers la virtualisation du réseau La virtualisation de serveurs n'implique aucune virtualisation de la structure réseau, telle que les commutateurs et les routeurs. Par contre, la virtualisation du réseau permet à plusieurs réseaux virtuels isolés de partager la même infrastructure de réseau physique. UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 37 [email protected] ❑ Virtualisation de réseau : pourquoi ? 1. Au début, les applications informatiques étaient monolithiques, et tout était construit dans un seul châssis. Puis les systèmes d'information ont commencé à adopter progressivement une architecture à 3 niveaux : Front End, Back End et BD. 2. La tendance était alors de décomposer les serveurs d'applications en plusieurs composants indépendants. 3. La virtualisation des serveurs physiques entre plusieurs unités logiques a augmenté les besoins en bande passante de chaque unité physique connectée au réseau. La dernière tendance consiste à virtualiser les fonctions du réseau et à désagréger les composants physiques qui le constituent. UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 38 [email protected] ❑ Virtualisation de réseau Un réseau virtuel est un système qui émule un réseau physique en combinant les ressources matérielles et logicielles du réseau pour former une seule unité administrative. Au moyen de la virtualisation du réseau, les machines virtuelles sont considérées comme s'exécutant sur différents réseaux virtuels sur le même réseau physique. − Le trafic de plusieurs réseaux virtuels sont acheminés sur le même réseau physique : les VM qui s'exécutent sur un même serveur physique utilisent une même carte réseau physique pour transmettre divers types de trafic. − Les réseaux virtuels sont indépendants les uns des autres. − Le réseau virtuel est indépendant du matériel réseau de la couche inférieure et peut être configuré, modifié ou supprimé selon les exigences du service sans reconfiguration du matériel ou de la topologie de la couche inférieure. − La virtualisation de réseau permet une configuration flexible du réseau virtuel. Cette virtualisation peut créer des services réseau L2 (commutation), L3 (routage) et L7 (pare-feu, équilibrage de charge) en très peu de temps. UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 39 [email protected] ❑ Virtualisation de réseau Avec la virtualisation, chaque VM a une carte réseau virtuelle (vNIC). Dans un système de virtualisation à petite échelle, les vNIC sont liées à des cartes réseaux (NIC) physiques à l'aide de ponts (bridge) ou de NAT. Dans un système de virtualisation d'entreprise à grande échelle, les vNIC sont connectées à des réseaux physiques à l'aide de commutateurs virtuels (vSwitches). ▪ Bridge ▪ NAT Toutes les VM apparaissent dans le même sous-réseau Toutes les VM utilisent l'adresse IP de la machine que la machine physique hôte. Toutes les autres physique hôte pour communiquer avec l’extérieure. machines physiques sur le même réseau physique Les autres machines physiques ne peuvent pas peuvent accéder aux VMs. communiquer avec les VMs. UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 40 [email protected] ❑ Virtualisation de réseau ▪ Commutateur virtuel : vSwitch C’est l’équivalent logiciel d’un commutateur physique. Un commutateur virtuel permet d’établir des connexions entre des réseaux virtuels et physiques. Il détecte les VM qui sont logiquement connectées à ses ports virtuels et achemine le trafic de ces VM vers d'autres VM ou un réseau physique. Il existe trois grandes catégories de réseaux virtuels : − Privé : permet à une VM de communiquer uniquement avec les VM du même réseau privé. − Interne : aucune carte réseau physique n’est utilisée. Les VM ne communiquent qu’entre eux. − Externe : le vSwitch est connecté à une carte réseau physique. les VM communiquent entre eux et avec des réseau externes. − Distribué : permet aux machines physiques d’un cluster de partager le même commutateur virtuel. UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 41 [email protected] ❑ Virtualisation de réseau : OpenvSwitch Openv Switch (OVS), un commutateur virtuel multicouche qui offre un service solide pour contrôler les connexions réseau entre les VM fonctionnant dans des environnements multiserveurs hautement dynamiques tels que le Cloud. OVS prend en charge plusieurs technologies de virtualisation Linux, telles que Xen et KVM. − ovs-vswitchd : démon qui permet de commuter effectivement les paquets vers les bons ports virtuels. − openvswitch_mod : le module kernel permet de capturer le trafic provenant des interfaces réseau, et d’y réinjecter le trafic légitime. − ovsdb-server : un serveur de base de données léger qu'ovs-vswitchd interroge pour obtenir sa configuration. Open vSwitch supporte plusieurs fonctionnalité de commutateurs L2 et L3 : 802.1Q VLAN, filtrage de trafic, QoS, STP, tunnel GRE / VXLAN, agrégation de lien LACP, OpenFlow, OVSDB… UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 42 [email protected] ❑ VXLAN (Virtual eXtensible Local Area Network) VXLAN est une technologie de virtualisation du réseau sur la couche 3 et constitue une extension du VLAN. VXLAN encapsule une trame Ethernet de couche 2 dans un paquet UDP et transmet le paquet sur un réseau de couche 3. ▪ Pourquoi le VXLAN? − Dans un datacenter, on peut créer un LAN constitué de serveurs situés sur des zones géographiques différents. Ces serveurs peuvent être considérés comme des commutateur L2. Ainsi, la migration dynamique des VM à travers tout le datacenter (plusieurs zones géographiques) devient possible. − Le VLAN ID n'a que 8 bits. ce qui signifie qu'il ne peut adresser que 4096 VLAN. lors de la refonte des protocoles pour la virtualisation, le VXLAN s'est vu attribuer 24 bits d'adresse, ce qui lui permet de disposer 16 millions ID. UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 43 [email protected] ❑ VXLAN : encapsulation L’encapsulation induit forcément un overhead, ce qui peut poser des problèmes de MTU sur votre infrastructure. Il est couramment recommandé de configurer les équipements réseau sous-jacents (le réseau d’underlay) de manière à utiliser une MTU supérieure aux 1500 bytes habituels. UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 44 [email protected] ❑ VXLAN : architecture − VTEP (Virtual Tunnel Endpoint): il s'agit du point de départ ou d'arrivée d'un tunnel VXLAN, qui encapsule et décapsule respectivement les trames de données utilisateur originales. − VNI (Virtual Network Interface): un identifiant de 24 bits similaire à un ID de VLAN. Les VM avec des VNI différents ne peuvent pas communiquer au niveau de la couche 2. UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 45 [email protected] ❑ Communication microservice à microservice L'un des plus importants des modèles de conception de virtualisation réseau concerne la communication entre microservices. UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 46 [email protected] ❑ Communication microservice à microservice Par défaut, Linux utilise le noyau pour traiter les paquets. Avec l’augmentation de la vitesse des cartes réseau (NIC), le noyau est de plus en plus sollicité pour un traitement encore plus rapide des paquets. − De nombreuses techniques (DMDK, SR-IOV…) ont été mises au point pour contourner le noyau afin d'assurer l'efficacité de traitement des paquets. − Cependant, bien que ces technologies soient utilisées pour augmenter les performances de traitement des paquets dans les serveurs, la décision quant à la meilleure d'entre elles relève davantage de la conception que des technologies elles-mêmes. UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 47 [email protected] ❑ Communication microservice à microservice : optimisation ▪ DPDK (Data Plane Development Kit) DPDK permet décharger le traitement des paquets du noyau (kernel space) de l’hyperviseur vers les processus s'exécutant dans l'espace utilisateur (user space). Il est constitué d’un ensemble de bibliothèques permettant d'implémenter des pilotes d'espace utilisateur. Il est également possible d'exécuter DPDK dans la VM. Kernel DPDK DPDK in VNF UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 48 [email protected] ❑ Communication microservice à microservice : optimisation ▪ SR-IOV (Single Root I/O Virtualization) SR-IOV définit un mécanisme standardisé permettant de virtualiser une interface Ethernet PCIe pour qu'il apparaisse comme plusieurs interfaces Ethernet. Cela permet à la VM d’accéder directement à la carte physique sans passer par l’hyperviseur. On obtient ainsi une meilleure amélioration les performances du réseau par rapport à la virtualisation logicielle. Pour de meilleurs performances, SR-IOV peut être couplé à DPDK. SR-IOV SR-IOV + DPDK UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 49 [email protected] ❑ Communication microservice à microservice : optimisation ▪ Trafic Est-West Dans une situation où le trafic Est-Ouest au sein du même serveur, DPDK est plus performant que SR-IOV. La situation est illustrée dans le diagramme ci-dessous. UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 50 [email protected] ❑ Communication microservice à microservice : optimisation ▪ Trafic North-South Dans une situation où le trafic est Nord-Sud (y compris le trafic Est-Ouest mais d'un serveur à un autre), SR-IOV devient plus performance que DPDK. UAM / Polytech Diamniadio / MISID 1 Virtualisation et conteneurisation Dr Ousmane SADIO 1. La virtualisation 51 [email protected] ❑ Communication microservice à microservice : optimisation ▪ SmartNIC Une SmartNIC (Smart Network Interface Card) est un accélérateur matériel dédié qui peut être utilisé pour accélérer les fonctions de réseau, de stockage et de sécurité. Elles peuvent également effectuer la virtualisation, l'équilibrage des charges et l'optimisation des chemins de données. − Les SmartNIC permettent aux opérateurs de tirer davantage de performances du matériel existant, car ils peuvent décharger certaines des fonctions réseau, de stockage et de sécurité de la CPU vers la SmartNIC. − Une SmartNIC fonctionne comme un serveur à l'intérieur d'un serveur, où la NIC peut communiquer directement avec la VM sans avoir à gérer les interruptions dans la couche du noyau. − Les protocoles qui peuvent être déchargés de la CPU incluent le VXLAN, NVGRE, Geneve... Et aussi les fonctions réseau suivantes : inspection des paquets, traitement des tables de flux, cryptage, VXLAN overley…