La virtualisation, la technologie du Cloud Computing
La virtualisation est la clรฉ de voรปte du Cloud Computing. Elle est prรฉsente dans tous les modรจles de services. Le concept de la virtualisation est apparu dans les annรฉes 1960 [19]. Il a รฉtรฉ dรฉveloppรฉ par IBM afin dโutiliser efficacement les environnements matรฉriels en les partitionnant en plusieurs environnements virtuels. La virtualisation, en informatique, est une technologie qui consiste ร crรฉer une version virtuelle dโun systรจme dโexploitation, un pรฉriphรฉrique de stockage, des ressources rรฉseau, etc. Elle simplifie la gestion des ressources et des infrastructures en nuage, amรฉliore lโutilisation des ressources en les partageant entre plusieurs utilisateurs et rรฉduit les coรปts en termes dโรฉnergie et dโhรฉbergement. Il existe plusieurs mรฉthodes de virtualisation. Ces mรฉthodes ont des objectifs diffรฉrents et peuvent รชtre classรฉes en trois types.
Virtualisation des serveurs
La virtualisation des serveurs [20], [19] est une technologie qui permet dโexรฉcuter en parallรจle plusieurs systรจmes diffรฉrents sur un mรชme serveur physique. Cโest la consolidation de plusieurs serveurs virtuels appelรฉs virtuelles machines (VM) en un seul serveur physique. La virtualisation des serveurs peut รชtre basรฉe sur un hyperviseur ou sur un conteneur. Si la virtualisation est rรฉalisรฉe via un hyperviseur (par exemple, Xen [21], VMware ESXi [22], [23], Microsoft Hyper-V [24], [25] et KVM [26].), chaque machine virtuelle (VM) aussi appelรฉe instance, possรจde un systรจme dโexploitation (OS) distinct (appelรฉ OS invitรฉ) et ses propres ressources virtuelles telles que le processeur virtuel, la carte rรฉseau virtuelle, la mรฉmoire virtuelle et les disques virtuels [1]. Ces VMs sont indรฉpendantes et isolรฉes les unes des autres. De ce fait, si pour une raison particuliรจre une VM devenait instable ou tombait en panne, cela nโimpactera pas le bon fonctionnement des autres VMs. Elles sont gรฉrรฉs par lโhyperviseur appelรฉ un moniteur de machines virtuelles (VMM) qui reprรฉsente une couche dโabstraction en dรฉcouplant la couche matรฉrielle de la couche logicielle. La virtualisation basรฉe sur un hyperviseur pourrait รชtre classifiรฉ en trois catรฉgories : virtualisation complรจte, paravirtualisation et virtualisation assistรฉe par matรฉriel. Ces catรฉgories sont diffรฉrรฉes par la maniรจre dont les OS hรดtes et invitรฉs sont pris en charge et interagissent avec lโhyperviseur. Contrairement ร la virtualisation basรฉe sur lโhyperviseur, les solutions basรฉes sur les conteneurs telles que Docker et LXC sont lรฉgรจres car elles sont au niveau applicatif. Chaque serveur physique exรฉcute un noyau avec diffรฉrents conteneurs isolรฉs installรฉs dessus.
Virtualisation des serveurs : Avantages inconvรฉnientsย
Lโavantage dโhรฉberger plusieurs VMs dans un seul serveur est dโoptimiser lโexploitation des ressources de ce dernier en mutualisant les services exรฉcutรฉs. De plus, la virtualisation dispose aussi de plusieurs avantages :
โ sรฉcuritรฉ : Les machines virtuelles hรฉbergรฉes sur le mรชme serveur sont isolรฉes grรขce au dรฉcouplage entre applications et systรจme dโexploitation et entre systรจme dโexploitation et matรฉriel.
โ disponibilitรฉ : Les VMs peuvent รฉgalement รชtre migrรฉes dโun serveur ร un autre sans quโil soit nรฉcessaire de la stopper. Si un serveur tombe en panne, il est possible de dรฉplacer les VMs automatiquement et rapidement.
โ flexibilitรฉ : le dรฉploiement de nouvelles instances et ressources de systรจme est simple et rapide ce qui permet de faire face ร une demande รฉlastique.
โ coรปt : la rรฉduction des charges dโexploitation (OPEX) au travers la diminution du nombre de machines physiques mises en place. Ainsi rรฉduire le nombre de machines physiques permet de rรฉduire les coรปts dโachat de matรฉriel, les coรปts de maintenance, lโencombrement (gain de place dans les centres de donnรฉes) et indirectement les coรปts dโรฉnergie.
Nรฉanmoins, la virtualisation des serveurs dispose des inconvรฉnients et des dรฉfis ร relever.
โ complexitรฉ de lโadministration : il est important de trouver des politiques de gestion efficaces pour sโadapter de maniรจre agile ร lโexplosion de nombre de machines virtuelles.
โ pannes matรฉrielles : les machines virtuelles hรฉbergรฉes sur un serveur sont impactรฉs par une dรฉfaillance de ce dernier.
โ dรฉgradations des performances : Une application sโexรฉcutant ร lโintรฉrieur dโune machine virtuelle nโa pas les mรชmes performances que celle qui est exรฉcutรฉe sur une machine non virtualisรฉe (natif ) [28] Aussi, ces dรฉgradations sont causรฉes par le problรจme du vieillissement logiciel.
Les diffรฉrents types dโhyperviseurs
Un hyperviseur est une couche logicielle permettant dโhรฉberger des VMs sur une mรชme machine physique. Il gรจre le cycle de vie de la VM (crรฉation, configuration, exploitation et destruction). De plus, il gรจre lโallocation des ressources physiques aux VMs. On distingue deux types dโhyperviseur .
โ Les Hyperviseurs de type 1 : cโest un logiciel installรฉ directement sur le matรฉriel informatique. Il est dit un aussi hyperviseur ยซย natifsย ยป ou ยซย bare metalย ยป. Ce type dโhyperviseur contrรดle le matรฉriel et le ou les systรจmes dโexploitation invitรฉs. Cโest la mรฉthode de la virtualisation la plus performante qui est utilisรฉe pour virtualiser lโinfrastructure des centres de donnรฉes Les hyperviseurs de type 1 les plus rรฉpandus sont VMware ESX/ESXi [30], Microsoft Hyper-V [31], XEN [32] et KVM [33].
โ Les Hyperviseurs de type 2 : Contrairement aux hyperviseurs de type 1, les hyperviseurs de type 2 est un logiciel qui sโinstalle et sโexรฉcute sur un systรจme dโexploitation existant. Cโest un hyperviseur simple ร utiliser et ร installer. Ainsi, lโinstallation dโune VM est rapide et facile. En revanche, cet hyperviseur est moins performant que celui de type 1 car il y a moins de ressources disponibles pour les VMs. Les hyperviseurs de type 2 les plus connus sont VMware Workstation/Player [34], Microsoft Virtual PC [35] et Oracle VirtualBox .
Virtualisation du stockage
Le concept de virtualisation du stockage est similaire ร celui de la virtualisation de serveurs. Il consiste ร regrouper la capacitรฉ de stockage de plusieurs appareils de stockage en rรฉseau sous forme dโun seul appareil de stockage (virtuel) administrรฉ depuis une console centrale. Cela offre une grande flexibilitรฉ pour augmenter la capacitรฉ de stockage en fonction des besoins et une facilitรฉ de migration des donnรฉes. Ainsi lโutilisateur a un vue globale sur lโintรฉgralitรฉ du stockage permettant une gestion simple des donnรฉes.
Virtualisation de rรฉseauย
La virtualisation de rรฉseau permet dโexรฉcuter des rรฉseaux logiques sur un rรฉseau physique partagรฉ. De la mรชme maniรจre que la virtualisation de serveurs qui virtualise les ressources (vCPU et vRAM), la virtualisation de rรฉseau virtualise les cartes dโinterface de rรฉseau (NIC), des commutateurs et routeurs ainsi des fonctionnalitรฉs rรฉseau, telles que des รฉquilibreurs de charge et des pare-feu. Dans les environnements du Cloud, la virtualisation du rรฉseau est souvent associรฉe ร la virtualisation des ressources pour fournir aux utilisateurs des plates-formes virtualisรฉes. De nombreuses technologies ont รฉtรฉ dรฉveloppรฉes pour fournir la virtualisation de rรฉseau. Parmi les technologies les plus courantes, nous citons Vlan, VPN, VXlan,…
Sรปretรฉ de fonctionnement et Tolรฉrances aux pannes
La complexitรฉ croissante des systรจmes, des protocoles, des architectures des rรฉseaux de communication et des services, et les exigences sous-jacentes en termes de performance, de sรปretรฉ de fonctionnement et de rรฉsilience ont davantage catalysรฉ lโintรฉrรชt portรฉ aujourdโhui ร leur modรฉlisation et ร leur vรฉrification. Lโanalyse de performance et la sรปretรฉ de fonctionnement reprรฉsentent aujourdโhui des disciplines scientifiques en plein essor. Cโest un concept intรฉgrateur qui englobe un ensemble dโattributs qui permettent dโexprimer les propriรฉtรฉs attendues du systรจme, รฉvaluer les risques potentiels, et tenter ร minimiser leurs consรฉquences lorsquโelles se prรฉsentent. Ces attributs sont :
โ La fiabilitรฉ, cโest la capacitรฉ du systรจme dโassurer la continuitรฉ de service correct pendant une durรฉe donnรฉe dans des conditions donnรฉes.
โ la disponibilitรฉ, reprรฉsente la probabilitรฉ que le systรจme soit opรฉrationnel ร un instant donnรฉ
โ la sรฉcuritรฉ, Cโest lโabsence dโaccidents catastrophiques sur lโutilisateur ou son environnement
โ Lโintรฉgritรฉ concerne la non existence dโune mauvaise modification du systรจme.
โ La maintenabilitรฉ cโest la souplesse du systรจme vis-ร - vis les modifications et des rรฉparations quโil peut subir.
Tolรฉrances aux pannes
Malgrรฉ que les multiples technologies utilisรฉes dans le cloud computing afin dโassurer un service continu aux utilisateurs, ce paradigme est toujours vulnรฉrable ร un grand nombre de pannes systรจme. Ainsi, les fournisseurs de service sont de plus en plus prรฉoccupรฉs par la fiabilitรฉ et la disponibilitรฉ des services. La tolรฉrance aux pannes et la rรฉsilience sont des moyens efficaces pour rรฉpondre ร ces problรจmes. Dans les centres de donnรฉes, la technologie de virtualisation est utilisรฉe pour provisionner des ressources informatiques (par exemple, en fournissant des machines virtuelles avec une quantitรฉ donnรฉe de CPU, de mรฉmoire et de capacitรฉ de stockage).// Par consรฉquent, un hรดte physique est souvent utilisรฉ comme un ensemble de plusieurs hรดtes virtuels par le fournisseur de services. Cependant, lโutilisation de composants de base expose le matรฉriel ร des conditions pour lesquelles il nโa pas รฉtรฉ conรงu ร lโorigine. De plus, en raison de la nature extrรชmement complexe de lโinfrastructure sous-jacente, mรชme les centres de donnรฉes soigneusement conรงus sont sujets ร un grand nombre de pannes. Ces dรฉfaillances rรฉduisent รฉvidemment la fiabilitรฉ et la disponibilitรฉ globales du service de cloud computing. En consรฉquence, la tolรฉrance aux pannes est dโune importance primordiale pour les utilisateurs ainsi que pour les prestataires de services pour assurer un fonctionnement correct et continu du systรจme mรชme en prรฉsence dโun nombre inconnu et imprรฉvisible de pannes. En gรฉnรฉral, une panne ou une faille ( un รฉchec) reprรฉsente la condition dans laquelle le systรจme ne remplit pas sa fonctionnalitรฉ prรฉvue ou le comportement attendu. Un รฉchec se produit en raison dโune ou plusieurs erreurs. Dans lโenvironnement de Cloud Computing, une dรฉfaillance dans une couche donnรฉe a normalement un impact sur les services offerts par les couches supรฉrieures. Par exemple, une dรฉfaillance dans un middleware au niveau de lโutilisateur (PaaS) peut produire des erreurs dans les services logiciels construits dessus (applications SaaS). De mรชme, les pannes du matรฉriel physique ou de la couche IaaS auront un impact sur la plupart des services PaaS et SaaS. Cela implique que lโimpact des pannes dans la couche IaaS ou le matรฉriel physique est significativement รฉlevรฉ. Pour remรฉdier ร ces problรจmes,il est important de dรฉvelopper des solutions qui permettent de remplir les fonctions du systรจme et dโรฉviter la faille totale du systรจme mรชme en prรฉsence de pannes. Des techniques de tolรฉrance aux pannes ont รฉtรฉ mises en ลuvre. La tolรฉrance aux pannes est dรฉfinie comme la capacitรฉ du systรจme ร tolรฉrer les dรฉfauts de faรงon ร ne pas engendrer des interruptions de service. Cela implique quโil est de la plus haute importance de comprendre clairement et de dรฉfinir ce qui constitue le comportement correct du systรจme afin de dรฉfinir les caractรฉristiques de dรฉfaillance et ainsi un systรจme tolรฉrant aux pannes sera dรฉveloppรฉ. Des multiples techniques ont รฉtรฉ conรงues comme la prรฉvention des pannes, le masquage des pannes et le recouvrement aprรจs panne, afin de prรฉvenir les dรฉfauts et dโรฉviter lโinterruption du systรจme. La prรฉventions des pannes utilisent des mรฉthodes dโimplรฉmentation qui empรชchent les erreurs introduites lors de la phase du dรฉveloppement. On peut citer la technique de migration comme une technique de prรฉvention des pannes. Le masquage des pannes est une technique proactive qui a comme objectif de rรฉduire la probabilitรฉ que le systรจme tombe en panne en dupliquant les services et serveurs sur diffรฉrents dispositifs. Ainsi la panne est masquรฉe par la duplication en cas de faille du systรจme. La mรฉthode du recouvrement aprรจs panne consiste ร stocker lโรฉtat du systรจme pรฉriodiquement sur un support de stockage stable et fiable. Une fois le systรจme tombe en panne, celui ci sera redรฉmarrรฉ ร partir du point de sauvegarde.
|
Table des matiรจres
1 Introduction Gรฉnรฉrale
1.1 Contexte et motivations
1.2 Contributions de cette thรจse
1.3 Organisation du manuscrit
1.4 Productions scientifiques
2 Contexte
2.1 Le Cloud Computing
2.1.1 Dรฉfinition
2.1.2 Les niveaux de services
2.1.3 Modรจles de dรฉploiement
2.1.4 Les systรจmes IaaS
2.2 La virtualisation, la technologie du Cloud Computing
2.2.1 Virtualisation des serveurs
2.2.2 Virtualisation du stockage
2.2.3 Virtualisation de rรฉseau
2.3 Sรปretรฉ de fonctionnement et Tolรฉrances aux pannes
2.3.1 Tolรฉrances aux pannes
2.3.2 La tolรฉrances aux pannes dans le Cloud
2.4 Vieillissement et rajeunissement logiciel dans les SVSs
2.4.1 Vieillissement logiciel
2.4.2 Rajeunissement logiciel
2.4.3 Vieillissement et rajeunissement dans le cloud
2.4.4 Corrรฉlation entre rajeunissement VMM et rajeunissement VM
2.5 Gestion รฉnergรฉtique dans le cloud computing
2.5.1 Problรจme de gaspillage dโรฉnergie et des ressources
2.5.2 Techniques de gestion dynamique de lโรฉnergie
2.6 Les rรฉseaux programmables
2.6.1 Les rรฉseaux dรฉfinis par logiciels (SDN)
2.6.2 La virtualisation des fonctions rรฉseau (NFV)
2.7 Conclusion
3 รtat de lโart sur la modรฉlisation stochastique pour lโanalyse de la performance des systรจmes
3.1 La modรฉlisation
3.1.1 Processus de la modรฉlisation
3.1.2 Formalismes de modรฉlisation
3.2 Rรฉsolution du modรจle
3.2.1 Les mรฉthodes analytiques
3.2.2 Les mรฉthodes numรฉriques
3.3 Conclusion
4 Contribution 1 : Performabilitรฉ et gestion de lโรฉnergie pour les systรจmes de serveurs virtualisรฉs (SVSs)
4.1 Travaux annexes
4.2 Analyse de vieillissement
4.2.1 Analyse de vieillissement basant sur la modรฉlisation
4.2.2 Analyse de vieillissement basant sur des mesures
4.2.3 Techniques dโanalyse hybride
4.3 Corrรฉlation entre vieillissement logiciel et charge de travail
4.4 Analyse de Rajeunissement logiciel
4.5 Contributions
4.6 Description du modรจle versatile SVS
4.6.1 Hypothรจses
4.6.2 Modรจle de disponibilitรฉ SVS avec rajeunissement
4.7 Paramรจtres et mรฉtriques du modรฉle SVS
4.7.1 Paramรจtres de trafic
4.7.2 Facteur de vieillissement du SVS (AF)
4.7.3 Mรฉtriques de performabilitรฉ
4.7.4 Mรฉtriques de puissance
4.7.5 Mรฉtriques de puissance-performance
4.8 Rรฉsultats numรฉriques
4.8.1 Impact de la charge de travail sur le facteur de vieillissement (AF)
4.8.2 Impact de la charge de travail sur les mรฉtriques des modรจles SVS SRN polyvalents
4.8.3 Impact de la charge de travail sur les mesures de puissance
4.8.4 Impact de IDC sur les mรฉtriques des modรจles SVS SRN polyvalents
4.9 Conclusion
5 Modรฉlisation des performances du commutateur virtuel avec arrivรฉes groupรฉes
6 Conclusion
En utilisant des technologies telles que docker et kubernetes , les entreprises peuvent non seulement crรฉer des environnements virtuels flexibles et รฉvolutifs, mais aussi gรฉrer ces environnements avec une grande efficacitรฉ. La virtualisation des poste de travail, souvent appelรฉe virtual desktop infrastructure univirtual permet aux employรฉs de se connecter ร un poste de travail univirtual virtuel depuis n’importe oรน, facilitant ainsi le tรฉlรฉtravail et amรฉliorant la productivitรฉ tout en centralisant la gestion et la sรฉcuritรฉ des poste de travail. Parallรจlement, la virtualisation des serveurs permet de maximiser l’utilisation des ressources physiques en crรฉant plusieurs machine virtuelle sur un serveur unique.