École Doctorale de Grenoble Master 2 Recherche Systèes et Logiciel Disponibilité des s Tolérance aux fautes-2 Serveurs à haute disponibilité Sacha Krakowiak Université Joseph Fourier Projet Sardes (INRIA et IMAG-LSR) http://sardes.inrialpes.fr/people/krakowia! Motivation et objectifs " Le odèle - est un schéa de base de construction d applications réparties " L objectif est de présenter les principales techniques perettant d augenter la disponibilité des s! Plan " Conditions de cohérence pour des s dupliqués " Techniques de duplication # Serveur - de # Réplication active " Outils de base pour la duplication cohérente " Exeple d application Référence de base : R. Guerraoui, A. Schiper. Software-based Replication for Fault-Tolerant Systes, IEEE Coputer, vol. 30, 4, April 1997, pp. 68-74 2 Serveurs tolérants aux fautes : principes Un odèle pour les s dupliqués! La tolérance aux fautes est obtenue par redondance " On utilise N s pour résister à la panne de N-1 s " Hypothèse!: panne franche (fail stop)! La redondance ipose des contraintes de cohérence " Vu du, l enseble des N s doit se coporter coe un abstrait unique (les spécifications d interface du doivent être respectées) interface Un enseble de processus {p 1,, p n } interagit avec un enseble d objets x, via des appels synchrones ( - réponse) i [x op(arg) p i ] opération op sur x x [x ok(res) p i ] Pour la tolérance aux fautes, chaque objet x existe en plusieurs exeplaires x 1, x 2, x N Coent définir la cohérence de ces exeplaires ultiples? s S abstrait réalisé par On définit une relation d ordre sur les appels. On suppose qu il existe un systèe de datation global avec validité forte (soit t) - en pratique horloges physiques synchronisées Soit t inv (O) la date d éission d un appel d une opération O et soit t res (O) la date de réception de la réponse. Alors O! O' si t res (O) < t inv (O') et O O' si (O! O') et (O'! O) 3 4
Linéarisabilité Linéarisabilité - exeple (1) La cohérence intrinsèque d un objet x est définie vis-à-vis d une suite d opérations sur x. Par exeple : x est une pile. Conditions de cohérence : Si deux objets a et b sont epilés dans l ordre a ; b, ils doivent être dépilés dans l ordre b ; a Soit ndep(x) le nobre total d opérations dépiler et nep(x) celui des opérations epiler ; alors nep(x) - ndep(x)! 0. Si la pile a une taille finie n, alors nep(x) - ndep(x) " n. On dit qu un enseble d opérations E sur un enseble d objets est linéarisable si on peut ranger ces opérations dans une séquence S telle que pour tout couple d opérations O, O' telles que O! O', O précède O' dans S la séquence S est légale pour tout objet, i.e. respecte les conditions de cohérence intrinsèque pour cet objet Soit un objet x qui est une file FIFO (opérations enq et deq) et soit la séquence d appels et réponses suivants sur x depuis ou vers p i et p j x enq(a) p i x enq(b) p j x ok() p i x ok() p j x deq() p i x deq() p j x ok(b) p i x ok(a) p j O3 O4 O1 O2 O1 O2, O3 O4 (O1, O2)! (O3, O4) La séquence est linéarisable en S = [O2, O1, O3, O4]. En effet : les conditions de précédence sont replies les conditions de cohérence égaleent : enq(b), enq(a), deq(b), deq(a) 5 6 Linéarisabilité - exeple (2) Linéarisabilité pour des objets dupliqués Soit le êe objet x (file FIFO) que dans l'exeple précédent : x enq(a) p i x enq(b) p j x ok() p i x ok() p j x deq() p i x deq() p j x ok(b) p i x ok(b) p j O3 O4 O1 O2 O1 O2, O3 O4 (O1, O2)! (O3, O4) La séquence n est pas linéarisable. En effet on ne peut trouver aucune séquence des opérations O1, O4 qui replisse la condition de cohérence pour une file FIFO enq(b), enq(a), deq(b), deq(b) enq(a), enq(b), deq(b), deq(b) Reprenons l exeple de la file FIFO x avec deux exeplaires et x 2 x 1 reçoit [x enq(b) p j ], [x enq(a) p i ], [x deq() p i ], [x deq() p j ] x 2 reçoit [x enq(a) p i ], [x enq(b) p j ], [x deq() p i ], [x deq() p j ] Les deux objets exécutent les s dans l ordre des réceptions. Si p i et p j prennent les réponse de x 1, l exécution est linéarisable Si p i prend les réponses de x 1 et p j celles de x 2, l exécution n est pas linéarisable Conditions suffisantes de cohérence Si une est traitée par un, elle doit être traitée par tous les s (en état de arche) Deux s différentes doivent être traitées dans le êe ordre par tous les s 7 8
Construction de s tolérants aux fautes Serveur - de! Deux techniques de base (nobreuses variantes) " Rappel : N s pour résister à N-1 pannes (franches)! Serveur - de (poursuite) " Un () joue un rôle privilégié " La panne du est visible par les s (changeent de ) " La panne d un de est invisible aux s! Redondance active (copensation) " Les N s jouent un rôle syétrique et exécutent tous les êes s " Les pannes sont invisibles aux tant qu il reste un en arche de de attente ise à jour de l état + réponse diffusion fiable ack ack réponse Diffusion fiable : le essage parvient à tous ses destinataires non en panne, ou à aucun (pas de diffusion partielle) Lorsque le renvoie la réponse, tous les s non en panne sont donc dans le êe état C Les conditions suffisantes de cohérence s appliquent dans les deux cas Tout de peut replacer le en cas de panne (l ordre de succession est défini à l avance, par exeple - ) 9 10 Serveur - de Traiteent des défaillances Serveur - de Mécanise de base de de attente ise à jour de l état + réponse ack délai de garde 1 2 (répétée) Défaillance du : détectée par le (délai de garde) et par les s de (écanise de groupe, défini plus loin) Le contacte le de qui a pris la place du (il connaît son adresse) Grâce à la diffusion fiable, tous les s de sont à jour, ou aucun. Si la panne est arrivée en 1 (aucun de n est à jour) : le nouveau réexécute la et et à jour les s de Si la panne est arrivée en 2 (tous les s de sont à jour) : le nouveau renvoie sipleent la réponse Les s ont une identification unique, ce qui peret de distinguer entre 1 et 2 C! Gestion de groupe " Mécanise perettant de connaître à tout instant la coposition d un groupe de processus (ou s), c-à-d. l enseble des processus valides (non en panne) " Outil de base : la vue : essage contenant la liste des processus valides " Propriété de cohérence : vues synchrones (cohérence entre diffusion des vues et diffusion des essages) =(,,, ) +1 =(,, ) Soit un essage diffusé dans une vue Soit P = { processus couns à et +1 } Alors : ou bien parvient à tous les ebres de P avant +1 ou bien ne parvient à aucun ebre de P 11 12
Vues synchrones Serveur - de Réinsertion après panne =(,,, ) OUI OUI =(,,, ) +1 =(,, ) Après réparation, le défaillant doit se réinsérer et restaurer son état Réalisé grâce au écanise de groupe 1) le qui se réinsère envoie un essage rejoindre qui provoque un changeent de vue 2) le réinséré deande une copie de l état à un des autres s NON NON rejoindre =(,, ) +1 =(,,, ) état +1 =(,,, ) =(,,, ) +1 =(,, ) =(,,, ) +1 =(,, ) Le réinsèré peut fonctionner 13 14 Serveur - de Cas particulier de deux s (schéa de Alsberg & Day) Serveur - de Application à la reprise dans Tande de état + réponse ise à jour En cas de panne du réponse ack Détection par le (délai de garde) Le de devient Réinsertion du (coe de ) après réparation, avec copie de l état On gagne un peu de teps par rapport au schéa classique (réponse par le de ) On n a pas besoin d un écanise de vues Le de surveille le En cas de panne du de Rien à faire par le Réinsertion après réparation (copie de l état) processus A () processus B () reprise données de reprise (état) sauvegarde processus A () processus B () Principe de la reprise Sauvegarde périodique sur disque de l état des processus. Surveillance utuelle de chaque systèe par l autre (essages je suis vivant ). En cas de dépasseent du délai de garde, le processeur survivant reprend les processus défaillants à partir du dernier point de reprise enregistré. Le schéa tolère la défaillance d un 15 16
Paires de processus dans Tande Redondance active Échanges entre processus et processus de Soit 2 processus s A, B ; les processus de sont A', B' ; on note [A] l état de A, etc. Scénario : -réponse de A vers B Initialeent [A] = a0, [A'] = a0, [B] = b0, [B'] = b0 Requête A! B : (nuéroté) B traite la : [B] = b1, [B'] = b0 B et à jour B' : [B] = b1, [B'] = b1 Réponse B! A : (nuéroté) A traite la réponse : [A] = a1, [A'] = a0 A et à jour A' : [A] = a1, [A'] = a1 Une défaillance est tolérée en tout point de cette séquence La nuérotation des essages évite les duplicata diffusion attente prend en copte la preière réponse ignore les autres réponses Tous les s sont équivalents et exécutent le êe La diffusion doit avoir les propriétés suivantes (pour satisfaire la cohérence) Un essage diffusé est reçu par tous les destinataires (non en panne), ou par aucun Deux essages différents sont reçus dans le êe ordre par leurs destinataires Ces propriétés définissent la diffusion atoique, ou totaleent ordonnée C 17 18 Redondance active (copléent) Redondance active Nécessité de la diffusion atoique diffusion attente réponses ajorité C 1 2 2 1 T1 T2 C1 C2 T1 T2 T2 T1 Le schéa de la redondance active s étend aux pannes byzantines (réponse arbitraire). Dans ce cas, on attend toutes les réponses et on choisit la réponse ajoritaire. Il faut alors 2k + 1 s pour résister à k défaillances (au lieu de k + 1 avec pannes franches) Dans l exeple ci-dessus, la diffusion n est pas atoique Serveur 1 : T1 ; T2 Serveur 2 : T1 ; T2 Serveur 3 : T2 ; T1 Si les s odifient l état des s, le systèe est incohérent 19 20
Redondance active Réinsertion après panne Coparaison entre et redondance active La panne d un est invisible aux s Pour se réinsérer après une panne, un diffuse (atoiqueent) une deande de reconstitution d'état 1 2 1 2 3 deande état 1 2 nouvel état Les 3 s sont dans le êe état pour traiter réquête 2! Mécanises nécessaires " Serveur : technique de groupe dynaique (vue synchrones, sauf si 1 seul de, cas très fréquent) " Redondance active : diffusion atoique " Les deux écanises sont équivalents (en coplexité) " Voir étude détaillée dans la suite du cours! Usage des ressources " Serveur : les s de peuvent exécuter une tâche de fond, non prioritaire ; reprise non iédiate " Redondance active : tous les s sont obilisés, reprise iédiate réinsertion report Coporteent du nouveau Un essage tel que 1 (parvenant avant sa propre deande d état) est ignoré Le d un essage tel que 2 (parvenant avant la réponse à la deande d état) est retardé jusqu après l arrivée du nouvel état Motivation : préserver la cohérence, grâce aux propriétés de la diffusion atoique! Travail pour les s " Serveur : le doit détecter la panne du " Redondance active : le n a rien à faire! Conclusion " Serveur : le plus utilisé dans les applications courantes " Redondance active : applications critiques, teps réel 21 22 Serveurs à haute disponibilité : aspects pratiques Serveurs : configurations (1)! Serveur d inforation redondant disques iroir partagés " Duplication passive des s : et " Réseaux : réseau d accès, réseau d adinistration, réseaux heartbeat dual data paths " Disques : # Disques privés (par ) # Disques partagés (redondants -> RAID iroir ou parité) dual heartbeat Réseau d! accès " Pas de point de défaillance unique (single point of failure) # Alientation électrique # Événeents externes! Configuration 1-1 asyétrique! Réseaux heartbeat dédiés! Les disques partagés contiennent l état du systèe! Bascule (failover) entre et en cas de panne du (accès aux disques partagés bascule égaleent) 23 24
Serveurs : configurations (2) Serveurs : configurations (3) disques iroir partagés dual data paths» LAN SAN 1 / 2 dual heartbeat 1 / 2 Réseau d! accès! Configuration syétrique! Les s restent indépendants l un de l autre! Moindre coût! Ipact sur la perforance en cas de bascule! Accès aux disques iroir via un SAN! Réseaux heartbeat séparés! Flexibilité accrue! Peut être généralisée à plusieurs applications (service level failover)! Utilisation pour s en grappes (server fars) 25 26 Exeple de systèe à haute disponibilité : IBM HA-CMP IBM HA-CMP : architecture logicielle (1)! HA-CMP : High Availability Cluster MultiProcessing " Principe : disque partagé (accès ultiple) Client Client Client CLINFO CLINFO CLINFO CLINFO Grappe (cluster) gérant de verrous gérant de grappe Agent SNMP Serveur A Disque 1 Disque 2 Serveur B CLINFO : service d inforation sur la grappe (infore les s sur l état de la grappe) Agent SNMP : reçoit inforation du gérant de grappe et la rend accessible via SNMP (Siple Network Manageent Protocol, protocole d'adinistration des systèes Unix) Gérant de verrous : synchronisation distribuée pour la gestion des verrous des transactions Gérant de grappe : gestion globale de ressources (voir suite) 27 28
IBM HA-CMP : architecture logicielle (2) IBM HA-CMP : principe de la reprise configuration de la grappe odules d interface réseau Gérant de grappe Contrôleur de grappe échanges de essages fonctionnels (application) "je suis vivant" (surveillance utuelle) Gérant d'événeents Interface réseau contrôleur de ressources surveillance scripts d'événeents Gérant de verrous Agent SNMP Plusieurs variantes Recouvreent siple : l application fonctionne sur l un des systèes (). L autre systèe est inactif ou exécute des tâches de fond, non critiques. Recouvreent utuel : les applications sont exécutées sur les deux systèes, ais sans partage d inforation (fichiers disjoints). En cas de défaillance d un systèe, ses applications sont reprises par l autre. Partage de charge : les applications sont exécutées sur les deux systèes et peuvent partager des données. Mais ce partage passe nécessaireent par un gérant distribué de verrous pour assurer des propriétés transactionnelles Dans tous les cas, la counication (pour reprise) se fait toujours par le disque partagé. 29 30