• Aucun résultat trouvé

Replication de donnees et recuperation arriere

III.3 Gestion des donnees de recuperation

III.3.1 Stockage et identication des donnees de recuperation

Tout mecanisme de recuperation arriere est fonde sur la possibilite d'etablir et de restau-rer des points de recuperation. Pour cela, le systeme doit ^etre capable de

sauvegarder

et d'

identier

les donnees de recuperation. La sauvegarde d'un point de recuperation necessite une

recopie

des donnees courantes sur un support permettant de les conserver intactes en vue d'un eventuel retour arriere. Cette recopie s'apparente a une replication des donnees courantes. Cependant, la copie de recuperation est utilisee pour conserver une version ante-rieure d'une donnee lorsque la copie courante est modiee. L'identication des donnees de recuperation est indispensable pour pouvoir les reinstaller comme donnees courantes lors du traitement d'une erreur.

Dierentes solutions ont ete proposees pour assurer le stockage et l'identication de don-nees de recuperation. Elles se distinguent par la maniere dont est realisee cette identication.

III.3.1.1 Schemas utilisant la hierarchie memoire

Avec de tels schemas, les donnees courantes et les donnees de recuperation ne peuvent cohabiter dans un m^emeniveau de la hierarchie memoire.Les niveaux les plus bas contiennent les donnees modiees (donnees courantes) et les niveaux les plus hauts, plus eloignes du processeur, contiennent les donnees de recuperation. Les dierents niveaux de la hierarchie memoire fournissent alors un moyen simple pour sauvegarder et identier les donnees de recuperation.

Un schema de ce type est propose dans les architectures multiprocesseurs Sequoia Bern-stein 88] et CARER Ahmedet al.90, Wuet al.90]. Les caches et les registres des processeurs contiennent alors les donnees courantes. Les donnees de recuperation sont stockees dans la memoire partagee de la machine. Dans une region de recuperation, toute modication de donnee doit ^etre realisee dans un cache sans mise a jour de la memoire qui detruirait le point de recuperation. Cette solution suppose donc l'utilisation de caches a copie retardee2 dans lesquels les modications ne sont pas envoyees immediatement vers la memoire. La mise a

2Write-Back

34 Replication de donnees et recuperation arriere

Mémoire partagée Cache

Processeur Registres

Établissement d’un point

de récupération Défaut de cache

Copies courantes

Copies de récupération

Figure III.4 Exemple de schema hierarchique

jour de la memoire est realisee lorsqu'une ligne modiee doit ^etre evacuee d'un cache. Cette operation declenche alors la prise d'un point de recuperation durant laquelle la memoire est mise a jour en recopiant l'ensemble des lignes modiees du cache vers la memoire. Un retour arriere d'un processeur est realise en invalidant le cache et les registres du processeur.

Les donnees sont alors fournies par la memoire. La gure III.4 donne l'exemple d'une telle organisation.

D'autres solutions de ce type utilisent non plus la memoire mais des disques pour stocker les donnees de recuperation d'un ensemble de nuds implementant une memoire virtuelle partagee recouvrable E. L. Elnozahy & Zwaenepoel 92].

L'inter^et majeur des schemas utilisant la hierarchie memoire reside dans la simplicite de leur mise en uvre. Ils tirent partie de la replication deja existante dans les dierents niveaux d'une hierarchie memoire pour faciliter la sauvegarde et la restauration des points de recuperation. Le defaut de ces schemas reside dans le caractere indecidable du nombre de sauvegardes de points de recuperation qu'ils engendrent. Chaque fois qu'une donnee courante modiee doit ^etre envoyee vers le niveau de la hierarchie contenant les donnees de recupe-ration, un nouveau point de recuperation doit ^etre etabli. Dans le cas de caches, le nombre de ces operations depend donc des caracteristiques du cache (taille, associativite...) ainsi que des references memoires generees par l'application. Il a ete montre que cette approche peut severement limiter les performances d'une architecture qui l'utilise Janssens & Fuchs 91, Ban^atreet al. 93a].

III.3.1.2 Schemas mixtes avec localisation physique xe des donnees de recu-peration

Au contraire des schemas hierarchiques, les schemas mixtes autorisent la cohabitation des donnees de recuperation et des donnees courantes dans un m^eme niveau de la hierarchie memoire.Ils corrigent donc le principal defaut des schemas utilisant la hierarchie memoireen

Gestion des donnees de recuperation 35 rendant la frequence de sauvegarde des points de recuperation independante de l'application et des caracteristiques materielles de la machine.

Avec ce type de schemas, le probleme a resoudre est l'identication des donnees courantes et des donnees de recuperation. Une solution simpleconsiste a assurer le stockage des donnees de recuperation sur des supports independants de ceux utilises pour les donnees courantes.

L'identication des donnees de recuperation est alors simplementrealisee par leur localisation physique. Ces solutions ont surtout ete proposees au niveau des memoires en vue d'ameliorer les performances des techniques de recuperation arriere.

Banc 1 Banc 2

Données courantes Données de récupération Etablissement d’un point de

récupération

Interface

Restauration d’un point de récupération Lectures, écritures

Mémoire stable

Figure III.5 Synopsis d'une memoire stable

La memoire stable est un dispositif materiel propose pour fournir un support ecace a la recuperation arriere. Elle a notamment ete utilisee dans une architecture multiprocesseur a bus Ban^atreet al. 93a]. Le schema de la gure III.5 resume l'organisation d'une telle me-moire. Deux bancs memoire distincts sont utilises, le premier stocke les donnees courantes, le second conserve les donnees de recuperation. Lors de l'etablissement d'un point de recu-peration, les lignes courantes modiees du banc 1 mettent a jour les lignes de recuperation correspondantes sur le banc 2. L'operation inverse est realisee pour la restauration d'un point de recuperation. Une telle memoire est capable de tolerer la defaillance d'un des bancs me-moire sauf dans le cas d'une defaillance du premier banc durant la phase de mise a jour du second banc.

L'utilisation de memoires stables au sein d'une architecture extensible a memoire par-tagee et tolerante aux fautes, est proposee dans l'architecture MEMSY Din et al. 94]. Au contraire de la memoire stable presentee auparavant, les deux bancs memoire sont toujours identiques et ne contiennent que des donnees de recuperation3. Des memoires standard sont

3La presence de deux copies des donnees de recuperation permet ici d'assurer les proprietes de stabilite de nies plus loin.

36 Replication de donnees et recuperation arriere donc utilisees pour les donnees courantes. Pour des raisons evidentes de co^ut, une memoire stable est associee a plusieurs nuds de l'architecture. Le traitement d'une defaillance d'un des bancs de la memoire stable consiste alors a transferer les objets stockes sur celle-ci vers une autre memoire stable de l'architecture.

Registre de contrôle

a) Avant l’établissement d’un point de récupération toutes les pages sont dans l’ensemble

Registre de contrôle 1 1 1

1 0

b) Après l’établissement, une des pages n’est plus modifiable et conserve les données de récupération 0 0

4

Figure III.6 Memoire en tranches

Les memoires en tranches Staknis 89] proposent une organisation ou chaque page est en fait constituee d'un ensemble de pages physiques avec la propriete qu'une seule d'entre elles est lisible alors que toutes sont modiables. L'etablissement d'un point de recuperation consiste simplement a sortir une page de l'ensemble auquel elle appartenait de maniere a ce qu'elle ne soit plus modiee. La restauration d'un point de recuperation consiste a reintroduire la page de recuperation dans l'ensemble et a mettre a jour toutes les pages de l'ensemble avec la page de recuperation. Ces memoires ont ete plus particulierement etudiees pour des situations ou plusieurs points de recuperation sont a conserver Horning et al. 74, Randell 75]. Dans notre cas, des ensembles de deux pages seraient susants. Si les dierentes tranches correspondent a des bancs memoiredistincts, ces memoires sont capables de tolerer la perte d'un des bancs.

Les schemas mixtes avec localisation xe des donnees de recuperation corrigent le defaut des schemas utilisant la hierarchie memoire tout en conservant la simplicite d'identication des donnees de recuperation. En separant physiquement les donnees de recuperation des donnees courantes sur des supports distincts, ils facilitent la restauration d'etat et permettent de tolerer la defaillance des supports utilises. Ainsi, si un banc de la memoire stable est defaillant, seules des donnees courantes ou des donnees de recuperation disparaissent et un etat global coherent existe donc toujours. Cependant, ces schemas sont souvent co^uteux car ils utilisent du materiel specique necessitant un co^ut de developpement eleve. De plus, la replication statique qu'ils utilisent ne leur permet pas de faire un usage optimal du support utilise pour stocker les donnees courantes et les donnees de recuperation. Ainsi, dans le cas d'une memoire stable, la defaillance d'un seul banc inhibe l'utilisation de l'autre.

III.3.1.3 Schemas mixtes sans localisation physique xe des donnees de recu-peration

Comme les schemas precedents, ces schemas autorisent les donnees courantes et les don-nees de recuperation a cohabiter dans un m^eme niveau de la hierarchie memoire. Cependant

Gestion des donnees de recuperation 37 les donnees de recuperation n'ont pas ici de localisation physique xe et leur identication est realisee a l'aide d'informations additionnelles.

Pointeur courant

Avant la première modification Après la première modification Page fantôme

Page courante

Aprés l’établissement du point de récupération

Figure III.7 Technique des pages fant^omes (avec mecanisme de copie sur ecriture) Dierentes techniques sont envisageables. La technique des

pages fant^omes

introduite pour les bases de donnees Lorie 77], puis adaptee aux memoires virtuelles partagees recou-vrables Henskens 93], utilise deux pointeurs identiant respectivement la version courante et la version de recuperation d'une page. Avec la technique des

pages jumelles

Reuter 80], un seul pointeur sur un emplacement contenant les deux copies d'une page est utilise.

L'identication des pages de recuperation est realisee gr^ace aux dates de modication de chacune des pages ainsi qu'a la date d'etablissement du dernier point de recuperation. Des optimisations de ces deux techniques apparaissent dans Wu & Fuchs 90] pour l'implemen-tation d'une memoire virtuelle partagee recouvrable au-dessus d'un reseau de sl'implemen-tations de travail ainsi que dans Bowen & Pradhan 91] ou ces deux techniques sont reprises pour l'implementation d'une memoire virtuelle recouvrable dans un cadre monoprocesseur.

Ce type de schemas n'impose aucune contrainte sur la frequence d'etablissement des points de recuperation. Les donnees de recuperation pouvant ^etre stockees n'importe ou.

Ils permettent de plus de faire un usage optimal des ressources allouees pour le stockage des donnees courantes et de recuperation. Leurs inconvenients proviennent essentiellement de l'introduction de nouvelles structures de donnees permettant d'identier les donnees de recuperation. Ces structures de donnees fragilisent l'architecture du point de vue des fautes tolerees puisque toute perte d'une partie d'entre elles entra^ne inevitablement une defaillance de l'architecture.L'implementationde tels schemas ne peut donc ^etre realisee que si ces struc-tures sont conservees sur des supports eux-m^emes tolerants aux fautes ou si l'information perdue peut ^etre recalculee lors de la reprise. Dans la pratique, ils sont souvent accompagnes d'hypotheses simplicatrices sur les fautes tolerees. Ainsi, les techniques des pages fant^omes ou des pages jumelles supposent habituellement l'utilisation de disques ables Wuet al. 90].

Dans le cas de la memoire virtuelle proposee dans Bowen & Pradhan 91], la memoire est supposee able et seules les defaillances des processeurs sont considerees. Ces hypotheses simplicatrices permettent dans bien des cas de limiter l'occupation memoire et d'optimiser l'etablissement de points de recuperation en utilisant par exemple des techniques de copie sur ecriture qui repousse la replication d'une page de recuperation jusqu'au moment de sa

38 Replication de donnees et recuperation arriere premiere modication (voir gure III.7).