Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
MEMOIRE DE MASTER
Option : RISR
Présenté par :
Encadré par :
Mansouri Ahlem.
Mr D.Limam Said.
Tounsi Amel.
2016 - 2017
Remerciements
Nous tenons tout d’abord à remercier Dieu le tout puissant Et miséricordieux, qui nous a
donné la force et la patience D’accomplir ce modeste travail ;
Nos remerciements s’étendent a nos formidables parents qui par Leur prières et leurs
encouragements, on a pu surmonter tous les obstacles ;
Continuelle, son suivi minutieux de notre travail et son soutien,Nous ont permis de mener
à bien ce travail. Qu’il veuille bien Trouver ici témoignage de notre reconnaissance.
Enfin ; on remercie toutes les personnes qui ont participé De près ou de loin à la réalisation
de ce travail.
i
Dédicace
Je dédie ce travail à :
Affable, honorable,aimable :Tu représentes pour moi le symbole de la bonté par excellence,
la source de tendresse et l’exemple du dévouement qui n’a pas cessé de m’encourager et de
prier pour moi
Tu as fait plus qu’une mère puisse faire pour que ses enfants suivent le bon chemin dans
leur vie et leurs études.
Je te dédie ce travail en témoignage de mon profond amour Puisse Dieu,le tout puissant,te
préserver et t’accorder santé,longue vie et bonheur.
Mes chères soeurs, et mes frères pour leurs encouragements et Mon fiancé.Mes chers
amis,pour tous ce qu’on a partagés ensemble,Toutes les personnes proches que je n’ai pas
citées
Mansouri Ahlem
iii
Dédicace
Merci Allah de m’avoir donné la force et la patience d’aller jusqu’au D’un objectif tant
recherché avec bonheurs et de lever les mains vers Le ciel et de dire " Ya Moujib ".
Je dédie ce travail à :
La vie et qui s’est sacrifiée pour mon éducation et ma réussite ! A ma Mère A mon père,
école de ma vie, qui m’a accompagné durant toutes Mes années d’études, à apporter son
soutien et sa protection.
Mes chères soeurs, et mes frères pour leurs encouragements et leur amour.Mes chers amis,
pour tous ce qu’on a partagés ensemble, Toutes les personnes Proches que je n’ai pas citées
TOUNSI AMEL
v
Table des matières
Introduction Générale 1
1 Cloud Computing 3
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2 Réplication 15
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
vii
2.4 Avantages et Inconvénient de la réplication . . . . . . . . . . . . . . . . . . 18
2.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.1 Introduction : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.6 Migration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5 Implémentation 65
5.1 Introduction : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
5.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Conclusion 75
viii
Table des figures
3.3 comparaison des différentes méthodes de tolérance aux pannes par reprise 39
xi
4.1 Composants du cloud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
xii
5.9 Interfece de Lancement de la simulation et de la visualisation des résultats 72
xiii
Table des sigles et acronymes
xvii
Introduction Générale
L les nuages) dans les journaux spécialisés, et les annonces des nouvelles solutions
chez tous les grands acteurs de l’informatique : Microsoft, Google, Oracle,...
Dans l’effervescence qui accompagne toute grande nouveauté dans le monde de l’infor-
matique, le Cloud Computing est apparu pour certains comme une révolution et pour
d’autres comme un simple terme de Marketing qui ne fait que rassembler des services et
des technologies qui existent depuis longtemps. L’approche du Cloud computing s’appuie
principalement sur le concept de virtualisation. Ce concept est un ensemble de techniques
permettant de faire fonctionner sur une seule machine plusieurs systèmes d’exploitation
et/ou plusieurs applications, isolés les uns des autres. Un Cloudest constitué d’un ensemble
de Machines virtuelles qui utilisent la même infrastructure physique.
Notre contribution consiste à proposer une approche de tolérant aux fautes des données
dans Cloud computing.
Dans la première partie, nous avons abordé la réplication des données dans le Cloud Com-
puting, les données sont placées dans des hosts différents qui se trouvent dans le même
ou dans des autres Datacenter. L’approche proposée est basée sur la disponibilité exigée
par l’utilisateur. Cette approche permet d’améliorer la disponibilité et réduire le temps de
réponse. Dans la seconde partie nous avons proposé une approche qui permet de traiter
les pannes. La deuxième approche est basée sur la migration des données selon certains
critères.
Organisation du mémoire :
Le présent mémoire est structuré autour de cinq principaux chapitres qui se résument
comme suit :
- Dans le premier chapitre, Nous avons présenté un état de l’art sur le Cloud Computing
1
- Le second chapitre présentera la réplication de données
- Le troisième chapitre aborde le concept, le concept de la tolérance aux fautes
- Le quatrième chapitre sera réservé à la description détaillée de la conception Des
deux stratégies ainsi que les servicesque nous avons proposés. Cette conception se
fera à l’aide de formules, d’algorithmes et de diagrammes UML
- Ce dernier chapitre présentera les étapes de l’implémentation de l’approche proposée.
Nous y détaillerons la réalisation de certaines fonctionnalités ainsi que l’étude
d’évaluation des deux stratégies proposées. Les résultats d’expérimentation seront
interprétés.
Enfin, Une synthèse et un ensemble de perspectives viendront pour clôturer notre travail.
2
Chapitre 1
Cloud Computing
Sommaire
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Déscription du cloud computing . . . . . . . . . . . . . . . . . . . 4
1.2.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.2 Historique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.3 Virtualisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3 Les différents services . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3.1 Infrastructure as a Service (IaaS) . . . . . . . . . . . . . . . . . . . . 8
1.3.2 Platform as a Service (PaaS) . . . . . . . . . . . . . . . . . . . . . . 8
1.3.3 Software as a Service (SaaS) . . . . . . . . . . . . . . . . . . . . . . 9
1.3.4 Avantages et Inconvenient des services . . . . . . . . . . . . . . . . . 10
1.4 Modelés de déploiement . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4.1 Cloud public . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.4.2 Cloud communautaire . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.4.3 Cloud hybride . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.4.4 Cloud public . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.5 La différence entre le cloud prive et le cloud public . . . . . . . 12
1.6 Les Avantages et Inconvénients du cloud computing . . . . . . . 12
1.6.1 Avantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.6.2 Inconvénients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.7 Sécurité dans les cloud computing . . . . . . . . . . . . . . . . . . 13
1.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3
1.1 Introduction
L en nuage désigne un accés aux ressources informatiques qui sont quelque part, á
travers internet.
Son accés est soit gratuit, comme c’est le cas avec le web mail soit sur abonnement, avec un
niveau de service garanti. Depuis longtemps, tout le monde utilise le Cloud Computing sans
même s’en rendre compte. Par exemple lorsque l’on utilise son web mail, Hotmail, Gmail
ou autre, nous faisons du Cloud. Les entreprises achétent ainsi des capacités qui sont par
la suite facturées un peu comme le sont l’eau, le gaz ou l’électricité. L’entreprise paye sa
consommation. Cette consommation est illimitée, un peu comme le courant électrique. Le
Cloud Computing représente la meilleure solution pour gérer une entreprise. Au lieu qu’une
structure exécute des applications elle-même, c’est une plate-forme multi-tenant partagée
qui s’en charge.
Le Cloud, il suffit simplement de s’y connecter, de le personnaliser et de l’utiliser. Son usage
á l’air si simple. . . Cependant de nombreuses questions se posent.
1.2.1 Définition
4
Figure 1.1 – Cloud computing
1.2.2 Historique
Techniquement, le concept de Cloud Computing est loin d’être nouveau, il est même
présent depuis des décennies. On en trouve les premiéres traces dans les années 1960, quand
John McCarty1 affirmait que cette puissance de traitement informatique serait accessible au
public dans le futur. Le terme en lui-même est apparu plus couramment aux alentours de la
fin du XXe siécle et il semblerait que Amazon.com soit l’un des premiers á avoir assemblé
des data center et fournit des accés à des clients. Les entreprises comme IBM et Google
ainsi que plusieurs universités ont seulement commencé á s’y intéresser sérieusement aux
alentours de 2008, quand le Cloud Computing est devenu un concept " á la mode". [01]
Il est communément admis que le concept de Cloud Computing a été initié par le géant
Amazon en 2002. Le cybermarchand avait alors investi dans un parc informatique afin de
pallier les surcharges des serveurs dédiés au commerce en ligne constatées durant les fêtes
de fin d’année. A ce moment-lá, Internet comptait moins de 600 millions d’utilisateurs mais
la fréquentation de la toile et les achats en ligne étaient en pleine augmentation. En dépit de
cette augmentation, les ressources informatiques d’Amazon restaient peu utilisées une fois
que les fêtes de fin d’année étaient passées. Ce dernier a alors eu l’idée de louer ses capacités
informatiques le reste de l’année á des clients pour qu’ils stockent les données et qu’ils
utilisent les serveurs. Ces services étaient accessibles via Internet et avec une adaptation en
temps réel de la capacité de traitement, le tout facturé á la consommation.
Cependant, ce n’est qu’en 2006 qu’Amazon comprit qu’un nouveau mode de consommation
de l’informatique et d’internet faisait son apparition. [07]
Réalisant ce qu’ils pourraient faire de toute cette puissance, de nombreuses compagnies ont
ensuite commencé à montrer un certain intérêt á échanger leurs anciennes infrastructures
et applications internes contre ce que l’on appelle les " payer-use service " (services payés á
5
l’utilisation) [Laurie Sullivan 2006].
Auparavant, seuls les super ordinateurs permettaient de fournir cette puissance et étaient
principalement utilisés par des gouvernements, des militaires, des laboratoires et des univer-
sités pour réaliser des calculs aussi complexes que prédire le comportement d’un avion en
vol, les changements climatiques ou la simulation d’explosions nucléaires.
Désormais, des entreprises comme Google fournissent des applications qui exploitent le
même type de puissance et sont accessibles á tout moment, de n’importe oú et par tout un
chacun via Internet.
Actuellement les experts sont convaincu que bientôt, nous utiliserons le Cloud Computing
de la méme maniére que nous utilisons l’électricité, c’est à dire en payant uniquement ce
que nous consommons sans même nous soucier des aspects techniques nécessaires au bon
fonctionnement du systéme. Le principal facteur de développement restant le fait que toute
cette puissance est á tout moment partagée par plusieurs utilisateurs et évite ainsi de perdre
du " temps machine " à ne rien faire. Cela devrait également drastiquement réduire les
coûts de développement et donc les prix. [01]
1.2.3 Virtualisation
6
1.3 Les différents services
7
Figure 1.2 – Les couches du cloud computing
Offre une base matérielle (" hardware ") aux plateformes en tant que service. Ces
infrastructures sont mises en place et gérées exclusivement par des architectes réseau, ce
qui permet de garder un bon niveau d’expertise et évite de mélanger les domaines de
compétence. Elle se compose d’équipements réseau et de serveurs la plupart du temps
complétement virtualités. [01]
L’IaaS offre une grande flexibilité, avec une administration à distance, et permet d’installer
tout type de logiciel. En revanche, cette solution nécessite la présence d’un administrateur
systéme au sein de l’entreprise, comme pour les solutions serveur classiques. Parmi les
prestataires d’IaaS, on peut citer : Amazon avec EC2 ou Orange Business Services avec
Flexible Computing. [8]
8
1.3.3 Software as a Service (SaaS)
9
1.3.4 Avantages et Inconvenient des services
10
Figure 1.5 – Modelés de déploiement
Une seule et unique organisation loue ou posséde son Infrastructure, et la gére unique-
ment pour ses besoins. Elle ne la partage pas avec d’autres organisations.
11
1.4.4 Cloud public
Un fournisseur posséde une infrastructure dont il loue les services á plusieurs entreprises
ou groupes industriels.
Dans le cas du Cloud public, votre Cloud ne vous appartient pas entiérement. Un
grand nombre de ressources informatiques sont partagées avec de nombreuses entreprises
à travers l’ensemble du réseau Internet. Si ce modéle posséde de nombreux avantages en
termes de réduction des couts, de collaboration et d’agilité, pour certaines entreprises, en
revanche, il souléve, parfois á juste titre et parfois tort, certaines questions sur la sécurité
et la confidentialité des données.
De son côté, le Cloud privé propose des ressources informatiques dont l’usage est uniquement
réservé á votre entreprise. Vous pouvez héberger votre Cloud privé soit sur site, dans votre
centre de données (en utilisant une virtualisation et une automatisation á grande échelle),
soit hors site chez un fournisseur de services de Cloud. Le Cloud privé posséde la plupart des
avantages du Cloud public (options de libre-service, relative capacité de montée en charge et
facturation interne, par exemple) mais permet davantage de contrôle et de personnalisation
du fait que des ressources dédiées sont á votre disposition. Il peut offrir encore plus de
flexibilité, ce qui peut rendre son cout prohibitif et amoindrir les économies d’échelle pour
certaines entreprises. [02]
1.6.1 Avantages
• Un démarrage rapide : Le cloud computing permet de tester le business plan
rapidement, á coûts réduits et avec facilité.
• L’agilité pour l’entreprise : Résolution des problémes de gestion informatique
simplement sans avoir á vous engager á long terme.
• Un développement plus rapide des produits : Réduisons le temps de recherche
pour les développeurs sur le paramétrage de s’applications.
12
• Pas de dépenses de capital : Plus besoin des locaux pour élargir vos infrastruc-
tures informatiques [04]
1.6.2 Inconvénients
• La bande passante peut faire exploser votre budget : La bande passante qui
serait nécessaire pour mettre cela dans le Cloud est gigantesque, et les coûts seraient
tellement importants qu’il est plus avantageux d’acheter le stockage nous-mêmes
plutôt que de payer quelqu’un d’autre pour s’en charger.
• Les performances des applications peuvent être amoindries : Un Cloud pu-
blic n’améliorera définitivement pas les performances des applications.
• La fiabilité du Cloud : Un grand risque lorsqu’on met une application qui donne
des avantages compétitifs ou qui contient des informations clients dans le Cloud,
• Taille de l’entreprise : Si votre entreprise est grande alors vos ressources sont
grandes, ce qui inclut une grande consommation du cloud.
Vous trouverez peut-être plus d’intérêt á mettre au point votre propre Cloud plutôt
que d’en utiliser un externalisé.
Les gains sont bien plus importants quand on passe d’une petite consommation de
ressources á une consommation plus importante. [04]
13
Alliance). Du travail de cet organisme, il en est ressorti certaines techniques utilisées de
nos jours pour améliorer la sécurité du Cloud Computing. Parmi ces techniques on peut citer
1.8 Conclusion
Le Cloud Computing est une récente innovation. Il accroît l’efficacité et la souplesse des
sociétés dans la mesure oú il permet de travailler à plusieurs sans contrainte (technique,
horaire, géographique. . . ), de gérer à la carte les logiciels et donc les fonctionnalités utilisées,
de ne plus s’occuper de tâches longues, compliquées et contraignantes liées á la technique,
de gagner du temps en limitant les ressaisies et surtout de faire des économies.
Le Cloud a pour objectif de décharger l’utilisateur des problématiques serveur et lui per-
mettre de disposer de ses données et de ses outils oú qu’il soit, dés qu’il a une connexion
Internet.
Le Cloud Computing est un phénoméne qui fait beaucoup parler de lui de par sa facilité
d’exploitation des données.
14
Chapitre 2
Réplication
Sommaire
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2 principe de réplication . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3 Les techniques de réplication . . . . . . . . . . . . . . . . . . . . . 16
2.4 Avantages et Inconvénient de la réplication . . . . . . . . . . . . . 18
2.4.1 Avantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.4.2 Inconvénient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.5 protocole de la réplication . . . . . . . . . . . . . . . . . . . . . . . 19
2.5.1 protocole de la réplication active . . . . . . . . . . . . . . . . . . . . 19
2.5.2 protocole de réplication passive . . . . . . . . . . . . . . . . . . . . . 20
2.5.3 protocole de réplication semi active . . . . . . . . . . . . . . . . . . . 21
2.6 La cohérence des données . . . . . . . . . . . . . . . . . . . . . . . 22
2.6.1 Gestion de la cohérence . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.7 Protocole de cohérente . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
15
2.1 Introduction
1. le protocole actif où tous les réplicas effectuent les traitements de façon concurrente,
2. le protocole passif où un seul réplica poursuit son exécution et transmet périodique-
ment son état courant aux autres réplicas pour maintenir la cohérence de l’ensemble
du groupe
La réplication de données consiste à stocker des données sur plusieurs nœuds géogra-
phiquement distribues (voir Figure 2.1). L’intérêt premier de cette réplication est que, si
une donnée n’est plus disponible, le système peut continuer à assurer ses fonctionnalités en
utilisant une donnée répliquée, ce qui permet d’augmenter la disponibilité des données et la
tolérance aux pannes. D’un autre côte, puisque la donnée est répliquée sur plusieurs nœuds,
deux contraintes doivent être satisfaites vis- à-vis de l’utilisateur :
une requête de lecture doit être en mesure de retourner une valeur qui soit correcte (valeur
de la dernière écriture) ; réduire le temps de réponse d’une requête en accédant au nœud qui
soit le plus proche possible de l’utilisateur, afin d’augmenter les performances du système
[10]
16
Figure 2.1 – Environnement d’utilisation de la technique de réplication
17
possèdent l’espace de stockage suffisant ;
sont à une distance raisonnable en termes de temps de transfert.
2.4.1 Avantages
• Améliorer la tolérance aux pannes : la réplication permet les accès aux don-
nées même en cas de défaillance d’un support puisque la donnée se trouve sur
plusieurs endroits ;
• Améliorer les performances : La réplication permet d’améliorer le temps de
réponse des requêtes et l’accès aux données pour deux raisons essentielles :
les requêtes sont traitées sur un serveur local sans accès à un réseau étendu qui
nécessite de la communication ;
le traitement local allège la charge globale des serveurs.
2.4.2 Inconvénient
• Placement des répliques : Ce problème consiste à choisir, en fonction des objec-
tifs des applications et de la réplication, des localisations physiques pour les répliques,
qui réduisent les coûts de stockage et d’accès aux données
18
• Choix d’une réplique : Il s’agit ici de sélectionner, parmi toutes les répliques
d’une donnée, celle qui est la meilleure du point de vue de la consistance ;
• Cohérence des répliques : les techniques de réplication n’assurent pas une co-
hérence des données de l’ensemble des répliques. Ainsi, il est possible d’avoir, à un
instant donné, des copies différentes d’un même ensemble de données sur différents
nœuds
La réplication peut être utilisée dans plusieurs types, parmi lesquels, nous citons : [12]
Avec la réplication active, chaque copie joue un rôle identique à celui des autres. Le
principe de cette réplication peut être défini en trois phases : Réception des requêtes : toutes
les copies reçoivent la même séquence (ensemble totalement ordonné de requêtes).
Traitement des requêtes : toutes les copies traitent les requêtes de manière déterministe.
Emission des réponses : toutes les copies émettent la même séquence de réponses. [12]
19
2.5.2 protocole de réplication passive
• Réception des requêtes : la copie primaire est la seule à recevoir les requêtes.
• Traitement des requêtes : la copie primaire est la seule à traiter les requêtes.
• Emission des réponses : la copie primaire est la seule à émettre les réponses.
Comme le montre La figure 2.3, Le client envoie la requête uniquement à la copie primaire
S1. Celle-ci traite la requête, construit un point de reprise et l’envoie à l’aide d’un multicast
fiable assurant l’ordre FIFO, aux copies secondaires S2 et S3 en précisant le Changement
de son état (message update). Après la mise à jour de leurs états, les copies secondaires
envoient un ack à la copie primaire.
La copie primaire envoie la réponse au client après réception des Ack de toutes les copies
secondaires. Le point de reprise permet désynchroniser l’état des copies secondaires avec
celui de la copie primaire puisque celle-ci est la seule qui communique avec le reste du
système [12]
20
Figure 2.3 – protocole de réplication passive
C’est un protocole hybride qui se situe entre les deux protocoles précédents, où toutes
les copies exécutent en même temps la requête du client, mais une seule copie (leader)
d’entre elles émet la réponse, les autres copies (suiveurs) mettent à jour leur état interne et
sont donc étroitement synchronisées avec le leader (voir Figure 2.4). [11]
21
Figure 2.4 – protocole de réplication semi active
Les systèmes à mémoire répartie sont caractérisés par plusieurs niveaux de stockage
(Mémoire caches, Mémoire principale). La gestion efficace de ces différents niveaux de
stockage permet d’améliorer les performances du système.Les mémoires caches exploitent
la notion de localité en maintenant automatiquement des copies des données récemment
utilisées. Les prochains accès à ces données sont effectués directement dans les mémoires
caches et non pas dans la mémoire principale.De multiples copies d’une même donnée
peuvent être présentes sur les différents caches.Les cœurs en possession d’un copie d’une
donnée peuvent à tout moment modifier sa valeur localement ce qui génère le problème
d’incohérence. Les modèle de gestion de cache est responsable de transmettre les mises à
jours des données vers la mémoire principale. Un système de cache est donc dit cohérent
si pour chaque accès en lecture à une donnée la valeur retournée correspond à la dernière
modification apportée à cette donnée. [13]
La gestion de la cohérence est donc définie comme étant le contrôle des accès, en
vue de fournir une vision qui fait abstraction de la réplication, de la distribution et de
la concurrence des accès aux données partagées. Les garanties de cohérence offertes aux
utilisateurs, constituent les critères de cohérence assures par des protocoles. Ces critères ne
sont pas définis de façon unique [14].
Les protocoles de gestion de la cohérence offrent aux utilisateurs, la garantie d’une vue
22
cohérente des données dispersées [15]. (Voir la figure 2.5)
23
Figure 2.6 – Accès aux données répliquées
1. Cohérence forte : Une cohérence de répliques est dite forte lorsque toute in-
terrogation d’une copie quelconque reflète le résultat de toutes les modifications
antérieures ;
2. Cohérence faible : Une cohérence de répliques est dite faible, si on tolère qu’une
interrogation ne reflète pas toutes les modifications antérieures, avec la garantie que
celles-ci seront toutes répercutées au bout d’un temps fini
2.8 Conclusion
24
Chapitre 3
Tolérance aux pannes
Sommaire
3.1 Introduction : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.2 Notion de surete de fonctionnement . . . . . . . . . . . . . . . . . 26
3.2.1 Attributs de la surete de fonctionnement . . . . . . . . . . . . . . . . 26
3.2.2 Entraves la surete de fonctionnement . . . . . . . . . . . . . . . . . 28
3.2.3 Moyens d’assurer la surete de fonctionnement . . . . . . . . . . . . . 29
3.2.4 Classification des pannes . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.2.5 Détection des pannes . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.3 méthode de tolérance aux pannes . . . . . . . . . . . . . . . . . . . 32
3.4 Techniques de tolérance aux pannes dans les systèmes repartis 33
3.4.1 Tolérance aux panne par sauvegarde (checkpointing) . . . . . . . . 33
3.4.2 Tolérance aux pannes par journalisation . . . . . . . . . . . . . . . . 37
3.4.3 Comparaison de différents protocoles de tolérance aux pannes par
reprise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.5 La tolerance aux pannes dans les cloud . . . . . . . . . . . . . . 39
3.6 Migration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.6.1 Live migration, pourqoi ? . . . . . . . . . . . . . . . . . . . . . . . . 43
3.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
25
3.1 Introduction :
a capacité d’un système à fonctionner malgré une défaillance d’une de ses composantes
L est appelée tolérance aux pannes (parfois nommée tolérance aux fautes, en anglais
fault tolérance).
Puisqu’il est impossible d’empêcher totalement les pannes, une solution consiste à mettre
en place des mécanismes de redondance, en dupliquant les ressources critiques, ou des
techniques de sauvegarde et de retour en arrière. Lorsqu’une des ressources tombe en panne,
les autres ressources prennent le relais a afin de laisser le temps aux administrateurs du
système de remédier à l’avarie. Idéalement, dans le cas d’une panne matérielle, les éléments
matériels fautifs devront pouvoir être « extractibles à chaud » (en anglais « hot swappa blé
») c’est-à-dire pouvoir être extraits puis remplacés, sans interruption de service.[26]
Néanmoins, la mise en place d’une architecture redondante ne permet que de s’assurer de la
disponibilité des données d’un système mais ne permet pas de protéger les données contre
les erreurs de manipulation des utilisateurs ou contre des catastrophes naturelles telles
qu’un incendie, une inondation ou encore un tremblement de terre. Il est donc nécessaire
de prévoir des mécanismes de sauvegarde (en anglais backup), idéalement sur des sites
distants, afin de garantir la pérennité des données. Par ailleurs, un mécanisme de sauvegarde
permet d’assurer une fonction d’archivage, c’est-à-dire de conserver les données dans un
état correspondant à une date donnée. [26]
Les attributs de la sureté de fonctionnement d’un système mettent plus ou moins l’accent
sur les propriétés que doivent vérifier la sureté de fonctionnement du système.
26
Ces attributs permettent d’évaluer la qualité du service fourni par un système. Dans six
attributs de la sureté de fonctionnement sont définis : [28]
Disponibilité : c’est la propriété requise par la plupart des systèmes surs de fonctionne-
ment. Il s’agit de la fraction de temps durant laquelle le système est disponible pour des
fins utiles (en excluant les temps de défaillance et de réparation). C’est la probabilité que le
système soit opérationnel à l’instant.
Fiabilité : cet attribut évalue la continuité du service, c’est à dire. Le taux en temps
de fonctionnement pendant lequel le système ne subit aucune faute. C’est la probabilité
conditionnelle qu’un système fonctionne sans défaillance pendant l’intervalle de temps [0, t]
sachant qu’il était opérationnel à l’instant 0 ;
Intégrité : l’intégrité d’un système définit son aptitude à assurer des altérations approu-
vées des données ;
27
de fonctionnement. Les applications parallèles à longue durée d’exécution font prévaloir la
maintenabilité et la fiabilité.
Les entraves à la sureté de fonctionnement sont de trois types[27] : les fautes, les erreurs
et les défaillances. Fautes, erreurs et défaillances sont liées par des relations de causalité
illustrées sur la Figure 3.1.
Fautes : Une faute ou panne est caractérisée par sa nature, son origine et son étendue
temporelle [28]. La nature d’une faute donne le caractère intentionnel ou accidentel d’une
faute, les fautes intentionnelles sont créées délibérément dans le dessein de nuire tandis que
les fautes accidentelles apparaissent de manière fortuite.
La durée d’une faute exprime la dépendance vis-à-vis de conditions ponctuelles, Une faute
temporaire est présentée pendant une durée limitée et disparait si telle ou telle condition
interne ou externe ne peut l’éliminer.
L’origine d’une faute est la source d’une faute. Une faute est due à des phénomènes soit
physiques soit humains. Elle est provoquée soit par une partie de l’état du système soit par
l’environnement. Elle appartient soit à la phase de conception soit à la phase d’exploitation
du système. L’étendue d’une faute précise la portion du système affectée. Une faute locale
affecte une partie du système alors qu’une faute globale en affecte plusieurs.
Erreurs : Une erreur est une partie fausse de l’état du système. Tant que le service
n’utilise pas la partie fausse, l’erreur est dite latente. Activée ; l’erreur est dite effective est
une défaillance apparait si le service rendu n’est plus correcte. Une erreur est la conséquence
d’une faute. Une défaillance survient dès que le système utilise un état erroné [29].Powell
propose une classification des erreurs selon leurs types (valeur ou temps). Premièrement, le
service ne correspond pas en valeur à celui spécifié. Si la valeur rendue n’est pas interprétable
alors l’erreur est dite non-codée, sinon elle est dite arbitraire. Deuxièmement, le service n’est
28
pas délivré dans l’intervalle de temps spécifié. L’auteur distingue six catégories. Le service
rendu est toujours en avance ou toujours en retard ou encore arbitrairement en avance ou
en retard. Le fait que le système omette de rendre le service est considère également comme
un type d’erreur. Un arrêt (crash) est défini par le fait que le système omet définitivement
de délivrer des services.
Il existe toute une panoplie de moyens pour assurer ou évaluer la sureté de fonctionne-
ment d’un système. Ces moyens sont définis par les méthodes et les approches utilisées pour
assurer cette propriété. Une classification usuelle de ces moyens conduit à quatre catégories
[31] :
L’élimination des fautes : qui se focalise sur les techniques permettant de réduire la
présence de fautes ou leurs impacts. L’élimination de faute se fait pendant les phases de
validation ou lors des premières utilisations du système. Cela est réalisé par des méthodes
statiques de preuve de la validité du système (simulation, preuves analytiques, tests, ...) ;
29
La prévision des fautes : anticipe ces dernières pour ensuite pouvoir appliquer des
moyens de l’élimination ou de la tolérance aux fautes. Il s’agit d’une estimation et évaluation
de la présence des fautes (temps, nombre, impact) et de leurs conséquences. Ceci est réalisé
généralement par des méthodes d’injection de fautes afin de valider le système relativement
à ces fautes ;
La tolérance aux pannes ou aux fautes : qui essaye de fonctionner en dépit des
fautes. Le degré de tolérance aux pannes se mesure par la capacité du système à continuer
à délivrer son service en présence de fautes. La Figure 3.2 résume les notions associées à la
sureté de fonctionnement présentées ci-dessus.
La capacité d’identification du modèle de pannes joue un rôle très important si l’on veut
réaliser la tolérance aux pannes. En effet, les conséquences et le traitement d’une panne
diffèrent selon son modèle. Les pannes peuvent être classées selon leur degré de gravité, leur
degré de permanence et leur nature. Une première classification des pannes selon le degré
de gravité des défaillances est proposée [32] et permet de différencier :
Les pannes franches (crash faults) : soit le système fonctionne normalement (les
résultats sont corrects), soit il ne fait rien. Il s’agit du modèle de panne le plus simple
auquel on essaie de se ramener aussi souvent que possible
Les pannes par omission : le système perd des messages entrant ou sortant d’un
processus. On retrouve généralement ce modèle de pannes dans les réseaux
30
Figure 3.2 – L’arbre de la surete de fonctionnement
Les pannes par valeurs : les résultats produits par un composant défaillant sont
incorrects. Ce type de panne est typiquement détecté par les mécanismes de certification
des résultats proposés ;
Les pannes byzantines : le système peut faire n’importe quoi, y compris avoir un
comportement malveillant. [28] Une seconde classification des pannes selon leur degré
de permanence est également possible. On distingue ainsi les pannes transitoires qui se
produisent de manière isolée, les pannes intermittentes qui se déclenchent aléatoirement
plusieurs fois et les pannes permanentes qui persistent dès qu’elles apparaissent jusqu’à
réparation.
Il existe un troisième classement qui distingue la nature des pannes selon qu’elles soient
accidentelles ou intentionnelles.
Le problème de la détection des pannes est résolu différemment selon le modèle de com-
munication du système. Considérons d’abord le cas des modèles synchrones, dans lesquels le
temps de transmission d’un message est borné. Supposons qu’un envoi de message provoque
la mise en attente de l’émetteur d’une confirmation de réception de la part du récepteur.
La détection des pannes franches et de temporisation peut alors être réalisée à l’aide de
délais de garde "Watch dog" lors des communications : lorsqu’un processus communique
avec un autre et ne reçoit pas de confirmation après ce délai de garde, il peut considérer
31
que le processus cible est défaillant.
Le problème devient plus complexe dans le cas des modèles asynchrones : le temps de
transmission d’un message n’est pas borné. Les communications entre les nœuds ne peuvent
donc plus être utilisées pour détecter les pannes car il est impossible de prédire le moment
ou le message est effectivement reçu par le récepteur. On a alors recours à un détecteur (ou
suspecter) de pannes [33], qui informe les processus sur l’état du système. Ces détecteurs
utilisent eux aussi des délais de garde. On distingue deux modèles différents :
• Le modèle push, dans lequel chaque processus du système doit régulièrement informer
les détecteurs de pannes de son état. Si ce détecteur n’a pas reçu de message de type
"je suis vivant" de la part d’un processus depuis un temps donné, ce processus est
suspecté d’être défaillant.
• Le modèle pull, dans lequel ce sont les détecteurs de pannes qui envoient régulièrement
des requêtes de type "es-tu vivant ?" aux processus du système. Un processus qui ne
répond pas dans un temps donné est suspecté d’être défaillant.
• On note que l’on parle de soupçons parce que le processus incriminé n’est pas
forcement en panne : le message peut être encore en transit dans le système à la fin
du délai. Chandra et al. ont défini dans [33] les notions de justesse, qui indique si un
détecteur de pannes peut considérer comme défaillant un processus correct, et de
complétude, qui indique s’il est possible qu’un processus en panne ne soit jamais
détecté.
La tolérance aux fautes est une des méthodes permettant le développement de systèmes
surs de fonctionnement. Elle vise à éviter les défaillances et est mise en œuvre par la
détection des erreurs et le rétablissement du système. La détection permet d’identifier la
présence d’une erreur. Elle peut être effectuée soit pendant l’exécution normale du service,
soit pendant une suspension du service (ce qui permet de révéler l’éventuelle présence
d’erreurs latentes ou de fautes dormantes). Le rétablissement du système vise à transformer
l’état erroné en un état exempt d’erreur et de faute. Le traitement de fautes fait appel
à des techniques de diagnostic, de passivation, de reconfiguration ou de réinitialisation.
Le traitement de l’erreur peut se faire par trois techniques : la reprise, la poursuite et la
compensation [27].
Reprise : est la technique la plus couramment utilisée. L’état du système est sauvegardé
régulièrement. Le système est ramené dans un état sauvegardé (point de reprise) survenu
32
avant l’occurrence d’erreur.
Poursuite : consiste à rechercher un nouvel état exempt d’erreur. Ceci peut par
exemple être réalisé en associant un traitement exceptionnel lorsqu’une erreur est détectée.
Le système est amené dans un nouvel état exempt d’erreur.
La tolérance aux pannes dans les systèmes répartis et parallèles est le plus souvent
réalisée par l’emploi d’un mécanisme de redondance.
Le checkpointing est considère comme étant une technique qui consiste à sauvegarder
dans un support de stockage stable l’état d’un processus durant son exécution. En cas de
panne, le processus est redémarré depuis son dernier checkpoint [36].
33
Dans ce contexte, plusieurs actions de checkpoint sont envisagées. En effet, nous pouvons
varier les instants et les méthodes de checkpoint. En premier lieu, il se peut que l’action de
reconfiguration ne recoure à aucun checkpoint. En second lieu, nous pouvons définir un
mécanisme de checkpoint comme étant périodique, dans ce cas les différents checkpoints
sont réalisés d’une façon périodique. Comme les positions de ces checkpoints sont figées et
préalablement déterminées, nous exposons en troisième lieu un autre type de checkpoint
que nous notons un checkpoint adaptatif. Ce mécanisme offre une meilleure audibilité en
particulier au niveau du choix à propos de l’instant de checkpoint. En dernier lieu, nous
pouvons recourir à réaliser un checkpoint instantané, ceci dépend du besoin de migrer à
un instant donné en supposant qu’il est possible d’ajouter un checkpoint à cet instant de
mobilité. Il est à noter que les checkpoints peuvent avoir lieu aux barrières naturelles d’un
processus d’orchestration (c’est-à-dire au début ou à la fin d’un bloc « Flow », ou encore
dans un bloc élémentaire au début d’une structure séquentielle), sinon les checkpoints seront
qualifiés de forcés [36] .
Les protocoles de tolérance aux pannes par point de reprise se basent sur la création d’états
directement recouvrables. Ce type de protocole crée pendant l’exécution ou recherche après
une panne des états globaux cohérents qui sont utilisés pour redémarrer l’exécution. Un
état global est alors appelé ligne de recouvrement. Il existe différentes.
Approches pour assurer la cohérence de la ligne de recouvrement.
Les points de reprises sont réalisés de manière coordonnée sur tous les processus de
l’exécution, de façon à assurer que l’état global résultant soit cohérent. Le principal incon-
vénient de cette technique est le surcout introduit par la coordination de tous les processus
participants. Aussi, afin d’améliorer les performances de la sauvegarde coordonnée, plusieurs
techniques ont été proposées :
34
Ce protocole évite la phase de synchronisation par envois de messages, en utilisant
une horloge synchronisée ; Dans les deux premiers cas, ce type de protocole nécessite
l’utilisation de messages additionnels. L’approche synchronisée permet d’éviter l’effet
domino puisque tous les états globaux crées sont forcément cohérents. Une approche
synchronisée est souvent choisie en pratique à cause de sa simplicité d’implémentation
et d’intégration à un système existant.
Cette méthode consiste à faire prendre aux différents processus du système des points
de reprise de manière totalement indépendante. La cohérence des états globaux formés
n’est donc pas assurée et c’est en cas de panne que le protocole recherche une ligne de
recouvrement parmi tous les états globaux formés. Cette recherche s’effectue généralement
par la création d’un graphe de dépendance entres les points de reprise locaux.
L’inconvénient principal de cette approche est le risque d’effet domino qui peut causer une
perte importante du travail réalisé avant la panne et la sauvegarde inutile de points de
reprise, ceux-ci ne faisant jamais partie d’un état global cohérent. Ces points de reprise
augmentent le cout de l’exécution normale (i.e. en l’absence de panne) et ne servent pas
à la reprise après une panne [38]. De plus, la sauvegarde non coordonnée oblige chaque
processus à maintenir plusieurs points de reprise.
Afin de déterminer un état global cohérent (ligne de recouvrement), chaque processus dispose
d’un journal en mémoire stable dans lequel il enregistre tout ou partie des messages échangés
ainsi que leurs historiques. Lorsqu’une défaillance survient, l’algorithme de reprise utilise
les points de reprise locaux et les journaux afin de déterminer une ligne de recouvrement.
35
moins à un état global cohérent, et le dernier point pris fait toujours partie de la
ligne de recouvrement. Ces protocoles sont généralement basés sur les notions de
chemins et de cycles pour déterminer les états globaux cohérents.
• Les protocoles index-based : les points de reprise sont indexés, chaque message
porte l’index du dernier point de l’émetteur. Sur réception d’un message indiquant
un index supérieur au sien, le récepteur doit prendre un point de reprise avant la
prise en compte du message : l’incohérence est évitée "au dernier moment". Ce type
de protocole utilise donc une méthode basée sur la suppression des dépendances
causales entre les points de reprise des processus qui ont des communications directes.
Nous allons comparer ici les approches présentées dans la partie précédente. Nous ne
considèrerons que les approches synchronisées et induites par messages ; en effet,l’approche
indépendante n’implique pas réellement l’utilisation d’un protocole : la recherche d’un état
global cohérent est faite après une panne, au moment de la reprise.Nous comparerons sur
les points suivants :
Le surcout pendant l’exécution, en termes de CPU et de réseau,
Le nombre de retours arrière moyen,
Le surcout de stockage, et la facilité du ramassage sur la mémoire stable des points de
reprise devenus inutiles.
36
de panne.
Dans le cas des protocoles induits par messages, on trouve deux types de solution.
La première est d’assurer que tous les points de reprise sont utiles, c’est à dire
qu’ils font partie d’un état global cohérent. Ces protocoles sont basés sur l’approche
modelbased, et ont été classifiés par Manivannan dans [42], selon qu’ils assurent
l’absence de chemin "zigzag" (Strictly Z-Path Free (SZPF), Z-Path Free (ZPF)),
ou l’absence de cycle "zigzag" (Z-Cycle Free, ZCF). La deuxième solution est de
maximiser la probabilité que tous les points soient utiles, sans pour autant l’assurer.
C’est le cas des protocoles index-based.
Cependant, avec ces deux solutions, le dernier point de reprise d’un processus ne
fait pas toujours partie de la dernière ligne de recouvrement. Il est donc possible que
le processus doive reprendre depuis un point de reprise plus ancien. A la différence
d’une approche synchronisée, le travail potentiellement perdu par un processus en
cas de panne n’est donc pas borné.
• Surcout de stockage et ramassage : Sur ce point aussi, les protocoles synchro-
nisés sont avantageux : puisque tout état global nouvellement créé est forcément
un état cohérent, alors l’état global précèdent peut être effacé de la mémoire. Le
surcout est donc minimal puisqu’il n’est nécessaire de conserver qu’un seul état
global (plus bien sur celui en construction), et le ramassage des états devenus inutiles
deviennent trivial. Le ramassage des points de reprise dans le cas des protocoles
induits par messages est dépendant de la politique choisie, et nécessite le plus souvent
un mécanisme complexe pour déterminer les points devenus inutiles.
37
(le journal et les sauvegardes périodiques) doivent être stockées sur une mémoire stable.
Les protocoles de journalisation doivent assurer la condition de « non orphelinitè » [34]
Le protocole de reprise par journalisation pessimiste [43] repose sur l’hypothèse (pes-
simiste) qu’une défaillance peut se produire immédiatement après un événement non
déterministe. Le principe de ce protocole est donc de ne pas permettre à un processus
de dépendre d’un événement non déterministe tant que celui-ci n’a pas été stocké sur
un support stable. Concrètement, si on considère que les événements non déterministes
sont uniquement les réceptions de messages, ce protocole impose aux processus [44] de
sauvegarder tous les messages reçus avant d’émettre un message à un autre processus. Les
sauvegardes effectuées doivent donc être réalisées de manière synchrone. On trouve cette
technique dans MPI-FT et CHARM [45].
L’avantage de ce protocole est qu’il ne crée jamais de processus orphelin. Cependant, la
sauvegarde synchrone induit un surcout conséquent lors d’une exécution sans panne, en
particulier pour les applications effectuant beaucoup de communications.
38
Le principe est de conserver en mémoire locale les informations permettant de rejouer un
événement non déterministe mais également les informations de précédence (au sens de la
relation de précédence causale de Lamport) avec les autres événements non déterministes
[28].Ces informations (appelées également le déterminant) sont aussi ajoutées à tous les
messages émis vers les autres processus. Ces informations sont retirées de la mémoire locale
des processus une fois qu’elles ont été enregistrées sur un support stable.
Ainsi, à tout moment, un processus connait l’historique des événements qui ont produit
son état et celui des autres processus. Ces informations le protègent des défaillances des
autres processus et permettent de garantir la condition de «non or-phelinitè ». Parmi les
implémentations de journalisation causale nous citions le système MANETHO [48].
Figure 3.3 – comparaison des différentes méthodes de tolérance aux pannes par reprise
Le Cloud Computing et la Virtualisation ont ouvert une nouvelle fenêtre dans la gestion
des pannes. La mise en pause, la reprise, et la migration des machines virtuelles (VMs)
sont des mécanismes puissants pour gérer les défaillances dans un tel environnement. Une
machine virtuelle peut être facilement migrée vers un autre nœud lorsqu’une panne est
inspectée ou détectée. Bien que la migration soit une bonne solution afin de traiter les
39
pannes, elle a deux problèmes principaux. Premièrement, elle a des surcoûts considérables,
particulièrement si les images de VMs entières doivent être émigrées. Deuxièmement, la
prévision et la détection à l’avance des pannes est un problème majeur. Nous ne pouvons
pas commencer la migration d’une VM si le nœud dont lequel elle s’exécute est défaillant.
Jing Deng et al. [49] Proposent des techniques pour améliorer la tolérance aux pannes et la
fiabilité d’un calcul scientifique assez général : multiplication matricielle. La multiplication
de matrices sert comme une base pour la résolution et l’optimisation de nombreux problèmes
complexes.
Ils étudient une stratégie de sélection de Cloud pour décomposer le problème de multiplica-
tion de matrice en plusieurs taches qui seront soumises à différents Cloud et ils montrent que
la tolérance aux pannes et la fiabilité par rapport à la défaillance dans le Cloud Computing
peuvent être réalisés.Dans les Cloud de stockage, Bonvin et al. [50]
Proposent une Clé-Valeur autogérée (self-managed Key-value) qui alloue dynamiquement les
ressources d’un Cloud de données pour plusieurs applications dans une manière efficace et
équitable. L’approche proposée offre et maintient dynamiquement des garanties différenciées
multiples de disponibilité pour chaque application différente en présence des pannes. Les
auteurs utilisent une économie virtuelle, ou chaque partition de données (c’est à dire une
gamme clé dans un espace cohérent de hachage) agit comme un optimiseur individuel
et choisit s’il faut migrer, répliquer ou de se supprimer, basée sur la maximisation des
bénéfices nets concernant l’utilité offerte par la partition et son stockage et les couts de
maintenance. Zibin Zheng et al.[51] Proposent FTCloud qui est un framwork à base de
classement de composants pour construire des applications de Cloud tolérantes aux pannes.
FTCloud utilise les structures d’invocation de composants et les fréquences d’invocation
pour identifier les éléments importants dans une application de Cloud. Un algorithme est
proposé afin de déterminer automatiquement la stratégie optimale de tolérance aux pannes
pour ces composants significatifs.
3.6 Migration
40
destination est lancé et représente le processus déplacé. La Figure 3.3 illustre brièvement le
mécanisme de migration de processus.
Il existe différentes stratégies de migration de processus. Cette différence est due principale-
ment au contexte d’exécution considère et transfère lors de la migration. En effet, le contenu
du contexte d’exécution transfère diffère d’un mécanisme à l’autre ou, plus exactement,
d’un degré de migration à un autre.
Les techniques de virtualisation permettent notamment la migration de machines virtuelles
d’un nœud physique à un autre.
La première approche repose sur une bascule de la ressource de cluster ‘’Machine virtuelle”
d’un nœud à un autre en passant par la fonctionnalité de sauvegarde d’état :
Quick Migration. Ce mode de fonctionnement implique de réaliser un dump de la mémoire
de la machine virtuelle dans un fichier pour pouvoir arrêter la machine virtuelle (Saved
state), basculer la ressource disque sur un autre nœud du cluster et redémarrer la machine
virtuelle à l’aide du dump. Tout cela implique une interruption de l’activité de la machine
virtuelle. Le temps d’interruption dépend principalement du temps nécessaire à réaliser le
dump de la mémoire sur disque.
L’inconvénient introduit par l’opération de Quick Migration était cependant important
puisqu’il introduisait une perte du service égale à la somme des périodes de temps nécessaires
à l’opération de mise en sommeil, puis au temps de basculement et enfin au temps de réveil
de la machine virtuelle sur le nœud de destination.
Le temps de bascule avec Quick Migration pouvait être compris entre quelques secondes
et plusieurs minutes. Ce temps varie en fonction de la quantité de mémoire RAM de la
machine virtuelle, du débit disponible et aussi de la charge des machines hôtes.
La migration à chaud permet de déplacer une machine virtuelle d’un nœud physique à
un autre sans interruption de service, ce qui rend le processus totalement transparent. La
migration à chaud permet à un administrateur de débrancher une machine virtuelle d’une
infrastructure physique donnée qui nécessite une maintenance sans soumettre les utilisateurs
du système à un temps d’arrêt. Un autre avantage de la migration est qu’elle permet
d’améliorer la tolérance aux fautes. Si une défaillance imminente est suspectée, le problème
41
peut être résolu avant l’interruption du service. La migration à chaud peut également être
utilisée pour l’équilibrage de charge, afin d’optimiser l’utilisation des ressources CPU et
de mieux gérer et économiser l’énergie. Les six étapes ci-dessous détaillent le processus de
migration dans son ensemble [52] :
Etape 3 : Copie dureliquat des pages mémoires La machine virtuelle source est
mise en "pause" (il faut bien arrêter les comptes à un moment donné) afin de permettre une
ultime copie du reliquat des pages mémoires modifiées. Le Host source procède au transfert
des registres processeurs ainsi que l’état des périphériques à la machine de destination. Une
fois cette copie terminée, la machine cible est la parfaite copie de la machine source. La
durée de cette étape dépend de la bande passante disponible et de la quantité de mémoire
restant à copier (dépend de l’activité sur la machine virtuelle)...
42
nécessaires aux espaces de stockage utilisés par la machine virtuelle (VM). A ce moment, la
VM démarre sur l’hôte destination. Contrairement à la Quick Migration, une restauration de
l’état du système n’est pas nécessaire, puisque la copie s’est effectuée de mémoire à mémoire.
Bien que la live migration augmente la flexibilité pour beaucoup d’application, elle peut
s’avérer intéressante lors de cas pratiques de la « vraie vie ».
Maintenance des hôtes physiques La live migration apporte deux bénéfices princi-
paux à la maintenance d’hôte physique. La capacité de migrer une machine virtuelle d’un
hôte physique à un autre sans aucun arrêt, permettant de copier l’ensemble des machines
virtuelles vers un autre serveur, et de les recopier lorsque la maintenance est terminée
sur leur serveur initial, sans que les services effectués par les machines virtuelles ne soient
interrompus.
Data Center Dynamiques Avec la live migration, il est possible de mettre en place
des environnements IT dynamiques. Ces environnements dynamiques rendent plus facile la
gestion des ressources du serveur hôte.
Prenons par exemple le cas de l’utilisation d’un site Web comprenant de nombreux accès
simultanés. Lorsque ces accès augmentent, sa charge continue d’augmenter. Au fur et à me-
sure que la charge varie, les machines virtuelles peuvent être transférées entre les différents
hôtes afin de garder le meilleur ratio d’utilisation possible. Les hôtes non utilisés sont «
parqués » (rendus inactifs), réduisant par la même occasion la consommation électrique et
le refroidissement nécessaire [53].
43
3.7 Conclusion
Dans ce chapitre nous avons présenté un aperçu de la tolérance aux pannes pour les
systèmes distribués et les Cloud Computing. En premier lieu, nous avons abordé d’un point
de vue très général la sureté de fonctionnement et le vocabulaire associé au domaine de la
tolérance aux fautes. Il apparait que la tolérance aux fautes n’est qu’une des approches qui
permettent d’assurer la sureté de fonctionnement.
Les méthodes de tolérance basées sur une mémoire stable semblent plus adaptées. Parmi
les méthodes basées sur une mémoire stable, nous distinguons les approches utilisant la
journalisation des événements non déterministes et les approches réalisant une sauvegarde de
l’état des processus. Notre but dans ce travail est de garantir la tolérance aux pannes dans les
Cloud Computing. Pour cela nous proposons dans le prochain chapitre une architecture de
tolérance aux pannes qui permet de garantir la continuité des services du Cloud Computing
d’une façon transparent et efficace en cas de pannes.
44
Chapitre 4
Description et modélisation De l’approche
proposées
Sommaire
4.1 Partie I : Description . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.1.1 Objectif du travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.1.2 Description de la premier approche : réplication de données . . . . . 46
4.1.3 Phase D’initialisation . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.1.4 Phase de traitement . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.1.5 La stratégie de replication de données . . . . . . . . . . . . . . . . . 49
4.1.6 Description de la 2 éme approche : (migration de données) . . . . . 50
4.1.7 Les différentes phases . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.1.8 Phase de traitement . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.2 Partie II : Conception . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.2.1 Diagramme d’utilisation . . . . . . . . . . . . . . . . . . . . . . . . 55
4.2.2 Diagramme de classes . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.2.3 Diagramme d’état . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.2.4 Diagramme de sequence . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
45
Introduction :
e chapitre présente nos contributions à la tolérant aux fautes Nous allons présenter
C deux approches : la première approche pour gérer la réplication des données dans
les Cloud Computing et la deuxième approche pour gérer la tolérance aux pannes
dans le cloud.
La modélisation est une étape préliminaire pour la description du fonctionnement de toute
approche proposée, elle tient compte les principales caractéristiques et les relations entre
les différents composants. Nous présentons dans ce chapitre les étapes de conception des
deux approches proposées et la modélisation de leurs services.
L’objectif de notre travail est de proposer un mécanisme dynamique tolérant aux fautes
des données dans le Cloud Computing. Nous avons proposé deux approches, dans la première
approche, nous avons géré la réplication de données, et cela dans le but d’améliorer les
performances du système en augmentant la disponibilité des donnée et en réduisant le temps
de réponse moyenne des requêtes des utilisateur, ainsi d’augmenter le profit des fournisseur
grâce à l’optimisation des ressource alloué.
Dans la deuxième approche, nous avons utilisé la migration de données. L’avantage de la
migration est qu’elle permet d’améliorer la tolérance aux fautes.
46
4.1.3 Phase D’initialisation
Concernant cette phase d’initialisation, basé sur 3 principales étapes, chaque étape
décrit une partie de notre approche proposée.
1. Étape de configuration : cette étape est caractérisée par la définition des différents
composants du Cloud (les nombres des Datacenter, nombres des VMs), comme c’est
illustré dans la Figure 4.1
47
Figure 4.2 – Placement de données
Cette partie décrit La stratégie de réplication de données que nous avons proposées.
Dans un premier temps nous allons présenter l’algorithme de création de réplique et puis
nous présentons certaines métriques que nous avons utilisées dans notre approche et qui
ont pour but d’établir et d’évaluer le comportement de celle-ci.
48
4.1.5 La stratégie de replication de données
L’idée générale est de créer de nouvelles répliques selon une certaine disponibilité exigée
par l’utilisateur. Cette création vérifie certaine condition comme le budget, le coût de
réplication.
49
tuelle, nous utilisons cette formule :
tailledecloudlet
tempsd0 execution = (4.1)
lavitesse
Où la taille de cloudlet représente le nombre d’instruction de la requête Et vitesse,
c’est la vitesse d’exécution de la machine virtuelle donnée par MIPS.
b) Calcul du temps d’attente de la cloudlet : Pour déterminé le temps d’at-
tente moyenne de la requête req, nous devons déterminer en premier temps le
nombre des requêtes qui sont dans la liste d’attentes. Puis nous devons calculer
le temps restant pour libérer les ressources, c’est-à-dire le temps nécessaire pour
terminer les requêtes (temps d’accès à la donnée) qui sont en cours d’exécution.
Il faut aussi déterminer le nombre de répliques de la donnée dans ce Datacenter.
Le temps d’attente moyenne est la somme de ces deux temps ;
50
du système continuent à fournir aux utilisateurs des réponses même si une ou plu-
sieurs entités sont défaillantes. La réplication de données a pour but de proposer
une haute disponibilité qui est exigée par l’utilisateur. Mais la réplication toute
seule n’est pas suffisante pour faire face aux défaillances. Nous avons ajouté la stra-
tégie de migration pour Le but de la migration est d’améliorer la tolérance aux pannes.
Dans cette phase, le Datacenter identifie son état après détections des nouvelles
pannes. Nous avons défini trois états pour un Datacenter.
51
- État normal : le nombre de noeuds en pannes est inférieur au seuil T min
- État suspect : le nombre de noeuds en pannes entre T min et T max
- État critique : quand le nombre de noeuds en pannes dépasse T max
Deux paramètres système sont utilisés : les seuils de panne T min et T max, ces
paramètres fixent la marge de chacun des trois états comme le montre la Figure 4.6
52
Figure 4.7 – Algorithme de changement d’état
53
Figure 4.8 – Algorithme traitement de requête
Pour décrire les différentes étapes d’optimisation dans notre travail, nous avons opté
pour le langage UML pour plusieurs raisons :
* langage servant à décrire des modèles d’un système (réel ou logiciel) basé sur des
concepts orienté-objets.
* Système de notations pour modéliser les systèmes en utilisant des concepts orienté
objets.
* Représente un standard de modélisation, une notation : il s’agit donc d’un outil
et non d’une méthode ; chacun peut utiliser la méthode la plus appropriée à ses
besoins.
* Il permet de représenter l’aspect traitement du système aussi bien que l’aspect
donné.
Dans ce chapitre, nous présentons la conception des différents éléments du système.
Nous utilisons pour cela :
- Diagramme de cas d’utilisation
- Diagramme de séquence
- Diagramme d’activité
- Diagramme de classe
* Pacestar UML Diagramme comme outil pour établir les diagramme UML
54
4.2.1 Diagramme d’utilisation
Nous présentons maintenant une vue globale de notre simulateur qui permet de
détailler les différentes étapes effectuées pour réaliser une simulation. La Figure 4.9
représente les fonctionnalités d’utilisation nécessaires à l’application. Le diagramme
des cas d’utilisation, est une modélisation d’une fonctionnalité du système, il se
détermine en observant et en précisant acteur par acteur les séquences d’interactions
avec le système. Les cas d’utilisation décrivent les fonctions du système selon le point
de vue des utilisateurs. Le cas d’utilisation spécifie une séquence d’actions tel que la
configuration de la Cloud et afficher le résultat.
Un acteur :est une entité externe au système, dans notre cas c’est l’utilisateur
(user) qui joue un rôle importants, On a un type d’acteur .
DC : Datacenter.
55
4.2.2 Diagramme de classes
Le diagramme de classes permet de représenter la structure du système comme un
ensemble de relations entre classes. Le simulateur CloudSim est composé de plusieurs
classes que nous pouvons classer en deux catégories : les classes que nous avons
modifiées sont montrées en bleu dans la Figure 4.10 comme la classe Datacenter,
Datacenter Broker, . . . et les classes que nous avons ajoutées sont présentées en
rouge dans la même Figure.
56
4.2.3 Diagramme d’état
* Diagramme d’état de la stratégie proposée
57
* Diagramme d’état création des répliques :L’idée générale est de créer de
nouvelles répliques cette création vérifie certaine condition comme le budget, le
coût de réplique et garantit d’ajouter des répliques
58
4.2.4 Diagramme de sequence
Le diagramme de séquence est l’un des vues dynamiques les plus importantes
d’UML.Nous allons présenter les diagrammes de séquence de l’approche basée sur la
migration de données.
Le diagramme illustré dans la figure 4.13 représente le flux de communication entre
les principaux acteurs de CloudSim. La présence d’une panne, le Datacenter met à
jour son état, si l’état d’un Datacenter est en état normale, le Broker peut envoyer
des requêtes à ce Datacenter pour être exécuté.
59
Figure 4.14 – diagramme de sequence « état suspect »
Si une ou plusieurs pannes sont détectées et que ces pannes modifient l’état du
Datacenter en état Suspect, alors le Broker peut envoyer des requêtes à ce Datacenter
à condition qu’il hébergé les données demandées par ces requêtes.
60
Figure 4.15 – diagramme de sequence « état suspect »
61
Figure 4.16 – diagramme de sequence « état critique »
Si l’état d’un Datacenter est en état critique, le Broker n’envoi aucune nouvelle
requête à ce Datacenter et lance le processus de migration.
62
4.3 Conclusion
Dans ce chapitre, nous avons présenté la description et la conception des deux
approches proposées ; la première approche est basée sur la réplication pour faire
face aux panne, la réplication permet aussi d’augmenter la disponibilité ; la deuxième
approche est une combinaison de la réplication et de la migration des données ; le
but d’utiliser la migration est d’augmenter la tolérance aux panne et de réduire les
échecs d’exécution dû aux panne.
Dans ce chapitre nous somme se concentrer sur la démarche description et conception
des approches proposées. Nous avons présenté les différents algorithmes proposés
pour décrire le fonctionnement de nos deux approches. Ainsi quelques diagrammes
qui ont été formalisées à l’aide du langage UML pour décrire les différentes étapes
de conception.
Le prochain chapitre sera consacré à la partie d’implémentation et évaluation de nos
propositions de tolérance aux pannes. Nous mettrons en évidence l’importance et
l’efficacité des approches proposées.
63
Chapitre 5
Implémentation
Sommaire
5.1 Introduction : . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
5.2 Langage de programmation Java : . . . . . . . . . . . . . . 66
5.2.1 Avantages de la java . . . . . . . . . . . . . . . . . . . . . . . 66
5.2.2 Environnements de développement : . . . . . . . . . . . . . . 67
5.2.3 Architecture de CloudSim . . . . . . . . . . . . . . . . . . . . 67
5.3 Interface principale . . . . . . . . . . . . . . . . . . . . . . . 68
5.3.1 Configuration du DataCenter . . . . . . . . . . . . . . . . . . 68
5.3.2 Configuration des données . . . . . . . . . . . . . . . . . . . . 70
5.3.3 Configuration des machines virtuelles . . . . . . . . . . . . . 70
5.3.4 Configuration des Cloudlet . . . . . . . . . . . . . . . . . . . 71
5.3.5 Configuration de mécanisme de tolérance aux pannes . . . . . 72
5.3.6 Lancement de la simulation . . . . . . . . . . . . . . . . . . . 72
5.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
65
5.1 Introduction :
e Chapitre est consacré à la réalisation et la concrétisation de nos approches
C proposées, qui consiste à répliquer les données et tolérer les pannes dans
les environnements de Cloud Computing.
Dans un premier temps, nous présentons l’environnement de notre travail, puis nous
définissons les différents services de simulateur CloudSim, ensuite nous décrivons
quelques interfaces graphiques, et finalement nous présentons une série de simulations
et leurs interprétations pour mettre en évidence nos propositions.
66
le code C++ contient au moins une erreur toutes les cinquante lignes)
67
Figure 5.1 – Architecture de CloudSim
68
DataCenter, Données, Virtuel Machine, Cloudlet, Fault Tolérant
Cette étape consiste à faire entrer les paramètres nécessaires Pour configurer
la topologie du Cloud (Figure 5.3) comme : le nombre de Data Center,
d’hôtes, de CPU, la vitesse de chaque CPU, le coût de Réplique, la taille de la
mémoire, le coût de la mémoire, la taille du disque dur, le coût de stockage et la
bande passante ainsi que son coût.
FIGURE 5.4 : Pour créer des nouveau Datacenter, on click sur le bouton
ADD, les Datacenter crées s’affiche dans la liste Datacenter List. Pour
ajouter des Host à un Datacenter. On doit sélectionner le Datacenter en
premier puis on click sur Add Host. Une fenêtre apparait pour configurer l’hôte.
69
5.3.2 Configuration des données
La Figure 5.5 représente l’étape de création des données. Pour ajouter une
donnée, on doit configurer les paramètres suivants : le nom de la donnée, sa
taille, le Datacenter qui héberge cette donnée et l’id de l’hôte où se trouve
cette donnée.
70
5.3.4 Configuration des Cloudlet
La figure 5.7 représente l’onglet qui permet de configurer les propriétés de
la Cloudlets, parmi ces propriétés on trouve :
71
5.3.5 Configuration de mécanisme de tolérance aux
pannes
L’onglet Fault Tolérant permet à l’utilisateur d’injecter les pannes et de
sélectionner le mécanisme de tolérance aux pannes. Si l’utilisateur choisi
l’option
72
5.4 Conclusion
Dans ce chapitre, nous avons présenté l’implémentation de notre application
ainsi que les résultats obtenus. Nous avons réalisé plusieurs simulations en
jouant sur différents paramètres comme : le nombre de cloudlets, le nombre
de pannes.
73
Conclusion Générale
75
Résumé — Le cloud computing ou informatique dans les nuages pour-
rait bien révolutionner l’informatique des entreprises.Ce concept,apparu
récemment et qui permet désormais d’externaliser l’utilisation de la mémoire
ainsi que les capacités de calcul d’ordinateurs et de serveurs répartis dans le monde
entier,permet en et aux entreprises de disposer d’une formidable puissance informa-
tique s’adaptant de surcroît ‘a la demande. Mais si le cloud computing présente de
nombreux avantages,comme toute nouvelle avancée technologique,celle-ci comporte
également un certain nombre de risques dont il convient de se prémunir dans le
cadre d’un contrat adapté. C’est pourquoi au cours de ce travail,nous nous sommes
intéressés à tolérant aux fautes Des données dans le Cloud Computing,ou nous avons
présenté deux s’approche "réplication et Migration".