Vous êtes sur la page 1sur 9

Outline

1 Introduction
Introduction à la sûreté de fonctionnement
2 Sûreté de fonctionnement (SdF) : notions de base
Stanislaw J. Piestrak
3 Évitement (prévention) de fautes
IRISA/INRIA, CAIRN Lab., Lannion
(en délégation de l’Université Paul Verlaine de Metz) 4 Tolérance aux fautes
piestrak@univ-metz.fr Redondance matérielle
Redondance logicielle
Club PME, ”Sûreté de Fonctionnement”
Lannion, Bretagne, 17 juin 2011 5 Disponibilité de systèmes

6 Quelques systèmes commerciaux tolérants aux fautes

S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 1 / 53 S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 2 / 53

Introduction Introduction

Fonctionnement sûr c-à-d. quoi ? Comment l’assurer ? Entraves à la sûreté de fonctionnement (SdF) : terminologie
Fonctionnement sûr d’un système :
bon, correct, fiable, sans défauts, sans risque, ...
Fautes Erreurs Défaillances
réseau des ordinateurs
Appellations système Physical Informational External
usuelles de (ordinateur, base de données)
fonctionnement universe universe universe
pas sûr : composant matériel ou logiciel
accident, (microprocesseur, mémoire disque,
avarie, système de transmission,
bogue, module d’application, ...)
défaillance,
défaut (physique), circuit Exemples :
dysfonctionnement, (logique, analogique)
écrasement, Sortie d’une porte
endommagement,
erreur, porte logique logique collée à "0" Valeur incorrecte Service
Quelles sont
faute,
fonctionnement défectueux, transistor calculée par incorrecte
indisponibilité,
techniques de protection Une bogue de un programme
insécurité, (tolérance aux fautes ?) programmation
manque de fiabilité,
mauvais fonctionnement,
aux niveaux si différents
panne, ... d’un système informatique ?

S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 3 / 53 S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 4 / 53

Introduction Introduction

Besoin de circuits et systèmes numériques sûr (1) Besoin de circuits et systèmes numériques sûr (2)
Télécommunications : Domaine médical : équipements de mesure et d’analyse, stimulateurs
téléphone, radio, télévision, réseaux informatiques, ... cardiaques, suivi ”en-ligne” des malades, bases de données, ...
Systèmes transactionnels : Systèmes de commande-contrôle, de surveillance
banquaires, réservation de places, gestion des matériaux, ... et de supervision en temps réel :
l’industrie manufacturière (nucléaires, chimiques, ...)
Transportation :
avions, trains, automobiles (assistance au freinage ABS ou à
l’adhérence, ordinateurs de bord, ...)
Espace ...

Station de travail
Banque services

Serveur Drive-by-wire Fly-by-wire

S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 5 / 53 S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 6 / 53
Introduction Introduction

CAO = Catastrophe Aidée par Ordinateur ? Les causes les plus communes de défaillances de systèmes
informatiques
Conséquences fatales des défaillances de systèmes numériques :
Inconvénients aux utilisateurs
La non-disponibilité du système à long distance AT&T aux États-Unis Fautes du matériel
(d’une durée de 9 heures en janvier 1990)
La non-disponibilité du réseau de cartes bancaires Carte Bleue en fautes d’alimentation
France (33 heures pendant un week-end en juin 1993, 33 millions virus informatiques
d’utilisateurs affectés)
catastrophes naturelles :
Pertes financières ouragans, tornados, inondations, tremblements de terre, incendies, ...
L’échec du premier vol de la fusée Ariane V
erreurs humaines
Le rappel de millions de processeurs Pentium d’Intel en 1996
(les pertes d’environ 500 millions de dollars) erreurs de système d’exploitation
Mise en danger de la santé ou de la vie des êtres humains
L’accident d’un Airbus de Lufthansa atterrissant à Varsovie (1997)
Le mauvais fonctionnement d’un système d’urgence medicale à Londres
☞ Défaillances de cause commune : affectent plusieurs entités à
partir d’un événement unique et ne résultent pas les unes des autres
(le nombre de victimes inconnu)

S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 7 / 53 S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 8 / 53

Introduction Introduction

Mécanisme de parution d’une faute temporaire soft error Classification des événements singuliers causés par la radiation
Current I (t ) [µA]

450 100
Collected charge Q (t ) [fC]

I (t ) = I 0 (e-t/τ1 - e-t/τ2), τ 1 > τ 2


400 90 NB = 1 · 1015

80
350 NB = 7 · 1015
High energy 300
NB = 7 · 1015 70 SET SBU
Gate
neutron
60 (single event transient) (single bit upset) SEU
250
50
impulsion aléatoire erreur simple (single event upset)
Drain Source 200 changement d’état(s)
40 MBU de(s) point(s) mémoire
n+ n+ 150
_ _
30 (multiple bit upset) en état(s) inverse(s)
holes _ + _+ _ electrons
_
+ _+ _ +
+
+
+
p substrate
100 NB = 1 · 1015
20 erreur multiple Faute
n
50
10
SEFI
temporaire
0
0 0.2 0.3 0,4 0,5
0
0 0.2 0.4 0.6 0.8 1.0 SEE (single event (soft error)
Time t [ns] Time t [ns]
(single event effects) functional interrupt)
événements perte de fonctionnalité
singuliers temporaire du circuit
SEU SET SET Faute
temporaire SELU
bascule (single event latch-up)
G1 G2 création d’un thyristor parasite
G3
Faute
SEGR/SEB permanente
SEU (single event
V (t) SET
gate rupture/burnout) (hard error)
coupure/destruction du composant
Clk
G4 changement
d’état erroné
t 0→1 ou 1→0

S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 9 / 53 S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 10 / 53

Sûreté de fonctionnement (SdF) : notions de base Sûreté de fonctionnement (SdF) : notions de base

Qu’est-ce-qu’on attend d’un système SdF ? Sûreté de fonctionnement (SdF) : définition

Calcul sans erreurs et integrité des données


(aucune erreur permise) :
ex. systèmes bancaires
Opération continue (no interruption permise) : Sûreté de fonctionnement : aptitude d’un système à
ex. systèmes de temps réel délivrer un service de confiance justifiée
Haute disponibilité (courtes interruptions permises) : ex. serveurs
ou
Sans défaillances catastrophiques (arrêts sans conséquences graves
éviter des défaillances du service
autorisés) : ex. applications critiques (nucléaires, avioniques,
plus fréquentes ou plus graves qu’acceptable
spatiales, ferroviaires, automobiles, ...)
(un critère pour décider si le service délivré est sûr).
Comment :
Détecter (presque) toute faute,
limiter les dégâts,
faire de fautes transparentes et, en cas de faute,
permettre la reprise, faire le compte rendu au niveau supérieur ?
S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 11 / 53 S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 12 / 53
Sûreté de fonctionnement (SdF) : notions de base Sûreté de fonctionnement (SdF) : notions de base

Niveaux de criticité des défaillances : exemple d’un automobile Sûreté de fonctionnement : attributs

Criticité
Catastrophique La
Pire effet de défaillance
mort d’une
Exemples
Freinage électronique,
☞ Exprimer les propriétés qui sont attendues du système

Critique
ou
La
plusieurs personnes
blessure d’une
direction électronique
Contrôle de traction,
☞ Apprécier la qualité du service délivré
ou plusieurs personnes régulateur de vitesse,
Disponibilité :
coussin gonflable l’aptitude d’un système à être prêt à l’utilisation à un instant donné.
Significative Le remorquage du véhicule Contrôle moteur,
contrôle d’assiette, Fiabilité : l’aptitude d’un système à être en état d’accomplir la
suspension active continuité du service délivré, pendant un intervalle de temps donné
Mineure Une gêne pour le conducteur Limitation de vitesse,
réglage de siège,
(la mesure du temps jusqu’à défaillance).
rétroviseurs électriques, Sécurité-innocuité :
vitres électriques,
système de diagnostic la non-occurrence de conséquences catastrophiques pour
Négligeable La diminution du confort Climatisation, l’environnement.
essuie-phares,
radio, téléphone Maintenabilité : l’aptitude aux réparations et aux évolutions
Source : Ch. Ziegler, ”Sûreté de fonctionnement d’architectures informatiques embarquées sur automobile”,
(ne concerne que des systèmes réparables).
thèse de doctorat, Rapport LAAS No 96289, Toulouse, 1996.

S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 13 / 53 S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 14 / 53

Sûreté de fonctionnement (SdF) : notions de base Sûreté de fonctionnement (SdF) : notions de base

Sûreté de fonctionnement : moyens Niveaux de confinement des erreurs

Application

Système d’exploitation
Prévention (évitement) de fautes Macrocode
Hiérarchie
(intolérance du système aux fautes) : du système
Microcode
comment empêcher l’occurrence ou l’introduction de fautes
☞ Diminuer la probabilité d’apparition des fautes et des erreurs
Matériel

Erreurs
Tolérance aux fautes :
Répétition d’un cycle de bus
comment fournir un service à même de remplir la fonction du système Davantage erreur(s) se propage(nt)
en dépit des fautes. Répétition d’une instruction
Complexité davantage d’états sont impliqués

☞ Limiter les effets de fautes Répétition d’une procédure de traitement


d’erreur
des manifestations d’erreur
sont plus diverses et plus nombreuses
le traitement d’erreurs
Répétition d’un procès
devient de plus en plus compliqué
Ces deux approches sont complémentaires !
Répétition d’une tache

☞ Comment arreter (restreindre) la propagation d’erreurs ?


S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 15 / 53 S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 16 / 53

Sûreté de fonctionnement (SdF) : notions de base Sûreté de fonctionnement (SdF) : notions de base

L’ignorance des fautes ou la tolérance aux fautes ? Fonctionnement d’un système exposé aux fautes

Des effets de fautes non-détectées :


Manifestation
Effective corruption de données critiques de l’erreur
dans le système
Conséquences croissantes

Système est suspendu


Faute Erreur Défaillance
Fonctionnement Faute dormante Erreur latente (manifestation
Plusieurs processeurs s’arrêtent normal (cause)
(faute activée, de l’erreur
Sy

effet interne) sur le service,


effet externe)
stè

Processeur s’arrête
me
tol

Subystème est suspendu ou s’arrête,


éra

nécessitant une "intervention manuelle" Détection


d’erreur
nt

(en-ligne)
au

Application avortée
xf
au

Bénigne (inoffensive) corruption de données


tes

Aucune (le meilleur cas) Traitement de faute Traitement d’erreur


(empêche des fautes (élimine les erreurs
d’être activées de nouveau) de l’état de système)
Gravité de faute(s)

Systèmes SdF demandent extensive et complète détection d’erreurs


S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 17 / 53 S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 18 / 53
Sûreté de fonctionnement (SdF) : notions de base Sûreté de fonctionnement (SdF) : notions de base

Tolérance aux fautes : mise en œuvre (1) Tolérance aux fautes : mise en œuvre (2)

Traitement des fautes :


opérations destinées à éviter qu’une ou des fautes ne soit activées à
nouveau.
Traitement des erreurs : opérations destinées à éliminer les erreurs,
Diagnostic de faute : détermine les causes des erreurs
si possible avant qu’une défaillance ne survienne.
(localisation et nature de faute(s))
Détection d’erreur
Diagnostic d’erreur
☞ Objectif principal du traitement des fautes, c’est
Passivation des fautes :
Recouvrement d’erreur : les actions destinées à empêcher une nouvelle activation des fautes.
Reprise Les composants considérés comme fautifs sont retirés du processus
Poursuite d’exécution ultérieure.
Compensation d’erreur
☞ La reconfiguration : les composants non-défaillants
permettent de délivrer un service acceptable, bien que dégradé :
abandon de certaines tâches
ré-allocation de certaines tâches aux composants restants

S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 19 / 53 S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 20 / 53

Évitement (prévention) de fautes Évitement (prévention) de fautes

Évitement (prévention) de fautes Méthodes d’évitement (prévention) de fautes : exemples (1)


Programmation :
Utilisation des quelques langages spécifiques
selon certaines règles de programmation.
☞ Éviter des erreurs de programmation typiques et difficiles à détecter
☞ Empêcher l’occurrence ou l’introduction
Langage MISRA C et ses 127 règles de programmation
de certaines fautes en général («bonnes pratiques») obligatoires et facultatives
ou (MISRA = Motor Industry Software Reliability Association).
de fautes provoquant des erreurs difficile à traiter par des méthodes Exemples :
de tolérance aux fautes Constantes (2) : ne pas utiliser de constante octale
Expressions (6) : ne pas tester l’(in)égalité sur des flottants
Contrôle des flux (16) : interdiction d’utiliser des goto
Pointeurs et tableaux (7) :
ne pas utiliser d’opérateurs relationnels avec des pointeurs
Source : G. Antier, A. Bessemoulin, S. Delcroix et D. Renault, ”Règles de Programmation”, 15/06/2007,
web-serv.univ-angers.fr/docs/etudquassi/GL07_06.pdf.
S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 21 / 53 S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 22 / 53

Évitement (prévention) de fautes Évitement (prévention) de fautes

Méthodes d’évitement (prévention) de fautes : exemples (2) Méthodes d’évitement (prévention) de fautes : exemples (3)
Entrelacement des données
High-Integrity C++ Coding Standard Manual (HICCSM)
Organisation logique de données : l mots de k+1 unités (bits, octets ...)
Ck-1 Ck-2 ... C1 C0 Cc
Règles sur la maintenabilité et la lisibilité du code : suffixe pour M0 ...
nom de variable selon leur type (L→long, F→float, ...) M1 ... bits de
... contrôle
...

...

Règles sur la portabilité : utiliser les bibliothèques standards C++ Ml-1 ...
et pas les fonctionnalités propres à un système spécifiques.
Règles sur la fiabilité et la sûreté du code : préserver Transmission de mêmes données entrelacées colonne par colonne
... ... ... ... ...
l’encapsulation en privilégiant la création de classe private
Règles sur les instructions conditionnelles : De nombreuses erreurs de transmission consécutives (paquets d’erreurs)
ne modifier qu’une seule fois les variables d’itérations dans les boucles se retrouve réparties raison d’une par ligne et pourront être corrigées,
au lieu de rester concentrées dans le même mot
dans les switch chaque case se termine par un break
... ... ... ... ...
un seul point d’entrée et de sortie.
ne pas utiliser de goto
☞ Eviter des erreurs multiples dûes aux :
Source : G. Antier, A. Bessemoulin, S. Delcroix et D. Renault, ”Règles de Programmation”, 15/06/2007,
perturbations de la transmission
web-serv.univ-angers.fr/docs/etudquassi/GL07_06.pdf. dégradation locale du support d’enregistrement (disque, CD ROM)

S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 23 / 53 S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 24 / 53
Évitement (prévention) de fautes Évitement (prévention) de fautes

Méthodes d’évitement (prévention) de fautes : exemples (4) Réduction de la sensitivité aux radiations de composants
électroniques
Système de mémoire RAM utilisant plusieurs boı̂tiers
défaut d’alimentation
4 bits par boîtier d’un boîtier RAM 1 bit par boîtier

A0 Utilisation des matériaux avec le taux d’emission des particules α


A1
réduit
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . Utilisation des couches de blindage
. . . . . . . . . . . . . . . . . . . . .
Modification de l’emballage
A2n-1
(écartement des zones sensitives de points de soudure)
mot Modifications du procéssus technologique
adressé
jusqu’à 4 bits erronés au plus 1 bit erroné
Utilisation des technologies alternatives (réalisation des circuits sur
d’un seul boîtier d’un seul boîtier matériaux isolants plutôt que sur substrat semiconducteur) :
Code détecteur ou correcteur Code détecteur ou correcteur SOI (« Silicon On Insulator », SiO2 )
d’erreurs quadruples ineluctable d’erreurs simples suffie
SOS (« Silicon On Sapphire », Al2 O3 )

☞ Eviter certaines erreurs multiples provoquées par faute


d’alimentation ou adressage
S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 25 / 53 S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 26 / 53

Évitement (prévention) de fautes Tolérance aux fautes

Durcissement des composants (cellules de mémoire, bistables, Pas de tolérance aux fautes sans redondance !
portes)

– Augmentation de la capacité des nœuds sensitifs


– augmentation du pull-up gain
– insertion de résistances ou actifs dispositifs bouclés
– raccoursissement des lignes de colonnes (SRAM) ...
Redondance matérielle (duplication, triplication)
colonne
VDD
colonne colonne
VDD
colonne Redondance d’information
Vrai Faux Vrai Faux
(codes détecteurs d’erreurs : parité, cycliques CRC, ...
P2 P2
ligne P1 ligne P1
codes correcteurs d’erreurs : Hamming, Reed-Solomon, turbo, ...)
N1a
ligne
N1a
ligne
Redondance temporelle (répétition d’une opération)
N2a N2a Redondance logicielle (tests d’acceptation, blocs de recouvrement,
N1
N2
N1
N2 programmation en N-versions)

VSS VSS
durcissement
zones sensibles

Cellule durcie de la mémoire SRAM


S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 27 / 53 S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 28 / 53

Tolérance aux fautes Redondance matérielle Tolérance aux fautes Redondance matérielle

Achever un système fiable en utilisant composants non-fiables Processeur autocontrôlable à chaque coup d’horloge (lock-step)

Utilisation de la redondance permet d’augmenter la fiabilité


(disponibilité) d’un système par ordres de grandeur Mémoire
Cache Cache
Système
Composant Composant
1 2
Hypothèses :
Temps de Temps de
non-disponibilité : non-disponibilité :
2 composants redondants 0,1% 0,1%
Microprocesseur Microprocesseur
identiques, dont Contrôleur Contrôleur
les modes de fautes sont Décideur de mémoire de mémoire
independents et Contrôle Contrôle
100% parfait
détectables à chaque coup d’horloge à chaque coup d’horloge
Temps de non-disponibilité : 0,0001% et et
interconnexion du système interconnexion du système

Sortie du système

Système dupliqué non-disponible seulement 0,0001% de temps Vers le système Vers le système
d’interconnexion d’interconnexion

Il est impossible de jamais achever’s 100% de la fiabilité ou


disponibilité
S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 29 / 53 S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 30 / 53
Tolérance aux fautes Redondance matérielle Tolérance aux fautes Redondance matérielle

Redondance modulaire N-tuple (NMR) avec système de vote Fiabilité d’un système triplé TMR (Triple Modular Redundancy)
majoritaire
Taux de défaillance d’un module λ = const, RM (t) = e −λt
Entrée Sortie
M1

M2 V

MN

N ≥ 3 différents composants (matériels ou logiciels) traitent les


mêmes entrées et produisent donc (en principe) les mêmes sorties
Collection des résultats
Algorithme de vote produit le résultat final
simple (vote à la majorité) ou
complexe (moyenne, moyenne pondérée, médiane, ...)
(fiabilisation d’un résultat en combinant plusieurs résultats légèrement
différents ; ex. : systèmes reposant sur des capteurs redondés)
S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 31 / 53 S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 32 / 53

Tolérance aux fautes Redondance logicielle Tolérance aux fautes Redondance logicielle

Tests d’acceptation (1) Tests d’acceptation (2)

2. Contrôles de comptabilité : limités aux opérations transactionnelles


qui impliquent simple opérations mathématiques
Tests d’acceptation : le test exécuté pour vérifier
ajouter la somme de contrôle (totale ou modulo)
si les résultats obtenus sont acceptable, ou
comptabilité en partie double
si l’exécution de programme n’a pas dévié du flot attendu.
(codifiée à Venise par Luca Pacioli au XVe ou XVIe siècle)
☞ Faible surcoût, faible couverture

de contrôle
des lignes
Colonne 1

Colonne 2

Colonne 3

Colonne
1. Contrôles de satisfaction aux exigences :
algorithme de tri : Ligne 1 1 2 3 6
contrôle de nombre des éléments triés et s’ils sont triés Ligne 2 2 3 2 7
inversion √
d’une opération mathématique ;
Ligne 3 1 1 1 3
ex. Y = X vérifié par X ∗ = Y 2 Ligne 4 2 1 1 4
Ligne 5 0 1 0 1
...
Ligne 21
de contrôle
6 8 7 21
=

des colonnes

S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 33 / 53 S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 34 / 53

Tolérance aux fautes Redondance logicielle Tolérance aux fautes Redondance logicielle

Tests d’acceptation (3) Tests d’acceptation (4)

3. Contrôles de vraisemblance : basées sur l’intervalle de grandeurs 4. Détection d’erreurs d’éxécution (run-time checks)
précalculées des variables, séquences attendues des états, ...
Implémenté en matériel :
fourchettes de valeurs possibles division par 0
(ex : température de l’eau, vitesse maximale, état d’un compte débordement
bancaire) «underflow»
incrément de valeur d’une variable (écart maximal par rapport au instruction inexistante
adresse mémoire inexistante
résultat précédent dans un contrôle de processus continu =
des violations de protections de segments-mémoire
continuité des résultats) ; ex : accélération, ...
corrélation entre les valeurs de variables différentes ou leurs ☞ Système de gestion d’exceptions
incréments Implémenté en logiciel :
séquences attendues des états d’un commutateur téléphonique contrôle de type de variable
contrôle des valeurs d’indice de tableaux
☞ Indépendance des variables utilisées dans les programmes et les ...
tests d’acceptation

S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 35 / 53 S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 36 / 53
Tolérance aux fautes Redondance logicielle Tolérance aux fautes Redondance logicielle

Tolérance aux fautes de conception : diversification fonctionnelle Approches aux diversification fonctionnelle de logiciel

☞ Éviter des défaillances de mode commun

Diversification fonctionnelle :
on dispose d’au moins un autre composant à même d’assurer la tâche,
conçu et réalisé séparément à partir de la même spécification. Trois approches différenciées selon la méthode de traitement d’erreur :

Besoin :
Blocs de recouvrement : recouvrement d’erreur par reprise
d’au moins deux variantes d’un système
Programmation en N versions : masquage de faute
d’un décideur, déstiné à fournir un résultat supposé exempt d’erreur
Programmation en N-autotestable : recouvrement d’erreur par compensation
à partir des exécutions des variantes
la spécification commune aux variantes
les points de décision :
quand les décisions doivent être prises, et
les données traitées par le décideur

S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 37 / 53 S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 38 / 53

Tolérance aux fautes Redondance logicielle Tolérance aux fautes Redondance logicielle

Blocs de recouvrement Programmation en N versions

Début
Entrée d’un bloc de recouvrement d’exécution
(avec données correctes)

Exécution de Exécution de Exécution de


Point de recouvrement la version la version la version
1 2 N
Fin d’exécution Fin d’exécution Fin d’exécution
de la version 1 de la version 2 de la version N

Programme Version Version


principal alternative alternative
1 N-1 Assemblage des résultats
d’exécution des diverses versions

Plus Début d’exécution


Test Echoué de version Non d’un algorithm de décision
d’acceptation alternative ?
Borne de
Exécution d’un
propagation Réussi algorithme de décision
des erreurs Oui

Sortir le bloc de recouvrement Logiciel


Calcul
acceptable
Calcul
inacceptable
et accepter les résultats fautif Fin Logiciel
comme corrects d’exécution fautif

S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 39 / 53 S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 40 / 53

Tolérance aux fautes Redondance logicielle Disponibilité de systèmes

Programmation en N-autotestable Coût horaire de défaillance des systèmes informatiques en 2000


Début
d’exécution

Exécution du Exécution du Exécution du


module autocontrolable
1
module autocontrolable
2
module autocontrolable
N Domaine d’application Coût [ /h]
Test d’acceptation Test d’acceptation Test d’acceptation Téléphonie mobile 40 000
Calcul Echoué Calcul Echoué Calcul Echoué Réservation aérienne 90 000
acceptable acceptable acceptable

Transactions carte de crédit 2 500 000


Ligne d’assemblage automobile 6 000 000
Exécution d’un Toutes les N exécutions
algorithme de décision echouées ? Transactions boursières 6 500 000
Fin Logiciel
d’exécution fautif

Chaque composant autotestable est constitué :


soit de l’association d’une variante et d’un test d’acceptation,
soit de deux variantes et d’un algorithme de comparaison.
S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 41 / 53 S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 42 / 53
Disponibilité de systèmes Disponibilité de systèmes

Exemples de calcul de la disponibilité Qu’est-ce que la disponibilité ?

temps de service correct (temps de fonctionnement) - (temps de restauration du service)


Disponibilité A =temps de fonctionnement = temps de fonctionnement
Disponibilité : la mesure MTBF MTBF

1)
Défaillance
1
de la délivrance d’un service
Période de restauration
du service correct par rapport à l’alternance MTTR MTTR MTTR

service
correct
service
correct 1000 - 100 900 service correct-service incorrect.
A1 = 1000 = 1000 = 0,9
0 100 200 300 400 500 600 700 800 900 1000 temps [h]
tr1 = 100 h
Elle s’exprime par : service
correct
service
correct
service
correct

Défaillance Défaillance Défaillance temps


Défaillance Défaillance 1 2 3
2) 1 2 Restauration Restauration Restauration
MTTR

A= 1− MTBF Période de restauration du service

service
- (30+70) 900
correct
A2 =10001000 = 1000 = 0,9 MTTR (Mean Time To Repair) : le temps moyen de réparation
0 100 200 300 400 500 600 700 800 900 1000 temps [h]
tr1 = 30 h tr2 = 70 h (d’intervention pour rendre le système à nouveau opérationnel suite à une
Défaillance Défaillance Défaillance Défaillance Défaillance
1 2 3 4 5 défaillance). Il comprend la détection de la cause de défaillance, la
3) passivation de faute et la remise en service.
service
-
A3 =10001000
correct (5 × 20) 900
= 1000 = 0,9 MTBF (Mean Time Between Failures) :
0 100 200 300 400 500 600 700 800 900 1000 temps [h]
tr1 = 20 h tr2 = 20 h tr3 = 20 h tr4 = 20 h tr5 = 20 h le temps moyen de bon fonctionnement

S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 43 / 53 S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 44 / 53

Disponibilité de systèmes Disponibilité de systèmes

Comment améliorer la disponibilité ? Classes de disponibilité de systèmes

A = 1 revient : Classe de disponibilité d’un système :


à MTTR = 0 (maintenance instantanée) le nombre de ”neufs” dans le chiffre de disponibilité
ou Dans le cas général :
1

à MTBF = ∞ (fonctionnement sans défaillance) Classe = ⌊log10 1−A

qui est statistiquement impossible.
Classe Disponibilité Non-disponibilité
☞ En pratique, plus le MTTR est faible et le MTBF est élevé, (nombre de ”neufs”) A [minutes/an] =
meilleure est la disponibilité. 1 0,9 52560 36.5 jours
2 0,99 5256 87 h, 36 min
Diminuer
3 0,999 526 8 h, 46 min
MTTR
A = (1 - MTBF
) 4 0,9999 53 52 min, 33 sec
5 0,99999 5 5 min, 35 sec
Augmenter
Objectif 0,999...
6 0,999999 0.5 31.5 sec
(nombre de "neufs") 7 0,9999999 0.05 3.15 sec

S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 45 / 53 S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 46 / 53

Disponibilité de systèmes Disponibilité de systèmes

Quelques faits sur la disponibilité de serveurs dans des entreprises Attributs de quelques applications critiques industrielles
américans
Transactions Transactions Processus Peu ou aucune
d’une valeur essentielles pour sensibles tolérance à la
très élevées la santé au facteur temps perte ou corruption
Un serveur dans des entreprises américans éprouve moyennement par an : ou la vie humaine de données

3–5 défaillances,
résultant en 10.0–19.5 heures de non-disponibilité non-planifiée
Au moins 1 défaillance est serieuse,
dont le temps de non-disponibilité est superieur de 4 heures,
demandant l’intervention de plusieurs administrateurs de réseau,
Exemple : Exemple : Exemple : Exemple :
et potentiellement implique la perte de données. Opérations Systèmes Electronic batch Distributeurs de
boursières médicaux record systems billets, virement de
☞ Le temps total de la non-disponibilité planifiée fonds et traitement
de cartes bancaires
(maintenance, mise à jour, test) > 10 heures par an
Importantes pertes financières, risques pour la santé ou la vie
Source : The Yankee Group, ”2006 Global Server Reliability Survey”, June 2006, Boston, MA, USA ; cité dans :
Stratus Technologies, ”How to ensure the availability of IT solutions in mission-critical government locations”, June 2008. humaine
Source : Stratus Technologies, ”What to look for in mission-critical managed IT services.
What’s your exposure to losing business capability ?”, White Paper, Sept. 2008.
S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 47 / 53 S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 48 / 53
Quelques systèmes commerciaux tolérants aux fautes Quelques systèmes commerciaux tolérants aux fautes

Intel Inside, But ... What Is Inside ... z990 (IBM) ? (1) Intel Inside, But ... What Is Inside ... z990 (IBM) ? (2)

Circuit Méthodes de tolérance aux fautes


Autres méthodes de tolérance aux fautes :
Processeur Duplication avec comparaison
Registres Parité Processeur de maintenance : contrôle la reprise d’erreur au niveau
Bus interne (GX), Parité avec retransmission
interface externe (PCI)
d’instruction et sauvegarde toutes les données intermédiaires
Cache L1 Parité protégées par ECC
Cache L2 SEC/DED ECCs :
données (72,64), adresse (25,19), propriétaire (11,5) Processeur de rechange est disponible pour remplacer un processeur
RAM SEC/DED ECC (140,128), nettoyage en continu quelconque défaillant en permanence
(scrubbing), 2 puces de 2 bits de rechange
Clés d’accès mémoire Parité, TMR avec un voteur et une clé de rechange Remplacement des lignes défectueuses
Clés d’accès cache SEC/DED ECC (12,7) dans tout les caches et mémoire principale RAM
Coprocesseur cryptographique :
modulo exponentiation Code résidu Enregistrement de placements de toutes erreurs détectées :
additionneur, ALU, unité SHA Parité pour effectuer le remplacement préventif de composants défectueux
unité DES Duplication avec comparaison
Oscillateur de système Duplication avec commutation Reconfiguration dynamique en cas de fautes permanentes
Alimentation Duplication (en parallèle)

S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 49 / 53 S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 50 / 53

Quelques systèmes commerciaux tolérants aux fautes Quelques systèmes commerciaux tolérants aux fautes

Techniques de la SdF utilisées dans des circuits FPGA XILINX Systèmes de mémoires disques RAID (les niveaux standard)
M1 RAID = Redundant Array of Independent Disks
Logique : («regroupement redondant de disques indépendants»)
sélective TMR M M2 V
(XTMR CAD tools) ou
M3
duplication avec
comparaison
(lock-step) Original
Frame Data
Erroneous
Frame Data
Memory ...010101010... Comparator ...010111010...
Bloques de
configuration :
=? FPGA
nettoyage en continu Corrected
Volume agrégé par bandes Disques en miroir
Frame Data
(scrubbing) Modifier ...010101010... (entrelacement de disques) chaque disque d’une Volume agrégé par bandes à parité
codes CRC ou Performance augmentée paire contient à tout répartie
Hamming (n disques durs travaillent moment exactement les (n blocs de données (n ≥ 3)
Taux d’erreurs GEO (geosynchronous orbit) en parallèle) mêmes données et un bloc de parité)
Mémoire : de Virtex-II XQR2V6000 Fiabilité : la faute d’un seul Fiabilité : la faute d’un Fiabilité : la faute d’un disque est tolérée
disque entraı̂ne la perte de disque de chaque paire Coût : minimal (capacité totale de
TMR ou Mémoire de configuration 1.8 h
toutes ses données est tolérée n disques sur un total de n + 1 disques)
codes ECC de Bloques de mémoire 11.8 h Coût : aucune redondance Coût : au moins 100% Inconvénients : pénalité en écriture
Hamming (Altera) POR-SEFI 221 ans du fait du calcul de la parité
SMAP-SEFI 181 ans
Source : http://fr.wikipedia.org/wiki/RAID_(informatique)
S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 51 / 53 S. J. Piestrak (IRISA) Introduction à la SdF Lannion, 17 juin 2011 52 / 53

Vous aimerez peut-être aussi