Gestion des pannes Algorithmes de reconfiguration danneaux virtuels Alexis CLERC

Preview:

Citation preview

Gestion des pannes

Algorithmes de reconfigurationd’anneaux virtuels

Alexis CLERC

Plan

Généralités sur les anneaux virtuelsProblématiquesAlgorithmes communsModélisation par réseaux de Pétri

Anneaux virtuels : généralités

Contexte : système réparti DéfinitionsJeton

Contexte : système réparti

Tolérance aux pannes Anneau virtuel

Définitions

Connexion logiqueSitePanne

Jeton

Message de contrôle uniqueDroits d’émissionDurée limitée

A

C B

TRT

THT(A) THT(B) THT(C)

d(A,B) d(B,C) d(C,A)

Jeton

Message de contrôle uniqueDroits d’émissionDurée limitée

Target TRT

En avance

En retard

TRT

TRT THT (A)

THT (A)

AA A

Problématiques

InitialisationInsertionFermeture de l’anneau après rupture de

liaison logique ou une panne de siteDétection et traitement d’un

partitionnement

Initialisation

Un site isolé pose sa candidatureNégociation

I J K L

Insertion

Si le consensus aboutit à un accordLes anciennes liaisons sont ferméesDe nouvelles liaisons avec le site candidat

sont ouvertes

I J K L

Oui, mais …..

… des problèmes

Un inconvénientUne anomalieAutre propositionRaison fondamentale : l’asynchronisme

Fermeture de l’anneau après rupture de liaison logique ou une panne de site

Anneau briséDétectionProcédure de fermeture

Fermeture de l’anneau après rupture de liaison logique ou une panne de site

Anneau briséDétectionProcédure de fermetureUn exemple :

I J K L

Etat initial

Fermeture de l’anneau après rupture de liaison logique ou une panne de site

Anneau briséDétectionProcédure de fermetureUn exemple :

Rupture de J-K détectée par K

I J K L

Fermeture de l’anneau après rupture de liaison logique ou une panne de site

Anneau briséDétectionProcédure de fermetureUn exemple :

Rupture de K-L détectée par L

I J K L

Fermeture de l’anneau après rupture de liaison logique ou une panne de site

Anneau briséDétectionProcédure de fermetureUn exemple :

Rupture de J-K détectée par J

I J K L

Fermeture de l’anneau après rupture de liaison logique ou une panne de site

Anneau briséDétectionProcédure de fermetureUn exemple :

J et L sont disponibles → J-L établie

I J K L

Fermeture de l’anneau après rupture de liaison logique ou une panne de site

Anneau briséDétectionProcédure de fermetureUn exemple :

Rupture de I-J détectée par I

I J K L

Fermeture de l’anneau après rupture de liaison logique ou une panne de site

Anneau briséDétectionProcédure de fermetureUn exemple :

I et K sont disponibles → I-K établie

I J K L

Fermeture de l’anneau après rupture de liaison logique ou une panne de site

Anneau briséDétectionProcédure de fermetureUn exemple :

Etat final : Anneau partitionné

I J K L

Détection et traitement d’un partitionnement.

Réévaluation des liaisonsVoisins les plus prochesSuppression de l’initialisation

Algorithmes communs

Pré-requisExclusion mutuelle par estampilles Election Terminaison Contrôle des accès concurrents et

traitements des interblocages

Pré-requis

Précédence causale Ordonnancement par estampille Ordonnancement par horloges vectorielles

Précédence causale

Précédence directe a précède b

a < b et site(a) = site(b) ou

a=site i .send(m) et b=site j .receive(m)

Précédence a -> b fermeture transitive de a précède b

Concurrence a // b non (a -> b) et non (b -> a).

Ordonnancement par estampille

Horloge logique Hi de Si Quand e sur Si, Hi ++Quand Si.send(m), Em estampille(m) = HiQuand Sj.receive(m),Hj = max(Hj, E(m))+1Ordre total =>

Soit a sur Si et b sur Sj a => b Hi(a) < Hj(b) ou (Hi(a) = Hj(b) et i<j).

e(numéro de site, estampille)

Ordonnancement par horloges vectorielles

Problème de => : a => b a -> b ou a et b causalement

indépendants

Soit un anneau à n sites Chaque Si a un Vi[1…n] Quand e sur Si, Vi[i] ++ Quand Si.send(m), Vm Estampille(m) = Vi Quand Sj.receive(m), Vj[k] := max (Vj[k], Vm[k])

pour k = 1, …, n

Ordonnancement par horloges vectorielles (suite)

Soit événement a daté par Va Passé(a) = {a, {e/e->a}} Va[i] = # {e / (e->a, et e sur Si) } +1 Ordre partiel

V <= W V[k] <= W[k] pour k = 1, …, n V < W V <= W et V <> W V // W non (V <= W) et non (V <= W)

Précédence causale a -> b Va < Vb a et b causalement indépendants Va // Vb

Exclusion mutuelle par estampilles

Application directe de l’ordonnancement des événements par estampilles

File d’attente répartie, ordonnée Un seul processus en section critique Pi demande l’autorisation, Pj la reçoit

Pj n’est en SC, et n’a pas fait de demande => accord Pj a fait un demande => accord ou accord différé Pj est en SC => accord différé

2(n-1) messages

Election

Exemple : perte du jetonUn seul doit le régénérerChoix de l’élu arbitraire : Si / i max(1 …n)Algorithme de filtrage

Chaque Pi candidat transmet m(i) Quand Pj recoit m(i)

Si i < j, m(i) détruit et Pj candidat Sinon, Pj retransmet m(i)

Terminaison

Détection de la fin d’un calcul répartiComparaison avec l’interblocage

Similitude : absence d’évolution Différence : non connu a priori

Détection en 2 tours de jeton Marquage des sites suivant leur activité Terminaison quand tous les sites sont marqués

inactifs

Contrôle des accès concurrents et traitements des interblocages

Exécution séquentielle de processus concurrents

Conflit : actions incompatibles sur un objetRelation de dépendance << sur un grapheCycle sur le graphe = interblocageContrôle de dépendance

Contrôle continu Contrôle de terminaison

Contrôle des accès concurrents et traitements des interblocages (suite)

Respect de l’ordre de verrouillage et méthode de détection-guérison des interblocages Graphe de dépendance = graphe d’attente Lors d’une détection de cycle p1-p2-…-pn

Un pi en jeu doit être annulé puis repris Choix du pi :

• Auteur de l’interblocage• Celui qui a verrouillé le moins de ressources• Le plus récent

Contrôle des accès concurrents et traitements des interblocages (suite et fin)

Ordonnancement par estampille et méthodes de prévention des interblocages. Ordre établi par estampillage En cas de conflit :

si ordre respecté, action acceptée sinon, action annulée, puis reprise

Résultat : pas de cycles dans le graphe des attentes

Modélisation par réseaux de Pétri

Analyse descendante Messages typiques Principe de suspicion Qualités de services des couches inférieures

Routage Transport

Pertes de messages détectées Messages non dupliqués Messages contrôlés, et donc supposés corrects Liaisons logiques surveillés par émission/acquittement de

messages de contrôle, avec un mécanisme de time-out

Niveau 0 : Etat d’un site

Etats Inactif Actif

Transitions Traitement de reprise Défaillance

IN

AC

df tr

[ IN ( tr > AC ; AC ( df > IN ] *

Niveau 1 : Etat d’un site / système

Etats Déconnecté

Transitions Traitement de défaillance Traitement de connexion

IN

AC

dfD

td

tcIN (tr > AC devient

IN (td > D ; D ( tc > AC

[IN (td > D ; D ( tc > AC ; AC ( df > IN ] *

Niveau 2 : Etat d’un site / anneau

Etats Inactif coté successeur Inactif coté prédécesseur Actif coté successeur Actif coté prédécesseur

Transitions Défaillance coté successeur Défaillance coté prédécesseur

PI

AC devient SA et PA

IN devient SI et PIdf devient sdf et pdf

D

SI

PA SA

pdf sdf

td

tc

[ PI et SI ( td > D ; D ( tc > PA et SA ; [ PA ( pdf > PI // SA ( sdf > SI ] ]*

Niveau 3 : Etat d’un site / voisins

Etats Liaisons ouvertes (PO, SO) Liaisons fermées (PF, SF)

Transitions Déconnexion quand liaison ouverte (ppo, spo) Déconnexion quand liaison fermée (ppf, spf) Ouverture de liaison (plo, slo) Fermeture de liaison (plf, slf) Rupture de liaison (plr, slr)

PI

PA devient PF ou PO

SA devient SF ou SO

sdf devient spo et spf

sdf devient spo et spf

D

SI

PF SF

ppf spf

td

tc

[ PF ( plo > PO ; PO ( plf ou plr > PF] // [ SF ( slo > SO ; SO ( slf ou slr > SF]

[ PF ( ppf > PI ou PO (ppo > PI ] // [ SF ( spf > SI ou SO (spo > SI ]

PO SO

ppo spo

plf slfplr plo slr slo

Et plus encore !!

Messages de synchronisationIdentité des sites émetteurs et destinataires-> Réseaux de Pétri à prédicats

Bibliographie

Modeling of a virtual ring protocol by means of Petri netsPascal Estraillier – Article présenté au 1er colloque de Génie logiciel

The Totem Single-Ring ordering and membership

protocolAmir, Moser, Melliar-Smith, Agarwal, Ciarfella – University of California

Depth first traversal and virtual ring construction in distribued systems

Helary, Raynal – Unité de recherche INRIA Rennes

Eléments fondamentaux des systèmes répartisMichel RIVEILL - Projet IMAG-INRIA Sirac

Remerciements

INRIA pour m’avoir envoyé ses articlesMr Terrat pour m’avoir prêté l’article sur

les réseaux de Petri en françaisVous, pour votre attention !

Recommended