Solutions
Transcription
Solutions
Solutions INFORMATIQUE INDUSTRIELLE Fiabiliser, ça peut rapporter gros! (1) ▼ La fiabilité est une discipline à part entière, qui sent bon les statistiques et est souvent jugée difficile à aborder. Dans ce premier article de la série consacrée à ce sujet que nous démarrons ici, l’auteur Daniel Lelièvre (Factory Systèmes) s’est efforcé de faire du concret et du pratique. Au-delà des indispensables définitions, cet article d’introduction présente des situations concrètes de défaillances dues à un manque de fiabilité. Les articles suivants aborderont davantage les solutions qui permettent d’améliorer la disponibilité. Q uoi qu’on fasse, un jour ou l’autre nos machines cassent ou n’en font qu’à leur tête. Plus elles sont complexes, plus souvent ça arrive... La perfection n’est pas de ce monde, et encore moins du monde industriel. C’est un fait. Nous subissons chaque jour les coûts de la non-fiabilité de nos équipements, des erreurs de ceux qui les conduisent ou qui les ont conçus. Résultat, une part considérable des budgets L’essentiel attribués au fonctionnement normal de Dans l’univers de la producl’exploitation est destition, les ordinateurs se voient née à la résolution de confier des tâches de plus en plus importantes situations “anormales”. Du procédé lui-même Les conséquences d’une défaillance peuvent être draaux opérateurs qui le matiques pilotent, en passant par Pour limiter les risques, il exisles machines et leurs te des ordinateurs “pensés” automatismes, ce sont pour offrir une disponibilité autant de déviations élevée potentielles qu’il nous Pour faire les bons choix, faut dompter. poser les bonnes questions et ne pas se laisser abuser, il Acceptons le caractère est préférable de bien s’iminéluctable et immiprégner des notions de base nent de l’erreur ou de de fiabilité l’usure qui mène à la 46 défaillance.A l’aide de méthodes statistiques aujourd’hui accessibles et éprouvées, calculons-en les probabilités d’occurrence, et en face de ces probabilités, déterminons les coûts induits. Nous pourrons alors décider du bien fondé de la mise en place de mesures préventives, lorsqu’elles existent, et nous en comparerons les coûts à ceux de mesures curatives. Dans bien des cas, nous aurons la surprise d’afficher un retour sur investissement exprimé en semaines. Jules Renard était de bon conseil : « Sous prétexte que la perfection n’est pas de ce monde, ne gardez pas soigneusement tous vos défauts »… L’informatique en première ligne Lorsque nous faisons une analyse des défaillances, nous concluons assez rapidement que certains éléments de notre outil d’exploitation sont particulièrement critiques. Au-delà des risques naturels, on trouve en première ligne la distribution des énergies et des fluides, les flux de matières premières, et plus généralement, l’ensemble des facteurs de “mode commun”, dont l’occurrence peut affecter l’intégralité de l’outil de production. La connaissance de ces risques “anciens” appartient à la culture industrielle, et par conséquent, leur traitement fait partie des règles de l’art de l’ingénierie. Il n’en va pas de même pour les risques “nouveaux”, tels que ceux qu’engendrent nos systèmes informatiques. L’évolution foudroyante de la technologie a doté nos outils de production de moyens formidables. Ils nous ont permis d’améliorer la qualité et la sécurité des produits que nous fabriquons et, notamment, notre productivité.Assemblages souvent disparates -évolution oblige- de composants informatiques, ces outils sont d’une complexité inouïe, dont on ne maîtrise que la surface. Mais toute médaille a son revers. Prenons le cas des serveurs à base de PC. Paradoxalement, parce qu’ils sont plutôt fiables, nous sommes mal préparés à leurs caprices. Et l’on n’a sans doute pas tout vu! Initialement conçus pour un usage personnel, peu critique, les PC se sont “infiltrés” aux postes les plus critiques de nos entreprises. De plus, les PC indépendants se sont petit à petit ligués en réseau. Dans ces conditions, la moindre défaillance est devenue porteuse de coûteuses conséquences. Certains PC ont été promus au rang de serveurs de fichiers ou de données potentiellement accessibles à tous. Le risque de perte des données stockées dans ces machines a motivé la création de disques MESURES 761 - JANVIER 2004 Solutions “miroir”, puis “RAID”, consistant à répliquer toute ou partie de l’information sur plusieurs supports. Enfin, et toujours pour faciliter l’administration de ces systèmes de plus en plus étendus, sont nées des architectures qui ressemblent à celles de nos anciens mainframes : les serveurs d’applications. Une machine puissante exécute l’ensemble des fonctions du système, et des PC simplifiés à l’extrême se comportent comme de simples terminaux opérateurs. Une défaillance du serveur se traduit par la paralysie totale du système, pendant toute la durée de la défaillance. Dès lors, combien coûte la perturbation engendrée par l’arrêt du serveur de courrier électronique qui gère les 2 500 boîtes aux lettres du siège social ? Qu’advient-il du contenu d’un réacteur dont on ne peut poursuivre la conduite des opérations de fermentation en cours ? Peut-on mettre sur le marché les produits dont on n’a pas conservé la trace de la production ? Une approche souvent empirique de la fiabilité S’ils perçoivent aisément les avantages des solutions qu’ils déploient, en termes de service rendu ou de facilité d’administration, les services informatiques sont rarement équipés pour mesurer l’incidence de la défaillance de leurs installations, et la démarche de fiabilisation, lorsqu’elle existe, est souvent effectuée sur des bases empiriques. Pourtant, la fiabilité est une discipline remarquablement maîtrisée. La sécurité des avions ou des centrales nucléaires, la qualité de nos téléphones portables ou de nos automobiles ne sont que le résultat d’analyses de fiabilité exhaustives qui ont dicté les choix technologiques des bureaux d’études. Fiabiliser, c’est naviguer dans un domaine où la poutre qu’on a dans l’œil ne doit pas nous empêcher de voir la paille dans celui du voisin. La poutre, c’est par exemple le logiciel de notre serveur qui “plante” tous les six mois. La paille, c’est son alimentation qui “lâche” une fois tous les trois ans. Si nous attendons de résoudre notre problème logiciel pour nous atteler à celui de l’alimentation, il y a fort à parier que ce dernier ne sera jamais résolu. Si nous disposons d’une solution pour fiabiliser l’alimentation avec un ROI (retour sur investissement) convenable, nous devons la mettre en place immédiatement. Nous aurons quoi qu’il arrive économisé le coût d’un arrêt tous les trois ans. MESURES 761 - JANVIER 2004 Les serveurs à haute disponibilité ne sont plus les “monstres” d’antan.Ils prennent aujourd’hui le visage de PC sous forme de piédestal. Les études sur la fiabilité s’appuient sur des théories mathématiques. Avant de les aborder, il faut bien assimiler le vocabulaire utilisé dans ce domaine et la définition de quelques termes fréquemment utilisés. Il faut très précisément savoir de quoi l’on parle et les abus de langages, très fréquents, peuvent induire des erreurs d’interprétation. Toute défaillance a pour origine une faute. Nous parlerons par exemple d’une faute de conception ou de la faute d’un opérateur. La faute peut générer une erreur, et l’erreur elle-même peut entraîner une défaillance. A l’origine des défaillances, les fautes… Un programmeur se trompe, par exemple, dans l’écriture d’une ligne de son code : il a implanté une faute (qu’on qualifie de “dormante” si elle ne se manifeste pas immédiatement) dans son programme. Lorsque cette ligne de code est exécutée, elle écrit une donnée erronée en mémoire : on est alors en présence d’une erreur. Dès que l’utilisateur accède à cette donnée, le système lui fournit une information erronée, et n’assure donc pas son service conformément à ce qui lui est demandé : c’est la défaillance. Autre exemple. L’alimentation secteur de notre serveur reçoit une impulsion dont la tension excède les spécifications (la faute). Cette impulsion détruit un composant, et la tension délivrée à la carte mère n’est plus correctement régulée (l’erreur). Le processeur brûle après quelques heures de fonctionnement et c’est la défaillance du système. Il existe de nombreux types de fautes. Les fautes physiques. Il s’agit ici de fautes survenant dans des conditions normales d’utilisation. Exemples : - Le composant “lâche” après avoir accompli une longue carrière avec succès. Puisque le composant ne subit pas d’usure à proprement parler, cette défaillance “normale” du composant (erreur à l’échelle du système) est probablement due malgré tout à une faute, telle que la présence d’une impureté dans le silicium. - Le disque dur casse. Comme il est constitué de pièces en mouvement, il s’use. La faute est le choix des matériaux utilisés pour concevoir le disque, même si aucun meilleur choix n’était disponible. L’erreur, dans ce cas, est inéluctable. Les fautes externes. Il s’agit de fautes survenant dans des conditions anormales d’utilisation. Exemples : - Une perturbation électromagnétique tra- Quelques définitions Selon toute vraisemblance, le système que nous étudions a une utilité, que nous appellerons service. Lorsque le service est discontinu, chaque période distincte de service sera appelée mission. La disponibilité du système désigne son aptitude à délivrer le service, alors que sa fiabilité désigne son aptitude à ne pas l’interrompre. Une défaillance survient lorsque le service délivré diffère du service demandé. Dans certains cas, notre système “refuse” d’assurer son service, dans d’autres, généralement plus graves, il “décide” de faire autre chose que le service demandé. La sûreté de fonctionnement est l’aptitude à éviter l’apparition de défaillances et à minimiser leurs effets lorsqu’elles se sont produites. La sûreté comprend quatre composantes qui sont la fiabilité, la maintenabilité, la disponibilité et la sécurité. 47 Solutions Les serveurs à haute disponibilité comportent plusieurs processeurs et des redondances. Des méanismes permettent de pallier toute défaillance, en toute transparence pour l’application. verse le blindage que constitue le châssis de notre serveur et entraîne la destruction d’un composant. - Un incendie ravage la salle informatique - Un choc excédant la spécification a provoqué l’atterrissage brutal d’une tête sur la surface d’un disque dur. Les fautes de conception. Exemples : - Le concepteur s’est trompé dans le calcul de consommation de la carte mère. L’alimentation est sous-dimensionnée et n’atteindra pas la durée de vie escomptée. - Le programmeur s’est trompé dans son analyse ou dans son codage. Que ce soit le BIOS, le système d’exploitation, les pilotes d’entrées/sorties ou les applications, notre serveur est “truffé” de fautes logicielles. Ces “bugs” peuvent dormir pendant des mois ou des années sans que les circonstances ne provoquent leur découverte. - Des pilotes incompatibles avec la version du matériel, la version du système d’exploitation ou les autres pilotes ont été installés. Les pilotes d’entrées/sorties, livrés avec un matériel qui n’a généralement jamais été testé dans un système strictement identique sont à surveiller en particulier. Les fautes d’interaction. Exemples : - Un utilisateur insère une carte trop brutalement et endommage une des connexions avec la carte mère. - Le responsable de la maintenance effectue une action de maintenance préventive en ligne. Il débranche le mauvais connecteur et provoque une défaillance. - L’opérateur effectue une opération inappropriée. - Le responsable de la maintenance détecte la présence d’une erreur, avant que cette dernière ne se traduise par une défaillance. Il choisit la mauvaise option de réparation et provoque une défaillance. La faute est l’action du responsable de la maintenance. Si ce dernier n’avait rien fait, on se serait sans doute dirigé vers une autre défaillance. Les intrusions. Exemples : - Un utilisateur non autorisé parvient à entrer dans le système et provoque une erreur. - Le système reçoit un virus qui provoque une erreur. - Un utilisateur débranche volontairement l’alimentation secteur. MTTR, MTBF, etc. Considérons l’exemple suivant : un serveur de fichiers simple est rendu indisponible par Et... ça arrive souvent ? Qui peut se vanter de n’avoir jamais vécu la défaillance d’un système ? Pourtant, à la question “et, ça arrive souvent ?”, les utilisateurs répondent de manière incohérente : celui qui vient de casser son disque dur peste en prétendant que son PC n’est vraiment pas fiable, alors que l’utilisateur d’une machine identique qui “tourne” bien depuis cinq ans, jurera qu’elle est “incassable”. Les deux ont tort puisque ces deux machines sont dotées du même niveau de fiabilité. La différence n’est liée qu’au caractère aléatoire de la distribution des fautes. Une démarche utile ne peut donc s’appuyer que sur l’étude statistique des fautes, et impose d’être en mesure de calculer la probabilité d’occurrence de la faute et de la défaillance engendrée. Si nous savons com- 48 bien coûte l’arrêt et que nous connaissons la fréquence de l’arrêt, nous obtenons un coût annuel, en face duquel nous pourrons enfin déterminer notre budget “fiabilisation”. Les fiabilistes s’appuient sur des méthodes rigoureuses, qui ont fait leurs preuves et qui sont couramment utilisées, par exemple dans la conception d’un aéronef ou d’une centrale nucléaire. Elles ne permettent pas, nous le savons déjà, de prédire à quel moment surviendra l’événement, mais elles nous indiqueront si l’architecture de tel système est plus fiable que celle de tel autre. Enfin, elles nous donneront une idée de la probabilité que notre serveur s’arrête pendant les 6 heures nécessaires à la fabrication d’un lot, probabilité qui se vérifiera d’autant plus que le nombre de lots fabriqués est grand. la défaillance de son alimentation. Cet incident entraîne l’impossibilité d’accéder aux fichiers qu’il héberge et on considère donc que le serveur n’assure pas son service. Dès que l’alimentation défectueuse est échangée et que le serveur est redémarré, le service est à nouveau disponible. On souhaite chiffrer le coût de l’incident, représenté par la perte de productivité engendrée, à laquelle s’ajoutent le temps passé par le service maintenance et le coût de l’alimentation. La perte de productivité liée à l’incident est déterminée par le coût de l’indisponibilité du service, coût qui est évidemment fonction de la durée de l’arrêt du serveur. C’est ce temps qu’il nous faut donc déterminer en premier lieu, à partir de quelques éléments de fiabilité, dont il faut connaître la signification. MTTF et Taux de Défaillances. A partir d’une “ population” de composants identiques qu’on laisse fonctionner sans limite de temps, on aboutira inévitablement à la situation où tous nos composants seront défaillants (puisque rien n’est éternel...). Si l’on ne peut prédire à quel instant se produira la défaillance de chacun d’eux, on sait par contre calculer, à partir de la mesure de la durée de vie de chacun, leur “temps moyen jusqu’à la défaillance”. Entre deux populations de composants identiques, on observe que cette moyenne est constante, d’autant plus que le nombre d’échantillons constituant les populations est important. La plupart des constructeurs de systèmes publient des données de fiabilité de leurs équipements, qu’ils ont calculées à partir des données de fiabilité que leur ont communiquées leurs propres fournisseurs de composants. La donnée qu’ils fournissent est généralement exprimée en MTBF (Mean Time Between Failure), temps moyen entre défaillances, donné en heures ou en années. Il s’agit d’un abus de langage et il conviendrait de parler de MTTF (Mean Time To Failure), temps moyen jusqu’à la défaillance, ou temps moyen de bon fonctionnement. Dans le cas de notre serveur de fichiers, le constructeur nous a annoncé un MTTF de 30000 heures, soit environ 3,4 années (une année ordinaire comporte 8760 heures). Cette donnée peut encore être exprimée en taux de défaillances par heure (Failure Rate), que l’on peut approcher par : λ≈ 1 MTTF Cette approximation est applicable à des éléments dont le taux de défaillance est constant (ce qui est le cas de la grande MESURES 761 - JANVIER 2004 Solutions majorité des composants électroniques). Du fait de la faiblesse des valeurs de λ, le taux de défaillances est souvent exprimé en FITS (Failure In Time), où 1 FIT = 1 défaillance par milliard d’heures. Nous pouvons donc quantifier la fiabilité de notre serveur comme suit : λserveur = 3,3333*10-5déf/h = 33333 FITS MTTR et Taux de Réparation. A supposer que notre serveur de fichiers soit réparable, cette intervention ne peut bien évidemment pas être instantanée. Le temps moyen de réparation, que l’on exprime en heures, est appelé MTTR (Mean Time To Repair). On doit estimer, en fonction du contexte de l’application, le temps moyen total qui sépare l’apparition de la défaillance de la remise en service actif. On prendra en compte l’ensemble des paramètres pouvant influencer le temps de réparation, à commencer par les moyens de détection et d’information de l’équipe de maintenance. Si un système de diagnostic évolué envoie un SMS sur le portable du technicien d’astreinte, ce dernier pourra peut-être intervenir avant même qu’un utilisateur du service ne s’aperçoive de son indisponibilité (avant donc l’apparition de la défaillance). Sans qu’un savant calcul ne soit nécessaire, on décèle aisément l’impact du MTTR sur les coûts liés à l’indisponibilité du service rendu, et le choix d’une stratégie de maintenance est aussi critique que celui de la technologie du système. Notons cependant que de nombreux constructeurs de systèmes réparables utilisent un MTTR présumé de 8 heures dans leurs études de fiabilité, héritage du temps où les systèmes étaient simples... Nous verrons plus loin que le MTTR “réaliste” d’un serveur peut-être bien supérieur. De la même façon que nous avons calculé le taux de défaillances à partir du MTTF, nous pouvons calculer le taux de réparation à partir du MTTR que nous admettrons pour l’instant de 8 heures : µ= 1 1 = = 0,125 8 MTTR MTBF. Dès lors qu’on connaît le MTTR et le MTTF, nous pouvons calculer le MTBF (Mean Time Between Failure), temps moyen entre défaillances, puisque deux défaillances consécutives supposent une réparation intermédiaire : MTBF = MTTR + MTTF Notre serveur de fichiers aurait donc un MTBF de 30008 heures, très voisin du MTTF. Cette similitude explique la confusion fréquente entre MTTF et MTBF, et l’abus de lanMESURES 761 - JANVIER 2004 gage commis par les constructeurs. Ces derniers ne peuvent bien évidemment pas préjuger du MTTR réel, puisqu’ils n’en contrôlent qu’une partie minime (accessibilité, interchangeabilité, approvisionnement du composant). Disponibilité et indisponibilité.Afin d’évaluer l’impact annuel des défaillances du serveur, nous devons déterminer sa disponibilité, aptitude à délivrer le service, exprimée en pourcentage du temps total, ou, de manière plus académique “mesure de l’alternance entre service rendu et interruption de service”. La disponibilité A (availability) est donnée par la relation : A= MTTF = 1- MTTR MTTF + MTTR MTBF Inversement, l’indisponibilité (Unavailability) Q, sera exprimée par : Q = 1 - A = MTTR MTBF A partir des valeurs utilisées précédemment, notre serveur est disponible 99,973 % de la période considérée, et est indisponible le reste du temps, soit 0,027 % du temps (142 minutes/an). Taux de Défaillances d’une population. Nous savons maintenant évaluer l’indisponibilité annuelle d’un serveur. Cependant, certains de nos ateliers reposent sur plusieurs serveurs, et l’indisponibilité de l’un d’entre eux suffit à rendre l’atelier inopérant. Pour calculer l’indisponibilité annuelle de l’ensemble constitué par trois serveurs, par exemple, nous ajouterons tout simplement leurs taux de défaillance respectifs, ce qui nous fournira le taux de défaillance de l’ensemble. Ainsi, si le MTTF de chaque serveur est respectivement de 30 000 heures, 15000 heures et 20000 heures, on obtient : λserveur =3,33x10-5 +6,66x10-5 +5x10-5 =1,5x10-4 soit un MTTF global de 6 666 heures, ou environ une défaillance tous les 9 mois. Encore une fois, ce calcul ne nous permet en aucun cas de prédire à quel moment chaque serveur nous laissera tomber. Ce dont nous sommes sûrs, en revanche, c’est que sur nos trois machines, nous pouvons nous préparer à en réparer en moyenne 1,3 par an, et qu’au total, nos utilisateurs seront perturbés pendant plus de 10 heures dans l’année... Fiabilité de mission. Maintenant que nous savons manipuler ces données simples, nous devons nous poser une question importante : recherchons-nous la disponibilité de l’équipement ou plutôt sa fiabilité? La rupture d’une caténaire entraîne, pour le Paramètres Valeurs MTTF λ Serveur (taux de défaillance) λ Serveur (FITS) (taux de défaillance) MTTR µ (taux de disponibilité) MTBF A (disponibilité) Q (indisponibilité) Q (h/an) 30000 3,33E-05 33333 8 0,125 30008 99,973 % 0,027 % 2,37 A partir du MTTF fourni par le constructeur,et du MTTR estimé, il est possible de calculer tous les autres paramètres train qui emprunte cette voie, un arrêt dont la conséquence est principalement fonction de la durée. Pour réduire l’impact de ce type d’incident, l’exploitant pourra investir sur deux axes : Une longue expérience Factory Systèmes a depuis longtemps une culture de la haute disponibilité, qu’elle a acquise notamment à travers les marques prestigieuses Triconex et Moore. La gamme ftServer de Stratus qu’elle commercialise aujourd’hui s’inscrit dans cette continuité. Cette gamme assure une disponibilité supérieure à 99,999% et se décline en trois modèles : le modèle 3300 (1 ou 2 processeurs Intel Xeon 2,4 GHz), le modèle 5240 (1 ou 2 processeurs Intel Xeon 2,8 GHz) et enfin le modèle 6500 (1 à 4 processeurs Intel Xeon MP 2 GHz). Le modèle 6500 est selon Factory Systèmes le seul serveur multi-traitement 4 voies à tolérance de pannes de l’industrie pour les environnements Windows. Sur ces serveurs, les composants matériels à tolérance de pannes répliqués traitent les mêmes instructions au même moment. En cas de dysfonctionnement d’un composant, le composant associé joue le rôle de pièce de rechange assurant le fonctionnement normal. Il n’y a ni interruption ni perte de données. Ces serveurs disposent, selon les modèles, de 20 à 28 emplacements pour disques durs de 18 à 73 Go. Ils peuvent gérer, selon les modèles, jusqu’à 4 ou 12 liaisons Ethernet 1000 Base-T. Le modèle 3300 est proposé en format piedestal ou rack 3U, le modèle 5240 en rack 16U et enfin le modèle 6500 en rack 16U ou 18U. Tous fonctionnent sous Windows2000 Advanced Server et sont prêts à accueillir le futur Windows Server 2003. 49 Solutions - améliorer la caténaire, dans les limites imposées par les possibilités technologiques et économiques, ce qui augmentera son MTTF et réduira son λ, - réduire le temps d’intervention des équipes de maintenance et améliorer leur efficacité, ce qui réduira le MTTR. La défaillance d’un moteur d’avion, au roulage, est en principe sans conséquence grave. Elle n’entraînera qu’une perte d’exploitation liée à la nécessité de réparer. Par contre, dès que l’aéronef est en phase de décollage ou en vol, la défaillance du moteur peut s’avérer dramatique. Dès que la mission est commencée, et pendant toute sa durée, le moteur doit fonctionner. Le constructeur de l’avion ne peut travailler que sur un seul axe : fiabiliser le moteur pour qu’il soit capable d’assurer sa mission. La réparation du moteur est, non seulement impossible pendant la mission, mais surtout inutile, puisque “le mal est fait” dès l’apparition de la défaillance. On parle alors de “fiabilité de mission”, pour laquelle l’amélioration du MTTR n’a aucun 50 effet. On peut calculer cette dernière par l’application de la formule : R(t) = e-λxt où R, la fiabilité, est la probabilité que notre équipement assure la mission de durée t sans défaillance et λ le taux de défaillance. Prenons l’exemple d’un serveur qui collecte des données pendant la fabrication d’un lot d’un produit pharmaceutique. Le fabricant ne peut vendre son produit que s’il est en mesure de fournir la trace des opérations de production de ce dernier. Une défaillance du serveur intervenant entre deux fabrications n’entraînera qu’un retard dans la production s’il n’est pas réparé à temps. Une défaillance du même serveur pendant l’exécution de la mission peut entraîner la perte pure et simple du lot en cours de fabrication. En supposant que la fabrication d’un lot dure 72 heures et que le taux de défaillances du serveur soit de 3,3333*10-5, la probabilité que notre serveur assure sa mission sans défaillance est : -5 R(t) = e-3,3333x10 x72 = 0,997603 Nous aurions pu obtenir un résultat très approchant, en calculant la disponibilité d’un tel système. Puisque nous ne pouvons exercer de réparation pendant la durée de la mission, nous utiliserons un MTTR égal à la durée de la mission : λ≈ 1 MTTF ⇒MTTF ≈ 1 ≈ 30000 λ 30000 = =0,997606≈R(t) MTTF + MTTR 30000+72 On admettra donc que la fiabilité de mission d’un système est approchante de sa disponibilité calculée avec un MTTR égal à la durée de la mission. Daniel Lelièvre Factory Systèmes* [email protected] A= MTTF *Factory Systèmes 22, rue Vladimir Jankelevitch Emerainville 77437 Marne la Vallée Cedex 2 Tél.: 01 64 61 68 68 - Fax: 01 64 61 67 34 MESURES 761 - JANVIER 2004 Solutions INFORMATIQUE INDUSTRIELLE Fiabiliser, ça peut rapporter gros! (2) ▼ La fiabilité est une discipline à part entière, qui sent bon les statistiques et est souvent jugée difficile à aborder. Dans ce deuxième article de la série consacrée à ce sujet, l’auteur Daniel Lelièvre (Factory Systèmes) aborde plus particulièrement la notion de la redondance et l’amélioration qu’elle apporte en terme de disponibilité du système. Comme pour l’article précédent, cet article se veut didactique et pratique. A partir des données de fiabilité des composants qu’il utilise, il est possible de calculer les données de fiabilité d’un équipement, et plus particulièrement son MTTF (Mean Time To Failure), temps moyen jusqu’à la défaillance, ou encore temps moyen de bon fonctionnement. Les constructeurs de matériels pour applications pointues font ce type de calcul et fournissent la valeur du MTTF ou du taux de défaillance. Le MTTF L’essentiel fourni correspond Dans l’univers de la probien entendu à une duction, les ordinateurs se configuration “usine” voient confier des tâches typique. Mais sur le de plus en plus importerrain, il arrive frétantes Les conséquences d’une quemment que l’on défaillance peuvent être ait besoin de modifier dramatiques la configuration. Par Pour limiter les risques, il exemple, pour un serexiste des ordinateurs veur de fichiers, on “pensés” pour offrir une disponibilité élevée pourra être amené à Ceux-ci comportent des ajouter un deuxième redondances qui en améprocesseur, 2 disques liorent la disponibilité durs et 3 barrettes Mais les redondances ont mémoire. Le MTTF un coût. Pour les justifier, ce coût doit être comparé fourni par le construcaux coûts de risques de teur du système n’est pertes de production ou de évidemment plus pertes de données valable puisqu’il ne 46 correspond pas à la configuration pour lequel il a été calculé. Mais le MTTF du système modifié peut être calculé. Pour cela, faisons l’hypothèse que la défaillance d’un seul de ses composants suffit à entraîner une panne du serveur, et son arrêt pour réparation1. De ce fait, lorsque l’on ajoute des composants à notre serveur, il suffit d’ajouter à son taux de défaillance “usine” le taux de défaillance de chacun des composants ajoutés et, à partir de là, calculer le nouveau MTTF (pour les composants et équipements électroniques, c’est facile, le MTTF est égal à l’inverse du taux de défaillance). Et c’est ainsi que pour un serveur qui affiche un MTTF de 30000 heures au départ, l’ajout d’un deuxième processeur, de deux disques durs et trois barrettes mémoire se traduit par une chute du MTTF à 24813 heures. Le temps de réparation dépend du type de panne Le MTTF est une chose, le temps moyen de réparation (MTTR) en est une autre. Ici aussi, tout doit être pondéré en fonction du type de composant défaillant, et de son impact. Nous savons qu’une défaillance peut avoir des conséquences très variables en fonction de la mission confiée au système. Nous devons aussi nous préoccuper du fait qu’à l’intérieur de notre système, certains composants sont plus critiques que d’autres. Le mode de défaillance de notre système variera selon le composant défaillant. La perte d’une carte réseau, par exemple, n’aura pas le même impact que la perte d’un disque dur (et des données qu’il contient). Dans le premier cas, le temps d’échanger la carte se traduira par une simple indisponibilité du service. Dans le second, non seulement notre MTTR est considérablement augmenté (il nous faudra prendre le temps de restaurer les données), mais, comme notre dernière sauvegarde n’est pas strictement à jour, il nous faudra estimer le coût de la perte (ou de la reconstruction) de ces données. Nous devons donc calculer un MTTR “système” à partir de MTTR composants différents. Il suffit d’effectuer la somme des taux de réparation (µ) de chacun des composants, pondérées par leur taux de défaillance (λ), ce qui nous fournit le taux de réparation du système, et le MTTR par son inverse. De plus, puisqu’on recherche un MTTR “système” réaliste, on en profitera pour décomposer ce dernier, pour chaque composant, afin de refléter : - le temps moyen d’intervention (le temps nécessaire aux équipes de maintenance pour se rendre sur le site). - le temps d’échange du composant (pour MESURES 762 - FEVRIER 2004 Solutions le disque dur, on aura tenu compte du temps de réinstallation ou de restauration du contenu). En tenant compte du fait que le MTTR varie d’un composant à l’autre et surtout en prenant pour chacun d’eux un MTTR “réaliste”, le MTTR global (donc au niveau système) se dégrade et la disponibilité2 du système est plus faible. Mais cette approche est, de toute évidence, plus réaliste que celle qui résulte d’un calcul à MTTR constant. Comment se protéger des fautes ? Puisque toute défaillance a pour origine une faute, et que nous sommes maintenant en mesure d’en déterminer l’impact, il est probable que nous percevions l’intérêt de nous en préserver. En fait, peut-être sans le savoir, nous sommes en quête de plus de sûreté de fonctionnement, propriété d’un système qui permet de placer une confiance justifiée dans le service qu’il délivre. Pour y parvenir, nous devrons certainement choisir ou combiner plusieurs axes de protection contre les fautes. L’évitement des fautes. Il s’agit là d’empêcher, méthodologiquement, l’apparition de fautes dans le système. - en utilisant des systèmes standards, à base de composants standard, on réduira par définition les risques de fautes de conception. - en choisissant des composants fiabilisés, en améliorant leurs conditions de fonctionnement (thermiques et électromagnétiques entre autres), en protégeant les sources possibles de perturbations (alimentations, liaisons), on réduira les risques de fautes physiques ou externes. - en utilisant des matériels et logiciels connus des utilisateurs, en n’effectuant que la maintenance préventive des composants qui l’imposent, en automatisant les interventions à chaque fois que c’est possible, en donnant aux opérateurs des interfaces non ambiguës, on réduira les risques de fautes d’interaction. L’élimination des fautes. Les fautes sont détectées et corrigées avant qu’elles ne soient susceptibles de générer des erreurs. On préférera l’utilisation de protocoles de communication sécurisés où la faute dans une trame véhiculée sur le réseau sera détectée avant que la trame ne soit traitée, puis réémise jusqu’à ce que l’on obtienne une trame exempte de faute. La tolérance aux fautes. On admet (tolère) la présence de fautes au sein du système, mais on met en œuvre des mécanismes (généralement basés sur la redondance), capables de “couvrir” (étouffer, masquer) ces fautes. - La redondance est la méthode la plus simple pour tolérer les fautes. Elle peut s’exercer sur une partie du système (redondance partielle) ou sur sa totalité (redondance massive). Bon nombre de constructeurs ont recours à la redondance partielle, plus économique. Après avoir identifié les fonctions les plus critiques du système (par l’étude de la fréquence et de la gravité des défaillances), on confie à un sous-système une partie de la mission du serveur (alimentations doublées, disques miroirs ou RAID...). Cette approche fonctionne bien tant que ces redondances sont prévues dans la conception même des systèmes. Les redondances “ maison”, où, par exemple, un “mini-serveur” assure le secours du serveur principal, se heurteront inévitablement à des problèmes d’évolutivité.A la mise en service, il est probable qu’ils soient à même de jouer leur rôle mais, après quelques années d’évolution, de migrations ou mises à jour, le simple coût Quelques rappels Dans l’article précédent, nous avions défini un certain nombre de termes, que nous vous rappelons ici : MTTF : Temps moyen jusqu’à la défaillance MTTR : Temps moyen de réparation MTBF : Temps moyen entre défaillances λ : Taux de défaillance µ : Taux de réparation Disponibilité : aptitude à délivrer le service Indisponibilité : contraire de la disponibilité …et quelques formules λ= 1 MTTF (formule applicable à des éléments dont le taux de défaillance est constant, ce qui est le cas des composants électroniques) µ= 1 MTTR MTBF = MTTF + MTTR MTTF Disponibilité = = 1- MTTF + MTTR MTTR MTBF Indisponibilité = 1 – Disponibilité = MTTR MTBF des campagnes de tests garantissant le fonctionnement correct de la stratégie de redondance aura dépassé le surcoût d’une redondance massive. Evaluation de la disponibilité d’un serveur Quantité λ λ total MTTR (réaliste) µ (réaliste) 1 6,25.10-6 6,25.10-6 14 h 7,14.10-2 CPU 2 5,71.10-7 1,14.10-6 10 h 1,00.10-1 Alimentation 1 1,00.10-5 1,00.10-5 11 h 9,09.10-1 Disque dur 8 2,00.10-6 1,60.10-5 16 h 6,25.10-2 Mémoire (256 Mo) 4 7,99.10-7 3,20.10-6 10 h 1,00.10-1 1 1,00.10-6 1,00.10-6 10 h 1,00.10-1 Composant Carte Mère Carte Réseau λ = 3,76.10-5 Système µ = 7,69.10-2 MTTF = 1/λ = 26 604 heures MTTR = 1/µ= 13 heures MTBF=MTTF+MTTR=26 617 heures Disponibilité = A partir du taux de défaillance (λ) des éléments fournis par le constructeur,et du MTTR estimé,il est possible de calculer tous les autres paramètres. MESURES 762 - FEVRIER 2004 MTTF MTTF+MTTR = 99,951 % Indisponibilité = 1 – Disponibilité = 0,049 % = 0,049.10-2x8 760* = 4,3 heures/an 1 an = 8 760 heures 47 Solutions - La redondance peut être d’ordre n, c’est-àdire que le nombre de sous-systèmes destinés à couvrir la faute d’un autre sous-système peut être supérieur à 1. La redondance la plus simple est d’ordre 2 (deux sous-systèmes se contrôlent et se couvrent mutuellement). - Un système redondant peut être composé de sous-systèmes identiques (redondance homogène) ou différents (redondance hétérogène). La redondance hétérogène affranchit la redondance des fautes de modes communs, celles qui peuvent affecter simultanément plusieurs sous-systèmes.A l’extrême, on peut imaginer deux sous-systèmes basés sur des platesformes différentes dotées de systèmes d’exploitation différents, exécutant des pro- grammes écrits dans des langages différents... De telles architectures ne sont envisageables que pour des applications stables, répétitives et hautement critiques, les coûts de développement, et surtout de maintenance, étant généralement prohibitifs. - Les sous-systèmes peuvent être synchrones ou asynchrones. Les sous-systèmes asynchrones sont, là encore, moins sensibles à des fautes de mode commun telles que les perturbations électromagnétiques. La redondance, protection totale ? On aimerait que l’adoption des redondances rende nos systèmes infiniment fiables, mais cette notion n’a pas droit de cité dans le vocabulaire du fiabiliste. Quelles que soient les mesures prises, il restera une probabilité pour que notre système s’écarte un jour de sa mission. Les causes peuvent être multiples. Mode commun. Tout système redondant reste exposé aux fautes dites de mode commun. Il s’agit de celles qui peuvent affecter les n sous-systèmes simultanément. Les perturbations électromagnétiques, par rayonnement ou par conduction, les risques naturels ou l’erreur humaine sont autant de sources possibles de fautes de mode commun contre lesquelles un système redondant peut s’avérer impuissant. Couverture. Aucun système redondant ne peut garantir que toutes les fautes affectant un sous-système seront couvertes. Il existe une probabilité pour que, lors de l’occurrence Les graphes de Markov pour P coûteux. Il est donc intéressant de voir, pour un faible investisseour faciliter l’analyse d’un système avec redondances et ment, s’il n’est pas possible d’améliorer de façon substantielle le l’impact des défaillances, un bon moyen est de comtaux de défaillance du système. mencer par modéliser son comportement, en utilisant Probabilité de quitter l’état normal (PSOK). Si l’on considère que les graphes dits de Markov. Rappelons que Andreï le système est en état normal de fonctionnement “système OK” (PSOK Andreïvitch Markov, mathématicien et poète russe, a réalisé au début du siècle dernier d’importants travaux sur les processus sto- ”), la probabilité qu’il a, dans l’heure en cours (si on prend, par convention t = 1 heure), de quitter cet état est liée à : chastiques (aléatoires) et leurs enchaînements. Il a proposé une - la défaillance de l’une des deux alimentations (soit deux fois le théorie permettant de calculer le comportement d’un système de probabilités complexe, à partir d’un modèle graphique.A ce jour, taux de défaillance d’une seule alimentation) pondéré par le taux de couverture CAL, qui nous amène à l’état “1 alim HS”(PALHS): les graphes de Markov sont utilisés principalement par les fiabiPSOK → PALHS = 2λALCAL listes dans l’étude des systèmes réparables, pour lesquels d’autres méthodes telles que les arbres de défaillances sont moins bien adaptées. Nous allons appliquer cette méthode à un serveur tel que celui que nous avons vu, mais auquel on a ajouté une seconde alimentation, connectée de telle sorte que la défaillance de l’une est masquée par la seconde, et que l’alimentation défaillante puisse être échangée en ligne (“à chaud”). Une telle étude est intéressante car l’alimentation est l’élément le plus fragile (λ = 1.10- Chaque ovale représente un “état”du système,ou plus précisément,la probabilité qu’a le système de se trouver dans cet état pendant une 5) d’un système et c’est aussi un des moins période de temps t.Chaque flèche représente la probabilité de passer d’un état à un autre pendant la même période. Configuration du système Composant Carte mère CPU Alimentation Disque dur Mémoire (256 Mo) Carte Réseau Nombre 1 2 2 (en redondance) 8 4 1 Plus le système comporte d’éléments,plus son MTTF va baisser (voir tableau “Evaluation de la disponibilité d’un serveur informatique”).Par contre,si un des éléments est en redondance,comme c’est le cas ici pour les alimentations,le MTTF va remonter. 48 Etats du système PSOK → PALHS Probabilité qu‘a le système de passer de l‘état “OK” (avec les deux alimentations en état de marche) à l‘état “1 alim HS” PSOK → PSHS Probabilité qu‘a le système de passer de l‘état “OK” à l‘état “HS” PSOK Probabilité qu‘a le système de rester à l‘état “OK” (état normal de fonctionnement) PALHS →PSOK Probabilité qu‘a le système de passer de l’état “1 alim HS” à l’état “OK” PALHS → PSHS Probabilité qu‘a le système de passer de l‘état “1 alim HS” à l‘état “HS” PALHS Probabilité qu‘a le système de rester à l‘état “1 alim HS” PSHS →PSOK Probabilité qu‘a le système de passer de l‘état “HS” à l‘état “OK” PSHS Probabilité qu‘a le système de rester à l‘état “HS” MESURES 762 - FEVRIER 2004 Solutions d’une faute sur un sous-système, le ou les autres sous-systèmes soient incapables de “masquer” cette dernière. Son complément à 1 est le taux de couverture. Si, par exemple, une alimentation défaillante génère une tension de sortie trop élevée, une seconde alimentation simplement connectée en parallèle par un jeu de diodes n’aurait aucun moyen de couvrir la tension anormalement élevée. A supposer qu’un tel mode de défaillance de l’alimentation se produise dans un cas sur dix, la seconde alimentation pourra couvrir la faute de la première 9 fois sur dix, et le taux de couverture de la redondance sera de 90 %. Stratégie de maintenance. L’efficacité de la redondance reste avant tout conditionnée par une stratégie de maintenance adaptée. Si un sous-système assure la redondance d’un autre sous-système, le système n’est tolérant aux fautes que lorsque les deux sous-systèmes sont en service (pour une redondance d’ordre 2). Sur défaillance de l’un d’entre eux, le système, bien qu’opérationnel, perd sa tolérance aux fautes, et est alors vulnérable à la première défaillance. On doit donc : - assurer sa réparation dans les meilleurs délais (disposer des moyens humains, matériels et logiciels). - comprendre et s’organiser en fonction de la nature différente des opérations de maintenance sur un système tolérant aux fautes. Lors de la défaillance d’un système non redondant, le système à réparer n’assure plus son service, et les opérations de maintenance s’effectuent “à froid”, sans autre risque, a priori, que de retarder le redémarrage. La réparation d’un système tolérant aux fautes s’effectue “à chaud”, et le risque d’interrompre le service délivré est évident. Il s’agit donc de choisir le meilleur compromis entre intervenir le plus rapidement possible et intervenir avec le personnel compétent. Combien coûte la non-fiabilité ? A partir des informations de fiabilité, nous pouvons déterminer le coût de la non-fiabilité d’un serveur, en fonction de l’application à laquelle il est destiné et du type de préjudice causé en cas de panne. Nous nous intéressons ici à un système de supervision étudier un système redondant - la défaillance d’un autre composant (carte mère, CPU, disque dur, mémoire ou carte réseau), dont les taux de défaillances s’ajoutent (λCM + 2λCPU + 8λDD + 4λM +λCR), ou la défaillance “simultanée” des deux alimentations (2λALCAL.λAL = 2λ2ALCAL) ou encore la défaillance non couverte d’une des deux alimentations [λAL.(1- CAL]. Dans toutes ces situations, nous irons directement à l’état “système HS”(PSHS): PSOK → PSHS = λCM + 2λCPU + 8λDD + 4λM +λCR +2λ2ALCAL + 2λAL.(1- CAL) Probabilité de rester à l’état normal (“Système OK”). La probabilité PSOK qu’a le système de rester à l’état “système OK” est donc égale à : PSOK = 1 – Probabilité de quitter l’état PSOK Probabilité de quitter l’état “1 Alim HS”. En poursuivant ce même raisonnement, la probabilité de quitter l’état “1 alim HS”, dépend de : - la réparation de l’alimentation défaillante, dont la probabilité est égale à son taux de réparation µAL, qui permet de revenir à l’état “Système OK” : PALHS→ PSOK = µAL - la défaillance de la seconde alimentation ou d’un quelconque autre composant du système, qui nous mène à l’état “Système HS” : PALHS→ PSHS = λCM + 2λCPU + 8λDD + 4λM +λCR+λAL Probabilité de rester à l’état “1 alim HS”. Celle-ci est donc égale à : PALHS = 1 - Probabilité de quitter l’état PALHS Probabilité de quitter l’état “HS” pour revenir à l’état “OK” : PSHS → PSOK = µS Probabilité de rester à l’état “système HS”. Celle-ci est conditionnée par la probabilité de réparation système µS : PSHS = 1 - µS Calcul du MTTF système. Nous voyons que le calcul de la probabilité de quitter un état donné, ou d’y rester, est très simple dès que nous avons modélisé le comportement du système. Cependant, ce que nous recherchons réellement, c’est la probabilité d’atteindre l’état “système HS” à partir de l’état “système OK”, probabilité qui nous fournira le MTTF système. Pour y parvenir, nous devrons nous livrer à un exercice de calcul un peu plus complexe, qui repose notamment sur du calcul matriciel. Nous ne les présen- Valeurs calculées terons pas ici. PSOK →PALHS 1,8.10-5 Signification et valeurs des symboles utilisés λCM λCPU λAL λDD λM λCR CAL λAL (1 – CAL) 2 λALCAL. λAL = 2 λ2ALCAL µAL µS Taux de défaillance du composant “Carte Mère” λCM = 6,25.10-6 Taux de défaillance de la CPU λCPU =5,71.10-7 Taux de défaillance du composant “Alimentation” λAL =1,00.10-5 Taux de défaillance du composant “Disque Dur” λDD =2,00.10-6 Taux de défaillance du composant “Mémoire” λM =7,99.10-7 Taux de défaillance de la carte réseau λCR =1,00.10-6 Taux de couverture du système de redondance de On se fixe ici CAL = 90 % (le système de l‘alimentation redondance couvrira 9 défaillances sur 10) Défaillance non couverte d’une des deux alimentations 1.10-6 Défaillance simultanée des deux alimentations 1,8.10-10 Taux de réparation de l’alimentation µAL = 9,09.10-1 (MTTR = 11 heures) Taux de réparation du système µS = 7,69.10-2 (MTTR = 13 heures) MESURES 762 - FEVRIER 2004 PSOK →PSHS 2,9588.10-5 PSOK 0,9999524 PALHS →PSOK 9,09.10-2 PALHS →PSHS 3,7588.10-3 PALHS 0,90905332 PSHS →PSOK 7,69.10-2 PSHS 0,9231 MTTF = 33795 heures Disponibilite = MTTF MTTF+MTTR = 99,96152 % Indisponibilité = 1 – Disponibilité = 0,03848 % = 0,0348.10-2x8760* = 3,4 heures/an * 1 an = 8 760 heures 49 Solutions Comparaison des indisponibilités d’un serveur classique et d’un serveur avec alimentation redondante Perte par indisponibilité du service Serveur standard Alimentation doublée Perte de données Serveur standard Alimentation doublée Perte par interruption de la mission Serveur standard Alimentation doublée Fréquence Heures perdues sauvegarde par incident 24 h 12 Coût / heure Heures perdues / an Coût annuel 10 000 € 4,3 3,4 Gain 42 815 € 33 708 € 9 107 € Coût / heure Heures perdues / an Coût annuel 30 000 € 1,7 h 1,7 h Gain 50 458 € 50 458 € 0€ Durée mission Coût par lot Nombre de lots fabriqués par an Coût par lot Coût annuel 72 h 200 000 € 100 540 € 425 € 53 981 € 42 519 € 11 462 € Gain Investissement 500 € ROI* 20 jours Investissement 500 € ROI* n/a Investissement 500 € ROI* 15 jours *ROI : return on investment, retour sur investissement constitué d’un serveur “terminal server” et de 15 postes opérateurs. Considérons deux cas. Dans le premier, le serveur a une seule alimentation, un taux de défaillance λ de 3,76.10-5 (ce qui correspond à un MTTF de 26.604 heures), et un temps de réparation MTTR de 13 heures. Dans ces conditions, la disponibilité est de 99,951 % et l’indisponibilité est de 0,049 % (4,3 heures). Dans le deuxième cas, l’alimentation du serveur est doublée, ce qui permet d’avoir un MTTF de 33 795 heures, une disponibilité de 99,96152 % et une indisponibilité de 0,03848 %, soit 3,4 heures seulement. Absence de service rendu aux utilisateurs. Chaque arrêt du serveur entraîne l’arrêt de l’atelier pour raisons de sécurité, avec un manque à gagner de 10000 € de l’heure. Pour une indisponibilité du serveur de 0,049 %, soit 4,3 heures sur un an, le coût total annuel s’élève à 43000 €. En doublant l’alimentation, le taux d’indisponibilité passe à 3,4 heures. On réalise un gain annuel de plus de 9000 €, et investir de l’ordre de 500 € supplémentaires pour s’équiper d’un serveur à alimentation redondante est amorti en un peu moins de 3 semaines (ROI = 20 jours)! Perte de données. Celles-ci sont dues à une défaillance du disque dur. Pour un système comportant 8 disques durs ayant chacun un taux de défaillance λ de 2.10-6 par heure, il y a environ 1 “chance” sur 7 que cette perte de données se produise une fois par an. En effet, le MTTF du groupe de disques durs est de 50 1/(8.2.10-6) = 62500 heures, ce qui correspond à 7,13 ans. Dans notre exemple, le serveur de données est sauvegardé une fois par jour. Le retard moyen d’une sauvegarde est donc de 12 heures. Si la perte des données représente 30000 € de l’heure, ce sont 360000 € qui seront perdus à chaque perte de disque dur. Puisque hélas, pour revenir à notre exemple précédent, nous subirons en moyenne cet incident une fois toutes les 7,13 années, il nous en coûtera plus de 50000 € par an. En doublant l’alimentation, le coût de la perte des données du disque dur reste inchangé, puisque la redondance d’alimentation ne réduira pas a priori le risque de défaillance de ce dernier. Echec de la mission. Un serveur assure la traçabilité des opérations de production d’un produit pharmaceutique. Ce produit sera mis à l’égout si la trace est interrompue en cours de mission. Si la durée de mission est de 72 heures, et que son interruption coûte 200000 € (par exemple 100 kg de produit à 2000 €/kg), nous pouvons calculer qu’à partir du taux de défaillances λ=3,76.10-5, la fiabilité de mission serait de R=0,9973, soit une probabilité de défaillance pendant la mission de 1-0,9973=0,0027. La perte moyenne par mission sera de 540 €, et si 100 missions sont effectuées chaque année, nous perdrons près de 54000 € par an. En doublant l’alimentation, ce sont encore plus de 11000 € par an qui seront écono- misés, soit un investissement amorti en une quinzaine de jours! Un gain important pour un coût négligeable En bref, le surcoût d’un serveur à alimentation redondante semble négligeable en rapport au retour généré, et nous n’hésiterons pas une seconde. Cependant, malgré ce “tour de passe-passe” qui nous a permis de parcourir une petite partie du chemin, nous perdons encore plusieurs dizaines de milliers d’euros par an à cause des défaillances restantes. Ces dernières ne se laisseront dompter qu’aux prix de solutions plus complexes et plus coûteuses. Daniel Lelièvre Factory Systèmes* [email protected] *Factory Systèmes 22, rue Vladimir Jankelevitch Emerainville 77437 Marne la Vallée Cedex 2 Tél.: 01 64 61 68 68 - Fax: 01 64 61 67 34 Le dernier article de notre série, qui sera publié dans notre prochain numéro, sera plus particulièrement consacré aux applications concrètes, et plus particulièrement aux serveurs à haute disponibilité que l’on peut trouver sur le marché. 1Cette approche est évidemment fausse, puisqu’un voyant qui refuse de s’allumer n’a pas forcément de conséquence immédiate sur le comportement du système. Mais l’erreur de calcul ira dans le sens du pessimisme, qui est la qualité première du fiabiliste. 2La disponibilité d’un système est l’aptitude à délivrer un service, exprimée en pourcentage du temps total MESURES 762 - FEVRIER 2004 Solutions INFORMATIQUE INDUSTRIELLE Fiabiliser, ça peut rapporter gros! (3) ▼ Après la théorie, place aux travaux pratiques ! Nous terminons ici la série de trois articles consacrée à la fiabilité des serveurs informatiques. Cet article s’inscrit dans la continuité du précédent (voir notre numéro de février) où avait été évoqué l’intérêt de doubler certaines parties fragiles des systèmes. Ici, on aborde la redondance massive de l’ensemble des éléments du système, son apport en terme de disponibilité et les économies potentielles réalisées. T out le monde en convient, l’ajout de redondances à un système contribue à améliorer sa fiabilité. Mais comme il faut toujours mettre en balance ce que coûtent une indisponibilité du système d’un côté et ce que coûte l’amélioration de la fiabilité de l’autre, il est essentiel d’utiliser la redondance à bon escient, “de ne pas faire de la redondance pour de la redondance”. Pour fixer les axes de travail, une approche simple est de calculer le gain théorique qui serait réalisé si l’on ne subissait “jamais” la défaillance de tel ou tel composant. Il suffit de “neutraliser” le composant choisi en lui conférant un λ (taux L’essentiel de défaillances) de 0, La productivité, la qualité ou en le supprimant et la sécurité des installapurement et simpletions industrielles peuvent ment de l’architecture. être améliorées en limitant On pourra ainsi déterles temps d’arrêt des ordinateurs miner si la fiabilisation Il existe de nombreuses dudit composant prétechniques permettant sente un réel intérêt, d’améliorer la disponibilité avant de se lancer dans Toutes ont un coût, qui une analyse détaillée. doit être mis en regard des enjeux recherchés Les constructeurs, Les architectures à redondepuis des années, dance massive permettent connaissent ces de très fortement augmen“maillons faibles” et ter la disponibilité se sont attachés à pro- 60 poser des options de fiabilisation. Alimentations doublées, disques miroirs ou Raid X et réseaux redondants sont autant de redondances partielles répondant aux besoins spécifiques des applications. Cependant, ces offres restent très éloignées de l’architecture idéale qui nous permettrait de “dormir sur nos deux oreilles” quelle que soit la défaillance rencontrée. Concevoir un tel système, c’est se heurter à de nombreux obstacles liés à la nécessité de supporter les systèmes d’exploitation commerciaux et les applications qu’ils accueillent, ainsi que les standards matériels les plus répandus. Enfin, comment permettre, après défaillance et réparation, le redémarrage “à chaud” d’un composant neuf, qui ne connaît ni sa mission, ni l’état d’avancement de celle-ci ? Ces contraintes, d’une grande complexité, expliquent le faible nombre de solutions standards disponibles sur le marché. Les sociétés Stratus et Marathon Technologies (représentées par Factory Systèmes) ont toutes deux développé des solutions de redondance massive destinées aux applications où toute défaillance du serveur doit être évitée (ou plutôt tolérée). Leur architecture matérielle est très comparable. Les deux constructeurs ont recours à la redondance massive d’ordre 2, ou “DMR” (Dual Modular Redundancy) selon Stratus, et les chiffres annoncés sont très voisins en matière de disponibilité (99,999 %), ce que nous tenterons de vérifier par le calcul. Leur différence réside principalement dans le fait que MarathonTechnologies propose d’éloigner les sous-systèmes, alors que Stratus les confine dans une même enceinte. Enfin, Stratus propose une version “TMR” (Triple Modular Redundancy), redondance massive d’ordre 2 avec redondance partielle d’ordre 3. Deux modes de redondances Voyons de plus près les serveurs FTServer de Stratus. Ceux-ci sont découpés en deux soussystèmes distincts : d’une part, le sous-système d’entrées-sorties, qui gère le bus PCI et les unités de disque, et d’autre part le sous-système de traitement, qui intègre les fonctions CPU et mémoire. En mode DMR, conçu pour tolérer n’importe quelle faute unique sur chaque sous-système, la redondance est d’ordre 2 pour chaque sous-système.En mode TMR, conçu pour tolérer n’importe quelle double faute du sous-système de traitement, la redondance est d’ordre 2 pour le sous-système d’entrées-sorties, et d’ordre 3 pour le sous-système CPU et mémoire. Un système FTServer est donc constitué au total de 4 ou 5 sous-systèmes, suivant que l’on a affaire à l’architecture DMR ou à l’architecture TMR. MESURES 764 - AVRIL 2004 Solutions Architectures redondantes Ce schéma représente le découpage en sous-unités d’un serveur Stratus à architecture TMR.Il est également proposé en mode DMR (dans ce cas,il y a seulement deux CPU au lieu de trois. Les flux entre les sous-systèmes sont traités par des composants ASIC spécialisés, qui assurent la détection des fautes (comparaison et algorithme de détection en mode DMR, vote en mode TMR). Les CPU de chaque sous-système de traitement sont maintenus en stricte synchronisation (chaque CPU exécute rigoureusement la même instruction que son homologue). Les connexions physiques, assurées par des câbles ou par un fond de panier passif, sont redondantes. Quelle que soit la défaillance, la procédure de maintenance se résume à échanger “à chaud” le sous-ensemble en cause. Le système se charge automatiquement de la reconfiguration du sous-ensemble neuf. Ainsi, le MTTR (temps de réparation) est réduit, ainsi que le risque d’erreur humaine. La défaillance d’un quelconque composant d’un des sous-systèmes provoque la défaillance du sous-système. Ce sous-système est réparable. Pour étudier le comportement de l’ensemble du système redondant, en incluant les mises hors service puis les réparations des différents sous-systèmes, on utilise les graphes de Markov, qui font intervenir les taux de défaillance (λ), les taux de couverture (C) et le taux de réparation (µ) des différents éléments qui composent chaque sous-système. Nous avons donc décomposé notre ftServer en 4 sous-systèmes, 2 CPU et 2 ES, chacun dotés de leur propre taux de défaillances, taux de réparation et taux de couverture. Les CPU intègrent les CPU eux-mêmes, la mémoire, le chipset, l’ASIC SNP, et les composants de liaison dédiés. Chaque ES intègre le bus PCI, la carte réseau, les unités de disque, l’ASIC SSP, et les composants de liaison dédiés. Le fond de panier est caractérisé par son taux de défaillance (λFP), et on postule que sa double défaillance (λFP2) est nécessaire pour provoquer la défaillance du système. Des résultats tangibles Calculs pour un système DMR. Le système DMR pouvant survivre en présence de la défaillance d’une CPU et d’un ES, on aboutit à Comparaison des architectures un graphe de Markov à 5 états : “OK”, “1 ES HS”, “1 Type de serveur Durée d’indisponibilité/an CPU HS, 1 ES et 1 CPU HS”, Serveur standard 4,3 heures “Système HS”. Serveur avec alimentation doublée 3, 4 heures Pour calculer le MTTF du sysServeur DMR tème, il suffit d’appliquer les (redondance massive d’ordre 2) 5 minutes formules qui décrivent les difServeur TMR férents changements d’états. (redondance massive d’ordre 3) 3 minutes Pour permettre des comparaisons avec les exemples décrits MESURES 764 - AVRIL 2004 dans le deuxième article de notre série, et apprécier les améliorations apportées par la redondance, nous avons repris les mêmes valeurs pour les différents paramètres λ, µ et Quelques rappels Dans l’article précédent, nous avions défini un certain nombre de termes, que nous vous rappelons ici : MTTF : Temps moyen jusqu’à la défaillance MTTR : Temps moyen de réparation MTBF : Temps moyen entre défaillances λ : Taux de défaillance µ : Taux de réparation Disponibilité : aptitude à délivrer le service Indisponibilité : contraire de la disponibilité …et quelques formules λ= 1 MTTF (formule applicable à des éléments dont le taux de défaillance est constant, ce qui est le cas des composants électroniques) µ= 1 MTTR MTBF = MTTF + MTTR Disponibilité = MTTF MTTF + MTTR = 1- MTTR MTBF Indisponibilité = 1 – Disponibilité = MTTR MTBF 61 Solutions Graphe de Markov d’un système DMR C (taux de couverture). Pour les nouveaux paramètres apparus dans cet exemple, nous avons attribué la valeur de 99,5 % à CES et CCPU (taux de couverture de, respectivement, le sous-système d’entrées/sorties et le CPU). Dans les deux cas, la probabilité de non-couverture est principalement celle d’un mauvais diagnostic lorsque les comparaisons entre les deux sous-systèmes font apparaître une discordance. Autrement dit, dans une situation sur 200, le système “se trompe” de sous-système (entre celui qui est opérationnel et celui qui est en panne) ou encore il ne parvient pas à masquer la faute. Ce taux de couverture est très dépendant du savoir-faire du constructeur. Par ailleurs, nous avons choisi un MTTR de 1 heure pour chacun des sous-systèmes, auquel s’ajoute un temps d’intervention de 8 heures, soit un MTTR effectif de 9 heures. Nous avons enfin choisi un MTTR système de 8 heures, auquel il faut ajouter un temps d’intervention de 8 heures, ce qui donne un MTTF effectif de 16 heures (on estime qu’en cas de défaillance complète du système, son redémarrage sera plus long, nécessitant par exemple la restauration d’applications, de données ou du système d’exploitation). Ainsi, en reprenant les valeurs attribuées précédemment aux différents paramètres et en attribuant des chiffres réalistes aux nouveaux paramètres apparus dans cet exemple, on arrive à : - MTTF = 1 946 392 heures - A = 99,999178 % - Q = 0,000822 %, soit moins de 5 minutes d’indisponibilité par an. Calculs pour un système TMR. Avec l’architecture TMR, le serveur accueille un troisième sous-système CPU. Ce dernier va non seulement, permettre de tolérer une seconde défaillance des sous-sys- Économies réalisées grâce à la redondance Perte par indisponibilité du service Serveur standard Serveur DMR Perte de données Serveur standard Serveur DMR Perte par interruption de la mission Serveur standard Serveur DMR Fréquence Heures perdues sauvegarde par incident 24 h 12 Coût / heure Heures perdues / an Coût annuel 10 000 € 4,3 0,07 Gain 42 815 € 720 € 42 095 € Coût / heure Heures perdues / an Coût annuel 30 000 € 1,7 0,054 Gain 50 458 € 1 620 € 48 837 € Durée mission Coût par lot Nombre de lots fabriqués par an Coût par lot Coût annuel 72 h 200 000 € 100 540 € 7,4 € Gain 53 981 € 740 € 53 981 € Investissement ROI 30 000 € 8,6 mois Investissement ROI 30 000 € 7,4 mois Investissement ROI 30 000 € 6,8 mois Sur la base d’un surcoût (variable suivant les configurations) de 30 000 € par rapport à un serveur de base,nous observons des retours sur investissement (ROI,Return on investment) au bout de 6 mois seulement.Au-delà,ce sont plusieurs dizaines de milliers d’euros qui seront gagnés chaque année. A l’heure où la majeure partie des investissements est consacrée à l’amélioration des ressources existantes,un tel retour sur investissement reste exceptionnel et mérite qu’on s’y intéresse. 62 MESURES 764 - AVRIL 2004 Solutions Graphe de Markov d’un système TMR On estimera que le taux de couverture du sous-système CPU en mode TMR est 5 fois supérieur à celui du mode DMR (celui du sous-système ES reste inchangé). Sur cette base, on obtient : MTTF = 2 832 865 heures A = 99,999435 % Q = 0,000565 %, soit moins de 3 minutes par an. Note importante. Nous l’avons déjà précisé mais nous devons insister sur ce point : les données de base (MTTF composants) utilisées dans cette étude sont identiques à celles de serveurs “standards”, afin de permettre la comparaison des architectures. Ce faisant, les comparaisons sont plutôt défavorables aux constructeurs de serveurs redondants. Ceux-ci utilisent en effet des composants fiabilisés (donc avec des valeurs de λ meilleures), et ils proposent donc des MTTF supérieurs. Daniel Lelièvre *Factory Systèmes tèmes CPU, mais il augmentera considérablement le taux de couverture de ces mêmes sous-systèmes : lors de la défaillance de l’un d’entre eux, la détection de faute ne s’effec- MESURES 764 - AVRIL 2004 tue plus par comparaison suivie d’une stratégie de localisation basée sur des règles, mais sur un vote binaire des données, où les données erronées sont automatiquement exclues. 22, rue Vladimir Jankelevitch Emerainville 77437 Marne la Vallée Cedex 2 Tél.: 01 64 61 68 68 - Fax: 01 64 61 67 34 63