Cours de Systèmes Répartis: Partie 2 - Tolérance aux Pannes
Ce cours de systèmes répartis aborde la tolérance aux pannes, une thématique essentielle pour garantir la fiabilité et la disponibilité des services dans les systèmes informatiques distribués.
D'après le document Cours de Systèmes Répartis: Partie 2 - Tolérance aux Pannes
Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.
Document source
Distributed Systems · PDF · 15 pages · 2019
Afficher l'aperçu du document
Ce cours de systèmes répartis aborde la tolérance aux pannes, une thématique essentielle pour garantir la fiabilité et la disponibilité des services dans les systèmes informatiques distribués. Il s’inscrit dans la continuité d’une formation sur les systèmes répartis en présentant les concepts fondamentaux de la sûreté de fonctionnement, les différents types de défaillances, ainsi que les techniques permettant d’assurer la continuité du service malgré les fautes.
Définition et propriétés d’un service
Un service est défini comme un ensemble de fonctions accessibles via une interface, constituant un contrat entre le fournisseur et l’utilisateur. La confiance que les utilisateurs placent dans un système repose sur la capacité de ce dernier à délivrer un service conforme à ses spécifications.
Les propriétés attendues d’un service se divisent en deux catégories :
- Propriétés fonctionnelles : elles garantissent la validité ou « correctness » du service, c’est-à-dire la conformité aux spécifications, incluant les propriétés de sûreté (absence de comportements indésirables) et de vivacité (réactivité).
- Propriétés non fonctionnelles : elles concernent notamment les performances et la sûreté de fonctionnement, qui regroupent la fiabilité, la disponibilité et la sécurité.
Sûreté de fonctionnement : fiabilité, disponibilité et sécurité
La sûreté de fonctionnement se décline en plusieurs notions clés :
- Fiabilité (reliability) : probabilité que le système fonctionne sans défaillance sur un intervalle de temps donné. Elle se mesure par la fonction R(t), la probabilité que le système ne soit pas défaillant entre 0 et t, et par le MTTF (Mean Time To Failure), le temps moyen jusqu’à la prochaine panne.
- Disponibilité (availability) : probabilité que le service soit accessible à un instant donné, notée A(t), et disponibilité moyenne a, la fraction moyenne du temps où le service est effectivement fourni. La disponibilité dépend aussi du temps moyen de réparation MTTR (Mean Time To Repair).
- Sécurité au sens safety : un mauvais fonctionnement ne doit pas avoir d’impact catastrophique sur l’environnement.
- Sécurité au sens security : le système garantit la confidentialité, l’intégrité des informations et le contrôle d’accès, assurant que seuls les utilisateurs autorisés peuvent accéder au service.
Défaillances et modèles de pannes
Une défaillance (ou panne) survient lorsqu’un système ou un composant ne respecte plus ses spécifications. On considère le système comme une « boîte noire » observée uniquement par ses entrées et sorties.
Les défaillances se classent selon leur gravité et leur nature :
- Panne franche (fail-stop) : le système fonctionne correctement ou s’arrête complètement, ne produisant aucun résultat erroné. Cette situation est la plus simple à gérer et on cherche souvent à y ramener les autres types de pannes en forçant un arrêt rapide dès qu’une erreur est détectée (technique fail fast).
- Panne par omission : le système perd des messages entrants ou sortants sans autre déviation. Ce type de panne est plus difficile à traiter que la panne franche et peut représenter des défaillances réseau.
- Pannes de temporisation : les seules déviations concernent le temps, par exemple un délai de réaction trop long à un événement.
- Pannes arbitraires (byzantines) : le système peut se comporter de manière erratique ou malveillante, produisant des résultats incorrects ou incohérents. Ce modèle est utilisé pour des systèmes à très haute fiabilité dans des environnements hostiles, mais nécessite une forte redondance pour être géré.
Analyse des défaillances : de l’erreur à la défaillance
Une erreur est un état incorrect dans le système qui peut, mais ne provoque pas nécessairement, une défaillance. La présence de redondances internes ou le fait que la partie erronée de l’état ne soit pas utilisée immédiatement peut retarder ou empêcher la défaillance.
On parle d’erreur latente tant qu’elle n’a pas causé de défaillance. Le temps entre l’apparition de l’erreur et la défaillance est appelé délai de latence. Plus ce délai est long, plus il est difficile d’identifier la cause de la défaillance.
Assurer la sûreté de fonctionnement
Deux approches principales permettent de garantir la sûreté de fonctionnement :
- Évitement des fautes : il s’agit d’empêcher l’apparition des fautes par :
- La prévention, en analysant les causes potentielles et en prenant des mesures pour les éliminer ou réduire leur probabilité.
- L’évaluation, en prévoyant statistiquement les fautes et les moyens d’y faire face.
- La vérification, en examinant et éliminant les fautes restantes avant la mise en service du système.
- Tolérance aux fautes : elle vise à maintenir le service malgré la présence de fautes, notamment grâce à la redondance, qu’elle soit matérielle, logicielle ou des données.
Étapes de la tolérance aux fautes
La tolérance aux fautes s’appuie sur plusieurs étapes successives :
- Détection : identifier la présence d’une erreur ou d’une défaillance.
- Localisation : déterminer précisément où et quand l’erreur ou la défaillance est apparue.
- Isolation : confiner l’erreur pour éviter qu’elle ne se propage à d’autres parties du système.
- Réparation : remettre le système en état de fournir un service correct.
Traitement des erreurs : recouvrement et compensation
Le traitement des erreurs peut se faire par :
- Recouvrement (error recovery) : remplacer un état erroné par un état correct. Cela nécessite la détection précise de l’erreur et peut se faire par :
- Reprise (backward recovery) : retour à un état antérieur correct.
- Poursuite (forward recovery) : correction de l’état erroné pour continuer le traitement.
- Compensation (error masking) : l’état du système possède une redondance interne suffisante pour détecter et corriger automatiquement l’erreur sans interruption du service.
Points clés
- Un service est défini par une interface garantissant un contrat entre fournisseur et utilisateur.
- La sûreté de fonctionnement inclut la fiabilité, la disponibilité et la sécurité (safety et security).
- Les défaillances se classent en pannes franches, par omission, de temporisation et arbitraires (byzantines).
- La fiabilité se mesure par R(t) et MTTF, la disponibilité par A(t) et MTTR.
- Une erreur peut être latente avant de provoquer une défaillance, ce qui complique l’analyse.
- La sûreté se garantit par évitement des fautes (prévention, évaluation, vérification) et tolérance aux fautes (redondance).
- La tolérance aux fautes comprend détection, localisation, isolation et réparation.
- Le traitement des erreurs se fait par recouvrement (reprise ou poursuite) ou compensation par redondance interne.
Commentaires
Aucun commentaire pour le moment. Posez la première question.