Download - Introduction à la tolérance aux défaillances Joffroy Beauquier LRI CNRS – Université Paris Sud
![Page 1: Introduction à la tolérance aux défaillances Joffroy Beauquier LRI CNRS – Université Paris Sud](https://reader035.vdocuments.pub/reader035/viewer/2022062417/551d9d81497959293b8ba8d6/html5/thumbnails/1.jpg)
Introduction à la tolérance aux défaillances
Joffroy Beauquier
LRI CNRS – Université Paris Sud
![Page 2: Introduction à la tolérance aux défaillances Joffroy Beauquier LRI CNRS – Université Paris Sud](https://reader035.vdocuments.pub/reader035/viewer/2022062417/551d9d81497959293b8ba8d6/html5/thumbnails/2.jpg)
![Page 3: Introduction à la tolérance aux défaillances Joffroy Beauquier LRI CNRS – Université Paris Sud](https://reader035.vdocuments.pub/reader035/viewer/2022062417/551d9d81497959293b8ba8d6/html5/thumbnails/3.jpg)
Défaillances
![Page 4: Introduction à la tolérance aux défaillances Joffroy Beauquier LRI CNRS – Université Paris Sud](https://reader035.vdocuments.pub/reader035/viewer/2022062417/551d9d81497959293b8ba8d6/html5/thumbnails/4.jpg)
Motivation Accroissement du nombre des
composants Impossibilité de relancer le
système chaque fois qu’une défaillance se produit
Le problème se pose aussi dans le cas séquentiel
![Page 5: Introduction à la tolérance aux défaillances Joffroy Beauquier LRI CNRS – Université Paris Sud](https://reader035.vdocuments.pub/reader035/viewer/2022062417/551d9d81497959293b8ba8d6/html5/thumbnails/5.jpg)
Trois approches Algorithmes robustes Auto-stabilisation Etats de reprise et retours en
arrière
![Page 6: Introduction à la tolérance aux défaillances Joffroy Beauquier LRI CNRS – Université Paris Sud](https://reader035.vdocuments.pub/reader035/viewer/2022062417/551d9d81497959293b8ba8d6/html5/thumbnails/6.jpg)
Les hypothèses (algorithmes robustes) Les défaillances n’affectent qu’une
partie du système Utilisation de la redondance par la
multiplication Mais problème du consensus Bien entendu les défaillances
peuvent frapper l’algorithme de consensus
![Page 7: Introduction à la tolérance aux défaillances Joffroy Beauquier LRI CNRS – Université Paris Sud](https://reader035.vdocuments.pub/reader035/viewer/2022062417/551d9d81497959293b8ba8d6/html5/thumbnails/7.jpg)
Types de défaillances (algorithmes robustes) Processus initialement morts Défaillances définitives Omissions Comportement byzantin
(malveillant) Hiérarchie de défaillances
![Page 8: Introduction à la tolérance aux défaillances Joffroy Beauquier LRI CNRS – Université Paris Sud](https://reader035.vdocuments.pub/reader035/viewer/2022062417/551d9d81497959293b8ba8d6/html5/thumbnails/8.jpg)
Les hypothèses (auto-stabilisation) Les défaillances peuvent frapper
tout ce qui n’est pas fixe dans le système (mémoires, canaux mais pas le code)
Les défaillances sont peu fréquentes (par rapport au temps de récupération)
![Page 9: Introduction à la tolérance aux défaillances Joffroy Beauquier LRI CNRS – Université Paris Sud](https://reader035.vdocuments.pub/reader035/viewer/2022062417/551d9d81497959293b8ba8d6/html5/thumbnails/9.jpg)
Algorithmes robustes L’effet des défaillances est masqué La correction est maintenue tout au
long de l’exécution Le surcoût dû au contrôle est très
important Approche réservée à des systèmes
critiques (aviation civile, contrôle de centrales nucléaires, navette spatiale)
![Page 10: Introduction à la tolérance aux défaillances Joffroy Beauquier LRI CNRS – Université Paris Sud](https://reader035.vdocuments.pub/reader035/viewer/2022062417/551d9d81497959293b8ba8d6/html5/thumbnails/10.jpg)
Algorithmes auto-stabilisants L’effet des défaillances n’est pas
masqué Après des défaillances, le
comportement cesse d’être correct, mais après un certain délai, il le redevient, sans intervention extérieure ou centralisée
Le surcoût en phase stabilisée est faible
![Page 11: Introduction à la tolérance aux défaillances Joffroy Beauquier LRI CNRS – Université Paris Sud](https://reader035.vdocuments.pub/reader035/viewer/2022062417/551d9d81497959293b8ba8d6/html5/thumbnails/11.jpg)
Auto-stabilisation
Temps
Etats
Etats légitimes
Défaillances
![Page 12: Introduction à la tolérance aux défaillances Joffroy Beauquier LRI CNRS – Université Paris Sud](https://reader035.vdocuments.pub/reader035/viewer/2022062417/551d9d81497959293b8ba8d6/html5/thumbnails/12.jpg)
Problèmes de décision (alg. robustes) Chaque processus dispose d’une
valeur d’entrée Chaque processus (correct) doit
écrire de manière irréversible une valeur de sortie
La valeur de décision dépend des valeurs d’entrée
![Page 13: Introduction à la tolérance aux défaillances Joffroy Beauquier LRI CNRS – Université Paris Sud](https://reader035.vdocuments.pub/reader035/viewer/2022062417/551d9d81497959293b8ba8d6/html5/thumbnails/13.jpg)
Consensus sur les entrées Calculs répliqués sur plusieurs machines (au
début d’un pas, les valeurs d’entrée sont identiques)
Pour chaque pas de calcul, on obtient donc autant de résultats que de réplications
En l’absence de défaillances tous les résultats sont identiques
Avec des défaillances ils peuvent être différents. On veut que les processus non défaillants tombent d’accord sur la valeur à utiliser pour le pas suivant
![Page 14: Introduction à la tolérance aux défaillances Joffroy Beauquier LRI CNRS – Université Paris Sud](https://reader035.vdocuments.pub/reader035/viewer/2022062417/551d9d81497959293b8ba8d6/html5/thumbnails/14.jpg)
Consensus : exemples L’effet d’un capteur défectueux,
qui donne des résultats différents de ceux des capteurs en bon état, doit être neutralisé
La navette spatiale
![Page 15: Introduction à la tolérance aux défaillances Joffroy Beauquier LRI CNRS – Université Paris Sud](https://reader035.vdocuments.pub/reader035/viewer/2022062417/551d9d81497959293b8ba8d6/html5/thumbnails/15.jpg)
Voteur
1 1 1 1
1
0111
![Page 16: Introduction à la tolérance aux défaillances Joffroy Beauquier LRI CNRS – Université Paris Sud](https://reader035.vdocuments.pub/reader035/viewer/2022062417/551d9d81497959293b8ba8d6/html5/thumbnails/16.jpg)
Diffusion fiable
![Page 17: Introduction à la tolérance aux défaillances Joffroy Beauquier LRI CNRS – Université Paris Sud](https://reader035.vdocuments.pub/reader035/viewer/2022062417/551d9d81497959293b8ba8d6/html5/thumbnails/17.jpg)
Diffusion fiable Un diffuseur doit envoyer une valeur à
tous les autres processus Chaque processus doit décider une
valeur Tous les processus corrects doivent
décider la même valeur Si le diffuseur est non-défaillant, la
valeur décidée doit être la valeur du diffuseur
![Page 18: Introduction à la tolérance aux défaillances Joffroy Beauquier LRI CNRS – Université Paris Sud](https://reader035.vdocuments.pub/reader035/viewer/2022062417/551d9d81497959293b8ba8d6/html5/thumbnails/18.jpg)
Commit/abort
![Page 19: Introduction à la tolérance aux défaillances Joffroy Beauquier LRI CNRS – Université Paris Sud](https://reader035.vdocuments.pub/reader035/viewer/2022062417/551d9d81497959293b8ba8d6/html5/thumbnails/19.jpg)
Commit-Abort Base de données répliquée Une transaction impliquant plusieurs
sites doit être exécutée (commit) soit sur tous les sites, soit sur aucun (abort)
Vote des sites (oui ou non) Si tous les sites votent oui chacun doit
décider oui Si un des sites vote non chacun doit
décider non
![Page 20: Introduction à la tolérance aux défaillances Joffroy Beauquier LRI CNRS – Université Paris Sud](https://reader035.vdocuments.pub/reader035/viewer/2022062417/551d9d81497959293b8ba8d6/html5/thumbnails/20.jpg)
Election Un des processus doit décider
d’être le leader et les autres de ne pas l’être
Régénération du jeton d’un token ring
Désignation d’un serveur
![Page 21: Introduction à la tolérance aux défaillances Joffroy Beauquier LRI CNRS – Université Paris Sud](https://reader035.vdocuments.pub/reader035/viewer/2022062417/551d9d81497959293b8ba8d6/html5/thumbnails/21.jpg)
Group membership Systèmes en ligne (contrôle du
traffic aérien, système d’exploitation)
Les composants défectueux doivent être réparés
Nécessité de reconfigurer le groupe des processeurs actifs
![Page 22: Introduction à la tolérance aux défaillances Joffroy Beauquier LRI CNRS – Université Paris Sud](https://reader035.vdocuments.pub/reader035/viewer/2022062417/551d9d81497959293b8ba8d6/html5/thumbnails/22.jpg)
Consensus : spécification Terminaison : tout processus non
défaillant décide une valeur Accord : deux processus non
défaillants ne décident pas deux valeurs différentes
Non-trivialité : si les valeurs initiales des processus non défaillants sont égales, c’est la seule valeur de décision possible
![Page 23: Introduction à la tolérance aux défaillances Joffroy Beauquier LRI CNRS – Université Paris Sud](https://reader035.vdocuments.pub/reader035/viewer/2022062417/551d9d81497959293b8ba8d6/html5/thumbnails/23.jpg)
Consensus : résultat d’impossibilité Il n’existe pas d’algorithme
résolvant le consensus dans un système asynchrone où les défaillances se réduisent à une seule panne « crash »
![Page 24: Introduction à la tolérance aux défaillances Joffroy Beauquier LRI CNRS – Université Paris Sud](https://reader035.vdocuments.pub/reader035/viewer/2022062417/551d9d81497959293b8ba8d6/html5/thumbnails/24.jpg)
Contourner le résultat d’impossibilité Introduire des hypothèses de
synchronisme partiel Détecteurs de défaillances Solutions probabilistes
![Page 25: Introduction à la tolérance aux défaillances Joffroy Beauquier LRI CNRS – Université Paris Sud](https://reader035.vdocuments.pub/reader035/viewer/2022062417/551d9d81497959293b8ba8d6/html5/thumbnails/25.jpg)
Les détecteurs de défaillances Chandra et Toueg (1996)
RéseauRéseau
Oracle
Oracle
P en panne?
P en panne?
Peut-être!
Peut-être!
![Page 26: Introduction à la tolérance aux défaillances Joffroy Beauquier LRI CNRS – Université Paris Sud](https://reader035.vdocuments.pub/reader035/viewer/2022062417/551d9d81497959293b8ba8d6/html5/thumbnails/26.jpg)
Les détecteurs de défaillances Défaillances de type « crash » Un détecteur de défaillances est
un module qui fournit une liste de processus suspectés de crash
Détecteur le plus faible pour résoudre le consensus : il existe un instant à partir duquel il existe un processus correct qui n’est jamais suspecté
![Page 27: Introduction à la tolérance aux défaillances Joffroy Beauquier LRI CNRS – Université Paris Sud](https://reader035.vdocuments.pub/reader035/viewer/2022062417/551d9d81497959293b8ba8d6/html5/thumbnails/27.jpg)
Auto-stabilisation
Temps
Etats
Etats légitimes
Défaillances
Auto-stabilisation
Temps
Etats
Etats légitimes
Défaillances
![Page 28: Introduction à la tolérance aux défaillances Joffroy Beauquier LRI CNRS – Université Paris Sud](https://reader035.vdocuments.pub/reader035/viewer/2022062417/551d9d81497959293b8ba8d6/html5/thumbnails/28.jpg)
Auto-stabilisation : le cas du token ring
Chaque processus possède une seule variable de type {0, 1, 2, 3, 4, 5}
4
3
0
3
0
5
![Page 29: Introduction à la tolérance aux défaillances Joffroy Beauquier LRI CNRS – Université Paris Sud](https://reader035.vdocuments.pub/reader035/viewer/2022062417/551d9d81497959293b8ba8d6/html5/thumbnails/29.jpg)
Auto-stabilisation : le cas du token ring
4
3
0
3
0
5
5
3
0
3
0
5
![Page 30: Introduction à la tolérance aux défaillances Joffroy Beauquier LRI CNRS – Université Paris Sud](https://reader035.vdocuments.pub/reader035/viewer/2022062417/551d9d81497959293b8ba8d6/html5/thumbnails/30.jpg)
Auto-stabilisation : le cas du token ring
5
3
0
3
0
5
5
5
0
3
0
5
5
5
0
3
3
5
![Page 31: Introduction à la tolérance aux défaillances Joffroy Beauquier LRI CNRS – Université Paris Sud](https://reader035.vdocuments.pub/reader035/viewer/2022062417/551d9d81497959293b8ba8d6/html5/thumbnails/31.jpg)
Auto-stabilisation : le cas du token ring
5
5
0
3
3
5
5
5
0
5
3
5
5
5
0
5
5
5
![Page 32: Introduction à la tolérance aux défaillances Joffroy Beauquier LRI CNRS – Université Paris Sud](https://reader035.vdocuments.pub/reader035/viewer/2022062417/551d9d81497959293b8ba8d6/html5/thumbnails/32.jpg)
Auto-stabilisation : le cas du token ring
5
5
0
5
5
5
5
5
5
5
5
5
5
5
5
5
5
0
![Page 33: Introduction à la tolérance aux défaillances Joffroy Beauquier LRI CNRS – Université Paris Sud](https://reader035.vdocuments.pub/reader035/viewer/2022062417/551d9d81497959293b8ba8d6/html5/thumbnails/33.jpg)
Avantages de l’auto-stabilisation (1) Pas besoin d’initialisation Adaptée par nature aux réseaux
dynamiques Pas besoin de reset ni d’intervention
extérieure pas de centralisation Très faible surcoût en phase stabilisée :
les échanges sont purement locaux Tolérance suffisante pour les applications
non critiques
![Page 34: Introduction à la tolérance aux défaillances Joffroy Beauquier LRI CNRS – Université Paris Sud](https://reader035.vdocuments.pub/reader035/viewer/2022062417/551d9d81497959293b8ba8d6/html5/thumbnails/34.jpg)
Avantages de l’auto-stabilisation (2) Pas de diffusions coûteuses Solutions à mémoire bornée Solutions time-adaptive Technique éprouvée et
incontournable La formalisation permet d’obtenir
des outils génériques qui simplifient la programmation
![Page 35: Introduction à la tolérance aux défaillances Joffroy Beauquier LRI CNRS – Université Paris Sud](https://reader035.vdocuments.pub/reader035/viewer/2022062417/551d9d81497959293b8ba8d6/html5/thumbnails/35.jpg)
Conclusion (1) Deux aspects critiques des
systèmes répartis actuels : fiabilité et sécurité
Pour la fiabilité, deux approches : Réplication + consensus : coûteux, mais
les défaillances sont masquées Auto-stabilisation : moins coûteux, mais
la correction n’est pas garantie durant la phase de stabilisation
![Page 36: Introduction à la tolérance aux défaillances Joffroy Beauquier LRI CNRS – Université Paris Sud](https://reader035.vdocuments.pub/reader035/viewer/2022062417/551d9d81497959293b8ba8d6/html5/thumbnails/36.jpg)
Conclusion (2)
La solution réside sans doute dans la complémentarité des deux approches (Cf. Projet de maison intelligente de Microsoft)
Il existe aussi d’autres techniques à base de points de reprise