Systèmes et algorithmes répartis



Documents pareils
Gestion répartie de données - 1

Gestion répartie de données - 1 Duplication et cohérence

Le Network File System de Sun (NFS)

Systèmes de fichiers répartis

Sommaire. 3. Les grands principes de GFS L architecture L accès de fichier en lecture L accès de fichier en écriture Bilan

Conception des systèmes répartis

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Le modèle client-serveur

Réplication des données

Programmation parallèle et distribuée

Programmation parallèle et distribuée

Projet gestion d'objets dupliqués

SYSTÈME DE GESTION DE FICHIERS

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Systèmes et algorithmes répartis

Windows Internet Name Service (WINS)

Système de Gestion de Fichiers

Le stockage. 1. Architecture de stockage disponible. a. Stockage local ou centralisé. b. Différences entre les architectures

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

NFS Maestro 8.0. Nouvelles fonctionnalités

L I V R E B L A N C P r o t ég e r l e s a p p l i c a t i o n s m ét i e r s c r i t i q u e s M a i n f r a m e, un b e s o i n c r u c i a l

Données Réparties. Thibault BERNARD.

Service d'annuaire Active Directory

Bases de données documentaires et distribuées Cours NFE04

Programmation parallèle et distribuée (Master 1 Info )

Chapitre VII : Principes des réseaux. Structure des réseaux Types de réseaux La communication Les protocoles de communication

Cours 13. RAID et SAN. 2004, Marc-André Léger

Introduction à LDAP et à Active Directory Étude de cas... 37

NoSQL. Introduction 1/23. I NoSQL : Not Only SQL, ce n est pas du relationnel, et le contexte. I table d associations - Map - de couples (clef,valeur)

Plan du cours. Autres modèles pour les applications réparties Introduction. Mode de travail. Introduction

L annuaire et le Service DNS

Réseau Global MIDI Note applicative

Big Data. Les problématiques liées au stockage des données et aux capacités de calcul

Systèmes d informations nouvelles générations. Répartition, Parallèlisation, hétérogénéité dans les SGBD. Exemple d application d un futur proche

B1-4 Administration de réseaux

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes

«clustering» et «load balancing» avec Zope et ZEO

Module BDR Master d Informatique (SAR)

Cours de Système : Gestion de Fichiers

Sauvegarde collaborative entre pairs Ludovic Courtès LAAS-CNRS

Présentation Alfresco

Big Data. Cyril Amsellem Consultant avant-vente. 16 juin Talend

Serveur Appliance IPAM et Services Réseaux

Sur un ordinateur exécutant Windows 2000 Server Ayant une adresse IP statique

TP redondance DHCP. Gillard Frédéric Page 1/17. Vue d ensemble du basculement DHCP

Protégez-vous du vol de données en renforçant la sécurité de vos procédures d identification lors des connexions distantes

Systèmes de gestion de code source

Serveurs de noms Protocoles HTTP et FTP

Étendez les capacités de vos points de vente & sécurisez vos transactions.

Administration de systèmes

La virtualisation, des postes de travail

IDEC. Windows Server. Installation, configuration, gestion et dépannage

Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université

UE5A Administration Réseaux LP SIRI

Introduction à MapReduce/Hadoop et Spark

Systèmes d exploitation

Services OSI. if G.Beuchot. Services Application Services Présentation - Session Services Transport - Réseaux - Liaison de Données - Physique

Les transactions 1/46. I même en cas de panne logicielle ou matérielle. I Concept de transaction. I Gestion de la concurrence : les solutions

Analyse et réalisation d un système de disques répartis à forte disponibilité

Windows 2000: W2K: Architecture. Introduction. W2K: amélioration du noyau. Gamme windows W2K pro: configuration.

EMC AVAMAR. Logiciel et système de sauvegarde avec déduplication

INF6500 : Structures des ordinateurs. Sylvain Martel - INF6500 1

La surveillance réseau des Clouds privés

Fouillez facilement dans votre système Big Data. Olivier TAVARD

Groupe Eyrolles, 2004 ISBN :

MEAD : temps réel et tolérance aux pannes pour CORBA

Cartographie des solutions BigData

Acquisition des données - Big Data. Dario VEGA Senior Sales Consultant

NetCrunch 6. Superviser

Chapitre 3 : Système de gestion de fichiers

Cluster High Availability. Holger Hennig, HA-Cluster Specialist

Présentation du module Base de données spatio-temporelles

Technologie SDS (Software-Defined Storage) de DataCore

Les nouveautés d AppliDis Fusion 4 Service Pack 3

Créer et partager des fichiers

Technologie de déduplication de Barracuda Backup. Livre blanc

VMWare Infrastructure 3

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril / 15

Java et les bases de données

Microsoft Dynamics AX. Solutions flexibles avec la technologie Microsoft Dynamics AX Application Object Server

Configuration automatique

EX4C Systèmes d exploitation. Séance 14 Structure des stockages de masse

FAMILLE EMC VPLEX. Disponibilité continue et mobilité des données dans et entre les datacenters AVANTAGES

Cours Bases de données

La Continuité d Activité

Cours des réseaux Informatiques ( )

Veeam Backup & Replication v6

Services Réseaux - Couche Application. TODARO Cédric

au Centre Inter-établissement pour les Services Réseaux Cédric GALLO

Programmation parallèle et distribuée

Protéger une machine réelle derrière une machine virtuelle avec pfsense

VigiClé Système «KeyWatcher»

Les Content Delivery Network (CDN)

JRES 2007 Solution de stockage répartie sur les centres de recherche INRIA, à base de serveurs de fichiers de type «NAS»

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration

C-JDBC. Emmanuel Cecchet INRIA, Projet Sardes.

FAMILLE EMC VPLEX. Disponibilité continue et mobilité des données dans et entre les datacenters

Transcription:

Systèmes et algorithmes répartis Données réparties Philippe Quéinnec, Gérard Padiou Département Informatique et Mathématiques Appliquées ENSEEIHT 12 novembre 2014 Systèmes et algorithmes répartis VI 1 / 76

Principes Cohérence Mise en œuvre Première partie Réplication de données Systèmes et algorithmes répartis VI 2 / 76

plan Principes Cohérence Mise en œuvre 1 Principes 2 Cohérence Cohérence séquentielle Cohérence et synchronisation Cohérences non séquentielles 3 Mise en œuvre Placement des copies Propagation des mises à jour Protocoles de cohérence Systèmes et algorithmes répartis VI 3 / 76

Plan Principes Cohérence Mise en œuvre 1 Principes 2 Cohérence Cohérence séquentielle Cohérence et synchronisation Cohérences non séquentielles 3 Mise en œuvre Placement des copies Propagation des mises à jour Protocoles de cohérence Systèmes et algorithmes répartis VI 4 / 76

Réplication de données Principes Cohérence Mise en œuvre Réplication Placement de plusieurs exemplaires d une même donnée sur différents sites. Intérêt de la réplication Favorise les accès locaux : performance Tolérance aux pannes (copies multiples) Répartition de charge Mode déconnecté envisageable en cohérence à terme Systèmes et algorithmes répartis VI 5 / 76

Principe général Principes Cohérence Mise en œuvre Principe : fournir des objets partagés par couplage dans les espaces d adressage de structures d exécution (couplage virtuel) réparties Partage par copie locale (efficacité) Programmation simple (accès local) Le système charge éventuellement les données à la demande Le système assure la cohérence des données partagées Systèmes et algorithmes répartis VI 6 / 76

Principes Cohérence Mise en œuvre Réplication optimiste / pessimiste Réplication optimiste Autoriser l accès à une copie sans synchronisation a priori avec les autres copies Modifications propagées en arrière plan Conflits supposés peu nombreux, et résolus quand ils sont détectés Réplication pessimiste Garantit l absence de conflits Mécanisme bloquant de prévention Where a pessimistic algorithm waits, an optimistic one speculates. Systèmes et algorithmes répartis VI 7 / 76

Principes Cohérence Mise en œuvre Réplication et répartition des données Deux sujets : Une même donnée, répliquée sur plusieurs sites mêmes valeurs? Plusieurs données, sur des sites différents l ensemble est-il cohérent? Mais en fait, c est le même problème! P1 P2 w(x)0 w(x)1 r(x)0 P1 P2 w(x)1 w(y)1 r(y)0 r(x)0 w i (x)b = écriture, sur le site i, de la variable x avec la valeur b Systèmes et algorithmes répartis VI 8 / 76

Plan Principes Cohérence Mise en œuvre Cohérence séquentielle Cohérence et synchronisation Cohérences non séquentielles 1 Principes 2 Cohérence Cohérence séquentielle Cohérence et synchronisation Cohérences non séquentielles 3 Mise en œuvre Placement des copies Propagation des mises à jour Protocoles de cohérence Systèmes et algorithmes répartis VI 9 / 76

Cohérence Principes Cohérence Mise en œuvre Cohérence séquentielle Cohérence et synchronisation Cohérences non séquentielles Définition Cohérence : relation que gardent entre elles les différentes copies des données Cohérence stricte, linéarisabilité, cohérence séquentielle Cohérences faibles (weak consistency) cohérence à la sortie (release consistency) cohérence à l entrée (entry consistency) Cohérences non séquentielles cohérence causale cohérence à terme (eventual consistency) Systèmes et algorithmes répartis VI 10 / 76

Cohérence stricte Principes Cohérence Mise en œuvre Cohérence séquentielle Cohérence et synchronisation Cohérences non séquentielles Cohérence stricte Toute lecture sur un élément X renvoie une valeur correspondant à l écriture la plus récente sur X. Modèle idéal Difficile à mettre en œuvre Synchronisation des horloges (difficile d avoir un référentiel de temps absolu) Temps de communication (temps de propagation des mises à jour) Opérations instantanées approximation de ce modèle par des modèles moins contraignants Systèmes et algorithmes répartis VI 11 / 76

Linéarisabilité Principes Cohérence Mise en œuvre Cohérence séquentielle Cohérence et synchronisation Cohérences non séquentielles Définition Le résultat d une exécution parallèle est le même que celui d une exécution séquentielle qui respecte l enchaînement des opérations. Toutes les opérations sont exécutées selon une certaine séquence S (comme en centralisé) Si deux opérations (lecture ou écriture) sont telles que la première finit avant que la deuxième ne commence, alors elles figurent dans cet ordre dans S. La cohérence interne des données est respectée dans S (après une écriture et jusqu à la prochaine, la lecture délivre la valeur écrite) Note : le point 2 nécessite un ordre total sur les dates de début/fin, par exemple le temps absolu. Systèmes et algorithmes répartis VI 12 / 76

Principes Cohérence Mise en œuvre Cohérence stricte vs linéarisabilité Cohérence séquentielle Cohérence et synchronisation Cohérences non séquentielles P1 P2 P3 P4 w(x)a w(x)b r(x)? r(x)? Séquences valides pour la linéarisabilité : w 1 (x)a w 2 (x)b r 3 (x)b r 4 (x)b (= stricte sur les débuts) w 1 (x)a r 3 (x)a w 2 (x)b r 4 (x)b (= stricte sur les fins) w 2 (x)b w 1 (x)a r 3 (x)a r 4 (x)a Séquences invalides pour la linéarisabilité : w 2 (x)b r 3 (x)b w 1 (x)a r 4 (x)a (début r 3 postérieur à fin w 1 ) w 2 (x)b r 4 (x)b w 1 (x)a r 3 (x)a (début r 4 postérieur à fin w 1 / r 3 ) Systèmes et algorithmes répartis VI 13 / 76

Cohérence séquentielle Principes Cohérence Mise en œuvre Cohérence séquentielle Cohérence et synchronisation Cohérences non séquentielles Définition Le résultat d une exécution parallèle est le même que celui d une exécution séquentielle qui respecte l ordre partiel de chacun des processeurs. Toutes les opérations sont exécutées selon une certaine séquence S (comme en centralisé) Les opérations exécutées par tout processus P figurent dans S dans le même ordre que dans P La cohérence interne des données est respectée dans S (après une écriture et jusqu à la prochaine, la lecture délivre la valeur écrite) Remarque : on ne contraint pas l ordre des opérations dans des processus différents. Systèmes et algorithmes répartis VI 14 / 76

Principes Cohérence Mise en œuvre Cohérence séquentielle Cohérence et synchronisation Cohérences non séquentielles Linéarisabilité/cohérence séquentielle/non séquentielle P1 P2 P3 w(x)a r(x)a w(x)b r(x)b r(x)a r(x)b Linéarisable P4 S = w 1 (x)a r 3 (x)a r 4 (x)a w 2 (x)b r 4 (x)b r 3 (x)b P1 P2 w(x)b w(x)a r(x)a r(x)b Cohérence P3 r(x)a r(x)b séquentielle P4 S = w 1 (x)a r 3 (x)a r 4 (x)a w 2 (x)b r 3 (x)b r 4 (x)b Cohérence non séquentielle P1 w(x)a P2 P3 P4 w(x)b r(x)b r(x)a r(x)a r(x)b Systèmes et algorithmes répartis VI 15 / 76

Cohérence séquentielle Principes Cohérence Mise en œuvre Cohérence séquentielle Cohérence et synchronisation Cohérences non séquentielles Les processeurs doivent s accorder sur l ordre des accès un accès en écriture est terminé si une lecture à la même adresse rend la valeur écrite (quelque soit le processeur) chaque écriture doit être terminée pour continuer l exécution (sinon deux écritures peuvent s inverser) Dans la pratique, algorithme d ordonnancement global diffusion des modifications à tous les sites (ordre total) ou un serveur n autorisant qu une seule copie en écriture (par unité) lourd et inefficace : r + w t, où r est la durée d une lecture, w d une écriture, et t est le temps minimal de transfert d un message mais assez intuitif Systèmes et algorithmes répartis VI 16 / 76

Principes Cohérence Mise en œuvre Cohérence et synchronisation Cohérence séquentielle Cohérence et synchronisation Cohérences non séquentielles La présence de code de synchronisation (p.e. exclusion mutuelle ou verrous) simplifie la cohérence nécessaire : Cohérence séquentielle pour la prise des verrous Cohérence faible pour les objets Règle : tous les accès mémoire doivent être terminés avant chaque point de synchronisation acquire(v) release(v) r(x)1 w(y)2 w(z)3 P1 P2 ack(v) Systèmes et algorithmes répartis VI 17 / 76

Cohérences faibles Principes Cohérence Mise en œuvre Cohérence séquentielle Cohérence et synchronisation Cohérences non séquentielles Différencier les points d entrée et de sortie de synchronisation Cohérence à la sortie (release consistency) en sortie de synchronisation, les accès doivent être terminés mise à jour précoce (eager) : envoi des modifications à tous les noeuds (ayant une copie) mise à jour paresseuse (lazy) : acquisition par le processeur qui reprend le verrou (sorte de cohérence à l entrée) Cohérence à l entrée (entry consistency) association explicite entre variable de synchronisation et variables partagées verrouillage avant d utiliser un objet mise en cohérence de l objet lors de la prise du verrou Systèmes et algorithmes répartis VI 18 / 76

Cohérence causale Principes Cohérence Mise en œuvre Cohérence séquentielle Cohérence et synchronisation Cohérences non séquentielles Relation de causalité e précède causalement e : e e si : Si e et e sont sur le même site, et e précède e Si e = w(x)a, et e = r(x)a (e = lecture de la valeur écrite en e) Transitivité : si e e et e e Événements concurrents = pas de précédence causale entre eux. Cohérence causale Les valeurs sont observées dans un ordre compatible avec la causalité. Note : deux écritures concurrentes peuvent être vues dans des ordres différents sur des processeurs différents. Systèmes et algorithmes répartis VI 19 / 76

Cohérence causale Principes Cohérence Mise en œuvre Cohérence séquentielle Cohérence et synchronisation Cohérences non séquentielles P1 P2 P3 P4 w(x)1 r(x)1 w(x)2 w(x)3 // r(x)1 r(x)3 r(x)2 r(x)1 r(x)2 r(x)3 Assez lourd à mettre en œuvre (horloges matricielles) Mais optimisations (horloges vectorielles) Gains considérables en général Systèmes et algorithmes répartis VI 20 / 76

Principes Cohérence Mise en œuvre Cohérence séquentielle Cohérence et synchronisation Cohérences non séquentielles Cohérence à terme (eventual consistency) Cohérence à terme Respect de l ordre local + datation globale ordonnant les écritures sur un même objet. Aucune contrainte sur les lectures (valeurs périmées possibles) Majorité de lectures, peu d écritures Acceptable de lire une donnée non à jour Exemples : DNS, WWW, consultation des places disponibles (mais pas réservation) En l absence prolongée de modifications, les copies finiront par devenir cohérentes Algorithmes de propagation dits épidémiques Systèmes et algorithmes répartis VI 21 / 76

Plan Principes Cohérence Mise en œuvre Placement des copies Propagation des mises à jour Protocoles de cohérence 1 Principes 2 Cohérence Cohérence séquentielle Cohérence et synchronisation Cohérences non séquentielles 3 Mise en œuvre Placement des copies Propagation des mises à jour Protocoles de cohérence Systèmes et algorithmes répartis VI 22 / 76

Principes Cohérence Mise en œuvre Problème 1 : placement des copies Placement des copies Propagation des mises à jour Protocoles de cohérence Copies permanentes Ensemble de copies définies a priori. Configuration statique Architecture statique de tolérance aux fautes Copies à la demande Création dynamique de copies selon les besoins Adaptation à la charge Systèmes et algorithmes répartis VI 23 / 76

Principes Cohérence Mise en œuvre Placement des copies Propagation des mises à jour Protocoles de cohérence Problème 2 : propagation des mises à jour Write-update Lectures locales sans communication Modifications : locales et envoyées en multicast Cohérence : propriétés sur l ordre des messages Multicast peut être cher (à chaque écriture) Write-invalidate Invalidations diffusées en cas d écriture Lectures après chargement si nécessaire Généralement, n lecteurs - 1 écrivain Plusieurs lectures/écritures locales sans communication (si en cache) Systèmes et algorithmes répartis VI 24 / 76

Principes Cohérence Mise en œuvre Placement des copies Propagation des mises à jour Protocoles de cohérence Problème 3 : protocoles de cohérence Copie primaire fixe Serveur fixe. Toute demande de modification passe par ce serveur ( accès distant). Copie primaire locale Le contrôle est donné au site qui fait une mise à jour accès local. Intéressant avec les cohérences liées à la synchronisation. Duplication active Accord de l ensemble des serveurs : Diffusion fiable totalement ordonnée (atomique) Votes et quorums Algorithmes épidémiques Systèmes et algorithmes répartis VI 25 / 76

Principes Cohérence Mise en œuvre Duplication active Diffusion Placement des copies Propagation des mises à jour Protocoles de cohérence Principe Écriture : diffusion atomique totalement ordonnée à toutes les copies toutes les copies mettent à jour dans le même ordre Lecture : utilisation d une copie quelconque : immédiatement (valeur passée possible) causalement (cohérence causale) totalement ordonnée avec les écritures (cohérence séquentielle) Systèmes et algorithmes répartis VI 26 / 76

Principes Cohérence Mise en œuvre Placement des copies Propagation des mises à jour Protocoles de cohérence Duplication active Votes et quorums Principe Pour effectuer une lecture, avoir l accord de nl copies Pour effectuer une écriture, avoir l accord de ne copies Condition : nl + ne > N (nb de copies) Garantit la lecture de la plus récente écriture Votes pondérés Donner des poids différents aux copies, selon leur importance (p.e. accessibilité) N nombre total de votes ( nb de copies) nl = quorum de lecture ne = quorum d écriture Conditions : nl + ne > N et 2 ne > N Systèmes et algorithmes répartis VI 27 / 76

Principes Cohérence Mise en œuvre Placement des copies Propagation des mises à jour Protocoles de cohérence Algorithmes épidémiques (Demers et al., 1987) Diffusion à grande échelle Grand nombre de sites (> 100), voire très grand (> 10000) Nombre inconnu et variable de sites Rôle symétrique de tous les sites Présence de sites en panne Topologie d interconnexion inconnue (a priori non directement maillée) Exemples : Internet (DNS), peer-to-peer Approche Algorithmes probabilistes Propagation aléatoire Systèmes et algorithmes répartis VI 28 / 76

Principes Cohérence Mise en œuvre Algorithme épidémique : Rumeur Placement des copies Propagation des mises à jour Protocoles de cohérence Rumeur (Gossip) Contamination d autres sites choisis aléatoirement avec une information supposée nouvelle. États d un site : Infectable : ne possède pas l information Contagieux : apte à contaminer des sites infectables Immunisé : a cessé d être contagieux Immunisation en aveugle ou avec rétroaction (échec d une tentative de contamination) Compteur (de tentatives ou d échecs) Probabilité d abandon après chaque tentative / échec Systèmes et algorithmes répartis VI 29 / 76

Rumeur : exemple Principes Cohérence Mise en œuvre Placement des copies Propagation des mises à jour Protocoles de cohérence 20 sites, nombre de sites contactés à chaque tour = 2, immunisation en aveugle à 1 tour 3 3 2 3 1 2 1 2 3 Initial après 1e transmission après 2e transmission après 3e transmission Systèmes et algorithmes répartis VI 30 / 76

Rumeur : performance Principes Cohérence Mise en œuvre Placement des copies Propagation des mises à jour Protocoles de cohérence Modèle simple : infect forever = pas d immunisation N = nombre de sites f = nombre de sites contactés à chaque tour par chaque site I (t) = nombre de sites infectés (contagieux ou immunisés) après le t-ième tour p(t) = I (t)/n = proportion de sites infectés au t-ième tour 1 Alors p(t) = 1+(N 1) e f t 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 N=100000 p(t), f=1 p(t), f=2 p(t), f=3 2 4 6 8 10 12 14 16 18 20 Tour Systèmes et algorithmes répartis VI 31 / 76

Rumeur : performance Principes Cohérence Mise en œuvre Placement des copies Propagation des mises à jour Protocoles de cohérence Modèle simple : infect and die = immunisation après un seul tour N = nombre de sites f = nombre de sites contactés par chaque site P = probabilité que tous les sites finissent par être infectés (à l ) elog N f Alors P e Inversion autour de f = log N 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 N=50000 P(f) 2 4 6 8 10 12 14 16 18 20 Systèmes et algorithmes répartis VI Fanout 32 / 76

Rumeur : performance Nombre de tours pour tout contaminer : Modèle sans immunisation (infect forever) : 30 25 R = log f +1 n+ 1 f log n+o(1) 20 15 10 5 0 10000 20000 30000 40000 50000 60000 70000 80000 90000 100000 Nb sites Modèle immunisation immédiate (infect and die) : (fin de l épidémie avec tous contaminés) R = log n log log n + O(1) 4.8 4.6 4.4 4.2 4 5.8 5.6 5.4 5.2 5 R(n) R(n), f=1 R(n), f=2 R(n), f=3 R(n), f=4 0 10000 20000 30000 40000 50000 60000 70000 80000 90000 100000 Nb sites

Rumeur : coût Principes Cohérence Mise en œuvre Placement des copies Propagation des mises à jour Protocoles de cohérence Diffusion probabiliste Existence de sites non informés (poches d ignorance si le choix des sites est plutôt local) Nombre de messages élevés (échecs de contamination) Systèmes et algorithmes répartis VI 34 / 76

Principes Cohérence Mise en œuvre Placement des copies Propagation des mises à jour Protocoles de cohérence Algorithme épidémique : Anti-entropie Anti-entropie Périodiquement, chaque site contacte aléatoirement un autre site. Les deux sites échangent alors des informations, et leurs objets sont mis en cohérence. L algorithme converge vers l égalité des copies : cohérence à terme. Nombre de tours pour tout contaminer = O(log N) Systèmes et algorithmes répartis VI 35 / 76

Graphes petit monde Principes Cohérence Mise en œuvre Placement des copies Propagation des mises à jour Protocoles de cohérence Les algorithmes précédents n ont pas de notion de voisinage : choix arbitraire d un site quelconque (graphe complet). Graphe petit monde (small-world graphs) Graphe connexe vérifiant : Grand nombre de nœuds (N > 10000) Faible connectivité des nœuds (de l ordre de 5 à 10) Distance entre deux nœuds quelconques log N Remarquablement adapté aux algorithmes épidémiques, résistant aux pannes (de sites et de liens) Apparaît spontanément (ex : réseau routier : maillage local, rocade, autoroutes)... ou pas (ex : réseau aérien avec quelques gros hubs à forte connectivité) Systèmes et algorithmes répartis VI 36 / 76

Conclusion Principes Cohérence Mise en œuvre Placement des copies Propagation des mises à jour Protocoles de cohérence Intérêt de la réplication Favorise les accès locaux : performance Tolérance aux pannes (copies multiples) Répartition de charge Mode déconnecté envisageable en cohérence à terme Limites Diverses formes de cohérence, aucune simple ET performante Cohérences faibles comportements surprenants Diverses implantations, toutes complexes Difficiles de faire cohabiter plusieurs formes de cohérence selon la nature des données Systèmes et algorithmes répartis VI 37 / 76

Conception Deuxième partie Systèmes de fichiers répartis Systèmes et algorithmes répartis VI 38 / 76

plan Conception 4 Conception Les principes et objectifs SGF réparti Sémantique de la concurrence 5 NFS v3 (l ancêtre) NFS v4 AFS 6 Google File System Hadoop Distributed File System Dropbox Systèmes et algorithmes répartis VI 39 / 76

Plan Conception Les principes et objectifs SGF réparti Sémantique de la concurrence 4 Conception Les principes et objectifs SGF réparti Sémantique de la concurrence 5 NFS v3 (l ancêtre) NFS v4 AFS 6 Google File System Hadoop Distributed File System Dropbox Systèmes et algorithmes répartis VI 40 / 76

Conception Les principes et objectifs SGF réparti Sémantique de la concurrence Données rémanentes et abstraction des ressources Espace logique de fichiers / Espace physique de ressources Modem ADSL Disques mach mach.sym bin local Scanner clé USB sh cat Imprimante Projection de l espace logique sur l espace physique Systèmes et algorithmes répartis VI 41 / 76

Objectif Conception Les principes et objectifs SGF réparti Sémantique de la concurrence Un bon système de fichiers répartis est un système de fichiers... qui peut passer pour un système centralisé Obtenir le meilleur niveau de transparence de la répartition transparence d accès transparence de la localisation transparence du partage, de la concurrence transparence de la réplication transparence des fautes transparence de l hétérogénéité transparence d échelle... Systèmes et algorithmes répartis VI 42 / 76

Conception Transparence de la localité Les principes et objectifs SGF réparti Sémantique de la concurrence Une étape : le réseau est la racine Domain OS (Apollo) : //mozart/usr/... Cedar : /serveur/<chemin local> Disparition des noms de sites : NFS Tous les fichiers sont intégrés dans une arborescence unique Implantation : par extension du montage de volume à distance Implantation : par exportation sélective des volumes Transparence de la localité Désignation uniforme Systèmes et algorithmes répartis VI 43 / 76

Conception Architecture d un système de fichiers Les principes et objectifs SGF réparti Sémantique de la concurrence Service de fichiers à plat (flat file system) Service de nommage (répertoires) Module client : API simple et unique, indépendante de l implantation Client Kernel or Server Application program Application program Directory service Flat file service Client module (source : Coulouris Dollimore) Systèmes et algorithmes répartis VI 44 / 76

SGF centralisé Conception Les principes et objectifs SGF réparti Sémantique de la concurrence API Unix canal open(nom,mode) canal creat(nom, mode) close(canal) int read(canal,tampon,n) int write(canal,tampon,n) pos = lseek(canal, depl, orig) stat(nom, attributs) unlink(nom) link(nom orig,synonyme) connexion du fichier à un canal connexion avec création déconnexion lecture de n octets au plus écriture de n octets au plus positionnement du curseur Lecture des attributs du fichier suppression du nom dans le rép. Nouvelle référence Systèmes et algorithmes répartis VI 45 / 76

Conception SGF réparti : Niveau répertoire Les principes et objectifs SGF réparti Sémantique de la concurrence Fonction Noms symboliques noms internes (Unique File IDentifiers UFID) Protection : contrôle d accès Génération de noms internes (UFID) : Engendrés par le serveur pour les clients Unicité, non réutilisation, protection API RPC Service Répertoire UFID Lookup(UFID rép, String nom) AddName(UFID rép, String nom, UFID uid) UnName(UFID rép, String nom) String[] GetNames(UFID rép, String motif) résolution du nom insérer le nom supprimer le nom recherche par motif Systèmes et algorithmes répartis VI 46 / 76

Conception SGF réparti : Niveau fichier Les principes et objectifs SGF réparti Sémantique de la concurrence Fonction Passage d un nom interne global (UFID à un descripteur) Accès au fichier (attributs) API RPC Service Fichier byte[] Read(UFID uid, int pos,int n) Write(UFID uid,int pos,byte[] z,int n) UFID Create() Delete(UFID uid) GetAttributes(UFID uid, Attributs a) Attributs SetAttributes(UFID uid) lire n octets au + en pos écrire n octets en pos créer un fichier supprimer l UID du fichier lire les attributs du fichier mettre à jour les attributs Opérations idempotentes (sauf create) : RPC at-least-once Serveur sans état : redémarrage sans reconstruction de l état précédent Systèmes et algorithmes répartis VI 47 / 76

Conception Problème sémantique du partage Les principes et objectifs SGF réparti Sémantique de la concurrence Idéalement Sémantique centralisée (Unix-like) : lecture de la dernière version écrite Sous une autre forme : une lecture voit TOUTES les modifications faites par les écritures précédentes Difficultés Ordre total Propagation immédiate des modifications Pas de copie contention Idée : copies caches et sémantique de session Systèmes et algorithmes répartis VI 48 / 76

L approche session Conception Les principes et objectifs SGF réparti Sémantique de la concurrence Stratégie orientée session Un serveur unique maintient la version courante Lors de l ouverture à distance par un client (début de session), une copie locale au client est créée Les lectures/écritures se font sur la copie locale Seul le client rédacteur perçoit ses écritures de façon immédiate (sémantique centralisée) Lors de la fermeture (fin de session), la nouvelle version du fichier est recopiée sur le serveur : La session (d écritures du client) est rendue visible aux autres clients Systèmes et algorithmes répartis VI 49 / 76

Conception L approche session (suite) Les principes et objectifs SGF réparti Sémantique de la concurrence Problème Plusieurs sessions de rédacteurs en parallèle... L ordre des versions est l ordre de traitement des fermetures La version gagnante est indéfinie Autres solutions Invalidation les copies clientes par le serveur lors de chaque création de version Le contrôle du parallélisme : garantir un seul rédacteur Une autre idée : Fichiers à version unique (immuable) Systèmes et algorithmes répartis VI 50 / 76

Plan Conception NFS v3 (l ancêtre) NFS v4 AFS 4 Conception Les principes et objectifs SGF réparti Sémantique de la concurrence 5 NFS v3 (l ancêtre) NFS v4 AFS 6 Google File System Hadoop Distributed File System Dropbox Systèmes et algorithmes répartis VI 51 / 76

Conception NFS v3 (l ancêtre) NFS v4 AFS NFS (Network File System) : Principes Origine : Sun Microsystems (1984, 1995, 2003, 2010) Transparence d accès et de localisation ( virtual file system) Traitement de l hétérogénéité ( virtual node vnode) Désignation non uniforme (a priori) Approche intégrée (modification des primitives du noyau) Protocole RPC entre noyaux ( système fermé) : sémantique au moins une fois Serveur : site qui exporte des volumes Client : accès à un système de fichiers distants par montage à distance (extension du mount) Serveur sans état (mais v4 avec état) Systèmes et algorithmes répartis VI 52 / 76

Conception NFS v3 (l ancêtre) NFS v4 AFS Idée de base de NFS : le montage à distance de volumes Montagedevolumesàdistance mount /dev/disk0s3 /sys/mach / mount rubis:/dev/disk0s1 /projets dev sys projets Siterubis dev mach mach.sym disk0s1 bin local Volume distant disk0s3 Volume local sh cat Systèmes et algorithmes répartis VI 53 / 76

Architecture de NFS Conception NFS v3 (l ancêtre) NFS v4 AFS Client computer Server computer UNIX system calls UNIX kernel Application Application program program Virtual file system UNIX kernel Virtual file system Local Remote UNIX file system Other file system NFS client NFS protocol NFS server UNIX file system (source : Coulouris Dollimore) Systèmes et algorithmes répartis VI 54 / 76

Conception Exemple NFS Transparence de localisation et hétérogénéité NFS v3 (l ancêtre) NFS v4 AFS La notion de virtual file system (VFS) Étend la notion de système de fichiers (file system) aux volumes à distance et à des systèmes de fichiers hétérogènes VFS un volume support d un système de fichiers particulier La notion de virtual node (vnode) Extension de la notion de inode Pointe un descripteur local (inode) ou distant (rnode) Notion de file handle ou UFID Un nom global, engendré par le serveur et donné au client Identification du FS n o inode n o de génération Systèmes et algorithmes répartis VI 55 / 76

Conception NFS v3 (l ancêtre) NFS v4 AFS Gestion de caches clients et serveur Objectif Garantir la sémantique centralisée : la version lue est la dernière version écrite Approximation... Sur ouverture, le client mémorise : (date de dernière modification, date présente) Interrogation du serveur si lecture après plus de p secondes (p = 3 sec. pour fichier ordinaire, p = 10 sec. si répertoire) Systèmes et algorithmes répartis VI 56 / 76

Conception NFS avec serveur à état : v4 NFS v3 (l ancêtre) NFS v4 AFS Principales différences... Introduction des notions de serveur à état et de session : Open et Close réapparaissent! procédures de reprise sur incident Protocole sécurisé beaucoup plus poussé : usage de kerberos, chiffrement Groupement des requêtes pour de meilleures performances Notion de délégation : le client a une copie locale utilisable jusqu à une alerte du serveur (callback) Traitement de la transparence de migration et/ou réplication Verrouillage temporisé : notion de bail (lease) Usage de TCP/IP Systèmes et algorithmes répartis VI 57 / 76

Conception AFS (Andrew File System) NFS v3 (l ancêtre) NFS v4 AFS Principes Origine : Carnegie Mellon University (1986) SGF uniforme pour servir plusieurs milliers de machines Deux composants : les stations serveurs (VICE) les stations clientes (VERTUE) Réplication en lecture seule des fichiers systèmes Migration des fichiers utilisateurs (serveur client) Gestion de caches sur les stations clientes Arborescence partagée commune /vice Systèmes et algorithmes répartis VI 58 / 76

Conception Gestion de caches de fichiers Traitement d un accès à un fichier /vice/... NFS v3 (l ancêtre) NFS v4 AFS Approche orientée session Lors de l ouverture du fichier si fichier déjà présent en cache local, ouverture locale si fichier absent contacter un serveur pour obtenir une copie de tout le fichier Lors de la fermeture du fichier recopie de la version locale sur le serveur le serveur avertit les autres stations clientes qui contiennent ce fichier dans leur cache d invalider leur version (callback) Systèmes et algorithmes répartis VI 59 / 76

Conception Gestion de caches de fichiers Avantages et inconvénients NFS v3 (l ancêtre) NFS v4 AFS Avantages Minimise la charge d un serveur : ceux-ci ne gèrent que les fichiers partagés, or 80% sont privés et temporaires L invalidation par rappel est efficace car les cas de partage parallèle sont rares Les transferts de fichier dans leur totalité sont efficaces Inconvénients Cohérence des copies d un même fichier non garantie Sémantique copie lue dernière version écrite non garantie Systèmes et algorithmes répartis VI 60 / 76

Évolutions Conception NFS v3 (l ancêtre) NFS v4 AFS Limitations Introduction de la mobilité : partitionnement réseau, mode déconnecté, pannes, etc Réplication (résolution des conflits d écriture?) Unité de travail = document = ensemble de fichiers Constant Data Availability Exemples d évolutions Coda (CMU) : réplication optimiste en mode déconnecté, résolution de conflit manuelle Peer-to-peer (voir Locus, extension de NFS) : Ficus (UCLA) Travail collaboratif : Bayou (Xerox PARC) Systèmes de gestion de versions décentralisé (git) Sites d hébergement / partage de fichiers (Dropbox, Google Drive... ) Systèmes et algorithmes répartis VI 61 / 76

Conclusion Conception NFS v3 (l ancêtre) NFS v4 AFS Des problèmes bien maîtrisés Implantation performante des fichiers dans un contexte réparti en assurant transparence d accès et de localisation conduit à une re-centralisation : serveurs dédiés Problème : concurrence d accès aux fichiers partagés modifiés Approches session ou spécifiques (transactions) Des tendances fortes et/ou solutions matures Tolérance aux fautes : par réplication (transparence assurée) Évolution pour prendre en compte la mobilité des clients Sécurité : par partitionnement Systèmes et algorithmes répartis VI 62 / 76

Plan Conception Google File System Hadoop Distributed File System Dropbox 4 Conception Les principes et objectifs SGF réparti Sémantique de la concurrence 5 NFS v3 (l ancêtre) NFS v4 AFS 6 Google File System Hadoop Distributed File System Dropbox Systèmes et algorithmes répartis VI 63 / 76

Conception GFS Google File System Google File System Hadoop Distributed File System Dropbox Objectifs Système de fichiers scalable Applications manipulant de gros volumes de données Haute performance pour un grand nombre de clients Tolérant aux fautes sur du matériel basique Exemple d applications : stockage de vidéo (youtube), moteur de recherche (google), transactions commerciales passées (amazon), catalogues de vente Systèmes et algorithmes répartis VI 64 / 76

GFS hypothèses Conception Google File System Hadoop Distributed File System Dropbox Hypothèses traditionnelles invalides ( fichiers majoritairement petits, courte durée de vie, peu de modifications concurrentes ) Les pannes sont normales, pas exceptionnelles : milliers de serveurs de stockage Les fichiers sont énormes : plusieurs TB est normal Accès aux fichiers : Lecture majoritairement séquentielle, rarement arbitraire Écriture majoritairement en mode ajout, rarement arbitraire Deux sous-classes : Fichiers créés puis quasiment que lus (ex : vidéos) Fichiers constamment en ajout par des centaines d applications, peu lus (ex : log) Nombre de fichiers faible par rapport au volume (quelques millions) Applications dédiées cohérence relâchée Systèmes et algorithmes répartis VI 65 / 76

Interface Conception Google File System Hadoop Distributed File System Dropbox Nommage Nommage non hiérarchique Opérations Classiques : create, delete, open, close, read, write Additionnelles : append : partage en écriture, sans verrouillage snapshot : copie efficace d un fichier ou d une arborescence, sans verrouillage Implantation Ordinateurs de bureau, équipés d un système de fichiers standard (linux : extfs) Serveurs GFS implantés en espace utilisateur Systèmes et algorithmes répartis VI 66 / 76

GFS cluster Conception Google File System Hadoop Distributed File System Dropbox Un maître : metadonnées + table de chunks par fichier Des chunk servers : fichiers découpés en chunks (64 MB) répliqués, plusieurs milliers de serveurs par maître (source : Wikipedia) Systèmes et algorithmes répartis VI 67 / 76

GFS fichiers Conception Google File System Hadoop Distributed File System Dropbox (source : Paul Krzyzanowski) Systèmes et algorithmes répartis VI 68 / 76

GFS Master Conception Google File System Hadoop Distributed File System Dropbox Métadonnées des fichiers Nommage : bête table de hachage (pas de répertoire géré par le système, mais fichier applicatif contenant une liste de noms de fichiers) Contrôle d accès Table fichier chunks Emplacement des chunks Nommage et tables en mémoire (relativement petites) pour performance pas de cache côté serveur Maintenance Verrouillage de chunk Allocation/déallocation de chunk, ramasse-miettes Migration de chunk (équilibrage, arrêt de machines) Répliqué (schéma maître-esclave) pour tolérance aux fautes Systèmes et algorithmes répartis VI 69 / 76

Lecture d un fichier Conception Google File System Hadoop Distributed File System Dropbox 1 Contacter le maître 2 Obtenir les métadonnées : identifiants de chunks formant le fichier 3 Pour chaque chunk handle, obtenir la liste des chunkservers 4 Contacter l un quelconque des chunkservers pour obtenir les données (sans passer par le maître) Systèmes et algorithmes répartis VI 70 / 76

Écriture d un fichier Conception Google File System Hadoop Distributed File System Dropbox 1 Phase 0 : demande d écriture auprès du maître un chunk responsable + un nouveau numéro de version 2 Phase 1 : envoi des données : Le client envoie ses données à écrire au serveur de chunk responsable Ce serveur propage à l un des réplicas, qui propage au suivant, etc Les données sont conservées en mémoire, non écrites 3 Phase 2 : écriture des données Le client attend l acquittement de tous les réplicas (du dernier) Il envoie un message de validation au primaire Le primaire ordonne les écritures (numéro de version), effectue son écriture et informe les réplicas Les réplicas effectuent l écriture et l acquittent au primaire. L ordre des opérations est identique pour tous (numéro de version) 4 Le primaire informe le client Systèmes et algorithmes répartis VI 71 / 76

Conception Google Cluster Environment Google File System Hadoop Distributed File System Dropbox Amener les calculs aux données patron mapreduce : 1 Map : filtrage + tri (naturellement ) 2 Shuffle : redistribution des résultats intermédiaires 3 Reduce : fusion ( si associatif) (source : Paul Krzyzanowski) Systèmes et algorithmes répartis VI 72 / 76

Conception Google File System Hadoop Distributed File System Dropbox HDFS Hadoop Distributed File System (source : Paul Krzyzanowski) Systèmes et algorithmes répartis VI 73 / 76

Conception Dropbox partage de fichiers Google File System Hadoop Distributed File System Dropbox Réplication grand public Répertoires sur différents ordinateurs/mobiles, synchronisés pour avoir le même contenu Schéma copie primaire (Dropbox) / copies secondaires (utilisateur) Hypothèses Énormément d utilisateurs (> 200 millions) Par utilisateur : peu de volume (quelques Go) et peu de modifications (quelques centaines / jour) Ressources utilisateur faibles Bande passante utilisateur faible Rapport lecture/écriture proche de 1 Systèmes et algorithmes répartis VI 74 / 76

Dropbox principes Conception Google File System Hadoop Distributed File System Dropbox Approche Copie locale complète du répertoire partagé (moins vrai avec l application mobile : cache) Accès local et natif aux fichiers partagés (lecture et écriture) Trafic uniquement en cas de modification Client local léger assurant la cohérence Cohérence suffisante : écritures en arrière-plan, notification asynchrone des modifications (client connecté) Systèmes et algorithmes répartis VI 75 / 76

Conception Dropbox architecture Google File System Hadoop Distributed File System Dropbox Séparation entre serveurs de metadonnées (nommage, droits d accès, liste de blocs) et serveurs de blocs de données (source : Paul Krzyzanowski) Systèmes et algorithmes répartis VI 76 / 76