Académique Documents
Professionnel Documents
Culture Documents
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
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
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]
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
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
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
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
Processeur s’arrête
me
tol
(en-ligne)
au
Application avortée
xf
au
Tolérance aux fautes : mise en œuvre (1) Tolérance aux fautes : mise en œuvre (2)
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
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
Durcissement des composants (cellules de mémoire, bistables, Pas de tolérance aux fautes sans redondance !
portes)
VSS VSS
durcissement
zones sensibles
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)
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
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
Tolérance aux fautes Redondance logicielle Tolérance aux fautes Redondance logicielle
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
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
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
Début
Entrée d’un bloc de recouvrement d’exécution
(avec données correctes)
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
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
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
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
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)
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